#727 - adding sosreport role in infrastructure

Hi
New feature #727
Generate a sos_report script and check sos package dependencies for all mgmt_* nodes (computes and mggmt only).
Carefull, no filter on bmc ... so it will fail for them (which is not beautiful, but still works).
The script is gathering sos report, and also takes the roles and inventory content. More can be added if we need, but that would be the minimal to me to start with.
$ cat defaults/main.yml
sosreport_binary_path: /usr/local/bin
sosreport_binary_name: sosreport-bb
sosreport_output_path: /tmp/sosreport
sosreport_tempfile_path: /tmp

Warning The script is gathering information on all servers (management, login and computes).
$ cat playbooks/sosreport.yml
- name: Install and configure sosreport
  hosts: "mg_managements, mg_logins, mg_computes"
  roles:
    - name: sosreport

$ ansible-playbook playbooks/sosreport.yml

$ sosreport-bb
Package manager: dnf
=== Checking script dependencies
=== Checking node dependencies
=== Gathering all nodes sos reports...

sos-collector (version 4.3)
...
Beginning collection of sosreports from 22 nodes, collecting a maximum of 4 concurrently
mgmt1  : Generating sos report...
compute1002 : Generating sos report...
compute10025 : Generating sos report...
compute10006 : Generating sos report...
...
/tmp/sosreport/sos_error_logs.txt
/tmp/sosreport/sos-collector-2023-01-30-svfbp.tar.xz

######################################################################
##
## INFO - Please MANUALLY delete temporary report files: /tmp/sosreport
## Please send the /var/logs/sosreport/sosreport-2023-01-30.tgz file to Support team
## with the SHA1: 0262e1d8304ad4023c268c39e6b9213ce4de2fce  /var/logs/sosreport/sosreport-2023-01-30.tgz
##
######################################################################

Dear @strus38
Thanks a lot for this PR, and apologies for the delay of my answer. Tool is a good base, we can make it evolve on the time.
2 things I would like to be updated before merging:

Please move the role into collections/stack/roles since it is a "stack" related tool. I will improve the stack collection as soon as I have stabilized other collections.
Please rename the tool to bluebanquise-sosreport to match the other tools naming convention.

Then all good for me 😊

@oxedions - ready for review. Fixed issues found during PR review.


Remove Ensemble and InitMethods

This code has been moved to package GeoStatsProcesses.jl.
See the PR: https://github.com/JuliaEarth/GeoStatsProcesses.jl/pull/34

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 76.00%. Comparing base (fac05f0) to head (bfbc4e8).

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #220      +/-   ##
==========================================
- Coverage   80.60%   76.00%   -4.61%
==========================================
  Files          21       17       -4
  Lines         397      300      -97
==========================================
- Hits          320      228      -92
+ Misses         77       72       -5

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Incorrect processing unicode symbols in responce body

Hello! We got a problem with russian characters in responce body.
We get:
{
"source": "StrawberryShake.Core",
"message": "продукт не найден: 5098c195-f96a-4a3d-b5d7-68d62e0a05a3"
}
But in zeebe operate (after zeebe-http-worker):
{
"source": "StrawberryShake.Core",
"message":"\u043F\u0440\u043E\u0434\u0443\u043A\u0442 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D: 5098c195-f96a-4a3d-b5d7-68d62e0a05a3"
}
In elastic (kibana):
\"message\":\"\\u043F\\u0440\\u043E\\u0434\\u0443\\u043A\\u0442 \\u043D\\u0435 \\u043D\\u0430\\u0439\\u0434\\u0435\\u043D: 5098c195-f96a-4a3d-b5d7-68d62e0a05a3\"
We use zeebe-http-worker in k8s, i try to set LC_ALL: en_US.UTF-8 / c.UTF-8 / ru_RU.UTF-8, but it doesn't works.
Can we try something else?

Found error on our side, sorry :)


Do not fail workflow if Codecov results are not uploaded successfully. That step is too brittle and fails intermittently.

Codecov Report

Merging #64 (d96a4e8) into main (5424e0e) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main       #64   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            3         3
  Lines          137       137
=========================================
  Hits           137       137

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 5424e0e...d96a4e8. Read the comment docs.


Generated legend is missing items

I have the same problem. Enum and other types are missing. I am using mode "file".
@johansten : have you found a solution to the problem?

Originally posted by @mcmartincerny in https://github.com/TypeStrong/typedoc/issues/1136#issuecomment-614771721

Pulling into a new issue to track.

I'm seeing this issue regardless of mode. The legend is always empty.

This can be reproduced still in 0.20 with a single exported function
export function foo(){}

The legend should have a function item, but is instead rendered empty.

I have updated from 0.17.7 to 0.20.20 and now I am missing half of classes. :disappointed: Not just in legend, links are broken and html files are gone.
before vs after (notice missing Some and None)

That looks like expected behavior to me. TypeDoc 0.20 only documents your exports, and neither Some nor None are documented. If you really want to include those - take a look at #1484.

Regarding #1484, I don't use --excludeExternals nor have "Externals" unchecked. I have no intention of exporting those classes (it is supposed to be that way - a user should not be creating them directly). Those classes are in a same project, even same file, not a different package (library). I don't understand how that linked issue helps me.
I hope I don't have to downgrade (and possibly fork to fix TS version dependency) to continue using typedoc?

Sorry about that! I typoed the issue number. I meant to link to https://github.com/TypeStrong/typedoc/issues/1474

@Gerrit0 Thank you, that plugin fixed the issue :slightly_smiling_face:.


NCZarr does not support reading of many zarr files

I am trying to read sample zarr files provided here: https://github.com/ome/ome-ngff-prototypes#data-availability
dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tcyx.ome.zarr#mode=nczarr,file
ncdump: file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tcyx.ome.zarr#mode=nczarr,file: NetCDF: NCZarr error
dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tcyx.ome.zarr#mode=nczarr
ncdump: file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tcyx.ome.zarr#mode=nczarr: NetCDF: NCZarr error
dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tcyx.ome.zarr#mode=zarr,file
ncdump: file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tcyx.ome.zarr#mode=zarr,file: NetCDF: NCZarr error
dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/cyx.ome.zarr#mode=zarr,file
ncdump: file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/cyx.ome.zarr#mode=zarr,file: NetCDF: NCZarr error
dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tczyx.ome.zarr#mode=zarr,file
free(): double free detected in tcache 2
Aborted (core dumped)
dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tyx.ome.zarr#mode=zarr,file
ncdump: file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tyx.ome.zarr#mode=zarr,file: NetCDF: NCZarr error
dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/yx.ome.zarr#mode=zarr,file
ncdump: file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/yx.ome.zarr#mode=zarr,file: NetCDF: NCZarr error
dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/zyx.ome.zarr#mode=zarr,file
free(): double free detected in tcache 2
Aborted (core dumped)
dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/multi-image.ome.zarr#mode=zarr,file
ncdump: file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/multi-image.ome.zarr#mode=zarr,file: NetCDF: NCZarr error
dzenan@corista:~/tester$ ncdump -h https://s3.embl.de/i2k-2020/ngff-example-data/v0.4#mode=zarr,file
ncdump: https://s3.embl.de/i2k-2020/ngff-example-data/v0.4#mode=zarr,file: NetCDF: Malformed URL
dzenan@corista:~/tester$ ncdump -h https://s3.embl.de/i2k-2020/ngff-example-data/v0.4
syntax error, unexpected WORD_WORD, expecting SCAN_ATTR or SCAN_DATASET or SCAN_ERROR
context: <?xml^ version="1.0" encoding="UTF-8"?><Error>NoSuchKey<Message>The specified key does not exist.</Message><Key>ngff-example-data/v0.4.dds</Key><BucketName>i2k-2020</BucketName><Resource>/i2k-2020/ngff-example-data/v0.4.dds</Resource><RequestId>17096CA8F2A3955C</RequestId><HostId>083e6bd6-5f67-4d7a-bf85-13f52b390395</HostId></Error>
ncdump: https://s3.embl.de/i2k-2020/ngff-example-data/v0.4: NetCDF: file not found
dzenan@corista:~/tester$ ncdump -h s3:https://s3.embl.de/i2k-2020/ngff-example-data/v0.4
ncdump: s3:https://s3.embl.de/i2k-2020/ngff-example-data/v0.4: No such file or directory
dzenan@corista:~/tester$ ncdump -h s3://s3.embl.de/i2k-2020/ngff-example-data/v0.4
ncdump: s3://s3.embl.de/i2k-2020/ngff-example-data/v0.4: NetCDF: Attempt to use feature that was not turned on when netCDF was built.

Am I doing something wrong? I was under impression that NCZarr would read most zarr files. What are the offending features in these examples which break NCZarr?
Ubuntu 22.04.1 LTS, GCC 11.2.0, libnetcdf-dev Version: 1:4.8.1-1.

@DennisHeimbigner do you have some insight?

Sorry for the delay. It appears to be related to the use of '/' as the
dimension separator. I was trying to track down exactly what i happening.

I was wrong. The problem is this (its complicated).

array "s0" meta-data specifies this:

shape is [4,930,1024]
_ARRAY_DIMENSIONS are ["c","y","x"]

array "s1" meta-data specifies this:

shape is [4,465,512]
_ARRAY_DIMENSIONS are ["c","y","x"]

Since both are in the same group (the root group), this is an inconsistency
because one variable says y=930 and the other says y=465.
You might contact the Xarray community to see how this contradiction
should be resolved.

OME NGFF specifies that "Metadata about an image can be found under the "multiscales" key in the group-level metadata." As far as I can tell, multiple arrays are designed to have different dimensions to represent different levels of the image pyramid. @joshmoore Am I interpreting this correctly?
This might be contrary to NCZarr's constraints? Is there a way to reconcile this? Or is NCZarr a bad choice for Zarr-backend for NGFF implementation?

I do not know anything about the OME standard, but why do you think
it is generating legal Zarr Version 2 files, never mind NCZarr.

Since both are in the same group (the root group), this is an inconsistency
because one variable says y=930 and the other says y=465.
You might contact the Xarray community to see how this contradiction
should be resolved.

@DennisHeimbigner: but that should only be the case for mode=nczarr, no? There's no such restriction in Zarr itself.
As a side note, @dzenanz, https://github.com/ome/ngff/pull/114 is intended to play nicely with xarray and nczarr.

It is actually an XArray problem since the _ARRAY_DIMENSIONS attribute
is not recognized in Zarr V2 (or has that changed?).
But it should be the case that the names assigned to shapes
should be consistent across all uses of those dimensions names, correct?

It is actually an XArray problem since the _ARRAY_DIMENSIONS attribute
is not recognized in Zarr V2 (or has that changed?)

It's definitely true that Zarr v2 is agnostic to _ARRAY_DIMENIONS, but why should that impact mode=zarr filesets?

But it should be the case that the names assigned to shapes
should be consistent across all uses of those dimensions names, correct?

Not in Zarr.

I was speaking more about nczarr and Xarray, than Zarr, because Zarr
has no dimension names at all.
Perhaps the interesting question is: what happens when that file
is read by  the Xarray package? What values does Xarray assign to
the dimension names?

I assume that the highest resolution is used by default in Xarray.

In any case,  try changing the access url to include the following:
".......#mode=zarr,noxarray,ZZZ"
where ZZZ is either file or zip or s3 depending on what storage format
you are reading.

I assume that the highest resolution is used by default in Xarray.

I would be surprised if that was so. It would be seen as violating shape constraints,
I would think.

dzenan@corista:~/tester$ /usr/local/bin/ncdump -h file:///media/xeonatorC/Misc/Tester/CBCT_crop1ms.zarr#mode=zarr,noxarray,file
netcdf CBCT_crop1ms {
dimensions:
	_zdim_56 = 56 ;
	_zdim_63 = 63 ;
	_zdim_67 = 67 ;
	_zdim_28 = 28 ;
	_zdim_31 = 31 ;
	_zdim_33 = 33 ;
	_zdim_14 = 14 ;
	_zdim_15 = 15 ;
	_zdim_16 = 16 ;

group: scale0 {
NetCDF: internal library error; Please contact Unidata support
Location: file ; line 1661

@DennisHeimbigner you are right. xarray.open_zarr() yields:
<xarray.Dataset>
Dimensions:  ()
Data variables:
    *empty*

I would suggest two changes to the OME format:

make the dimension-name <-> shape mapping be consistent
Change the "direction" attribute from this:
"direction": [ [ 1.0, 0.0, 0.0 ], [ 0.0, 1.0, 0.0 ], [ 0.0, 0.0, 1.0 ] ]
to something like this.
"direction": {"x": [1.0,0.0,0.0], "y": [0.0, 1.0, 0.0], "z": [0.0, 0.0, 1.0]}

There may be other attributes that also should be changed.

I would suggest two changes to the OME format:

Suggestion noted, thanks, @DennisHeimbigner, but I don't think we should open that conversation here.
Leaving nczarr, s3, and http out of the picture for a moment, I'm still struggling to understand whether you think these file-based pure-zarr examples from the original description should be covered by netcdf-c, @DennisHeimbigner:
dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tcyx.ome.zarr#mode=zarr,file
ncdump: file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tcyx.ome.zarr#mode=zarr,file: NetCDF: NCZarr error

dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/cyx.ome.zarr#mode=zarr,file
ncdump: file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/cyx.ome.zarr#mode=zarr,file: NetCDF: NCZarr error

dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tczyx.ome.zarr#mode=zarr,file
free(): double free detected in tcache 2
Aborted (core dumped)

dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tyx.ome.zarr#mode=zarr,file
ncdump: file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/tyx.ome.zarr#mode=zarr,file: NetCDF: NCZarr error

dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/yx.ome.zarr#mode=zarr,file
ncdump: file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/yx.ome.zarr#mode=zarr,file: NetCDF: NCZarr error

dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/zyx.ome.zarr#mode=zarr,file
free(): double free detected in tcache 2
Aborted (core dumped)

dzenan@corista:~/tester$ ncdump -h file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/multi-image.ome.zarr#mode=zarr,file
ncdump: file:///media/xeonatorC/Dev/ITKIOOMEZarrNGFF/v0.4/multi-image.ome.zarr#mode=zarr,file: NetCDF: NCZarr error

In my mind, they should especially if we are pointing the community to this as the C implementation.

....these file-based pure-zarr examples from the original description should be covered by netcdf-c,

Speaking for myself, I say no. The fact that they cannot be read by Xarray
makes it clear that having an inconsistent _ARRAY_DIMENSION <-> shape
mapping is just wrong, and needs to be fixed.
As for the case of

"direction": [ [ 1.0, 0.0, 0.0 ], [ 0.0, 1.0, 0.0 ], [ 0.0, 0.0, 1.0 ] ]

that is more a matter of opinion and I would really think that using a dictionary
instead of an array of arrays provides for more meaningful metadata.
GDAL, for instance, has non-standard attribute values whose value is a dictionary.
I think that should be the convention for non-standard attributes.

Partly fixed by https://github.com/Unidata/netcdf-c/pull/2492

Speaking for myself, I say no. The fact that they cannot be read by Xarray
makes it clear that having an inconsistent _ARRAY_DIMENSION <-> shape
mapping is just wrong, and needs to be fixed.

@DennisHeimbigner, to clarify: is the intent for netcdf-c to be considered a Zarr library (as opposed to an nczarr library)?

Partly fixed by #2492

@dzenanz: will you have a chance to test if the partial fix works for you?

,,,to clarify: is the intent for netcdf-c to be considered a Zarr library (as opposed to an nczarr library)?

The primary goal is to read/write netcdf-4 stored in Zarr format datasets.
But since netcdf-4 does not exactly map to Zarr v2, it is necessary
to add optional extensions to Zarr to support netcdf-4 concepts.
On the other hand, we do not want to cut ourselves off from pure Zarr
datasets. So, a sub-goal is to support mapping a subset of netcdf-4
to pure Zarr. This sub-goal allows us to access pure Zarr datasets thru
the netCDF API.

Thanks for the explanation, @DennisHeimbigner. I definitely understand the primary goal. But is there also a sub-goal of mapping all pure Zarr datasets to some subset of netcdf-4?

...is there also a sub-goal of mapping all pure Zarr datasets to some subset of netcdf-4?

Short answer is yes. For example, I have just added support for Zarr fixed length
string type. There are a couple of other things I will be adding when there
specification is stable: .zmetadata (aggregate metadata) and sharding.
If there is something you would like to see that I have missed, then let me know.

I guess I defer there to @dzenanz' testing since in https://github.com/Unidata/netcdf-c/issues/2474#issuecomment-1211459122 there appear to be Zarr datasets that aren't openable. If it would help to copy them somewhere for testing, happy to help.

Trying to read C:\Dev\ITKIOOMEZarrNGFF\v0.4\cyx.ome.zarr with updated version of netCDF still produces the same error: NetCDF: NCZarr error when invoking nc_open. Same happens for the other files there (yx.ome.zarr and multi-image.ome.zarr). I am using a slightly modified netCDF: https://github.com/dzenanz/netcdf-c/tree/itkSpecific.

That is because the OME use of _ARRAY_DIMENSION is still wrong and I
cannot fix that particular problem.

Removing either _ARRAY_DIMENSION attributes or leaving just one scale gets me further: NetCDF: Filter error: undefined filter encountered. That is understandable, since the array has:
"compressor": {
    "blocksize": 0,
    "clevel": 5,
    "cname": "lz4",
    "id": "blosc",
    "shuffle": 1
}

How did you install netcdf-c? Are you building it yourself?

To have the latest version, I have to build it myself. My build setup is here: https://github.com/InsightSoftwareConsortium/ITKIOOMEZarrNGFF/pull/6
Here, I am trying to add zip support to the build: https://github.com/dzenanz/ITKIOOMEZarrNGFF/commit/0bbea2563204e8bb204387852ec4d41b465ccd01
the current stumbling block is here: https://github.com/dzenanz/ITKIOOMEZarrNGFF/commit/0bbea2563204e8bb204387852ec4d41b465ccd01#diff-1e7de1ae2d059d21e1dd75d5812d5a34b0222cef273b7c3a2af62eb747f9d20aR135-R137

So it looks like you are building with your own CMakeLists.txt and not
using the one provided by netcdf, correct?

I modified netCDF's CMakeLists.txt, in order to point to HDF5 bundled with ITK, and to avoid some duplicate targets with other libraries I use together.


Add compilation options

Hi,
I'm try to build an crystal library https://github.com/datanoise/mongo.cr.
I have compilation trouble => https://github.com/datanoise/mongo.cr/issues/7
I've found that adding an options will fix my issue.
How can I do that with the crystal, 0.12 compiler ?
Regards,

`crystal build --link-flags "-shared" ..." should do it.

I'm wondering why you need to specify it, thought. Maybe your system has a CC variable or alias with -static?

that a good question, I'm new in compiled language

In fact it's not a matter of flags but a GCC version problem
with GCC 4.9 compils but not with GCC 5.3

Crystal libraries are used in source and installed into your Crystal project via the shards tool. You don't invoke crystal build on them to install them or anything like that, they're compiled as you compile your project using them.

no, in fact I mean that I try to use https://github.com/datanoise/mongo.cr (via shards) but I can't.
on ubuntu, debian I can since I have GCC 4.9
but on fedora I can't since I have a *GG 5.3 compilation error ;-)
PS : I have the same problem for other crystal libraries

Then I don't follow why you want to specify a linker flag when installing some source files into your project. You would specify it when building your project.

it was a wrong idea, I admit


How to set i386 architecture for iOS simulator?

Currently the generated static library is valid for those architectures:
$ file libWebRTC-LATEST-Universal-Release.a

lib/libWebRTC-LATEST-Universal-Release.a: Mach-O universal binary with 3 architectures
lib/libWebRTC-LATEST-Universal-Release.a (for architecture armv7):	current ar archive random library
lib/libWebRTC-LATEST-Universal-Release.a (for architecture x86_64):	current ar archive random library
lib/libWebRTC-LATEST-Universal-Release.a (for architecture arm64):	current ar archive random library

I want to test it within a Cordova app in the iOS simulator (which is i386). Is there any way I can add "i386" to the building script?

They recently removed the simulator builds from the build scripts. I have added them back locally and am building the fat binary OK. Looking to get some info on where the issues were.

May build_apprtc_sim be the solution?

cocoapods will throw an error if x64 and x86 isn't included. I'll try again now

I am not building Cocoapods, however. I am building the framework using the framework_dance.sh script. I am not getting any build or linker errors and lipoing the file shows all four architectures in there.

Anyone ever solve this?


Resolve errors that occur when there are spaces in filename

Hello,
When I first ran this script, it finished creating the .deb successfully, but there were errors in the output that I think would cause issues if I installed the .deb. The errors were caused by the fact that I was running the script on an app which has a .app folder and executable with a space in the name. Here is the full output including those errors, for a fictitious app named "My App"
IPA Permasigner - Version ce62d1b
Program created by Nebula | Original scripts created by zhuowei | CoreTrust bypass by Linus Henze

[?] Would you like to use an IPA stored on the web, or on your system? [external, local] local
[*] Created temporary directory.

[?] Paste in the path to an IPA in your file system: /Users/kyle/permasigner/myapp.ipa

[*] Unzipping IPA...

[*] Reading plist...
Found plist!
Executable found.
Found information about the app!

[*] Preparing deb file...
Making directories...
Copying deb file scripts and control...
Copying app files...
Changing deb file scripts permissions...
Changing app executable permissions...
chmod: /var/folders/v_/3s54xln145jg8z_z9kw2mrsr0000gn/T/tmpyu9poc9x/deb/Applications/My: No such file or directory
chmod: App.app/My: No such file or directory
chmod: App: No such file or directory

[*] Signing app...
Signing with ldid...
ldid: /var/folders/v_/3s54xln145jg8z_z9kw2mrsr0000gn/T/tmpyu9poc9x/deb/Applications/My: No such file or directory

[*] Packaging the deb file...

[*] We are finished!
[*] Copy the newly created deb from the output folder to your jailbroken iDevice and install it!
[*] The app will continue to work when rebooted to stock.

This PR resolves these error messages by adding single quotes around the pathnames used in the commands.

Thanks for the pr! But, can you quickly fix the same issue with codesign too, if it’s there? Seems that you only changed up the ldid signer.

Oh, sure, good catch! One moment.

Thank you!

Thanks for the useful script!

No problem


Upgrade to<EMAIL_ADDRESS>

This PR upgrades husky to v7.0.2 in the devDependencies of the root package.json.
The only git commit hook that husky is using is currently using is pre-commit which is responsible for invoking lint-staged.
To make this upgrade work a postinstall script has also been added to invoke husky install which is more-or-less what the Husky v7 docs indicate.
As a result a new .husky directory in introduced at the same level as the .git directory and git is configured with [core] property hooksPath = .husky.
The pre-commit shell script in the new .husky directory uses npm to run the new husky:pre-commit script in the root package.json.
That's all Folks! (tm) Looney Tunes & Bugs Bunny

Note: Once this husky upgrade happens, probably it is a good idea to remove any remnant husky hooks left over from the prior husky version in your local clone of the repo.
sh
rm .git/hooks/*

I have no idea. pnpm install must have done that and updated the lock file.
Perhaps I will rollback the lock file and reinstall again to see if it happens again.

@juanpicado Is this better?
I rolled back to master pnpm lockfile & reinstalled with upgraded husky. The diff seems smaller now.
Good catch. Perhaps I created a new lock file by mistake.

Terrific, first I solved the Husky v7 config problem for my own projects and then it took just a few minutes to offer verdaccio the same solution :-)
btw. I did a pnpm global upgrade recently so maybe that had something to do with the lockfile changing so much. Anyway, whatever, it does look saner to me now.


[3.x] Add a GradientTexture2D editor plugin

3.x version of https://github.com/godotengine/godot/pull/58967
Adds an editor plugin for editing the fill_from and fill_to properties of GradientTexture2D in the inspector.
Features:

Handles for moving the points.
Grid snap toggle with sliders for adjusting grid size (sliders are hidden when grid snap is disabled).
Button for swapping fill_from and fill_to.

Thanks!


Cannot enable static NAT on VM with NICs on multiple VPC tiers in UI

ISSUE TYPE

Bug Report

COMPONENT NAME
Network, VPC

CLOUDSTACK VERSION
4.11.2

CONFIGURATION
Advanced networking, VPC with multiple tier networks
OS / ENVIRONMENT
N/A
SUMMARY
When trying to enable static NAT on VM with NICs on multiple VPC tier networks on the 'Public IP addresses' router section, it fails with error: VM ip <IP> address not belongs to the vm where  is the IP of the NIC tried to map for static NAT.
Note: The same process works under the tier network static NATs section, acquiring a new IP, but not from the VPC router section.
STEPS TO REPRODUCE
- Create VPC
- Add at least 2 tier networks
- Deploy VM on at least 2 of the VPC tier networks
- Network -> VPC -> Router -> Public IP addresses [1]
- Acquire new IP
- Enable static NAT: [2]
   - Select one of the tier networks
   - Select VM
   - Apply

[1]
[2]

EXPECTED RESULTS
Static NAT mapped correctly

ACTUAL RESULTS
VM ip <IP> address not belongs to the vm

@nvazquez please can you detail where in the UI you are trying to add this IP.

patch
diff --git a/ui/scripts/vpc.js b/ui/scripts/vpc.js
index 8058f07..b7fac5b 100644
--- a/ui/scripts/vpc.js
+++ b/ui/scripts/vpc.js
@@ -39,7 +39,7 @@
                             url: createURL('listNics'),
                             data: {
                                 virtualmachineid: instance.id,
-                                nicId: instance.nic[0].id
+                                networkId: network.id
                             },
                             success: function(json) {
                                 var nic = json.listnicsresponse.nic[0];

Done @PaulAngus thanks

@nvazquez could you please test fix in #3338  ?

Thanks @ustcweizhou I'll test it


has_many and build_stubbed doesn't automatically make association

It seems appropriate that factory girl should make the stubbed has_many association automatically when an associated object is assigned to it. Right now (in factory_girl 4.5.0) it does not.
context "some description" do
      let!(:qs) { build_stubbed(:question) }
      # assign as associated object with qs
      let!(:evaluation) { build_stubbed(:evaluation, question: qs)}
      subject { qs }

      it "should be considered ungraded" do
        # This fails! qs.evaluations
        expect(qs.evaluations.empty?).to be(false)
      end
    end

In order for this to work we have to stub.
      before(:each) do
        qs.stub(:evaluations).and_return([evaluation])
      end

:+1:

Was wondering if there are any updates to this. Thanks!

Apparently this is not a good idea. Can we have some input on this?

@derrickmar there's not a great way to do this, since FG doesn't recreate the entire ActiveRecord interface for stubs.
In cases like this, it might be more straightforward to create the records, since you're relying on the associations themselves to determine the data. Alternatively, if you had a EvaluationsCalculator class that was instantiated with a list of evaluations and had instance methods for ungraded items etc, you should be able to test by passing in a list of stubbed evaluations.


Doesn't Pass JSHint

More of a heads up, but this code doesn't pass JSHint standards and causes a lot of errors with it. Would be awesome if you could format it to work.

Actually found a weird workaround. JSHint doesn't like that you're using a function with a capital letter that isn't a constructor, and I can't exactly control the JSHint guidelines, but what you can do is call window["Split"] instead of Split which does it.


C-r conflicts with redo

C-r conflicts with redo.
Could we pick another key?
WDYT?

The mapping shown in the readme is just an example, you can set different mappings as you wish.


WIP – aql current_user in cpp, test

in js, getCurrentRequest() returns null when the action is a cpp action.
A async call to /_api/cursor with return current_user() returns null.
probably the currentrequest is not set by the cpp env.

closing in favour of https://github.com/arangodb/arangodb/pull/5302


bug: scripts that navigate from bin to peer directories vs symlinks

Describe the bug
kubectl-kubestellar-deploy
kubestellar init
expect helm chart, config directory to be peer of bin. symlinks mess this up.
Steps To Reproduce
Try kubectl-kubestellar-deploy after the brew install, for example. Or try any example with a symlink involved.
Expected Behavior
stuff gets found
Additional Context
No response

Are these 2 scripts primarily used to support manual deployment (non-helm)?  Can we come up with a new way to support our collaborators (not users) based on container only and eliminate the need for raw processes?  I have not examined these 2 scripts in a while.


[Windows] Use GetFileTime for FileAccess

Prevents DST from rearranging file times.
_wstat does weird things with DST, which from I can find does not apply to Unix
Internally the same function is used but _wstat converts it to local time, without indicating DST, the approach here is based on that in Windows CRT, using creation time as fallback, and here ensuring the epoch is valid.
For all except DST overlap times this gives the same result, in UTC
Edit: Also resolves an inconsistency between MinGW and MSVC builds, see #92911
Fixes #74816
Fixes #92911
Fixes #96810
Fixes #96828
Fixes #96812

For easy testing, use PowerShell and (Get-Item C:\Users\ninni\Documents\Godot\Test1\icon.svg).LastWriteTimeUtc and see that time during the hour of overlap with DST now works

For easy testing, use PowerShell and (Get-Item file).LastWriteTimeUtc and see that time during the hour of overlap with DST now works

Need to investigate an issue that has arisen with this, unsure what exactly but it no longer works on my setup, will try fix it when I find the time to dig through the Windows stuff

I marked this as fix for #92911, but after testing again now, the results are wrong. Did something change?

I will take a look, nothing should have changed though

Expected results is that I get the same modified time in a dev build and an official build. This is no longer true.

This code hasn't changed so I suspect something with the official builds have changed, or windows libraries

CC @bruvzg

Thanks!

Thank you!

LOL. You won't believe how insane this manifested itself when targeting VR; ie, iterating Win-based exports / remote debugs of Android APKs for standalone headsets. I thought I was going full-on LAWNMOWER MAN mad inside the VR there. (With changed resources apparently 'randomly' being updated or included in the next run... all based on what the Godot Editor under Windows thought had changed on file, obviously, in hindsight)
Thanks for the quick fix! Looks like you managed to get it rectified and merged in less time than it took me to even pinpoint and reproduce for a Bug Report. Bravo!!! [applause]

Cherry-picked for 4.3.1.


Feature Request: display git version in the app, provide it when connecting to VRM

Available now via https://github.com/victronenergy/venus-influx-loader/commit/c523cc6ca31e15ac26001e34915fd58fafeca408.
./bin/venus-influx-loader --version

and propagated to the MQTT broker via clientId.


jshint options aren't registering

I am having a problem getting SublimeLinter's options to change how JSHint works. I want to automatically register console, document, sessionStorage, etc. as globals with devel: true and browser: true, but any updates I make to SublimeLinter's options do not seem to change JSHint. In-line options work, but not the user settings.
Where do I place these settings? Here is my user settings file.

It would be nice to have a template user settings file so I knew exactly how to input these settings.

The problem is that this is not howSL-JSHint. The configuration has to be done in the .jshintrc file just like in the conmand line. See the SL-JSHint readme for more information on this.


Cancel Boarding if the boarding is a draft

If the boarding is a draft and the user clicks cancel boarding - they should see a screen that has 'Keep Editing' 'Save and Finish Later' and 'Delete Boarding' (not 'cancel boarding') so it is clear that cancel means their draft goes away. Design is at https://mongodb.invisionapp.com/share/M6YN2Y77B8E#/screens/430523446_Cancel_Draft_Boarding If they select 'Delete Boarding' they should see a modal that says 'Boarding Deleted' and go back to the list of draft boardings (the screen you get when you click 'Draft Boardings' from the home page) without that boarding on the list - because it’s been deleted.

Should call a cascading delete function (to be added) on the view model under  https://github.com/WildAid/o-fish-android/issues/323

The customer has requested that drafts be able to be saved across mobile to web - that is, a SAVED draft boardings that hasn't been submitted, should NOT be deleted.
I apologize for the change in functionality; this reverses what we were told earlier.


Improve error message in demodata

1. Why is this change necessary?
The change improves usability of the demo data command
2. What does this change do, exactly?
The error message provides now a more accurate solution, that just can be copy and pasted to get further
3. Describe each step to reproduce the issue or behavior.
Try to use bin/console framework:demodatain terminal while being in a dev environment (APP_ENV="dev")
4. Please link to the relevant issues (if any).
5. Checklist

[x] I have rebased my changes to remove merge conflicts
[no] I have written tests and verified that they fail without my change
[no] I have created a changelog file with all necessary information about my changes
[no] I have written or adjusted the documentation according to my changes
[no] This change has comments for package types, values, functions, and non-obvious lines of code
[no] I have read the contribution requirements and fulfil them.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Can you sign the CLA?

Thanks for your contribution, your PR got merged! :tada: :blue_heart:


testing/ostest: Include nuttx/arch.h explicitly

Summary
Required by https://github.com/apache/incubator-nuttx/pull/4913
Impact
No real change
Testing
Pass CI and ostest

LGTM


i want more tabs

i want 8 tabs and they have to be scrollable. how can i do that ?

Then you should probably use a TabLayout.


Web - Console error displayed when time zone assessed by direct link

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

Issue found when executing PR https://github.com/Expensify/App/pull/23418
Action Performed:
Precondition: Disable "Automatically determine your location" in timezone setting for current account.

Launch the URL and login
Go to timezone selection page by direct link (https://staging.new.expensify.com/settings/profile/timezone/select
)

Expected Result:
Time zone page displayed and no error in console
Actual Result:
Error message displayed in console
Workaround:
Unknown
Platforms:

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

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: v1.3.45-2
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

Hmmm, I don't receive the error:

Can we confirm that this is still taking place @kbecciv?

Same RCA from here https://github.com/Expensify/App/issues/23275#issuecomment-1644096900 it is caused due to onfido CORS error. Also I'm only able to reproduce on staging

Okay, going to get some eyes on this then. Thanks @daordonez11 👍

No proposals yet 👍

Hi, I'm Julianfrom Callstack - expert contributor group - and I would like to take a look at this issue

I am not sure what is the exact error that this issue is referring to. Is it any of these?
CC: @CortneyOfstad

@kbecciv @daordonez11 Any thoughts on the comment above from @JKobrynski?
Also, I'm heading OoO until 8/14, so reassigning BZ to keep an eye on this while I'm out 👍

Proposal
Please re-state the problem that we are trying to solve in this issue.
Console error when onfido library is loaded on timezone select.
What is the root cause of that problem?
When selecting the timezone the onfido library is loaded.
What changes do you think we should make in order to solve the problem?
As stated in the library here this is a known issue, it does not happen in dev due to the proxy that we use. Including the meta tag:
<meta
  http-equiv="Content-Security-Policy"
  content="
  default-src 'self' https://assets.onfido.com;
  script-src 'self' 'unsafe-eval' https://assets.onfido.com https://sentry.io https://*.sardine.ai/;
  style-src 'self' https://assets.onfido.com;
  connect-src 'self' data: blob: *.onfido.com wss://*.onfido.com https://sentry.io;
  img-src 'self' data: blob: https://assets.onfido.com/;
  media-src blob: https://assets.onfido.com;
  worker-src 'self' blob:;
  object-src 'self' blob:;
  frame-src 'self' data: blob: https://*.sardine.ai/;
"
/>

in web/index.html solves this.
What alternative solutions did you explore? (Optional)
This does not break the app or cause known issues in the library. We can choose not to include it but maybe we can avoid an issue in the future due to CORS

@kbecciv @daordonez11, Could we get clarification on which specific error this issue points to? I have a slightly different error in my dev mode compared to the provided screenshots, similar to what @JKobrynski has experienced.

@kbecciv @daordonez11, Could we get clarification on which specific error this issue points to? I have a slightly different error in my dev mode compared to the provided screenshots, similar to what @JKobrynski has experienced.

Bump on the above, @kbecciv and @daordonez1. Seems like we re not able to repro this, seeing as it does not cause issues in the app I'm not so sure this is something that even needs to be fixed

Hey @ArekChr as mentioned in my rpevious explanation it cannot be reproduce in dev, only in staging and prod due to the web proxy. @stephanieelliott  It does not cause issues but maybe something in the library of onfido could fail in the future tu to the CORS errors. From my point of view we can definitely leave this for later since icons and everything else is already working.

Can it be weekly, then?

Thanks for that explanation, @daordonez11. It does not sound like something we need to (or even can) fix at the moment, so in that case I don't think we need to continue providing updates. Gonna go ahead and close this, if we choose to tackle this in the future we can reopen it at that point.


Add Updated Big Query Documentation Macro

Big Query Catalog Macro
The bq_catalog.sql Macro overrides the default macro that gathers the metadata necessary for generating dbt docs.
The default macro queries the project.dataset.__TABLES__ metadata table,
which requires more elevated permissions than the information schema tables.
Our dbt service accounts do not typically have access to query TABLES, especially in EDW datasets.
This custom implementation uses project.dataset.INFORMATION_SCHEMA.TABLES in addition to TABLE_STORAGE instead.

NOTE:
In order to access the table_schema in the process of generating the documenation,
you must specify the Big Query region where your data is housed. Add the following two lines to your
project variables, substituting the Big Query region of your project.
vars:
bq_region: 'region-US'

@pinakidas Would you have a chance to review this PR during this sprint? If not, no worries -- just let me know who else might be able to review it.


Fix/ns views not cleaned on removal

PR Checklist

[x] The PR title follows our guidelines: https://github.com/NativeScript/NativeScript/blob/master/CONTRIBUTING.md#commit-messages.
[x] There is an issue for the bug/feature this PR is for. To avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it.
[x] You have signed the CLA.
[ ] All existing tests are passing: https://github.com/NativeScript/nativescript-angular/blob/master/DevelopmentWorkflow.md#running-the-tests
[ ] Tests for the changes are included.

What is the current behavior?

See the description in #1738
What is the new behavior?

ViewUtil.removeChild(parent, child) now removes children recursively to clear references.
TemplatedItemsComponent.ngOnDestroy() empties the _templateMap to remove a circular reference to the TemplatedItemsComponent in the factory functions.
PageRouterOutlet.ngOnDestroy() will now destroy the activated componentRef.
NativeScriptRendererFactory.ngOnDestroy() will now destroy the children of the rootNgView.
NSLocationStrategy.ngOnDestroy() removes its outlets.

Fixes #1738
Related to #1728

@cla-bot check

Upon reviewing https://github.com/NativeScript/nativescript-angular/pull/1767, I realized that view._modal is never dealt with.
This was usually not an issue, but when we navigate out (and this actually happens with livesync too), the modal will never close. Maybe the modal should also be destroyed on https://github.com/NativeScript/nativescript-angular/blob/5b4f8ffdf25c2d9f9e62b5f0911c76bfe67faeaf/nativescript-angular/view-util.ts#L256
Or maybe this should be handled by tns-core-modules on _removeView:
https://github.com/NativeScript/NativeScript/blob/3c2c1d9b69eac347474241af9303232043125d37/tns-core-modules/ui/core/view-base/view-base.ts#L614

I wanted to checkout the behavior, unfortunately I have trouble running ng-sample.

Hi @edusperoni,
Do you have an example where view.modal isn't dealt with?
I have been trying to replicate the problem without any success.

I think this is mainly an issue when livesyncing. If you do:
Page 1 -> Page 2 -> open Modal
and livesync, it'll go back to page 1 and not close the modal. But I don't think it's something that should be considered in this PR

test

test

test

test

Hey there @m-abs
Looks like some really valid concerns are addressed in this PR.
The only change I didn't completely understand is ViewUtil.removeChild(parent, child) now removes children recursively to clear references. My thinking is that if you want to remove a large portion of the UI tree you should be able to do by just removing the root of the subtree. Why is there a need to removing each child recursively? There might be performance implication if there are many children or deeper UI tree. In the same time

@vakrilov

The only change I didn't completely understand is ViewUtil.removeChild(parent, child) now removes children recursively to clear references.

That is unfortunately needed to clear up all references to firstChild', lastChildandnextSiblingfrom the UI tree below the view being removed.  These references make it hard for theGC` to clean om the disposed Views even after the native views have been destroyed.
If we have a UI tree like this:
View1
  View1_1
    View1_1_1
      View1_1_1_1
      View1_1_1_2
    View1_1.2
    View1_1_3
  View1_2
  View1_3
  View1_4

This gives us these references:
View1.firstChild = View1_1
View1.lastChild = View1_4
View1_1.nextSibling = View1_2
View1_2.nextSibling = View1_3
View1_3.nextSibling = View1_4
View1_1.firstChild = View1_1_1
View1_1.lastChild = View1_1.3
View1_1_1.firstChild = View1_1_1_1
View1_1_1.lastChild = View1_1_1_2
View1_1_1_1.nextSibling = View1_1_1_2
View1_1_1.nextSibling = View1_1_2
View1_1_3.nextSibling = View1_1_3

Removing View1_1 will give us these:
View1.firstChild = View1_1
View1.lastChild = View1_4
View1_2.nextSibling = View1_3
View1_3.nextSibling = View1_4

View1_1_1.firstChild = View1_1_1_1
View1_1_1.lastChild = View1_1_1_2
View1_1_1_1.nextSibling = View1_1_1_2

View1_1_1.nextSibling = View1_1_2
View1_1_3.nextSibling = View1_1_3

Shouldn't only the parent and siblings be updated then?
View1.firstChild = View1_2 // checked and updated
View1.lastChild = View1_4 // checked and remained the same
View1_2.nextSibling = View1_3 // checked and remained the same
View1_3.nextSibling = View1_4 // checked and remained the same

View1_1_1.firstChild = View1_1_1_1
View1_1_1.lastChild = View1_1_1_2
View1_1_1_1.nextSibling = View1_1_1_2

View1_1_1.nextSibling = View1_1_2
View1_1_2.nextSibling = View1_1_3 // this would be updated if View1_1_3 were removed

Since there is no more reference to View1_1_1, the whole tree should be GCed.

I've added a simple example to illustrate this behavior: https://stackblitz.com/edit/typescript-pbquxj
How to check garbage collection:

Open Chrome on https://typescript-pbquxj.stackblitz.io
open dev tools and go into "Performance" (DO NOT USE STACKBLITZ'S CONSOLE)
Type in the console document.weakSet, all views will be there
after 5s a view will disappear
document.weakSet still shows all views
CLEAR THE CONSOLE (this is important, as chrome will keep the reference to the elements inside the WeakSet)
Press the Trash can (Collect garabage) in the performance tab a few times
check that the views vanished from document.weakSet

The same exercise could be done in the NativeScript runtime with WeakRef, but I believe it'll behave the same.

Indeed! The recursive remove does produce better results. I have also tried the same test with *ngFor instead of ListView and the results were consistently better.
Note: Adding "markingMode": "none" to the test project decreased the GC time from ~1600ms to ~65ms, which is x25 fold improvement. So I definitely recommend you to use it. In this setup the recursive update also performed slightly better.
That said - I'm sold on keeping the recursive remove. I have some other minor suggestions and we can merge this.

Note: Adding "markingMode": "none" to the test project decreased the GC time from ~1600ms to ~65ms, which is x25 fold improvement. So I definitely recommend you to use it. In this setup the recursive update also performed slightly better.

I tried "markingMode": "none" before and just now, it causes my test app to crash with:
05-09 10:29:01.224 19269 19269 W System.err: com.tns.NativeScriptException: Attempt to use cleared object reference id=9224
05-09 10:29:01.224 19269 19269 W System.err:    at com.tns.Runtime.getJavaObjectByID(Runtime.java:1006)
05-09 10:29:01.224 19269 19269 W System.err:    at com.tns.Runtime.callJSMethodNative(Native Method)
05-09 10:29:01.224 19269 19269 W System.err:    at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1203)
05-09 10:29:01.224 19269 19269 W System.err:    at com.tns.Runtime.callJSMethodImpl(Runtime.java:1083)
05-09 10:29:01.224 19269 19269 W System.err:    at com.tns.Runtime.callJSMethod(Runtime.java:1070)
05-09 10:29:01.224 19269 19269 W System.err:    at com.tns.Runtime.callJSMethod(Runtime.java:1050)
05-09 10:29:01.224 19269 19269 W System.err:    at com.tns.Runtime.callJSMethod(Runtime.java:1042)
05-09 10:29:01.224 19269 19269 W System.err:    at com.tns.gen.android.widget.BaseAdapter_view_197_32_ListViewAdapter.getView(BaseAdapter_view_197_32_ListViewAdapter.java:40)
...

But that belongs in another issue :)

That said - I'm sold on keeping the recursive remove. I have some other minor suggestions and we can merge this.

Cool :)

Thanks @m-abs
We will try to include this in a patch release next week along with NativeScript 5.4 release

test ios@rc

test ios@rc

test ios#rc


Leverdeterre/fix archivepath management

Ô my god, good review, it's a piece of code i forget to remove.
I'have fix this.

Any chance you can repush your changes so they are in one commit? Thanks!

Ping!

:)
You can me to make a another pull request with only on commit ?

Or just squash and force-push so that this appears as 1 commit

Yeap! squash and force-push done.

Could you revisit your PR please?

Any chance you can fix those nits?

Closing due to unresponsiveness. Please feel free to reopen, we would appreciate the patch!


Error when running install-chaincode.js

Env:
Go: 1.9.2 windows/amd64
Node: v6.2.0
Docker: 17.09.0-ce
Docker-Compose: 1.16.1
I get the following error when running "node test/integration/e2e/install-chaincode.js".
Prior to executing the .js script, I ran the command to copy all the files to example_cc. [cp todo-list-fabric-server/chaincode/*  fabric-sdk-node/test/fixtures/src/github.com/example_cc/]
error: [Peer.js]: GRPC client got an error response from the peer "grpc://localhost:7051". Error: Illegal file detected in payload: "src\github.com\example_cc\account.go"
at C:\Users\pilla\to-do\todo-list-fabricV1\fabric-sdk-node\node_modules\grpc\src\client.js:554:15
error: [Chain.js]: Chain-sendPeersProposal - Promise is rejected: Error: Illegal file detected in payload: "src\github.com\example_cc\account.go"
at C:\Users\pilla\to-do\todo-list-fabricV1\fabric-sdk-node\node_modules\grpc\src\client.js:554:15
error: [Peer.js]: GRPC client got an error response from the peer "grpc://localhost:7056". Error: Illegal file detected in payload: "src\github.com\example_cc\account.go"
at C:\Users\pilla\to-do\todo-list-fabricV1\fabric-sdk-node\node_modules\grpc\src\client.js:554:15
error: [Chain.js]: Chain-sendPeersProposal - Promise is rejected: Error: Illegal file detected in payload: "src\github.com\example_cc\account.go"
at C:\Users\pilla\to-do\todo-list-fabricV1\fabric-sdk-node\node_modules\grpc\src\client.js:554:15
error: [install-chaincode]: install proposal

@ishangulhane  - can you take a look at this - tx

@deepanair The code is working fine for me. Please try troubleshooting and run the steps again from the start. From the above error message, it seems like the fabric network is down. I have attached the log file from my latest run.
logs.txt

When I ran "docker ps"  this is what it shows. Does anything standout as unusual here?
$ docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS              PORTS                                            NAMES
88f7df44cb8c        hyperledger/fabric-peer      "peer node start -..."   7 hours ago         Up 7 hours          <IP_ADDRESS>:8056->7051/tcp, <IP_ADDRESS>:8058->7053/tcp   peer3
b784e7f48243        hyperledger/fabric-peer      "peer node start -..."   7 hours ago         Up 7 hours          <IP_ADDRESS>:7056->7051/tcp, <IP_ADDRESS>:7058->7053/tcp   peer1
0941cb04d2df        hyperledger/fabric-peer      "peer node start -..."   7 hours ago         Up 7 hours          <IP_ADDRESS>:8051->7051/tcp, <IP_ADDRESS>:8053->7053/tcp   peer2
672bf5d09e55        hyperledger/fabric-peer      "peer node start -..."   7 hours ago         Up 7 hours          <IP_ADDRESS>:7051->7051/tcp, <IP_ADDRESS>:7053->7053/tcp   peer0
518f3ea16dcb        hyperledger/fabric-ca        "sh -c 'fabric-ca-..."   7 hours ago         Up 7 hours          <IP_ADDRESS>:8054->7054/tcp                           ca_peerOrg2
42567aaf5427        hyperledger/fabric-orderer   "orderer"                7 hours ago         Up 7 hours          <IP_ADDRESS>:7050->7050/tcp                           orderer0
6cd0bd5be4de        couchdb                      "tini -- /docker-e..."   7 hours ago         Up 7 hours          4369/tcp, 9100/tcp, <IP_ADDRESS>:5984->5984/tcp       couchdb
321b1f508db3        hyperledger/fabric-ca        "sh -c 'fabric-ca-..."   7 hours ago         Up 7 hours          <IP_ADDRESS>:7054->7054/tcp                           ca_peerOrg1

@ishangulhane - Also, I am running this on Windows 10 OS.

@deepanair For Windows, you need to do additional settings. Please see the instructions on http://hyperledger-fabric.readthedocs.io/en/release/prereqs.html#windows-extras
http://hyperledger-fabric.readthedocs.io/en/release/getting_started.html


Added the projects to correct folder

Title and Issue number
Projects added in the wrong folder
Issue #3424
Close #3424
Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas
[X] I have created a helpful and easy to understand README.md

@pranjay-poddar @MohitGupta121 @TusharKesarwani Please review and merge the pr.
And add the gssoc23 label and level label.


Refactor tools/replay: Eliminate Qt Dependency

Refactors the tools/replay to eliminate its dependency on the Qt framework, making the tool lighter and more portable.

[x] #33812
[ ] Replace HttpRequest with a libcurl implementation to load route info from https://api.commadotai.com/.
[ ] Remove the use of Qt's signal/slot mechanism and replace it with standard C++ function callbacks.
[ ] Replace QThread with std::thread to manage threading in a platform-independent way.
[ ] Replace Qt-specific data types (QString, QVector, etc.) with standard C++ data types (std::string, std::vector, etc.).
[ ] Update Cabana to use callback functions from Replay instead of relying on Replay's signals.

Oh sorry I didn't realize that I closed this by accident!

:D I made the connection by accident.


codegen-java: Support not annotating constructor parameters

Motivation:
Spring Boot configuration classes neither require nor benefit from annotating constructor parameters with their name. The same is true for pkl-config-java configuration classes compiled with -parameter.
Changes:

add a noParamsAnnotation parameter to CLI, Gradle plugin, CliJavaCodeGeneratorOptions, and JavaCodegenOptions
default to annotating constructor parameters unless generateSpringBootConfig is set
fail if both paramsAnnotation and noParamsAnnotation are set
add tests
update docs

Result:
Generated code does not contain unnecessary annotations.

Today I discovered a reason not to generate @NonNull annotations, which begs the question if --no- flags/APIs are the right solution.
My first attempt was to change paramsAnnotation = null to mean "no annotation" and set the default paramsAnnotation = "org.pkl.config.java.mapper.Named". However, I discovered a few downsides of this approach:

the default logic has to be duplicated in every layer (CLI/Gradle/CliGenerator/Generator)
--params-annotation=null isn't great (perhaps --params-annotation= would work?)
explicitly setting paramsAnnotation = null changes meaning (breaking change)

But perhaps this is nevertheless a better approach? In my opinion, we should support disabling both --params-annotation and --non-null-annotation, and I'm hoping to add --nullable-annotation.

What is the reason to not generate @NonNull?

I’d like to support @Nullable, and I think many users will want one or the other.

Gotcha. The reason we went with @NonNull instead of @Nullable is because we only need to use one annotation, rather than two (@Nullable implies a @NonNullByDefault type of annotation too).
I'd be happy to accept a PR for this, though.

After doing more research, I've come to the conclusion that disabling annotations with --params-annotation=none and paramsAnnotation = null is a better approach. I believe the same approach should be used for --non-null-annotation and a future --nullable-annotation. Please have another look. See commit message for details.


Update dependencies

This PR reactivates all tests (all except one have mistakenly been disabled), updates all dependencies, and cleans up/updates some code that used deprecated definitions.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

12 of 13 (92.31%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+30.8%) to 91.857%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

lib/server.ts
12
13
92.31%

Totals

Change from base Build<PHONE_NUMBER>:
30.8%

Covered Lines:
2849

Relevant Lines:
3060

💛  - Coveralls

Hmm. Very weird, a couple of jobs are failing for some reason :/

Factored out the problematic cases into #360 and #361, so this one could also be merged now :)


Update web viewer docs

I would like us to consider this as part of a complete plan for all the tutorials.

@Josh-Schifter changes made for your review

I would like us to consider this as part of a complete plan for all the tutorials.

@Josh-Schifter changes made for your review

I'm happy with this once we finalize the name for the cra template.

Fwiw, I think we should keep the @bentley scope, its almost like a seal of approval to use this. If we're pushing usage of this template, i'd be more likely to use this with the scope than without. Also, seems weird if we'd start publishing pkgs/templates to use without our scope. Might be a few more characters, but i think its worth it.
Dont get me wrong, ive argued in the past about why our imodeljs pkgs are bentley scoped instead of imjs, but this seems like a reasonable place to do it.
Just my my 2cents :)

@Josh-Schifter , I added a link to the registration dashboard that contains the GUIDs that @williamkbentley added. Please re-review.

Is it possible for the react app to use common naming for the ID env vars so it matches with the registration dashboard and the other samples?
Currently react app names the variables:
REACT_APP_TEST_CONTEXT_ID and REACT_APP_TEST_IMODEL_ID
Registration dashboard and the other samples use:
imjs_project_id and imjs_imodel_id
If we prefer context vs. project, I would support using that consistently.

@Josh-Schifter I'd vote for using Context over Project everywhere.  That's what we use in a lot of our docs.

Is it possible for the react app to use common naming for the ID env vars so it matches with the registration dashboard and the other samples?
Currently react app names the variables:
REACT_APP_TEST_CONTEXT_ID and REACT_APP_TEST_IMODEL_ID
Registration dashboard and the other samples use:
imjs_project_id and imjs_imodel_id
If we prefer context vs. project, I would support using that consistently.

@Josh-Schifter I'd vote for using Context over Project everywhere.  That's what we use in a lot of our docs.

Is it possible for the react app to use common naming for the ID env vars so it matches with the registration dashboard and the other samples?
Currently react app names the variables:
REACT_APP_TEST_CONTEXT_ID and REACT_APP_TEST_IMODEL_ID
Registration dashboard and the other samples use:
imjs_project_id and imjs_imodel_id

Since we're telling users to use our fork of react-scripts we should be able to do that. We added support to have env vars prefixed with imjs_.  See here

Is it possible for the react app to use common naming for the ID env vars so it matches with the registration dashboard and the other samples?
Currently react app names the variables:
REACT_APP_TEST_CONTEXT_ID and REACT_APP_TEST_IMODEL_ID
Registration dashboard and the other samples use:
imjs_project_id and imjs_imodel_id

Since we're telling users to use our fork of react-scripts we should be able to do that. We added support to have env vars prefixed with imjs_.  See here

Is it possible for the react app to use common naming for the ID env vars so it matches with the registration dashboard and the other samples?
Currently react app names the variables:
REACT_APP_TEST_CONTEXT_ID and REACT_APP_TEST_IMODEL_ID
Registration dashboard and the other samples use:
imjs_project_id and imjs_imodel_id

Since we're telling users to use our fork of react-scripts we should be able to do that. We added support to have env vars prefixed with imjs_. See here

@aruniverse I agree but would want to hear @kckst8's thoughts on it. I'd be in favor of switching to imjs_ based ones and using Context instead of project everywhere.

Is it possible for the react app to use common naming for the ID env vars so it matches with the registration dashboard and the other samples?
Currently react app names the variables:
REACT_APP_TEST_CONTEXT_ID and REACT_APP_TEST_IMODEL_ID
Registration dashboard and the other samples use:
imjs_project_id and imjs_imodel_id

Since we're telling users to use our fork of react-scripts we should be able to do that. We added support to have env vars prefixed with imjs_. See here

@aruniverse I agree but would want to hear @kckst8's thoughts on it. I'd be in favor of switching to imjs_ based ones and using Context instead of project everywhere.

Is it possible for the react app to use common naming for the ID env vars so it matches with the registration dashboard and the other samples?
Currently react app names the variables:
REACT_APP_TEST_CONTEXT_ID and REACT_APP_TEST_IMODEL_ID
Registration dashboard and the other samples use:
imjs_project_id and imjs_imodel_id

Since we're telling users to use our fork of react-scripts we should be able to do that. We added support to have env vars prefixed with imjs_. See here

@aruniverse I agree but would want to hear @kckst8's thoughts on it. I'd be in favor of switching to imjs_ based ones and using Context instead of project everywhere.

I wasn't aware of imjs_... support in our react-scripts, but I agree we should use that prefix and context instead of project. We initially used projectId in the viewer and sample app and Pavan asked us to change it to context to be more consistent with our naming conventions for APIs and docs moving forward.
I'm updating the CRA template now. Once the new version is published with the new var names, I'll update them in this PR

Is it possible for the react app to use common naming for the ID env vars so it matches with the registration dashboard and the other samples?
Currently react app names the variables:
REACT_APP_TEST_CONTEXT_ID and REACT_APP_TEST_IMODEL_ID
Registration dashboard and the other samples use:
imjs_project_id and imjs_imodel_id

Since we're telling users to use our fork of react-scripts we should be able to do that. We added support to have env vars prefixed with imjs_. See here

@aruniverse I agree but would want to hear @kckst8's thoughts on it. I'd be in favor of switching to imjs_ based ones and using Context instead of project everywhere.

I wasn't aware of imjs_... support in our react-scripts, but I agree we should use that prefix and context instead of project. We initially used projectId in the viewer and sample app and Pavan asked us to change it to context to be more consistent with our naming conventions for APIs and docs moving forward.
I'm updating the CRA template now. Once the new version is published with the new var names, I'll update them in this PR

Is it possible for the react app to use common naming for the ID env vars so it matches with the registration dashboard and the other samples?
Currently react app names the variables:
REACT_APP_TEST_CONTEXT_ID and REACT_APP_TEST_IMODEL_ID
Registration dashboard and the other samples use:
imjs_project_id and imjs_imodel_id
If we prefer context vs. project, I would support using that consistently.

@Josh-Schifter the latest version of the CRA template has changed the vars to IMJS_CONTEXT_ID and IMJS_IMODEL_ID. I've updated the docs accordingly.

Is it possible for the react app to use common naming for the ID env vars so it matches with the registration dashboard and the other samples?
Currently react app names the variables:
REACT_APP_TEST_CONTEXT_ID and REACT_APP_TEST_IMODEL_ID
Registration dashboard and the other samples use:
imjs_project_id and imjs_imodel_id
If we prefer context vs. project, I would support using that consistently.

@Josh-Schifter the latest version of the CRA template has changed the vars to IMJS_CONTEXT_ID and IMJS_IMODEL_ID. I've updated the docs accordingly.


Update travis toolchains for LTO

Follow up to #345 and related issues
See: https://github.com/elucideye/drishti/issues/345#issuecomment-299656254
caveat: LTO for shared + exe linking can add a fair amount of time.

#438

Done.


Focus lock breaks in Modal with specific content.

Describe the bug
With certain content in Modal, such as NavTabs, our focus lock utility doesn't trap keyboard navigation within the Modal. This is exemplified in our Drawer component which uses Modal and is reproducible when using it as a navigational element.
To Reproduce
Steps to reproduce the behavior:

Go to our documentation site.
Navigate to Components > Drawer
Click "Show Drawer" under "Navigation Example"
Tab through the opened Drawer

Expected behavior
The focus lock should allow the user to tab through the UI while staying within Drawer.
Additional context
It seems that the focusTrapElement variable in Modal.tsx causes the issue. An update made to Modal about a year ago regarding portals also caused animations to break and other oddities. This may have something to do with it in addition.

This PR may have something to do with it.


Make everything "use strict";

[x] bin/
[x] lib/
[ ] public/javascript/
[x] routes/
[x] test/

Frontend "use strict"; landed in 7329edfe112a13935ce5079c4ba14a43f490c916; closing


Don't start a timeout thread if already waiting

Only start 1 timeout thread ever to set state to NOT_SUPPORTED.  Avoids using extra resources unnecessarily & avoids cpr_not_supported_callback being called multiple times if it isn't supported (since there's no lock being held when self.cpr_support is being checked/modified).
Fixes #687

This looks good. Thank you @vlovich! I'll merge it asap. (Normally this weekend.)

Hi @vlovich,
I think that in this case there is more to do. We should not start the timer, but also not call output.ask_for_cpr. I made a different merge request: https://github.com/jonathanslenders/python-prompt-toolkit/pull/691 Do you think that's fine. Could you maybe give that a try as well?
Thanks a lot!

Fixed by: https://github.com/jonathanslenders/python-prompt-toolkit/pull/691


Update expired certificate with incoming one

Change
Replace the expired store certificate with the newly generated one.
Validation
Certificate is used as expected during a manual test.
Microsoft Reviewers: Open in CodeFlow

There are unit tests with Store certs chain 2 as test input. When updating the certs, we used to move chain 2 to chain 1, and put the new certs as chain 2. (Unless we fixed those unit tests to not test on Store certs)

There are unit tests with Store certs chain 2 as test input. When updating the certs, we used to move chain 2 to chain 1, and put the new certs as chain 2. (Unless we fixed those unit tests to not test on Store certs)

From reviewing the tests, it doesn't look like it matters much which chain is 1 or 2.  The unit tests pass.

From reviewing the tests, it doesn't look like it matters much which chain is 1 or 2. The unit tests pass.

The unit tests pass because chain 2 certs have not expired yet. In Nov when chain 2 certs expired, the tests will fail. Like what Ruben did when chain 1 certs expired. https://github.com/microsoft/winget-cli/pull/3435
After that we try to make chain 2 certs the ones with later expiration dates. But I'm ok if we update the tests with our own created certs later.

/azp run


Imperium of Man's Plasma Cannon creates console errors as "Browncoat Guide Particle" is deprecated

Closing old issues.


add pythonPackages.outcome, pythonPackages.trio

This pull request doesn't yet build. I have a separate pull request
for the first two packages in this series, since they build fine.
The problem starts at the "outcome" package. It fails with:
installing
/build/outcome-0.1.0a0/dist /build/outcome-0.1.0a0
Processing ./outcome-0.1.0a0-py2.py3-none-any.whl
Collecting attrs (from outcome==0.1.0a0)
  Could not find a version that satisfies the requirement attrs (from outcome==0.1.0a0) (from versions: )
No matching distribution found for attrs (from outcome==0.1.0a0)
builder for '/nix/store/2k15pq05a7iv97fy6p2yxzqd5hzlk5h8-python3.6-outcome-0.1.0a0.drv' failed with exit code 1

Even though attrs is in its propagatedBuildInputs... any ideas?

OK, that's fixed now.
The next issue is that the "outcome" package has a test dependency on "trio", and "trio" has a normal dependency on "trio". Is there any way to resolve this without disabling tests? Maybe run test it in a joint environment? I also filed an issue upstream about it: https://github.com/python-trio/outcome/issues/12
Furthermore, even if I disable tests for outcome, the trio tests also then fail with a cryptic message about pytest.config. (in next comment)

The error about pytest.config might be fixed if you set
checkPhase = ''
  py.test
'';

@GrahamcOfBorg build python3.pkgs.trio

Failure on x86_64-linux (full log)
Attempted: python3.pkgs.trio
Partial log (click to expand)

            """
        try:
>           return Value(sync_fn(*args))
E           OSError: protocol not found

trio/_core/_result.py:33: OSError
=============== 3 failed, 419 passed, 5 skipped in 19.60 seconds ===============
builder for '/nix/store/s7r7xjgdwc1zzkpjlbd2zxpj5a08x6lj-python3.6-trio-0.4.0.drv' failed with exit code 1
error: build of '/nix/store/s7r7xjgdwc1zzkpjlbd2zxpj5a08x6lj-python3.6-trio-0.4.0.drv' failed

OK, with some changes and importing another test dependency, the tests for trio are mostly running. Just a few failing tests.
Now the obstacle is some apparent sandbox issue. It looks like maybe /etc/services isn't present in the sandbox? Can we suggest a workaround upstream?
running install tests
============================= test session starts ==============================
platform linux -- Python 3.6.5, pytest-3.5.0, py-1.5.3, pluggy-0.6.0
rootdir: /build/trio-0.4.0, inifile:
collected 427 items

trio/_core/tests/test_epoll.py .                                         [  0%]
trio/_core/tests/test_io.py ..................................           [  8%]
trio/_core/tests/test_ki.py ..........                                   [ 10%]
trio/_core/tests/test_local.py ...........                               [ 13%]
trio/_core/tests/test_multierror.py .........sss                         [ 15%]
trio/_core/tests/test_parking_lot.py ....                                [ 16%]
trio/_core/tests/test_result.py ......                                   [ 18%]
trio/_core/tests/test_run.py ........................................... [ 28%]
.................................                                        [ 36%]
trio/_core/tests/test_tutil.py .                                         [ 36%]
trio/_core/tests/test_unbounded_queue.py .....                           [ 37%]
trio/_core/tests/test_windows.py s                                       [ 37%]
trio/tests/test_abc.py .                                                 [ 37%]
trio/tests/test_deprecate.py ...........                                 [ 40%]
trio/tests/test_exports.py .                                             [ 40%]
trio/tests/test_file_io.py ................                              [ 44%]
trio/tests/test_highlevel_generic.py ..                                  [ 44%]
trio/tests/test_highlevel_open_tcp_listeners.py ........                 [ 46%]
trio/tests/test_highlevel_open_tcp_stream.py ...................         [ 51%]
trio/tests/test_highlevel_open_unix_stream.py ..                         [ 51%]
trio/tests/test_highlevel_serve_listeners.py ....                        [ 52%]
trio/tests/test_highlevel_socket.py ......                               [ 54%]
trio/tests/test_highlevel_ssl_helpers.py ..                              [ 54%]
trio/tests/test_path.py ............................                     [ 61%]
trio/tests/test_signals.py ...                                           [ 61%]
trio/tests/test_socket.py ...F...s......F......F....                     [ 67%]
trio/tests/test_ssl.py ............................                      [ 74%]
trio/tests/test_sync.py .................................                [ 82%]
trio/tests/test_testing.py ........................                      [ 87%]
trio/tests/test_threads.py .......................                       [ 93%]
trio/tests/test_timeouts.py ...                                          [ 93%]
trio/tests/test_util.py ..........................                       [100%]

=================================== FAILURES ===================================
_______________________________ test_getnameinfo _______________________________

    async def test_getnameinfo():
        # Trivial test:
        ni_numeric = stdlib_socket.NI_NUMERICHOST | stdlib_socket.NI_NUMERICSERV
        with assert_checkpoints():
            got = await tsocket.getnameinfo(("<IP_ADDRESS>", 1234), ni_numeric)
        assert got == ("<IP_ADDRESS>", "1234")

        # getnameinfo requires a numeric address as input:
        with assert_checkpoints():
            with pytest.raises(tsocket.gaierror):
                await tsocket.getnameinfo(("google.com", 80), 0)

        with assert_checkpoints():
            with pytest.raises(tsocket.gaierror):
                await tsocket.getnameinfo(("localhost", 80), 0)

        # Blocking call to get expected values:
>       host, service = stdlib_socket.getnameinfo(("<IP_ADDRESS>", 80), 0)
E       socket.gaierror: [Errno -3] Temporary failure in name resolution

trio/tests/test_socket.py:176: gaierror
___________________________ test_SocketType_resolve ____________________________

    async def test_SocketType_resolve():
        # For some reason the stdlib special-cases "" to pass NULL to getaddrinfo
        # They also error out on None, but whatever, None is much more consistent,
        # so we accept it too.
        for null in [None, ""]:
            sock4 = tsocket.socket(family=tsocket.AF_INET)
            got = await sock4._resolve_local_address((null, 80))
            assert got == ("<IP_ADDRESS>", 80)
            got = await sock4._resolve_remote_address((null, 80))
            assert got == ("<IP_ADDRESS>", 80)

            sock6 = tsocket.socket(family=tsocket.AF_INET6)
            got = await sock6._resolve_local_address((null, 80))
            assert got == ("::", 80, 0, 0)

            got = await sock6._resolve_remote_address((null, 80))
            assert got == ("::1", 80, 0, 0)

        # AI_PASSIVE only affects the wildcard address, so for everything else
        # _resolve_local_address and _resolve_remote_address should work the same:
        for res in ["_resolve_local_address", "_resolve_remote_address"]:

            async def s4res(*args):
                return await getattr(sock4, res)(*args)

            async def s6res(*args):
                return await getattr(sock6, res)(*args)

>           assert await s4res(("<IP_ADDRESS>", "http")) == ("<IP_ADDRESS>", 80)

trio/tests/test_socket.py:408:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
trio/tests/test_socket.py:403: in s4res
    return await getattr(sock4, res)(*args)
trio/_socket.py:556: in _resolve_local_address
    return await self._resolve_address(address, AI_PASSIVE)
trio/_socket.py:535: in _resolve_address
    self._sock.proto, flags
trio/_socket.py:248: in getaddrinfo
    cancellable=True
trio/_threads.py:399: in run_sync_in_worker_thread
    return await _core.wait_task_rescheduled(abort)
trio/_core/_traps.py:159: in wait_task_rescheduled
    return (await _async_yield(WaitTaskRescheduled(abort_func))).unwrap()
trio/_core/_result.py:119: in unwrap
    raise self.error
trio/_core/_result.py:33: in capture
    return Value(sync_fn(*args))
trio/_threads.py:361: in do_release_then_return_result
    return result.unwrap()
trio/_core/_result.py:119: in unwrap
    raise self.error
trio/_core/_result.py:33: in capture
    return Value(sync_fn(*args))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

host = b'<IP_ADDRESS>', port = 'http', family = <AddressFamily.AF_INET: 2>, type = 1
proto = 0, flags = <AddressInfo.AI_PASSIVE: 1>

    def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0):
        """Resolve host and port into list of address info entries.

        Translate the host/port argument into a sequence of 5-tuples that contain
        all the necessary arguments for creating a socket connected to that service.
        host is a domain name, a string representation of an IPv4/v6 address or
        None. port is a string service name such as 'http', a numeric port number or
        None. By passing None as the value of host and port, you can pass NULL to
        the underlying C API.

        The family, type and proto arguments can be optionally specified in order to
        narrow the list of addresses returned. Passing zero as a value for each of
        these arguments selects the full range of results.

            Returns:
              Either a :class:`Value` or :class:`Error` as appropriate.

            """
        try:
>           return Value(sync_fn(*args))
E           OSError: protocol not found

trio/_core/_result.py:33: OSError
=============== 3 failed, 419 passed, 5 skipped in 14.68 seconds ===============
builder for '/nix/store/s7r7xjgdwc1zzkpjlbd2zxpj5a08x6lj-python3.6-trio-0.4.0.drv' failed with exit code 1
error: build of '/nix/store/s7r7xjgdwc1zzkpjlbd2zxpj5a08x6lj-python3.6-trio-0.4.0.drv' failed

I'd say just disable the failing tests.

Failure on aarch64-linux (full log)
Attempted: python3.pkgs.trio
Partial log (click to expand)

            """
        try:
>           return Value(sync_fn(*args))
E           OSError: protocol not found

trio/_core/_result.py:33: OSError
============== 3 failed, 419 passed, 5 skipped in 536.54 seconds ===============
builder for '/nix/store/3gs3rc9jz1p7s68f2wbpr0dc68a7fxh2-python3.6-trio-0.4.0.drv' failed with exit code 1
error: build of '/nix/store/3gs3rc9jz1p7s68f2wbpr0dc68a7fxh2-python3.6-trio-0.4.0.drv' failed

@GrahamcOfBorg build python3.pkgs.trio

Success on x86_64-linux (full log)
Attempted: python3.pkgs.trio
Partial log (click to expand)
trio/tests/test_socket.py ......s................                        [ 67%]
trio/tests/test_ssl.py ............................                      [ 74%]
trio/tests/test_sync.py .................................                [ 82%]
trio/tests/test_testing.py ........................                      [ 87%]
trio/tests/test_threads.py .......................                       [ 93%]
trio/tests/test_timeouts.py ...                                          [ 93%]
trio/tests/test_util.py ..........................                       [100%]

============= 419 passed, 5 skipped, 3 deselected in 14.80 seconds =============
/nix/store/cqhghj42751vsraps7nl5789fbvn8inz-python3.6-trio-0.4.0

Success on aarch64-linux (full log)
Attempted: python3.pkgs.trio
Partial log (click to expand)
trio/tests/test_socket.py ......s................                        [ 67%]
trio/tests/test_ssl.py ............................                      [ 74%]
trio/tests/test_sync.py .................................                [ 82%]
trio/tests/test_testing.py ........................                      [ 87%]
trio/tests/test_threads.py .......................                       [ 93%]
trio/tests/test_timeouts.py ...                                          [ 93%]
trio/tests/test_util.py ..........................                       [100%]

============= 419 passed, 5 skipped, 3 deselected in 45.77 seconds =============
/nix/store/8s26g51c4qyyfm229pwwg0wqvy4pid4n-python3.6-trio-0.4.0


filter for stories by character?

Would it be possible to add the option to filter for stories that feature a specific character? For example, if I search for Folinic I get a list of all stories that feature dialogue from Folinic. I think this will be helpful in particular with finding operator records or module stories that a character appears in, since those are hardest to access from inside the game and sometimes the most random people appear in operator records.
Characters often appear under different names so this might be hard to automate. Maybe it's possible to use the character images as well as dialogue labels to find them? There are some appearances that will slip through the gaps even if both name and sprite are searched for (like Shalem in Rewinding Breeze) but it should still make for a very useful overview.

It's planned with some lore related feature in the future. Currently we haven't decide by using which identifier to track those character, if you have better idea plz do disscusion here


Add BusyAgentPercentage metric

thanks for merging my previous PR.
I would like to suggest this change to add BusyAgentPercentage metric, similar to BusyAgentCount but reported as the % of agents being busy at the moment.
We have been using this metric for a while in our fork to enable TargetTrackingScaling and it's working very well, it may be useful for someone else.
see https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html

Sounds good @arromer! Thanks again for the contribution!


Setting batch job paths

Description

Added a setting to pass paths to the batch job, in case it needs a function that is not inside the PredSim repository.
Included settings to select cluster for batch job to the documentation, since it was missing.

Motivation and Context

Simulations with e.g. orthosis function in a different folder will cause an error when running in batch.
How Has This Been Tested?

Simulations with orthosis function from the workshop repo (e.g. example_2) can run in batch.
Suggested tests for reviewers

Run workshop example_2 (hands-on modelling assistive devices)

I have run workshop example_2 in batch and runs without any problem


services footer section issue solved

Footer section of SERVICES web page was not fitting the screen. Now it has been made correct.

Mention Issue!

The footer section of SERVICES page was not fit to width of screen, so i raised the issue #922 and now i have solved it.

@sxnkush where is issue ID why contributor are creating Direct PR?

@khushi-joshi-05 check for same


Remove multi-windows, use one main window instead

Is your feature request related to a problem? Please describe.
The current multi-window feature in Panku Console, while flexible, may lead to a cluttered user interface and potentially confusing user experience. Many modern development tools have moved towards a single-window interface with tabbed content areas, which provides a cleaner and more manageable workspace.

This is the current main console window, everytime you click the tab will create a new popup window which is unnecessary.

A mess.
Describe the solution you'd like

Introduce a "Single Window Mode" option in Panku Console settings.
When enabled, this mode would consolidate all functionality into one main window with a tabbed interface.
Add an option to disable new popup windows, defaulting to true in Single Window Mode.
Gradually phase out the multi-window feature in future updates, making Single Window Mode the default.

Describe alternatives you've considered

Keeping the multi-window feature but improving window management
Implementing a hybrid approach where some functionalities remain in separate windows while others are consolidated

Additional context

This change aligns with issue #192, which aims to improve usability on mobile devices.
Single Window Mode would enhance the user experience across various platforms, especially on devices with limited screen real estate.
It would simplify the codebase and potentially make it easier to maintain and extend the console's functionality in the future.

Proposed Implementation Steps

Create a new configuration option for Single Window Mode
Develop a configurable tabbed interface for the main window
Implement logic to route all functionalities to the appropriate tabs instead of new windows
Update documentation to reflect the new mode and its benefits
Gradually deprecate the multi-window feature in future releases

Potential Impact

User Experience: Cleaner, more intuitive interface
Cross-platform Compatibility: Better support for mobile and smaller screens
Maintenance: Potentially simpler codebase to maintain
Performance: Possible improvements due to reduced overhead of managing multiple windows

@worron , what's your opinion?
Also, I'm wondering where to collect more user feedback?

II don't have a strong opinion on this option. A single window mode is kinda cool and all, I just can't 100% confirm it worth the effort. Both approaches have advantages and downsides.  Also, I heavily use tiling windows manager on my PC for a long time, so my view may be a bit screwed in favor of multi windows interface. Anyway, it's definitely worth try to collect some user opinions (reddit post maybe?) before launching such deep refactoring.
On the other side I totally agree about current multi window management doesn't feel so smooth. Mentioned alternative

Keeping the multi-window feature but improving window management

seems like very perspective direction. I was thinking about window placement tool, similar to what godot Control nodes have. Probably I can try to implement something similar for panku windows, if it looks like a good idea.


Define translation for different languages

Hello, and thanks for the component!
It's really nice and useful.
Can you provide a way to change the label into our language?
Like in Italian. I want ho show "Giorno" instead of "Day"
I think it's useful to create a props name for each language and translate it.
I can help with with italian


Bump IOGX V3

Changes to the interface:

./nix/iogx-config.nix renamed to -> ./nix/haskell.nix

iogx-config.nix:haskellCompilers -> ./nix/haskell.nix:supportedCompilers
iogx-config.nix:defaultHaskellCompiler -> ./nix/haskell.nix:defaultCompiler
iogx-config.nix:shouldCrossCompile -> ./nix/haskell.nix:enableCrossCompilation

./nix/haskell-project.nix renamed to -> ./nix/cabal-project.nix

./nix/pre-commit-check.nix renamed to -> ./nix/formatters.nix

./nix/hydra-jobs.nix renamed to -> ./nix/ci.nix

inputs and inputs' have been swapped.
inputs (no prime ') is now the original inputs, non-desystemised
inputs' (with prime ') is now the de-systemized inputs
Reason behind this is that inputs is universally understood to be the original, unmodified flake inputs.
While inputs' is "non-standard" and thus warrants a different name.
This is the same notation used by flake.parts

The flake exports aliases for your haskell executables only in outputs.apps.
For example, outputs.apps.marlowe-apps-exe-marlowe-finder-ghc8107 also has an
alias outputs.apps.marlowe-finder (the cabal package name and the exe infix have been stripped)
These can be access as usual with inputs'.self.apps.marlowe-finder

There is a new parameters to the interface files named nix, which can be used to reference files in your ./nix folder by name using attribute sets, instead of using the import keyword. See this for documentation https://github.com/input-output-hk/iogx#301-nix

The flake output names have changed again (for the last time I promise).
Because your project only supports one compiler (see ./nix/cabal-project.nix:supportedCompilers) there is no need to disambiguate between compiler names, and so the compiler name "-ghc8107" is no longer prefixed to the packages|checks|apps flake outputs.
inputs.'self.packages.marlowe-runtime-web-exe-marlowe-web-server-ghc8107 ->
inputs.'self.packages.marlowe-runtime-web-exe-marlowe-web-server

In addition, aliases for your cabal executables only (this excludes benchmarks and test suites) are added to your packages and apps flake outputs (the original, longer names are still kept).
"Alias" means just the executable name as found in your cabal file, without the $CabalPackageName-exe- prefix.
inputs.'self.packages.marlowe-runtime-web-exe-marlowe-web-server ->
inputs.'self.packages.marlowe-web-server

inputs.'self.apps.marlowe-runtime-web-exe-marlowe-web-server ->
inputs.'self.apps.marlowe-web-server

If you cabal project has multiple executables with the same name across your cabal files, a warning will be generated when running list-flake-outputs and no aliases will be created.
@bwbush
Last time the flake output names were changed, things broke.
Please point out what other repositories call into the marlowe-cardano flake, and I'll go and update them myself.
Thank you for your patience.


Question about fill_spreadsheet and continuing JOSS review

This is part of a JOSS review.
Almost done! :) Just a few things left.
Editorial comment:
In “Examples of Common AutoGAMESS Utilization Methods” section in README.md, there are 3 examples. Could these be titled separately (giving each example a heading), for clarity?
General comment:
Since the test inputs were all from the Windows version of GAMESS, I tested if the log parsing worked with the Linux version of GAMESS to see if it could parse the log files and if the inputs it generated ran properly. Everything worked properly, at least for water :) .
Issue:
I have been trying all the functions in README.md.  My overall goal was to generate data for Optimization, Hessian, and Raman for the H2O input, and then use fill_spreadsheet to parse the data into the spreadsheet. I ran into an issue with fill_spreadsheet, though (described below).
First, I was able to generate an input with make_input, run it with GAMESS, use opt2hes to generate a hessian input, run it with GAMESS, use hes2raman to get a Raman input, and then run it. I then used new_project to generate a directory structure, and sort_logs to sort the logs into the Logs/Sorted subdirectory. After doing this, I end up with all the logs in the Logs/Sorted/H2O/ subdirectory:
bash-3.2$ ls  Project\ Title/Logs/Sorted/H2O/
AGv1-0-35_H2O_B3LYP_CCD_hes.log
AGv1-0-35_H2O_B3LYP_CCD_opt.log
AGv1-0-35_H2O_B3LYP_CCD_raman.log

However, one thing has tripped me up—after doing what I described above, when I tried to run fill_spreadsheets, it failed with this error:
Traceback (most recent call last):
  File "fill.py", line 11, in <module>
    ag.fill_spreadsheets(sorteddir=sorteddir, sheetsdir=sheetsdir)
  File "", line 174, in fill_spreadsheets
    temp = df[ram]
KeyError: 'Raman'

It looks like the input.csv I used to generate the project structure only had one line, for H2O Optimization, and it looks like to pull out Raman and Hessian information, these need to be in input.csv, too. So I tried to regenerate the spreadsheets and directory structure with the following input.csv
bash-3.2$ cat input.csv
Species,Theory,Basis Sets,External Basis Sets,Run Types
H2O,B3LYP,CCD,,Raman
H2O,B3LYP,CCD,,Hessian
H2O,B3LYP,CCD,,Optimization

But this input.csv failed to generate a directory structure:
bash-3.2$ python
>>> import autogamess as ag
>>> csvfile = './input.csv'
>>> maindir= './'
>>> title   = 'Project Title/'
>>> ag.new_project(maindir, csvfile, title=title)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/colleen/autogamess/autogamess/new_project.py", line 115, in new_project
    os.makedirs(inputs+runtyp+specie)
  File "/anaconda3/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
FileExistsError: [Errno 17] File exists: './Project Title/Inps/Raman/H2O/'

Any advice on how to proceed? Or maybe I missed something? My use case was to generate the data for Optimization, Hessian, and Raman, for H2O, and then just use fill_spreadsheet to parse the data into the spreadsheet. Maybe this is not a normal use case?

Hey @colleeneb, glad to hear the data parsing worked for Linux! I never tested it with the Linux version. I will make the headings in the README right away.
In terms of the issue you ran into, the CSV file should only have each item on there once, if you take a look at the input.csv in the tests directory it has the input for running water all the way to raman with B3LYP CCD.
It should look like this:

Species
Theory
Basis Sets
External Basis Sets
Run Types

H2O
B3LYP
CCD

Optimization

Hessian

Raman

AutoGAMESS will generate a project directory assuming every combination of, basis sets (internal and external), theory and run type will be performed for all species. So in the above example it assumes H2O B3LYP CCD will run Optimization, Hessian and Raman.

Thanks for the help. Could you mention somewhere in README.md something along the lines of what you said—“the CSV file should only have each item on there once, but could have multiple run types”, and add a few lines in the CSV example in the README about it? Just so other people don’t get tripped up.
Once I changed input.csv as suggested, the spreadsheet was generated as expected with ag.fill_spreadsheets('./Project Title/').
However, it moved the log files from Sorted directory to [project]/Pass/[run_type]/[species]/, which I didn’t expect—could this be documented? I only expected it to fill the spreadsheets, not move files, too.
On that note, trying to run
import autogamess as ag
sorteddir = './Project Title/Logs/Sorted/'
sheetsdir = './Project Title/Spreadsheets/'
ag.fill_spreadsheets(sorteddir=sorteddir, sheetsdir=sheetsdir)

Using the same setup as before—log files for H20 for Optimization, Hessian, and Raman in “./Project Title/Logs/Sorted/“, running the code above resulted in the following error:
Traceback (most recent call last):
  File "fill.py", line 11, in <module>
    ag.fill_spreadsheets(sorteddir=sorteddir, sheetsdir=sheetsdir)
  File "/Users/colleen/autogamess/autogamess/fill_spreadsheets.py", line 203, in fill_spreadsheets
    move2 = passdir + ram + '/' + dir + '/' + file
UnboundLocalError: local variable 'passdir' referenced before assignment

It looks like in fill_spreadsheets.py, passedir is only defined if projdir is True, but it’s used later.

Hey @colleeneb I will add that to the README right away! I will also add that fill_spreadsheets moves the files to the documentation as well. I'm also going to fix the passdir issue, right away.
Again, as always thank you so much for the comments and bug spotting!

(One possible suggestion is to put any example that is in the README.md also in the testing setup, so you know those are being tested. However, this is not required for the review/acceptance, just a general comment.)

Last thing! (I'm staying in this issue since it's related. I repulled and tried running
import autogamess as ag
sorteddir = './Project Title/Logs/Sorted/'
sheetsdir = './Project Title/Spreadsheets/'
ag.fill_spreadsheets(sorteddir=sorteddir, sheetsdir=sheetsdir)

again, and now I get the error below. So passdir or something else is missing a / (because it looks for './Project TitleLogs/Pass/Raman.
Traceback (most recent call last):
  File "fill.py", line 9, in <module>
    ag.fill_spreadsheets(sorteddir=sorteddir, sheetsdir=sheetsdir)
  File "/Users/colleen/autogamess/autogamess/fill_spreadsheets.py", line 213, in fill_spreadsheets
    os.rename(filename, move2)
FileNotFoundError: [Errno 2] No such file or directory: './Project Title/Logs/Sorted/H2O/AGv1-0-35_H2O_B3LYP_CCD_raman.log' -> './Project TitleLogs/Pass/Raman/H2O/AGv1-0-35_H2O_B3LYP_CCD_raman.log'

@colleeneb I just fixed it (at least I think i did lol). Let me know if its working now.

Yes, that worked for me, thanks!

@Cavenfish This is outside of the scope of the review, but I wanted to mention that if you are interested in making changes/improvements to GAMESS itself, you can follow the instructions here, and email to request access to the GAMESS private repo on github.
(I moved this from the review to here, since I think it's more appropriate here than in the review page. Sorry for spamming you twice.)

@colleeneb Not a problem, twice isn't too bad! I will look into it, thank you for passing along this information.


Scroll Progress Bar

Related Issue

Closes: #9

Description
A horizontal progress bar at the top of the page that updates dynamically as the user scrolls down was added.

How Has This Been Tested?

Screenshots (if applicable)

Type of Change

[ ] Bug fix
[x] New feature
[ ] Code style update
[ ] Breaking change
[ ] Documentation update

Solved conflicts in PR #44


Another no difficult idea.

@qinchunyuan @mingze: I was testing yesterday the tool and it came to my mind the possibility to build a search spectra system based on this.
Instead of using the current method for clustering, we can use the current method for searching spectra meaning that we can build a simple URL where someone paste a spectrum and we search against millions of spectra and see if we can found it.
This will demand the following steps:

Take DLEAMSE and run it for 1 billion spectra in PRIDE and probably some spectra in Massive (I can do that in our local cluster)
Using https://github.com/ypriverol/milvus build a python search engine that giving a spectrum query do the following:
- compute the spectrum 3D-Vector
- Search in the database of the millions of spectra.
Retrieve to the user a list of possible spectra close to your spectra using USI.

Please comments.

Implemented!!!!


Added my project: Calculator

I have added my personal project.
It is a web Calculator with responsive design.
I have used HTML,CSS & vanilla JS.

You're very welcome @MrAshwin2142