[BUG]ctest failed about<EMAIL_ADDRESS>on centos8_aarch64

Describe the bug
ctest failed about<EMAIL_ADDRESS>on centos8_aarch64
To Reproduce
Steps to reproduce the issue
[root@localhost openimageio]# . src/build-scripts/ci-startup.bash
[root@localhost build]#cmake ..
[root@localhost build]# ninja -j126
[215/215] Linking CXX shared module lib/python/site-packages/OpenImageIO.cpython-38-aarch64-linux-gnu.so
[root@localhost build]# ctest -j126 --output-on-failure
1/92 Test  #1: cmake-consumer ....................***Failed    3.69 sec
/bin/sh: ./consumer: No such file or directory
-rw-r--r--. 1 root root 0 Jan 26 16:00 out.txt
-rw-rw-r--. 1 root root 3 Jan  2 03:36 ref/out.txt
command = cmake /home/spack-stage/root/spack-stage-openimageio-<IP_ADDRESS>-xykecgiz3bk6ntuid6e5woqqr7yuahiw/spack-src/testsuite/cmake-consumer -DCMAKE_BUILD_TYPE=Release >> build.txt 2>&1 ;
cmake --build . --config Release >> build.txt 2>&1 ;
./consumer >> out.txt  ;

#### Error: this command failed:  cmake --build . --config Release >> build.txt 2>&1
FAIL
#### Error: this command failed:  ./consumer >> out.txt
FAIL
Diff out.txt vs ref/out.txt was:
-------
--- out.txt     Wed Jan 26 16:00:21 2022
+++ ref/out.txt Sun Jan  2 03:36:43 2022
@@ -0,0 +1 @@
+OK

NO MATCH for out.txt
FAIL out.txt
-----out.txt----->
<----------
-----ref/out.txt----->
OK
<----------
Diff was:
-------
--- out.txt     Wed Jan 26 16:00:21 2022
+++ ref/out.txt Sun Jan  2 03:36:43 2022
@@ -0,0 +1 @@
+OK

 2/92 Test #34: texture-interp-bilinear ...........***Failed    3.68 sec
Comparing "out.tif" and "ref/out.tif"
512 x 512, 4 channel
  Mean error = 1.75775e-06
  RMS error = 9.06262e-05
  Peak SNR = 80.8549
  Max error  = 0.0196078 @ (69, 78, B)  values are 0.47451, 0.47451, 0.913726, 1 vs 0.470588, 0.470588, 0.894118, 1
  5 pixels (0.00191%) over 0.008
  13 pixels (0.00496%) over 0.004
FAILURE
command = ../../bin/testtex  ../common/textures/grid.tx -interpmode 1  -d uint8 -o out.tif  >> out.txt  ;

NO MATCH for out.tif
FAIL out.tif

 3/92 Test #36: texture-interp-closest ............***Failed    3.68 sec
Comparing "out.tif" and "ref/out.tif"
512 x 512, 4 channel
  Mean error = 4.42804e-06
  RMS error = 0.000406485
  Peak SNR = 67.8191
  Max error  = 0.105882 @ (404, 222, B)  values are 0.25098, 0.25098, 0.462745, 1 vs 0.309804, 0.309804, 0.568627, 1
  45 pixels (0.0172%) over 0.008
  52 pixels (0.0198%) over 0.004
FAILURE
command = ../../bin/testtex  ../common/textures/grid.tx -interpmode 0  -d uint8 -o out.tif  >> out.txt  ;

NO MATCH for out.tif
FAIL out.tif

 4/92 Test #37: texture-interp-closest.batch ......***Failed    3.68 sec
Comparing "out.tif" and "ref/out.tif"
512 x 512, 4 channel
  Mean error = 1.72035e-07
  RMS error = 4.36648e-05
  Peak SNR = 87.1974
  Max error  = 0.0313725 @ (100, 174, G)  values are 0.403922, 0.67451, 0.403922, 1 vs 0.396078, 0.643137, 0.396078, 1
  3 pixels (0.00114%) over 0.008
  3 pixels (0.00114%) over 0.004
FAILURE
command = ../../bin/testtex  ../common/textures/grid.tx -interpmode 0  -d uint8 -o out.tif  >> out.txt  ;

NO MATCH for out.tif
FAIL out.tif

 5/92 Test #40: texture-mip-onelevel ..............***Failed    3.68 sec
Comparing "out.tif" and "ref/out.tif"
512 x 512, 4 channel
  Mean error = 1.24165e-06
  RMS error = 0.000268677
  Peak SNR = 71.4154
  Max error  = 0.121569 @ (402, 456, R)  values are 0.733333, 0.733333, 0.733333, 1 vs 0.854902, 0.854902, 0.854902, 1
  2 pixels (0.000763%) over 0.008
  2 pixels (0.000763%) over 0.004
FAILURE
command = ../../bin/testtex  ../common/textures/grid.tx -mipmode 2  -d uint8 -o out.tif  >> out.txt  ;

NO MATCH for out.tif
FAIL out.tif

 6/92 Test #44: texture-mip-stochastictrilinear ...***Failed    3.67 sec
Comparing "out.tif" and "ref/out.tif"
512 x 512, 4 channel
  Mean error = 1.29027e-06
  RMS error = 0.000213467
  Peak SNR = 73.4134
  Max error  = 0.141176 @ (377, 209, B)  values are 0.309804, 0.309804, 0.607843, 1 vs 0.247059, 0.247059, 0.466667, 1
  3 pixels (0.00114%) over 0.008
  3 pixels (0.00114%) over 0.004
FAILURE
command = ../../bin/testtex  ../common/textures/grid.tx -mipmode 5 -d uint8 -o out.tif  >> out.txt  ;

NO MATCH for out.tif
FAIL out.tif

 7/92 Test #45: texture-mip-stochasticaniso .......***Failed    3.67 sec
Comparing "out.tif" and "ref/out.tif"
512 x 512, 4 channel
  Mean error = 2.2028e-06
  RMS error = 0.000221094
  Peak SNR = 73.1085
  Max error  = 0.156863 @ (104, 309, G)  values are 0.32549, 0.4, 0.32549, 1 vs 0.368627, 0.556863, 0.368627, 1
  9 pixels (0.00343%) over 0.008
  18 pixels (0.00687%) over 0.004
FAILURE
command = ../../bin/testtex  ../common/textures/grid.tx -mipmode 6 -d uint8 -o out.tif  >> out.txt  ;

NO MATCH for out.tif
FAIL out.tif

 8/92 Test #54: texture-uint8 .....................***Failed    3.67 sec
Comparing "out.exr" and "ref/out.exr"
512 x 512, 4 channel
  Mean error = 1.5237e-06
  RMS error = 4.96972e-05
  Peak SNR = 86.0734
  Max error  = 0.0209961 @ (69, 78, B)  values are 0.47583, 0.47583, 0.913086, 1 vs 0.469482, 0.469482, 0.89209, 1
  6 pixels (0.00229%) over 0.008
  14 pixels (0.00534%) over 0.004
FAILURE
command = ../../bin/testtex  ../common/textures/grid.tx   >> out.txt  ;

NO MATCH for out.exr
FAIL out.exr

 9/92 Test #60: texture-skinny ....................***Failed    3.67 sec
Comparing "out.exr" and "ref/out.exr"
512 x 512, 4 channel
  Mean error = 7.24172e-07
  RMS error = 3.62152e-05
  Peak SNR = 88.8222
  Max error  = 0.012207 @ (485, 41, R)  values are 0.890137, 0.890137, 0.890137, 1 vs 0.87793, 0.87793, 0.87793, 1
  2 pixels (0.000763%) over 0.008
  6 pixels (0.00229%) over 0.004
FAILURE
command = ../../bin/testtex  src/vertgrid.tx  --scalest 4 1   >> out.txt  ;

NO MATCH for out.exr
FAIL out.exr

10/92 Test #63: heif-broken .......................***Failed    3.67 sec
oiiotool ERROR: read : OpenImageIO could not find a format reader for "ref/IMG_7702_small.heic". Is it a file format that OpenImageIO doesn't know about?
Full command line was:
> oiiotool --info -v -a --hash ref/IMG_7702_small.heic
oiiotool ERROR: read : OpenImageIO could not find a format reader for "ref/Chimera-AV1-8bit-162.avif". Is it a file format that OpenImageIO doesn't know about?
Full command line was:
> oiiotool --info -v -a --hash ref/Chimera-AV1-8bit-162.avif
command = ../../bin/oiiotool --info -v -a --hash  ref/IMG_7702_small.heic >> out.txt ;
../../bin/oiiotool --info -v -a --hash  ref/Chimera-AV1-8bit-162.avif >> out.txt ;

Diff out.txt vs ref/out-libheif1.4.txt was:
-------
--- out.txt     Wed Jan 26 16:00:21 2022
+++ ref/out-libheif1.4.txt      Sun Jan  2 03:36:43 2022
@@ -0,0 +1,40 @@
+Reading ref/IMG_7702_small.heic
+ref/IMG_7702_small.heic :  512 x  300, 3 channel, uint8 heif
+    SHA-1: C681C957FE12AEFBAED8F40DCC74E276C38D8165
+    channel list: R, G, B
+    DateTime: "2019:01:21 16:10:54"
+    ExposureTime: 0.030303
+    FNumber: 1.8
+    Make: "Apple"
+    Model: "iPhone 7"
+    ResolutionUnit: 2 (inches)
+    Software: "12.1.2"
+    XResolution: 72
+    YResolution: 72
+    Exif:ApertureValue: 1.69599 (f/1.8)
+    Exif:BrightnessValue: 3.99501
+    Exif:ColorSpace: 65535
+    Exif:DateTimeDigitized: "2019:01:21 16:10:54"
+    Exif:DateTimeOriginal: "2019:01:21 16:10:54"
+    Exif:ExifVersion: "0221"
+    Exif:ExposureBiasValue: 0
+    Exif:ExposureMode: 0 (auto)
+    Exif:ExposureProgram: 2 (normal program)
+    Exif:Flash: 24 (no flash, auto flash)
+    Exif:FlashPixVersion: "0100"
+    Exif:FocalLength: 3.99 (3.99 mm)
+    Exif:FocalLengthIn35mmFilm: 28
+    Exif:LensMake: "Apple"
+    Exif:LensModel: "iPhone 7 back camera 3.99mm f/1.8"
+    Exif:LensSpecification: 3.99, 3.99, 1.8, 1.8
+    Exif:MeteringMode: 5 (pattern)
+    Exif:PhotographicSensitivity: 20
+    Exif:PixelXDimension: 4032
+    Exif:PixelYDimension: 3024
+    Exif:SceneCaptureType: 0 (standard)
+    Exif:SensingMethod: 2 (1-chip color area)
+    Exif:ShutterSpeedValue: 5.03599 (1/32 s)
+    Exif:SubsecTimeDigitized: "006"
+    Exif:SubsecTimeOriginal: "006"
+    Exif:WhiteBalance: 0 (auto)
+    oiio:ColorSpace: "sRGB"

Diff out.txt vs ref/out-libheif1.5.txt was:
-------
--- out.txt     Wed Jan 26 16:00:21 2022
+++ ref/out-libheif1.5.txt      Sun Jan  2 03:36:43 2022
@@ -0,0 +1,40 @@
+Reading ref/IMG_7702_small.heic
+ref/IMG_7702_small.heic :  512 x  300, 3 channel, uint8 heif
+    SHA-1: A189F078254B21C9F918207D6DD5433DD5D2382D
+    channel list: R, G, B
+    DateTime: "2019:01:21 16:10:54"
+    ExposureTime: 0.030303
+    FNumber: 1.8
+    Make: "Apple"
+    Model: "iPhone 7"
+    ResolutionUnit: 2 (inches)
+    Software: "12.1.2"
+    XResolution: 72
+    YResolution: 72
+    Exif:ApertureValue: 1.69599 (f/1.8)
+    Exif:BrightnessValue: 3.99501
+    Exif:ColorSpace: 65535
+    Exif:DateTimeDigitized: "2019:01:21 16:10:54"
+    Exif:DateTimeOriginal: "2019:01:21 16:10:54"
+    Exif:ExifVersion: "0221"
+    Exif:ExposureBiasValue: 0
+    Exif:ExposureMode: 0 (auto)
+    Exif:ExposureProgram: 2 (normal program)
+    Exif:Flash: 24 (no flash, auto flash)
+    Exif:FlashPixVersion: "0100"
+    Exif:FocalLength: 3.99 (3.99 mm)
+    Exif:FocalLengthIn35mmFilm: 28
+    Exif:LensMake: "Apple"
+    Exif:LensModel: "iPhone 7 back camera 3.99mm f/1.8"
+    Exif:LensSpecification: 3.99, 3.99, 1.8, 1.8
+    Exif:MeteringMode: 5 (pattern)
+    Exif:PhotographicSensitivity: 20
+    Exif:PixelXDimension: 4032
+    Exif:PixelYDimension: 3024
+    Exif:SceneCaptureType: 0 (standard)
+    Exif:SensingMethod: 2 (1-chip color area)
+    Exif:ShutterSpeedValue: 5.03599 (1/32 s)
+    Exif:SubsecTimeDigitized: "006"
+    Exif:SubsecTimeOriginal: "006"
+    Exif:WhiteBalance: 0 (auto)
+    oiio:ColorSpace: "sRGB"

Diff out.txt vs ref/out-libheif1.9-with-av1.txt was:
-------
--- out.txt     Wed Jan 26 16:00:21 2022
+++ ref/out-libheif1.9-with-av1.txt     Sun Jan  2 03:36:43 2022
@@ -0,0 +1,45 @@
+Reading ref/IMG_7702_small.heic
+ref/IMG_7702_small.heic :  512 x  300, 3 channel, uint8 heif
+    SHA-1: 337C2EC7F5C2316F2FD31F04067BDC59AB7027AE
+    channel list: R, G, B
+    DateTime: "2019:01:21 16:10:54"
+    ExposureTime: 0.030303
+    FNumber: 1.8
+    Make: "Apple"
+    Model: "iPhone 7"
+    ResolutionUnit: 2 (inches)
+    Software: "12.1.2"
+    XResolution: 72
+    YResolution: 72
+    Exif:ApertureValue: 1.69599 (f/1.8)
+    Exif:BrightnessValue: 3.99501
+    Exif:ColorSpace: 65535
+    Exif:DateTimeDigitized: "2019:01:21 16:10:54"
+    Exif:DateTimeOriginal: "2019:01:21 16:10:54"
+    Exif:ExifVersion: "0221"
+    Exif:ExposureBiasValue: 0
+    Exif:ExposureMode: 0 (auto)
+    Exif:ExposureProgram: 2 (normal program)
+    Exif:Flash: 24 (no flash, auto flash)
+    Exif:FlashPixVersion: "0100"
+    Exif:FocalLength: 3.99 (3.99 mm)
+    Exif:FocalLengthIn35mmFilm: 28
+    Exif:LensMake: "Apple"
+    Exif:LensModel: "iPhone 7 back camera 3.99mm f/1.8"
+    Exif:LensSpecification: 3.99, 3.99, 1.8, 1.8
+    Exif:MeteringMode: 5 (pattern)
+    Exif:PhotographicSensitivity: 20
+    Exif:PixelXDimension: 4032
+    Exif:PixelYDimension: 3024
+    Exif:SceneCaptureType: 0 (standard)
+    Exif:SensingMethod: 2 (1-chip color area)
+    Exif:ShutterSpeedValue: 5.03599 (1/32 s)
+    Exif:SubsecTimeDigitized: "006"
+    Exif:SubsecTimeOriginal: "006"
+    Exif:WhiteBalance: 0 (auto)
+    oiio:ColorSpace: "sRGB"
+Reading ref/Chimera-AV1-8bit-162.avif
+ref/Chimera-AV1-8bit-162.avif :  480 x  270, 3 channel, uint8 heif
+    SHA-1: F8FDAF1BD56A21E3AF99CF8EE7FA45434D2826C7
+    channel list: R, G, B
+    oiio:ColorSpace: "sRGB"

Diff out.txt vs ref/out-libheif1.9.txt was:
-------
--- out.txt     Wed Jan 26 16:00:21 2022
+++ ref/out-libheif1.9.txt      Sun Jan  2 03:36:43 2022
@@ -0,0 +1,40 @@
+Reading ref/IMG_7702_small.heic
+ref/IMG_7702_small.heic :  512 x  300, 3 channel, uint8 heif
+    SHA-1: 337C2EC7F5C2316F2FD31F04067BDC59AB7027AE
+    channel list: R, G, B
+    DateTime: "2019:01:21 16:10:54"
+    ExposureTime: 0.030303
+    FNumber: 1.8
+    Make: "Apple"
+    Model: "iPhone 7"
+    ResolutionUnit: 2 (inches)
+    Software: "12.1.2"
+    XResolution: 72
+    YResolution: 72
+    Exif:ApertureValue: 1.69599 (f/1.8)
+    Exif:BrightnessValue: 3.99501
+    Exif:ColorSpace: 65535
+    Exif:DateTimeDigitized: "2019:01:21 16:10:54"
+    Exif:DateTimeOriginal: "2019:01:21 16:10:54"
+    Exif:ExifVersion: "0221"
+    Exif:ExposureBiasValue: 0
+    Exif:ExposureMode: 0 (auto)
+    Exif:ExposureProgram: 2 (normal program)
+    Exif:Flash: 24 (no flash, auto flash)
+    Exif:FlashPixVersion: "0100"
+    Exif:FocalLength: 3.99 (3.99 mm)
+    Exif:FocalLengthIn35mmFilm: 28
+    Exif:LensMake: "Apple"
+    Exif:LensModel: "iPhone 7 back camera 3.99mm f/1.8"
+    Exif:LensSpecification: 3.99, 3.99, 1.8, 1.8
+    Exif:MeteringMode: 5 (pattern)
+    Exif:PhotographicSensitivity: 20
+    Exif:PixelXDimension: 4032
+    Exif:PixelYDimension: 3024
+    Exif:SceneCaptureType: 0 (standard)
+    Exif:SensingMethod: 2 (1-chip color area)
+    Exif:ShutterSpeedValue: 5.03599 (1/32 s)
+    Exif:SubsecTimeDigitized: "006"
+    Exif:SubsecTimeOriginal: "006"
+    Exif:WhiteBalance: 0 (auto)
+    oiio:ColorSpace: "sRGB"

NO MATCH for out.txt
FAIL out.txt
-----out.txt----->
<----------
-----ref/out.txt----->
Traceback (most recent call last):
  File "/home/spack-stage/root/spack-stage-openimageio-<IP_ADDRESS>-xykecgiz3bk6ntuid6e5woqqr7yuahiw/spack-src/testsuite/runtest.py", line 463, in <module>
    ret = runtest (command, outputs, failureok=failureok)
  File "/home/spack-stage/root/spack-stage-openimageio-<IP_ADDRESS>-xykecgiz3bk6ntuid6e5woqqr7yuahiw/spack-src/testsuite/runtest.py", line 424, in runtest
    print (open(testfile,'r').read() + "<----------")
FileNotFoundError: [Errno 2] No such file or directory: 'ref/out.txt'

11/92 Test #65: texture-texture3d-broken ..........***Failed    3.66 sec
Could not get spec for ../openvdb/src/sphere.vdb
ERROR: Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Comparing "out.exr" and "ref/out.exr"
128 x 128, 4 channel
  Mean error = 0.938705
  RMS error = 0.964689
  Peak SNR = 0.312253
  Max error  = 1 @ (0, 0, R)  values are 1, 1, 1, 1 vs 0, 0, 0, 0
  16384 pixels (100%) over 0.008
  16384 pixels (100%) over 0.004
FAILURE
command = ../../bin/testtex  -res 128 128 --nowarp --offset 5 5 5 --scalest 3 3 ../openvdb/src/sphere.vdb   >> out.txt  ;

NO MATCH for out.exr
FAIL out.exr

12/92 Test #66: texture-texture3d-broken.batch ....***Failed    3.67 sec
Could not get spec for ../openvdb/src/sphere.vdb
ERROR: Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "../openvdb/src/sphere.vdb": OpenImageIO could not find a format reader for "../openvdb/src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Comparing "out.exr" and "ref/out.exr"
128 x 128, 4 channel
  Mean error = 0.938705
  RMS error = 0.964689
  Peak SNR = 0.312253
  Max error  = 1 @ (0, 0, R)  values are 1, 1, 1, 1 vs 0, 0, 0, 0
  16384 pixels (100%) over 0.008
  16384 pixels (100%) over 0.004
FAILURE
command = ../../bin/testtex  -res 128 128 --nowarp --offset 5 5 5 --scalest 3 3 ../openvdb/src/sphere.vdb   >> out.txt  ;

NO MATCH for out.exr
FAIL out.exr

13/92 Test #67: ptex-broken .......................***Failed    3.67 sec
oiiotool ERROR: read : OpenImageIO could not find a format reader for "src/triangle.ptx". Is it a file format that OpenImageIO doesn't know about?
Full command line was:
> oiiotool --info -v -a --hash src/triangle.ptx
-rw-r--r--. 1 root root    0 Jan 26 16:00 out.txt
-rw-rw-r--. 1 root root 2358 Jan  2 03:36 ref/out.txt
command = ../../bin/oiiotool --info -v -a --hash  src/triangle.ptx >> out.txt ;

#### Error: this command failed:  ../../bin/oiiotool --info -v -a --hash  src/triangle.ptx >> out.txt
FAIL
Diff out.txt vs ref/out.txt was:
-------
--- out.txt     Wed Jan 26 16:00:21 2022
+++ ref/out.txt Sun Jan  2 03:36:43 2022
@@ -0,0 +1,66 @@
+Reading src/triangle.ptx
+src/triangle.ptx     :    4 x    4, 3 channel, float ptex
+    9 subimages: 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f]
+ subimage  0:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: 7BC2F942597DAEB92D3E51C8C72EA9C957F5A891
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  1:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: 2E813D8DAA6013C7DFE8EF84E56B6BD9BEA7F93B
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  2:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: 79B3511C35A63D9AD8EF2691E76DE191103CF450
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  3:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: E5AEE2FB805B38C351034D4FECEF603AD8042ABE
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  4:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: 749BBBD8B925A6F78B9A307AFDF56ACAE8E0B7E1
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  5:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: 2125A335891CB63F42574D4CDE73B00A81530D00
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  6:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: F4F98B602AC70B7FD5021A1493E769526927AB04
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  7:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: EAC7068342FC9F973BE55178218E9B6191154C95
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  8:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: 36A0877272CDB3322250E4097CCF09CDFCEA3F1C
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"

NO MATCH for out.txt
FAIL out.txt
-----out.txt----->
<----------
-----ref/out.txt----->
Reading src/triangle.ptx
src/triangle.ptx     :    4 x    4, 3 channel, float ptex
    9 subimages: 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f]
 subimage  0:    4 x    4, 3 channel, float ptex
    MIP-map levels: 4x4 2x2 1x1
    SHA-1: 7BC2F942597DAEB92D3E51C8C72EA9C957F5A891
    channel list: R, G, B
    tile size: 4 x 4
    wrapmode: "clamp,clamp"
    ptex:meshType: "triangle"
 subimage  1:    4 x    4, 3 channel, float ptex
    MIP-map levels: 4x4 2x2 1x1
    SHA-1: 2E813D8DAA6013C7DFE8EF84E56B6BD9BEA7F93B
    channel list: R, G, B
    tile size: 4 x 4
    wrapmode: "clamp,clamp"
    ptex:meshType: "triangle"
 subimage  2:    4 x    4, 3 channel, float ptex
    MIP-map levels: 4x4 2x2 1x1
    SHA-1: 79B3511C35A63D9AD8EF2691E76DE191103CF450
    channel list: R, G, B
    tile size: 4 x 4
    wrapmode: "clamp,clamp"
    ptex:meshType: "triangle"
 subimage  3:    4 x    4, 3 channel, float ptex
    MIP-map levels: 4x4 2x2 1x1
    SHA-1: E5AEE2FB805B38C351034D4FECEF603AD8042ABE
    channel list: R, G, B
    tile size: 4 x 4
    wrapmode: "clamp,clamp"
    ptex:meshType: "triangle"
 subimage  4:    4 x    4, 3 channel, float ptex
    MIP-map levels: 4x4 2x2 1x1
    SHA-1: 749BBBD8B925A6F78B9A307AFDF56ACAE8E0B7E1
    channel list: R, G, B
    tile size: 4 x 4
    wrapmode: "clamp,clamp"
    ptex:meshType: "triangle"
 subimage  5:    4 x    4, 3 channel, float ptex
    MIP-map levels: 4x4 2x2 1x1
    SHA-1: 2125A335891CB63F42574D4CDE73B00A81530D00
    channel list: R, G, B
    tile size: 4 x 4
    wrapmode: "clamp,clamp"
    ptex:meshType: "triangle"
 subimage  6:    4 x    4, 3 channel, float ptex
    MIP-map levels: 4x4 2x2 1x1
    SHA-1: F4F98B602AC70B7FD5021A1493E769526927AB04
    channel list: R, G, B
    tile size: 4 x 4
    wrapmode: "clamp,clamp"
    ptex:meshType: "triangle"
 subimage  7:    4 x    4, 3 channel, float ptex
    MIP-map levels: 4x4 2x2 1x1
    SHA-1: EAC7068342FC9F973BE55178218E9B6191154C95
    channel list: R, G, B
    tile size: 4 x 4
    wrapmode: "clamp,clamp"
    ptex:meshType: "triangle"
 subimage  8:    4 x    4, 3 channel, float ptex
    MIP-map levels: 4x4 2x2 1x1
    SHA-1: 36A0877272CDB3322250E4097CCF09CDFCEA3F1C
    channel list: R, G, B
    tile size: 4 x 4
    wrapmode: "clamp,clamp"
    ptex:meshType: "triangle"
<----------
Diff was:
-------
--- out.txt     Wed Jan 26 16:00:21 2022
+++ ref/out.txt Sun Jan  2 03:36:43 2022
@@ -0,0 +1,66 @@
+Reading src/triangle.ptx
+src/triangle.ptx     :    4 x    4, 3 channel, float ptex
+    9 subimages: 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f], 4x4 [f,f,f]
+ subimage  0:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: 7BC2F942597DAEB92D3E51C8C72EA9C957F5A891
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  1:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: 2E813D8DAA6013C7DFE8EF84E56B6BD9BEA7F93B
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  2:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: 79B3511C35A63D9AD8EF2691E76DE191103CF450
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  3:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: E5AEE2FB805B38C351034D4FECEF603AD8042ABE
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  4:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: 749BBBD8B925A6F78B9A307AFDF56ACAE8E0B7E1
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  5:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: 2125A335891CB63F42574D4CDE73B00A81530D00
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  6:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: F4F98B602AC70B7FD5021A1493E769526927AB04
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  7:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: EAC7068342FC9F973BE55178218E9B6191154C95
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
+ subimage  8:    4 x    4, 3 channel, float ptex
+    MIP-map levels: 4x4 2x2 1x1
+    SHA-1: 36A0877272CDB3322250E4097CCF09CDFCEA3F1C
+    channel list: R, G, B
+    tile size: 4 x 4
+    wrapmode: "clamp,clamp"
+    ptex:meshType: "triangle"
27/92 Test #64: openvdb-broken ....................***Failed    3.70 sec
Created texture system
Result of get_texture_info resolution = 0 0x0
Result of get_texture_info channels = 0 0
Result of get_texture_info channels = 0 0
Result of get_texture_info data format = 0 unknown
Result of get_texture_info datetime = 0
Result of get_texture_info averagecolor = no
Result of get_texture_info averagealpha = no
Result of get_texture_info constantcolor = no
Texture type is 0

Testing 2d texture src/sphere.vdb, output = sphere.exr
Could not get spec for src/sphere.vdb
ERROR: Invalid image file "src/sphere.vdb": OpenImageIO could not find a format reader for "src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphere.vdb": OpenImageIO could not find a format reader for "src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphere.vdb": OpenImageIO could not find a format reader for "src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphere.vdb": OpenImageIO could not find a format reader for "src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphere.vdb": OpenImageIO could not find a format reader for "src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphere.vdb": OpenImageIO could not find a format reader for "src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphere.vdb": OpenImageIO could not find a format reader for "src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphere.vdb": OpenImageIO could not find a format reader for "src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphere.vdb": OpenImageIO could not find a format reader for "src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphere.vdb": OpenImageIO could not find a format reader for "src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphere.vdb": OpenImageIO could not find a format reader for "src/sphere.vdb". Is it a file format that OpenImageIO doesn't know about?
Created texture system
Result of get_texture_info resolution = 0 0x0
Result of get_texture_info channels = 0 0
Result of get_texture_info channels = 0 0
Result of get_texture_info data format = 0 unknown
Result of get_texture_info datetime = 0
Result of get_texture_info averagecolor = no
Result of get_texture_info averagealpha = no
Result of get_texture_info constantcolor = no
Texture type is 0

Testing 2d texture src/sphereCd.vdb, output = sphereCd.exr
ERROR: Invalid image file "src/sphereCd.vdb": OpenImageIO could not find a format reader for "src/sphereCd.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphereCd.vdb": OpenImageIO could not find a format reader for "src/sphereCd.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphereCd.vdb": OpenImageIO could not find a format reader for "src/sphereCd.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphereCd.vdb": OpenImageIO could not find a format reader for "src/sphereCd.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphereCd.vdb": OpenImageIO could not find a format reader for "src/sphereCd.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphereCd.vdb": OpenImageIO could not find a format reader for "src/sphereCd.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphereCd.vdb": OpenImageIO could not find a format reader for "src/sphereCd.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphereCd.vdb": OpenImageIO could not find a format reader for "src/sphereCd.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphereCd.vdb": OpenImageIO could not find a format reader for "src/sphereCd.vdb". Is it a file format that OpenImageIO doesn't know about?
Invalid image file "src/sphereCd.vdb": OpenImageIO could not find a format reader for "src/sphereCd.vdb". Is it a file format that OpenImageIO doesn't know about?
Could not get spec for src/sphereCd.vdb
ERROR: Invalid image file "src/sphereCd.vdb": OpenImageIO could not find a format reader for "src/sphereCd.vdb". Is it a file format that OpenImageIO doesn't know about?
Comparing "sphere.exr" and "ref/sphere.exr"
512 x 512, 4 channel
  Mean error = 0.858927
  RMS error = 0.916921
  Peak SNR = 0.753361
  Max error  = 1 @ (0, 0, R)  values are 1, 1, 1, 1 vs 0, 0, 0, 0
  262144 pixels (100%) over 0.008
  262144 pixels (100%) over 0.004
FAILURE
Comparing "sphereCd.exr" and "ref/sphereCd.exr"
512 x 512, 4 channel
  Mean error = 0.990626
  RMS error = 1.07086
  Peak SNR = -0.594649
  Max error  = 1.99805 @ (51, 0, G)  values are 1, 1, 1, 1 vs -0.798828, -0.998047, -1.19209e-07, 0
  262144 pixels (100%) over 0.008
  262144 pixels (100%) over 0.004
FAILURE
command = ../../bin/testtex  --nowarp --offset -1 -1 -1 --scalest 2 2 src/sphere.vdb -o sphere.exr
../../bin/testtex  --nowarp --offset -1 -1 -1 --scalest 2 2 src/sphereCd.vdb -o sphereCd.exr

NO MATCH for sphere.exr
FAIL sphere.exr
NO MATCH for sphereCd.exr
FAIL sphereCd.exr

37/92 Test #30: texture-half ......................***Failed    3.97 sec
Comparing "out.exr" and "ref/out.exr"
512 x 512, 4 channel
  Mean error = 1.6264e-06
  RMS error = 5.65997e-05
  Peak SNR = 84.9437
  Max error  = 0.0283203 @ (69, 78, B)  values are 0.473389, 0.473389, 0.891113, 1 vs 0.463135, 0.463135, 0.862793, 1
  5 pixels (0.00191%) over 0.008
  15 pixels (0.00572%) over 0.004
FAILURE
command = ../../bin/maketx  ../common/textures/grid.tx -d half -o grid-half.exr >> out.txt  ;
../../bin/oiiotool --info -v -a --no-metamatch "DateTime|Software|OriginatingProgram|ImageHistory" --hash  grid-half.exr >> out.txt ;
../../bin/testtex  grid-half.exr   >> out.txt  ;

NO MATCH for out.exr
FAIL out.exr

54/92 Test #32: texture-uint16 ....................***Failed    4.44 sec
Comparing "out.exr" and "ref/out.exr"
512 x 512, 4 channel
  Mean error = 1.61735e-06
  RMS error = 5.677e-05
  Peak SNR = 84.9176
  Max error  = 0.0283203 @ (69, 78, B)  values are 0.473389, 0.473389, 0.891113, 1 vs 0.463135, 0.463135, 0.862793, 1
  5 pixels (0.00191%) over 0.008
  15 pixels (0.00572%) over 0.004
FAILURE
command = ../../bin/maketx  ../common/textures/grid.tx -d uint16 -o grid-uint16.tx >> out.txt  ;
../../bin/oiiotool --info -v -a --no-metamatch "DateTime|Software|OriginatingProgram|ImageHistory" --hash  grid-uint16.tx >> out.txt ;
../../bin/testtex  grid-uint16.tx   >> out.txt  ;

NO MATCH for out.exr
FAIL out.exr

83% tests passed, 16 tests failed out of 92

Total Test time (real) =  12.21 sec

The following tests FAILED:
          1 - cmake-consumer (Failed)
         30 - texture-half (Failed)
         32 - texture-uint16 (Failed)
         34 - texture-interp-bilinear (Failed)
         36 - texture-interp-closest (Failed)
         37 - texture-interp-closest.batch (Failed)
         40 - texture-mip-onelevel (Failed)
         44 - texture-mip-stochastictrilinear (Failed)
         45 - texture-mip-stochasticaniso (Failed)
         54 - texture-uint8 (Failed)
         60 - texture-skinny (Failed)
         63 - heif-broken (Failed)
         64 - openvdb-broken (Failed)
         65 - texture-texture3d-broken (Failed)
         66 - texture-texture3d-broken.batch (Failed)
         67 - ptex-broken (Failed)
Errors while running CTest

Can you tell me why they report these problems and how to fix them?

It's hard to tell from this what's going on. Interesting that it's such a particular set of test failures.
I know that OIIO can build and run on aarch64, there are a few distros that build for that regularly.
Can you run the tests and then zip up some of the contents to examine? The following files are what are saved automatically by our CI when tests fail, from this we can try to examine what went wrong (lines that start with ! mean to exclude those patterns):
        build/*.cmake
        build/CMake*
        build/testsuite/*/*.*
        !build/testsuite/oiio-images
        !build/testsuite/openexr-images
        !build/testsuite/fits-images
        !build/testsuite/j2kp4files_v1_5

Yes, due to the need for some graphics testing, I will mask some tests to ensure stability on the aarch64 platform.Other test fixes have been fixed in <IP_ADDRESS> and later versions.


Templates support

What do you think about integrate templates (jinja2?) into sanic core? I think the popularity of django and flask largely depends on their ability to write and distribute independent apps, which contains its own routes, handlers, templates and static files. Sanic has all of this except of templates.
If you agree, I suggest the next api:
render_string('index.html', context)
render('index.html', context)
@app.context_processor
@bp.context_processor
@app.template('index.html')
@bp.template('index.html')

👍
I'll be happy even if there is only a Jinja2 support :p

+1

+1

+1

i think it is not necessary

What benefit does this add besides you not needing to import the jinja2 package?

In case anyone is confused, you can use jinja2 currently with sanic:
from jinja2 import Template
from sanic import Sanic
from sanic.response import text

template = Template('Hello {{ name }}!')

app = Sanic()

@app.route("/")
async def test(request):
        data = request.json
        return text(template.render(name=data["name"]))

app.run(host="<IP_ADDRESS>", port=8000)

Then, to see it working:
curl -d '{"name": "r0fls"}' localhost:8000

@r0fls That would actually be a great thing to include in examples

@r0fls It works but i thinks use html function replace text maybe better
from sanic import Sanic
from sanic.response import html

from jinja2 import Environment, PackageLoader

env = Environment(loader=PackageLoader('app', 'templates'))

app = Sanic(__name__)

@app.route('/')
async def test(request):
    data = {'name': 'name'}

    template = env.get_template('index.html')
    html_content = template.render(name=data["name"])
    return html(html_content)

app.run(host="<IP_ADDRESS>", port=8000)

@istommao and at that point for data you could just use **data to avoid having to rename arguments. Or if you want to get the full effect of a context_processor you could just pass **locals() to the template.render.
I think this shows you can get the full effects of the template engine jinja2 without it having to be baked into sanic core.

I agree with you!

I'm going to close this at the end of the week, unless someone has a really good idea why we should bake jinja2 into sonic core. Jinja2 example has been added as of #193.

@seemethere @r0fls as I mention in the starting message it's very often you need context processors. So it will be much more code than you show. Of course it may be implemented as independent library. So question is why I propose to include it into framework. The answer is because many flask or django apps include templates. So they need some agreement where (in which folder) to locate it e.t.c. It may be implemented with independent template library too. But if there will be many such libs, it will cause problem to use apps that relied on different of these.
In the one sentence: I think built-in templates will increase popularity of sanic as it was with flask and django.

we also put that in blueprint,for example:
configure template into blueprint
/home/webapp
|-- main.py
|-- my_blueprint.py
templates
|-- index.html
1).main.py
from sanic import Sanic
from my_blueprint import bp
app = Sanic(name)
app.blueprint(bp)
app.run(host='<IP_ADDRESS>', port=8000, debug=True)
2).my_blueprint.py
more my_blueprint.py
from sanic.response import json, text, html
from sanic import Blueprint
from jinja2 import Environment, PackageLoader
env = Environment(loader=PackageLoader('my_blueprint', 'templates'))
bp = Blueprint('my_blueprint')
@bp.route('/')
async def bp_root(request):
template = env.get_template('index.html')
content=template.render(title='Sanic',people='David')
return html(content)

3).index.html
more index.html
<!doctype html>
{{ title }}

hello, {{ people }}

I think this is not necessary.
It's trivial to import jinja2 and use it if you so desire, it's not like Jinja support is so complex, or needs some sort of deep integration with Sanic, to justify being pulled into the project's core. Jinja is not even hard to use by itself.
As of right now, Sanic is perfectly simple, has minimal usage of other dependencies, and in many ways it's more of a microframework than Flask itself. You can perfectly use Jinja with Sanic right now, as well as whatever templating engine you desire, it's all one import away.
The community can also create a Jinja2 integration module for Sanic if they so desire (and it's really easy to do so). The same holds true for any other templating system or format they want to use in the future.
The alternative to people who don't want to use Jinja is not as pleasing. Adding Jinja as a dependency will have everyone who intends to use Sanic as a backend tool only installing Jinja. It will also have people who want to use other templating engines be forced into having Jinja in their dependencies even though they will never use it.
From a development perspective, adding Jinja would only serve to enlarge a beautifully small core. It's also more surface to maintain, and a detraction from the idea of a microframework in my opinion. Just look at the Frankenstein that is Flask nowadays -- crossed imports from werkzeug, multiple interfaces that accomplish the same thing, no standard way of doing things, not to mention the gigantic documentation for something that is supposed to be micro.
This project has everything going for it, and a growing community, at a rate that is impressive for such a new project. Personally what drove me to this is the small footprint, in all regards. I'd much rather see the community build on top of this and keep the core small, rather than just request the devs to build everything into the core. Especially something like this which is simple and probably wouldn't take more than 100 LOC to build.
My vote is for keeping Sanic sane, slim, pluggable, and performant. And build a vibrant community of modules around it :+1:

Templating will not be built into Sanic core to keep the core as lean and performant as possible. Thanks for everyone's input on the subject!

i write a little plugin to use flask style render_template , if any one want i will publish it .

This is very easy to implement, and +1 on not including it in the Sanic core.
here is a basic function to use Jinja2 with Sanic.
`from sanic import Sanic
from sanic.response import json, html, text
from jinja2 import Environment, PackageLoader, select_autoescape
env = Environment(loader=PackageLoader('main', 'templates'),autoescape=select_autoescape(['html', 'xml', 'tpl']))
def template(tpl, **kwargs):
template = env.get_template(tpl)
return html(template.render(kwargs))
app = Sanic(name)
app.static('/static', './static')
@app.route('/')
async def test(request):
test = {'pip':'pop','foo':'bar'}
print(test)
return template('index.html', title='Sanic',data='blob', test=test)
if name == "main":
app.run(host='<IP_ADDRESS>',port=8085)`
index.html:
`

{{title}}

{{data}}
      {% for key, value in test.items() %}
          {{key}} {{value}}
      {% endfor %}

`
Easy as py :-) .

I think Jinja2 is slow, not that is noticeable but wrk recons otherwise .
If anyone is interested here is a simple wrk bench between Jinja2 and SimpleTemplates by Bottle..
Enviroment:
Processor: Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz (4 CPUs), ~2.2GHz
Memory: 8192MB RAM
Sanic running under Windows Subsystem with Ubuntu 16 Kernel
index.html =
Hello Sanic

SimpleTemplate
@app.route('/')
async def index(request):
    return html(tpl('index.html'))

Jinja2 Template
def template(tpl, **kwargs):
    env = Environment(loader=PackageLoader('main', 'views'),autoescape=select_autoescape(['html', 'xml', 'tpl']))
    template = env.get_template(tpl)
    return html(template.render(kwargs))

@app.route('/')
async def index(request):
    return template('index.html')

'''
Jinja2
wrk -c 100 -t 2 --latency  -v http://localhost:8085/
wrk 4.0.0 [epoll] Copyright (C) 2012 Will Glozer
Running 10s test @ http://localhost:8085/
2 threads and 100 connections
Thread Stats   Avg      Stdev     Max   +/- Stdev
Latency   209.11ms   68.58ms 403.50ms   76.61%
Req/Sec   249.01    112.91   490.00     65.00%
Latency Distribution
50%  180.66ms
75%  200.99ms
90%  336.00ms
99%  374.64ms
4691 requests in 10.10s, 774.20KB read
Requests/sec:    464.66
Transfer/sec:     76.69KB
Bottle SimpleTemplate
wrk -c 100 -t 2 --latency  -v http://localhost:8085/
wrk 4.0.0 [epoll] Copyright (C) 2012 Will Glozer
Running 10s test @ http://localhost:8085/
2 threads and 100 connections
Thread Stats   Avg      Stdev     Max   +/- Stdev
Latency    34.19ms   11.65ms  75.01ms   66.65%
Req/Sec     1.41k   153.44     1.77k    67.68%
Latency Distribution
50%   30.51ms
75%   43.01ms
90%   52.32ms
99%   61.88ms
28042 requests in 10.03s, 4.52MB read
Requests/sec:   2795.71
Transfer/sec:    461.40KB
'''

@Benozo why are you creating jinja environment each request?

Try to move it into global space.
Try to move even env.get_emplate() into globals. And if it will be significantly faster, try to play with jinja settings of debugging and reloading. Or just cache all the templates yourself with functools.lru_cache

@imbolc Yes your correct after i moved the Jinja2 Environment into global space all was fast again, thanks for pointing that out. 👍 .
from sanic import Sanic
from sanic.response import html
from bottle import template as tpl
from jinja2 import Environment, PackageLoader, select_autoescape

app = Sanic(__name__)

env = Environment(loader=PackageLoader('main', 'views'),autoescape=select_autoescape(['html', 'xml']))

@app.route('/')
async def index(request):
    template = env.get_template('index.tpl')
    return html(template.render())
    #return html(tpl('index')) # Uncomment for Stpl bench

Bottle Stpl
wrk -c 100 -t 2 --latency -v http://localhost:8085/
wrk 4.0.0 [epoll] Copyright (C) 2012 Will Glozer
Running 10s test @ http://localhost:8085/
  2 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    28.83ms    8.53ms  67.77ms   80.37%
    Req/Sec     1.70k   100.46     1.89k    74.00%
  Latency Distribution
     50%   26.52ms
     75%   29.00ms
     90%   43.37ms
     99%   54.57ms
  34047 requests in 10.07s, 6.72MB read
Requests/sec:   3381.78
Transfer/sec:    683.62KB

Jinja2
wrk -c 100 -t 2 --latency -v http://localhost:8085/
wrk 4.0.0 [epoll] Copyright (C) 2012 Will Glozer
Running 10s test @ http://localhost:8085/
  2 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    29.15ms    8.45ms  69.20ms   81.96%
    Req/Sec     1.69k    97.07     1.88k    72.50%
  Latency Distribution
     50%   27.00ms
     75%   29.00ms
     90%   42.00ms
     99%   55.19ms
  33726 requests in 10.06s, 6.66MB read
Requests/sec:   3353.10
Transfer/sec:    677.82KB

Any progress regarding render_template ..?

@siripuramrk https://github.com/yunstanford/jinja2-sanic

I'm thinking about using a template engine with Sanic.
I already posted here https://stackoverflow.com/questions/46040053/sanic-template-in-async-mode-and-jinja2 and others before seeing this post.
After reading, I understand that using Jinja2 directly with its API is a good idea.
What is the interest of using the asynchronous mode of Jinja2.
First, reading the template file does not use any asynchronous system (even if aiofiles is not really asynchronous).
Then, a test bench seems to show a decrease of almost 50% in asynchronous mode ...
In your opinion what is the best practice to follow to optimize and keep Sanic's performance, including whether to change template engine?
The template : exemple_jinja2_02.html
`

{{title}}

{{data}}
      {% for key, value in test.items() %}
          {{key}} {{value}}
      {% endfor %}

`
The python file :
`from sanic import Sanic
from sanic.response import json, html, text
from jinja2 import Environment, PackageLoader, select_autoescape
env = Environment(loader=PackageLoader('exemple_jinja2_02', 'templates'), autoescape=select_autoescape(['html', 'xml', 'tpl']), enable_async=True)
async def template(tpl, **kwargs):
template = env.get_template(tpl)
content = await template.render_async(kwargs)
return html(content)
app = Sanic(name)
app.static('/static', './static')
test = {'pip': 'pop', 'foo': 'bar'}
@app.route('/')
async def index(request):
content = await template('test_jinja2_02.html', title='Sanic', data='blob', test=test)
return content
if name == "main":
app.run(host='<IP_ADDRESS>', port=8000, debug=True)`
I tested with wrk -c 100 -t 2 --latency -v http://<IP_ADDRESS>:8000/
in mode asynchronous :
wrk 4.0.0 [epoll] Copyright (C) 2012 Will Glozer
Running 10s test @ http://<IP_ADDRESS>:8000/
2 threads and 100 connections
Thread Stats   Avg      Stdev     Max   +/- Stdev
Latency    55.45ms    5.19ms 113.79ms   97.09%
Req/Sec     0.90k   192.56     1.01k    81.50%
Latency Distribution
50%   54.53ms
75%   56.14ms
90%   57.59ms
99%   65.56ms
17992 requests in 10.01s, 13.25MB read
Requests/sec:   1797.40
Transfer/sec:      1.32MB
in mode synchronous :
wrk -c 100 -t 2 --latency -v http://<IP_ADDRESS>:8000/
wrk 4.0.0 [epoll] Copyright (C) 2012 Will Glozer
Running 10s test @ http://<IP_ADDRESS>:8000/
2 threads and 100 connections
Thread Stats   Avg      Stdev     Max   +/- Stdev
Latency    32.10ms    3.88ms  67.35ms   92.74%
Req/Sec     1.56k   211.24     2.02k    77.50%
Latency Distribution
50%   31.36ms
75%   32.75ms
90%   34.54ms
99%   54.93ms
31098 requests in 10.01s, 22.90MB read
Requests/sec:   3106.24
Transfer/sec:      2.29MB

I'm thinking about using a template engine with Sanic.
I already posted here https://stackoverflow.com/questions/46040053/sanic-template-in-async-mode-and-jinja2 and others before seeing this post.
After reading, I understand that using Jinja2 directly with its API is a good idea.
What is the interest of using the asynchronous mode of Jinja2.
First, reading the template file does not use any asynchronous system (even if aiofiles is not really asynchronous).
Then, a test bench seems to show a decrease of almost 50% in asynchronous mode ...
In your opinion what is the best practice to follow to optimize and keep Sanic's performance, including whether to change template engine?
The template : exemple_jinja2_02.html
<!DOCTYPE html>

    <title>{{title}}</title>

{{data}}

      {% for key, value in test.items() %}
	  {{key}} {{value}}

      {% endfor %}

The python file :
from sanic import Sanic
from sanic.response import json, html, text

from jinja2 import Environment, PackageLoader, select_autoescape

env = Environment(loader=PackageLoader('exemple_jinja2_02', 'templates'), autoescape=select_autoescape(['html', 'xml', 'tpl']), enable_async=True)

async def template(tpl, **kwargs):
    template = env.get_template(tpl)
    content = await template.render_async(kwargs)
    return html(content)

app = Sanic(__name__)
app.static('/static', './static')

test = {'pip': 'pop', 'foo': 'bar'}

@app.route('/')
async def index(request):
    content = await template('test_jinja2_02.html', title='Sanic', data='blob', test=test)
    return content

if __name__ == "__main__":
    app.run(host='<IP_ADDRESS>', port=8000, debug=True)

I tested with wrk -c 100 -t 2 --latency -v http://<IP_ADDRESS>:8000/
in mode asynchronous :
wrk 4.0.0 [epoll] Copyright (C) 2012 Will Glozer
Running 10s test @ http://<IP_ADDRESS>:8000/
  2 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    55.45ms    5.19ms 113.79ms   97.09%
    Req/Sec     0.90k   192.56     1.01k    81.50%
  Latency Distribution
     50%   54.53ms
     75%   56.14ms
     90%   57.59ms
     99%   65.56ms
  17992 requests in 10.01s, 13.25MB read
Requests/sec:   1797.40
Transfer/sec:      1.32MB

in mode synchronous :
wrk -c 100 -t 2 --latency -v http://<IP_ADDRESS>:8000/
wrk 4.0.0 [epoll] Copyright (C) 2012 Will Glozer
Running 10s test @ http://<IP_ADDRESS>:8000/
  2 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    32.10ms    3.88ms  67.35ms   92.74%
    Req/Sec     1.56k   211.24     2.02k    77.50%
  Latency Distribution
     50%   31.36ms
     75%   32.75ms
     90%   34.54ms
     99%   54.93ms
  31098 requests in 10.01s, 22.90MB read
Requests/sec:   3106.24
Transfer/sec:      2.29MB

I forgot, for the people who read this issue, there is an example with Jinja2 in async mode here : https://github.com/channelcat/sanic/pull/641/files
I don't know why but this exemple is not here : https://github.com/channelcat/sanic/tree/master/examples

@patic-fr Those examples were moved to the wiki: https://github.com/channelcat/sanic/wiki/Examples#jinja

@patic-fr Reading template files in async is just a bad idea, this should be done once during program startup and then they should be kept cached in memory. Reading them every time you serve a request is just wasteful.
Spawning a coroutine for rendering is another bad idea, rendering your templates is inherently CPU bound and will put pressure on your event loop no matter where they are, there is nothing to be gained by rendering them asynchronously.
In short: Stop reading the file every time, don't render in a separate async function.

@luizberti

there is nothing to be gained by rendering them asynchronously

actually there is, imagine you have some handlers in a single process, answering different time, e.g. simple json responses (which renders milliseconds) and heavy inherited templates (which renders about  a second), with async rendering json responses will become faster. Whole the system probably will become somehow slowly, but smoothly

@ luizberti
Ok,  I'm dumb, of course, the files are not read every time, there is a cache.
And when I checked the code of Jinja2, I didn't find a async method to read the file.
So, why the async mode in the exemple above with Jinja give bad result in benchmark ?

If you don't mind complicating your stack a little, you can push all your template rendering client side and save it in localstorage with something like react.  Then handle all the "work" rendering the template there.  Only ask sanic when you need actual json data.  I mean, if you gotta go fast.


AUTOPARSE

    AUTOPARSE

w omengib n.act. action of plucking (fruit, etc)
l mengib omengib
Originally posted by @smith-371 in https://github.com/tekinged/missing/issues/239#issuecomment-1282859198

No need to create a new issue. Just a comment in existing issues.

i couldn't find out how to label it...

Instructions can be found here: #348 . Please take a look and let me know if you have questions.


A couple small fixes

Just a couple small things I noticed while testing with:
deno task load-testdata 'https://musicbrainz.org/ws/2/release/742d6790-c5cb-463c-a105-5e76e44afec5?inc=annotation+discids&fmt=json'
deno task test-types

This test case still causes some other errors though, which I'm unsure how to fix.

Here were the other errors:
michael@Michaels-MacBook-Air ~/c/musicbrainz-ts (small-fixes-1)> deno task test-types
Task test-types deno check test/data/*.ts
Check file:///Users/michael/code/musicbrainz-ts/test/data/lookup.ts
error: TS2739 [ERROR]: Type '{ "sort-name": string; "type-id": null; name: string; disambiguation: string; type: null; id: string; "iso-3166-1-codes": string[]; }' is missing the following properties from type 'WithIncludes<MinimalArea, "annotation" | "discids">': annotation, "iso-3166-2-codes", "iso-3166-3-codes"
      "area": {
      ~~~~~~
    at file:///Users/michael/code/musicbrainz-ts/test/data/lookup.ts:44:7

    The expected type comes from property 'area' which is declared here on type 'WithIncludes<ReleaseEvent, "annotation" | "discids">'
    > = {
        ^
        at file:///Users/michael/code/musicbrainz-ts/api_types.ts:89:5

TS2739 [ERROR]: Type '{ format: string; "track-count": number; position: number; title: string; "format-id": string; discs: never[]; }' is missing the following properties from type 'WithIncludes<Medium, "annotation" | "discids">': "track-offset", pregap, tracks, "data-tracks"
    {
    ^
    at file:///Users/michael/code/musicbrainz-ts/test/data/lookup.ts:65:5

Found 2 errors.

I think Medium should be doing something like tracks: SubQuery<Track[], "recordings"> for the track-related properties.
However, there is a problem with the optional properties pregap and data-tracks, since pregap?: SubQuery<Track, "recordings"> doesn't work as expected. Perhaps you need an OptionalSubQuery type that maps optionality onto the properties? :\
I also thought of some other test cases which might throw a wrench into things: releases without media and media without tracks. :)

Thank you! Good catch with the null barcode, I didn't expect that to exist after looking at the serializer and having seen that empty string inidcates that there is no barcode. But I forgot to check a release with missing barcode.
Good point also about the plus, it is always a bit confusing that a space can be URL-encoded both as %20 and as +, the API even accepts double encoding the plus into %2B.
Since %2B is also used by the URLs in the Details tab of MB entities, it is a good idea to simply support both.
Mapping optionality is a bit more tricky, I will write more about that later. I think I have solved the issue of preserving optionality of keys by rearranging the order of the applied utility types.
While this has solved the issue with the missing optional ISO codes, SubQuery values of such properties are no longer being unwrapped.
That means pregap track and data tracks are optional, but I can assign them __data__ and __inc__ properties while the SubQuery should either have been replaced by the data or removed at this stage...

I have solved this issue by ignoring undefined while checking whether a value is a SubQuery.
With e0fd2b5 almost all issues are resolved, the types only expect the release event are to have an annotation (which was expected as include paramters have no scope):
error: TS2741 [ERROR]: Property 'annotation' is missing in type '{ type: null; "type-id": null; name: string; "iso-3166-1-codes": string[]; disambiguation: string; id: string; "sort-name": string; }' but required in type 'WithIncludes<MinimalArea, "annotation" | "discids">'.

The solution (25a975819b66dc459df47bead45dcf0d0a1ce97b) was to make the separation between MinimalEntity and (TopLevel)Entity types clearer, annotations (and other misc includes) should only ever appear for top-level entities. Only aliases seem to also be present for nested minimal entities.


XEN for S4SK will not build

The s4sk compatible string for optee-os is missing in: .../layers/meta-xt-domx-gen4/recipes-security/optee/optee.inc

0001-fix-optee-os-compatible-for-s4sk.patch

Thanks for the finding and the providing of the proper patch. We will merge it.

@mdege I made PR with your patch https://github.com/xen-troops/meta-xt-prod-devel-rcar-gen4/pull/98.
Could you please take a look.
If you don't mind, I will slightly update the commit message as suggested by our reviewer.

The patch is merged.
Thanks for the fix.


Azure SQL Private Endpoint - Certificate warning for privatelink.database.windows.net zone

Using the recommended zone for Azure SQL privatelink.database.windows.net presents a certificate error when establishing an encrypted SQL connection since the certificate used by Azure SQL doesn't contain a SAN for *.privatelink.database.windows.net.
The recommendation according to this article is to not override the zone used for public endpoints, so how can an encrypted connection be achieved without certificate warnings? There is no ability to set a custom certificate for an Azure SQL Server. We can only use what is provided by Microsoft.
One work around I've thought of is to use the database.secure.windows.net zone since it doesn't appear to be in use, but is in the certificate SANs. I've heard that this domain is deprecated, in which case it's likely this SAN will be removed from Azure SQL certificates renewed in the future. If I use this now and it is removed in renewed versions of the certificate, it will cause an outage for any consumers of the private endpoint.
If we should be using privatelink.database.windows.net as listed in this document, please add a SAN to the Azure SQL certificate for *.privatelink.database.windows.net.
Below are the SANs in the certificate on the host behind private endpoint for an East US Azure SQL server.
*cr2.eastus1-a.control.database.windows.net
*.cr2.eastus1-a.control.database.windows.net
eastus1-a.control.database.windows.net
*.eastus1-a.control.database.windows.net
*.database.windows.net
*.database.secure.windows.net
*.secondary.database.windows.net
*.mariadb.database.azure.com
*.mysql.database.azure.com
*.postgres.database.azure.com
*.sql.projectarcadia.net
*.sql.azuresynapse.net
*.sql.azuresynapse-dogfood.net

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

ID: b006a616-2f2f-8ecf-8b80-fd0a3cc62090
Version Independent ID: 92c54dc6-8ddf-b1f7-4a58-d61b8cd7fe25
Content: What is an Azure Private Endpoint?
Content Source: articles/private-link/private-endpoint-overview.md
Service: private-link
GitHub Login: @malopMSFT
Microsoft Alias: allensu

Here is additional info on the tests I've run.
Testing with a host record xx.privatelink.database.windows.net and connecting with an encrypted SSMS connection returns the following error. If I check the Trust server connection option, the connection succeeds.

Testing with a host record xx.database.secure.windows.net, the connection succeeds. This would work using any of the zones in the certificate, my question is which is recommended by Microsoft?

@JoeRistine Thanks for the feedback. We are actively investigating and will get back to you soon.

@JoeRistine, you should NOT direct SSMS to <sqlsvr>.privatelink.database.windows.net, because that breaks the TLS handshake. You should connect to <sqlsvr>.database.windows.net instead, and leave Azure DNS do its magic.
When properly configured, Azure DNS should reply with the following when nslookup to <sqlsvr>.database.windows.net:
Name: <sqlsvr>.privatelink.database.windows.net
Address: <your private endpoint VNet assigned IP address>
Aliases: <sqlsvr>.database.windows.net
Then your SSMS will attempt to connect to sqlsvr.database.windows.net using the private IP address, and because using that name, the certificate subject will match as expected.
Something you also need to look at is your VNet DNS configuration.
If you leave it with default Azure-provided, it will just work as above. However, if you have custom DNS, you may experience issues, as private DNS zones will not be used (unless your DNS does conditional forwarding for "privatelink.database.windows.net" zone to Azure DNS at <IP_ADDRESS> or you maintain your own "privatelink.database.windows.net" zone yourself instead of using Azure Private DNS zones).
For example, when you use Google or Quad9 as DNS for the VNet, the DNS reply is quite different from above when doing nslookup <sqlsvr>.database.windows.net:
Name: <somename>.control.database.windows.net
Address: <Azure public IP>
Aliases: <sqlsvr>.database.windows.net
<sqlsvr>.privatelink.database.windows.net
dataslice<X>.<azureregion>.database.windows.net
dataslice<X><azureregion>.trafficmanager.net
However, if you specify Azure DNS with "nslookup <sqlsvr>.database.windows.net <IP_ADDRESS>", it will use your Azure Private DNS zone and reply with private IP address.
With custom DNS, you may be inadvertently getting a public IP instead of your private IP. With such reply, SSMS will attempt to connect to the public IP instead of the private IP, not to the private endpoint IP address, connecting over the Internet. If you disabled public access in Azure SQL, SSMS won't connect, as it did unexpectedly resolved to the public IP under the hood.
And again, if you specify the <sqlsvr>.privatelink.database.windows.net FQDN, it may resolve to your private IP address depending on DNS setup, but you will be breaking TLS handshake.
Hope it helps!


.pc-accordion-item--last class applied to all but the last accordion item.

I was working on modifying the existing Accordion component (which is great, by the way) to have a fully rounded appearance instead of a rounded top and flat bottom. In doing so I was following the instructions outlined in the Modifying Components page to update the .pc-accordion-item--last class to add a rounded bottom to the last accordion selector item, which is what it seems like this selector is meant to apply to. For reference, the companion selector .pc-accordion-item__content-container--last works for styling the content box in the same way as expected, only applying the style to the last content box in the accordion. What actually happens with the accordion-item--last class is that it styles all buttons that aren't the last item instead.
It seems like this is due to the unless here: https://github.com/petalframework/petal_components/blob/ffa946c92f9a1a51ca12505b43651543cdf8e176/lib/petal_components/accordion.ex#L59C17-L63C19
Happy to get a fix in for this, but before doing so just want to confirm if this is intended behavior or not. Thanks!

After playing around with this a bit more locally, it seems like changing the behavior of this to try to do the rounding stuff (converting the unless to if, etc) doesn't do what I expected, so I think I probably just misunderstood the role this class. Closing, sorry!

Hmm it does seem wrongly named. Seems like it should be called pc-accordion-item--all-except-last

Yeah, that name would probably make more sense given how it's applied. It would be good to change it to add clarity for people trying to do custom styling stuff, but I can also see how it could be a bit dangerous to rename if people are relying on that name for existing custom style overrides already.

@jpramassini you're right about the naming convention, certainly more appropriately named something like @mplatts suggested e.g pc-accordion-item--all-except-last. I can update that now, hopefully not too many people have modified that and will discover this conversation. The current component also doesn't make it easy to modify the last item's corners to rounded. Perhaps it could be an attribute even. A PR would be welcome if you end up solving that.

Awesome, appreciate the name update! Not sure when I'll get to it, but if I end up messing around with it I'll definitely put up a PR 👍


Concurrency

Hi :wave: -- thank you for sharing your efforts!
I noticed that concurrent requests will result in a 500 error, please find a trace at the end of this message.
ERROR:    Exception in ASGI application
Traceback (most recent call last):
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/uvicorn/protocols/http/httptools_impl.py", line 404, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/uvicorn/middleware/proxy_headers.py", line 78, in __call__
    return await self.app(scope, receive, send)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/fastapi/applications.py", line 261, in __call__
    await super().__call__(scope, receive, send)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/starlette/applications.py", line 112, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/starlette/middleware/errors.py", line 181, in __call__
    raise exc
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/starlette/middleware/errors.py", line 159, in __call__
    await self.app(scope, receive, _send)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/starlette/exceptions.py", line 82, in __call__
    raise exc
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/starlette/exceptions.py", line 71, in __call__
    await self.app(scope, receive, sender)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
    raise e
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/starlette/routing.py", line 656, in __call__
    await route.handle(scope, receive, send)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/starlette/routing.py", line 259, in handle
    await self.app(scope, receive, send)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/starlette/routing.py", line 61, in app
    response = await func(request)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/fastapi/routing.py", line 227, in app
    raw_response = await run_endpoint_function(
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/fastapi/routing.py", line 162, in run_endpoint_function
    return await run_in_threadpool(dependant.call, **values)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/starlette/concurrency.py", line 39, in run_in_threadpool
    return await anyio.to_thread.run_sync(func, *args)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/anyio/to_thread.py", line 31, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
    return await future
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/anyio/_backends/_asyncio.py", line 867, in run
    result = context.run(func, *args)
  File "/app/src/whisper_asr/webservice.py", line 31, in transcribe_file
    result = model.transcribe(audio, **options_dict)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/whisper/transcribe.py", line 182, in transcribe
    result = decode_with_fallback(segment)[0]
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/whisper/transcribe.py", line 110, in decode_with_fallback
    results = model.decode(segment, options)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/torch/autograd/grad_mode.py", line 28, in decorate_context
    return func(*args, **kwargs)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/whisper/decoding.py", line 699, in decode
    result = DecodingTask(model, options).run(mel)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/torch/autograd/grad_mode.py", line 28, in decorate_context
    return func(*args, **kwargs)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/whisper/decoding.py", line 631, in run
    tokens, sum_logprobs, no_speech_probs = self._main_loop(audio_features, tokens)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/whisper/decoding.py", line 586, in _main_loop
    logits = self.inference.logits(tokens, audio_features)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/whisper/decoding.py", line 145, in logits
    return self.model.decoder(tokens, audio_features, kv_cache=self.kv_cache)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
    return forward_call(*input, **kwargs)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/whisper/model.py", line 189, in forward
    x = block(x, xa, mask=self.mask, kv_cache=kv_cache)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
    return forward_call(*input, **kwargs)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/whisper/model.py", line 124, in forward
    x = x + self.attn(self.attn_ln(x), mask=mask, kv_cache=kv_cache)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
    return forward_call(*input, **kwargs)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/whisper/model.py", line 85, in forward
    wv = self.qkv_attention(q, k, v, mask)
  File "/root/.cache/pypoetry/virtualenvs/whisper-asr-webservice-9TtSrW0h-py3.9/lib/python3.9/site-packages/whisper/model.py", line 97, in qkv_attention
    qk = qk + mask[:n_ctx, :n_ctx]
RuntimeError: The size of tensor a (67) must match the size of tensor b (3) at non-singleton dimension 3

Thank you for reporting the bug!
It is probably caused by the fact that we use a single model for all requests. For now, I will solve it by having requests put a mutex lock on the model while using it. This way, concurrent requests will wait for the model to be free.
We will have to think about scaling in near future


Add unit test to cicd

By creating this pull request you agree to the terms in CONTRIBUTING.md.
https://github.com/Infineon/.github/blob/master/CONTRIBUTING.md
--- DO NOT DELETE ANYTHING ABOVE THIS LINE ---
Add HIL tests to run on our CI/CD.

I mean, in general I would try to move asap  all these things to the arduino-core-test and pull it in here.
The more we develop in parallel de more deviations and tech debt in future integration.
Then let´s try with the rest to get those workflows leaner, with some minimal calls to encapsulated functionality in scripts (that can also be run locally), etc.
But the first next step, I would say is to try to move all common content to the arduino-core-test, and consume that from this repo (and the xmc-for-arduino).
Anyhow, if the current hil workflow gets to work, we can just merge :)

I see that all this is building in the labpc.... Which one? The one in Muc or in BLR? And it only fails in the flashing or?

build and tests are running only in BLR LabPC for now.

I mean, in general I would try to move asap all these things to the arduino-core-test and pull it in here. The more we develop in parallel de more deviations and tech debt in future integration.
Then let´s try with the rest to get those workflows leaner, with some minimal calls to encapsulated functionality in scripts (that can also be run locally), etc.
But the first next step, I would say is to try to move all common content to the arduino-core-test, and consume that from this repo (and the xmc-for-arduino).
Anyhow, if the current hil workflow gets to work, we can just merge :)

Yes I will not work on this parallelly anymore until we have a generic approach of hil support from Olaf.
Right now we can add tests and all tests should run.


Python3.8 gaurav

Resolves HASH_SIGN_FOLLOWED_BY_ISSUE_NUMBER
What is being addressed
Describe the current behavior you are modifying. Please also remember to update any impacted documentation.
How is this addressed

Describe the changes made, and if appropriate, why they are addressed this way
Note any pending work (with links to the issues that will address them)
Update documentation
Update CHANGELOG.md if needed
Increment template version if needed, for guidelines see Authoring templates - versioning

/test

/test

/test

/test

/test-destroy-env

/test


update copyrights to 'Lightbend, Inc. dba Akka'

Ports https://github.com/scala/scala/pull/10953
@SethTisue

I agree there is no need to change this.


Regression Bug

I just notice there's a bug when I run the LocalizationSample.Mvc more specifically in
https://github.com/hishamco/My.Extensions.Localization.Json/blob/9d7893a162c583940d932fb510d0aab71e91d72c/src/My.Extensions.Localization.Json/JsonStringLocalizerFactory.cs#L41-L44
This seems a regression bug from #49

Fixed in #59


Error in FAQ

In the FAQ: "Use of eval will place the variable in the global scope, which is bad"
I don't believe this to be correct. E.g.
function f() {
  eval("var y = 123");
  console.log(y)
};
f();
console.log(y);

outputs:
123
ReferenceError: y is not defined

So the eval is not in the global scope - so I think the answer is misleading really.

You're using a direct call to eval in an ES3 environment. If you used an indirect eval (window.eval, (0,eval), etc.) or if you were on an ES5 platform, it would be correct. See Step 1 of 10.4.2, the note about 10.4.2 in Annex E, and section <IP_ADDRESS>.1.

The FAQ is also a Wiki, so feel free to change it yourself.


AppArmor documentation

Adds full documentation for AppArmor.
Original proposal: https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/apparmor.md
Feature issue: https://github.com/kubernetes/features/issues/24
Note: 2 features referenced in this document have not yet been merged:

Profile loader DaemonSet: https://github.com/kubernetes/contrib/pull/1658
NodeStatus ready condition: https://github.com/kubernetes/kubernetes/pull/31659

/cc @thockin @jfrazelle @pwittrock @dchen1107 @matchstick @kubernetes/docs

This change is

Review status: 0 of 4 files reviewed at latest revision, 1 unresolved discussion.

docs/admin/apparmor/index.md, line 7 [r1] (raw file):

---

AppArmor is a Linux kernel enhancement that can reduce the potential attack surface and provide

For clarity, I'd recommend changing to "reduce the potential attack surface of an Application and provide greater defense in depth."

Comments from Reviewable

Overall excellent. One very minor issue, but Docs LGTM.

Thanks! Done.

Review status: 0 of 4 files reviewed at latest revision, 1 unresolved discussion.

docs/admin/apparmor/index.md, line 7 [r1] (raw file):
Previously, devin-donnelly wrote…
> For clarity, I'd recommend changing to "reduce the potential attack surface of an Application and provide greater defense in depth."

Done.

Comments from Reviewable

LGTM

Squashed commits.

Looks good, merging to release-1.4 line.


Add max-width to window and container - fix #47

This is a fix for #47, but I'm not super happy with it.
Because of the maxWidth on the window, the fullscreen version has these super ugly black bars.

In index.js you can slap this snippet in and it'll do it. Though is not pretty.
win.on('enter-full-screen', () => {
	// set these to excessively large values to take up all the screen.
	win.setMaximumSize(1000000000,<PHONE_NUMBER>);
});

win.on('leave-full-screen', () => {
	win.setMaximumSize(850,<PHONE_NUMBER>);
})

@danhp yeah, that's like a billboard for a monitor. 😄

Thanks @danhp! I used<PHONE_NUMBER> as the max because it seems to be the integer electron uses as the max if you don't set it when creating a new window.
If you add console.log(win.getMaximumSize()); in index.js inside the createMainWindow() block you'll see it spits out that number for the height, and we're not setting a maxHeight so it must be the default.

That sounds good to me 😄

I would suggest using a constant like Number.MAX_SAFE_INTEGER

Don't think that's actually safe as javascript's max int is much larger than that of C++

I would suggest using a constant like Number.MAX_SAFE_INTEGER

Don't think that's actually safe as javascript's max int is much larger than that of C++

I'm adding it as a const so it's not so magical.

Also, we're setting a maximum width/height of a window in a computer montor.<PHONE_NUMBER>px is almost 350 miles - which would be a monitor stretching from SF to LA.

Cool hack :)

I wonder though if there's anything Electron could do better in this case? Maybe Electron could have an option to ignore max width in fullscreen? Or at least adhere to the window backgroundColor? What do you think?

Maybe Electron could have an option to ignore max width in fullscreen?

I thought that going full screen would have ignored any width you set on the window or that setting a max width (or height) would disable the fullscreen option. The two seem mutually exclusive by definition.
I would think you should have to specify that you want to enable fullscreenable if you set maximum dimension, and then either fullscreen or the max dimensions are in effect.

Or at least adhere to the window backgroundColor?

Sure, but this isn't always the content's background color anyway, so as a global function for Electron I don't know that it's a perfect solution.

I thought that going full screen would have ignored any width you set on the window or that setting a max width (or height) would disable the fullscreen option. The two seem mutually exclusive by definition.

Agreed. Could you open an issue on Electron about this? Would be nice to be able to eventually remove the hacky workaround.


README fixes

Add links to missing rules at the top of the README. Format WORKSPACE
and BUILD file code fragments to match the formatting of buildifier. Fix
typo.

Looks like the tests failed due to https://github.com/bazelbuild/rules_scala/issues/699

@ittaiz anything else?

@ittaiz are there any other changes you would like here?

@ittaiz are there any other changes you would like here?

Thanks!


v2-invis template does not write theme

See title

I could not reproduce this issue at this time.


Add special external program case for tres files

Open in External program option in FileSystem Dock currently checks only for file types, which might yield some wrong results in case of tres files (like opening AudioStreamGenerator in audio editor). Since they are always text, the dock will now always open them with the external text editor, or a default program for tres files. The PR also includes some small refactor.

Should the same logic be applied to tscn files?

tscn uses default program, and you probably have it configured to VS Code. I can add an explicit case.

Should binary .scn/.res files be handled here as well?

If you open those in a text editor you may recognise a few words but it otherwise would look like a garbled mess

Maybe, but how? Should they fallback to the default program?

Whatever program one would use it'd still display as gibberish, with maybe a few words somewhere in there, so maybe yes.

Thanks!


Bootstrap 5 update

Hello this is great can we get a BS 5 in a seperate branch

Sure, I'll happily review a PR - See https://github.com/jsonform/jsonform/issues/364


feat: Enhance bulk insert speed using copy command

I've been doing very large loads into PostgreSQL, and found target-postgres to be slow at bulk inserts. In PostgreSQL, the COPY command is preferable for high performance loading of data.
This PR changes the implementation of bulk_insert_records() by using COPY with CSV data instead of an INSERT statement with values. When combined with larger batches (batch_size_rows), I am able to achieve 2 to 10× bulk insert speeds compared to the existing implementation.
Here's an example difference for moving 1 million rows via tap-snowflake target-postgres.
new  48.46s user 4.19s system 19% cpu  4:36.91 total
old 189.69s user 6.76s system 28% cpu 11:33.89 total

Useful Links:

14.4.2 Populating a Database — Use COPY
How does COPY work and why is it so much faster than INSERT?

@visch did we document somewhere the steps needed to regenerate the SSL cert files so CI can pass?

Member

We didn't :/ we should have at least linked to https://www.postgresql.org/docs/current/ssl-tcp.html#SSL-CERTIFICATE-CREATION which has the steps. Really our steps should setup them to be 250 years or something.

I've benchmarked the time savings on my local machine. I'm loading 1,000,000 rows directly from a .singer file and using 100,000 for batch_size_rows.
Average running time of 3 invocations using COPY (kinghuang:bulk-insert-copy): 1m46.281s

Timing Results
real    1m45.533s
user    1m34.119s
sys     0m2.153s

real    1m45.344s
user    1m34.108s
sys     0m2.395s

real    1m47.967s
user    1m37.298s
sys     0m2.201s

Average of three invocations using INSERT (MeltanoLabs:main): 2m7.645s

Timing Results
real    2m4.723s
user    1m48.083s
sys     0m1.913s

real    2m7.008s
user    1m51.234s
sys     0m1.511s

real    2m11.203s
user    1m52.054s
sys     0m1.993s

A noticeable improvement, which I imagine would be even more pronounced with a more complicated data set (my benchmark used only a few columns).
That said, I do notice that the current COPY setup fails to handle certain types of data. For example, the /target_postgres/tests/data_files/encoded_strings.singer file demonstrates this.

Log Output
(.venv) root@ssmileyAutoIDM:/git/target-postgres# cat target_postgres/tests/data_files/encoded_strings.singer | meltano invoke target-postgres
2024-06-24T20:34:37.500430Z [info     ] Environment 'dev' is active
2024-06-24 16:34:37,936 | INFO     | target-postgres      | Target 'target-postgres' is listening for input from tap.
2024-06-24 16:34:37,936 | INFO     | target-postgres      | Initializing 'target-postgres' target sink...
2024-06-24 16:34:37,936 | INFO     | target-postgres.test_strings | Initializing target sink for stream 'test_strings'...
2024-06-24 16:34:37,975 | INFO     | target-postgres      | Initializing 'target-postgres' target sink...
2024-06-24 16:34:37,975 | INFO     | target-postgres.test_strings_in_objects | Initializing target sink for stream 'test_strings_in_objects'...
2024-06-24 16:34:37,988 | INFO     | target-postgres      | Initializing 'target-postgres' target sink...
2024-06-24 16:34:37,989 | INFO     | target-postgres.test_strings_in_arrays | Initializing target sink for stream 'test_strings_in_arrays'...
2024-06-24 16:34:38,000 | INFO     | target-postgres      | Target 'target-postgres' completed reading 32 lines of input (3 schemas, 28 records, 0 batch manifests, 1 state messages).
2024-06-24 16:34:38,059 | INFO     | target-postgres.test_strings_in_objects | Inserting with SQL: copy "f233d2ab_161d_422d_8211_8d99660066d1" ("id", "info", "_sdc_extracted_at", "_sdc_received_at", "_sdc_batched_at", "_sdc_deleted_at", "_sdc_sequence", "_sdc_table_version", "_sdc_sync_started_at") from stdin with csv
2024-06-24 16:34:38,061 | INFO     | target-postgres.test_strings_in_arrays | Inserting with SQL: copy "69e0cb26_e5f0_4559_ae3b_797057adfafe" ("id", "strings", "_sdc_extracted_at", "_sdc_received_at", "_sdc_batched_at", "_sdc_deleted_at", "_sdc_sequence", "_sdc_table_version", "_sdc_sync_started_at") from stdin with csv
2024-06-24 16:34:38,061 | INFO     | target-postgres.test_strings | Inserting with SQL: copy "9e3a2e80_1aad_4ab3_b528_c444869c1f38" ("id", "info", "_sdc_extracted_at", "_sdc_received_at", "_sdc_batched_at", "_sdc_deleted_at", "_sdc_sequence", "_sdc_table_version", "_sdc_sync_started_at") from stdin with csv
joblib.externals.loky.process_executor._RemoteTraceback:
"""
Traceback (most recent call last):
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/joblib/_utils.py", line 72, in __call__
    return self.func(**kwargs)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/joblib/parallel.py", line 598, in __call__
    return [func(*args, **kwargs)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/joblib/parallel.py", line 598, in <listcomp>
    return [func(*args, **kwargs)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/singer_sdk/target_base.py", line 522, in _drain_sink
    self.drain_one(sink)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/singer_sdk/target_base.py", line 512, in drain_one
    sink.process_batch(draining_status)
  File "/git/target-postgres/target_postgres/sinks.py", line 102, in process_batch
    self.bulk_insert_records(
  File "/git/target-postgres/target_postgres/sinks.py", line 221, in bulk_insert_records
    cur.copy_expert(sql=copy_statement, file=buffer)
psycopg2.errors.InvalidTextRepresentation: malformed array literal: "{"\"cha\u00eene simple\"","\"quoted \\"string\\"\""}"
DETAIL:  Unexpected array element.
CONTEXT:  COPY 69e0cb26_e5f0_4559_ae3b_797057adfafe, line 2, column strings: "{"\"cha\u00eene simple\"","\"quoted \\"string\\"\""}"

"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/bin/target-postgres", line 8, in <module>
    sys.exit(TargetPostgres.cli())
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/singer_sdk/plugin_base.py", line 80, in invoke
    return super().invoke(ctx)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/singer_sdk/target_base.py", line 567, in invoke
    target.listen(file_input)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/singer_sdk/io_base.py", line 36, in listen
    self._process_endofpipe()
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/singer_sdk/target_base.py", line 326, in _process_endofpipe
    self.drain_all(is_endofpipe=True)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/singer_sdk/target_base.py", line 492, in drain_all
    self._drain_all(list(self._sinks_active.values()), self.max_parallelism)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/singer_sdk/target_base.py", line 525, in _drain_all
    Parallel()(delayed(_drain_sink)(sink=sink) for sink in sink_list)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/joblib/parallel.py", line 2007, in __call__
    return output if self.return_generator else list(output)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/joblib/parallel.py", line 1650, in _get_outputs
    yield from self._retrieve()
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/joblib/parallel.py", line 1754, in _retrieve
    self._raise_error_fast()
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/joblib/parallel.py", line 1789, in _raise_error_fast
    error_job.get_result(self.timeout)
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/joblib/parallel.py", line 745, in get_result
    return self._return_or_raise()
  File "/git/target-postgres/.meltano/loaders/target-postgres/venv/lib/python3.9/site-packages/joblib/parallel.py", line 763, in _return_or_raise
    raise self._result
psycopg2.errors.InvalidTextRepresentation: malformed array literal: "{"\"cha\u00eene simple\"","\"quoted \\"string\\"\""}"
DETAIL:  Unexpected array element.
CONTEXT:  COPY 69e0cb26_e5f0_4559_ae3b_797057adfafe, line 2, column strings: "{"\"cha\u00eene simple\"","\"quoted \\"string\\"\""}"

@edgarrmondragon @pnadolny13 Yes we are definitely interested in getting this released as well!

@edgarrmondragon @pnadolny13 Yes we are definitely interested in getting this released as well!

FYI to get a massive speed increase turn off validate_records

@kinghuang thanks for this PR! Is there anything you need to get it across the finish line? We're motivated to get this feature in 😄 . I see some comments/feedback but I'm not sure what is needed.
@visch and @sebastianswms said theyre able to assist with getting this merged if thats something of interest.

Sorry, I haven't had any time to finish this off. It's been quite busy at work! There's some failing tests that indicate an escaping/encoding error somewhere.
One thing that I've thought about trying is changing the delimiters used. The blog post CSVs Are Kinda Bad. DSVs Are Kinda Good makes me think that it might be simpler and better to use the record and unit separator characters instead of trying to deal with escaping quotes and commas.

@kinghuang Thoughts on using the copy functionality in psycopg3?
https://www.psycopg.org/articles/2020/11/15/psycopg3-copy/
It should avoid many of the issues mentioned above.


return detected format

Hi
If it's possible please add a function to return detected format as well. Something like this:
func('17/12/15')
<datetime.datetime(2017, 12, 15, 0, 0) 'YY/m/d'>

Related StackOverflow question: https://stackoverflow.com/q/57742320/939364

Closed as duplicate of this: https://github.com/scrapinghub/dateparser/issues/341


I may just be dumb......

I implemented your code awhile ago on my Synology 416play (Celeron-based) via cross-compilation on my mac.  I used:
env GOOS=linux GOARCH=386 go build dyndns_route53.go
And I know it worked when I set it up (a year-ish ago?).  Long story short, it's not working.  Ran it manually and got a Seg fault.  Just re-cloned the repo and recompiled and reinstalled.  Same deal.
Any ideas?

FWIW I'm compiling on a Mac w/ High Sierra

Did just re-cross compile on CentOS7 with newest go, same issue...  Interesting.

No clue, not using this package myself anymore. Can you share the exact error?


Update build_chain.sh to avoid wrong private key

Codecov Report

Merging #292 into dev-1.5 will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           dev-1.5     #292   +/-   ##
========================================
  Coverage    13.97%   13.97%
========================================
  Files          280      280
  Lines        19213    19213
========================================
  Hits          2685     2685
  Misses       16528    16528

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 cb2cf6d...db4bf11. Read the comment docs.


Trying to get Druid Plugin to work via datasources.yaml but unsure what the configuration needs to be. It is not documented

Configuration works great via the UI, but when I am trying to set it up via conf/provisioning/datasources it fails with
POST /druid/v2/sql giving up after 1 attempt(s): Post "/druid/v2/sql": unsupported protocol scheme ""

My configuration is something like this:
apiVersion: 1
datasources:

name: Druid
type: grafadruid-druid-datasource
access: direct
orgId: 1
url: https://urltodruid
basicAuth: false
withCredentials: false
jsonData:
tlsAuth: false
editable: true

Hi @alonbecker you can check a sample configuration that is imported by default for plugin testing. The file in dir docker/grafana/provisioning/datasources/druid.yml here's a link to that: https://github.com/IDS/druid-grafana/blob/bbe13e3af1fad19b3fd4f923593bc5a2d868f137/docker/grafana/provisioning/datasources/druid.yml

@alonbecker try that link https://github.com/grafadruid/druid-grafana/blob/master/docker/grafana/provisioning/datasources/druid.yml

Thanks, that is helpful


Log determinant term off by constant for 5-bit images

Hi,
I understand that this might be a small issue and that you guys don't report bits/dim for celebA-HQ (256x256x3), but I think it's worth noting that the log-determinant might be off by a constant since we have an extra division in the preprocessing step (https://github.com/openai/glow/blob/654ddd0ddd976526824455074aa1eaaa92d095d8/model.py#L156).
If I'm not mistaken, this term is not added to the objective later on. Could you verify this? This might be of interest to future work which could intend on reporting the numbers for celebA-HQ (256x256x3)
Thanks,
Chen

The code in model.py essentially performs:
n_bins = 2^n_bits_x

x = floor(x / 2^(8 - n_bits_x))
x = x / n_bins - 0.5

Which can be more easily understood as:
n_bins = 2^n_bits_x

x = x / 2^8  # Scale.
x = floor(x * n_bins) / n_bins   # Zero n_bits_x least significant bits.
x = x - 0.5  # Center.

As the transformed inputs are modeled, no term is needed to account for these transformations.


Feature/sbachmei/mic 3923 build docs to readthedocs

Title: Build docs on readthedocs
Description

Category: documentation
JIRA issue: MIC-3923

Added a required config file as well as the webhook to this repo on buildthedocs.
Testing
Docs were built (currently pointed at this branch - need to change it to
main when this merges)
https://pseudopeople.readthedocs.io/en/latest/

Nice work, are there any additional steps needed to publish to readthedocs.io? or should we add these steps to deploy.yml?
Would be useful to write the steps you completed on hub to publish docs, so anyone can follow the same steps to publish docs for other repos in future as needed, and avoid investigation.

we should also add next steps in the rename

@ramittal

we should also add install and next steps in getting started.

I agree but that's not this ticket.

Nice work, are there any additional steps needed to publish to readthedocs.io? or should we add these steps to deploy.yml? Would be useful to write the steps you completed on hub to publish docs, so anyone can follow the same steps to publish docs for other repos in future as needed, and avoid investigation.

I don't think there are any steps needed, though I'm not familiar with how this doc-building stuff works at all. It seems to match our other repos so I think it should just work? We do have the docs getting made in our build.yml so I think that working in conjunction with the newly-added webhook will do the magic?
I added the basic steps I took to the ticket itself but it was pretty obvious once logged on. The only tricky part was passing 2fa to log into readthedocs.