Error with QAP Build

Hi.
I recently installed QAP on my local machine and on our cluster to process ABIDE-II data.
However, when I attempt to run the pipelines, I get similar errors on both environments (see attached photos below).
I'm not sure what is is that is going wrong here and I was hoping to get a little input.
There's a module load error with the cluster I think, but I can confirm that the local machine (bottom two photos) is running nipype verson 0.12.1 so I don't think that is the issue.
Happy to send the yml files if needed, but the configs are the generic abide ones.

you need the ConfigParser module:
pip install ConfigParser

Alexander Li Cohen, M.D., Ph.D.
E-mail<EMAIL_ADDRESS>(Medical/Science Email)
E-mail<EMAIL_ADDRESS>(Lifetime Email)
On Tue, Jan 24, 2017 at 11:38 AM, TDeramus<EMAIL_ADDRESS>wrote:

Hi.
I recently installed QAP on my local machine and on our cluster to process
ABIDE-II data.
However, when I attempt to run the pipelines, I get similar errors on both
environments (see attached photos below).
I'm not sure what is is that is going wrong here and I was hoping to get a
little input.
There's a module load error with the cluster I think, but I can confirm
that the local machine (bottom two photos) is running nipype verson 0.12.1
so I don't think that is the issue.
Happy to send the yml files if needed, but the configs are the generic
abide ones.
[image: clustertemporalerror]
https://cloud.githubusercontent.com/assets/23127333/22256325/0338960c-e220-11e6-9a85-daff50cf671f.png
[image: clusterspatialerror]
https://cloud.githubusercontent.com/assets/23127333/22256326/033cb8cc-e220-11e6-8087-6dbab5010b0e.png
[image: qaplocalanatomical]
https://cloud.githubusercontent.com/assets/23127333/22256327/033f8be2-e220-11e6-82d2-5f97d95b7bf3.png
[image: qaplocaltemporal]
https://cloud.githubusercontent.com/assets/23127333/22256328/0341487e-e220-11e6-88ad-01d1144f4841.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/preprocessed-connectomes-project/quality-assessment-protocol/issues/87,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIPa_1--vpAC43mQPqp1HEYoqI9_iG3Xks5rVikTgaJpZM4Lsfek
.

Alternatively (for the configparser issue) you can use an earlier version of Python's future library by running pip install future==0.15.2 (see here).
For the other issue, are there any crash files ending in '.pklz' being produced in the output directory?  If so, could you please send them to<EMAIL_ADDRESS>so that I can take a look at them?

Is that specific future library supposed to be part of QAP's dependencies?
(checking the BIDS-App Docker, 0.16.0 is being installed as a dependency
for another package)
-Alex

Alexander Li Cohen, M.D., Ph.D.
E-mail<EMAIL_ADDRESS>(Medical/Science Email)
E-mail<EMAIL_ADDRESS>(Lifetime Email)
On Tue, Jan 24, 2017 at 12:32 PM, John Pellman<EMAIL_ADDRESS>wrote:

Alternatively (for the configparser issue) you can use an earlier version
of Python's future library by running pip install future==0.15.2 (see here
https://github.com/nipy/nipype/issues/1699).
For the other issue, are there any crash files ending in '.pklz' being
produced in the output directory? If so, could you please send them to
<EMAIL_ADDRESS>so that I can take a look at them?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/preprocessed-connectomes-project/quality-assessment-protocol/issues/87#issuecomment-274876225,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIPa_wxLgSgBQhzlrQ8J4QZ6HtQPOcUeks5rVjWWgaJpZM4Lsfek
.

It's a dependency of nipype.  QAP itself does not use future.

Thank you for your input.
Upon working on it some more, it looks like we're having library issues on the cluster (I still get error messages when working on the cluster after getting the dependency), I'm working with our resident software engineer to figure out what may be missing library wise and a few ways to fix it before I post again.
However, I have been having some issues with qap_functional_temporal.py and qap_anatomical_spatial.py and the report function.
Whenever I set write report to True, I get the following error:

I think that may also be a missing library issue but I'm not sure. qap_functional_spatial.py will run to completion as long as this is not flagged however.
qap_anatomical_spatial.py will not run to completion but that seems to be a memory issues (which should be fixed once I have it working on the cluster).
qap_functional_temporal.py on the other hand, will throw the following error whenever I run it with reports set to false:

I am not sure what is causing that.
I'm sending the pklz files from the steps to the email you specified, but I am unsure that the core-dump ones contain any useful information.
Let me know if you have any ideas, they would be appreciated.

Hi @hermeckerogg ,
What happens if you open a Python terminal and type the following code?
import numpy
numpy.test()

I get the following error when I run import numpy:
The program 'import' can be found in the following packages:

imagemagick
graphicsmagick-imagemagick-compat
Try: sudo apt-get install

I will try installing both of those and testing it again. See what happens.
Strange though because I could have sworn I had those.

Hi @hermeckerogg ,
Those packages shouldn't be necessary for testing Numpy.  You need to open a Python terminal by typing python or ipython in your Unix terminal first before running import numpy. Sorry for the confusion.

Doing that throws the following error:

import numpy
numpy.test()
Running unit tests for numpy
NumPy version 1.11.1
NumPy relaxed strides checking option: False
NumPy is installed in /home/Thomas/anaconda2/lib/python2.7/site-packages/numpy
Python version 2.7.12 |Anaconda 4.1.1 (64-bit)| (default, Jul  2 2016, 17:42:40) [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
nose version 1.3.7
.............................................................................................................................................................................................................................................OMP: Error #100: Fatal system error detected.
OMP: System error #22: Invalid argument
Aborted (core dumped)

Right. So, took a day to rebuild my python libraries and Conda setup and check dependencies. Those seem to be a little less bad now than they were.
However, I am not getting the following error on every command I try to run:
Thomas@DESKTOP-PNO0KIE:/mnt/f/ABIDEII/ABIDEII-SDSU_1$ qap_functional_temporal.py --sublist local_funct_list.yml qap_config_test_temporal_ms.yml
170131-21:18:29,853 workflow INFO:
There are 58 subjects in the pool
170131-21:18:29,926 workflow INFO:
Pipeline start time: 2017-01-31_21:18:29
170131-21:18:29,928 workflow INFO:
Contents of resource pool:
{'functional_scan': '/mnt/f/ABIDEII/ABIDEII-SDSU_1/28861/session_1/rest_1/rest.nii.gz'}
170131-21:18:29,931 workflow INFO:
Configuration settings:
{'stop_idx': 'None', 'pipeline_config_yaml': 'qap_config_test_temporal_ms.yml', 'start_idx': 0, 'write_all_outputs': False, 'num_subjects_at_once': 1, 'output_directory': '/mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_output_funct', 'write_report': False, 'working_directory': '/mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_working_funct', 'num_cores_per_subject': 1, 'qap_type': 'functional_temporal', 'slice_timing_correction': False}
Traceback (most recent call last):
File "/home/Thomas/anaconda2/bin/qap_functional_temporal.py", line 16, in
obj.run()
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap/cli.py", line 244, in run
results = self._run_here(run_name)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap/cli.py", line 178, in _run_here
results.append(_run_workflow(a))
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap/cli.py", line 375, in _run_workflow
workflow, resource_pool = wf_builder(workflow, resource_pool, config)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap/qap_workflows.py", line 525, in qap_functional_temporal_workflow
functional_brain_mask_workflow(workflow, resource_pool, config)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap/functional_preproc.py", line 296, in functional_brain_mask_workflow
func_motion_correct_workflow(workflow, resource_pool, config)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap/functional_preproc.py", line 93, in func_motion_correct_workflow
func_drop_trs = pe.Node(interface=preprocess.Calc(),
AttributeError: 'module' object has no attribute 'Calc'
Any idea what might be causing that?

The newest version of nipype is incompatible with QAP (see here).  That's the most likely cause of this error.
To downgrade use the following command:
pip install nipype==0.12.1

Alright. Think I found what the issue might have been.
So the version of Nipype I had installed was 0.12.1, but I did it through Conda, which I've noticed does a good bit of dependency upgrade/downgrade shuffling here and there to make sure everything works.
After removing it through Conda, removing any leftover bits through ruthless rm -rf thuggery and reinstalling via pip (as you describe above) it seems to be working.
Need to try it with functional spatial, anatomical spatial, and with report writing options (since I also installed pygraphviz via conda) to see if they work, but maybe don't use the conda nipype packages.

The code runs just fine, but unfortunately the summary report is producing an error.
This is with write_all_outputs: False and write_report: True
170202-02:45:10,911 workflow INFO:
Writing PDF reports
/home/Thomas/anaconda2/lib/python2.7/site-packages/qap/viz/reports.py:35: FutureWarning: sort(columns=....) is deprecated, use sort_values(by=.....)
columns=['subject', 'session', 'scan'])
Traceback (most recent call last):
File "/home/Thomas/anaconda2/bin/qap_functional_temporal.py", line 16, in
obj.run()
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap/cli.py", line 256, in run
out_dir=config['output_directory'])
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap/viz/reports.py", line 60, in workflow_report
is_group=True, out_file=out_sum)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap/viz/reports.py", line 174, in summary_cover
with codecs.open(html_dir, mode='r', encoding='utf-8') as f:
File "/home/Thomas/anaconda2/lib/python2.7/codecs.py", line 896, in open
file = builtin.open(filename, mode, buffering)
IOError: [Errno 2] No such file or directory: '/home/Thomas/anaconda2/lib/python2.7/site-packages/qap/viz/html/cover_group.html'

Hi @hermeckerogg ,
This is an issue currently present in the pip-installed version of QAP.  Please see here for a discussion about how to fix it.  If the solution discussed there doesn't work, let us know so that we can troubleshoot further.
Best,
John

So I've actually tried that one a couple of times.
Upon doing so after the dependencies were fixed, it returned the following:
170203-03:31:25,482 workflow INFO:
Saving crash info to /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_output_funct/crash-20170203-033125-Thomas-qap_functional_spatial-86bd316c-62fc-48bd-b409-9ecee902122b.pklz
170203-03:31:25,483 workflow INFO:
Traceback (most recent call last):
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/pipeline/plugins/linear.py", line 39, in run
node.run(updatehash=updatehash)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 394, in run
self._run_interface()
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 504, in _run_interface
self._result = self._run_command(execute)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 630, in _run_command
result = self._interface.run()
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1043, in run
runtime = self._run_wrapper(runtime)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1000, in _run_wrapper
runtime = self._run_interface(runtime)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/interfaces/utility.py", line 499, in _run_interface
out = function_handle(**args)
File "", line 41, in qap_functional_spatial
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/qap/spatial_qc.py", line 356, in ghost_direction
n2_mask_data[:,:n2,:]   = mask_data[:,n2:(n2*2),:]
TypeError: slice indices must be integers or None or have an index method
Interface Function failed to run.
170203-03:31:25,531 workflow INFO:
***********************************
170203-03:31:25,533 workflow ERROR:
could not run node: rest_1.qap_functional_spatial
170203-03:31:25,533 workflow INFO:
crashfile: /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_output_funct/crash-20170203-033125-Thomas-qap_functional_spatial-86bd316c-62fc-48bd-b409-9ecee902122b.pklz
170203-03:31:25,534 workflow INFO:
***********************************
170203-03:31:25,535 workflow ERROR:
An error occurred processing subject 28878. Runtime dict: {'status': 'failed', 'session': 'session_1', 'scan': 'rest_1', 'msg': 'Workflow did not execute cleanly. Check log for details', 'traceback': ['Traceback (most recent call last):\n', '  File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/qap/cli.py", line 424, in _run_workflow\n    workflow.run(**runargs)\n', '  File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/workflows.py", line 597, in run\n    runner.run(execgraph, updatehash=updatehash, config=self.config)\n', '  File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/pipeline/plugins/linear.py", line 57, in run\n    report_nodes_not_run(notrun)\n', '  File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/pipeline/plugins/base.py", line 95, in report_nodes_not_run\n    raise RuntimeError(('Workflow did not execute cleanly. '\n', 'RuntimeError: Workflow did not execute cleanly. Check log for details\n'], 'id': '28878'}
Traceback (most recent call last):
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/qap/cli.py", line 424, in _run_workflow
workflow.run(**runargs)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/workflows.py", line 597, in run
runner.run(execgraph, updatehash=updatehash, config=self.config)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/pipeline/plugins/linear.py", line 57, in run
report_nodes_not_run(notrun)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/nipype/pipeline/plugins/base.py", line 95, in report_nodes_not_run
raise RuntimeError(('Workflow did not execute cleanly. '
RuntimeError: Workflow did not execute cleanly. Check log for details
170203-03:31:25,673 workflow INFO:
Elapsed time (minutes) since last start: 5.84060913324
170203-03:31:25,859 workflow INFO:
Pipeline end time: 2017-02-03_03:31:25
170203-03:31:25,860 workflow INFO:
Writing PDF reports
Traceback (most recent call last):
File "/home/Thomas/anaconda2/bin/qap_functional_spatial.py", line 4, in
import('pkg_resources').run_script('qap==1.0.5', 'qap_functional_spatial.py')
File "build/bdist.linux-x86_64/egg/pkg_resources/init.py", line 744, in run_script
File "build/bdist.linux-x86_64/egg/pkg_resources/init.py", line 1499, in run_script
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/EGG-INFO/scripts/qap_functional_spatial.py", line 10, in
obj.run()
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/qap/cli.py", line 255, in run
out_dir=config['output_directory'])
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/qap/viz/reports.py", line 38, in workflow_report
df = pd.read_csv(in_csv, dtype={'subject': str}).sort(
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 646, in parser_f
return _read(filepath_or_buffer, kwds)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 389, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 730, in init
self._make_engine(self.engine)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 923, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/pandas/io/parsers.py", line 1390, in init
self._reader = _parser.TextReader(src, **kwds)
File "pandas/parser.pyx", line 373, in pandas.parser.TextReader.cinit (pandas/parser.c:4184)
File "pandas/parser.pyx", line 667, in pandas.parser.TextReader._setup_parser_source (pandas/parser.c:8449)
IOError: File /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_output_funct/qap_functional_spatial.csv does not exist
This is with:
write_all_outputs: False
write_report: True
This time it won't write the CSV file with the values in them. But it did produce error files which I'm zipping and sending now.

Hi @hermeckerogg ,
The crash files you sent me implicate a step that occurs before report generation.  In particular, the functionality for determining the GSR is failing.  Could you run the following command and send me the output to take look at?
3dinfo /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_working_funct/28878/session_1/rest_1/func_get_brain_mask/rest_calc_resample_volreg_mask.nii.gz

Appreciate the quick response.
Unfortunately that last run did not produce any output files in the results folder.
The last working run I had gave me this:
++ 3dinfo: AFNI version=Debian-16.2.07~dfsg.1-3~nd14.04+1 (Aug 31 2016) [64-bit]
Dataset File:    rest_calc_resample_volreg_mask.nii.gz
Identifier Code: XYZ_z_J9YCJHFkNHbD--32kg2w  Creation Date: Sun Jan 29 17:46:56 2017
Template Space:  ORIG
Dataset Type:    Anat Bucket (-abuc)
Byte Order:      LSB_FIRST {assumed} [this CPU native = LSB_FIRST]
Storage Mode:    NIFTI
Storage Space:   172,032 (172 thousand [kilo]) bytes
Geometry String: "MATRIX(3.4375,0,0,-110.625,0,-3.4375,0,94.8045,0,0,3.4,-46.8487):64,64,42"
Data Axes Tilt:  Plumb
Data Axes Orientation:
first  (x) = Right-to-Left
second (y) = Posterior-to-Anterior
third  (z) = Inferior-to-Superior   [-orient RPI]
R-to-L extent:  -110.625 [R] -to-   105.938 [L] -step-     3.438 mm [ 64 voxels]
A-to-P extent:  -121.758 [A] -to-    94.804 [P] -step-     3.438 mm [ 64 voxels]
I-to-S extent:   -46.849 [I] -to-    92.551 [S] -step-     3.400 mm [ 42 voxels]
Number of values stored at each pixel = 1
-- At sub-brick #0 '?' datum type is byte:            0 to             1
----- HISTORY -----
[Thomas@DESKTOP-PNO0KIE: Sun Jan 29 17:41:11 2017] 3dcalc -a '/mnt/f/ABIDEII/ABIDEII-SDSU_1/28878/session_1/rest_1/rest.nii.gz[0..179]' -expr a -prefix rest_calc.nii.gz
[Thomas@DESKTOP-PNO0KIE: Sun Jan 29 17:41:14 2017] 3drefit -deoblique /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Spatial_working_funct/28878/session_1/rest_1/func_deoblique/rest_calc.nii.gz
[Thomas@DESKTOP-PNO0KIE: Sun Jan 29 17:41:18 2017] 3dresample -orient RPI -prefix rest_calc_resample.nii.gz -inset /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Spatial_working_funct/28878/session_1/rest_1/func_reorient/rest_calc.nii.gz
[Thomas@DESKTOP-PNO0KIE: Sun Jan 29 17:44:10 2017] 3dvolreg -Fourier -twopass -1Dfile rest_calc_resample.1D -1Dmatrix_save rest_calc_resample.aff12.1D -prefix rest_calc_resample_volreg.nii.gz -base /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Spatial_working_funct/28878/session_1/rest_1/func_get_mean_motion/rest_calc_resample_volreg_tstat.nii.gz -zpad 4 -maxdisp1D max_displacement.1D /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Spatial_working_funct/28878/session_1/rest_1/func_motion_correct_A/rest_calc_resample.nii.gz
[Thomas@DESKTOP-PNO0KIE: Sun Jan 29 17:46:56 2017] 3dAutomask -apply_prefix rest_calc_resample_volreg_masked.nii.gz -prefix rest_calc_resample_volreg_mask.nii.gz /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Spatial_working_funct/28878/session_1/rest_1/func_get_brain_mask/rest_calc_resample_volreg.nii.gz
I will try running it with the git build again with write_all_outputs set to True and see if that turns up anything.

Hi @hermeckerogg ,
Sorry- I neglected to consider that 'write_all_outputs' was set to False.
I have another question- which version of Numpy are you using?  Starting with version 1.12 of NumPy, the ability to slice arrays using non-integers has been dropped (I'm going to leave a link to the changes here for future reference), which is probably what is throwing off the GSR function.

Ok so with the new flags the code rand to completion and the output for 3dinfo is:
Thomas@DESKTOP-PNO0KIE:/mnt/f/ABIDEII/ABIDEII-SDSU_1$ 3dinfo /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_working_funct/28878/session_1/rest_1/func_get_brain_mask/rest_calc_resample_volreg_mask.nii.gz
++ 3dinfo: AFNI version=Debian-16.2.07~dfsg.1-3~nd14.04+1 (Aug 31 2016) [64-bit]
Dataset File:    /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_working_funct/28878/session_1/rest_1/func_get_brain_mask/rest_calc_resample_volreg_mask.nii.gz
Identifier Code: XYZ_tr8gdCLvTh3qe5XYKtWGoA  Creation Date: Fri Feb  3 19:47:32 2017
Template Space:  ORIG
Dataset Type:    Anat Bucket (-abuc)
Byte Order:      LSB_FIRST {assumed} [this CPU native = LSB_FIRST]
Storage Mode:    NIFTI
Storage Space:   172,032 (172 thousand [kilo]) bytes
Geometry String: "MATRIX(3.4375,0,0,-110.625,0,-3.4375,0,94.8045,0,0,3.4,-46.8487):64,64,42"
Data Axes Tilt:  Plumb
Data Axes Orientation:
first  (x) = Right-to-Left
second (y) = Posterior-to-Anterior
third  (z) = Inferior-to-Superior   [-orient RPI]
R-to-L extent:  -110.625 [R] -to-   105.938 [L] -step-     3.438 mm [ 64 voxels]
A-to-P extent:  -121.758 [A] -to-    94.804 [P] -step-     3.438 mm [ 64 voxels]
I-to-S extent:   -46.849 [I] -to-    92.551 [S] -step-     3.400 mm [ 42 voxels]
Number of values stored at each pixel = 1
-- At sub-brick #0 '?' datum type is byte:            0 to             1
----- HISTORY -----
[Thomas@DESKTOP-PNO0KIE: Fri Feb  3 19:42:23 2017] 3dcalc -a '/mnt/f/ABIDEII/ABIDEII-SDSU_1/28878/session_1/rest_1/rest.nii.gz[0..179]' -expr a -prefix rest_calc.nii.gz
[Thomas@DESKTOP-PNO0KIE: Fri Feb  3 19:42:27 2017] 3drefit -deoblique /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_working_funct/28878/session_1/rest_1/func_deoblique/rest_calc.nii.gz
[Thomas@DESKTOP-PNO0KIE: Fri Feb  3 19:42:31 2017] 3dresample -orient RPI -prefix rest_calc_resample.nii.gz -inset /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_working_funct/28878/session_1/rest_1/func_reorient/rest_calc.nii.gz
[Thomas@DESKTOP-PNO0KIE: Fri Feb  3 19:45:05 2017] 3dvolreg -Fourier -twopass -1Dfile rest_calc_resample.1D -1Dmatrix_save rest_calc_resample.aff12.1D -prefix rest_calc_resample_volreg.nii.gz -base /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_working_funct/28878/session_1/rest_1/func_get_mean_motion/rest_calc_resample_volreg_tstat.nii.gz -zpad 4 -maxdisp1D max_displacement.1D /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_working_funct/28878/session_1/rest_1/func_motion_correct_A/rest_calc_resample.nii.gz
[Thomas@DESKTOP-PNO0KIE: Fri Feb  3 19:47:32 2017] 3dAutomask -apply_prefix rest_calc_resample_volreg_masked.nii.gz -prefix rest_calc_resample_volreg_mask.nii.gz /mnt/f/ABIDEII/ABIDEII-SDSU_1/QAP_Functional_Temporal_working_funct/28878/session_1/rest_1/func_get_brain_mask/rest_calc_resample_volreg.nii.gz
The important part seems to have worked. However, when it gets to the stage of making the graphs and writing the PDFs, there seems to be an error.
/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/qap/viz/reports.py:39: FutureWarning: sort(columns=....) is deprecated, use sort_values(by=.....)
columns=['subject', 'session', 'scan'])
Traceback (most recent call last):
File "/home/Thomas/anaconda2/bin/qap_functional_temporal.py", line 4, in
import('pkg_resources').run_script('qap==1.0.5', 'qap_functional_temporal.py')
File "build/bdist.linux-x86_64/egg/pkg_resources/init.py", line 744, in run_script
File "build/bdist.linux-x86_64/egg/pkg_resources/init.py", line 1499, in run_script
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/EGG-INFO/scripts/qap_functional_temporal.py", line 10, in
obj.run()
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/qap/cli.py", line 255, in run
out_dir=config['output_directory'])
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/qap/viz/reports.py", line 131, in workflow_report
func(df, subject=subid, out_file=qc_ms)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/qap/viz/reports.py", line 349, in qap_functional_temporal
out_file=out_file)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/qap/viz/reports.py", line 248, in _write_report
title='QC measures ' + subtitle)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/qap-1.0.5-py2.7.egg/qap/viz/plotting.py", line 125, in plot_all
zorder=10)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/matplotlib/init.py", line 1892, in inner
return func(ax, *args, **kwargs)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/matplotlib/axes/_axes.py", line 1406, in plot
for line in self._get_lines(*args, **kwargs):
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/matplotlib/axes/_base.py", line 407, in _grab_next_args
for seg in self._plot_args(remaining, kwargs):
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/matplotlib/axes/_base.py", line 385, in _plot_args
x, y = self._xy_from_xy(x, y)
File "/home/Thomas/anaconda2/lib/python2.7/site-packages/matplotlib/axes/_base.py", line 244, in _xy_from_xy
"have shapes {} and {}".format(x.shape, y.shape))
ValueError: x and y must have same first dimension, but have shapes (1,) and (0,)
It will produce some PDF files, but the data inside of it is minuscule (attached).
Any idea what might be causing this?
PDF_Documents.zip

Also according to the output I'm using:
In [3]: numpy.version.version
Out[3]: '1.12.0'
So that may answer that. I can try a rollback and see what that does.

Quick heads up- QAP 1.0.8 was released (available via pip install qap or here: https://github.com/preprocessed-connectomes-project/quality-assessment-protocol/releases/tag/v1.0.8).
If you can, give it another shot and let us know if you are still running into trouble.

does 1.0.8 allow for multiprocessor runs yet?
(I'm almost done re-working the BIDS-app to use the new sublist generator
and qap_measures_pipeline.py, testing now...)
-Alex

Alexander Li Cohen, M.D., Ph.D.
E-mail<EMAIL_ADDRESS>(Medical/Science Email)
E-mail<EMAIL_ADDRESS>(Lifetime Email)
On Tue, Feb 28, 2017 at 3:11 PM, sgiavasis<EMAIL_ADDRESS>wrote:

Quick heads up- QAP 1.0.8 was released (available via pip install qap or
here: https://github.com/preprocessed-connectomes-
project/quality-assessment-protocol/releases/tag/v1.0.8).
If you can, give it another shot and let us know if you are still running
into trouble.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/preprocessed-connectomes-project/quality-assessment-protocol/issues/87#issuecomment-283148107,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIPa_xFksTQjhzV7sL7vctCwo4XJtxhBks5rhH9xgaJpZM4Lsfek
.

Yes, definitely. Multi-processor, cluster runs (SGE, PBS, SLURM), AWS compatibility, ..etc.
You can configure your resource settings in the pipeline configuration YAML:
https://github.com/preprocessed-connectomes-project/quality-assessment-protocol/blob/master/configs/qap_config_TEMPLATE.yml


Adding header and footer to the website

Hey @amanjaiman1 I want to add header and footer to the website. Please assign me this issue. Thank you!

ohk great, lets do it.


Add zellij layouts

Add zellij layout as a workspace to maintain this repository
Add BPS like layout for common use

Resolves GH-724
For a part of GH-726

[cargo-make] INFO - Execute Command: "treefmt"
kdl error:
error: unexpected argument 'config/zellij/layouts/bps.kdl' found

Usage: kdlfmt format [OPTIONS] <INPUT>

For more information, try '--help'.

traversed 207 files
emitted 207 files for processing
treefmt: error: pipeline processing failure: kdl failure: formatter 'kdlfmt' with options '[format]' failed to apply: exit status 2
matched 173 files to formatters
formatted 0 files in 10.077041ms
[cargo-make] ERROR - Error while executing command, exit code: 1
[cargo-make] WARN - Build Failed.

=> https://github.com/hougesen/kdlfmt/issues/35


Optimize Top Ten Generation

➜  Leaf git:(debug-info-analytics-refresh) ✗ php artisan analytics:refresh
Processing: Best Accuracy (1k game min)
Processed in 0 seconds.
Processing: Best KDA (1k game min)
Processed in 1 seconds.
Processing: Best KD (1k game min)
Processed in 0 seconds.
Processing: Highest Score in Ranked Game
Processed in 89 seconds.
Processing: Longest Matchmaking Game
Processed in 166 seconds.
Processing: Most Assists in Game
Processed in 293 seconds.
Processing: Most Betrayals
Processed in 1 seconds.
Processing: Most Deaths in Game
Processed in 154 seconds.
Processing: Most Kills in Game
Processed in 159 seconds.
Processing: Most Kills in Ranked Game
Processed in 65 seconds.
Processing: Most Kills
Processed in 1 seconds.
Processing: Most Kills w/ 0 Deaths in Game
Processed in 98 seconds.
Processing: Most Medals in Game
Processed in 153 seconds.
Processing: Most Medals
Processed in 1 seconds.
Processing: Most Quit/Crashed Map
Processed in 162 seconds.
Processing: Most Time Played
Processed in 2 seconds.
➜  Leaf git:(debug-info-analytics-refresh)

Getting worse
<EMAIL_ADDRESS>[~/deploy/current]# php artisan analytics:refresh
Processing: Best Accuracy (1k game min)
Processed in 2 seconds.
Processing: Best KDA (1k game min)
Processed in 1 seconds.
Processing: Best KD (1k game min)
Processed in 1 seconds.
Processing: Highest Score in Ranked Game
Processed in 854 seconds.
Processing: Longest Matchmaking Game
Processed in 358 seconds.
Processing: Most Assists in Game
Processed in 2135 seconds.
Processing: Most Betrayals
Processed in 1 seconds.
Processing: Most Deaths in Game
Processed in 2116 seconds.
Processing: Most Kills in Game
Processed in 2209 seconds.
Processing: Most Kills in Ranked Game
Processed in 903 seconds.
Processing: Most Kills
Processed in 1 seconds.
Processing: Most Kills w/ 0 Deaths in Game
Processed in 1669 seconds.
Processing: Most Medals in Game
Processed in 2291 seconds.
Processing: Most Medals
Processed in 2 seconds.
Processing: Most Quit/Crashed Map
Processed in 1170 seconds.
Processing: Most Time Played
Processed in 1 seconds.
Processing: Most XP
Processed in 3 seconds.
Content-type: text/html; charset=UTF-8

<EMAIL_ADDRESS>[~/deploy/current]#

GamePlayers is heavy.

This isn't worth optimizing. Only spend time optimizing things front n center - the background jobs can stay slow. Indexes are heavy to put.


ATS does not return error codes on failed tests

This function says that it returns false on interrupted or failed tests but there isn't a return statement:
https://github.com/LLNL/ATS/blob/7ed78d69f087cae67ac78e4fd94b483b98c18a70/ats/management.py#L661-L683
This causes problems in CI because unless you parse the reports for failed tests, jobs do not mark themselves as failures.

Well, that is odd.  Nobody has mentioned this before.  But it should be fixable for sure.

@white238 I am talking with @dawson6 about this now and I am going to take a more thorough look at this. At a glance it seems like something that has been there but not addressed for.... years.

@white238 I'm working on this issue now and so far I have main() returning false on: keyboard interrupts, ATS errors, and failed tests. Would you want/expect main() to return false on tests that have timed out and/or halted as well? Or in a more general sense, would you expect main to return false for anything but all tests running successfully?

Yes, I would expect it to return false for anything but the tests running successfully.

Thanks for looking into this. I will try to try this out soon but I am fine with you guys closing this and leaving it up to me to test.


Autocommit does not work with truncate table...

By default with sqlalchemy has autocommit enabled.  However, this is not working with the ibm_db_sa interface when a "truncate table command is executed"
Test case:
sqlalchemy.version
'1.3.23'
#Create the engine
engine = create_engine(sqla_url, pool_size=10, max_overflow=20)
conn = engine.connect()
#Create the table if it does not exist and truncate to ensure that it is empty
print("Creating table if not exists")
conn.execute("create table if not exists johannes.mbike2(manufacturer varchar(50), model varchar(50), year int)")
db2pd("-db sample -wlock -lock")
Creating table if not exists
RETURN CODE None
Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 01:09:08 -- Date 2021-08-30-<IP_ADDRESS>8276
Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 01:09:08 -- Date 2021-08-30-<IP_ADDRESS>8290
Locks:
Address            TranHdl    Lockname                   Type           Mode Sts Owner      Dur HoldCount  Att        ReleaseFlg rrIID

print("Truncating table")
conn.execute("truncate table johannes.mbike2 immediate")
db2pd("-db sample -wlock -lock")

Truncating table
RETURN CODE None
Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 01:09:14 -- Date 2021-08-30-<IP_ADDRESS>3112
Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 01:09:14 -- Date 2021-08-30-<IP_ADDRESS>3126
Locks:
Address            TranHdl    Lockname                   Type           Mode Sts Owner      Dur HoldCount  Att        ReleaseFlg rrIID
0x00007F83EAC22980 3<PHONE_NUMBER>3D000060E95EFBC3 CatCacheLock   ..S  G   3          2   0          0x00000000 0x40000000 0
0x00007F83EAC22B80 3<PHONE_NUMBER>003D000000000052 RowLock        ..X  G   3          2   0          0x00200000 0x40000000 0
0x00007F83EAB6BF00 3<PHONE_NUMBER>000000000000006D ExtentMoveLock ..S  G   3          1   0          0x00200100 0x40000000 0
0x00007F83EAC22C00 3<PHONE_NUMBER>00000001004055D6 VarLock        ..S  G   3          1   0          0x00000000 0x40000000 0
0x00007F83EAC22480 3<PHONE_NUMBER>0000000000000054 TableLock      .IX  G   3          4   0          0x00202000 0x40000000 0
0x00007F83EABC8180 3<PHONE_NUMBER>0000000000000054 TableLock      ..Z  G   3          1   0          0x00202000 0x40000000 0
From this there is a row lock left in the SYSIBM.SYSTABLES table:
select substr(tabschema,1,6) as schema, substr(tabname,1,10) as table, tbspaceid, tableid
from syscat.tables where tableid = 5 and tbspaceid =0
SCHEMA TABLE      TBSPACEID TABLEID

SYSIBM SYSTABLES          0       5
1 record(s) selected.
and an exclusive lock on the base table:
db2 "select substr(tabschema,1,9) as schema, substr(tabname,1,10) as table, tbspaceid, tableid from syscat.tables where tableid =17 and tbspaceid =2"
SCHEMA    TABLE      TBSPACEID TABLEID

JOHANNES  MBIKE2             2      17
However, when autocommit is explicitly declared for the engine as a work around, then the truncate table command does not hold any locks:

print("Truncating table")

engine = create_engine(sqla_url, pool_size=10, max_overflow=20)
conn = engine.connect().execution_options(autocommit=True)
conn.execute("truncate table johannes.mbike2 immediate")
db2pd("-db sample -wlock -lock")
Truncating table
RETURN CODE None
Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 01:19:56 -- Date 2021-08-30-<IP_ADDRESS>6285
Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 01:19:56 -- Date 2021-08-30-<IP_ADDRESS>6298
Locks:
Address            TranHdl    Lockname                   Type           Mode Sts Owner      Dur HoldCount  Att        ReleaseFlg rrIID

Your symptom has nothing to do with sqlalchemy, or autocommit, or ibm_db_sa, or ibm_db, or python.
Instead, Db2-LUW is working as designed , specifically for the statementTRUNCATE ...IMMEDIATE.  The IMMEDIATE clause causes Db2-LUW to process the statement immediately and it cannot be undone and is therefore not impacted by the autocommit setting.
Study the documentation for more details.
https://www.ibm.com/docs/en/db2/11.5?topic=statements-truncate
This ticket should be closed.


feat: refactor to allow for split mode of operation

Works towards solving #40, allowing read and write halves to work independently. Maintains the old API for compatibility.
This is a pre-factoring PR that splits out a ReadHalf and WriteHalf, and ensures that you can read and write independently. A later PR will build on this to create the split API.
The main parts of this PR are:

A new Fragments struct that collects Frames.
The split ReadHalf and WriteHalf that do not contain a stream, allowing us to drive reads and writes externally
Reads provide an 'obligated write' which the caller is required to send

I tried to avoid making any major logic changes to functions -- this is mainly moving things around for a later patch.
Also note that the logic around checking whether the WriteHalf is closed or not has been hoisted into the read callers. This is a little awkward given that there is a fragmented and non-fragmented read path that duplicate this logic, but we may be able to clean this up in the future.

That's awesome, actually, i need this feature as well.
Hope it gets merged
🚀


325 increase item xp issuance

Grants items a 3X XP multiplier relative to adventurers. The result should be that Adventurers can get items to greatness 15 at around Adventurer level 5

Pushed directly to feature branch - created this PR for easy review/audit
https://github.com/BibliothecaDAO/realms-contracts/pull/326/commits/3f8ab0e14005295f132581c6bca209fdf769f1a6


Add environment and domain flag for sf:auth command

The API does support multiple environents and even custom domains.
This feature this feature can be particularly helpful for
developers since they are more likely to connect often create new
connections to sandboxes as they are to a production environemnt.
Please see:
https://devcenter.heroku.com/articles/heroku-connect-api#step-6-authenticate-the-connection-to-your-salesforce-org
4251209

I don't see a domain flag here, were you going to add that in this pull request or another?

@sigmavirus24 sorry, I forgot to commit that ;)
I rebased everything to resolve the conflict with my other PR as well. Thanks for the quick response cool! It's always a pleasure to work with you guys <3


Statistics Bug in the new AdminUI

When displaying statistics from the InfluxDB statistics provider the new AdminUI dies.
Using the old AdminUI the statistics work fine.
To Reproduce

First of all the statistics provider needs to be configured
Go to Event Details
Click on the statistics tab

The screen goes blank and firefox console displays the following:

Expected behavior
The AdminUI should display the statistics.
User environment:

Browser: Firefox
Version: OC 15.1

Moving this to the correct repo

Unfortunately, setting up InfluxDB to provide correct statistics is a nightmare. If you have a simple way to feed dummy statistics into the admin ui that you could share, that would go a long way in solving this issue.

@berthob98 ferishili has since fixed errors related to this issue. Has anything changed about the issue?

@Arnei with the fixes from ferishili on our test system, the statistics tab for events and series doesn't show up at all, even though it works perfectly in the old admin UI with the same installation/configuration.
The organisation statistics tab is available, but there we get the error "Statistics cannot be displayed at the moment. Please try again later".

Expect a PR soon.


feat: enable additional metrics

Description of the change
Flatten flags for slow querying metrics into one flag
Applicable issues

fixes #24

Additional information

@kinduff what do you think of this change? It should simplify config a bit.

Hey @onedr0p I agree with you. This could potentially get out of control if there's a lot of options, in both the CLI config, and the exporters themselves.
In the other hand, what if Exportarr is an application? Meaning that there are some constraints on trying to keep it as a CLI tool. I see value on having a config file for example. In the future there could be a layer between each service and the metrics it yields to Prometheus in order to customize the output.
LGTM!


Unable to register node with API server: Node is invalid

I am in the process of installing microk8s on a server that contains "" characters in the hostname. Logs indicate that the "" character cause node creation to fail (see inspection report) Is there a way to work around this by using a alternate name for the node?
Thanks in advance!
journal.log

Sorry, the underscore character did not resolve in the post above between the "".

Hi @TimJVK
There is the --hostname-override argument of kubelet you could try.
Edit  /var/snap/microk8s/current/args/kubelet and append something like --hostname-override=new-name. Then do a microk8s.stop followed by a microk8s.start to reload the new config.
I wonder if we should be naming the node instead of using the hostname.

Worked like a charm! Thanks for your help and the quick response!

thank you!
I followed this guide to change my hostname so it doesn't have any special characters. I didn't have to override the hostname.
https://linuxize.com/post/how-to-change-hostname-on-ubuntu-18-04/

It seems that using --hostname-override in the kubelet config will enable a cluster to start, however it all falls apart after RBAC is enabled.


Time required for fine tuning on English language dataset

I am trying to fine tune FastSpeech/MelGAN on a different English language dataset, but after several hours of training on both, I get sound files showing no progress. Do I just need to train longer? Or is there a deeper error?

@adfost can you share a tensorboard for both?

@dathudeptrai I didn't run this on colab (I trained the model on an AWS instance). I do think that the loss fell from about 1 to staying constant at 0.3 for both models.

@adfost hi, tensorboard should be accessible in any case. or can you share me a event.out.tfevents... file?

I'm going to email you the files, since they are of a supported type.

I sent you the files under the previous email conversation. Hopefully they are not misclassified as a virus.

I think we can close this issue I pinpointed the problem.


Typo in pixel

https://github.com/mhulse/illy-templates/tree/master/pixel#template-ff3ait
Should be 16px x 24px

Wait, it is. Duh.


Its actually a doubt regarding the code

typename TSrcI = Identity
can you explain what is the meaning of these kind of statements. It is used in many places in the repository. Can you mail me so that i can ask you some doubts.
I am actually trying to make a 3 layer LSTM  and trying to use the framework proposed here of multi layer cnn for the lstm.
but i am not able to understand how to take the input of one layer of lstm -pynq and pass it as the input to the other. some shape mismatches are coming if i directly do the same

Identity mean the class is inherited by the parameter passed to the function. For example, here the third template value, namely TWeightI is set to identity, meaning that for weight the function will use the class used to define the weight parameter (in the example weights1 - so FixedPointWeights with the template values used in the class). Hope this helps.


Add option to disable scrolling on page load

This is following discussion in #32. Minified version built with Packer as mentioned in the thread.
I know you were not in favor of an option for this, but I had to come up with this for my own consumption until this is doable with the upstream version of the library (to be able to replace my outdated copy while keeping the existing behavior). I figured I would make my changes available if anyone is interested as well in the future.
I would prefer not to monkey-patch a fork but I totally understand and respect your preferences, I did not intend to make a push for this PR to be merged. Feel free to close it or suggest improvements regardless of your decision 😃
Thanks!

@flesler, any chance you would consider this feature for jquery.localScroll?
To illustrate the change, if someone is interested, this is the issue I was facing, try the before / after versions. In both cases, open and refresh the page. The before version will cause an animated scroll on load, while the after version will not (the before version also does not move to the right position on load, but that might be different).
At the moment, I'm pointing to my own branch in package.json, but I would rather help improving the upstream package, get rid of this silly line in package.json (git locations with npm do not work perfectly on top of that), and give the package download count back to you 😅.
Let me know if there is anything I can do to help :)

@astorije just 3 small changes:

rename load to autoscroll. I like that you followed the short-single-word name but load is really ambiguous.
Remove the trailing comma at the end of the options. I know it's now standard to add them and I do myself but I don't want re-test linting or have people complain because in their env it fails. Let's just follow the same standard.
Don't update the minified version. I'll still do it myself afterwards (to ensure integrity) along with bumping the version.

Thanks!

@flesler, all 3 are done!
Re: minified version, I had used the exact same tool and settings than you for consistency and integrity, so you could see the diff was only my stuff. But totally understand, I removed the changes, just wanted to bring that up.
Also, a few things I noticed, in case that's helpful to you and your contributors/users:

You have a bunch of trailing whitespaces in jquery.locallScroll.js, making things difficult for devs having an editor that trims trailing whitespaces everywhere by default (like Atom) :)
I can easily fix that if you want, it's only a matter of saving the file for me!

There is no newline at end of file for jquery.locallScroll.min.js. I realize it's the minifier that did that, but again with certain editors (like Atom, vim, nano...) that add one or won't let you not add one, it's kind of a (nitpicky) annoyance.

As mentioned in this comment, I found that you could save almost 10% on size by changing minifier. No big deal though.

Of course, feel free to ignore any of those, I simply figured that while I was here, I would report some observations :)

@astorije the code is old. I now use VS Code and it surely trims lines and adds one at the end. I'll do it when I bump if you haven't, don't worry.
About minification, nice finding. They seem to use Uglify. I'll switch to jscompress for this and future releases, thanks!

Done, added some misc tweaks and published 1.5.0 👍

Yay, awesome, thank you very much, @flesler!!


core: Add CHEX, HASH, HPOINT and BRAM logos

Add Logos for CHEX, HASH, HPOINT and BRAM
This contribution adds new logos for the following tokens:
CHEX: Branded and monochrome versions
HASH and HPOINT Branded and monochrome versions
BRAM : Branded and monochrome versions
All logos are in SVG format.

i just pushed a small patch to the utils package which fixes an issue with the add-icons script. if you pull the main branch to this PR and run
bun run add-icons "tokens/branded/BRAM.svg, tokens/mono/BRAM.svg, tokens/branded/CHEX.svg, tokens/mono/CHEX.svg, tokens/branded/HPOINT.svg, tokens/mono/HPOINT.svg, tokens/branded/HASH.svg, tokens/mono/HASH.svg"

it should validate the svgs, match them with the metadata and update the tokens.json


Build OpenJ9 Windows jdk19+ with VS2022, and disable ccache

OpenJ9 was missing the change to disable ccache for all versions.
Issue https://github.com/eclipse-openj9/openj9/issues/16701

@AdamBrousseau fyi

Oops, fixed now.

OK the Alpine build is failing because it is merging/generating a file that has a merge conflict: <<<<<<< HEAD
No idea where this is coming from as a GitHub code search indicates that's nowhere in the entire Adoptium org.

Does --disable-ccache do anything on Windows JDK builds? I didn't think it was possible to use it there.

I don't know, I'm just making it consistent. 32-bit builds use it, non-openj9 builds use it, and openj9 jdk8 64-bit uses it. My change uses it for openj9 64-bit builds of all versions.

@karianna Are you happy with this now after Peter addressed your request?

OK the Alpine build is failing because it is merging/generating a file that has a merge conflict: <<<<<<< HEAD
No idea where this is coming from as a GitHub code search indicates that's nowhere in the entire Adoptium org.

The Alpine build still seems to have a merge conflict?

I think we should try and align hotspot/openj9 better here. @sxa I think we were talking about bumping the Temurin builds to VS 2022 as well?

OK the Alpine build is failing because it is merging/generating a file that has a merge conflict: <<<<<<< HEAD
No idea where this is coming from as a GitHub code search indicates that's nowhere in the entire Adoptium org.

The Alpine build still seems to have a merge conflict?

That's the separate branch that MSFT is maintaining I believe - @gdams can you check this one?

I think we should try and align hotspot/openj9 better here. @sxa I think we were talking about bumping the Temurin builds to VS 2022 as well?

Possibly but we can do that under a separate PR if desired. At the moment all the work that is being done to enable reproducibility for Temurin is on VS2019 and additional work would be required to move it up.

Can this be merged?

I think we're still in release freeze.

/thaw


Initializer is using wrong Logger base class

I found that Rails.logger.silence blocks fail when using this gem. The issues seems to be that RemoteSyslogLogger.new instantiates aLogger, when it should be instantiating an ActiveSupport::Logger. Reference: https://stackoverflow.com/a/38361137

Here's a hacky workaround I've been using:
in config/production.rb
RemoteSyslogLogger::Logger = ActiveSupport::Logger

It works because Logger being used within the RemoteSyslogLogger module here:
https://github.com/papertrail/remote_syslog_logger/blob/506bba071f09082106aacd6d3cc3e17423d99dac/lib/remote_syslog_logger.rb#L9
RemoteSyslogLogger::Logger is typically undefined and the name resolves to ::Logger, but my hack defines it.

Here's a hacky workaround I've been using:
in config/production.rb
RemoteSyslogLogger::Logger = ActiveSupport::Logger

It works because Logger being used within the RemoteSyslogLogger module here:
https://github.com/papertrail/remote_syslog_logger/blob/506bba071f09082106aacd6d3cc3e17423d99dac/lib/remote_syslog_logger.rb#L9
RemoteSyslogLogger::Logger is typically undefined and the name resolves to ::Logger, but my hack defines it.

Thanks Mike! I'll stash this for later. We ended up being able to switch back to the Rails standard logger sending to STDOUT, and having the container do the remote syslogging. One less third party dependency.

We ended up being able to switch back to the Rails standard logger sending to STDOUT, and having the container do the remote syslogging.

I'm interested in switching to this. Can you write up some details or link to a guide?

Hey Mike,
I'll try and get up a technical post at some point, but effectively here is what we did at a high level.

Created a custom entrypoint sh file that basically takes the output of the script and sends it to syslog. This can be done using something like the following command

exec 1> >(logger -s -t $(basename $0)) 2>&1

Configured rsyslog to forward our logs to papertrail. So, installed rsyslog, ensured the webapp user could configure a forward.conf file (environment specific logging destinations), and initialized/started rsyslog as part of the entrypoint script above.

Hope that helps. Feel free to ask more if required.


Implemented integration tests for Metrics API

ref https://github.com/kubernetes/kubernetes/issues/23376
as promised in https://github.com/kubernetes/heapster/pull/1161#issuecomment-219452619

It will be nice to extend the test and check, if all pods/nodes are correctly returned by master API, however, it can be addressed in another PR.
LGTM.

Will do. Thanks for the review!


Images built based on Raspberry Pi OS with desktop cannot boot

I referred to the rugpi-template project and modified the layers/customized.toml to raspios-desktop (referenced from here: https://github.com/kfihihc/tedge-rugpi-core/tree/main/layers). I successfully built it using sudo ./run-bakery bake image tryboot build/image-pi5-rugpi.img. However, after flashing it to the SD card, it fails to boot. The official fan HAT of Raspberry Pi 5 keeps spinning, then stops, waits for a while, and then starts spinning again, indicating that there seems to be a problem with the boot process.
Additionally, when I referred to the rugpi-template project and built an image based on Raspberry Pi OS Lite, it could boot normally. Using rugpi-ctrl update install image-pi5-rugpi.img on a normally booted RPi OS Lite system to OTA to RPi OS Desktop results in an error message saying No enough space or such file.
Is there anything else I need to be aware of when building images based on RPi OS Desktop with Rugpi?

I never tried building an image on top of Raspberry Pi OS Desktop, to be honest.
Nevertheless, here are a few ideas on what the problem may be and how to fix it:
You need to make sure that include_firmware = "none" is set. In case you used the thin-edge.io template as a basis, I just submitted a PR earlier today fixing the issue: https://github.com/thin-edge/tedge-rugpi-image/pull/67. The official template has also been broken and erroneously included the firmware update for Pi 4 which will not work on Pi 5.
By default, the size of the system partition is 4 GB. In case of Raspberry Pi Desktop, this may be insufficient resulting in a broken system when bootstrapping (updates will simply fail, as you noticed). This is something, we need to fix in the future (see #16). For now, you need to increase the size manually in /etc/rugpi/ctrl.toml, e.g.:
system_size = "8G"

Note that this is incompatible with the thin-edge.io persist-overlay recipe which will overwrite the ctrl.toml configuration file to persist the overlay by default. If you also want that, use:
system_size = "8G"
overlay = "persist"

I hope that this resolves the issue.

It's helpful! Thank you.
I cloned the latest rugpi-template and tested it with RPi OS Desktop. It works.
I also increased the system_size to 8G in /etc/rugpi/ctrl.img, and then it successfully performed OTA updates on another RPi OS Desktop.
However, it seems it cannot open some applications, like chromium-browser :
pi@rpi5-d83addeaaaa3:~ $ chromium-browser
[4653:4653:0206/083040.393400:FATAL:zygote_host_impl_[linux.cc](http://linux.cc/)(127)] No usable sandbox! Update your kernel or see https://chromium.googlesource.com/chromium/src/+/main/docs/linux/suid_sandbox_development.md for more information on developing with the SUID sandbox. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
Trace/breakpoint trap

I'm wondering if it's because of the Read-only file system?

Perfect! 👍
The filesystem should be writeable as Rugpi mounts a writeable overlay over the original root filesystem. Just for clarification: Does Chromium work when installed on a normal installation of Raspberry Pi OS Desktop? Do other applications fail to start for the same/similar reason? Sandboxing seems very specific to Chromium. Did you install the chromium-sandbox package?


Summer Release All Custom Labels

As a user I want to have all fields, help text, and messages in my language so that I can use the product.
Critical Changes
Changes
Custom Label:

healthLabelIntro

Issues Closed
Community Ideas Delivered
New Metadata
New Custom Labels:

stgRDNamingAmount
stgRDNamingCampaignName
stgRDNamingDescription
stgRDNamingDonorName
stgRDNamingInstallmentPeriod
stgRDNamingOptionLabel
stgLabelOther
healthLabelDataBatchNotRun
healthLabelDisableRecordBatch
healthLabelDisableRecordBatchDescription
RD2_EntryFormCustomFieldsSectionHeader
RD2_PauseClosedRDErrorMessage
RD2_PauseClosedRDValidation
RD2_PauseDescription
RD2_PauseHeader
RD2_PauseFirstDonationDateDynamicText

Deleted Metadata

**lurch: attach W-042001

Tracking W-042001

@force2b @sam-knox The new labels are ready for reviewed.

@sam-knox Thanks for the review. The label is updated

QE testing is complete for this PR and associated WI.  Based on the WI Description, ACs, 'child' WIs stated in the ACs, and Test Charter feedback, tests have now passed.
For further information, please see:
W-042001
Test Charter
Will set WI status to 'Closed' once the post merge builds have passed / success.


Inconsistency in SCIM2 Filtering with domain parameter and domain in the attribute value

In SCIM2 when we filter users using Users endpoint, we can use following attribute values.
E.g. userName, groups, name.filterName, emails.
[1]curl -v -k --user admin:admin 'https://localhost:9443/scim2/Users?filter=userName+eq+PRIMARY/user1&domain=PRIMARY
When domain name in the attribute value(PRIMARY in PRIMARY/user1) equals with domain query param (PRIMARY in domain=PRIMARY), it will be retrieved the relevant users from particular domain name.
[2]curl -v -k --user admin:admin 'https://localhost:9443/scim2/Users?filter=userName+eq+PRIMARY/user1&domain=TEST
When domain name in the attribute value(PRIMARY in PRIMARY/user1) not equals with domain query param (PRIMARY in domain=TEST), it will give following error message.
{"schemas":["urn:ietf:params:scim:api:messages:2.0:Error"],"detail":"Domain parameter: test in request does not match with the domain name in the attribute value: user1 ","status":"500"}
However, above error message is given only for userName and groups attribute values. If we use other attribute value (e.g. name.filterName, emails), It will give users from domain name in the attribute value(PRIMARY in PRIMARY/test@gmail.com). [3]
[3]curl -v -k --user admin:admin<EMAIL_ADDRESS>Response of [3]
{"totalResults":1,"startIndex":1,"itemsPerPage":1,"schemas":["urn:ietf:params:scim:api:messages:2.0:ListResponse"],"Resources":[{"emails":["test@gmail.com"],"meta":{"created":"2019-04-24T14:19:07.716Z","lastModified":"2019-04-24T14:21:58.709Z","resourceType":"User"},"name":{"givenName":"Ishika","familyName":"user1"},"groups":[{"display":"PRIMARY/Engineering1","value":"de357adc-8f28-48d7-bc1f-e56f9fe44c46"}],"id":"97e088dc-3017-4bad-aaae-02df177ae2e6","userName":"PRIMARY/user1"}]}

It was decided to only let userName and group attributes to embed domain name in the attribute value. Therefore the above fix is not needed

Resolving based on the comment above


Search NC Movies by ID

You didn't answered to same change on NZBgeek there: https://github.com/Purfview/IMDb-Scout-Mod/pull/116
And it had issues.


Improved logs UI

What would you like to be added:

Get rid of modal -> logs would be visible as tabs in the dock.
Selectable time-window
Search logs

It will be nice to add ability to enable/disable timestamp in the logs line. For example, the default behavior for Java apps (especially Spring Boot) is print logs with date-time, in this case, Lens will have almost duplicated information (for each line):

Maybe it's better to switch off timing by default and enable it when users want it for particular deploys?

It will be nice to make logs as a separate window and also bigger with the ability to view logs for different pods in the same time. I mean multiple opened windows.

Search would be nice...

Also: tail the logs for an entire namespace instead of only individual pods.

@devth or for a deployment / service (when there's a bunch of pods inside)

@donbeave wrote:

It will be nice to add ability to enable/disable timestamp in the logs line.

That feature already exists. Click the clock icon  in the upper right of of the dialog to toggle the timestamps.

I suggest looking at stern as a source of suggested features for combining logs, particularly combining all logs for a DaemonSet or ReplicaSet into one stream.
I also would very much appreciate the ability to search and filter the logs, similar to what is available with  less and grep.
It would also be helpful to be able to open the logs in a separate window, so I can view the logs as I work on other resources.

Closed in https://github.com/lensapp/lens/pull/1114
Selectable time-window, workload logs and other improvements are listed in their own issues.

Not sure if I'm missing this, but is there a link to the time-window PR @aleksfront?

@kilpatty There wasn't any. Now it's created https://github.com/lensapp/lens/issues/1729. All logs-related issues could be found by settings area/logs label https://github.com/lensapp/lens/issues?q=is%3Aopen+is%3Aissue+label%3Aarea%2Flogs

@aleksfront thanks! :) Sorry don't mean to be a bother, please let me know if I can help in any way


SLURM job wait is None

On Bebop, I think I am seeing cases where the output files indicate the job is done, but a short job.wait() is returning None, indicating that a final state has not yet been reached.  Could this mean that job.wait() is caching an old scheduler status?

Let me guess: the None status is in a different process than the one where the job was launched.
It's because the status hasn't been updated yet.

This is the same Python process:
https://github.com/swift-lang/swift-t/blob/7186e7ffeeb358b22d08bc86371d815f5cd74948/turbine/code/scripts/submit/psij/turbine2psij.py#L189

My bad. Sorry.
Yes, it is possible. The queue is not polled continuously, so it's entirely possible to have a delay between when the job finishes and when the status is updated.
The queue_polling_interval property in the executor config allows you to adjust the frequency with which the job status is updated.

Using queue_polling_interval works, PSI/J only returns None when not given enough time to poll.


fix registry not working issue

fixed license convention
add build-push-or-up build and down step
fix registry image build workflow

Current coverage is 41.69% (diff: 100%)

No coverage report found for master at 726016f.

Powered by Codecov. Last update 726016f...604cd81


custom-file-input issues height

i find that .custom-file-input class in BT 4.1 have this:
.custom-file-input {
    position: relative;
    z-index: 2;
    width: 100%;
    height: calc(2.25rem + 2px);
    margin: 0;
    opacity: 0;
}

And on 4.3 has this:
.custom-file-input {
    position: relative;
    z-index: 2;
    width: 100%;
    height: calc(1.5em + .75rem + 2px);
    margin: 0;
    opacity: 0;
}

and it not showing igual not the same size... why you change it?

The same happened on .form-control so it should be the same as other inputs. What browser? Provide a sample code and/or screenshot.

It is changed to make Bootstrap ready for responsive font sizes. If the size is not the same, you 've probably overridden the font size of the html element, which influences the value of rem. In that case you can set your font size to the body.


MH-13704: Multiple audio tracks support on paella

Paella supports multiple audio tracks. See: https://paellaplayer.upv.es/demos/multi-audio-tracks/
This PR adds this feature to opencast.
To test this feature you need to:

Upload multiple audio tracks to opencast
Configure the available languages in paella (see documentation)

This PR contains PR #1054 , so shouldn't be merged before that one!

Tried this but got Error! Config file not found. Please configure paella!.
But the configuration file is successfully loaded (HTTP 200).
In the console, I do see this error:
paella_player.js:7569 Uncaught TypeError: Cannot read property 'accessControlClass' of undefined
    at loadAccessControl (paella_player.js:7569)
    at paella_player.js:7597
    at Object.<anonymous> (paella_player.js:15834)
    at c (jquery.min.js:2)
    at Object.fireWith [as rejectWith] (jquery.min.js:2)
    at l (jquery.min.js:2)
    at XMLHttpRequest.<anonymous> (jquery.min.js:2)

Tried this but got Error! Config file not found. Please configure paella!.
But the configuration file is successfully loaded (HTTP 200).

@lkiesow,  I updated the PR, but now this PR contains PR #1054 , so shouldn't be merged before that one!
to test it I downloaded some test files
curl -O https://repository.paellaplayer.upv.es/multi-lang-audio/presenter.mp4
curl -O https://repository.paellaplayer.upv.es/multi-lang-audio/audio-es.m4a
curl -O https://repository.paellaplayer.upv.es/multi-lang-audio/audio-en.m4a

ingested a video using:
curl -f -i --digest -u opencast_system_account:CHANGE_ME -H 'X-Requested-Auth: Digest' \
    http://localhost:8080/ingest/addMediaPackage/import -F creator="`uuidgen`" -F title="Test multiple audio tracks" \
    -F 'flavor=presenter/delivery' -F<EMAIL_ADDRESS>\
    -F 'flavor=audio_es/delivery' -F<EMAIL_ADDRESS>\
    -F 'flavor=audio_en/delivery' -F<EMAIL_ADDRESS>
using the same workflow you used in: https://github.com/opencast/opencast/pull/1054#issuecomment-536076234
and configure paella to use the two audio languages:
"audioTag": {
  "audio_es/delivery": "es",
  "audio_en/delivery": "en"
}


Fix Typo

SECONDS_IN_A_DAY there was a typo in const.

Thanks Syed!

No problem! Thanks for putting up this repo, very useful 👍

Thank you! I'm very happy to hear that.


Update flatpak tests

assume flatpak >= 1.2.1 when mocking it
re-enable f29 test suite

Waiting for https://bodhi.fedoraproject.org/updates/FEDORA-2019-1fa2e338bb to be pushed to stable.

No release notes added. Test suite related changes.


Zombie tabs when opening links into a Firefox Multi-Account Container

This is a weird one: I have HNTP configured to open links in the current tab. However, sometimes a link seems to open in a new tab, leaving behind a blank zombie tab.
I found that the issue has to do with "Firefox Multi-Account Containers" and only occurs when other links are opened manually from within the HNTP tab.

Open a new HNTP tab
Right-click on any link and chose "open link in new tab"
Left-click on any link, that is configured to always open in "Firefox Multi-Account Containers"
=> step 3 leaves a blank tab behind

When I start with step 3), the link actually opens in the current tab.
When I click on a non-"Firefox Multi-Account Containers" link in step 3, it opens in the current tab.

I can confirm this issue.
It wasn't a case about a year ago, as far as I remember, so this is probably an effect of changes in Firefox (as the extension hasn't been updated in last year).

Oh my, this issue is old now :-)
This issue has a fix now:
Open the Firefox Multi-Account Containers settings and click onto the Options tab.
There, activate Tab behaviour -> Replace tab instead of creating a new one.
This works well with Firefox Multi-Account Containers v7.2.0 in Firefox v89.0.


Address auto-complete doesn't work when creating a store

When in the small store create window the address will not get recognized, but on the store edit page it works without problems. (Instead of offering relevant preset addresses, the input field offered to insert text I had previously entered.)
This leads to newly entered stores not coming with useful maps - even if the exact address is copy&pasted from google maps - and that a direct edit is necessary to be able to use the map.
I tested this with four addresses in Berlin and firefox.

Hm.. didn't investigate, but maybe we should just move the store creation to it's own page, with a route?
It will support "back" navigation(  #284 )  then and hopefully solve this issue as well.


Add CONTRIBUTING guide

This has instructions on how to fix review comments and guidelines for
merging pull requests with preserving nice history.

:+1:


annotate domestic image deployment

only deploy ghcr.io

@findmyway correct? Is there any omission?

You only need to remove the public runner.

@findmyway done


Question about the private test set

Hi, I've downloaded the private test set downloaded from https://huggingface.co/datasets/OpenDriveLab/OpenScene/resolve/main/openscene-v1.1/openscene_metadata_private_test_e2e.tgz and https://huggingface.co/datasets/OpenDriveLab/OpenScene/resolve/main/openscene-v1.1/openscene_sensor_private_test_e2e.tgz according to your script. It seems that this private set is mainly based on the previous test set from https://huggingface.co/datasets/OpenDriveLab/OpenScene/resolve/main/openscene-v1.1/openscene_metadata_test.tgz?
The previous test set contains annotations like bboxes and HD map according to OpenScene. I feel like asking how can we maintain the integrity of the challenge if these data are visible to participants?

Hi,
We use a combination of public data and private test data to flag suspicious submissions.
However, the evaluation itself will be based on the private data, so that no bounding boxes or maps are available.
Note that the main award in the competition is the innovation award, which will be determined by double-blind reviews of submitted technical reports. Any attempt to cheat on the test set would result in disqualification.

Thanks for the clarification. Another thing I would like to ask is that the private test data contains only about 600 frames, if I'm right, which is around 5 minutes in total? Wo
uldn't that be too short for the final evaluation?

The evaluation is focused on meaningful and challenging frames without faulty annotations.
This way, the results on these frames are very indicative of the performance of a method.
The test set performance also generalizes well to the larger pubic test set.

Thanks!


Update the search engines for the doc sets.

Sets the Google Custom Search Engine used by each doc set. Adds a new engine for the 4.2.0 docs.

:+1: kinda hard to tell what's going on with this data format


test: remove ginkgo

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

Comparison is base (6b5e976) 82.63% compared to head (b70f1ec) 81.85%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #918      +/-   ##
==========================================
- Coverage   82.63%   81.85%   -0.78%
==========================================
  Files          47       47
  Lines        3869     3869
==========================================
- Hits         3197     3167      -30
- Misses        541      571      +30
  Partials      131      131

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


Downloading the layers paralyzingly

We know that the download speed between the clients(dfget proxy) is fast, but in some scenarios (for example, sync images between a registry and a mirror registry), I need to speed up part 3⃣. Cause the registry may running in AWS and the cluster manager can be set up in our office, and the network between them is not good (packet losing, latency). And in some cases, docker will stuck in downloading layers, a single stuck can block the whole image, and we have to interrupt the pull process and the files we already download will missing and we have to retry and retry.
So, if the cluster manager can download the layer (or file or block) paralyzingly, we can easily retry the "stuck" part, no need to interrupt the whole downloading process.
In my scenario, I use the cluster manager to speed up the process between the remove registry in AWS and the local registry mirror. So the docker daemon have no extra configuration but adjust the DNS record.

Dragonfly downloads every layer of an image individual and caches them locally always.


Use template literals because why not

Totally unnecessary but I was bored

Probably the  most useless pr yet, but eh


Confusing bullet point "Avoid the use of var in place of dynamic."

I came across the following page on C# Coding conventions, but the following bullet point is confusing me.
"Avoid the use of var in place of dynamic."
What is meant by this bullet point? Can this be rephrased to be more clear?
Maybe a code sample will make it more clear, but currently I'm unsure of the meaning.

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

ID: 5a3c147e-2271-4d7c-712b-2f705b5ecbc5
Version Independent ID: 2c1a7cfe-364e-408e-77c1-9fae2b0da643
Content: C# Coding Conventions - C# Programming Guide
Content Source: docs/csharp/programming-guide/inside-a-program/coding-conventions.md
Product: dotnet-csharp
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

Yeah, I agree. The reason why should be clear.
I'm guessing it's because dynamic and var share the fact that they don't declare a type explicitly but they are used completely differently. You wouldn't want to just start converting your existing dynamic variables to var because you should have used dynamic for some specific purpose that won't be fulfilled by var.
I'll add this to the backlog.

Aha that makes sense. Thanks for taking a look at this.

To add a bit more clarification:
var means "The type of this variables matches the compile-time type of the right hand side of the initialization statement." That declares a static type for the variable.
dynamic means "The static type of this variable is dynamic."  That means any member access for that variable is allowed at compile time, and is resolved at runtime based on the runtime capabilities of the object the variable refers to.
Using var to declare a dynamic variable can make it much harder to see that distinction.

An example would be useful to clarify the point.


Add clacks of remembrance to our base template

Context: In the Terry Pratchett novel "Going Postal", a telegraph-style system known as "Clacks" was used to pass the name of a deceased character endlessly back and forth, keeping their memory alive. But where the book had "GNU John Dearheart" -- the prefix being a basic code to instruct clacksmen to pass on, not file, and return the message -- we add meta headers to our base template in a silent but appropriately geeky tribute and act of remembrance to those in our EuroPython family we have lost.

@ntoll thanks for doing this! I've updated the code with a workaround to make print the HTML comment in the output 😊

@patrick91 thank you so much for doing this. It means a lot. Here's hoping we don't have to add to it any time soon.


Incorrect placement of internal links in typed method signatures

Most of the time, the docs build procedure uses sphinx-autodoc-typehints to move typehints from function signatures into the docstring (as far as Sphinx sees).  However, in some cases that's not entirely possible, for example when a function or method uses typing.overload to specify two separate calling conventions.  In these cases, the type information is still in the function signature (which is probably a good thing - it's clearer when there's two separate ones), but the Sphinx theme mistreats the internal links; they match the same CSS rules for position: absolute that the little [source] link does.
For example, on the page for qiskit.circuit.QuantumCircuit.if_test:

I'm not sure how long this has been the case.

This is still a bug as of 1.11, even after migrating away from sphinx-autodoc-typehints in https://github.com/Qiskit/qiskit-metapackage/pull/1716:

Yeah, it's not a problem of sphinx-autodoc-typehints specifically, I think it's that CSS rule that's applying a position: absolute a little too excitedly.


Set up the "Publish to BCR" GitHub app

Mirror releases of this Bazel ruleset to the Bazel Central Registry using the "Publish to BCR" GitHub app, avoiding the need to submit PRs against the bazelbuild/bazel-central-registry repository manually.
See bazelbuild/bazel-central-registry#355 for the basis from which I generalized the template files proposed here.

im uncertain if there is any kind of process necessary to go through with publishing private repos to the public bcr

Note that this GitHub repository is public.


download the models

thank you to share the project for us, but i am sorry to say i couldn't  download the pre-trained model, could you give me another way to download it, thanks again

Here they are: https://drive.google.com/drive/folders/141ZmpOfFo_Bfb6gFXh30SvVGnAgapA-l

thanks a lot


read_region() tile width and height appear to be reversed

For the following example, it looks to me that the tile width and height are reversed:
from wsidicom import WsiDicom, WsiDicomWebClient

url = 'https://idc-external-006.uc.r.appspot.com/dcm4chee-arc/aets/DCM4CHEE/rs'
study_uid = '2.16.7<IP_ADDRESS>6.20190905094928'
series_uid = '2.16.7<IP_ADDRESS>6.20190905094928.20190905102252'

client = WsiDicomWebClient.create_client(url)

slide = WsiDicom.open_web(client, study_uid, series_uid)

size = (1000, 900)
print(f'{size=}')
tile = slide.read_region((0, 0), 0, size)
print(f'{tile.width=} {tile.height=}')

It prints out the following:
size=(1000, 900)
tile.width=900 tile.height=1000

If I look into the API for read_region, it looks like the size parameter is specified via (width, height). However, the returned tile appears to have the width and height reversed.

This looks like a problem with the PydicomDecoder. The numpy array returned from the pydicom pixel handler is 1-dimensional and needs to be reshaped into the correct width and height. The reshape size is however incorrect, as the first dimension for a numpy array corresponds to height, and the second to width. Switching these and one gets the correct size in the output. This also fixes so that the image is not totally scrambled.
But additionally, this image is monochrome2 (i.e. grayscale) and the LUT needs to be applied in order to get similar results as the Slim viewer. And as you noticed earlier the LUT parser does not work for the LUT in this image.


Store TypeScript version tags in typings registry

We need to add some throttling on the publishing of types-registry. possibly publish it once a day at most.


Configurable cache timeout

Add a new environment variable FLAKEHEAVEN_CACHE_TIMEOUT and attempt to read value from it.
Also add a simple test that the value is actually read from the variable and fallbacks to the default if the variable is not set.

I believe the documentation should be updated too. I tried to find the documentation for the FLAKEHEAVEN_CACHE variable, but I couldn't. I think I saw it in the past somewhere, but maybe I'm wrong.


What happened to the old version?

Why can you not see the pad as u walk with it, its annoying that u have to have it take up ur full screen before u can watch anything on 1.20.1???

nevermind is shaders


update slack channel name

<If necessary, assign reviewers that know the area or changes well. Feel free to tag any additional reviewers you see fit.>
Details

We changed the slack channel name, so updating the contributing instructions accordingly.
Tests

No tests. Just a documentation change.
QA Steps

No QA. Just a documentation change.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


ALE: Score and Precision value locations in result

The address list editor interface as well as CSV export are showing the score values under the precision field, and the precision values under the score field.
For example, the JS file below shows the 'SCORE_VAL' as corresponding to column #4..
https://github.com/bcgov/ols-devkit/blob/gh-pages/ale/js/ale.js
..which has a 'precision' heading in the GUI and CSV export.
https://bcgov.github.io/ols-devkit/ale/

Apparently I accidentally re-ordered those column headings when I did the changes to support CHSA:
https://github.com/bcgov/ols-devkit/commit/60b897d3bb5acf837d440a6b60abd7a6b30a22ff#diff-aa4da491efd2718f275549bbdb7d47aeb7381cfbe08ff06f6ed5cf3cbc94793f
Here is a PR to fix it:
https://github.com/bcgov/ols-devkit/pull/202


The define_negated_matcher is broken for matchers with named parameters in Ruby 3

If you have a matcher that allows for named parameters, and then you use RSpec::Matchers.define_negated_matcher to create a negated version, the negated version has argument errors when used in Ruby 3. (I have confirmed that this works in Ruby 2.7.6.)
Your environment

Ruby version: 3.0.3
rspec-expectations version: 3.12.0

Steps to reproduce
#!/usr/bin/env ruby
# frozen_string_literal: true

begin
  require "bundler/inline"
rescue LoadError => e
  $stderr.puts "Bundler version 1.10 or later is required. Please update your Bundler"
  raise e
end

gemfile(true) do
  source "https://rubygems.org"

  gem "rspec", "3.12.0" # Activate the gem and version you are reporting the issue against.
end

puts "Ruby version is: #{RUBY_VERSION}"
require 'rspec/autorun'

module ComplexMatchers
  class Match
    include RSpec::Matchers::Composable

    attr_accessor :my_reqs, :my_opts, :my_block

    def initialize(required, **options, &block)
      self.my_reqs = required
      self.my_opts = options
      self.my_block = block
    end

    def matches?(val)
      true
    end
  end

  def complex_match(...)
    Match.new(...)
  end
end

RSpec.describe 'additions' do
  include ComplexMatchers
  RSpec::Matchers.define_negated_matcher :complex_missing, :complex_match

  it 'just succeeds' do
    expect(2).to complex_match("foo", bar: 33, baz: 22)
  end

  it 'succeeds because negated' do
    expect(2).not_to complex_missing("foo", bar: 33, baz: 22)
  end
end

Expected behavior
Both tests pass
Actual behavior
Console output:
Ruby version is: 3.0.3

additions
  just succeeds
  succeeds because negated (FAILED - 1)

Failures:

  1) additions succeeds because negated
     Failure/Error:
       def initialize(required, **options, &block)
         self.my_reqs = required
         self.my_opts = options
         self.my_block = block
       end

     ArgumentError:
       wrong number of arguments (given 2, expected 1)
     # bin/repo_rspec.rb:30:in `initialize'
     # bin/repo_rspec.rb:42:in `new'
     # bin/repo_rspec.rb:42:in `complex_match'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-expectations-3.12.0/lib/rspec/matchers/dsl.rb:39:in `block in alias_matcher'
     # bin/repo_rspec.rb:56:in `block (2 levels) in <main>'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `instance_exec'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:263:in `block in run'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `block in with_around_and_singleton_context_hooks'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:468:in `block in with_around_example_hooks'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:486:in `block in run'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:624:in `run_around_example_hooks_for'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/hooks.rb:486:in `run'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:468:in `with_around_example_hooks'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:511:in `with_around_and_singleton_context_hooks'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/example.rb:259:in `run'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:646:in `block in run_examples'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:642:in `map'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:642:in `run_examples'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/example_group.rb:607:in `run'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:121:in `block (3 levels) in run_specs'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:121:in `map'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:121:in `block (2 levels) in run_specs'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/configuration.rb:2070:in `with_suite_hooks'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:116:in `block in run_specs'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/reporter.rb:74:in `report'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:115:in `run_specs'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:89:in `run'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:71:in `run'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:45:in `invoke'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:38:in `perform_at_exit'
     # /path/to/repro/vendor/ruby/3.0.0/gems/rspec-core-3.12.0/lib/rspec/core/runner.rb:24:in `block in autorun'
     #
     #   Showing full backtrace because every line was filtered out.
     #   See docs for RSpec::Configuration#backtrace_exclusion_patterns and
     #   RSpec::Configuration#backtrace_inclusion_patterns for more information.

Finished in 0.00142 seconds (files took 0.05359 seconds to load)
2 examples, 1 failure

Failed examples:

rspec bin/repo_rspec.rb:55 # additions succeeds because negated

A one-line change turns it green:
-    def initialize(required, **options, &block)
+    def initialize(required, *options, &block)

See this blog post for more info on this topic.

The problem is that they are named parameters, not positional parameters, so that change isn't helpful. (Also wouldn't be helpful in the case where you had variable number of positional parameters as well as named parameters.)

Would you still be able to break RSpec with a less minified example? I suppose you do use those my_opts.

I minified my example from a more complex matcher to make the issue clearer. In the actual matcher, we do use the named parameters values.

named parameters

Do you mean keyword arguments, or just an options hash?
There is some lack of understanding going on. May I kindly ask you to provide your matcher code with no simplifications?

named parameters

Do you mean keyword arguments, or just an options hash?

I am talking about keyword arguments.

There is some lack of understanding going on. May I kindly ask you to provide your matcher code with no simplifications?

I don't see how providing my full matcher would provide fuller clarity for this issue. It would explain why I have a matcher that takes variadic keyword arguments, but that doesn't help point out the issue. From my perspective, the issue seems to be that when RSpec defines the negated matcher, it wraps the original matcher in such a way that prevents it from passing the keyword arguments to the original matcher.

:wave: Sorry you are experiencing this problem, RSpec did not originally officially support keyword arguments to its internals due to our supporting Ruby matrix, as people have grown their usage of them in various places they just worked on Ruby 2.x, the Ruby 3.x changes splitting them out has caused numerous errors due to our "ruby 2 keywords" style usage and this is one. We can't yet solve this by using **kwargs but we can try marking our methods as ruby 2 keywords for Ruby 3, in the mean time you can fix this by making your matcher *args and marking it as ruby2_keywords.

I think #1394 solves this, at least based on my quick tests, please check it out to see if it works with your matcher.


Multiple *.cpp supporting

Often tests are located in several *.cpp files, but are compiled into one *.exe.

Expected Behavior
[==========] Running 2 tests from 2 test suites.
[----------] Global test environment set-up.
[----------] 1 test from Bar
[ RUN      ] Bar.test
[       OK ] Bar.test (2 ms)
[----------] 1 test from Bar (7 ms total)

[----------] 1 test from Foo
[ RUN      ] Foo.test
[       OK ] Foo.test (1 ms)
[----------] 1 test from Foo (2 ms total)

[----------] Global test environment tear-down
[==========] 2 tests from 2 test suites ran. (25 ms total)
[  PASSED  ] 2 tests.

Actual Behavior
Link error issue
Foo.obj : error LNK2005: "public: static void * mock_module_GetACP::oldFn_" (?oldFn_@mock_module_GetACP@@2PEAXEA) already defined in Bar.obj
multiply_defined.exe : fatal error LNK1169: one or more multiply defined symbols found

Steps to Reproduce

Two *.cpp files with tests and main file

Foo.cpp
#include "gtest\gtest.h"
#include "gmock\gmock.h"
#include "gmock-win32.h"
#include <Windows.h>
MOCK_STDCALL_FUNC(UINT, GetACP);
TEST(Foo, test) {
	EXPECT_MODULE_FUNC_CALL( GetACP );
	GetACP( );
}

Bar.cpp
#include "gtest\gtest.h"
#include "gmock\gmock.h"
#include "gmock-win32.h"
#include <Windows.h>
MOCK_STDCALL_FUNC(UINT, GetACP);
TEST(Bar, test) {
	EXPECT_MODULE_FUNC_CALL( GetACP );
	GetACP( );
}

multiply_defined.cpp
#include "..\src\gtest\src\gtest_main.cc"
#include "..\src\gtest\gtest-all.cc"
#include "..\src\gmock\gmock-all.cc"
#include "..\..\src\gmock-win32.cpp"

Building in cmd line

Include path to googletest and current project
set googletest=googletest\gmock\include
set gmock-win32=gmock-win32\include

Building launch
cl /c Foo.cpp /EHsc /I"%googletest%" /I"%gmock-win32%"
cl /c Bar.cpp /EHsc /I"%googletest%" /I"%gmock-win32%"
cl /c multiply_defined.cpp /EHsc /I"%googletest%" /I"%gmock-win32%"
link multiply_defined Bar Foo

Run multiply_defined.exe

Specifications

Version: latest
Platform: Windows
Subsystem:  Visual Studio Community 2019

We can separate declaration and definition.
The definition will go to the main cpp file.
There is already a solution for review, I'm waiting for #5 -- to avoid conflicts.

Tried also to fix it, see: https://github.com/smalti/gmock-win32/pull/18


"Can't pickle SwigPyObject objects", how to save a HawkesADM4 learner to file?

Hello!
First of all thanks to the entire team for developing such a good library for point process learning. I tried to save a fitted HawkesADM4 learner to file through pickling because it took me a long time to train, but I had the following error message:

TypeError                                 Traceback (most recent call last)
 in
1 with open(f'/data1/wyao_workspace/notebooks/{input_path.stem}_adm4_learner.pkl', 'wb') as f:
----> 2     pk.dump(adm4learner, f)
TypeError: can't pickle SwigPyObject objects
Questions: is there an alternative to pickling that I can dump and load the fitted ADM4 learner or how to avoid this error?
PS: This error also prevents me from training model in parallel with multiprocessing ...
Thanks a lot.
Wang

I think you need to use "dill"

Thank you Dekken, but I got same error when using dill

TypeError                                 Traceback (most recent call last)
 in
2
3 with open(f'/data1/wyao_workspace/notebooks/{input_path.stem}_adm4_learner.pkl', 'wb') as f:
----> 4     dill.dump(learner_dict, f)
~/.conda/envs/LM2/lib/python3.6/site-packages/dill/_dill.py in dump(obj, file, protocol, byref, fmode, recurse, **kwds)
257     _kwds = kwds.copy()
258     _kwds.update(dict(byref=byref, fmode=fmode, recurse=recurse))
--> 259     Pickler(file, protocol, **_kwds).dump(obj)
260     return
261
~/.conda/envs/LM2/lib/python3.6/site-packages/dill/_dill.py in dump(self, obj)
443             raise PicklingError(msg)
444         else:
--> 445             StockPickler.dump(self, obj)
446         stack.clear()  # clear record of 'recursion-sensitive' pickled objects
447         return
~/.conda/envs/LM2/lib/python3.6/pickle.py in dump(self, obj)
407         if self.proto >= 4:
408             self.framer.start_framing()
--> 409         self.save(obj)
410         self.write(STOP)
411         self.framer.end_framing()
~/.conda/envs/LM2/lib/python3.6/pickle.py in save(self, obj, save_persistent_id)
474         f = self.dispatch.get(t)
475         if f is not None:
--> 476             f(self, obj) # Call unbound method with explicit self
477             return
478
~/.conda/envs/LM2/lib/python3.6/site-packages/dill/_dill.py in save_module_dict(pickler, obj)
910             # we only care about session the first pass thru
911             pickler._session = False
--> 912         StockPickler.save_dict(pickler, obj)
913         log.info("# D2")
914     return
~/.conda/envs/LM2/lib/python3.6/pickle.py in save_dict(self, obj)
819
820         self.memoize(obj)
--> 821         self._batch_setitems(obj.items())
822
823     dispatch[dict] = save_dict
~/.conda/envs/LM2/lib/python3.6/pickle.py in _batch_setitems(self, items)
845                 for k, v in tmp:
846                     save(k)
--> 847                     save(v)
848                 write(SETITEMS)
849             elif n:
~/.conda/envs/LM2/lib/python3.6/pickle.py in save(self, obj, save_persistent_id)
519
520         # Save the reduce() output and finally memoize the object
--> 521         self.save_reduce(obj=obj, *rv)
522
523     def persistent_id(self, obj):
~/.conda/envs/LM2/lib/python3.6/pickle.py in save_reduce(self, func, args, state, listitems, dictitems, obj)
632
633         if state is not None:
--> 634             save(state)
635             write(BUILD)
636
~/.conda/envs/LM2/lib/python3.6/pickle.py in save(self, obj, save_persistent_id)
474         f = self.dispatch.get(t)
475         if f is not None:
--> 476             f(self, obj) # Call unbound method with explicit self
477             return
478
~/.conda/envs/LM2/lib/python3.6/site-packages/dill/_dill.py in save_module_dict(pickler, obj)
910             # we only care about session the first pass thru
911             pickler._session = False
--> 912         StockPickler.save_dict(pickler, obj)
913         log.info("# D2")
914     return
~/.conda/envs/LM2/lib/python3.6/pickle.py in save_dict(self, obj)
819
820         self.memoize(obj)
--> 821         self._batch_setitems(obj.items())
822
823     dispatch[dict] = save_dict
~/.conda/envs/LM2/lib/python3.6/pickle.py in _batch_setitems(self, items)
845                 for k, v in tmp:
846                     save(k)
--> 847                     save(v)
848                 write(SETITEMS)
849             elif n:
~/.conda/envs/LM2/lib/python3.6/pickle.py in save(self, obj, save_persistent_id)
519
520         # Save the reduce() output and finally memoize the object
--> 521         self.save_reduce(obj=obj, *rv)
522
523     def persistent_id(self, obj):
~/.conda/envs/LM2/lib/python3.6/pickle.py in save_reduce(self, func, args, state, listitems, dictitems, obj)
632
633         if state is not None:
--> 634             save(state)
635             write(BUILD)
636
~/.conda/envs/LM2/lib/python3.6/pickle.py in save(self, obj, save_persistent_id)
474         f = self.dispatch.get(t)
475         if f is not None:
--> 476             f(self, obj) # Call unbound method with explicit self
477             return
478
~/.conda/envs/LM2/lib/python3.6/site-packages/dill/_dill.py in save_module_dict(pickler, obj)
910             # we only care about session the first pass thru
911             pickler._session = False
--> 912         StockPickler.save_dict(pickler, obj)
913         log.info("# D2")
914     return
~/.conda/envs/LM2/lib/python3.6/pickle.py in save_dict(self, obj)
819
820         self.memoize(obj)
--> 821         self._batch_setitems(obj.items())
822
823     dispatch[dict] = save_dict
~/.conda/envs/LM2/lib/python3.6/pickle.py in _batch_setitems(self, items)
850                 k, v = tmp[0]
851                 save(k)
--> 852                 save(v)
853                 write(SETITEM)
854             # else tmp is empty, and we're done
~/.conda/envs/LM2/lib/python3.6/pickle.py in save(self, obj, save_persistent_id)
494             reduce = getattr(obj, "reduce_ex", None)
495             if reduce is not None:
--> 496                 rv = reduce(self.proto)
497             else:
498                 reduce = getattr(obj, "reduce", None)
TypeError: can't pickle SwigPyObject objects

I'm not sure if we've configured serialization for this object.
if you'd like to give it a shot PRs are welcome
try something like this
git diff
diff --git a/lib/swig/tick/hawkes/inference/hawkes_adm4.i b/lib/swig/tick/hawkes/inference/hawkes_adm4.i
index 3ff65be..c9cbebf 100644
--- a/lib/swig/tick/hawkes/inference/hawkes_adm4.i
+++ b/lib/swig/tick/hawkes/inference/hawkes_adm4.i
@@ -26,3 +26,5 @@ class HawkesADM4 : public ModelHawkesList {
   void set_rho(const double rho);
 };

+
+TICK_MAKE_PICKLABLE(HawkesADM4);

Indeed we did not add the code to make this one picklable. Here is a tutorial that could guide you if you want to submit a PR :).

Thank you Mbompr for your reply. I am thinking of, for a short term workaround, can I just save all essential parameters of all my ADM4 learners, then is it possible to "recover" those learner by using one of simulator, e.g. SimuHawkesExpKernels ?
Thank you
Wang