Docker and Cachet version 2.3.15

Hey guys, is there an ETA on having 2.3.15 being made available to build as a docker container?

Thanks for the update on having v2.3.15 available for use in Docker, however the name of the build is saying this in cachet: 2.3.14-dev when building using the v2.3.15 tag.

Ugh that's weird.
What build env did you use?
AFAIK release-helper failed to change cachet-ver in docker-compose stuff. It is my mistake for not noticing it.
And the build over hub.docker.com don't have 2.3.15 built. @CachetHQ/core can you have a look?

This script allows you to pass in the build you want to use, for me I passed in "v2.3.15" directly into the Dockerfile (as that's how I'm building it), see example:
ENV cachet_ver ${cachet_ver:-v2.3.15} ENV archive_url ${archive_url:-https://github.com/cachethq/Cachet/archive/${cachet_ver}.tar.gz}

That is weirder.
Have anyone run Cachet without Docker and take a look at the version num?

@wfjsw, do you know if you've had anything back from this one?

More of a question for the vote Cachet team. We just pull whatever they tag upstream into the image.

I’m on holiday at the moment but can look at this once I’m home.
I want to do a huge push on 2.4 (becoming 3.0) so that we can get stop supporting 2.3.


PyAFQ failure

Summary

Piggybacking off of #122, I ran into errors with PyAFQ (--recon-spec pyqfq_tractometry). This one seems a bit more challenging/problematic to diagnose and I understand that checking on n = 1 isn't super helpful, but it's where we're at for the moment. Essentially, I'm getting an error that there's a NaN response in the CSD fitting. I haven't tested the MRtrix + PyAFQ pipeline (MRtrix MSMT ACT HSVS took 52 hours and just finished), but I know that I get a valid CSD response function from these data based on the other pipelines, which leads me to believe that something isn't getting passed to the node.
Additional details

QSIRecon version:
Docker version:
Singularity version:

What were you trying to do?
Test for unanticipated failures.
What did you expect to happen?
Unanticipated failures
What actually happened?

Traceback:
	Traceback (most recent call last):
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/tasks/data.py", line 335, in csd_params
	    csdf = csd_fit_model(
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/models/csd.py", line 67, in _fit
	    return _model(gtab, data, response, sh_order, csd_fa_thr).fit(
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/models/csd.py", line 56, in _model
	    raise CsdNanResponseError
	AFQ.models.csd.CsdNanResponseError

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

	Traceback (most recent call last):
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 397, in run
	    runtime = self._run_interface(runtime)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/interfaces/pyafq.py", line 114, in _run_interface
	    myafq.export_all()
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/api/participant.py", line 202, in export_all
	    export_all_helper(self, seg_algo, xforms, indiv, viz)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/api/utils.py", line 121, in export_all_helper
	    api_afq_object.export("template_xform")
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/api/participant.py", line 155, in export
	    return self.wf_dict[section][attr_name]
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 470, in __getitem__
	    self._run_node(self.plan.efferents[k])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 534, in _run_node
	    if not found: res = node(self)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 90, in __call__
	    args.append(opts[name])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 889, in __getitem__
	    return self._examine_val(k, ps.PMap.__getitem__(self, k))
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 885, in _examine_val
	    val = val()
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 1164, in <lambda>
	    def curry_choice(k, args): return lambda:choose_fn(k, args)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 1133, in _choose_last
	    return vs[-1][k]
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 470, in __getitem__
	    self._run_node(self.plan.efferents[k])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 534, in _run_node
	    if not found: res = node(self)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 90, in __call__
	    args.append(opts[name])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 889, in __getitem__
	    return self._examine_val(k, ps.PMap.__getitem__(self, k))
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 885, in _examine_val
	    val = val()
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 1164, in <lambda>
	    def curry_choice(k, args): return lambda:choose_fn(k, args)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 1133, in _choose_last
	    return vs[-1][k]
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 470, in __getitem__
	    self._run_node(self.plan.efferents[k])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 534, in _run_node
	    if not found: res = node(self)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 91, in __call__
	    result = self.function(*args)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/tasks/mapping.py", line 182, in get_reg_subject
	    reg_subject_spec = data_imap[filename_dict[reg_subject_spec]]
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 470, in __getitem__
	    self._run_node(self.plan.efferents[k])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 534, in _run_node
	    if not found: res = node(self)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 90, in __call__
	    args.append(opts[name])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 889, in __getitem__
	    return self._examine_val(k, ps.PMap.__getitem__(self, k))
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 885, in _examine_val
	    val = val()
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 1164, in <lambda>
	    def curry_choice(k, args): return lambda:choose_fn(k, args)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 1133, in _choose_last
	    return vs[-1][k]
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 470, in __getitem__
	    self._run_node(self.plan.efferents[k])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 534, in _run_node
	    if not found: res = node(self)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 91, in __call__
	    result = self.function(*args)
	  File "<string>", line 2, in wrapper_has_args_func
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/tasks/decorators.py", line 149, in wrapper_as_file
	    gen, meta = func(*args[:og_arg_count], **kwargs)
	  File "<string>", line 2, in wrapper_has_args_func
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/tasks/decorators.py", line 220, in wrapper_as_img
	    data, meta = func(*args[:og_arg_count], **kwargs)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/tasks/data.py", line 342, in csd_params
	    raise CsdNanResponseError(
	AFQ.models.csd.CsdNanResponseError: Could not compute CSD response function for file:
	<class 'nibabel.nifti1.Nifti1Image'>
	data shape (161, 198, 171, 137)
	affine:
	[[ -1.   0.   0.  80.]
	 [  0.  -1.   0.  81.]
	 [  0.   0.   1. -80.]
	 [  0.   0.   0.   1.]]
	metadata:
	<class 'nibabel.nifti1.Nifti1Header'> object, endian='<'
	sizeof_hdr      : 348
	data_type       : b''
	db_name         : b''
	extents         : 0
	session_error   : 0
	regular         : b''
	dim_info        : 0
	dim             : [  4 161 198 171 137   1   1   1]
	intent_p1       : 0.0
	intent_p2       : 0.0
	intent_p3       : 0.0
	intent_code     : none
	datatype        : float64
	bitpix          : 64
	slice_start     : 0
	pixdim          : [1. 1. 1. 1. 1. 1. 1. 1.]
	vox_offset      : 0.0
	scl_slope       : nan
	scl_inter       : nan
	slice_end       : 0
	slice_code      : unknown
	xyzt_units      : 0
	cal_max         : 0.0
	cal_min         : 0.0
	slice_duration  : 0.0
	toffset         : 0.0
	glmax           : 0
	glmin           : 0
	descrip         : b''
	aux_file        : b''
	qform_code      : unknown
	sform_code      : aligned
	quatern_b       : 0.0
	quatern_c       : 0.0
	quatern_d       : 1.0
	qoffset_x       : 80.0
	qoffset_y       : 81.0
	qoffset_z       : -80.0
	srow_x          : [-1.  0.  0. 80.]
	srow_y          : [ 0. -1.  0. 81.]
	srow_z          : [  0.   0.   1. -80.]
	intent_name     : b''
	magic           : b'n+1'
	.

Running this on the current state of #131. Crash is the same but now populated with file paths:
Node: qsirecon_0_0_wf.sub-001_pyafq_tractometry.sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_recon_wf.pyafq_tractometry.run_afq
Working directory: /output/scratch/qsirecon_0_0_wf/sub-001_pyafq_tractometry/sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_recon_wf/pyafq_tractometry/run_afq

Node inputs:

bval_file = /input/qsiprep/sub-001/ses-01/dwi/sub-001_ses-01_dir-AP_run-001_space-T1w_desc-preproc_dwi.bval
bvec_file = /input/qsiprep/sub-001/ses-01/dwi/sub-001_ses-01_dir-AP_run-001_space-T1w_desc-preproc_dwi.bvec
dwi_file = /input/qsiprep/sub-001/ses-01/dwi/sub-001_ses-01_dir-AP_run-001_space-T1w_desc-preproc_dwi.nii.gz
itk_file = /input/qsiprep/sub-001/anat/sub-001_from-MNI152NLin2009cAsym_to-T1w_mode-image_xfm.h5
kwargs = {'directions': 'prob', 'max_angle': 30.0, 'sphere': None, 'seed_mask': None, 'seed_threshold': 0, 'n_seeds': 1, 'random_seeds': False, 'rng_seed': None, 'stop_mask': None, 'stop_threshold': 0, 'step_size': 0.5, 'odf_model': 'CSD', 'tracker': 'local', 'nb_points': False, 'nb_streamlines': False, 'seg_algo': 'AFQ', 'clip_edges': False, 'parallel_segmentation': {'n_jobs': -1, 'engine': 'joblib', 'backend': 'loky'}, 'progressive': True, 'greater_than': 50, 'rm_small_clusters': 50, 'model_clust_thr': 1.25, 'reduction_thr': 25, 'refine': False, 'pruning_thr': 12, 'b0_threshold': 50, 'prob_threshold': 0, 'roi_dist_tie_break': False, 'dist_to_waypoint': None, 'rng': None, 'return_idx': False, 'presegment_bundle_dict': None, 'presegment_kwargs': {}, 'filter_by_endpoints': True, 'dist_to_atlas': 4, 'save_intermediates': None, 'n_points': 100, 'clean_rounds': 5, 'distance_threshold': 3, 'length_threshold': 4, 'min_sl': 20, 'stat': 'mean', 'min_bval': None, 'max_bval': None, 'filter_b': True, 'robust_tensor_fitting': False, 'csd_response': None, 'csd_sh_order': None, 'csd_lambda_': 1, 'csd_tau': 0.1, 'gtol': 0.01, 'brain_mask_definition': None, 'bundle_info': None, 'reg_template_spec': 'mni_T1', 'mapping_definition': None, 'reg_subject_spec': 'power_map', 'profile_weights': 'gauss', 'scalars': ['dti_fa', 'dti_md'], 'import_tract': None, 'sbv_lims_bundles': [None, None], 'volume_opacity_bundles': 0.3, 'n_points_bundles': 40, 'sbv_lims_indiv': [None, None], 'volume_opacity_indiv': 0.3, 'n_points_indiv': 40, 'viz_backend_spec': 'plotly_no_gif', 'virtual_frame_buffer': False, 'omp_nthreads': 8}
mask_file = /output/scratch/qsirecon_0_0_wf/sub-001_pyafq_tractometry/sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_dwi_specific_anat_wf/resample_mask/sub-001_desc-brain_mask_trans.nii.gz
n_procs = 8
tck_file = <undefined>

Traceback (most recent call last):
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/plugins/multiproc.py", line 67, in run_node
    result["result"] = node.run(updatehash=updatehash)
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
    result = self._run_interface(execute=True)
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
    return self._run_command(execute)
  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/pipeline/engine/nodes.py", line 771, in _run_command
    raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node run_afq.

Traceback:
	Traceback (most recent call last):
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/tasks/data.py", line 335, in csd_params
	    csdf = csd_fit_model(
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/models/csd.py", line 67, in _fit
	    return _model(gtab, data, response, sh_order, csd_fa_thr).fit(
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/models/csd.py", line 56, in _model
	    raise CsdNanResponseError
	AFQ.models.csd.CsdNanResponseError

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

	Traceback (most recent call last):
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 397, in run
	    runtime = self._run_interface(runtime)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/interfaces/pyafq.py", line 114, in _run_interface
	    myafq.export_all()
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/api/participant.py", line 202, in export_all
	    export_all_helper(self, seg_algo, xforms, indiv, viz)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/api/utils.py", line 121, in export_all_helper
	    api_afq_object.export("template_xform")
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/api/participant.py", line 155, in export
	    return self.wf_dict[section][attr_name]
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 470, in __getitem__
	    self._run_node(self.plan.efferents[k])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 534, in _run_node
	    if not found: res = node(self)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 90, in __call__
	    args.append(opts[name])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 889, in __getitem__
	    return self._examine_val(k, ps.PMap.__getitem__(self, k))
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 885, in _examine_val
	    val = val()
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 1164, in <lambda>
	    def curry_choice(k, args): return lambda:choose_fn(k, args)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 1133, in _choose_last
	    return vs[-1][k]
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 470, in __getitem__
	    self._run_node(self.plan.efferents[k])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 534, in _run_node
	    if not found: res = node(self)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 90, in __call__
	    args.append(opts[name])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 889, in __getitem__
	    return self._examine_val(k, ps.PMap.__getitem__(self, k))
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 885, in _examine_val
	    val = val()
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 1164, in <lambda>
	    def curry_choice(k, args): return lambda:choose_fn(k, args)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 1133, in _choose_last
	    return vs[-1][k]
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 470, in __getitem__
	    self._run_node(self.plan.efferents[k])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 534, in _run_node
	    if not found: res = node(self)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 91, in __call__
	    result = self.function(*args)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/tasks/mapping.py", line 182, in get_reg_subject
	    reg_subject_spec = data_imap[filename_dict[reg_subject_spec]]
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 470, in __getitem__
	    self._run_node(self.plan.efferents[k])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 534, in _run_node
	    if not found: res = node(self)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 90, in __call__
	    args.append(opts[name])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 889, in __getitem__
	    return self._examine_val(k, ps.PMap.__getitem__(self, k))
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 885, in _examine_val
	    val = val()
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 1164, in <lambda>
	    def curry_choice(k, args): return lambda:choose_fn(k, args)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/util.py", line 1133, in _choose_last
	    return vs[-1][k]
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 470, in __getitem__
	    self._run_node(self.plan.efferents[k])
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 534, in _run_node
	    if not found: res = node(self)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/pimms/calculation.py", line 91, in __call__
	    result = self.function(*args)
	  File "<string>", line 2, in wrapper_has_args_func
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/tasks/decorators.py", line 149, in wrapper_as_file
	    gen, meta = func(*args[:og_arg_count], **kwargs)
	  File "<string>", line 2, in wrapper_has_args_func
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/tasks/decorators.py", line 220, in wrapper_as_img
	    data, meta = func(*args[:og_arg_count], **kwargs)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/AFQ/tasks/data.py", line 342, in csd_params
	    raise CsdNanResponseError(
	AFQ.models.csd.CsdNanResponseError: Could not compute CSD response function for file:
	<class 'nibabel.nifti1.Nifti1Image'>
	data shape (161, 198, 171, 137)
	affine:
	[[ -1.   0.   0.  80.]
	 [  0.  -1.   0.  81.]
	 [  0.   0.   1. -80.]
	 [  0.   0.   0.   1.]]
	metadata:
	<class 'nibabel.nifti1.Nifti1Header'> object, endian='<'
	sizeof_hdr      : 348
	data_type       : b''
	db_name         : b''
	extents         : 0
	session_error   : 0
	regular         : b''
	dim_info        : 0
	dim             : [  4 161 198 171 137   1   1   1]
	intent_p1       : 0.0
	intent_p2       : 0.0
	intent_p3       : 0.0
	intent_code     : none
	datatype        : float64
	bitpix          : 64
	slice_start     : 0
	pixdim          : [1. 1. 1. 1. 1. 1. 1. 1.]
	vox_offset      : 0.0
	scl_slope       : nan
	scl_inter       : nan
	slice_end       : 0
	slice_code      : unknown
	xyzt_units      : 0
	cal_max         : 0.0
	cal_min         : 0.0
	slice_duration  : 0.0
	toffset         : 0.0
	glmax           : 0
	glmin           : 0
	descrip         : b''
	aux_file        : b''
	qform_code      : unknown
	sform_code      : aligned
	quatern_b       : 0.0
	quatern_c       : 0.0
	quatern_d       : 1.0
	qoffset_x       : 80.0
	qoffset_y       : 81.0
	qoffset_z       : -80.0
	srow_x          : [-1.  0.  0. 80.]
	srow_y          : [ 0. -1.  0. 81.]
	srow_z          : [  0.   0.   1. -80.]
	intent_name     : b''
	magic           : b'n+1'
	.

From the terminal output, this immediately precedes the error:
INFO:AFQ:No seed mask given, using FA (or first scalar if none are FA)thresholded to 0.2
INFO:AFQ:No stop mask given, using FA (or first scalar if none are FA)thresholded to 0.2
INFO:AFQ:Saving /xdisk/adamraikes/PD_allo/derivatives/qsirecon_unstable_v2/scratch/qsirecon_0_0_wf/sub-001_pyafq_tractometry/sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_recon_wf/pyafq_tractometry/run_afq/study/subject/PYAFQ/sub-001_ses-01_dir-AP_run-001_desc-brainmasktrans_dwi.nii.gz
INFO:AFQ:Saving /xdisk/adamraikes/PD_allo/derivatives/qsirecon_unstable_v2/scratch/qsirecon_0_0_wf/sub-001_pyafq_tractometry/sub_001_ses_02_dir_AP_run_001_space_T1w_desc_preproc_recon_wf/pyafq_tractometry/run_afq/study/subject/PYAFQ/sub-001_ses-02_dir-AP_run-001_desc-brainmasktrans_dwi.nii.gz
WARNING:AFQ:Failed to export warped b0. This could be because your mapping type is only compatible with transformation from template to subject space. The error is: Could not compute CSD response function for file:
<class 'nibabel.nifti1.Nifti1Image'>

I wonder if this is due to an older pyafq version? I remember this, or a similar error, being discussed here: https://github.com/yeatmanlab/pyAFQ/issues/1156

So possibly related...  (and meant to post this on Friday but apparently didn't actually hit the button)...
multishell_scalarfest yields a PeaksReport failure, also related to ODF nans:
Cmdline:
	recon_plot --background_image /input/qsiprep/sub-001/ses-01/dwi/sub-001_ses-01_dir-AP_run-001_space-T1w_dwiref.nii.gz --directions /output/scratch/qsirecon_0_0_wf/sub-001_multishell_scalarfest/sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_recon_wf/mapmri_recon/recon_map/sub-001_ses-01_dir-AP_run-001_space-T1w_desc-preproc_dwi_MAPMRI_dirs.npy --mask_file /output/scratch/qsirecon_0_0_wf/sub-001_multishell_scalarfest/sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_dwi_specific_anat_wf/resample_mask/sub-001_desc-brain_mask_trans.nii.gz --amplitudes /output/scratch/qsirecon_0_0_wf/sub-001_multishell_scalarfest/sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_recon_wf/mapmri_recon/recon_map/sub-001_ses-01_dir-AP_run-001_space-T1w_desc-preproc_dwi_MAPMRI_amp.nii.gz --odfs_image odfs_mosaic.png --odf_rois /output/scratch/qsirecon_0_0_wf/sub-001_multishell_scalarfest/sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_dwi_specific_anat_wf/odf_rois/crossing_rois_trans.nii.gz --peaks_image peaks_mosaic.png
Stdout:
	241025-15:42:08,45 nipype.interface INFO:
		 loading amplitudes=/output/scratch/qsirecon_0_0_wf/sub-001_multishell_scalarfest/sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_recon_wf/mapmri_recon/recon_map/sub-001_ses-01_dir-AP_run-001_space-T1w_desc-preproc_dwi_MAPMRI_amp.nii.gz, directions=/output/scratch/qsirecon_0_0_wf/sub-001_multishell_scalarfest/sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_recon_wf/mapmri_recon/recon_map/sub-001_ses-01_dir-AP_run-001_space-T1w_desc-preproc_dwi_MAPMRI_dirs.npy to plot ODF/peaks
	241025-15:42:32,401 nipype.interface INFO:
		 saving peaks image to /output/scratch/qsirecon_0_0_wf/sub-001_multishell_scalarfest/sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_recon_wf/mapmri_recon/plot_peaks/peaks_mosaic.png
	241025-15:42:32,591 nipype.interface INFO:
		 Plotting slice indices {'x': [73, 80, 87], 'y': [90, 99, 107], 'z': [78, 85, 92]}
Stderr:
	Traceback (most recent call last):
	  File "/opt/conda/envs/qsiprep/bin/recon_plot", line 8, in <module>
	    sys.exit(recon_plot())
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/cli/recon_plot.py", line 129, in recon_plot
	    peak_slice_series(
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/cli/recon_plot.py", line 262, in peak_slice_series
	    plot_peak_slice(
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/cli/recon_plot.py", line 192, in plot_peak_slice
	    peak_dirs, peak_values = peaks_from_odfs(
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/qsirecon/cli/recon_plot.py", line 335, in peaks_from_odfs
	    direction, pk, ind = peak_directions(
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/dipy/direction/peaks.py", line 132, in peak_directions
	    values, indices = local_maxima(odf, sphere.edges)
	  File "recspeed.pyx", line 249, in dipy.reconst.recspeed.local_maxima
	ValueError: odf can not have nans
Traceback:
	Traceback (most recent call last):
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 453, in aggregate_outputs
	    setattr(outputs, key, val)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/interfaces/base/traits_extension.py", line 330, in validate
	    value = super(File, self).validate(objekt, name, value, return_pathlike=True)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/interfaces/base/traits_extension.py", line 135, in validate
	    self.error(objekt, name, str(value))
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/traits/base_trait_handler.py", line 74, in error
	    raise TraitError(
	traits.trait_errors.TraitError: The 'peak_report' trait of a _ReconPeaksReportOutputSpec instance must be a pathlike object or string representing an existing file, but a value of '/output/scratch/qsirecon_0_0_wf/sub-001_multishell_scalarfest/sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_recon_wf/mapmri_recon/plot_peaks/peaks_mosaic.png' <class 'str'> was specified.

	During handling of the above exception, another exception occurred:

	Traceback (most recent call last):
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 400, in run
	    outputs = self.aggregate_outputs(runtime)
	  File "/opt/conda/envs/qsiprep/lib/python3.10/site-packages/nipype/interfaces/base/core.py", line 460, in aggregate_outputs
	    raise FileNotFoundError(msg)
	FileNotFoundError: No such file or directory '/output/scratch/qsirecon_0_0_wf/sub-001_multishell_scalarfest/sub_001_ses_01_dir_AP_run_001_space_T1w_desc_preproc_recon_wf/mapmri_recon/plot_peaks/peaks_mosaic.png' for output 'peak_report' of a CLIReconPeaksReport interface

So PyAFQ and MAPMRI, which both run DIPY to generate the ODFs, fail due to nans. By contrast, MRtrix has no issue estimating FODs for either the connectivity pipelines or PyAFQ.

I wonder if we should drop multishell_scalarfest from the official recon workflows. It's meant to be more of a showcase for the different recon methods and probably shouldn't be encouraged for hypothesis-driven research. WDYT @araikes @smeisler ?

I personally am in favor of keeping it, because (1) sometimes you just want that much stuff (2) it gives users a hint about how to create custom recon specs that do several things (3) it saves people from inadvertently using wrong NODDI coefficients in gray matter.


ConnectionLimitingPool closing connections while in use

I've been troubleshooting some connection errors in my application and I've tracked them down to a couple issues in ConnectionLimitingPool:

In getStreamFor, when a new connection is created, the connection ID is captured so it can be passed to dropConnection when the connection is closed. But what it's actually capturing is the ID of the connection promise, not the connection itself. This causes dropConnection to not correctly remove the connection from activeRequestCounts and idleConnections.
The onReadyConnection method closes idle connections if it detects that there are too many open. But it does so with array_shift, which re-indexes the array starting from 0, so the remaining idle connections are no longer mapped to the correct connection ID.

These errors result in connections not being removed the list of idle connections when they should be, which can lead to connections being closed while still in use. I'll submit a PR for this momentarily.

You seem to be running into some pretty hard to debug edge cases. Thank you!


plugins/catppuccin!: update integrations

This PR updates catppuccin integrations and sorts them to alphabetical order

I think we need a type which would allow for integrations.mini = enable and integrations.mini.enabled = true. Catppuccin does this at compile time.


Default Node.js version should be the "Active LTS" version rather than "current" version

Is your feature request related to a problem? Please describe.
By default, the buildpack for Node.js installs the latest version from the "current" branch. That branch is not ready for use in general cases and the "Active LTS" branch is.
https://nodejs.org/en/about/previous-releases

Major Node.js versions enter Current release status for six months, which gives library authors time to add support for them. After six months, odd-numbered releases (9, 11, etc.) become unsupported, and even-numbered releases (10, 12, etc.) move to Active LTS status and are ready for general use. LTS release status is "long-term support", which typically guarantees that critical bugs will be fixed for a total of 30 months. Production applications should only use Active LTS or Maintenance LTS releases.

In my situation, there is a problem with Firebase App Hosting for Angular. Angular CLI has not supported Node.js v22 yet and in fact Node.js v22.2 breaks ng build. I have to explicitly lower the version of Angular for a successful build.

https://github.com/angular/angular-cli/issues/27674

I think buildpacks for Node.js should choose the "Active LTS" version to install by default. Users can set a version in several ways like "engines.node". The default installation version should be more generally effective.
Describe the solution you'd like
Use the "Active LTS" branch by default to install Node.js.
Describe alternatives you've considered
Additional context

I agree, this would be a better default.


[Bug]: Update on Input widget inside List shows that value on all pages of the corresponding row until browser refresh

Is there an existing issue for this?

[X] I have searched the existing issues

Description
On the List widget, if there is an Input widget, note the following the bugs

When you first bind the data to the list widget, the value in the first input widget will be blank until the browser is refreshed.

If you update the first input widget on the list, the display shows that updated value in all pages of the corresponding row until the page is refreshed. In the screenshot below, I change the name Jimmy on page 1 and the display reflects on all the other pages until the browser is refreshed. When serverside pagination is not used, this behaviour only occurs with the first item on the list

When using serverside pagination on list, the bug in step 2 occurs for every list item on the page, not just the first one

I only checked this with update query, this probably also happens on an insert query
Steps To Reproduce

Add a list widget to the canvas
Add an input widget
Bind data to the list and display a field on the input widget. You will notice the input on the first list item is blank until the page is refreshed
Change the value on the input widget on the first list item and run an update query
Navigate to the other pages in the list and note that it shows the same updated value on all the pages until the browser refresh
Check the same with serverside pagination on, you will note this behaviour on all the list items and not just on first list item on the current page

Public Sample App
https://app.appsmith.com/app/input-widget-bugs-inside-list/page1-62b14dc740b36d162478b0da
Version
v1.7.4

@Tooluloope @ashit-rath we should add this to out test cases, Maybe we are already covering this.

Not all has been covered.
I'll add the rest

Hey
I also have problem with list items overwriting.
It affects all lists with input widgets which have more than one page.
Looks like very common bundle (list + input).
https://user-images.githubusercontent.com/106737620/183688830-b5b4ba3e-af7e-462d-89eb-5bfc919f7406.mp4

@dtunikov sorry you're facing this issue. We're working on a solution for this here #15839

Another user reported this bug.

I have had problems with this also! 😄

Hey @filipesmedeiros thanks for reaching out, we have fixed this issue in a newer version of the list which we plan to launch in the next few weeks.

Can you please tell me your use-case @filipesmedeiros of using the input widget in the list? It will help us test our newer version better

Of course @dilippitchika. I am using it to build a dynamic multiple-filter form.
So basically the person uses a multi-select to select all filters they want to apply. Then, I use a list to create a list of inputs, with one item/input for each filter selected in the multi-select. I will then use the values of each input to filter an endpoint (sending it in the query params).
I actually wish there was a more native way of doing multi server-side filtering, but this will do for now! 😄


Overriding the name Parameter is taken into account at the class and instance level

Fixes https://github.com/holoviz/param/issues/644
Overriding the name String Parameter was possible at the class level but it actually had no effect. This PR changes that so it is taken into account. This is the new behavior:
import param

class P(param.Parameterized):
    name = param.String(default='other')

assert P.name == 'other'

p = P()

assert p.name == 'other'

Overriding is only allowed when name is set to be a String Parameter, as this is something that Param relies on internally for other things. A Parameterized class and its instances will have its name overriden if the default value of the name String Parameter is set to something that is not None or not an empty string.
I used this branch to run the test suites of Panel and HoloViews (both somewhat partially as I don't have all the dependencies installed locally), which helped me to refine it, as there are indeed a few cases of name being overriden by both Panel and HoloViews.

[ ] I still have a question to resolve. For the need of the implementation I have set a new internal attribute on Parameterized, whose value is set to True when that particular class overrides the value of name. I am not particularly happy with adding new attributes, even if internal, to Parameterized as there is still a chance they will interact with some user defined attribute. However, I played around with some different implementation and this is the only one I found that worked. I would like this variable name to be as "hidden" as possible, I have called it __renamed so that it's mangled, and it happens I can always retrieve it later on the class via the attribute name '_ParameterizedMetaclass__renamed'. I don't find that particularly simple to understand and clean, even if I think it does a pretty good job at making the attribute internal and pretty safe from a user perspective. I'm open to better ideas on naming this internal attribute!

To the reviewers. I suggest to have a close look at the tests that have been added and capture the new behavior. Notably a test I added just before opening this PR on main needed to be updated (test_name_instance_generated_class_name_reset).

I'm very much in support of allowing changes to the name parameter, but I wonder if there is a simpler way now that we have Undefined available. Can we make the name lookup bottom out in something that references the auto-generated name, and otherwise allow the user-specified name to be used (as it won't bottom out in that case)? I may not be understanding all the details involved, of course.

I'm very much in support of allowing changes to the name parameter, but I wonder if there is a simpler way now that we have Undefined available. Can we make the name lookup bottom out in something that references the auto-generated name, and otherwise allow the user-specified name to be used (as it won't bottom out in that case)? I may not be understanding all the details involved, of course.

I remember that when I implemented this I tried an approach in this vain, and had to give up (which doesn't mean it's not possible!). name isn't quite like any other Parameter on a Parameterized class, as I realized. The class is given a name that is the class name (what you get with the more regular type(cls).__name__.
https://github.com/holoviz/param/blob/aa484c4305c569a182289793307bd46ee078bf68/param/parameterized.py#L2751
And every instance of a Parameterized class gets by default a unique name value that is independent of any class hierarchy, while with Undefined what we're doing is respecting the class hierarchy.

If anything, I would like the default name to be something that is optional (set by a flag somewhere) so that we it could be deprecated, or at the very least disabled by people who do not wish to have this attribute (name is itself a common name in code that people may have other, important uses for).

I would also like Parameterized classes not to have a default name. However this is definitely not going to happen in this PR. Let's please open a new issue (no one dared opening this issue already?) and discuss that more, for post Param 2.0.


[Feature Request][Josué Aminadad González Blanco]

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I cannot create a project..
Describe the solution you'd like
A clear and concise description of what you want to happen.
e.g. If you want a new command to be added, what would it do?
Additional context
Add any other context or screenshots about the feature request here.

▶ play Sia [Titanium]

I'm looking forward to seeing you and help you out^_/


Add instructions about where to find cloudflare zone id

This adds some information about how to get the zone ID from Cloudflare, from the GUI, in this documentation's section

This almost feels like something which should be contributed to Cloudflare's docs rather than Wagtail's

This almost feels like something which should be contributed to Cloudflare's docs rather than Wagtail's

Wait, it is https://developers.cloudflare.com/fundamentals/get-started/basic-tasks/find-account-and-zone-ids/
Do you think it could still be relevant to include this link to Wagtail's documentation ?

Merging in, small docs change so no need for changelog entry.


Generated client code does not replace/set route parameters with 14.0.0-preview010

For a path template like /odata/QueueRetention({key}) generated client code does not replace {key} url route parameter. Used net80/dotnet-nswag.exe from https://github.com/RicoSuter/NSwag/releases/tag/v14.0.0-preview010 with net8 (which is the reason I'm upgrading to 14)
Generated client code snippet
var urlBuilder_ = new System.Text.StringBuilder();

urlBuilder_.Append("odata");
urlBuilder_.Append('/');
urlBuilder_.Append("QueueRetention({key})");

PrepareRequest(client_, request_, urlBuilder_);

var url_ = urlBuilder_.ToString();
request_.RequestUri = new System.Uri(url_, System.UriKind.RelativeOrAbsolute);

PrepareRequest(client_, request_, url_);

API definition snippet
    "/odata/QueueRetention({key})": {
        "delete": {
            "description": "",
            "operationId": "QueueRetention_Delete",
            "parameters": [
                {
                    "in": "path",
                    "name": "key",
                    "required": true,
                    "schema": {
                        "format": "int64",
                        "type": "integer"
                    },
                    "x-position": 1
                },
                {
                    "in": "header",
                    "name": "api-version",
                    "schema": {
                        "nullable": true,
                        "type": "string"
                    },
                    "x-position": 2
                }
            ],
            "responses": {
                "204": {
                    "description": ""
                }
            },
            "tags": [
                "QueueRetention"
            ]
        }
    }

test-swag.json
NswagClient.zip
Probably related to https://github.com/RicoSuter/NSwag/pull/4579 @paulomorgado

OOPS! I'll work on that tomorrow.
@RicoSuter, what's the best way to add a unit test for this?

I've added corrections to my draft PR: #4585.
Please, checkout if that solves the issue.

It did solve the issue. I'm inspecting a quite large 8 MB generated client from a 2.5 MB swagger file and haven't found any other issue yet.

Can confirm with latest RC3 the issue no longer reproduces

@RicoSuter @vas6ili I'm having a similar issue with route parameters with the stable release (v14.0.0) in a .NET 8 project.
I'm using NSwag.MSBuild to generate a CSharp client.
I have the following controller action:
[HttpGet("confirm/{batch}")]
public Task<MessageBoxConfirmBatchModel> ConfirmAsync(Guid batch) => _batchService.ConfirmAsync(batch);

OpenAPI definition:
"/api/message-box-batch/confirm/{batch}": {
  "get": {
    "tags": [
      "MessageBoxBatch"
    ],
    "parameters": [
      {
        "name": "OrganizationReference",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      {
        "name": "batch",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      }
    ],
    "responses": {
      "200": {
        "description": "Success",
        "content": {
          "text/plain": {
            "schema": {
              "$ref": "#/components/schemas/MessageBoxConfirmBatchModel"
            }
          },
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/MessageBoxConfirmBatchModel"
            }
          },
          "text/json": {
            "schema": {
              "$ref": "#/components/schemas/MessageBoxConfirmBatchModel"
            }
          }
        }
      },
      "204": {
        "description": "No Content"
      },
      "400": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ValidationProblemDetails"
            }
          }
        }
      },
      "500": {
        "description": "Internal Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        }
      }
    }
  }
}

The resulting client:
var urlBuilder_ = new System.Text.StringBuilder();
urlBuilder_.Append("api/message-box-batch/confirm/{batch}");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(batch, System.Globalization.CultureInfo.InvariantCulture)));

The request URI ends up being: "api/message-box-batch/confirm/{batch}462995b7-433b-4382-b4d7-5f84599cf732"
When the client is called the API returns a 400 Bad Request response due to the malformed URI.
Is there some workaround in terms of configuration? Or should I wait for the next minor/patch version?

Thanks for the concrete example, @bzwieratinnovadis.
Which tooling and version are you using?
I just tried that example on NSwagStudio v<IP_ADDRESS> and got this generated code:
var urlBuilder_ = new System.Text.StringBuilder();
if (!string.IsNullOrEmpty(BaseUrl)) urlBuilder_.Append(BaseUrl);
// Operation Path: "api/message-box-batch/confirm/{batch}"
urlBuilder_.Append("api/message-box-batch/confirm/");
urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(batch, System.Globalization.CultureInfo.InvariantCulture)));

Hi @bzwieratinnovadis, I am still getting this error in NSwag 14.1. Can you elaborate what you mean with "a template being used"? I do nothing special, just generate a C# client from a valid openapi spec. But the generated code is obviously broken, the generated url contains names of the placeholders instead of just the values.
                    if (offset != null)
                    {
                        urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(offset, System.Globalization.CultureInfo.InvariantCulture)));
                    }
                    else
                        if (urlBuilder_.Length > 0) urlBuilder_.Length--;
                    urlBuilder_.Append("{offset}");
                    urlBuilder_.Append('/');
                    if (limit != null)
                    {
                        urlBuilder_.Append(System.Uri.EscapeDataString(ConvertToString(limit, System.Globalization.CultureInfo.InvariantCulture)));
                    }
                    else
                        if (urlBuilder_.Length > 0) urlBuilder_.Length--;
                    urlBuilder_.Append("{limit}");

URL: .../0{offset}/1{limit}
Is there any fix or workaround available? I am surprised this issue is still open after almost one year.


Way to serialize/deserialize nested items and union type

Feature Request Type

[x] Core functionality
[ ] Alteration (enhancement/optimization) of existing feature(s)
[ ] New behavior

Description
I need to store/read data from a redis database (I guess it is a fairly common usecase), and therefore the objects need to be serialized to store them, and un-serialize to recover them later. But I can't find  really nice generic way to do that. For now I'm using
def serialize_dataclass(obj, kind):
    if not kind:
        kind = obj.__name__
    return json.dumps({**asdict(obj), "__typename": obj.__name__})

def deserialize_dataclass(json):
    ## TODO: not very secure, see later
    return globals()[json["__typename"]](**{k:v for k,v in data.items() if k != "__typename"})

but this is not great for multiple reasons:

the main issue is that I don't think this will work for nested types (e.g. a Person has an age, a name… and aCard, where card is itself another type)
secondly, if a type is a union (say type Card = Number | Figure), I need to store in the database which precise sub-type (eg. Figure) the original object is (this is fine), but when I restore it later, I use globals() to go from the name of the type to the type itself… but this is not very secure as I can't really be sure that the new type is indeed a subtype of the original one. For instance if the database was corrupted, I might read __typename = MaliciousFigure, and then this would create a MaliciousFigure instead of a Figure… For safety/debugging purposes, I'd prefer to raise an error if the type is not part of Card, but this seems not trivial to do (at least I just found get_origin and get_args for the typing library, but this is quite low level and require non-negligible of work to use to recover the precise sub-types for more complicated types)

Am I missing something obvious? How are people dealing with this? If there is no easy solution here, I would love to have it in the library by default.

Upvote & Fund

We're using Polar.sh so you can upvote and help fund this issue.
We receive the funding once the issue is completed & confirmed by you.
Thank you in advance for helping prioritize & fund our backlog.

Note that using pydantic, we can serialize/deserialize in a better way… but strawberry still does not really conversion from pydantic types for union types (and the recursive translation seems also quite annoying, if at all possible) https://github.com/strawberry-graphql/strawberry/issues/3641


Update Ui.png

Minor changes to documentation.
Skeleton for Weilin PPP

Codecov Report

Merging #195 (f7ee694) into master (dea6199) will increase coverage by 1.07%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master     #195      +/-   ##
============================================
+ Coverage     60.67%   61.74%   +1.07%
- Complexity      680      693      +13
============================================
  Files           124      123       -1
  Lines          2764     2766       +2
  Branches        264      266       +2
============================================
+ Hits           1677     1708      +31
+ Misses          992      964      -28
+ Partials         95       94       -1

Impacted Files
Coverage Δ

src/main/java/seedu/address/ui/TaskCard.java
0.00% <0.00%> (ø)

src/main/java/seedu/address/ui/MainWindow.java
0.00% <0.00%> (ø)

...rc/main/java/seedu/address/ui/StatusBarFooter.java

...u/address/logic/commands/task/EditTaskCommand.java
97.97% <0.00%> (+1.01%)
:arrow_up:

.../seedu/address/logic/parser/ArgumentTokenizer.java
93.10% <0.00%> (+3.44%)
:arrow_up:

...va/seedu/address/logic/parser/CommandArgument.java
92.59% <0.00%> (+3.70%)
:arrow_up:

...java/seedu/address/logic/commands/FindCommand.java
88.23% <0.00%> (+5.88%)
:arrow_up:

...u/address/logic/commands/task/FindTaskCommand.java
82.35% <0.00%> (+6.35%)
:arrow_up:

...ress/model/task/TaskContainsKeywordsPredicate.java
85.71% <0.00%> (+7.14%)
:arrow_up:

...in/java/seedu/address/logic/parser/ParserUtil.java
98.03% <0.00%> (+9.80%)
:arrow_up:

... and 3 more

Continue to review full report at Codecov.

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


Feature/output

You can specify a prefix and override the output file for each emitter like so:
./thorin bla.thorin -e ll -e h -e md -o foo ---output-ll bla.ll

This will generate:

bar.ll
foo.h
foo.md

In addition you can specify - as output file to dump to cout:
./thorin bla.thorin -e thorin --output-thorin -

This feature is used to add an _autogen.h suffix to the auto-generated dialect headers.


Minor warnings in Keil pack v1.1.0

In my current project using the Keil pack version of the MSDK drivers (v1.1.0), Keil's compiler throws two minor warnings from the driver code:

A quick scan of the code currently in the repo suggests that the first warning has already been fixed here on GitHub, but the second warning would still be raised from the MXC_SYS_RTCClockDisable declaration in mxc_sys.h across all targets.
Very low priority but fixing this would be a nice QoL for a future pack release

@Jacob-Scheiffler @sihyung-maxim @ftariqAnalogTx hopefully we cleared this in recent testing


Unity package is out of date

The WireframeRenderer.cs in the unity package doesn't allow for wireframes on normal MeshRenderers

@ted537 Any luck with the issues? I am having similar problem I think..


fix: ensure string before checking for blank

The code crashes if value is an object.

https://jsfiddle.net/hza6d3ge/

This solution will care about Dates and Object? I think it is not. We can make a JSON.stringify if it is an object

The code crashes if value is an object.

https://jsfiddle.net/hza6d3ge/

This solution will care about Dates and Object? I think it is not. We can make a JSON.stringify if it is an object

ping

ping

Is there any way to help moving this forward?

Is there any way to help moving this forward?

I am closing this PR as @krisk has already taken the change as part of https://github.com/krisk/Fuse/commit/1de1dffa3f16992e21d817370e2b5d9611d3ad6d.
Thanks @krisk
cc @johnnynomad @davidkhierl @joaobibiano


Layout homepage

Finished mock-up of homepage. Subject to change/redesign depending on team. But needed as a "dependency" to navigate and to share coloring scheme.

Re-approving, since my approval had gotten wiped out by (my) additional changes to the branch.

Merging up to the development branch per ok from @dyohn.


when i convert a docx to html ,the format is wrong

just use the demo WmlToHtmlConverter01 project
this is the docx

this is the html converted

i find the css width  is to samll ,only 0.5in

this is the docx file
010111.docx
so how can i do the right work!

Closing all issues as this repo is being archived and will no longer be maintained by Microsoft. The project is licensed for continued use and development by forking to your own repo.


The compilation fails / linking fails if we use submodules in CMake subprojects (add_subdirectory).

Closes #5

Thank you for your PR. I haven't used it in subdirectories (it is just toy project). There are other issues with subdirectories, e.g. modules naming conflict.

Thank you for merging this. It is a nice work to get everyone started with c++20. As a workaround I use a unique prefix for each module in order to avoid collisions.
Whenever CMake will add native support I am going to migrate to it but for the time being this project is extremely useful. Thank you for your work.

This was just toy project to learn how modules work and maybe adopt them in one other project. I found the biggest issue with modules is dependency detection which is hard to be done without compiler support (e.g. build2 parse cpp files). So I decided to wait for official CMake support (https://gitlab.kitware.com/cmake/cmake/-/issues/18355)... 2 years and still waiting :D


Get AppStore & PlayStore icons/links working properly

@vikjoshi - we require a design for icons to complete this fully.
Once that is done we can update the icons here.
Also appleStore should be appStore in the form - it's not updating B/E otherwise.

Affects also post page - see #1038

@vikjoshi @manualzuru @Yu-Alexa-Zhao  Or maybe we should use official badges instead???
They wouldn't look good inline with other social icons but maybe on another line?
https://lh3.googleusercontent.com/cjsqrWQKJQp9RFO7-hJ9AfpKzbUb_Y84vXfjlP0iRHBvladwAfXih984olktDhPnFqyZ0nu9A5jvFwOEQPXzv7hr3ce3QVsLN8kQ2Ao=s0
https://developer.apple.com/app-store/marketing/guidelines/images/badge-example-preferred.png

As a user,
When, I have entered the Google Playstore or Apple Playstore link in the organization profile info,
Then I should see the Google Playstore icon or Apple Playstore icon on my Organization profile.
Google Playstore icon: https://zpl.io/beRoykP
Apple Playstore icon: https://zpl.io/brwWGMD
@joshmorel @idjevm


Update dokka and GHA to compile the project correctly

Update dokka and GHA to compile the project correctly

@malachid Please take a look when you get a chance


NPM script 'update-api-wiki' added

Coverage decreased (-0.8%) to 32.427% when pulling 8a7d1218650a3ad43d88cdbda24dae5a72a732ea on api_ref_gen into 4ba8eef5ccd43622f9bb48a6876bc941ac01cfcc on master.

Coverage decreased (-0.8%) to 32.427% when pulling 8a7d1218650a3ad43d88cdbda24dae5a72a732ea on api_ref_gen into 4ba8eef5ccd43622f9bb48a6876bc941ac01cfcc on master.

Coverage decreased (-0.8%) to 32.425% when pulling 6970eb0a5c633a685004d0abd70c17f7b06c9062 on api_ref_gen into 4ba8eef5ccd43622f9bb48a6876bc941ac01cfcc on master.


ZodError[] doesn't contain error from refine() or superRefine()

Hi there ✌🏾,
Basically, I have set up my schema for products with a few custom error messages and a superRefine() to throw an error if the comparedAt price is lower than the actual price. I use safeParse() to do the validation and get the errors.
Everything is working fine until I have 2 errors not coming from the superRefine() AND the one coming from the superRefine().
In that case, the error coming from superRefine() won't show up in the ZodError[]. I have tried the refine() and superRefine() ways, both lead to the same outcome.
Take a look at the logging of the errors (don't pay attention to the double rendering):

1st step: I have only 2 errors, both not coming from superRefine()
2nd step: I add another not-from superRefine() error to make sure that the ZodError[] is actually able to contain more than 2 errors.
3rd step: I add the superRefine() error. I had to solve the price error to make it higher than the comparedAt price. That's why the price error isn't present anymore, but the comparedAt one should be there.
4th step: I solve the name error and only then the superRefine() error shows up.
5th step: I add the name error again and the superRefine() one disappears from the ZodError[] whereas it is still invalid.
Here's my schema:
export const ZodProduct = z
  .object({
    name: z.string({required_error: 'Please, set a name.'}).min(1),
    images: z.object({
      mainImage: z.string().min(1, 'Please, set a main image.'),
      secondaryImages: z.array(z.string().min(1)).optional(),
    }),
    price: z
      .number({required_error: 'Please, set a price.'})
      .min(0, 'The price cannot be negative.'),
    comparedAt: z.number().min(0, 'The compared price cannot be negative.'),
    weight: z.number().min(0),
    width: z.number().min(0),
    height: z.number().min(0),
    length: z.number().min(0),
    sku: z.string().min(1),
  })
  .partial({
    comparedAt: true,
    weight: true,
    width: true,
    height: true,
    length: true,
    sku: true,
  })
  .superRefine((data, ctx) => {
    if (data.comparedAt && data.comparedAt <= data.price) {
      ctx.addIssue({
        type: 'number',
        code: 'too_small',
        minimum: data.price,
        inclusive: false,
        path: ['comparedAt'],
        message: 'The compared price should be higher than the actual one.',
      })
    }
  })

I can't seem to understand what the problem is. Please explain what is not working correctly and produce test data that causes the problem.

Please send a full reproducible code example.

Please send a full reproducible code example.

Alright. Take this schema:
export const ZodProduct = z
  .object({
    name: z.string({required_error: 'Please, set a name.'}).min(1),
    images: z.object({
      mainImage: z.string().min(1, 'Please, set a main image.'),
      secondaryImages: z.array(z.string().min(1)).optional(),
    }),
    price: z
      .number({required_error: 'Please, set a price.'})
      .min(0, 'The price cannot be negative.'),
    comparedAt: z.number().min(0, 'The compared price cannot be negative.'),
    weight: z.number().min(0),
    width: z.number().min(0),
    height: z.number().min(0),
    length: z.number().min(0),
    sku: z.string().min(1),
  })
  .partial({
    comparedAt: true,
    weight: true,
    width: true,
    height: true,
    length: true,
    sku: true,
  })
  .superRefine((data, ctx) => {
    if (data.comparedAt && data.comparedAt <= data.price) {
      ctx.addIssue({
        type: 'number',
        code: 'too_small',
        minimum: data.price,
        inclusive: false,
        path: ['comparedAt'],
        message: 'The compared price should be higher than the actual one.',
      })
    }
  })

Now safeParse() this data:
const data = {
  name: undefined,
  images: {
    mainImage: undefined,
    secondaryImages: undefined,
  },
  price: 42,
  comparedAt: 33,
  weigth: undefined,
  width: undefined,
  heigth: undefined,
  length: undefined,
  sku: undefined,
}

This should trigger 3 errors: on the name, mainImage and comparedAt fields.
Yet, the ZodError[] won't include the comparedAt field's error.
Set a name (non-empty string) and the safeParse() will include the comparedAt field's error.

superRefine, transform, and refine, don't run if the prior schema fails. I'm pretty sure this is intended behavior.
Here is a much more simplified example to better illustrate the issue:
const schema = z.object( { foo: z.string() } )
    .superRefine( () => { console.log( 'superRefine' ) } )

console.log( 'test1' )
schema.safeParse( {} ) // doesn't run superRefine because the z.object fails

console.log()
console.log( 'test2' )
schema.safeParse( { foo: undefined } ) // doesn't run superRefine because the z.object fails

console.log()
console.log( 'test3' )
schema.safeParse( { foo: 'bar' } ) // runs superRefine because the z.object passes

/*
console:
test1

test2

test3
superRefine
*/

If you found my answer satisfactory, please consider supporting me. Even a small amount is greatly appreciated. Thanks friend! 🙏
https://github.com/sponsors/JacobWeisenburger


Handling Defaults

The current implementation ignores default values. I would like to suggest the following changes:

Add const for value types for their default value, example for a named integer:

var DefaultPageSize = int32(20)

Add a factory function for Structs to set default values, example for a struct holding a named integer:

func NewPagination() *Pagination {
  return &Pagination{
    PageSize: DefaultPageSize
  }
}

Add UnmarshalJSON and UnmarshalYAML methods to set default values before deserialization happens. This is required to properly handle deserialization of slices and maps. The limitations is other Unmarshallers would not properly handle default values, but  with JSON and YAML it should cover most of the use cases.

User code would need to use the factory function:
func MyRestEndpoint(input InPutRequest) {
  pagination := api.NewPagination()
  if err = json.Unmarshal(input.Content, pagination); err != nil {
    ...
  }

  if pagination.PageSize == api.DefaultPageSize {
    ...
  }
}

I like this idea

I'm working on PR for this.


Desktop Notifications not working with Rocket.Chat+ 2.8

@monty241 commented on Fri Aug 18 2017
I've configured desktop notifications on Windows 10, Rocket.Chat+ 2.8.0, 1 instance, deployment: snap, db replicaset: ?, node: ?.
The test desktop notifications button works and shows in the bottom right corner a popup.
However, no other notifications appear. Rooms etc all default from account.
Reproduction:

Enable in account desktop notifications for messages.
Press test. Works.
Have someone send something. Nothing appears.

Expectation:
On step 3 a popup appears.

@dkoryavov commented on Thu Aug 24 2017
+1
server: Rocket.Chat 0.58.1
client: web or Rocket.Chat.Electron 2.8
Desktop notifications does not work at all . On the previous version (0.57.3) desktop notifications worked fine.

@monty241, @dkoryavov Can you check what your notification preferences are in My Account -> Preferences -> Messages -> Show Desktop Notifications For or the preference in the admin page

I tried to use 'Mentions' and 'All messages'. It does not work anyway (Windows 7 + Rocket.Chat Electron 2.9).

See picture. When I press "TEST" (2), (3) appears. Version 2.9.0.

I've got the same issue on MacOS, same RC version.
Note that in my case, the "All messages" notifications doesn't work (no sounds or alert when someone post), but I do get notifications when someone mention me.

FYI, server was updated to 0.59.1 today. Same issue (web or desktop 2.9)

Server was updated to 0.59.1 today. Same issue (web or desktop 2.9)
I found this issue to be related to this setting. Not sure the description is applied correctly ?

I get no notifactions at all.
RC-Server Version: 0.59.3
Client-Version: 2.10.5
My OS: Ubuntu 16.04
The Button "Test Desktop Notifications" does nothing...

Same here!
RC-Server Version: 0.59.3
Client-Version: 2.10.5
My OS: Windows 7, Windwos 10.

same issue.
RC-Server Version: 0.64.1
Client-Version: 2.10.5
My OS: macOS 10.13.4

No notifications at all in 2.11.0 and Windows 10.

I have a similar issue.  Windows 10 notifications are ON.  And generally, the notifications work, however, they are not persistent.  Meaning, the notification goes away, and the user, who is not always at their desk, has no idea they have gotten a message until they actually click on the Rocket.Chat window.  On a Mac, using the Rocket.Chat application, the message indicator is shown on the dock icon.  There is NO persistent notification in the Windows version of the application, that I can see or have seen or am aware of.  Is this intentional?  IS there a setting that I am missing?  Our users are completely missing messages because of this.

@sadkins76 This is a consequence of using the Windows 10 notification system.  There does not appear to be a way to configure the TTL of a notification in Windows 10 (I checked the settings in the GUI, at least).  The alternatives are to use a custom notification system, or accept that Windows 10 only shows the notifications for ~5 seconds.  But overall, it seems best to use the OS notifications as that's playing nice.  Perhaps a server option to use custom notifications rather than OS ones would be in order?

@sadkins76 Huh.  My window already flashes without that setting.  I turned it on and saw no difference in how RocketChat works.

All of my machines flash for 5 seconds and then stop.  I CAN change that setting to 5 mins, but there are quite a few times where the user will be away from their desk longer than that, so its irrelevant.  We did not have this issue with Pidgin when we used it.  And we don't have this issue with our Mac machines.

Mine also flashes for 5 seconds and stops, but it remains highlighted until you click on it.  This is without the audio setting.

We've had similar issues, but it turned out to be improper configuration. I logged in using admin account and went to Administration > Accounts > Default User Preferences.  In my case "Notification Duration" was set to 0, so I changed it to 5. I think that by default desktop notifications only work if you get mentioned by someone in chat window, so you might want to change that too. Please note that each channel might have different notification settings.
As a final note - CTRL+R seemed necessary in case of few of my colleagues for the changes to take effect.

I'm closing this issue since the original reported bug was fixed.
For issues regarding notification handling in Windows, please follow the discussion at #775.


docker: Move to libadwaita 1.4

This should unblock https://github.com/gtk-rs/gtk4-rs/pull/1529

Nooo i forgot to squash before merging :'(


Refactor release.yml

Before submitting

[ ] Was this discussed/approved via a Github issue? (no need for typos, doc improvements)
[ ] Did you read the contributor guideline?
[ ] Did you make sure to update the docs?
[ ] Did you write any new necessary tests?

What does this PR do?
Fixes # (issue).
PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

successful test run: https://github.com/facebookresearch/fairseq/actions/runs/2476987602


Install-CloudLAPS_SchTask.ps1 OS language dependency

Hello,
I deployed Install-CloudLAPS_SchTask.ps1 to Windows 10 devices (different OS languages) through Intune; CloudLAPS was deployed correctly to all targeted devices, however for some devices the Status column returns Failed.
Looking at IntuneManagementExtension.log on these clients I found this error:
[PowerShell] Fail, the details are {"Version":1,"SigningCode":649,"SigningMsg":"(Success) AccountId:cea65ad1-a3f8-45a2-ae0d-56f2ebfa2f75,PolicyId:e9bc75ec-b503-4d3f-8ed6-d3bdf5750708,Type:1,Enforce: Audit. OSVersion:10.0.19044,AgentVersion:1.52.256.0. ","ExecutionMsg":"Install-CloudLAPSClient : Failed to Set ACL on Cloud LAPS Client Script. Error message: Ausnahme beim Aufrufen von \r\n\"RemoveAccessRuleAll\" mit 1 Argument(en):  \"Manche oder alle Identitätsverweise konnten nicht übersetzt werden.\"\r\nIn C:\\Program Files (x86)\\Microsoft Intune Management \r\nExtension\\Policies\\Scripts\\879ed8b6-166a-419c-a7e1-ccae81b43443_e9bc75ec-b503-4d3f-8ed6-d3bdf5750708.ps1:622 Zeichen:1\r\n+ Install-CloudLAPSClient\r\n+ ~~~~~~~~~~~~~~~~~~~~~~~\r\n    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException\r\n    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Install-CloudLAPSClient\r\n \r\n\r\n"}
It seems to fail while executing the RemoveAccessRuleAll:
593 - $ACL2 = Get-ACL -Path $CloudLAPSClientScriptPath
594 - $ACE_Remove = New-Object system.security.AccessControl.FileSystemAccessRule("Users", "Read", "Allow")
595 - $ACL2.RemoveAccessRuleAll($ACE_Remove).
I suppose the problem is related to FileSystemAccessRule; The Users name (I assume it is referred to BUILTIN\Users) depends on OS language. So converting it to a language neutral:
593 - $ACL2 = Get-ACL -Path $CloudLAPSClientScriptPath
594 - $BuiltinUsers = New-Object System.Security.Principal.SecurityIdentifier -ArgumentList @([System.Security.Principal.WellKnownSidType]::BuiltinUsersSid, $null)
595 - $ACE_Remove = New-Object system.security.AccessControl.FileSystemAccessRule($BuiltinUsers, "Read", "Allow")
596 - $ACL2.RemoveAccessRuleAll($ACE_Remove)
References:

language neutral FileSystemAccessRule (stackoverflow)
WellKnownSidType Enum (Microsoft Docs)

What about ?

Hi Luca, thanks for the feedback. I agree and will make the change you outlined. Thanks :)

Commits on Apr 19, 2022
Version 1.0.1 - (2022-04-19)
Added Universal Language support for enumerating "USERS" when modifying the ACL of the script path. Thanks lucafabbri365

Hi Luca, thanks for the feedback. I agree and will make the change you outlined. Thanks :)

You are welcome @byteben !!!


[SPARK-37802][SQL] Composite field name should work with Aggregate push down

What changes were proposed in this pull request?
Currently, composite filed name such as dept id doesn't work with aggregate push down
sql("SELECT COUNT(`dept id`) FROM h2.test.dept")
org.apache.spark.sql.catalyst.parser.ParseException:
extraneous input 'id' expecting <EOF>(line 1, pos 5)

== SQL ==
dept id
-----^^^

	at org.apache.spark.sql.catalyst.parser.ParseException.withCommand(ParseDriver.scala:271)
	at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parse(ParseDriver.scala:132)
	at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parseMultipartIdentifier(ParseDriver.scala:63)
	at org.apache.spark.sql.connector.expressions.LogicalExpressions$.parseReference(expressions.scala:39)
	at org.apache.spark.sql.connector.expressions.FieldReference$.apply(expressions.scala:365)
	at org.apache.spark.sql.execution.datasources.DataSourceStrategy$.translateAggregate(DataSourceStrategy.scala:717)
	at org.apache.spark.sql.execution.datasources.v2.PushDownUtils$.$anonfun$pushAggregates$1(PushDownUtils.scala:125)
	at scala.collection.immutable.List.flatMap(List.scala:366)
	at org.apache.spark.sql.execution.datasources.v2.PushDownUtils$.pushAggregates(PushDownUtils.scala:125)

This PR fixes the problem.
Why are the changes needed?
bug fixing
Does this PR introduce any user-facing change?
No
How was this patch tested?
New test

@cloud-fan Could you please take a look? Thanks!

and Chinese filed name has same problem
== SQL ==
缺陷编号
^^^
at org.apache.spark.sql.catalyst.parser.ParseException.withCommand(ParseDriver.scala:265)
at org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parse(ParseDriver.scala:126)

Should be good now @Dintion

@huaxingao Could you wait https://github.com/apache/spark/pull/35101 merged and update with FieldReference.column(name) ?

I htink the code at org.apache.spark.sql.execution.datasources.v2.PushDownUtils#pushAggregates#columnAsString also exist same problem

@huaxingao  I htink the code at org.apache.spark.sql.execution.datasources.v2.PushDownUtils#pushAggregates#columnAsString also exist same problem

thanks, merging to master!

Thank you all!


chore: bdd-sbhg-1581934936 to 0.0.1

chore: Promote bdd-sbhg-1581934936 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Add serilog support

As mentioned in the last live about storage providers for this project, the solution should have a serilog support

Sorry, I haven't undestood, can you explain better what do you mean? What kind of logging do you want to add?

Sorry, I haven't undestood, can you explain better what do you mean? What kind of logging do you want to add?

the Serilog logging instead of the default one used by asp.net by default

OK, but what logging destination do you want to use?

I can't decide between sqlite or sql server... Also I don't know if it's possible or useless realize a Serilog support


Inheritance of templates in Helm

Hello,
I have a more generic kind of question. First I will try to describe what I'm trying to achieve
Context
Lately I viewed some presentation about Radius CNCF incubating project. There was this cool concept of implementing of K8s application graphs of dependencies. So I thought to myself that I will test it by adding k8s annotations to deployments like dependsOn and dependsOnPort for every component of the system and then use kubernetes client and graphviz to paint a graph of dependencies.
Problem
So I have for example bitnami/posgres and bitnami/redis and I'm not seeing an easy way to to extend their manifests without reimplementing the charts from scratch. What would be nice in Helm and I think is missing is some kind of inheritance. If I got documentation right then there is this concept of parent and subchart but it only relates to overriding values not the manifest structure. So it would be cool to reuse already defined helm charts, somehow inheriting the manifests and then "injecting" your values in custom places. Like for my case I would take manifests as is and in extending chart I would add couple of annotations on top.
Proposal
I thought if there was a way to define parentChart and parentChartVersion in chart you would import all the yamls. Then you would have overrides directory (similar to templates) and there you would put your overrides. So for example
meta:
    overridesFor: DEPLOYMENTS | PODS | SERVICES
extends:
   meta:
      annotations:
         annotation1: "annotationValue1"
         annotation2: "annotationValue2"

Discussion
The above was only a proposition. I just wanted to initiate the discussion around this particular topic. On the other hand maybe I didn't get everything and maybe some more experienced person will show me how to achieve the above with what already is.

If I understand your proposal here, you would like to have helm patch k8s resources of a certain type with annotations, right?
Regardless of how such a feature were to be added to helm, we would still lack a way to annotate resources created by operators. Annotating such resources can only be done by chart authors.

Yes that's exactly the thing. It seems silly to reimplement 10+ manifests for such simple change, apart from this -  from experience I know that helm authors not always get all the things you want them.
This is hypothetical example only, I don't need it for commercial purposes.
It's just that I know that docker (and other container runtimes) used the overlayfs and layered architecture to much of the success. So here is the same thing basically the manifest/patch on top wins in merged view. I think it would be cool to see something like this in couple of years (who knows).
But on the flipside I suppose that it would be a bit of a hell to implement regarding how k8s library is designed. But maybe not - you tell me would it be hard? (in theory). I was thinking of making my feet wet and maybe scribbling some kind of poc on my fork. But at least I must know that the idea is not going straight to trash, since why bother.
On the other hand maybe you have an other idea how to patch that other way (semi-automatically)? Maybe with Kustomize help?


Update Target Frameworks

Currently in the target frameworks of the project the following are listed:
netstandard2.0;net461;net5.0;net6.0
i would consider changing it a bit for the following reasons:
net461 is out of support since beginning of 2022 therefor atleast use net462 which is still officialy supported.
net5.0 is out of support;
net6.0 runs out of support this year but is okay for now;
netstandard2.0 is kind of tricky but as its currently supported you would probably keep supporting it.
net framework support:
https://learn.microsoft.com/de-de/lifecycle/products/microsoft-net-framework
.net support:
https://dotnet.microsoft.com/en-us/platform/support/policy
.net standard infos:
https://learn.microsoft.com/en-us/dotnet/standard
https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-1-0#net-5-and-net-standard
I would like to change supported frameworks to:
netstandard2.0;net462;net6.0;net8.0

Sound reasoable

was solved with the merge of the pull request


Installation with OmniSD fails

Hi there,
I know I'm supposed to install the store app manually, which works fine. But for convenience, it would be nice to be able to install it with OmniSD as well, which only shows "Installation error: InvalidPrivilegeLevel" when trying to install. Is this because OmniSD can't install "certified" apps, or could this be fixed easily?

is your device rooted ?

I use the temporary adb root with wallace lite when I need it. Otherwise, no.

to test
can you pls try to install this app with OmniSD: https://github.com/strukturart/osm-map/tree/master/build
it is also a "certified" app.

Same issue here. Tried installing with bHackers Store and OmniSD, didn't work for any.

I think it will be difficult to find a solution for this as I use the following api to install apps:
https://developer.mozilla.org/en-US/docs/Archive/Marketplace/API/App_installation_and_management_APIs#Management_API

I see. What kind of root is expected to be present in order to install certified apps via bHackers Store or OmniSD? Is there something like SuperSU for KaiOS to manage apps with root access?

I think with wallace lite + adb shell do you have  temporarily  full access to your device

I have used this method to gain root access before. However, as far as I understood you previous posts, I thought I would have to give bHackers store and OmniSD root access to my phone, since they require privileged permissions. Does installing osm-map from bHackers store work on your device?

yes it works on my device, but it is rooted. the store uses the same method of installing apps as omnsd. i have adapted osm-app: "type": "privileged" now you should be able to install without rooting your device. there is a second map app in the store: plastic map with this you can also use maps offline.
if you want to write apps yourself i would recommend rooting your device, then you have more options.

If you consider having used wallace lite before to open an adb root shell as "being rooted", then my device is rooted, too. I just don't see how that affects the app and this issue, since it doesn't give any app any additional privileges, afaik.

what happens when you try to install osm-app with omnisd ?

As stated above, I get the same error in OmniSD. Just tried the new OSM app and plastic map, both installations fail with the same error, no matter if I try in OmniSD or bHackers store

unfortunately I can't help you, have you already asked here ?
https://discord.gg/TqTMkD

omnisd didn't work for me, too. I guess you need to change a value in the permission db for omnisd being able to install apps?
I hven't tried it yet, but that manual gave me the idea that it could be the permission tables: https://sites.google.com/view/bananahackers/install-omnisd/omnisd-manual-install
Or maybe do I have to use omnisd to put my device in developer mode for it to work?

Carefully re-reading the OmnisSD-instructions, this might be what I forgot: If everything is fine, press # when the utility is run and confirm the prompt to run the privileged factory reset.
Will try as soon as I'm home. Maybe that fixes the error in the store app as well.

Enabling the Developer Menu with Wallace Toolbox without a factory reset did the trick for me


Tag cleanup

Artifacting separated CONFIG/INSTALL tasks.
Kibana dashboards tasks are not marked either and run.
This causes issues during artifacting, which runs only the install
tasks.

recheck

recheck_continuous-integration_travis-ci_pr

gate wedged, opening and closing.

recheck_cit_ceph
recheck_cit_swift
recheck_cit_xenial

recheck_cit_ceph


Fix GitHub Actions script

Use pre-baked project checks to solve existing GH action's use of
deprecated env setting method.
Signed-off-by: Phil Estes<EMAIL_ADDRESS>

Need containerd/project-checks#1 to pass CI


Addition for the Urdu translation.

Urdu version for the first contributions readme file.

@Shhzdmrz, It's easy to check how it looks on GitHub.  You can see how it looks at
https://github.com/Shhzdmrz/first-contributions/blob/urdu-translation/translations/README.ur.md
Few things I noticed quickly:

We removed listing all languages in the tutorial and moved it to a separate page. Now there's only a link to that in readme. Let's follow this.
You'll have to add Urdu in to that index too. https://github.com/Roshanjossey/first-contributions/blob/master/LANGUAGES.md
Images are not rendered. This is because relative url for images are not correct. Check URL in other translations.

@Shhzdmrz, I see 55 files changed in this pull request. Most of which are not relevant for this pull request. Can you fix that?

@Roshanjossey  yeah sure, sorry I was fetching the latest master branch to update my branch, I think I did something wrong.

@Roshanjossey I am unable to remove file from this commit . Please could you please help to remove them or totally remove that commit?
I have updated LANGUAGES.md and translations\README.ur.md file and also tested.

@Shhzdmrz, check out our revert tutorial https://github.com/Roshanjossey/first-contributions/blob/master/additional-material/reverting-a-commit.md
You can also help improve that tutorial if that doesn't help you

@Roshanjossey tried your revert tutorial but it did not helped but this tutorial does.

@Shhzdmrz, I'm sorry this is taking so much time. Thank you for bearing with us.
Just one more change and we can merge this

@Shhzdmrz, Thank you so much for your contribution. merging this

@Roshanjossey  thank you for giving me opportunity to contribute to this repo. I learned alot 👍 and all credit goes to you and your repo.

@Shhzdmrz, I've no idea why GitHub is behaving in such weird way.
I'm not getting notifications now.
Have I invited you to our slack team yet?
You can join the team by going to https://firstcontributions.herokuapp.com

@Roshanjossey joined.
Yes same behavior on my side too.


Ansible version

Coverage remained the same at 76.686% when pulling 1df41fab6a780769f2e4bf3fb8fe911c7886efba on ansible_version into 01d6ee09ee74a70509235b4007921a9523e8b5b3 on master.

Coverage remained the same at 76.686% when pulling 1df41fab6a780769f2e4bf3fb8fe911c7886efba on ansible_version into 01d6ee09ee74a70509235b4007921a9523e8b5b3 on master.


Using Docker

How to use Docker in Python.

I am not sure what you mean with "use Docker in Python". I guess your question is related to the wikiextractor scripts. You can try to install wikiextracotr pip install wikiextractor) and run the preprocess.py manually. I created the Docker image because it was hard to get wikiextractor set up correctly (and reproducable). If you run in trouble I unfortunately can't help because that's why I created the docker image.
https://github.com/floleuerer/fastai_ulmfit/blob/main/we/app/preprocess.py
Florian


IdwInterpolation documentation

Looking at IdwInterpolation the 'Command-line Interface' example suggests the filename and directory should be split and provided as:
--wd="/path/to/data/" -i=points.shp
However, I was only able to get the following to work
-i=path/to/data/points.shp
Further, I was unable to get input data as a geopackage to work (only shapefiles worked for me).
v2.0.0 Windows 10

I just tested this using the --wd flag to a test directory on my machine and the -i to the file itself and it ran with no issues. Can you post a screenshot of your terminal when you preform the call? This is my call.
./whitebox_tools -r=IDWInterpolation --wd="/Users/Anthony/Documents/YieldTesting/" -i=FieldName_Corn_raw.shp --field=Yield -o=testing.tif --weight=2.0 --radius=4.0 --min_points=3 --cell_size=30.0

Welcome to IdwInterpolation *
Powered by WhiteboxTools    *
www.whiteboxgeo.com         *

Reading data...
Creating search structure: 0%
Creating search structure: 1%
Creating search structure: 2%
Creating search structure: 3%
Creating search structure: 4%
Creating search structure: 5%
Creating search structure: 6%
Creating search structure: 7%
Creating search structure: 8%
Creating search structure: 9%
Creating search structure: 10%
Creating search structure: 11%
Creating search structure: 12%
Creating search structure: 13%
Creating search structure: 14%
Creating search structure: 15%
Creating search structure: 16%
Creating search structure: 17%
Creating search structure: 18%
Creating search structure: 19%
Creating search structure: 20%
Creating search structure: 21%
Creating search structure: 22%
Creating search structure: 23%
Creating search structure: 24%
Creating search structure: 25%
Creating search structure: 26%
Creating search structure: 27%
Creating search structure: 28%
Creating search structure: 29%
Creating search structure: 30%
Creating search structure: 31%
Creating search structure: 32%
Creating search structure: 33%
Creating search structure: 34%
Creating search structure: 35%
Creating search structure: 36%
Creating search structure: 37%
Creating search structure: 38%
Creating search structure: 39%
Creating search structure: 40%
Creating search structure: 41%
Creating search structure: 42%
Creating search structure: 43%
Creating search structure: 44%
Creating search structure: 45%
Creating search structure: 46%
Creating search structure: 47%
Creating search structure: 48%
Creating search structure: 49%
Creating search structure: 50%
Creating search structure: 51%
Creating search structure: 52%
Creating search structure: 53%
Creating search structure: 54%
Creating search structure: 55%
Creating search structure: 56%
Creating search structure: 57%
Creating search structure: 58%
Creating search structure: 59%
Creating search structure: 60%
Creating search structure: 61%
Creating search structure: 62%
Creating search structure: 63%
Creating search structure: 64%
Creating search structure: 65%
Creating search structure: 66%
Creating search structure: 67%
Creating search structure: 68%
Creating search structure: 69%
Creating search structure: 70%
Creating search structure: 71%
Creating search structure: 72%
Creating search structure: 73%
Creating search structure: 74%
Creating search structure: 75%
Creating search structure: 76%
Creating search structure: 77%
Creating search structure: 78%
Creating search structure: 79%
Creating search structure: 80%
Creating search structure: 81%
Creating search structure: 82%
Creating search structure: 83%
Creating search structure: 84%
Creating search structure: 85%
Creating search structure: 86%
Creating search structure: 87%
Creating search structure: 88%
Creating search structure: 89%
Creating search structure: 90%
Creating search structure: 91%
Creating search structure: 92%
Creating search structure: 93%
Creating search structure: 94%
Creating search structure: 95%
Creating search structure: 96%
Creating search structure: 97%
Creating search structure: 98%
Creating search structure: 99%
Creating search structure: 100%
Progress: 0%
Progress: 4%
Progress: 8%
Progress: 13%
Progress: 17%
Progress: 21%
Progress: 26%
Progress: 30%
Progress: 34%
Progress: 39%
Progress: 43%
Progress: 47%
Progress: 52%
Progress: 56%
Progress: 60%
Progress: 65%
Progress: 69%
Progress: 73%
Progress: 78%
Progress: 82%
Progress: 86%
Progress: 91%
Progress: 95%
Progress: 100%
Saving data...
Output file written
Elapsed Time (excluding I/O): 0.104s
At this time WhiteboxTools does not support the geopackage file format. See more about the WBT supported formats here (https://www.whiteboxgeo.com/manual/wbt_book/supported_formats.html).

OK, maybe my syntax is bad on the --wd. See below. Are these paths supposed to be relative?
Also, it would be nice if the error message mentioned WHICH filepath is bad (as there are ~5 in the call)
Regardless, I'm happy it seems to be working with just the -i flag. What would be very nice is if this worked geopackages.
Thank you all for the awesome tool and the support.
C:\LS\06_SOFT\whitebox\bats>C:\LS\06_SOFT\whitebox\v2.0.0\whitebox_tools.exe -r=IdwInterpolation -v --field=hvals --weight=2.0 --base=C:\LS\09_REPOS\03_TOOLS\RICorDE\tests\data\fred01\test_tag_0326_dem.tif --radius=4.0 --min_points=3 -o="C:\LS\10_OUT\ricorde\outs\dev\idw3.tif" -i=beach2.shp --wd="\LS\10_OUT\ricorde\outs\dev\scratch\" --max_procs=1  1>dump.txt

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 3, kind: NotFound, message: "The system cannot find the path specified." }', src\vector\shapefile\mod.rs:238:56
stack backtrace:
   0:     0x7ff65556ab5e - <unknown>
   1:     0x7ff655589bfc - <unknown>
   2:     0x7ff655566143 - <unknown>
   3:     0x7ff65556dccb - <unknown>
   4:     0x7ff65556d918 - <unknown>
   5:     0x7ff65556e49f - <unknown>
   6:     0x7ff65556e01f - <unknown>
   7:     0x7ff655587270 - <unknown>
   8:     0x7ff6555870a3 - <unknown>
   9:     0x7ff654a7c66f - <unknown>
  10:     0x7ff654a74a36 - <unknown>
  11:     0x7ff65543836f - <unknown>
  12:     0x7ff654b5af24 - <unknown>
  13:     0x7ff65540b3f9 - <unknown>
  14:     0x7ff655408871 - <unknown>
  15:     0x7ff655326b86 - <unknown>
  16:     0x7ff65556e796 - <unknown>
  17:     0x7ff65540d337 - <unknown>
  18:     0x7ff65559be55 - <unknown>
  19:     0x7ff895ee7034 - BaseThreadInitThunk
  20:     0x7ff897d22651 - RtlUserThreadStart


Support the @href attribute for images referenced with URL (not the relative path)

Description
Currently image href attribute only supports relative path on which image is present. If we provide image URL (hosted online) or full path of image on local machine it is getting failed.
<image placement="break" class="- topic/image " alt="Infection" width="570" height="738" href="https://images.pexels.com/photos/1266007/pexels-photo-1266007.jpeg"  />

Have you tried putting @scope="external" on the image to indicate that it is not a local image?

Yes. If you do so that image is not appearing in converted PDF.

External images referenced by URL are not currently supported in PDF.
The image needs to specify scope="external", which is required for all external references; this will work for HTML, where the browser can still resolve external image references. This is the first time I've heard the request for support in PDF.

Well not only for PDF. In my case I am using this for DOCX conversion. So if we think of a general solution that can work for all cases, and can be helpful for other who want to extend the functionality for other conversions.
I think a solution can be,

Copy the external sources and keep in temp dir.
2.Update the resources list as well as source xml with the name of that resource

And I guess that can work for all the extensions. Need your views


Add a checkmark and the ability to toggle the permission

Fixes https://github.com/bfred-it/webext-domain-permission-toggle/issues/4
Fixes https://github.com/sindresorhus/refined-github/issues/1509
Full rewrite sadly necessary to enable that little checkmark:

I looked into a few simpler methods but they didn't work:

contextMenus lets you pick which origins to show the item on, but not where to show/hide its checkbox. Also no way to exclude pages
declarativeContent can only toggle the whole pageAction icon or load files; nothing else, no custom functions
the new user controls on Chrome 70+ can't be used as a whitelist... yet

Also I couldn't find anything simpler than these to pick which domain to enable it on:
https://github.com/bfred-it/webext-domain-permission-toggle/blob/325b814979d0e803532ead364848f5ac8a823152/webext-domain-permission-toggle.js#L98-L103
https://github.com/bfred-it/webext-domain-permission-toggle/blob/325b814979d0e803532ead364848f5ac8a823152/webext-domain-permission-toggle.js#L45-L56

Things to look forward: https://blog.chromium.org/2018/10/trustworthy-chrome-extensions-by-default.html

In 2019 we will introduce the next extensions manifest version. Manifest v3 will entail additional platform changes that aim to create stronger security, privacy, and performance guarantees. We want to help all developers fall into the pit of success; writing a secure and performant extension in Manifest v3 should be easy, while writing an insecure or non-performant extension should be difficult.

How can I test this without having access to GitHub Enterprise?

Visit google.com
“Enable Refined GitHub…”
See obvious errors in console

Testing this via https://github.com/sindresorhus/refined-github/pull/1774
If I'm on GH, I see it checked, I remove it, RGH is disabled, but if I reenable it on GH, it doesn't turn on, but the checkmark says it's enabled.
Testing on GHE, for a domain that was previously added to permissions, first load RGH is working. Disable it, RGH is disabled. Also, I noticed if I disable it, it's coming back as checked on the next page load, but RGH is disabled. The extension tells me I need to refresh the page, even though I did. I used the extension to refresh, still shows as checked, but RGH is not working. It shows a weird state:

I'm now in a state when I uncheck the domain and it thinks it's loaded for the domain. If I uncheck it (even though it's already removed the permission), then recheck it, it prompts for permission. If I grant it, RGH is still not working.
I can see the permissions exist for GH and GHE but it's not working on either:

That’s… not right. This module only handles the permissions; if you can see your domain as officially allowed in the chrome page then it really is, and the content scripts should be automatically injected by the other module (unrelated, untouched by this PR)

Can you check again? The github.com permission cannot be revoked and there’s nothing we can do to prevent its injection, so if you don’t see RGH there there’s something bigger at play (Chrome bug or you’re testing it wrong) 😅

Retested. It's again working when I enable it, not sure what happened.
I can still "disable" it on GitHub, it doesn't actually disabled RGH, but the checkbox is missing.
With that said, when it's not enabled on the domain and we click the icon, we get "Refresh Required" message and I find it confusing. Refreshing the page doesn't matter if I haven't enabled it for the domain yet. Can we tie the "Ok, Refresh" button to also asking for the domain permission if it's not there?

The check is already there. In my case I never see the red X on the icon and that might be throwing off the system. At every step I verify that we have permanent permission to the domain. If not, the check will be hidden.
In my case, I receive an Alert saying that I can’t disable it on GitHub.com
What Chrome version are you on? Can you make sure no flags are enabled in chrome://flags?

The issue is likely Chrome versions, I'm locked to 64 currently when using GHE. This requires a change to the manifest and to update the catch{} blocks in two places to get it to run. I have not tested it at home, since it would be the same testing you're doing. :)

Alright, there are indeed some yucky Chrome bugs:

chrome.permissions.contains will report false if a domain was removed, but
chrome://extensions will still list the domain in the "Allow on all websites" list

Also after clicking that context menu item we will have access to the current tab (thanks to activeTab) until we navigate away from the current domain. This might have caused some issues to your testing and it means I'll have to rewrite https://github.com/bfred-it/webext-dynamic-content-scripts to use chrome.permissions.onAdded.addListener + contentScripts.register() (Firefox) and declarativeContent.RequestContentScript (Chrome)

Beautiful Chrome extensions bug:

chrome.permissions.getAll will report origins from content_scripts (manifest.json) but chrome.permissions.contains only looks in the permissions field

Will test version v1.0.0-2

This is now completely disabled on domains that can't be removed:


[Feature] Customisable chat message content for group joining (and other activity)

Joining a group automatically sends a chat message (type 6) to all group members. This includes the ID of the player triggering the message but not the name. In order to display a user friendly message of the form "Fred Bloggs has joined the team" it would be useful to include the username and display_name in the message.
For flexibility it may be useful to customise the content.
This extends to other group related messages.

A simpler solution would be to include the display_name in the senderName attribute of the message, in the same way as other message types.


Feature Request: Backtrack to log location to local file

Backtrack to log location to local file live (not just on export). I use syncthing on my phone so if I could backtrack to a local file that could be synced to my devices live and be used to track my phone's location. Also if show bluetooth devices gets implemented it would be cool for that to log to local files as well.

@18fadly-anthony thank you for the suggestion - unfortunately for Trail Sense to be able to do that, I believe it would need the write external files permission, which I do not want to have requested at this time.
I'll do more research to see if there's a way around it though - maybe have the user pick the file first, though there may be a time limit on how long Trail Sense can write to that for.

Replaced by #1785


[Suggestion] Cave fog should work only under ocean level

this thing happens frequently
I think it should possible to restrict the cave fog under a specific y level
I know about caves above y ocean level, if you think about the sky shouldn't be dark even from dark place
this happens too while whatching trought a window inside a close space
So, that's my suggestion soemthing to restrict it

fixed in version 1.1!

Thank you so much, I'll wait for the next release, I love your mod so much