HDF5 fails to create new file

runtime->attach_hdf5 fails to create a new HDF5 file with the error "No such file or directory" when using LEGION_FILE_CREATE (on a file that does not exist). My understanding is that this API should create the file when it does not exist. Is that true?
I created a minimal Regent file to show the failure:
https://github.com/StanfordLegion/legion/blob/master/language/tests/regent/run_pass/attach_hdf5.rg
The relevant line is:
attach(hdf5, r.{a, b, c}, filename, regentlib.file_create)

(The form regentlib.file_create is equivalent to LEGION_FILE_CREATE, and attach(hdf5...) calls runtime->attach_hdf5(...).)
To reproduce the error, run:
cd legion/language
USE_HDF=1 ./install.py --debug
./regent.py tests/regent/run_pass/attach_hdf5.rg

And the error is:
HDF5-DIAG: Error detected in HDF5 (1.8.11) thread<PHONE_NUMBER>97056:
  #000: ../../../src/H5F.c line 1586 in H5Fopen(): unable to open file
    major: File accessibilty
    minor: Unable to open file
  #001: ../../../src/H5F.c line 1275 in H5F_open(): unable to open file: time = Tue Aug 16 17:39:17 2016
, name = '/tmp/lua_XWabaH.hdf', tent_flags = 1
    major: File accessibilty
    minor: Unable to open file
  #002: ../../../src/H5FD.c line 987 in H5FD_open(): open failed
    major: Virtual File Layer
    minor: Unable to initialize object
  #003: ../../../src/H5FDsec2.c line 343 in H5FD_sec2_open(): unable to open file: name = '/tmp/lua_XWabaH.hdf', errno = 2, error message = 'No such file or directory', flags = 1, o_flags = 2
    major: File accessibilty
    minor: Unable to open file

It's true that /tmp/lua_XWabaH.hdf doesn't exist, but that's rather the point: I'm passing LEGION_FILE_CREATE with the intention that the file is supposed to be created from scratch. Is that not how this API works?

Elliott,
I got the following error when I try to run the test case. Any easy fix for this?
In file included from :1:
In file included from /local/home/zhihao/legion_github/runtime/legion/legion_c.h:31:
In file included from /local/home/zhihao/legion_github/runtime/legion/legion_config.h:21:
/usr/include/limits.h:123:16: fatal error: 'limits.h' file not found
include_next <limits.h>
           ^

compilation of included c code failed
stack traceback:
src/terralib.lua:3382: in function 'includecstring'
...home/zhihao/legion_github/language/src/regent/std_base.t:26: in main chunk
[C]: in function 'require'
/local/home/zhihao/legion_github/language/src/regent/std.t:18: in main chunk
[C]: in function 'require'
...home/zhihao/legion_github/language/src/regent/builtins.t:17: in main chunk
[C]: in function 'require'
/local/home/zhihao/legion_github/language/src/regent.t:17: in main chunk
[C]: at function: 0x403fcef0
[C]: in function 'xpcall'
src/terralib.lua:4216: in function <src/terralib.lua:4215>

Hm, ok. Could you try on sapling to see if you still get this?
We can also debug this to figure out the root cause, but it's almost certainly not related to the main issue. What system are you on (e.g. is this OS X)?

I finally found the issue. The current implementation supports read-only and read-write access to an existing HDF file but doesn't support creating a previously non-exist HDF file. (Through, we can support creating normal file with Legion format.)
This is mainly because we need data type information to create HDF files, but that information is currently missing in the Legion runtime. @lightsighter is there any easy fix to add type information into attach_hdf interface?
=======================================================================
As for the compilation error, I also tried on sapling and got the exact same error message. It seems the error is related to the include paths for gcc.
Elliott, can you try the following command line and tell me the output:
gcc -xc -E -v -

My recollection is that we consciously chose to leave file creation out of the attach_hdf5 interface for exactly this reason, and just ask the parent application to do HDF5-metadata related things on its own, since those are rarely data-parallel anyway.  I propose we remove the LEGION_FILE_CREATE option here to avoid confusion in the future.
Hopefully Terra will make it relatively easy to get bindings for libhdf5 in Regent...


Create a Test Suite

Create a test suite for unit and integration testing. UI testing is a "nice to have" for now.

There appears to be a test suite in there already - I just didn't notice. Will investigate further to see the extent of its use and whether it would be better to stay with it or move to something else.


Corrupted Image Uploaded Cause Server Errors During Manipulations (ImageMagick)

Using both GD and Imagick image backends, corrupted images that are uploaded will fail.
The Upload field handles 500 server errors in the ajax upload, so the response is somewhat ok, but if the image gets on the server by some other means, any attempt to manipulate the image will show those 500 errors.
There needs to be some refactoring to automatically handle exceptions thrown from either back-end. Perhaps the Image_Backend interface requires a 'validate' function, which is called before manipulation is attempted?
Imagick:
[User Error] Uncaught ImagickException: unable to open image `/var/tmp/magick-19448nOcBvuu5jtZc': No such file or directory @ error/blob.c/OpenBlob/2645
GET /designer
Line 25 in mywebsite/framework/filesystem/ImagickBackend.php

GD seems to fail a bit more gracefully. The image file name is saved to the Image model, but the manipulated image doesn't exist. This behaviour isn't documented.
This is a corrupt image:

Relates to #2781

Still an issue; We need some explicit unit tests for invalid image files.

We've moved the image backend to InterventionImage in 4 so this may not be an issue with 4...

I've tested this on SS4 and it's working pretty reliably now. Thumbnails aren't generated but direct file access displays it as-is


Rosetta Code Fibonacci - Off by One

Describe your problem and how to reproduce it:
There is an off by one error in the challenge description vs the test suite for this problem. According to the challenge description (and all of the official descriptions of the sequence https://oeis.org/A000045), the Fibonacci sequence uses zero based indexing. The test suite uses one based indexing. The test suite should be updated to reflect zero based indexing.
Add a Link to the page with the problem:
https://www.freecodecamp.org/learn/coding-interview-prep/rosetta-code/fibonacci-sequence
Tell us about your browser and operating system:

Browser Name:
Browser Version:
Operating System:
N/A

If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box):
N/A

@jeremylt I could be mistaken, but no where in the challenge does it state that the argument passed to the function represents the index.  Instead, it just refers to the ith term.  The 3rd term in the Fiboncci sequence would be 1.  The 5th term would be 3.  The 10th term would be 34.  That is what the tests are checking.

The description uses F_n and nth in conjunction. If the description uses F_n, n must be zero based indexing. I understand how the tests want you to code the solution. It's just mathematically incorrect given that the description refers to F_n.

@jeremylt Would you mind highlighting what part of the link you referenced that state F_n is zero-indexed.  I am unable to see what you are referring to.

Sure
"A000045 		Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1."
F_0 and F(0) are equivalent nomenclature.
Zero based indexing is also the norm when students Google Fibonacci, so I think bringing this challenge in line with standard notation reinforces Googling for info.

@snigo Comments?

My two cents:
I believe that @jeremylt has a point. The formula described states f(0) = 1 f(1)=1 f(2) = 1 ... But the result expected is fibonacci(1) = 0 fibonacci(2) = 1 fibonacci(3) = 1 which can be a cause of confusion.
If we use the mathematical form, the solution should be:
function fibonacci(n) {
  if (n==0) return 0;
  if (n==1) return 1;
  return fibonacci(n-1) + fibonacci(n-2);
}

In the current form, the solution expected is:
function fibonacci(n) {
  if (n==1) return 0;
  if (n==2) return 1;
  return fibonacci(n-1) + fibonacci(n-2);
}

I know there is not much difference, but I remember going for the mathematical form myself when I attempted this the first time and then I had to read the hints below to understand that the index was off by 1.

I agree with 0-based indexing, so fibonacci(10) would be 55.

@RandellDawson I have pushed the required changes for this to be according to base 0.
Kindly review. Thanks.

I looked at formula, and some calculators implementations. they all seem to be  0 based.

Thanks everyone!


Testing fixing test

Codecov Report

Merging #1377 into master will decrease coverage by 0.07%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1377      +/-   ##
==========================================
- Coverage   54.85%   54.77%   -0.08%
==========================================
  Files        3023     3052      +29
  Lines       75984    76810     +826
==========================================
+ Hits        41678    42070     +392
- Misses      34306    34740     +434

Impacted Files
Coverage Δ

azure-sdk-testutils/devtools_testutils/__init__.py
100% <100%> (ø)
:arrow_up:

...entgrid/azure/mgmt/eventgrid/models/topic_paged.py
80% <0%> (ø)

...rid/azure/mgmt/eventgrid/models/topic_type_info.py
100% <0%> (ø)

.../azure/mgmt/eventgrid/models/event_subscription.py
100% <0%> (ø)

...mt/eventgrid/models/event_subscription_full_url.py
80% <0%> (ø)

...rid/azure/mgmt/eventgrid/models/operation_paged.py
80% <0%> (ø)

...eventgrid/models/event_subscription_destination.py
100% <0%> (ø)

...-eventgrid/azure/mgmt/eventgrid/models/__init__.py
100% <0%> (ø)

...id/azure/mgmt/eventgrid/models/event_type_paged.py
80% <0%> (ø)

...-eventgrid/azure/mgmt/eventgrid/models/resource.py
100% <0%> (ø)

... and 20 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #1377 into master will decrease coverage by 0.07%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1377      +/-   ##
==========================================
- Coverage   54.85%   54.77%   -0.08%
==========================================
  Files        3023     3052      +29
  Lines       75984    76810     +826
==========================================
+ Hits        41678    42070     +392
- Misses      34306    34740     +434

Impacted Files
Coverage Δ

azure-sdk-testutils/devtools_testutils/__init__.py
100% <100%> (ø)
:arrow_up:

.../mgmt/eventgrid/models/event_subscription_paged.py
80% <0%> (ø)

...rid/azure/mgmt/eventgrid/models/topic_type_info.py
100% <0%> (ø)

...-eventgrid/azure/mgmt/eventgrid/models/__init__.py
100% <0%> (ø)

...ventgrid/azure/mgmt/eventgrid/models/event_type.py
55.55% <0%> (ø)

...t/eventgrid/models/topic_regenerate_key_request.py
83.33% <0%> (ø)

...eventgrid/azure/mgmt/eventgrid/models/operation.py
50% <0%> (ø)

...ure/mgmt/eventgrid/event_grid_management_client.py
100% <0%> (ø)

...gmt-eventgrid/azure/mgmt/eventgrid/models/topic.py
100% <0%> (ø)

...tgrid/operations/event_subscriptions_operations.py
22.25% <0%> (ø)

... and 20 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #1377 into master will decrease coverage by 0.07%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1377      +/-   ##
==========================================
- Coverage   54.85%   54.77%   -0.08%
==========================================
  Files        3023     3052      +29
  Lines       75984    76810     +826
==========================================
+ Hits        41678    42070     +392
- Misses      34306    34740     +434

Impacted Files
Coverage Δ

azure-sdk-testutils/devtools_testutils/__init__.py
100% <100%> (ø)
:arrow_up:

.../mgmt/eventgrid/models/event_subscription_paged.py
80% <0%> (ø)

...rid/azure/mgmt/eventgrid/models/topic_type_info.py
100% <0%> (ø)

...-eventgrid/azure/mgmt/eventgrid/models/__init__.py
100% <0%> (ø)

...ventgrid/azure/mgmt/eventgrid/models/event_type.py
55.55% <0%> (ø)

...t/eventgrid/models/topic_regenerate_key_request.py
83.33% <0%> (ø)

...tgrid/models/event_grid_management_client_enums.py
100% <0%> (ø)

...ure/mgmt/eventgrid/event_grid_management_client.py
100% <0%> (ø)

...gmt-eventgrid/azure/mgmt/eventgrid/models/topic.py
100% <0%> (ø)

...tgrid/operations/event_subscriptions_operations.py
22.25% <0%> (ø)

... and 20 more

Continue to review full report at Codecov.

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

Codecov Report

Merging #1377 into master will decrease coverage by 0.07%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1377      +/-   ##
==========================================
- Coverage   54.85%   54.77%   -0.08%
==========================================
  Files        3023     3052      +29
  Lines       75984    76810     +826
==========================================
+ Hits        41678    42070     +392
- Misses      34306    34740     +434

Impacted Files
Coverage Δ

azure-sdk-testutils/devtools_testutils/__init__.py
100% <100%> (ø)
:arrow_up:

...ntgrid/azure/mgmt/eventgrid/operations/__init__.py
100% <0%> (ø)

...grid/azure/mgmt/eventgrid/operations/operations.py
40% <0%> (ø)

...ventgrid/azure/mgmt/eventgrid/models/event_type.py
55.55% <0%> (ø)

...mt/eventgrid/models/event_subscription_full_url.py
80% <0%> (ø)

...entgrid/azure/mgmt/eventgrid/models/topic_paged.py
80% <0%> (ø)

...rid/models/event_subscription_update_parameters.py
57.14% <0%> (ø)

...ure/mgmt/eventgrid/event_grid_management_client.py
100% <0%> (ø)

...id/azure/mgmt/eventgrid/models/tracked_resource.py
100% <0%> (ø)

...eventgrid/models/event_subscription_destination.py
100% <0%> (ø)

... and 20 more

Continue to review full report at Codecov.

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


Homebridge Start issue

Hi Guys,
Sorry new to this world, got everything compiled on windows server 2012 R2 but when I try to run homebridge I get this bignum not found error (see below). It looks like the path is correct? So not sure whats going on! I am sure it is something silly I am not seeing
Thanks
Andrew
C:\Users\Andrew\AppData\Roaming\npm\node_modules\homebridge\bin>homebridge
module.js:450
return process.dlopen(module, path._makeLong(filename));
^
Error: The specified module could not be found.
\?\C:\Users\Andrew\AppData\Roaming\npm\node_modules\homebridge\node_modules\big
num\binding\bignum.node
at Error (native)
at Object.Module._extensions..node (module.js:450:18)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object. (C:\Users\Andrew\AppData\Roaming\npm\node_modules\home
bridge\node_modules\bignum\index.js:4:11)
at Module._compile (module.js:425:26)
at Object.Module._extensions..js (module.js:432:10)
at Module.load (module.js:356:32)
C:\Users\Andrew\AppData\Roaming\npm\node_modules\homebridge\bin>

Did you try to npm install?

@Andrew: Have you Node.js 5.0.0 installed?

Hi
Thanks for the reply yes I ran npm install on homebridge and then also tried installing bignum globally with -g option. Didnt work, and yes I am running node 5.0

Maybe this will help you: https://github.com/justmoon/node-bignum/issues/32

Sorry just to be clear the install process works fine. It has a lot of warnings around casting nr's to different types and it might loose data. But Homebridge installs successfully. The error happens when trying to run it

Also having this same problem.


Omnisharp C# server not working

Can you fix this ?
After installing omnisharp language server I fell hook command to attach client is not being executed.
How do I solve this problem ? any suggestion ?
Thank You

I'm not familiar with C#/.NET. Can you give me the procedure to reproduce it?

It should work in any .cs file
I will provide more details within few hours

Thanks, but I could reproduce it. I'm looking for a solution.

Thanks, but I could reproduce it. I'm looking for a solution.

Take any C sharp/ dot net project / file, which has .cs extension
Open it in Nvim, install omnisharp server, :LspInstall omnisharp/csharp
it should attach the client and provide the language features
Thanks

See, in my Linux machine, using nvim-lspinstall,
I installed csharp language server

Obviously it installed without any issue,

and instantly it was hooked and providing LSP features

with your plugin it is named as Omnisharp
It probably installs, but not working
Thank You

I fixed the problem.
Please update plugin and execute LspReInstall omnisharp.

I fixed the problem.
Please update plugin and execute LspReInstall omnisharp.

Yes it worked in my Windows 10 machine

great ! 👍🏻

Awesome ! you are a true Japanese 🥰
Thank You so much


Feat/reenable integration

vscode merge follow-up.  restores test-integration scripts to what they were prior to the merge.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
6 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.01%) to 44.322%

Files with Coverage Reduction
New Missed Lines
%

extensions/notebook/src/book/bookTreeView.ts
2
38.71%

extensions/notebook/src/jupyter/serverInstance.ts
4
75.5%

Totals

Change from base Build<PHONE_NUMBER>:
-0.01%

Covered Lines:
31537

Relevant Lines:
65995

💛  - Coveralls


Show end-of-options -- in usage help options list

Similar to  #795 (Show @filename in options list), it makes sense to give applications a way to display the -- end-of-options delimiter in the usage help message.
This delimiter is a useful way to disambiguate input, but end users are often not aware that this option exists. This ticket proposes to add a showEndOfOptionsDelimiterInUsageHelp attribute to the @Command annotation. Example usage:
@Command(name = "A",
        showEndOfOptionsDelimiterInUsageHelp = true,
        description = "... description ...")
class A {
    @Parameters(arity = "1", description = "The file.")
    private File file;

    @Option(names = {"-x"}, arity="0..*", description = "Option with multiple params.")
    private String params;
}

Example output:
Usage: A [-hV] [-x[=<params>...]] [--] <file>
... description ...
      <file>             The file.
  -x=[<params>...]       Option with multiple params.
  --                     This option can be used to separate command-line
                           options from the list of positional parameters.
(or)
  --                     End of options. Remainder are positional parameters.

In the git commit command, the description for -- is "Do not interpret any more arguments as options." (48 characters)
In the git checkout and git clone commands, the [--] option is shown in the synopsis, but is not shown in the options list.
In the git add and git rm commands, the description for -- is "This option can be used to separate command-line options from the list of files, (useful when filenames might be mistaken for command-line options)." (148 characters)
The git log command combines -- <path> to take another approach:
 [--] <path>...
           Show only commits that are enough to explain how the files that match the specified paths came to be. See
           History Simplification below for details and other simplification modes.

           Paths may need to be prefixed with ‘`-- '’ to separate them from options or the revision range, when
           confusion arises.

Todo:
Link to the Show End of Options section from

https://github.com/remkop/picocli/blob/master/docs/index.adoc#642-variable-arity-options-and-positional-parameters and
https://github.com/remkop/picocli/blob/master/docs/index.adoc#663-optional-parameter-limitations


Amendment: Checkbox

Current iteration of the Checkbox requires the following changes
Animation:

Pulse should be circular to conform with other components

Closed with 10e96dc10ed786db43ba608b10c6c4e6ba9a41b0


WIP: Ubuntu 14.04 Support

Fixing issue #6.
Implementing support to SSL SNI on Python < 2.7.9

We still need to figure out how to skip pip SNI packages on Python >= 2.7.9

Everything should be ready to be merged now.


Change title of validity check

As discussed on scuc23

This is what I mean. The Naming of the button is too long 🙈

Yes bot not responsive 🙈

If I just remove "compatbility"? "Update Wizard" to "Update Check"?

Sounds good for me. Did you think it's clear that this is a compatibility check?

Likely not, but it is less likely understood to be a write operation and curious people might just click on it with a better feeling

Ok, but let's do it 🙈


Feature Request: Ability to Sort Properties

I like my properties being sorted alphabetically. I can author a spec with them ordered, but when reusing schemas to build more complex objects they are no longer sorted. For example, in this situation:
allOf:
  - $ref: '#/components/schemas/object1'
  - $ref: '#/components/schemas/object2'

The properties of object2 will be appended to the properties of object1. I'd like to be able to set something like:
sort-properties = "true" and have the properties of both objects in this example collectively sorted together.

@SingleShot I can imagine the difficulty of getting that right while merging properties. If you don't get that resolved here, I'm wondering if that's something we could tackle over at the OpenAPI Explorer


spec:  interfaces that have different-size method sets never unify (but they possibly could)

What version of Go are you using (go version)?

$ go version
go version go1.19.3 darwin/arm64

Does this issue reproduce with the latest release?
Yes, tested on playground.
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE=""
GOARCH="arm64"
GOBIN=""
GOCACHE="/Users/*/Library/Caches/go-build"
GOENV="/Users/*/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/*/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/*/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/opt/homebrew/Cellar/go/1.19.3/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/opt/homebrew/Cellar/go/1.19.3/libexec/pkg/tool/darwin_arm64"
GOVCS=""
GOVERSION="go1.19.3"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/cl/x9ccznh92fbc0_57g_7nk2gc0000gn/T/go-build3394357358=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

Given GenericInterface1[T any], GenericInterface2[T any] { GenericInterface1[T] }, and a function func F[T any](GI1 GenericInterface1[T](), T is not inferred if we pass to F a GenericInterface2.
https://go.dev/play/p/dsZOHq2Y1Au
What did you expect to see?
Type inference to work since GenericInterface2 is also GenericInterface1, and since passing to F a declared variable of type GenericInterface1[T] works (if it's not explicitly declared, then type inference cannot infer T even for GenericInterface1).
What did you see instead?
Compilation failure.

This is expected behavior for the current language spec.  Changing this to be a language issue.

There are two issues here:

Two interface types, even with the same type set (which includes methods), do not unify if they are defined types with different names. We probably should ignore the names of interface types.

Two interface types which don't have identical type sets do not unify. But if one interface's typeset is a superset of the other (e.g., the method set of one interface is a subset of the method set of the other), they probably should unify.

If we do 1) and 2), this example will work.

In fact this is directly related to https://github.com/golang/go/issues/40055 with a similar solution: if one interface implements the other under unification, this will work.

Submitted accidentally, revert in progress. Reopening.


Fixed SteamVR not initialized when only using SteamVR_Behaviour_Skeleton

When I was only using SteamVR_Behaviour_Skeleton scripts to track hands in my scene, the skeleton tracking and pose tracking were not working because SteamVR was not correctly initialized.
I checked the script in SteamVR_Behaviour_Pose and it would initialize SteamVR when it was enabled. So I added the same fix to the skeleton script in case only SteamVR_Behaviour_Skeleton is used in the scene instead of SteamVR_Behaviour_Pose.

It seems that the issue was fixed in v2.5.0 so I will just close this PR. Thanks again for the timely fix!


DPL-890 - As developers we need to upgrade Quanthub to Vue 3 as Vue 2 is out of support in December 2023

User story
As developers we need to upgrade Quanthub to Vue 3 as Vue 2 is out of support in December 2023. This will mean there are no more security or feature upgrades and so this creates a security risk.
Who are the primary contacts for this story
Steve
Who is the nominated tester for UAT
PSD
Acceptance criteria
To be considered successful the solution must allow. (Tasks must be done in order):

[ ] Upgrade node to a supported version (>= 18)
[ ] Remove webpack and replace it with Vite
[ ] Replace Jest with Vitest
[ ] Replace Bootstrap with in-house components and styling
[ ] Upgrade to latest version of Vue 2
[ ] Upgrade to Vue 3

Dependencies
This story is blocked by the following dependencies:

#<issue_no.>
sanger/#<issue_no.>

References
This story has a non-blocking relationship with:

#<issue_no.>
sanger/#<issue_no.>

Additional context
It will make sense to break this story down into further stories.

Created the below stories:
DPL-890-1
DPL-890-2
DPL-890-3

Closed as done


Dynamic Progress Bar

This PR renders the name of the labeling function in the progress bar.
Elapsed: 00:00 | Remaining: 00:00 | Progress: 100%|████| Calculated: 5/5 my_labels

i think this should be the value of target_entity. because that is what we are iterating over

I updated to render target entity.
Elapsed: 00:00 | Remaining: 00:00 | Progress: 100%|██| Calculated: 5/5 customer_id

What do you think about this rendering?
Elapsed: 00:00 | Remaining: 00:00 | Progress: 100%|██| CUSTOMER_ID: 5/5

what changed? just the move to all caps?
i think keep it in the same capitalization as the input

Yes, also replaced Calculated. Okay, I will update to this format.
Elapsed: 00:00 | Remaining: 00:00 | Progress: 100%|██| customer_id: 5/5


template(data) get a string?

when i pass data to template by template(data), i get a string like module.exports = function anonymous(locals, escape, include, rethrow) {...
but, i expect it return a html pice, can you tell me how to do?  thank you very mush.

Not sure why is it happening to you. What's in your template? And what data are you passing? Can you put a code sample with your config on github so I could reproduce?

this is my code:
var template = require('ejs!./tpl/index.ejs');
var data = {name: 'alice'};

template(data); // this retrun a string, like "module.exports=...."

And what is in your ejs file? Does underscore  compiles it properly? Did you try without the loader?
Regards,
Andrey Okonetchnikov

On 30.05.2015, at 17:27, 德胜<EMAIL_ADDRESS>wrote:
this is my code:
var template = require('ejs!./tpl/index.ejs');
var data = {name: 'alice'};
template(data); // this retrun a string, like "module.exports=...."
—
Reply to this email directly or view it on GitHub.

https://github.com/okonet/ejs-loader/blob/master/index.js#L8
there return a string.
i use it with my render function like this, it works now.
var render = function(template, data){
        return eval(template({data: data}))({data: data});
    };


Add bower.json

It would be great if you could add a bower.json file so this package becomes available for installation from bower.
Setting up bower.json is relatively easy and can be done in ~5 minutes!
http://bower.io/docs/creating-packages/

https://github.com/flaviosilveira/Jquery-Price-Format/pull/36


IE 9 live search issue after searching non existing item

Hi,
I am using bootstrap-select  and it is working fine for me except in IE 9 , when I tried to search non existing item via the live search , then deleted the text, the options list does not show up again.I tried it also in the demo page.
Thanks in advance.

Can you please advise if there is work around for this issue ?

I also have the same issue, Any suggestions

Any chances to have it fixed in near future or next release?

@silviomoreto Is it possible to include this fix in next release?


Search by qp=content.length with not Integer type

Used search qp=content.lenght equals/bigger/less then not Integer type.
Example: ?op=search&recursive&qp=content.length:<10.5 or char 'a'>
Return:
status 400 and favicon.ico 404.
Output:
{"success":false,"error":"Failed to execute phase [query], all shards failed; shardFailures {[Vt5uBhfZSZqq8][cm_well_p0_0][0]: RemoteTransportException[[inet[/]][indices:data/read/search[phase/query]]]; nested: SearchParseException[[cm_well_p0_0][0]: from[0],size[10]: Parse Failure [Failed to parse source [{\"from\":0,\"size\":10,\"query\":{\"filtered\":{\"query\":{\"bool\":{\"must\":{\"match\":{\"content.length\":{\"query\":\"10000.5\",\"type\":\"phrase\"}}}}},\"filter\":{\"bool\":{\"must\":{\"term\":{\"system.current\":true}},\"must_not\":{\"term\":{\"system.kind\":\"DeletedInfoton\"}}}}}},\"fields\":
Tested via:
CURL and Chrome.

It's not a bug. response code should be 400. failure message could be friendlier instead of just exposing ES failure.
Bottom line, not a bug.

From what I asked and we saw that there is a result of 400 which is good, on the other hand, there is an output that we probably do not want to receive so it is incompatibility.


Create schedual ci

We need to establish a scheduled CI task that performs the following:

Executes loco new to generate a new loco app.
Builds the app and verifies the generator sites are functioning correctly.

Implementing this CI task will enable us to identify and address potential errors proactively, preventing any impact on our users. Refer to the example issue #85 for more details.

hey @arferreira
this issues are already done.
you can choose another issue and I'll love to help you

Hey @kaplanelad I was just looking to contribute with something, I was using my own framework in my current projects.
I liked loco's spectrum.
Just let me know if I can contribute with this.

Your contributions to our project are greatly appreciated! Feel free to choose an issue that interests you, and we can discuss the details there.


Use nodejs assert to and test inv routing

Checkout mocha.js

Not the right use case for testing/assertion. This has to be done using mock code


Authentication Issues with YouTube Custom Connector

Hi followed your instructions and when i get to the Log on Screen to validate my credentials I get the following error message.  Any ideas on how to resolve this?

it seems to be related to your version of the WebApp.json file. You'll need to make sure that it's correctly set up and named in your custom connector.

Thanks for the tip.  Now, I am getting an issue with the redirect URL.  How do I know what that URL should be?

Please refer to the step one of the documentation on how to set up your WebApp and redirect url.

Thank you for your help.  It worked.


An empty section in configuration raise a non explicit error

$ cat .rubocop.yml
AllCops:
  RunRailsCops: true

Rails/HasAndBelongsToMany:
$ touch foobar.rb
$ rubocop foobar.rb
Inspecting 1 file

0 files inspected, no offenses detected
undefined method `each_key' for nil:NilClass
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/config.rb:177:in `block in validate_parameter_names'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/config.rb:176:in `each'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/config.rb:176:in `validate_parameter_names'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/config.rb:111:in `validate'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/config.rb:80:in `warn_unless_valid'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/config_loader.rb:41:in `load_file'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/config_loader.rb:85:in `configuration_from_file'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/config_store.rb:40:in `for'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/runner.rb:127:in `inspect_file'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/runner.rb:100:in `block in do_inspection_loop'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/runner.rb:94:in `loop'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/runner.rb:94:in `do_inspection_loop'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/runner.rb:72:in `process_file'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/runner.rb:53:in `block in inspect_files'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/runner.rb:51:in `each'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/runner.rb:51:in `inspect_files'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/runner.rb:30:in `run'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/lib/rubocop/cli.rb:24:in `run'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/bin/rubocop:13:in `block in <top (required)>'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/2.0.0/benchmark.rb:296:in `realtime'
/usr/local/var/rbenv/versions/2.0.0-p353/lib/ruby/gems/2.0.0/gems/rubocop-0.30.0/bin/rubocop:12:in `<top (required)>'
/usr/local/var/rbenv/versions/2.0.0-p353/bin/rubocop:23:in `load'
/usr/local/var/rbenv/versions/2.0.0-p353/bin/rubocop:23:in `<main>'
$

I'll propose a PR

:+1: Good.

closed by PR #1784


Refs #23559: warned about letting users edit User model in admin interface

This adds a warning to the beginner tutorial that you shouldn't give normal users permission to edit the User model, as that amounts to giving them superuser rights. Some more work should be done to completely solve issue #23559, because there should also be more detailed information elsewhere in the documentation about how to safely let regular users administer the User model.

I think this is too much information for the tutorial (it's not a concern for new users just trying to learn Django basics). Somewhere around topics/auth/default/#permissions-and-authorization seems more appropriate.

merged in f6b09a7f85c3b67b2011553838b079788c413432, thanks!


Collect SUSE

https://www.suse.com/support/security/cvrf/

Here are a few candidate CVRF libraries and pointers that may be of some help:

@mprpic https://github.com/mprpic/advisory-parser (which has quite a few interesting formats beyond CVRF)
@mschiffm https://github.com/mschiffm/cvrfparse
https://github.com/oasis-open/csaf-parser
https://github.com/sdrees/cvrf-util
https://github.com/efrenfuentes/cvrfparse

And articles or specs:

https://blogs.cisco.com/security/tools-of-the-trade-cvrfparse
https://blogs.cisco.com/security/the-missing-manual-cvrf-1-1-part-1-of-2
https://blogs.cisco.com/security/the-missing-manual-cvrf-1-1-part-2-of-2
https://blogs.cisco.com/security/cvrf-1-2-2
https://github.com/CVRF
https://github.com/oasis-tcs/csaf
https://github.com/oasis-open/csaf-documentation
https://docs.oasis-open.org/csaf/csaf-cvrf/v1.2/cs01/csaf-cvrf-v1.2-cs01.html

Also, not sure this is all up to date but we have https://support.novell.com/security/oval/suse.linux.enterprise.server.11.xml

This is  the total data which I am able to get
Note_Notes :::: Title:Vulnerability Description|Type:General|Ordinal:1|{http://www.w3.org/XML/1998/namespace}lang:en|Systems with microprocessors utilizing speculative execution and indirect branch prediction may allow unauthorized disclosure of information to an attacker with local user access via a side-channel analysis.
ProductID :::: openSUSE Leap 42.3:ucode-intel-debuginfo-20170707-13.1
CVE_Vulnerability :::: CVE-2017-5715
Status_ProductStatuses :::: Type:Fixed
Threat_Threats :::: Type:Impact|Description:critical
BaseScore_ScoreSet :::: 4.7
Vector_ScoreSet :::: AV:L/AC:M/Au:N/C:C/I:N/A:N
Remediation_Remediations :::: Type:Vendor Fix|URL:http://lists.opensuse.org/opensuse-security-announce/2018-01/msg00015.html
Description_Remediation :::: {http://www.w3.org/XML/1998/namespace}lang:en|Please Install the update.
URL_Reference :::: ['https://www.suse.com/security/cve/CVE-2017-5715.html', 'https://bugzilla.suse.com/1068032', 'https://bugzilla.suse.com/1074562', 'https://bugzilla.suse.com/1074578', 'https://bugzilla.suse.com/1074701', 'https://bugzilla.suse.com/1074919', 'https://bugzilla.suse.com/1075006', 'https://bugzilla.suse.com/1075007', 'https://bugzilla.suse.com/1075419']
Description_Reference :::: ['CVE-2017-5715', 'SUSE Bug 1068032', 'SUSE Bug 1074562', 'SUSE Bug 1074578', 'SUSE Bug 1074701', 'SUSE Bug 1074919', 'SUSE Bug 1075006', 'SUSE Bug 1075007', 'SUSE Bug 1075419']
FullProductName :::: ProductID:openSUSE Leap 42.3:ucode-intel-debuginfo-20170707-13.1|ucode-intel-debuginfo-20170707-13.1 as a component of openSUSE Leap 42.3
Relationship :::: ProductReference:ucode-intel-debuginfo-20170707-13.1|RelationType:Default Component Of|RelatesToProductReference:openSUSE Leap 42.3

Which is further filtered to get
 {'title': 'Systems with microprocessors utilizing speculative execution and indirect branch prediction may allow unauthorized disclosure of information to an attacker with local user access via a side-channel analysis.', 'platform': 'openSUSE Leap 42.3', 'cve_id': 'CVE-2017-5715', 'package': 'ucode-intel-debuginfo-20170707-13.1'}
Let me know if we can add more data to the above dict from the total data

@sbs2001 thanks! Adding the URLs in URL_Reference as VulnerabilityReference would be nice.

Just discovered http://ftp.suse.com/pub/projects/security/ , specifically http://ftp.suse.com/pub/projects/security/yaml/ is useful, we could populate our db with resolved packages(these yamls basically contains list of backports with fix to vulnerabilities). http://ftp.suse.com/pub/projects/security/oval/  is of limited value as I am not sure what difference will it make compared to using CVRF.
http://ftp.suse.com/pub/projects/security/yaml/suse-cvss-scores.yaml is also interesting considering we might want to collect severity indicators of a particular vulnerability from different sources.


Plugin nativization

Hi,
Thanks for this plugin! It's doing the job. I wanted to ask, is it possible to nativize this plugin? I had some problems in the past with plugin nativization and quite often it doesn't work.

It was working last time I checked yes, and I check each engine version. However nativization breaks quite often in engine (not really different plugins faults normally), likely why its being removed in UE5.

It was working last time I checked yes, and I check each engine version. However nativization breaks quite often in engine (not really different plugins faults normally), likely why its being removed in UE5.

@mordentral can you tell me How you did the setup of plugin. In ue4.26.1 nativizate works fine but after that não ivizate broken my project and i need it

Broke it how? it should be spitting out errors for you on packaging if nativization is failing.

@mordentral I left the advanced session(steam and Lan) in the plugins folder, and configured the project in c++ and the config folder. In version 4.26.1 when I used nativizated everything worked fine, but after the update to 4.26.2 the plugin is failing when I activate nativizated. I would like to know how you configured the plugin to not give an error?
Tutorial i saw: https://youtu.be/EDNF2DNLhPc
OBS: I report an error in a previous post and it seems to only happen with the "advanced session"
public: __cdecl AAdvancedGameSession::AAdvancedGameSession(class FObjectInitializer const &)

I didn't test it in .2, but its not uncommon for even hotfixes to break nativization, I stopped trying to track it too closely as this is all based off of their automatic code generation and I have very little control over the bugs that it creates.

@mordentral ok thanks at all, but pliss if you can fix this plugin i will be very grateful

I believe that I already told you, but I will specifically state it. I cannot fix their nativisation bugging out in it's generation, it's a bug on their end not mine. Which is likely why ue5 is dropping it. I stopped suggesting that people fully nativize a long time ago and suggest that they only nativize classes that need it.


Menu items not responding and project files not visible in 1.7 OSX 10.11.5

I just installed the latest 1.7 version via the .dmg installer, but when I open Brackets it shows no files and the Menu items won't respond.
I've attached a screenshot of what this looks like:

Here's a screencast of the menu items not responding:
https://dl.dropboxusercontent.com/u/18567/brackets-1.7-menus-not-working.m4v
I'm running OSX 10.11.5 on a late 2011 15" MacBook Pro 2 GHz Intel Core i7, 8GB Ram, AMD Radeon HD 6490M 256 MB.

@rickcurran Can you delete the preferences and try launching Brackets?

Deleting the preferences did get it working, but unfortunately all of my project configurations are gone and it's just showing as if I'm using Brackets for the first time (which makes sense as I've just killed the preferences). It's going to be a bit of a pain having to go back through all of these projects and re-configure it! 👎

@rickcurran sorry to hear about that.  I should have been more explicit about renaming the preferences folder.

It's ok, I backed up all my preference files, but I've been unable to copy any of them back and get it back to where I was before this issue. I did get 95% of the way there by disabling all of the extensions I use and copying over my previous brackets.json file, this did bring in my site files but for some reason the dropdown menu for switching between projects wouldn't work. I think I'm going to have no choice but to re-configure it all (I'll use it as an opportunity to clean things up a bit!).

@rickcurran Recent projects, etc are stored in state.json, so try renaming that file.

@rickcurran were you able to solve your problem?

@ficristo Yep, as per my last comment above I had to basically reset everything in Brackets to get it working again, copying over the existing brackets.json file didn't work. So, a bit of a clean restart for me there to get it working again, not too big a deal as it was easy enough to get all the extensions back in.

Glad you worked out your problem :+1:.
Closing.


running wget with terminal=false

Hi!
I'm trying to start a bashscript with bitbar, which then runs a wget post request on a webserver in my local network. The problem is, that as soon as I set terminal=falsewget is not executed.
While it works with terminal=true or when starting the script from terminal I can't get it running trough bitbar.
The line in the bitbar-plugin:
#!/bin/bash
echo "Boxen an | terminal=false bash='~/Documents/bitbar/kommandozentrale/1_1_1.sh'"

and 1_1_1.sh (which is executable) :
#!/bin/bash
wget -bqO- http://rpi.local/php/send.php --post-data "steckdose=1_1_1" &>/dev/null

I also tried running the wget command directly from bitbar with specifying the parameters with param1=foo but it results to the same behavior.
Has anyone an idea?

Can you try an absolute path (replacing the ~ with /Users/user, assuming the script is indeed executable) or bash=/bin/bash param1=path/to/script?

If you want it in a single script, try something like this:
if [ "$1" = action ]; then
  wget -bqO- http://rpi.local/php/send.php --post-data "steckdose=1_1_1" &>/dev/null
  return
fi

echo "Boxen an | bash=$0 param1=action terminal=false"

ls -lsays its executable
-rwxr-xr-x  1 sim  staff  129 13 Aug 09:26 1_1_1.sh

Changing ~to the absolute path doesn't change anything.
Moving the command in the plugin itself with yout snippet doesn't work, too.
I don't get why it "needs" the terminal output to run, even if wget is mutet with the -bO.

Try curl maybe?
curl -s --data "steckdose=1_1_1" http://rpi.local/php/send.php

I tried curlbefore trying it with wget, but I also had no luck there.
If I find some time later, I'm tying to get it to work with php and/or php-curl. I'll keep you updated.

I have a similar issue. I have a python script that executes a few different applescripts. When terminal=false is set, the scripts do not run. When terminal=true they run just fine.  Executing the command inside a terminal session works. I've tried using a bash string instead of string formatting. Executing the scripts in applescript editor works. Executing them via the python environment works. And executing them via zsh works. So the issue seems to be bitbar, not the scripts. As @simonkub mentioned, I'd tried rewriting the script to call itself, then call applescript, and it makes no difference.
Likewise, here's a few snippets:
youtubeClick = '/Users/rjadmin/Documents/automation/youtube_play_pause.applescript'
print '{0} | bash=osascript param1={1} param2={2} terminal=true refresh=true'.format(title, youtubeClick, url)

@robertjacobson Try /usr/bin/osascript or which osascript instead of just osascript.

tldr: @iosdeveloper that worked, thank you!
I could've swore I tried that, but I must've tried it before when I was sending the parameters as a single string. Thanks.

I had the same issue with a node script. Setting the option terminal="false" did not run the script in the background.
This is a solution:
console.log(`Run in background | terminal="false" bash="/usr/local/bin/node" args="/Users/user/work/bitbar/myplugin/file.js__351760"`)

Note that arguments are separated by __ (double underscore).
If this is applicable to other languages, it should be documented.

I had the same issue with a node script. Setting the option terminal="false" did not run the script in the background.
This is a solution:
console.log(`Run in background | terminal="false" bash="/usr/local/bin/node" args="/Users/user/work/bitbar/myplugin/file.js__351760"`)

Note that arguments are separated by __ (double underscore).
If this is applicable to other languages, it should be documented.

After hours of search for solution, this thread finally solved my problem.

bumped into this as well, but I'm not sure how to get it to work, even with @napravicukod workaround... If I run with terminal=true it works fine, with terminal=false it doesn't (and obviously there's no easy way to debug without the terminal).
I'm trying something very simple, to allow me to toggle the bitbar state via touching and rming a flag file, so script looks like this more or less (simplified)
#!/bin/bash
if [ -f ~/tmp/flag ]; then
    echo "."
    echo ---
    echo 'resume |terminal=false refresh=true bash="rm ~/tmp/flag"'
    exit 0
fi

# plugin code here
echo ---
echo 'pause |terminal=false refresh=true bash="touch ~/tmp/flag"'

Any tips on how to make this work with terminal=false?

found a workaround here, which feels a bit odd, but seems to work. So my script to pause/resume a plugin looks like this now
#!/bin/bash

if [[ "$1" = "pause" ]]; then
    touch ~/tmp/flag
fi
if [[ "$1" = "resume" ]]; then
    rm ~/tmp/flag
fi

if [ -f ~/tmp/flag ]; then
    echo "."
    echo ---
    echo "resume |terminal=false refresh=true bash=$0 param1=resume"
    exit 0
fi

# plugin code here
echo ---
echo "pause |terminal=false refresh=true bash=$0 param1=pause"


Deploying to Azure Storage from VSCode error

Repro steps:

Right click on folder and select Deploy to Static Website
Select Subscription
Select Storage

get an error

Action: azureStorage.deployStaticWebsite
Error type: Error
Error Message: Only general purpose V2 storage accounts support static website hosting.
Version: 0.7.1
OS: darwin

Here is the fix
https://docs.microsoft.com/en-us/azure/storage/common/storage-account-upgrade


Generate dataframe for new loader

Context
This issue is part of the loader refactoring project to include microscopy data (#304) and to migrate to HDF5 loader (#474).
Following this comment, the first step is to generate a dataframe with filenames and images infos by checking data/derivatives availability and associated metadata.
It also aims to remove the dependency to bids_neuropoly.
Steps to generate dataframe

Get a list of all files in BIDS folders starting with sub* and ending with specified extensions, including derivatives (ignore json or other files). Questions:

Should the extensions be specified as: all extensions compliant with BIDS for supported data_type (anat and microscopy) or extensions specified by user in the config file?
Should derivatives include: all files or only files with specified seg-<label> (target_suffix) in config file?

Parse all entities in filename for supported modalities (sub, ses, scan, run, ce, down, acq, rec) + suffix for modality + seg-<label> for derivatives

Create a dataframe with 1 line for each file with: filename, all entities’ labels, modality, data_type, filetype, seg-<label>, absolute_path, dataset_root

Read TSV files if present (participants, samples, sessions, scans), add columns to dataframe.

Read JSON sidecar files, add columns to dataframe.

Read appropriate metadata directly from file, depending on the filetype, add columns to dataframe.

Other considerations
Somewhere, we should check derivatives availability. Currently, the check is done after the split when loading the dataset, both in traditional and adaptative loader. What is best?
We might want to take a look at or use pybids which is a package maintained by BIDS to interact with BIDS datsets.
Next step
Once the dataframe is done, the next step would be the split which could be done by filtering one or several columns of the dataframe.

We might want to take a look at or use pybids which is a package maintained by BIDS to interact with BIDS datsets.

I quickly looked at  their tutorial  and it seems that pybids does this exact step (query all BIDS params, etc.). I would be in favor of using already existing tools such as pybids. The only thing to consider is that we might have special needs, e.g., in the case microscopy images can't loaded with their tool.

Should the extensions be specified as: all extensions compliant with BIDS for supported data_type (anat and microscopy) or extensions specified by user in the config file?
Should derivatives include: all files or only files with specified seg-<label> (target_suffix) in config file?

From what I understand from pybids, if we use their library don't have to make these choices since the parsing is done on their end.
I think it would be wise to invest some time in understanding this tool. It might save us some time in the end.

I would be in favor of using already existing tools such as pybids.

👍

I tested the pybids library, and it does cover a lot of operations we want to do to generate the dataframe.
What we can do with it:

Create a BIDSlayout containing all files present in the BIDS path and including all JSON metadata automatically
Create a dataframe with 1 line per path/filename and 1 column per entities and json metadata field
Good news, while the microscopy BEP is still in progress and not merged with the BIDS specification, it is possible to use a custom config file to create the layout and parse additional entities for microscopy, as well as skip the BIDS-validator

What it does not do:

Derivatives files are indexed but NOT their entities or metadata, the corresponding lines in the dataframe only have the path/filename
A dataset_description.json file must be present in the derivatives or labels folder for the indexing to work

Still to be tested:

How to read and merge columns from TSV files into the dataframe

Overall, it would be wise to use the pybids library to index the main subjects folders (without derivatives), it will save us a lot of time and will be compliant with other supported modalities (like MEG, EEG) and future modalities.
For the derivatives, I suggest we re-use and adapt the has_derivatives and get_derivatives functions from bids_neuropoly directly in ivadomed, to pair the image with the groundtruth after the split (same as what is done currently in both the traditional and adaptative loader, example here).


ActiveForm: onsubmit fired twice

ActiveForm validation causes onsubmit event firing twice.
Here's a simple form:
<? $test = ActiveForm::begin(array('options' => array('id' => 'myform'))); ?>
<?= $test->field($record, 'name')->textInput(); ?>
<input type="submit" name="ok" value="ok" />
<? ActiveForm::end(); ?

and a custom js handler:
$('#myform').on('submit', function(e) {
	e.preventDefault();
	console.log('onsubmit fired');
});

If there are any client-side validators for $record->name (for example, 'required'), submit event is fired twice.
If this field has no validation (or there are no fields at all in the form except submit button), onsubmit is fired once.

In my case submit button name was "submit".
Forms and their child elements should not use input names or ids that conflict with properties of a form, such as submit, length, or method. Name conflicts can cause confusing failures


Harrison/spark reader

Just an heads up, this PR introduces a dependency for psutil which apparently doesn't exist by default in all python container images. I got some issues cause my ci suddenly started failing cause when running pytest it couldn't find psutil.

Just an heads up, this PR introduces a dependency for psutil which apparently doesn't exist by default in all python container images. I got some issues cause my ci suddenly started failing cause when running pytest it couldn't find psutil.
For context, running python 3.11

great catch, thanks for heads up @TSPereira


support for passing managed identity client id

When Azure VM is assigned more than one managed identity, the Azure AD expects the client id to be used for generating an auth token. Currently, azure-amqp-common-go is not considering the clientID when using MSI authentication.
Expected Behavior
managed identity based  authentication should consider the ClientId when not empty
Actual Behavior
Environment

Version of Library: 2.1.0

Fixed in v3.1.0, thanks for the PR.


⚠ Bofrost.fr has degraded performance

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

HTTP code: 200
Response time: 2488 ms

Resolved: Bofrost.fr performance has improved in 5ea763b.


Only showing credit card as payment option

Everything is working fine when using the test API key, but as soon as I start using my live API key I only get credit card as payment option.
Is set in cashier.first_payment
      'method' => null,

The following code creates the subscription
        $builder = user()->newSubscriptionViaMollieCheckout('default', $subscription);

        if ($this->coupon) {
            $builder->withCoupon($this->coupon);
        }

        return redirect()->to($builder->create()->getTargetUrl());

I cant seem to figure out why this doesn't work.

Can you check in the Mollie dashboard that for the production key you're using the payment methods have been enabled AND have been approved?
In case of PayPal recurring you probably need to take additional steps to get it enabled. Docs

Can you check in the Mollie dashboard that for the production key you're using the payment methods have been enabled AND have been approved?
In case of PayPal recurring you probably need to take additional steps to get it enabled. Docs

I checked and it seems to be okay, I also mailed mollie support to check if my account is okay.
Changed the payment method from
'method' => null

to
'method' => 'ideal',

As mentioned above the method config
But then I got the error
The payment method selected does not accept recurring payments. Field: method. Documentation: https://docs.mollie.com/guides/handling-errors

With the testing API key, it does accept ideal as a payment method.
Ill check the mollie methods API and see what it returns

I checked and it seems to be okay, I also mailed mollie support to check if my account is okay.
Changed the payment method from
'method' => null

to
'method' => 'ideal',

As mentioned above the method config
But then I got the error
The payment method selected does not accept recurring payments. Field: method. Documentation: https://docs.mollie.com/guides/handling-errors

With the testing API key, it does accept ideal as a payment method.
Ill check the mollie methods API and see what it returns

{
"_embedded": {
"methods": [
{
"resource": "method",
"id": "ideal",
"description": "iDEAL",
"minimumAmount": {
"value": "0.01",
"currency": "EUR"
},
"maximumAmount": {
"value": "50000.00",
"currency": "EUR"
},
"image": {
"size1x": "https://www.mollie.com/external/icons/payment-methods/ideal.png",
"size2x": "https://www.mollie.com/external/icons/payment-methods/ideal%402x.png",
"svg": "https://www.mollie.com/external/icons/payment-methods/ideal.svg"
},
"status": "activated",
"_links": {
"self": {
"href": "https://api.mollie.com/v2/methods/ideal",
"type": "application/hal+json"
}
}
},
{
"resource": "method",
"id": "creditcard",
"description": "Credit card",
"minimumAmount": {
"value": "0.01",
"currency": "EUR"
},
"maximumAmount": {
"value": "5000.00",
"currency": "EUR"
},
"image": {
"size1x": "https://www.mollie.com/external/icons/payment-methods/creditcard.png",
"size2x": "https://www.mollie.com/external/icons/payment-methods/creditcard%402x.png",
"svg": "https://www.mollie.com/external/icons/payment-methods/creditcard.svg"
},
"status": "activated",
"_links": {
"self": {
"href": "https://api.mollie.com/v2/methods/creditcard",
"type": "application/hal+json"
}
}
},
{
"resource": "method",
"id": "sofort",
"description": "SOFORT Banking",
"minimumAmount": {
"value": "0.10",
"currency": "EUR"
},
"maximumAmount": {
"value": "50000.00",
"currency": "EUR"
},
"image": {
"size1x": "https://www.mollie.com/external/icons/payment-methods/sofort.png",
"size2x": "https://www.mollie.com/external/icons/payment-methods/sofort%402x.png",
"svg": "https://www.mollie.com/external/icons/payment-methods/sofort.svg"
},
"status": "activated",
"_links": {
"self": {
"href": "https://api.mollie.com/v2/methods/sofort",
"type": "application/hal+json"
}
}
},
{
"resource": "method",
"id": "bancontact",
"description": "Bancontact",
"minimumAmount": {
"value": "0.02",
"currency": "EUR"
},
"maximumAmount": {
"value": "50000.00",
"currency": "EUR"
},
"image": {
"size1x": "https://www.mollie.com/external/icons/payment-methods/bancontact.png",
"size2x": "https://www.mollie.com/external/icons/payment-methods/bancontact%402x.png",
"svg": "https://www.mollie.com/external/icons/payment-methods/bancontact.svg"
},
"status": "activated",
"_links": {
"self": {
"href": "https://api.mollie.com/v2/methods/bancontact",
"type": "application/hal+json"
}
}
}
]
},
"count": 4,
"_links": {
"documentation": {
"href": "https://docs.mollie.com/reference/v2/methods-api/list-methods",
"type": "text/html"
},
"self": {
"href": "https://api.mollie.com/v2/methods?sequenceType=first",
"type": "application/hal+json"
}
}
}

{
"_embedded": {
"methods": [
{
"resource": "method",
"id": "ideal",
"description": "iDEAL",
"minimumAmount": {
"value": "0.01",
"currency": "EUR"
},
"maximumAmount": {
"value": "50000.00",
"currency": "EUR"
},
"image": {
"size1x": "https://www.mollie.com/external/icons/payment-methods/ideal.png",
"size2x": "https://www.mollie.com/external/icons/payment-methods/ideal%402x.png",
"svg": "https://www.mollie.com/external/icons/payment-methods/ideal.svg"
},
"status": "activated",
"_links": {
"self": {
"href": "https://api.mollie.com/v2/methods/ideal",
"type": "application/hal+json"
}
}
},
{
"resource": "method",
"id": "creditcard",
"description": "Credit card",
"minimumAmount": {
"value": "0.01",
"currency": "EUR"
},
"maximumAmount": {
"value": "5000.00",
"currency": "EUR"
},
"image": {
"size1x": "https://www.mollie.com/external/icons/payment-methods/creditcard.png",
"size2x": "https://www.mollie.com/external/icons/payment-methods/creditcard%402x.png",
"svg": "https://www.mollie.com/external/icons/payment-methods/creditcard.svg"
},
"status": "activated",
"_links": {
"self": {
"href": "https://api.mollie.com/v2/methods/creditcard",
"type": "application/hal+json"
}
}
},
{
"resource": "method",
"id": "sofort",
"description": "SOFORT Banking",
"minimumAmount": {
"value": "0.10",
"currency": "EUR"
},
"maximumAmount": {
"value": "50000.00",
"currency": "EUR"
},
"image": {
"size1x": "https://www.mollie.com/external/icons/payment-methods/sofort.png",
"size2x": "https://www.mollie.com/external/icons/payment-methods/sofort%402x.png",
"svg": "https://www.mollie.com/external/icons/payment-methods/sofort.svg"
},
"status": "activated",
"_links": {
"self": {
"href": "https://api.mollie.com/v2/methods/sofort",
"type": "application/hal+json"
}
}
},
{
"resource": "method",
"id": "bancontact",
"description": "Bancontact",
"minimumAmount": {
"value": "0.02",
"currency": "EUR"
},
"maximumAmount": {
"value": "50000.00",
"currency": "EUR"
},
"image": {
"size1x": "https://www.mollie.com/external/icons/payment-methods/bancontact.png",
"size2x": "https://www.mollie.com/external/icons/payment-methods/bancontact%402x.png",
"svg": "https://www.mollie.com/external/icons/payment-methods/bancontact.svg"
},
"status": "activated",
"_links": {
"self": {
"href": "https://api.mollie.com/v2/methods/bancontact",
"type": "application/hal+json"
}
}
}
]
},
"count": 4,
"_links": {
"documentation": {
"href": "https://docs.mollie.com/reference/v2/methods-api/list-methods",
"type": "text/html"
},
"self": {
"href": "https://api.mollie.com/v2/methods?sequenceType=first",
"type": "application/hal+json"
}
}
}

I accessed the mollie API with the following URL https://api.mollie.com/v2/methods?sequenceType=first.
And got the following response.
{
    "_embedded": {
        "methods": [
            {
                "resource": "method",
                "id": "ideal",
                "description": "iDEAL",
                "minimumAmount": {
                    "value": "0.01",
                    "currency": "EUR"
                },
                "maximumAmount": {
                    "value": "50000.00",
                    "currency": "EUR"
                },
                "image": {
                    "size1x": "https://www.mollie.com/external/icons/payment-methods/ideal.png",
                    "size2x": "https://www.mollie.com/external/icons/payment-methods/ideal%402x.png",
                    "svg": "https://www.mollie.com/external/icons/payment-methods/ideal.svg"
                },
                "status": "activated",
                "_links": {
                    "self": {
                        "href": "https://api.mollie.com/v2/methods/ideal",
                        "type": "application/hal+json"
                    }
                }
            },
            {
                "resource": "method",
                "id": "creditcard",
                "description": "Credit card",
                "minimumAmount": {
                    "value": "0.01",
                    "currency": "EUR"
                },
                "maximumAmount": {
                    "value": "5000.00",
                    "currency": "EUR"
                },
                "image": {
                    "size1x": "https://www.mollie.com/external/icons/payment-methods/creditcard.png",
                    "size2x": "https://www.mollie.com/external/icons/payment-methods/creditcard%402x.png",
                    "svg": "https://www.mollie.com/external/icons/payment-methods/creditcard.svg"
                },
                "status": "activated",
                "_links": {
                    "self": {
                        "href": "https://api.mollie.com/v2/methods/creditcard",
                        "type": "application/hal+json"
                    }
                }
            },
            {
                "resource": "method",
                "id": "sofort",
                "description": "SOFORT Banking",
                "minimumAmount": {
                    "value": "0.10",
                    "currency": "EUR"
                },
                "maximumAmount": {
                    "value": "50000.00",
                    "currency": "EUR"
                },
                "image": {
                    "size1x": "https://www.mollie.com/external/icons/payment-methods/sofort.png",
                    "size2x": "https://www.mollie.com/external/icons/payment-methods/sofort%402x.png",
                    "svg": "https://www.mollie.com/external/icons/payment-methods/sofort.svg"
                },
                "status": "activated",
                "_links": {
                    "self": {
                        "href": "https://api.mollie.com/v2/methods/sofort",
                        "type": "application/hal+json"
                    }
                }
            },
            {
                "resource": "method",
                "id": "bancontact",
                "description": "Bancontact",
                "minimumAmount": {
                    "value": "0.02",
                    "currency": "EUR"
                },
                "maximumAmount": {
                    "value": "50000.00",
                    "currency": "EUR"
                },
                "image": {
                    "size1x": "https://www.mollie.com/external/icons/payment-methods/bancontact.png",
                    "size2x": "https://www.mollie.com/external/icons/payment-methods/bancontact%402x.png",
                    "svg": "https://www.mollie.com/external/icons/payment-methods/bancontact.svg"
                },
                "status": "activated",
                "_links": {
                    "self": {
                        "href": "https://api.mollie.com/v2/methods/bancontact",
                        "type": "application/hal+json"
                    }
                }
            }
        ]
    },
    "count": 4,
    "_links": {
        "documentation": {
            "href": "https://docs.mollie.com/reference/v2/methods-api/list-methods",
            "type": "text/html"
        },
        "self": {
            "href": "https://api.mollie.com/v2/methods?sequenceType=first",
            "type": "application/hal+json"
        }
    }
}

Looks like Ideal should be available for first.
I then requested the same API with https://api.mollie.com/v2/methods?sequenceType=recurring
And that resulted in
{
    "_embedded": {
        "methods": [
            {
                "resource": "method",
                "id": "creditcard",
                "description": "Credit card",
                "minimumAmount": {
                    "value": "0.01",
                    "currency": "EUR"
                },
                "maximumAmount": {
                    "value": "5000.00",
                    "currency": "EUR"
                },
                "image": {
                    "size1x": "https://www.mollie.com/external/icons/payment-methods/creditcard.png",
                    "size2x": "https://www.mollie.com/external/icons/payment-methods/creditcard%402x.png",
                    "svg": "https://www.mollie.com/external/icons/payment-methods/creditcard.svg"
                },
                "status": "activated",
                "_links": {
                    "self": {
                        "href": "https://api.mollie.com/v2/methods/creditcard",
                        "type": "application/hal+json"
                    }
                }
            }
        ]
    },
    "count": 1,
    "_links": {
        "documentation": {
            "href": "https://docs.mollie.com/reference/v2/methods-api/list-methods",
            "type": "text/html"
        },
        "self": {
            "href": "https://api.mollie.com/v2/methods?sequenceType=recurring",
            "type": "application/hal+json"
        }
    }
}

So doest cashier-mollie use first or recurring payment?

I accessed the mollie API with the following URL https://api.mollie.com/v2/methods?sequenceType=first.
And got the following response.
{
    "_embedded": {
        "methods": [
            {
                "resource": "method",
                "id": "ideal",
                "description": "iDEAL",
                "minimumAmount": {
                    "value": "0.01",
                    "currency": "EUR"
                },
                "maximumAmount": {
                    "value": "50000.00",
                    "currency": "EUR"
                },
                "image": {
                    "size1x": "https://www.mollie.com/external/icons/payment-methods/ideal.png",
                    "size2x": "https://www.mollie.com/external/icons/payment-methods/ideal%402x.png",
                    "svg": "https://www.mollie.com/external/icons/payment-methods/ideal.svg"
                },
                "status": "activated",
                "_links": {
                    "self": {
                        "href": "https://api.mollie.com/v2/methods/ideal",
                        "type": "application/hal+json"
                    }
                }
            },
            {
                "resource": "method",
                "id": "creditcard",
                "description": "Credit card",
                "minimumAmount": {
                    "value": "0.01",
                    "currency": "EUR"
                },
                "maximumAmount": {
                    "value": "5000.00",
                    "currency": "EUR"
                },
                "image": {
                    "size1x": "https://www.mollie.com/external/icons/payment-methods/creditcard.png",
                    "size2x": "https://www.mollie.com/external/icons/payment-methods/creditcard%402x.png",
                    "svg": "https://www.mollie.com/external/icons/payment-methods/creditcard.svg"
                },
                "status": "activated",
                "_links": {
                    "self": {
                        "href": "https://api.mollie.com/v2/methods/creditcard",
                        "type": "application/hal+json"
                    }
                }
            },
            {
                "resource": "method",
                "id": "sofort",
                "description": "SOFORT Banking",
                "minimumAmount": {
                    "value": "0.10",
                    "currency": "EUR"
                },
                "maximumAmount": {
                    "value": "50000.00",
                    "currency": "EUR"
                },
                "image": {
                    "size1x": "https://www.mollie.com/external/icons/payment-methods/sofort.png",
                    "size2x": "https://www.mollie.com/external/icons/payment-methods/sofort%402x.png",
                    "svg": "https://www.mollie.com/external/icons/payment-methods/sofort.svg"
                },
                "status": "activated",
                "_links": {
                    "self": {
                        "href": "https://api.mollie.com/v2/methods/sofort",
                        "type": "application/hal+json"
                    }
                }
            },
            {
                "resource": "method",
                "id": "bancontact",
                "description": "Bancontact",
                "minimumAmount": {
                    "value": "0.02",
                    "currency": "EUR"
                },
                "maximumAmount": {
                    "value": "50000.00",
                    "currency": "EUR"
                },
                "image": {
                    "size1x": "https://www.mollie.com/external/icons/payment-methods/bancontact.png",
                    "size2x": "https://www.mollie.com/external/icons/payment-methods/bancontact%402x.png",
                    "svg": "https://www.mollie.com/external/icons/payment-methods/bancontact.svg"
                },
                "status": "activated",
                "_links": {
                    "self": {
                        "href": "https://api.mollie.com/v2/methods/bancontact",
                        "type": "application/hal+json"
                    }
                }
            }
        ]
    },
    "count": 4,
    "_links": {
        "documentation": {
            "href": "https://docs.mollie.com/reference/v2/methods-api/list-methods",
            "type": "text/html"
        },
        "self": {
            "href": "https://api.mollie.com/v2/methods?sequenceType=first",
            "type": "application/hal+json"
        }
    }
}

Looks like Ideal should be available for first.
I then requested the same API with https://api.mollie.com/v2/methods?sequenceType=recurring
And that resulted in
{
    "_embedded": {
        "methods": [
            {
                "resource": "method",
                "id": "creditcard",
                "description": "Credit card",
                "minimumAmount": {
                    "value": "0.01",
                    "currency": "EUR"
                },
                "maximumAmount": {
                    "value": "5000.00",
                    "currency": "EUR"
                },
                "image": {
                    "size1x": "https://www.mollie.com/external/icons/payment-methods/creditcard.png",
                    "size2x": "https://www.mollie.com/external/icons/payment-methods/creditcard%402x.png",
                    "svg": "https://www.mollie.com/external/icons/payment-methods/creditcard.svg"
                },
                "status": "activated",
                "_links": {
                    "self": {
                        "href": "https://api.mollie.com/v2/methods/creditcard",
                        "type": "application/hal+json"
                    }
                }
            }
        ]
    },
    "count": 1,
    "_links": {
        "documentation": {
            "href": "https://docs.mollie.com/reference/v2/methods-api/list-methods",
            "type": "text/html"
        },
        "self": {
            "href": "https://api.mollie.com/v2/methods?sequenceType=recurring",
            "type": "application/hal+json"
        }
    }
}

So doest cashier-mollie use first or recurring payment?

Closing this, for now, will sort things out with mollie first.
It looks like it is a verification issue.
Thanks for your quick response!
And thanks for maintaining this package! ❤

Closing this, for now, will sort things out with mollie first.
It looks like it is a verification issue.
Thanks for your quick response!
And thanks for maintaining this package! ❤

Hi @ao-jhelmich ,
Thanks for following up, seems like you're on the right track.

Hi @ao-jhelmich ,
Thanks for following up, seems like you're on the right track.

Let me know if/how this gets solved, haven't seen this issue before. 🤓

Let me know if/how this gets solved, haven't seen this issue before. 🤓

Hey @sandervanhooft just heard back from mollie, the send me too technical support.
Just to be sure, it's possible to use ideal as a payment method for an subscription right?

Hey @sandervanhooft just heard back from mollie, the send me too technical support.
Just to be sure, it's possible to use ideal as a payment method for an subscription right?

@ao-jhelmich did your issue get fixed ? If yes, then can you please share the solution here. Thanks

Hey @harsimrandev,
yeah, I did fix it.
When using the test keys you see all the payment methods you turned on.
Once you switch to the live API keys and you are not verified yet they only show "card" as a payment option.
If you are using the live API keys, make sure the project is verified by mollie

@ao-jhelmich Thanks for the reply, how can i make sure that the project is verified by mollie ? Can you please share some details. Thanks

You gotta talk to mollie for that, they have a live chat inside the application dashboard

@ao-jhelmich thanks for the help.


Cordova 9

Hi! On cordova v9 drop dependency on Q. Need rewrite cordova hooks...
https://github.com/apache/cordova-lib/pull/710
When we cordova run an error appears:
Using "requireCordovaModule" to load non-cordova module "q" is not supported. Instead, add this module to your dependencies and use regular "require" to load it.

just back to cordova 8.1.2
npm uninstall -g cordova
npm install -g<EMAIL_ADDRESS>when owner this rep update the dependencies to cordova 9 you can update it

All issues regarding Cordova 9.0.0 new version have been fixed, you guys can use it! thank you guys 👍


Rewrite generate.sh with go

Replace generate.sh with generate.go

Merge with main, run make lint


When gene.iobio is launched from Mosaic, if the proband sample_id isn't passed in, default to the affected child.

For example, if the father sample_id is passed in to gene.iobio, look for an affected child and default this to be the proband.  If an affected child isn't found, default to the unaffected child.   If neither found, so an error message indicating that no proband could be found.

Patched on production.


TestCafe 2.6.2 and later fails to start when running in GitHubActions MacOs runners for Safari Browser

What is your Scenario?
TestCafe v2.6.2 and later
running on Github MacOs hosted-runner
Safari 16.5.1 / macOS 10.15.7
Node v18
Test execution is triggered by execution the script ./test_macos.sh

#test_macos.sh
export HOSTNAME=localhost
export PORT1=1337
export PORT2=1338
echo "--test-meta ${TEST_META}"
npx testcafe remote --test-meta $TEST_META --hostname ${HOSTNAME} --ports ${PORT1},${PORT2} &
sleep 20
open -a Safari http://${HOSTNAME}:${PORT1}/browser/connect
wait $!
What is the Current behavior?
After upgrading from 2.5.0 to 2.6.2 (or later) the execution fails with the following error:
--test-meta CID=C6711
Connecting 1 remote browser(s)...
Navigate to the following URL from each remote browser.
Connect URL: http://localhost:1337/browser/connect
CONNECTED Safari 16.5.1 / macOS 10.15.7
The "browsers" option from the configuration file will be ignored.
ERROR Error: EEXIST: file already exists, mkdir '/Users/runner/.testcafe-browser-tools/TestCafe Browser Tools.app/Contents/Resources'
Type "testcafe -h" for help.
Error: Process completed with exit code 1.

I've already confirmed that the folder "/Users/runner/.testcafe-browser-tools/" does not exist by the time testcafe is run.
What is the Expected behavior?
Automated test cases is executed
What is your public website URL? (or attach your complete example)
I don't have this available
What is your TestCafe test code?
the reported issue happens even before executing any test.
Your complete configuration file
require('dotenv').config();
module.exports = {
"disableNativeAutomation": "true",
"skipJsErrors": true,
"browsers": ["chrome chrome --start-fullscreen", "firefox --start-fullscreen"],
"src": "./test/modules//.ts",
"selectorTimeout": 45000,
"assertionTimeout": 45000,
"pageLoadTimeout": 180000,
//"testExecutionTimeout": 300000,
"color": true,
"screenshots": {
"takeOnFails": true,
"pathPattern": "${DATE}_${TIME}/${BROWSER}/screenshot-${TEST}-${USERAGENT}.png"
},
"reporter": [
{
"name": "spec"
},
{
"name": 'testrail',
"output": ''
}
],
"hooks":{
testRun:{
before: async t =>{
console.log('test started at: ' + new Date());
},
after: async t =>{
console.log('test finished at: ' + new Date());
}
},
}
}
Your complete test report
No response
Screenshots
No response
Steps to Reproduce

run GitHubActions workflow
testSafariMacOs:
if: ${{ github.event.inputs.runSafariOnMacos == 'true' }}
name: Run TestCafe Tests on Safari & macOS
runs-on: macos-latest
timeout-minutes: 60
strategy:
fail-fast: false
steps:

name: Check out the repository
uses<EMAIL_ADDRESS>name: Setup node
uses<EMAIL_ADDRESS>with:
node-version: 18
name: Install framework
run: |
npm install
name: Run tests (macos)
env:
TESTRAIL_RUN_ID: ${{ vars.TESTRAIL_RUN_ID_PETREGISTRY_SAFARI }}
TESTRAIL_UPLOAD_SCREENSHOTS: false
run: ./test_macos.sh
shell: bash

TestCafe version
2.6.2 (or higer)
Node.js version
v18.16.0
Command-line arguments
export TEST_META='CID=C6711'; export HOSTNAME=localhost; export PORT1=1337; export PORT2=1338; npx testcafe remote --test-meta $TEST_META --hostname ${HOSTNAME} --ports ${PORT1},${PORT2} & sleep 20; open -a Safari http://${HOSTNAME}:${PORT1}/browser/connect; wait $!
Browser name(s) and version(s)
Safari 16.5.1
Platform(s) and version(s)
macOS 10.15.7
Other
No response

I'm attaching all the files needed to reproduce the issue.
macos_error_sample.zip
Please let me know any additional info you might need.
Logs from GithubActions:
_Run ./test_macos.sh
./test_macos.sh
shell: /bin/bash --noprofile --norc -e -o pipefail {0}
env:
TESTRAIL_UPLOAD_SCREENSHOTS: false
--test-meta
Connecting 1 remote browser(s)...
Navigate to the following URL from each remote browser.
Connect URL: http://localhost:1337/browser/connect
CONNECTED Safari 16.5.1 / macOS 10.15.7
ERROR Error: EEXIST: file already exists, mkdir '/Users/runner/.testcafe-browser-tools/TestCafe Browser Tools.app/Contents/Resources'
Type "testcafe -h" for help.
Error: Process completed with exit code 1._

I got another error.

Please check your example again or simply create and share a repo with a reproducible example.
Also, you can run your tests on Safari locally as we do. For this purpose, add a permission on GitHub as follows:
- name: Add permissions on MacOS
  run: |
    sudo sqlite3 "$HOME/Library/Application Support/com.apple.TCC/TCC.db" "INSERT OR REPLACE INTO access VALUES('kTCCServiceAppleEvents','com.devexpress.testcafe-browser-tools',0,2,3,1,X'fade0c0000000068000000010000000700000007000000080000001443fa4ca5141baeda21aeca1f50894673b440d4690000000800000014f8afcf6e69791b283e55bd0b03e39e422745770e0000000800000014bf4fc1aed64c871a49fc6bc9dd3878ce5d4d17c6',NULL,0,'com.apple.Safari',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e53616661726900000003',NULL,1687952810);"
    sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" "INSERT OR REPLACE INTO access VALUES('kTCCServiceScreenCapture','com.devexpress.testcafe-browser-tools',0,2,3,1,X'fade0c0000000068000000010000000700000007000000080000001443fa4ca5141baeda21aeca1f50894673b440d4690000000800000014f8afcf6e69791b283e55bd0b03e39e422745770e0000000800000014bf4fc1aed64c871a49fc6bc9dd3878ce5d4d17c6',NULL,0,'UNUSED',NULL,0,1687952810);"

I got an error when adding the step "Add permissions on MacOS" you suggested:

Hi @eaudisio,
There is a difference in behavior between macos-12 (macos-latest) and macos-13 GitHub images.
For the macos-13 permission, use the step that I mentioned above:
- name: Add permissions on MacOS
  run: |
    sudo sqlite3 "$HOME/Library/Application Support/com.apple.TCC/TCC.db" "INSERT OR REPLACE INTO access VALUES('kTCCServiceAppleEvents','com.devexpress.testcafe-browser-tools',0,2,3,1,X'fade0c0000000068000000010000000700000007000000080000001443fa4ca5141baeda21aeca1f50894673b440d4690000000800000014f8afcf6e69791b283e55bd0b03e39e422745770e0000000800000014bf4fc1aed64c871a49fc6bc9dd3878ce5d4d17c6',NULL,0,'com.apple.Safari',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e53616661726900000003',NULL,1687952810);"
    sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" "INSERT OR REPLACE INTO access VALUES('kTCCServiceScreenCapture','com.devexpress.testcafe-browser-tools',0,2,3,1,X'fade0c0000000068000000010000000700000007000000080000001443fa4ca5141baeda21aeca1f50894673b440d4690000000800000014f8afcf6e69791b283e55bd0b03e39e422745770e0000000800000014bf4fc1aed64c871a49fc6bc9dd3878ce5d4d17c6',NULL,0,'UNUSED',NULL,0,1687952810);"

For macos-12 (macos-latest), you need to set only one permission:
- name: Add permissions on MacOS
  run: |
    sudo sqlite3 "$HOME/Library/Application Support/com.apple.TCC/TCC.db" "INSERT OR REPLACE INTO access VALUES('kTCCServiceAppleEvents','com.devexpress.testcafe-browser-tools',0,2,3,1,X'fade0c0000000068000000010000000700000007000000080000001443fa4ca5141baeda21aeca1f50894673b440d4690000000800000014f8afcf6e69791b283e55bd0b03e39e422745770e0000000800000014bf4fc1aed64c871a49fc6bc9dd3878ce5d4d17c6',NULL,0,'com.apple.Safari',X'fade0c000000002c00000001000000060000000200000010636f6d2e6170706c652e53616661726900000003',NULL,1687952810);"

Another one was built into this image.


I can't move on my maps

Hello,
I can't move around on the map, I see that the map remains fixed and I can't move around on it.
this my code :
var initPosition = GeoPoint(
                    latitude: 48.66,
                    longitude: 7.55,
                  );
                  MapController mapController =
                      MapController.withPosition(initPosition: initPosition);

OSMFlutter(
                                  mapIsLoading: SizedBox(
                                          width: 48,
                                          height: 48,
                                          child: const Loading())
                                      .centered(),
                                  controller: mapController,
                                  osmOption: const OSMOption(
                                      showDefaultInfoWindow: true,
                                      enableRotationByGesture: true,
                                      showZoomController: true,
                                      userTrackingOption: UserTrackingOption(
                                        enableTracking: true,
                                        unFollowUser: false,
                                      ),
                                      zoomOption:
                                          ZoomOption(initZoom: defaultZoom)),
                                  onMapIsReady: (bool value) async {
                                    if (value) {
                                      GeoPoint userGeoPoint = GeoPoint(
                                        latitude: 7.55,
                                        longitude: 7.55,
                                      );

                                      MarkerIcon personMarkerIcon = MarkerIcon(
                                        icon: Icon( Icons.person_pin_circle_rounded, color: primaryColor, size: baseline_6x, )
                                      );

                                      await mapController.addMarker(
                                        userGeoPoint,
                                        markerIcon: personMarkerIcon,
                                        iconAnchor: IconAnchor(
                                          anchor: Anchor.center,
                                          offset: (x: 0, y: 0),
                                        ),
                                      );

                                      }
                                    }
                                  },
                                ),

And I've got lots of errors in my console : E/FrameEvents(12871): updateAcquireFence: Did not find frame.
Help me resolve this, I'd be grateful!

[√] Flutter (Channel stable, 3.16.9
• Flutter version 3.16.9
• Dart version 3.2.6
• DevTools version 2.28.5
flutter_osm_plugin: ^0.60.5

can you provide us which platform you faced this and full example

@liodali the plateform is Android and this is my full example code :
import 'package:flutter/material.dart';
import 'package:flutter_osm_plugin/flutter_osm_plugin.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Map testing',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Map testing'),
    );
  }
}

class MyHomePage extends StatelessWidget {
  final String title;
  const MyHomePage({super.key, required this.title});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        // The title text which will be shown on the action bar
        title: Text(title),
      ),
      body: const MapView(),
    );
  }
}

class MapView extends StatelessWidget {
  const MapView({super.key});

  @override
  Widget build(BuildContext context) {
    double mapHeight = MediaQuery.of(context).size.height -
        (MediaQuery.of(context).padding.top +
            kToolbarHeight +
            kBottomNavigationBarHeight);

    var initPosition = GeoPoint(
      latitude: 48.66,
      longitude: 7.55,
    );
    MapController mapController =
        MapController.withPosition(initPosition: initPosition);

    return Row(children: [
      Expanded(
          child: SizedBox(
              height: mapHeight,
              child: Stack(children: [
                OSMFlutter(
                    mapIsLoading: const CircularProgressIndicator(),
                    controller: mapController,
                    osmOption: const OSMOption(
                        showDefaultInfoWindow: true,
                        enableRotationByGesture: true,
                        showZoomController: true,
                        userTrackingOption: UserTrackingOption(
                          enableTracking: true,
                          unFollowUser: false,
                        ),
                        zoomOption: ZoomOption(initZoom: 19.0)),
                    onMapIsReady: (bool value) async {
                      if (value) {
                        GeoPoint userGeoPoint = GeoPoint(
                          latitude: 7.55,
                          longitude: 7.55,
                        );

                        MarkerIcon personMarkerIcon = const MarkerIcon(
                            icon: Icon(
                          Icons.person_pin_circle_rounded,
                          color:  Color(0xFF3450A6),
                          size: 48.0,
                        ));

                        await mapController.addMarker(
                          userGeoPoint,
                          markerIcon: personMarkerIcon,
                          iconAnchor: IconAnchor(
                            anchor: Anchor.center,
                            offset: (x: 0, y: 0),
                          ),
                        );
                      }
                    })
              ])))
    ]);
  }
}

my pubspec.yaml :
name: map_test
description: A new Flutter project.

version: 1.0.0+1

environment:
  sdk: '>=3.0.3 <4.0.0'

dependencies:
  flutter:
    sdk: flutter
  flutter_osm_plugin: ^0.60.5

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^2.0.0

flutter:
  uses-material-design: true

Hello,
@liodali I've seen my mistake, it's caused by enableTracking: true:
osmOption: const OSMOption(
                                      showDefaultInfoWindow: true,
                                      enableRotationByGesture: true,
                                      showZoomController: true,
                                      userTrackingOption: UserTrackingOption(
                                        enableTracking: true,
                                        unFollowUser: false,
                                      ),
                                      zoomOption:
                                          ZoomOption(initZoom: defaultZoom)
                                  ),

Do you know why the Map remains static because tracking has been activated ?

try to use our latest versio we did some fixes related to that
as I remember  the map was following the user location that collide with user interaction with the map

Thanks for these feedbacks. I will do a migration for this.
Thank you for your availability.


Don't use Created timestamp from feed for lag calculation

Every package makes its way into catalog with a "LastEdited" timestamp update. This is because of async validation.
We recently made a change to feed2catalog to no longer have a cursor on Created. Because of this, monitoring can do the same:

[ ] Monitoring.RebootSearchInstance, @joelverhagen
[ ] Internal monitoring runners, @scottbommarito

/cc @loic-sharma


MM-41331 : Remove post dot menu from RHS post when not hovered upon (#9718) (6.3)

Ticket Link
https://mattermost.atlassian.net/browse/MM-41331
Related Pull Requests
https://github.com/mattermost/mattermost-webapp/pull/9718
Release Note
NONE

Will try to auto merge this PR once all tests and checks are passing. This might take up to an hour.


Add local-path-storage 0.0.22

What this PR does / why we need it
Bumps local-path-storage to 0.0.22
Which issue(s) this PR fixes

Fixes: #3824
Describe testing done for PR

Special notes for your reviewer

package repository with local-path-storage 0.0.22:
projects-stg.registry.vmware.com/tce/main@sha256:9ff17afab511846b139e512016469221fabe9ce0376ff63b43e8cab0345ab599


Add a bit more packages to mlnx_ofed config

Please make the PR against devel branch.

No such branch in this repo.

Right... I was somewhere else. Merged.


[Raffle] Fix complex raffles from continuing with unbound variables after timeout

Type

[x] Bugfix
[ ] Enhancement
[ ] New feature
[ ] Documentation

Description of the changes
Cog server :p

The return needs to be indented to the left slightly (out of the with block), contextlib.suppress stops executing as soon as it reaches the given exception. If the message was not found, this would still error like before.

Fixed