Feature/4.6.1/new assigned cases

What type of PR is this? (check all applicable)

[ ] Refactor
[X] Feature
[ ] Bug Fix
[ ] Optimization
[ ] Documentation Update

Description
pulls new assigned cases for the current logged in user.
one thing to discuss is, currently it brings all cases for current user in descending order by creation time. do we need a way to only count new cases that haven't been opened yet? if so we will need a way to keep track of what's read and what's not on the tickets.
another point to discuss, currently there are 3 words that refer to the same thing in the codebase; tickets = cases = requests
I wrote the code using 'tickets' but if we can come to a consensus on which to use going forward I'll refactor my code before merging
Related Tickets & Documents

Closes <IP_ADDRESS> UI for New assigned cases, <IP_ADDRESS> New assigned cases backend query

QA Instructions, Screenshots, Recordings

UI accessibility checklist

[x] Semantic HTML implemented?
[x] Color contrast tested?

Added/updated tests?

[X] Yes
[ ] No, and this is why: please replace this line with details on why tests
have not been included
[ ] I need help with writing tests

[optional] Which Seattle Humane animal would you like to dedicate this PR to?
Stanley Yelnats

Need to close #73 first as some code depends on that

Need to close #73 first as some code depends on that

Closed and merged!

I believe we are using the term "service requests" https://projects.digitalaidseattle.org/project-tasks-details?recordId=rec9ikwws0YwWbylR

talking with Kate about this now. I think there is some ambiguity still, we are going to clarify with Seattle humane. If we can get an answer soon, maybe we can push a change to the PR.

talking with Kate about this now. I think there is some ambiguity still, we are going to clarify with Seattle humane. If we can get an answer soon, maybe we can push a change to the PR.

Ticket is much easier to write in code. We can change our UI labels but I think we can start to formalize on ticket in the code.

Speaking with Sharrief we discussed changing the way queries are made. More information in slack, but essentially there is not very much information stored in Supabase, so it seems best to just query everything rather than using multiple queries. I think I'll still try to merge this code however, that change would be a larger overhaul

Speaking with Sharrief we discussed changing the way queries are made. More information in slack, but essentially there is not very much information stored in Supabase, so it seems best to just query everything rather than using multiple queries. I think I'll still try to merge this code however, that change would be a larger overhaul

Yea we can skip the data access changes for now. But @AdelBeit please see if you can address the test changes. You can just remove the tests if trying to get them to render the element is tricky.

Speaking with Sharrief we discussed changing the way queries are made. More information in slack, but essentially there is not very much information stored in Supabase, so it seems best to just query everything rather than using multiple queries. I think I'll still try to merge this code however, that change would be a larger overhaul

Yea we can skip the data access changes for now. But @AdelBeit please see if you can address the test changes. You can just remove the tests if trying to get them to render the element is tricky.

@sharrief are you talking about the test changes in this PR? https://github.com/digitalaidseattle/seattle-humane-app/pull/76

@sharrief are you talking about the test changes in this PR? https://github.com/digitalaidseattle/seattle-humane-app/pull/76

Yep! But I agree if you find it complex @AdelBeit we can just refactor the tests in a future PR

@sharrief are you talking about the test changes in this PR? #76

Yep! But I agree if you find it complex @AdelBeit we can just refactor the tests in a future PR

I'll look at refactoring the tests in this pr before merging

ill rebase and refactor this tomorrow now that #76 is merged


[db-up] Bump dependency versions for db-up

Resolve https://github.com/Azure/azure-cli/issues/12854

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your PR is merged into master branch, a new PR will be created to update src/index.json automatically.
The precondition is to put your code inside this repo and upgrade the version in the PR but do not modify src/index.json.

If this PR is for a new extension or change to an existing extension, use the following to try out the changes in this PR:
docker run -it microsoft/azure-cli:latest
export EXT=<NAME>
pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/Azure/azure-cli-extensions.git@db-up-bump#subdirectory=src/$EXT&egg=$EXT"

add to S169

Live tests passed locally, blocked by the CI failure with playback tests.

Consolidated into https://github.com/Azure/azure-cli-extensions/pull/1412


modify top-k logic to allow bi-directional access to single collection

It would be cleaner to have a single top-k collection, instead of two separate ones.  All the current metrics are symmetric, so bidirectional access is OK.  App logic could be changed so a single top-k collection would suffice.

+1 This makes sense to me too. I talked to @ronichoudhury about this - as long as the app logic can be integrated easily this would make our lives easier.

I agree this is the way to go for this testing application.  I do have the temporary collection-copying scripts now, so we could put it off if we need to.
Having two collections is definitely a hack for this testcase.  Though we are giving up generality as we optimize to hard-coded, bi-directional references,  so maybe we want to think about how we could keep some flexibility to use with other networks in the future.  ex. ISIL network against itself for QCR.
On Jul 8, 2015, at 3:01 PM, Jeffrey Baumes<EMAIL_ADDRESS>wrote:

+1 This makes sense to me too. I talked to @ronichoudhury about this - as long as the app logic can be integrated easily this would make our lives easier.
—
Reply to this email directly or view it on GitHub.


chore: bump echo-server to demonstrate response header modifier

Resolves: https://github.com/envoyproxy/gateway/issues/719
Signed-off-by: bitliu<EMAIL_ADDRESS>

Codecov Report

Merging #725 (0c29104) into main (ee75e3b) will increase coverage by 0.10%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #725      +/-   ##
==========================================
+ Coverage   63.64%   63.74%   +0.10%
==========================================
  Files          47       47
  Lines        5927     5927
==========================================
+ Hits         3772     3778       +6
+ Misses       1919     1913       -6
  Partials      236      236

Impacted Files
Coverage Δ

internal/provider/kubernetes/helpers.go
73.91% <0.00%> (-6.53%)
:arrow_down:

internal/provider/kubernetes/gateway.go
49.68% <0.00%> (-1.92%)
:arrow_down:

internal/provider/kubernetes/gatewayclass.go
71.73% <0.00%> (-1.45%)
:arrow_down:

internal/provider/kubernetes/httproute.go
67.48% <0.00%> (+8.23%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

/unhold after https://github.com/envoyproxy/gateway/pull/778 gets merged.


Is there any way we can set zoom level to page width as default

Is there any way we can set zoom level to page width as default config settings doesn't have option for it

<vue-pdf-app @open="openPdf" />

async openPdf(pdfApp) {
    if (pdfApp.pdfViewer) {
      await pdfApp.pdfViewer.pagesPromise;
      pdfApp.pdfViewer.currentScale = 1;
      // 1 = 100%
      // page-actual
      // page-width
      // page-height
      // page-fit
      // auto
    }
  }

is there any way i can set current scale to page-width  by option e.g.
pdfApp.pdfViewer.currentScale  = 5

here currentScale is enum value like that or set to value of dropdown shown in UI

Hypothetical component:
<template>
  <div>
    <dropdown :value="currentScale" @input="changeScale"></dropdown>
    <PdfApp @open="pdfApp = $event" />
  </div>
</template>

<script>
  export default {
    data() {
      return {
        currentScale: 1,
        pdfApp: null
      }
    },
    methods: {
      changeScale(scale) {
        this.currentScale = scale;
        this.pdfApp.pdfViewer.currentScale = this.currentScale
      }
    }
  }
</script>

This functionality is already included in package.
Don`t understand the purpose of implementing it outside the package.

Still don't understand what is needed. You can hardcode scale with this values as described in comment above
pdfApp.pdfViewer.currentScale = 1 // 100%;
pdfApp.pdfViewer.currentScale = 0.2 // 20%;
pdfApp.pdfViewer.currentScale = "page-actual"
pdfApp.pdfViewer.currentScale = "page-width"
pdfApp.pdfViewer.currentScale = "page-height"
pdfApp.pdfViewer.currentScale = "page-fit"
pdfApp.pdfViewer.currentScale = "auto"

using this code
pdfApp.pdfViewer.currentScale = "page-fit"

gives error
"Error: Invalid numeric scale

Sorry, use currentScaleValue instead of currentScale

This solves problem thanks


HOV-31 | Adds Stepper component

Description

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

DIvider LGTM

@Raalzz also i see one code-smell being introduced

@Raalzz also i see one code-smell being introduced

Yaa checked it

@Raalzz also i see one code-smell being introduced

Its asking me to remove .reduce 🥲

sad, we will look at codesmell later then


more describe of 2D data and scannet_frames_25k.

hello,
Good work. Can you provide more description of the usage of 2D data and scannet_frames_25k data? Since scannet_frames_25k also provides 2D instance labels.
best wishes.

Hi,
scannet_frames_25k is for SV-training. It contains downsampled RGB-D frames. So the amount of data is suitable for training SV model.
2D data is for Online-training. Note that we require consistent instance_id across different frames in the same scene / sequence. However, scannet_frames_25k does not provide this consistent annotation.

I get it, thank you for your quick response.
Best Regards

hi，
I have successfully processed the scannet_sv data. It seems that there are some problems when testing a single view.
I use the following
CUDA_VISIBLE_DEVICES=0 PORT=29544 bash ./tools/dist_test.sh configs/fcaf3d_sv/fcaf3dFF_scannet-3d-18class.py checkpoints/fcaf3d_sv.pth 1 --show-dir work_dirs/debug/ --eval x

And encountered these problems:
  File "./tools/train.py", line 263, in <module>
    main()
  File "./tools/train.py", line 252, in main
    train_model(
  File "/opt/data/private/online3d/mmdet3d/apis/train.py", line 344, in train_model
    train_detector(
  File "/opt/data/private/online3d/mmdet3d/apis/train.py", line 319, in train_detector
    runner.run(data_loaders, cfg.workflow)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 136, in run
    epoch_runner(data_loaders[i], **kwargs)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 58, in train
    self.call_hook('after_train_epoch')
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/mmcv/runner/base_runner.py", line 317, in call_hook
    getattr(hook, fn_name)(self)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/mmcv/runner/hooks/evaluation.py", line 271, in after_train_epoch
    self._do_evaluate(runner)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/mmdet/core/evaluation/eval_hooks.py", line 126, in _do_evaluate
    results = multi_gpu_test(
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/mmdet/apis/test.py", line 109, in multi_gpu_test
    result = model(return_loss=False, rescale=True, **data)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/torch/nn/parallel/distributed.py", line 1008, in forward
    output = self._run_ddp_forward(*inputs, **kwargs)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/mmcv/parallel/distributed.py", line 165, in _run_ddp_forward
    return module_to_run(*inputs[0], **kwargs[0])  # type: ignore
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/mmcv/runner/fp16_utils.py", line 116, in new_func
    return old_func(*args, **kwargs)
  File "/opt/data/private/online3d/mmdet3d/models/detectors/base.py", line 62, in forward
    return self.forward_test(**kwargs)
  File "/opt/data/private/online3d/mmdet3d/models/detectors/base.py", line 43, in forward_test
    return self.simple_test(points[0], img_metas[0], img[0], **kwargs)
  File "/opt/data/private/online3d/mmdet3d/models/detectors/single_stage_sparseFF.py", line 113, in simple_test
    if self.evaluator_mode == 'slice_len_constant':
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1207, in __getattr__
    raise AttributeError("'{}' object has no attribute '{}'".format(
AttributeError: 'SingleStageSparse3DDetectorFF' object has no attribute 'evaluator_mode'

 File "./tools/test.py", line 265, in <module>
    main()
  File "./tools/test.py", line 238, in main
    outputs = multi_gpu_test(model, data_loader, args.tmpdir,
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/mmdet/apis/test.py", line 109, in multi_gpu_test
    result = model(return_loss=False, rescale=True, **data)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/torch/nn/parallel/distributed.py", line 1008, in forward
    output = self._run_ddp_forward(*inputs, **kwargs)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/mmcv/parallel/distributed.py", line 165, in _run_ddp_forward
    return module_to_run(*inputs[0], **kwargs[0])  # type: ignore
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/mmcv/runner/fp16_utils.py", line 116, in new_func
    return old_func(*args, **kwargs)
  File "/opt/data/private/online3d/mmdet3d/models/detectors/base.py", line 62, in forward
    return self.forward_test(**kwargs)
  File "/opt/data/private/online3d/mmdet3d/models/detectors/base.py", line 43, in forward_test
    return self.simple_test(points[0], img_metas[0], img[0], **kwargs)
  File "/opt/data/private/online3d/mmdet3d/models/detectors/single_stage_sparseFF.py", line 121, in simple_test
    num_slice = min(len(points[0]),self.num_slice)
  File "/home/miniconda3/envs/online/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1207, in __getattr__
    raise AttributeError("'{}' object has no attribute '{}'".format(
AttributeError: 'SingleStageSparse3DDetectorFF' object has no attribute 'num_slice'

Also, it seems that self.len_slice is not defined either.

evaluator_mode, num_slice and len_slice are used for online evaluation only. They should not appear in SV model.
It seems that the simple_test function of SV models are not in the right version. We will check the code and fix this bug.

We have corrected the code errors, and we appreciate your feedback.

Thank you for your useful reply. I am sorry that I encountered some new problems.
It seems the test.py is not suitable for scannet_sv to validate with the following
CUDA_VISIBLE_DEVICES=0 PORT=29544 bash ./tools/dist_test.sh configs/fcaf3d_sv/fcaf3dFF_scannet-3d-18class.py checkpoints/fcaf3d_sv.pth 1 --show-dir work_dirs/debug/ --eval x

Traceback (most recent call last):
  File "./tools/test.py", line 265, in <module>
    main()
  File "./tools/test.py", line 261, in main
    print(dataset.evaluate(outputs, **eval_kwargs))
TypeError: evaluate() got an unexpected keyword argument 'scene_name'
ERROR:torch.distributed.elastic.multiprocessing.api:failed (exitcode: 1) local_rank: 0 (pid: 42105) of binary: /home/miniconda3/envs/online/bin/python

so I comment on the following line
https://github.com/xuxw98/Online3D/blob/b6a6286480ad0256c1dbfc977babf3e98ea2caf0/tools/test.py#L260
and get the following results. Is it reasonable since the results are much better than those in the readme?
CUDA_VISIBLE_DEVICES=0 PORT=29544 bash ./tools/dist_test.sh configs/fcaf3d_sv/fcaf3dFF_scannet-3d-18class.py checkpoints/fcaf3d_sv.pth 1 --show-dir work_dirs/debug/ --eval x
/home/miniconda3/envs/online/lib/python3.8/site-packages/torch/distributed/launch.py:178: FutureWarning: The module torch.distributed.launch is deprecated
and will be removed in future. Use torchrun.
Note that --use_env is set by default in torchrun.
If your script expects `--local_rank` argument to be set, please
change it to read from `os.environ['LOCAL_RANK']` instead. See
https://pytorch.org/docs/stable/distributed.html#launch-utility for
further instructions

  warnings.warn(
/home/miniconda3/envs/online/lib/python3.8/site-packages/MinkowskiEngine/__init__.py:36: UserWarning: The environment variable `OMP_NUM_THREADS` not set. MinkowskiEngine will automatically set `OMP_NUM_THREADS=16`. If you want to set `OMP_NUM_THREADS` manually, please export it on the command line before running a python script. e.g. `export OMP_NUM_THREADS=12; python your_program.py`. It is recommended to set it below 24.
  warnings.warn(
The model and loaded state dict do not match exactly

unexpected key in source state_dict: proposal_generator.rpn_head.conv.weight, proposal_generator.rpn_head.conv.bias, proposal_generator.rpn_head.objectness_logits.weight, proposal_generator.rpn_head.objectness_logits.bias, proposal_generator.rpn_head.anchor_deltas.weight, proposal_generator.rpn_head.anchor_deltas.bias, roi_heads.box_head.fc1.weight, roi_heads.box_head.fc1.bias, roi_heads.box_head.fc2.weight, roi_heads.box_head.fc2.bias, roi_heads.box_predictor.cls_score.weight, roi_heads.box_predictor.cls_score.bias, roi_heads.box_predictor.bbox_pred.weight, roi_heads.box_predictor.bbox_pred.bias, roi_heads.mask_head.mask_fcn1.weight, roi_heads.mask_head.mask_fcn1.bias, roi_heads.mask_head.mask_fcn2.weight, roi_heads.mask_head.mask_fcn2.bias, roi_heads.mask_head.mask_fcn3.weight, roi_heads.mask_head.mask_fcn3.bias, roi_heads.mask_head.mask_fcn4.weight, roi_heads.mask_head.mask_fcn4.bias, roi_heads.mask_head.deconv.weight, roi_heads.mask_head.deconv.bias, roi_heads.mask_head.predictor.weight, roi_heads.mask_head.predictor.bias

load checkpoint from local path: checkpoints/fcaf3d_sv.pth
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 5254/5254, 11.0 task/s, elapsed: 476s, ETA:     0s
+----------------+---------+---------+---------+---------+
| classes        | AP_0.25 | AR_0.25 | AP_0.50 | AR_0.50 |
+----------------+---------+---------+---------+---------+
| cabinet        | 0.3830  | 0.8064  | 0.2357  | 0.5859  |
| bed            | 0.6462  | 0.8708  | 0.5215  | 0.7076  |
| chair          | 0.6743  | 0.8400  | 0.5060  | 0.6772  |
| sofa           | 0.6433  | 0.9064  | 0.5235  | 0.7809  |
| table          | 0.4658  | 0.8038  | 0.3238  | 0.5493  |
| door           | 0.3943  | 0.7931  | 0.2082  | 0.5395  |
| window         | 0.4158  | 0.7785  | 0.2032  | 0.5221  |
| bookshelf      | 0.5029  | 0.8517  | 0.3965  | 0.6970  |
| picture        | 0.3222  | 0.5722  | 0.1536  | 0.3218  |
| counter        | 0.4761  | 0.7869  | 0.1811  | 0.3656  |
| desk           | 0.5074  | 0.8639  | 0.3206  | 0.6187  |
| curtain        | 0.4233  | 0.8283  | 0.2546  | 0.6131  |
| refrigerator   | 0.3195  | 0.7244  | 0.1786  | 0.5795  |
| showercurtrain | 0.4745  | 0.8101  | 0.3141  | 0.6592  |
| toilet         | 0.8905  | 0.9520  | 0.7229  | 0.8155  |
| sink           | 0.5344  | 0.7592  | 0.2800  | 0.4791  |
| bathtub        | 0.6898  | 0.8392  | 0.5705  | 0.6734  |
| garbagebin     | 0.3884  | 0.7486  | 0.2893  | 0.5423  |
+----------------+---------+---------+---------+---------+
| Overall        | 0.5084  | 0.8075  | 0.3435  | 0.5960  |
+----------------+---------+---------+---------+---------+
{'cabinet_AP_0.25': 0.38303089141845703, 'bed_AP_0.25': 0.6462198495864868, 'chair_AP_0.25': 0.6742950677871704, 'sofa_AP_0.25': 0.6432637572288513, 'table_AP_0.25': 0.46582460403442383, 'door_AP_0.25': 0.39426273107528687, 'window_AP_0.25': 0.41579222679138184, 'bookshelf_AP_0.25': 0.5028567314147949, 'picture_AP_0.25': 0.322155237197876, 'counter_AP_0.25': 0.4760626554489136, 'desk_AP_0.25': 0.5073734521865845, 'curtain_AP_0.25': 0.4233340620994568, 'refrigerator_AP_0.25': 0.31950151920318604, 'showercurtrain_AP_0.25': 0.474488765001297, 'toilet_AP_0.25': 0.8905090093612671, 'sink_AP_0.25': 0.5344454050064087, 'bathtub_AP_0.25': 0.6898376941680908, 'garbagebin_AP_0.25': 0.3883518874645233, 'mAP_0.25': 0.5084224939346313, 'cabinet_rec_0.25': 0.8063794068270845, 'bed_rec_0.25': 0.8707571801566579, 'chair_rec_0.25': 0.8399682791435369, 'sofa_rec_0.25': 0.9063545150501672, 'table_rec_0.25': 0.8037945395650162, 'door_rec_0.25': 0.7930660888407367, 'window_rec_0.25': 0.778534923339012, 'bookshelf_rec_0.25': 0.8516949152542372, 'picture_rec_0.25': 0.5722120658135283, 'counter_rec_0.25': 0.7869249394673123, 'desk_rec_0.25': 0.8638996138996139, 'curtain_rec_0.25': 0.8283378746594006, 'refrigerator_rec_0.25': 0.7243816254416962, 'showercurtrain_rec_0.25': 0.8100558659217877, 'toilet_rec_0.25': 0.9520295202952029, 'sink_rec_0.25': 0.7592137592137592, 'bathtub_rec_0.25': 0.8391959798994975, 'garbagebin_rec_0.25': 0.7485764345159878, 'mAR_0.25': 0.8075209737391241, 'cabinet_AP_0.50': 0.2356589287519455, 'bed_AP_0.50': 0.5215452909469604, 'chair_AP_0.50': 0.5059803128242493, 'sofa_AP_0.50': 0.5235216617584229, 'table_AP_0.50': 0.32383596897125244, 'door_AP_0.50': 0.2081804871559143, 'window_AP_0.50': 0.20320282876491547, 'bookshelf_AP_0.50': 0.3964529037475586, 'picture_AP_0.50': 0.15361079573631287, 'counter_AP_0.50': 0.18111632764339447, 'desk_AP_0.50': 0.3206106722354889, 'curtain_AP_0.50': 0.2546040415763855, 'refrigerator_AP_0.50': 0.17856290936470032, 'showercurtrain_AP_0.50': 0.3141374886035919, 'toilet_AP_0.50': 0.7229011654853821, 'sink_AP_0.50': 0.27997225522994995, 'bathtub_AP_0.50': 0.570529580116272, 'garbagebin_AP_0.50': 0.2893286943435669, 'mAP_0.50': 0.3435417711734772, 'cabinet_rec_0.50': 0.5858981533296027, 'bed_rec_0.50': 0.7075718015665796, 'chair_rec_0.50': 0.6772402854877082, 'sofa_rec_0.50': 0.7809364548494984, 'table_rec_0.50': 0.5492827394724664, 'door_rec_0.50': 0.5395449620801733, 'window_rec_0.50': 0.5221465076660988, 'bookshelf_rec_0.50': 0.6970338983050848, 'picture_rec_0.50': 0.3217550274223035, 'counter_rec_0.50': 0.36561743341404357, 'desk_rec_0.50': 0.6187258687258688, 'curtain_rec_0.50': 0.6130790190735694, 'refrigerator_rec_0.50': 0.5795053003533569, 'showercurtrain_rec_0.50': 0.659217877094972, 'toilet_rec_0.50': 0.8154981549815498, 'sink_rec_0.50': 0.47911547911547914, 'bathtub_rec_0.50': 0.6733668341708543, 'garbagebin_rec_0.50': 0.5422689443714411, 'mAR_0.50': 0.5959891523044807}

This performance is okay. If I remember correctly, the 41.9 / 20.6 is reported by simply concatenating the boxes from different frames. While in this version of code, we use the merge_and_update operation for better inter-frame processing.
Feel free to contact us if you have any further questions. We also welcome you to submit pull requests to help us fix some undiscovered bugs.

This performance is okay. If I remember correctly, the 41.9 / 20.6 is reported by simply concatenating the boxes from different frames. While in this version of code, we use the merge_and_update operation for better inter-frame processing.
Feel free to contact us if you have any further questions. We also welcome you to submit pull requests to help us fix some undiscovered bugs.

OK, thank you again for your prompt response.


Main

Kindly Update the changes, I updated the name.txt

Hello Awwal!
Please open a new PR! Remember to make a branch as you work on your changes!
We look forward to merging your next PR! :partying_face:


MD-WIDGETS: Which assets/survey.md?

The README mentions assets/surveys.md It would be good to identify the specific file - are you referencing example/assets/sample_markdown.md?

Close as completed.


Bug-for bug compatibility with libolm's PkEncryption support

A review commit-by-commit is advised, there are a couple of unrelated commits here to make the CI happy.
The meat of the PR is the libolm's PKEncryption support, for more info please take a look at the commit message which adds this functionality. Please note that the commit message assumes that we're going to merge #165.

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

Project coverage is 90.55%. Comparing base (72f4235) to head (d50e302).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #171   +/-   ##
=======================================
  Coverage   90.55%   90.55%
=======================================
  Files          34       34
  Lines        1906     1906
=======================================
  Hits         1726     1726
  Misses        180      180

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


v1.4 backport 19-04-15

v1.4 backports 2019-04-15
INCLUDED

#7713 -- Doc: Update jinja dependency for documentation building (@tgraf)
#7717 -- envoy: Update to enable path normalization (@jrajahalme)
#7712 -- Istio update to use proxy image with path normalization (@jrajahalme)
#7704 -- Fix backporting scripts for https users (@nebril)

NOT INCLUDED

#7720 -- CI: Enforce sensible timeouts. (@jrajahalme): There was a merge conflict. @jrajahalme Is it fine to exclude this PR or is it needed to make the 1.4 CI stable?

Once this PR is merged, you can update the PR labels via:
$ for pr in 7713 7717 7712 7704; do contrib/backporting/set-labels.py $pr done 1.4; done

This change is

test-me-please

test-missed-k8s

test-docs-please

ToServices BeforeAll failed: https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/11609/

test-me-please


Timed out waiting for download mode - Black screen

Device
iphone SE
Version
IOS 15.8.2
Passcode?

[X] Passcode is enabled.

Start going into detail..
Hello,
I tried to jailbreak an Iphone SE with IOS 15.8.2 and I still have the same problem: Timed out waiting for download mode.
My computer is configured with ubuntu and I have an Intel chip inside. As far as the iPhone is concerned, I've entered DFU mode, and when it gets to ‘: DFU mode device disconnected’, nothing happens. The screen stays black and I can't enter dowload mode. I've tried several cables, plugged and unplugged several times, but nothing changes. The Apple logo never appears.
Familiarity with palera1n

[ ] I am familiar with palera1n and how to use it!

Familiarity with CLI

[X] I am familiar with the command-line!

try running with sudo, try using different ports and cables, unfortunately this issue cant really be fixed by the team due to the fact its a checkra1n problem which is a closed source component of palera1n

Since this is a common issue that we don't have control of due to a variety of reasons, I will be closing this.
Make sure you've ran the common solutions from our docs regarding "Timed out waiting for download mode", and troubleshoot on your own to see if any of your setup could be causing issues.


using require('fs')

Hi,
I try use 'filesystem' for working with file.
but when use code: import * as fs from "fs" or var fs = require('fs'). Result of both way incorrect

@loongdefect you can't use nodes filesystem api in a front end application.

Closing as answered.

Angular-CLI supports Universal now, so there is a solution needed for that now right?

I think the problem here is that people do not really get what do you mean when you just say angular and frontend you have to give a bit more details on the subject!


Add Cascading Delete in the UI

Ensure that deleting data doesn't result in an empty parent element.
Examples:

Deleting the last study should delete the series
Deleting the last series should delete the dataset

This is done.


Blackhole receiver

Create a receiver which drops all alerts. Currently this requires a workaround involving email or webhook receivers and a dummy server.
Rationale: alertmanager should fully support the page/ticket/log model for alert severity. Alerts of "log" severity should be displayed on a dashboard but otherwise generate no notifications. Unless there's a plan to exclude them from being sent by prometheus to alertmanager, they must be dropped .

https://github.com/prometheus/prometheus/issues/1744
It is not desirable for performance reasons to have non-notifying alerts in the alertmanager.

I agree. It's better not to send them at all. How?

I don't know how to not send an alert at all, but it is perfectly possible to set up a blackhole receiver.
At SoundCloud, we use info level alerts where the (still to be improved) Alertmanager UI serves as an "alerts dashboard" (as suggested by my SRECon talk).
Just configure a receiver with a name only:
receivers:
- name: something-info
  # Deliberately left empty to not deliver anywhere.
- name: some-other-receiver
  email_configs:
  # ...

I'll close this as blackhole receivers are in fact possible.
The case where you don't want to send an alert notification to AM in the first place is a Prometheus side issue covered in prometheus/prometheus#1744 .

I was trying to do exactly this today, and I could not find how. Wouldn't it be good to add this in the documentation?

Maybe. Note: You can also drop this at prometheus level (not send certain alerts at all):
alerting:
  alert_relabel_configs:
  - source_labels: [time_window]
    regex: never
    action: drop

Maybe. Note: You can also drop this at prometheus level (not send certain alerts at all):
alerting:
  alert_relabel_configs:
  - source_labels: [time_window]
    regex: never
    action: drop

@roidelapluie This is pretty interesting, can you elaborate a bit more, for example if I want to drop specific alarm before it goes to alertmanager. Let's say If I want to do this for "alertname": watchdog?
Thanks in advance!

  But it seems that alerts are still delivered via the default receiver.
This is the configuration I tried.
---
receivers:
- name: webhook
  webhook_configs:
  - send_resolved: false
    url: http://localhost:12345

route:
  receiver: webhook
  routes:
    # black hole alert
    - match:
        label: value

Running alert manager:
> alertmanager-0.20.0.linux-amd64/alertmanager --cluster.listen-address=  --log.level=debug
level=info ts=2020-02-20T08:55:42.912Z caller=main.go:231 msg="Starting Alertmanager" version="(version=0.20.0, branch=HEAD, revision=f74be0400a6243d10bb53812d6fa408ad71ff32d)"
level=info ts=2020-02-20T08:55:42.912Z caller=main.go:232 build_context="(go=go1.13.5, user=root@00c3106655f8, date=20191211-14:13:14)"
level=debug ts=2020-02-20T08:55:42.946Z caller=main.go:370 externalURL=http://de3lxd-108955:9093
level=info ts=2020-02-20T08:55:42.946Z caller=coordinator.go:119 component=configuration msg="Loading configuration file" file=alertmanager.yml
level=info ts=2020-02-20T08:55:42.946Z caller=coordinator.go:131 component=configuration msg="Completed loading of configuration file" file=alertmanager.yml
level=debug ts=2020-02-20T08:55:42.949Z caller=main.go:480 routePrefix=/
level=info ts=2020-02-20T08:55:42.950Z caller=main.go:497 msg=Listening address=:9093
level=debug ts=2020-02-20T08:55:47.336Z caller=dispatch.go:135 component=dispatcher msg="Received alert" alert=test[ae9a25c][active]
level=debug ts=2020-02-20T08:56:17.336Z caller=dispatch.go:465 component=dispatcher aggrGroup="{}/{label=\"value\"}:{}" msg=flushing alerts=[test[ae9a25c][active]]

Sending alert:
echo '[{"labels":{"alertname": "test", "label":"value"}}]' | curl -H'Content-Type: application/json' --data-binary @- 'localhost:9093/api/v2/alerts'

Receiving alert:
> nc -l 12345
POST / HTTP/1.1
Host: localhost:12345
User-Agent: Alertmanager/0.20.0
Content-Length: 452
Content-Type: application/json

{"receiver":"webhook","status":"firing","alerts":[{"status":"firing","labels":{"alertname":"test","label":"value"},"annotations":{},"startsAt":"2020-02-20T09:55:47.336078297+01:00","endsAt":"0001-01-01T00:00:00Z","generatorURL":"","fingerprint":"ae9a25c7575c1709"}],"groupLabels":{},"commonLabels":{"alertname":"test","label":"value"},"commonAnnotations":{},"externalURL":"hostname","version":"4","groupKey":"{}/{label=\"value\"}:{}"}

If I understand it correctly the alarm should have been black holed, but it is still delivered via the default receiver.


Links to the official doc should always refer to its stable version

There are many links to the official elixir-lang.org/docs, but they refer to several different versions. How about if we always use elixir-lang.org/docs/stable for less maintenance?

This is a great idea, thank you @3100!!


Met api

Issue #:
https://github.com/bcgov/met-public/issues/882
Description of changes:
Fix for publishing engagement
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the met-public license (Apache 2.0).

Codecov Report

Merging #913 (9c46f79) into main (df2cd26) will increase coverage by 0.99%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##             main     #913      +/-   ##
==========================================
+ Coverage   71.45%   72.45%   +0.99%
==========================================
  Files         197      197
  Lines        5210     5209       -1
  Branches      318      318
==========================================
+ Hits         3723     3774      +51
+ Misses       1445     1393      -52
  Partials       42       42

Flag
Coverage Δ

metapi
80.04% <50.00%> (+1.88%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

met-api/src/met_api/models/engagement.py
67.52% <50.00%> (+0.57%)
:arrow_up:

met-api/src/met_api/models/widget_documents.py
100.00% <0.00%> (+11.11%)
:arrow_up:

met-api/src/met_api/models/base_model.py
76.74% <0.00%> (+11.62%)
:arrow_up:

met-api/src/met_api/utils/token_info.py
100.00% <0.00%> (+14.28%)
:arrow_up:

met-api/src/met_api/resources/widget_documents.py
92.85% <0.00%> (+21.42%)
:arrow_up:

...i/src/met_api/services/widget_documents_service.py
86.95% <0.00%> (+52.17%)
:arrow_up:


Calling rest API without node wrapper

I am trying to send project setting to API server with javascript (no node js) here is my code
var project = {                template: 'template.aepx',                composition: 'main',                settings: {                  outputModule: 'mine',                  outputExt: 'mov',                  startFrame: 0,                  endFrame: 600             },             assets: [                 {                     type: 'project',                     src: 'http://localhost/nexTest/assets/template.aepx',                     name: 'template.aepx'                 }, {                     type: 'image',                     src: 'http://localhost/nexTest/assets/nm.png',                     name: 'nm.jpg'                 }, {                     type: 'image',                     src: 'http://localhost/nexTest/assets/2016-aug-deep.jpg',                     name: 'background.jpg',                     filters: [{                         name: 'cover',                         params: [1280, 720]                     }],                 }, {                     type: 'audio',                     src: 'http://localhost/nexTest/assets/deep_60s.mp3',                     name: 'track.mp3'                 }, {                     type: 'script',                     src: 'http://localhost/nexTest/assets/2016-aug-deep.js',                     name: 'script.js'                 }             ]          }
    $.ajax({
        type: "POST",
        url: "http://localhost:3000/projects",
        dataType:'json',
        form: JSON.stringify(project),
        success: function(result){
            console.log(result);
        },
        error: function(error) {
            console.log(error);
        }
    });`

but every time i get 404 from API server, what am i doing wrong ?

hello,
if you didnt change the ```js
let API_URL = 'http://localhost:3000/api/';
the url should be `http://localhost:3000/api/projects`
try changing it, might help :)

Thanks for the reply, I am able to create projects now but I am still stuck at sending correct data to API.
No matter what request I send to API it always overrides my assets values.
var project = { template: 'template.aepx', composition: 'main', settings: { outputModule: 'mine', outputExt: 'mov', startFrame: 0, endFrame: 600 }, assets: [ { type: 'project', src: 'http://localhost/nexTest/assets/template.aepx', name: 'template.aepx' }, { type: 'image', src: 'http://localhost/nexTest/assets/nm.png', name: 'nm.jpg' }, { type: 'image', src: 'http://localhost/nexTest/assets/2016-aug-deep.jpg', name: 'background.jpg', filters: [{ name: 'cover', params: [1280, 720] }], }, { type: 'audio', src: 'http://localhost/nexTest/assets/deep_60s.mp3', name: 'track.mp3' }, { type: 'script', src: 'http://localhost/nexTest/assets/2016-aug-deep.js', name: 'script.js' } ] }
this is the data which I am trying to send but renderer fails with the result:
Error message: ENOENT: no such file or directory, stat 'F:\programming\nex\temp\rk25cdbbb\result.mp4'
and data in db.json is:
{       "{\"template\":\"template.aepx\",\"composition\":\"main\",\"settings\":{\"outputModule\":\"mine\",\"outputExt\":\"mov\",\"startFrame\":0,\"endFrame\":600},\"assets\":[{\"type\":\"project\",\"src\":\"http://localhost/nexTest/assets/template.aepx\",\"name\":\"template.aepx\"},{\"type\":\"image\",\"src\":\"http://localhost/nexTest/assets/nm.png\",\"name\":\"nm.jpg\"},{\"type\":\"image\",\"src\":\"http://localhost/nexTest/assets/2016-aug-deep.jpg\",\"name\":\"background.jpg\",\"filters\":[{\"name\":\"cover\",\"params\":": {         "1280,720": ""       },       "uid": "Skl3K_b-b",       "state": "failed",       "createdAt": "2017-05-23T08:58:16.359Z",       "updatedAt": "2017-05-23T08:59:10.186Z",       "type": "default",       "assets": [],       "template": "template.aep",       "settings": {         "outputModule": "h264",         "outputExt": "mp4"       },       "composition": "comp1",       "actions": [],       "errorMessage": "ENOENT: no such file or directory, stat 'F:\\programming\\nex\\temp\\Skl3K_b-b\\result.mp4'"     }
my all values changed to some default values. please help.

just noticed, seems like you are sending data via ajax as from/url-encoded
        form: JSON.stringify(project),

but try changing it to the raw data:
        data: JSON.stringify(project),

Changed request to
var project = {         template: 'template.aepx',         composition: 'main',         settings: {             outputModule: 'mine',             outputExt: 'mov',             startFrame: 0,             endFrame: 600         },         assets: [             {                 type: 'project',                 src: 'http://localhost/nexTest/assets/template.aepx',                 name: 'template.aepx'             }, {                 type: 'image',                 src: 'http://localhost/nexTest/assets/nm.png',                 name: 'nm.jpg'             }, {                 type: 'image',                 src: 'http://localhost/nexTest/assets/2016-aug-deep.jpg',                 name: 'background.jpg',                 filters: [{                     name: 'cover',                     params: [1280, 720]                 }],             }, {                 type: 'audio',                 src: 'http://localhost/nexTest/assets/deep_60s.mp3',                 name: 'track.mp3'             }, {                 type: 'script',                 src: 'http://localhost/nexTest/assets/2016-aug-deep.js',                 name: 'script.js'             }         ]     }
 $.ajax({         type: "POST",         url: "http://localhost:3000/api/projects",         data: JSON.stringify(project),         success: function (result) {             console.log(result);         },         error: function (error) {             console.log(error);         }     });
still same result. I am really confused.

hmm, thats weird
something wrong with project thats arriving to the database
it has string encoding with backslashes, which means it because of JSON.stringify
maybe try making request without it ?

It worked! now all resources are correct as I give them, renderer creates the project folder  and copies all files but fails, giving me this error:

Response code 404 (Not Found)

whole project data is
{       "template": "template.aepx",       "composition": "main",       "settings": {         "outputModule": "mine",         "outputExt": "mov",         "startFrame": "0",         "endFrame": "600"       },       "assets": [         {           "type": "project",           "src": "http://localhost/nexTest/assets/template.aepx",           "name": "template.aepx"         },         {           "type": "image",           "src": "http://localhost/nexTest/assets/nm.png",           "name": "nm.jpg"         },         {           "type": "image",           "src": "http://localhost/nexTest/assets/2016-aug-deep.jpg",           "name": "background.jpg",           "filters": [             {               "name": "cover",               "params": [                 "1280",                 "720"               ]             }           ]         },         {           "type": "audio",           "src": "http://localhost/nexTest/assets/deep_60s.mp3",           "name": "track.mp3"         },         {           "type": "script",           "src": "http://localhost/nexTest/assets/2016-aug-deep.js",           "name": "script.js"         }       ],       "uid": "S1aistbWW",       "state": "failed",       "createdAt": "2017-05-23T10:15:01.152Z",       "updatedAt": "2017-05-23T10:15:35.438Z",       "type": "default",       "actions": [],       "errorMessage": "Response code 404 (Not Found)"     }
I have checked all assets they present on web server and I cannot figure out this error.

hm, this should be related to either image or mp3 or js or project file downloading (assets)
as far as i remember there can't be other possible places to make web request and receive 404

I looked properly at all the resources on my web server and in temp project folder after it tries to render the project. All files are copied except the template file and project fails to render giving error:

making request for projects...
looking for suitable projects...
[SkT12TfWb] setting up project...
[SkT12TfWb] downloading assets...

[SkT12TfWb] project failed

Error message: Response code 404 (Not Found)

[ "1280", "720" ]
try making them numbers
[ 1280, 720 ]
this should help
also this filters field is optional, so you can just skip it, if you want

@Inlife I am running into the same issue, I need the filter params, and it automatically converts them to string on the node server. do you know how to fix that, instead of skipping that issue?

these parameters are required to be numbers
what is automatically converting them ?
which node server ?

I am making an ajax POST request to the API Server
`   ItemJSON =  {
'template': 'project.aepx',
'composition': 'main',
'settings': {
'outputModule': 'h264',
'outputExt': 'mov',
'startFrame': 0,
'endFrame': 1800
},
'assets': [
{
'type': 'project',
'src': 'http://localhost/assets/nm05ae12.aepx',
'name': 'project.aepx'
},
{
'type': 'image',
'src': 'http://localhost/video/uploads/' + dir + '/' + file_name,
'name': 'background.jpg',
'filters': [
{
'name': 'cover',
"params": [1080 ,1080]
}
]
},
{
'type': 'audio',
'src': 'http://localhost/assets/deep_60s.mp3',
'name': 'track.mp3'
},
{
'type': 'script',
'src': 'http://localhost/video/uploads/' + dir + '/data.js',
'name': 'data.js'
}
]
} ;
$.ajax({
async: true,
type: "POST",
dataType:'application/json',
url: "http://localhost:3000/api/projects",
data: ItemJSON,
});`
then it is getting saved in db.json, but the filter params are converted to strings
"filters": [               {                 "name": "cover",                 "params": [                   "1080",                   "1080"                 ]               }             ]

not sure why stuff like this is happening
integer type params should be kept integers even after JSON.stringify call
i never had such issue tho, which possibly means that problem is inside the ajax call
maybe try some other way of calling it ?

i think it has something to do with the client that sends the json as string to the node server. do you know how to parse it in node/express?
i converted the json into a string on client and sent it to node. now i am getting the backslashes. all i need to to is to convert the string (with backslahses) to json in node/express... any idea?


Add 2.0.0-p598 version (used by MacPorts)

This adds the 2.0.0-p598 version use by the MacPorts ruby 2.0.0 version (as of 2015-01-05)

Thanks but as mentioned in the readme debugger doesn't support ruby 2.x

Then why the existing 2.x rubies in the repo?
On Jan 5, 2015 2:31 PM, "Gabriel Horner"<EMAIL_ADDRESS>wrote:

Thanks but as mentioned in the readme debugger doesn't support ruby 2.x
—
Reply to this email directly or view it on GitHub
https://github.com/cldwalker/debugger-ruby_core_source/pull/47#issuecomment-68762195
.


Consolidated/shared

Are you a customer of Octopus Deploy? Please contact our support team so we can triage your PR, so that we can make sure it's handled appropriately.
Background

Results

Fixes https://github.com/OctopusDeploy/Issues/issues/... (optional public issue)
Fixes https://github.com/OctopusDeploy/ResearchAndDevelopment/issues/... (optional private issue)
See How we use GitHub Issues (including this flowchart
Before

After

How to review this PR

Quality :heavy_check_mark:

Pre-requisites

[ ] I have read How we use GitHub Issues for help deciding when and where it's appropriate to make an issue.
[ ] I have considered informing or consulting the right people, according to the ownership map.
[ ] I have considered appropriate testing for my change.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.8 out of 9 committers have signed the CLA.:white_check_mark: tothegills:white_check_mark: acodrington:white_check_mark: slewis74:white_check_mark: LukeButters:white_check_mark: liam-mackie:white_check_mark: paulegradie:white_check_mark: veochen-octopus:white_check_mark: egorpavlikhin:x: corey.underdowncorey.underdown seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


Show clashes in bookmarks view

I have bookmarked both Bron Gondwana's JMAP lightning talk and Daniel Lobato's Foreman talk. They are both at 11am on Sunday, but there's no indication in the app that they clash.
Many years ago someone contributed this feature to my equivalent app for the N900 so maybe I should pay it forward …

Thanks for the suggestion, I'll look at how to implement this... but It'll probably be for next year.

I looked at how it's implemented in you N900 app and it's actually comparing each bookmark to every other one, in-memory. It's kind of heavy because it's in-memory it's acceptable. But this app reads bookmarks from a Database cursor so there's no way I perform a query for each bookmark, it would be way too slow. If you have a suggestion on how to implement this efficiently, feel free to share it.

I don't expect a subquery like in the patch above to be slow: the number of bookmarks is (expected to be) small in any case… This would give you the existence of a clash for a bookmark; the event detail view could perform a similar query to list the clashes.


UX statistics links behavior is not consistent with the header behavior

Describe the bug
The statistics link in the header navbar is contextualized to the DSpace Object that is currently visualized, site, community, collection or item. This is confusing for end users, especially users that are unfamiliar with DSpace (that could be the majority as statistics is by default available to anonymous users).
In https://github.com/DSpace/dspace-angular/issues/695 a similar contextual behavior is suggested also for the search but again this would be confusing for the users as the top level menu of a website are usually intended to offer a first level of navigation and it is not expected to be contextual.
Moreover, some contextual behavior already exists at the top of the dspace objects page and it is currently used to show a  button providing quick access to the edit feature.
To Reproduce

Visit the demo home page https://demo7.dspace.org/home , check the value of the statistics link https://demo7.dspace.org/statistics
Visit a community, collection or item page, for instance https://demo7.dspace.org/items/08cb98b3-faff-4682-8a7b-010778ccc600 check the value of the statistics link https://demo7.dspace.org/statistics/items/08cb98b3-faff-4682-8a7b-010778ccc600

in addition the statistics link is placed in different place of the navbar in the home page (last position) than in the item page (first position)
Related work
https://github.com/DSpace/dspace-angular/issues/695

@abollini : I agree with this.  Perhaps it's better to consider just moving the statistics link into the body of the page itself, rather than having it be a part of the header.  Having the link in the header make it appear more as a "global" (not context specific) option. Whereas, if it were in the body of the page, it might be a separate button or tab that brought you to the statistics for that specific page.
That said, I don't like the direction suggested by #695, as I worry that making the header options context specific can result in more confusing behavior.  As already noted in this ticket, the fact that that "Statistics" link is context-specific is confusing...so trying to make more of the header context-specific would not solve that issue.    I feel a better direction is to possibly ensure the header remains global (non-context-specific)....anything else might result in a very complex or messy header.

I'm bumping up the priority on this to high priority, as I've heard of similar confusion from several people now.  The current behavior of the "Statistics" header link is not ideal, and it may need some rethinking.

An alternative, or perhaps workaround until we find something better may be to change the wording of the statistics link in the header as the context changes as well: "Site Statistics", "Statistics for this Collection", etc
Or turn statistics into a dropdown menu, and always keep all options based on the context: so on a homepage that would be
Statistics ▼
|- All of DSpace

And on an item page
Statistics ▼
|- All of DSpace
|- Communty A
|- Sub-community B
|- Collection C
|- Item D


Script to check for outdated packages

This adds a script to check against PyPI if any of our recipes that pull their source from PyPI are outdated. Not that we necessarily have to update everything, but we might at least want to look at the release notes.
Current output:
$ ./check-outdated
behave-1.2.4 outdated. version 1.2.5 is on pypi
cvxpy-0.2.15 outdated. version 0.2.17 is on pypi
ecos-1.0.5 outdated. version 1.1.0 is on pypi
numdifftools-0.6.0 outdated. version 0.7.7 is on pypi
pybtex-docutils-0.2.0 outdated. version 0.2.1 is on pypi
python-coveralls-2.4.3 outdated. version 2.5.0 is on pypi
scs-1.0.6 outdated. version 1.0.7 is on pypi

Cool!
I wonder if there's a way to automatically rebuild all the pypi-derived packages with conda skeleton...

I'm skeptical that it's worth it. I want to actually read the release notes before updating packages.


Move all methods on Window back to methods

As brought up in https://github.com/rustwasm/wasm-bindgen/issues/834 these are both fallible (in the worker context Window isn't defined) and you can also have multiple Window objects!
Closes #834

@fitzgen do you think we should go ahead and add fn self_? Or go with just window() for now?

I think it is fine to go with just window right now.
The more I think about it, the more I think that the generic give-me-the-global-object function (what we've been calling self_) should probably be in js_sys, since you might want to get the global object in non-Web environments as well.

True yeah! I'm not sure what a good name for that would be though? fn global_scope() -> Object perhaps?

or just global?

Ok, done!


Use a builder pattern with chainable methods for Tesseract?

Hi, thanks for working on these bindings!  While I was looking at the docs and some of the tests, I wondered whether the API might be slightly more ergonomic if the Tesseract struct had chainable methods and was consumed by the OCR call.
For instance, if Tesseract had
pub struct Ocr { /* ... */ }

impl Ocr {
    pub fn new(language: &str) -> Ocr { /* ... */ }
    pub fn image_path(mut self, path: impl AsRef<Path>) -> Ocr { /* ... */ }
    pub fn image_data(mut self, data: &[u8]) -> Ocr { /* ... */ }
    pub fn ocr(mut self) -> Result<String, Error> { /* ... */ }
}

then users could write
    let text = Ocr::new(language).image_path(filename).ocr()?;

instead of writing
    let mut cube = Tesseract::new();
    cube.set_lang(language);
    cube.set_image(filename);
    cube.recognize();
    cube.get_text()

as in the current implementation of the ocr function.
In addition to being slightly nicer (imo) to write and read, it seems like there are also safety benefits, because you can provide a more misuse-resistant API (e.g., requiring the language parameter in Ocr::new).

Hi @hdevalence,
I agree.
I've started a branch to play around with similar  ideas. This commit in particular
f31f8d76df72a79952d22e9bed00a45c87ec9ac6
When I finish it, may I add you as a reviewer?

In addition to being slightly nicer (imo) to write and read, it seems like there are also safety benefits, because you can provide a more misuse-resistant API (e.g., requiring the language parameter in Ocr::new).

Tesseract will quit your program (panic?) if you try and read the text before initializing it or assigning it an image https://github.com/antimatter15/tesseract-rs/issues/16. I'm going to see if I can solve that by using the type system to make the user call initialize and call set-image before getting the text. And a nice side effect of this is the methods will become chainable.

SGTM!

@hdevalence the pull request is ready for review https://github.com/antimatter15/tesseract-rs/pull/20 🙂


Linear Search

Description
Linear search is a very simple search algorithm. In this type of search, a sequential search is made over all items one by one. Every item is checked and if a match is found then that particular item is returned, otherwise the search continues till the end of the data collection.
Input  : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Target : 5

Output : 4

DSA Program added successfully :tada:
Thanks for your contribution :hugs:


Typo in readme fixed

Hi @janko-m, I was installing your plugin and noticed small typo :)

Thanks @vlado!

Thank you for a great plugin!


Include the name of the repo in the filename for Bitbucket Server archives

When running a Bitbucket Server migration, the archive from the Bitbucket Server instance is stored in the bbs_archive_downloads directory. At the moment, the filename only contains the migration ID.
This makes it hard to identify which file is which, which makes life difficult when we want to ask a customer for a copy of their archive for debugging purposes.
We should include the name of the repo in the filename alongside the ID.
I started implementing this in https://github.com/github/gh-gei/pull/817, but it isn't fully done. It requires some reworking of the code, as currently the file on the Bitbucket Server and the filename we use for the CLI are the same, which will no longer be the case.
Todo

[ ] When downloading and write the archive to the disk, use {bbs-project-name}-{bbs-repo-name}-{export-archvie-job-id} naming format for the archive name.

Note: We don't have any control over the export archive name on the Bitbucket server since it's being generated by BBS.

Is it not possible for you to rename the archive with the parameters given to bbs2gh after it has been copy off the bitbucket server?
(--bbs-project / --bbs-repo )

Is it not possible for you to rename the archive with the parameters given to bbs2gh after it has been copy off the bitbucket server? (--bbs-project / --bbs-repo )

I agree that should be possible for us to do it this way.

@colas31, after being copied off of the Bitbucket server we can def. rename the archive, my comment was about renaming the archive somehow on the server itself. I misunderstood the issue's description when I first read it.


Have Badger Wallet open to the 'enter amount' page with an amount of 0/null

Have Badger Wallet open to the 'enter amount' page when Pay Button is configured to an amount=0/null.
It currently enters an amount of 0 into Badger and you have to click the EDIT button, enter the amount, then submit that through which is a few extra steps that shouldn't be necessary.
Maybe this is an issue on their end?

This is definitely their issue.


BLD: Fix build by removing -march=native flag on unix

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

closes #1
This PR uses the BUILD_WHEEL environmental variable to deactivate the -march=native compiler flag causing the crash reported in #1. This flag will be removed entirely in a newer version of the package.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Add text to "..value from previous tab..." help button

Advise along the lines of "if this combobox is empty, ensure previous tab has seen the request at least once"

Added help text for clarity/guidance when combobox doesn't contain the desired tab


Make the speculator serve up errors as plain text

... so that they are legible.

I'm sure I sent this PR to someone recently...
LGTM!


improve the overall testing infrastructure among different repos

As discussed in the meeting on 2020.06.02 with @dpakach @phil-davis @micbar

run UI tests only in phoenix & ocis repo (not in ocis-reva repo anymore)
in the phoenix repo run UI tests using the single-binary ocis app, but with the assets from the phoenix repo
in the ocis repo run UI tests against the built-in phoenix. Pull the test infrastructure from the phoenix repo
run API tests in reva, ocis-reva & ocis repo
wherever test dependencies are pulled in from an other repo use commit-id to identify the exact version of what is pulled

[ ] remove phoenix UI test pipeline from ocis-reva repo https://github.com/owncloud/ocis-reva/pull/266

[ ] specify branch and commit of ownCloud10 core API testrunner code to use in ocis-reva testing https://github.com/owncloud/ocis-reva/pull/267

[ ] specify branch and commit of ownCloud10 core API test runner code to use in the ocis repo

[ ] use the built-in phoenix when running UI tests in the ocis repo

[ ] specify branch and commit of phoenix UI test runner code to use in the ocis repo

[ ] (build and) use single-binary ocis app when running phoenix UI tests in the phoenix app

[ ] specify branch and commit of ocis to use when running phoenix UI tests in the phoenix app

[ ] adjust docs in https://owncloud.github.io/extensions/ocis_reva/testing/#use-existing-tests-for-bdd


splide vue violate Content Security Policy

Checks

[X] Not a duplicate.
[X] Not a question, feature request, or anything other than a bug report directly related to Vue Splide. Use Discussions for these topics: https://github.com/Splidejs/splide/discussions

Version
^0.6.7
Description

Refused to apply inline style because it violates the following Content Security Policy directive: "style-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-...='), or a nonce ('nonce-...') is required to enable inline execution. Note that hashes do not apply to event handlers, style attributes and javascript: navigations unless the 'unsafe-hashes' keyword is present.
Inline Style Attribute violate csp
Reproduction Link
No response
Steps to Reproduce

activate csp headers
(in my case: content-security-policy: style-src 'self';)

Expected Behaviour
no error messages in console and completely support Content Security Policy in on of the best slider that can i seen

By design. Splide requires inline styles.
I used to try to remove them, but it leads terrible performance issue.


Application Exception: Exception during making request

This is an issue created automatically by GrammarNazi when an exception was captured.
Date (UTC): 12/07/2022 14:01:14
Exception:
Telegram.Bot.Exceptions.RequestException: Exception during making request
---> System.Net.Http.HttpRequestException: An error occurred while sending the request.
---> System.IO.IOException: The response ended prematurely.
at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.HttpConnection.SendAsyncCore(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Telegram.Bot.TelegramBotClient.g__SendRequestAsync|21_0[TResponse](HttpClient httpClient, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at Telegram.Bot.TelegramBotClient.g__SendRequestAsync|21_0[TResponse](HttpClient httpClient, HttpRequestMessage httpRequest, CancellationToken cancellationToken)
at Telegram.Bot.TelegramBotClient.MakeRequestAsync[TResponse](IRequest`1 request, CancellationToken cancellationToken)
at Telegram.Bot.Polling.DefaultUpdateReceiver.ReceiveAsync(IUpdateHandler updateHandler, CancellationToken cancellationToken)
Exception caught counter: 12.

Could be related to #514


Generic business

For your final project, you must analyze, design, implement, and test a website that you will develop for a generic business (coffee shop, food store, Italian restaurant, etc...).

We decided to create a website about coffee about discuss, and the shop's name is Epic Cofa.


Setting an entity's parent to null makes it a root entity

PR Details
If you set the parent of an entity to null it won't be removed from the scene
Related Issue
Closes #1095
Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)

This is a major breaking change, I'm not sure how we're supposed to communicate to our users that they should fix their stuff to align with this PR, and I'm not convinced that users expect this behavior more than the current one or that it communicates better how the scene/hierarchy system works under the hood.

I understand why it might be odd that setting the parent to null will also set the scene to null, but I'd also say that a change could break too much existing code. I'd rather improve documentation to inform the programmer what happens and what options there are. Also, we could add an extension method that makes the entity a root entity in the scene...

yep right, changing this might break many projects, would be better to just improve the docs so users know what happens when setting the parent to null


David output is blank (deps are not checked)

Looks like David check task is buggy. With a standard check-build configuration, the task is executed w/o checking or outputting anything (no dependencies up to date message).
If I manually downgrade a random dependency, David still does not complaint that dependencies are out-to-date.
Would that be a bug introduced recently, or a misconfiguration on my side? - I remember it used to work on older projects I had, like 4 months ago.
Here's my .checkbuild conf file:
{
  "checkbuild": {
    "enable": ["jshint", "jscs", "nsp", "david"],
    "continueOnError": true,
    "allowFailures": false
  },
  "jshint": {
    "args": ["src/**/*.js"]
  },
  "jscs": {
    "args": ["src/**/*.js"]
  },
  "nsp": {}
}

Note that other tasks are successfully applied (JSHint fails/validates as expected, etc).
Cheers!

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/25477505-david-output-is-blank-deps-are-not-checked?utm_campaign=plugin&utm_content=tracker%2F7304231&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F7304231&utm_medium=issues&utm_source=github).

Hello @valeriansaliou,
I tested it and it worked even without any david:{} configuration object. Do you have check-build last version? 1.7.1 ?
To verify:
node -e "console.log(require('`npm bin -g`/../lib/node_modules/check-build/package.json').version);"

Yep, 1.7.1 is being used.
➜  ~  node -e "console.log(require('`npm bin -g`/../lib/node_modules/check-build/package.json').version);"
1.7.1

Though, I'm not using check-build from global context but rather from local (package) context.
It is defined as a devDependency as:
"devDependencies": {
  "check-build": "^1.7.1"
}

hum, I don't see what could go wrong... I added some debug in v2.0.0 and refactored a little the internals.
npm install check-build@latest -S && DEBUG=* `npm bin`/check-build

@FGRibreau okay, got some more insight for you there: https://infinit.io/_/7h9eWGe
When I execute david separately from its bare binary file, it "succeeds" at failing on outdated deps.

Oh crap! Got it.
Looks like your default configuration doesn't check for devDependencies by default, although david binary defaults does.
Got a proper return w/ the following david options in .checkbuild:
``json
{
"david": {"dev":true,"stable":true,"ignore":[]}
}

Anyway, should be specified in the README or anywhere else, can submit a MR if you'd like.

Fixed in https://github.com/FGRibreau/check-build/commit/cf049436ecccf1e4dda3ec9087c099977b4c16de, closing :)


Line breaks in the md file that cause letters to overlap in documentation

As the title says. It seems to be intermittent and corrects itself after a minute or so. When looking at my original readme.md it seems it is the last letter before a linebreak in the MD file and the first letter in the next line that overlap in Pub documentation on occasions.

Sounds similar to #14

Yes, that's it! And it's cause by line breaks

Closing this as this seems the same as #14


Drop to the specific place

This is not the issue. I am asking how to implement for the following scenario.
**I am using ui router. **
I've nested states (ParentController). Already I've implemented for the dragListeners1 for sorting and that's working fine.
In Child state (ChildController), I've implemented the drag functionality.
Now I want to move the items from dragListeners2 (child states) to dragListeners1 (parentstates) but not from dragListeners1 to dragListeners2 (This is happening now).
I cannot drag and drop the items from dragListeners2 to dragListeners1 and I want to disable the sorting in **dragListeners2 **itself.
How can I do that?
LoggedInView

Plz refer the Docs and Demo code. Use the callbacks exposed.


fix(android): avoid corrupting base64 files w/ Share.open

Overview
Follow-on to https://github.com/react-native-community/react-native-share/pull/856, I noticed that sharing a base64'd PDF would lead to a corrupted file since we're dropping the first 8 characters from the data part of the URI. Hoping @deecewan can confirm whether this is compatible with this work / whether 16 was in fact intended.
Might be related to https://github.com/react-native-community/react-native-share/issues/839
Test Plan
Added a base64 dummy PDF to the sample app and confirmed it opens in Drive in my emulator

Hey 👋 this should be fine. IIRC i only did that to make it match the existing behaviour the code already had. If this works, I hav e no objections to it 😄

:tada: This PR is included in version 3.8.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Streaming concept, also for multiple components

If you can send status for mutiple components in a single message, it would reduce overhead, but how would it affect MQTT retaining?
Streaming might include keyframes, which could be retained, and deltas which would not be retained.

Discussion at https://github.com/rsmp-nordic/rsmp_core_v4/discussions/27


ExponentialRetryPolicy materializes GetIntervals()

The constructor of ExponentialRetryPolicy materializes the IEnumerable<TimeSpan> returned from GetIntervals(). This seems directly opposed to its nature:

It is an iterator function.
It treats Int32.MaxValue as unlimited.

When using retryLimit: Int32.MaxValue, which GetIntervals() explicitly special-cases, the loop is infinite (until ToArray() tries to allocate an array that is too large).
Even when avoiding Int32.MaxValue, when trying to accommodate a very large number of attempts, the materialized array can take a lot of memory, when the intervals could just be calculated on-the-fly. Materialization also incurs a lot of calls to Random.Next() that would otherwise have been amortized over the lifetime of the policy instance.
A good alternative property type to TimeSpan[] might be IEnumerator<TimeSpan>, since it enforces forward-only behavior. It is a public property, unfortunately, so I'm not sure how far the impact reaches.
I ran into this issue when I was trying to use exponential message retries in MassTransit 7.0.7.

As a side-note, there also seems to be the potential for a bug in the _retryLimit == int.MaxValue special case in GetIntervals():
Random random = new Random();
for (int i = 0; _retryLimit == int.MaxValue || i < _retryLimit; i++)
{
	int num = (int)Math.Min((double)_minInterval + Math.Pow(2.0, i) * (double)random.Next(_lowInterval, _highInterval), _maxInterval);
	yield return TimeSpan.FromMilliseconds(num);
}

When i wraps around, i will be negative, resulting in negative time spans, if I'm not mistaken. Next, i will be small again (0, 1, 2, ...), resulting in shorter time spans than were returned before, when i was large.
_retryLimit == int.MaxValue seems to indicate the intent of supporting infinite retries (for which I salute you). The use of a ulong as the loop variable might help to avoid the wrap-around troubles.

Yeah, it's a sharp tool. Specifying a retry limit that high is, well, not recommended.

FYI, I finally got around to cleaning this up a bit.

Is it intentional that exceeding _maxInterval short-circuits the loop on line 68?
I'm pondering what my expectations would be. It's fairly easy to specify a maxInterval that is reached more quickly than a given retryLimit, due the the former's exponential nature.
If I specify maxInterval=TimeSpan.FromSeconds(60) and retryLimit=100, then I would honestly expect 100 retries if necessary. After all, to me, the retryLimit is something I am taking clear control over, whereas the maxInterval is just a maximum, where I expect things to scale in between in some exponential fashion.
Currently, to achieve the exact retryLimit I am specifying, I have to (A) know the scaling formula and (B) predict the result of the random generator.
I would expect one of two scenarios:

Either maxInterval is reached at some attempt (for example at attempt number 10) and then stays at my given ceiling for the remaining attempts;
or the intervals gradually scale up to maxInterval, i.e. they scale more slowly.

Since the second option gets rather convoluted with being exponential, I would actually expect the first.
Might that make more sense than specifying a maxInterval and retryLimit where only one of them is going to end up being the determining factor?

Did you miss something? It still retries up to the RetryLimit. Once the delta reaches the maximum interval, it stops calculating and just uses that max interval for each subsequent retry.

I did miss something! I'm guessing this is what causes the behavior you describe:
delta = (int)Math.Min(_minInterval + Math.Pow(2, i) * random.Next(_lowInterval, _highInterval), _maxInterval);
So the delta never exceeds _maxInterval.
My confusion stemmed from the loop containing that line:
for (var i = 0; i < RetryLimit && delta < _maxInterval; i++)
It has a termination condition once delta reaches _maxInterval. I'm wondering if that condition can be hit at all.

It does, and the unit tests verify it.

I stand corrected.

No worries, appreciate the concern to recheck the logic!


[Feature Request] Alternative "Fill Recipe" behaviour

The idea is, add a config option whether it should be possible to always fill the recipe and skip missing ingredients.
The main reason behind this is, sometimes while hovering over this button, it does not show what is missing (maybe because EMI is not integrated into the mod itself and just uses JEI background?) and therefore it's hard to say what is missing.

This would also be potentially useful when using handlers attached to a persistent inventory, that keep the crafting ingredients in place after leaving the screen rather than spitting them back at you. You could fill what you have and then go off to find the missing bits.

Идея состоит в том, чтобы добавить опцию конфигурации, позволяющую всегда заполнять рецепт и пропускать недостающие ингредиенты.
Основная причина этого в том, что иногда при наведении на эту кнопку не показывается то, чего не хватает (может быть, потому, что EMI не интегрирован в сам мод и просто использует фон JEI?), и поэтому сложно сказать, чего не хватает.

It would also be interesting to see if you know the reverse recipe, for example, you clicked on a cobblestone and showed you branches from a variety of recipe options in reverse order, yes, of course there are hundreds and thousands of possible items, but it would be purely interesting to look at how much everything can be created from one stone, in the form of a huge recipe tree, and not just one item.


Support for RFC6570 URI Templates

Many API's require some form of parameterisation of the URI.
For example:
/users/{user}/repos
or a more complex and useful example (that would be harder to solve cleanly with simple interpolation)
/conversations/{conversationIdentifier}/messages{?max,after,before}
that could expand to something like
/conversations/547104ac-74b6-441a-bf9c-eda489498005/messages?max=30&after=1994-11-05T08:15:30-05:00
or
/conversations/547104ac-74b6-441a-bf9c-eda489498005/messages?max=30&before=1994-11-05T08:15:30-05:00
It would be really great if we could provide this as a part of or as an extension to Moya to make integration super easy.
For an RFC compliant implementation of URI's I'd recommend @kylef's URITemplate.
My main issue is that I'm not too sure of the best way to integrate this into Moya with minimal impact to the API.

Neat! Might go well with https://github.com/Moya/Moya/issues/73 if anyone is interested.
Agreed with your concerns – getting this to be an optional part of Moya will be tricky. Suggestions welcome!

Nice idea, @DanielTomlinson. I guess this could be part of the path within MoyaTarget? However, I can see this to be difficult to implement in a generic way.

I've added this for consideration to the v5 milestone, since now's the opportunity to break APIs (though not too much).

Is this something we might be able to take on for 8.0.0 still? Not sure how this would fit in the API as it stands right now. @Moya/contributors, anyone?

At first look, this seems doable with the associated values approach that we use--though might not be the most elegant way to handle it. Should we close this?

I think it'd be nice to see if we can improve here in the future.

Sounds good to me.

Looked at this more and took a look at @kylef's URITemplate.
I'm not sure I see the advantages here. This is what our current approach would look like:
var path: String {
  switch self {
  case .repo(let user, let repo):
    return "/\(user)/\(repo)"
  }
}

Using the approach from URITemplate, we could get something like this:
var path: String {
  switch self {
  case .repo(let user, let repo):
    return uri(template: "/{user}/{repo}", values: ["user": user, "repo": repo])
  }
}

This would introduce more expensive and fragile Regexes into constructing paths, has fewer compiler checks, and doesn't really look more readable to my eyes (granted Swift's string interpolation looks kinda ugly in paths).
Using reflection, I could get something like this:
var path: String {
  switch self {
  case .repo:
    return uri(template: "/{user}/{repo}")
  }
}

That does look nicer than the previous example, but it adds the additional drawbacks of requiring that the tags of the URI template match the order and number of associated values in the enum case, so it would be harder to associate any values not in the URI with the enum case. Also, you wouldn't actually be matching the tags--you could use "/{dog}/{cat}" and get the same result.
So at least in my opinion, our approach is superior because no regex and compiler checks. Maybe I am missing something though? 🤔

I agree, and think our approach is better, at least according to Moya's vision:
Some awesome features of Moya:

- Compile-time checking for correct API endpoint accesses.

Which I think the current approach seems to do. Closing this. If anyone disagrees or has an even better solution, please feel free to reopen.

I agree with @BasThomas, my intentions for using URITemplate in iOS applications are a little different than the goals of Moya. The compile-time checking in Moya is making upfront assumptions on how the API currently works and assumes that to always be the case in the future.
The goals behind URI Template (and other libraries I created using URI Template) was to communicate with APIs using the REST architectural style similar to the GitHub API. This would allow machines to dynamically understanding how the API works instead of it having up-front hard-coded knowledge.
Allowing a machine to learn how to communicate with a foreign API providing it has shared semantic understanding of the given domain.
Instead an approach without hard-coding upfront knowledge of the API layout might look as follows:
let client = Client()

// Find the master commit for kylef/URITemplate.swift repository on GitHub
client.enter("https://api.github.com")
  .flatMap { client.load($0.transition("repository", ["owner": "kylef", "repo": "URITemplate.swift"]) }
  .flatMap { client.load($0.transition("branches", ["branch": "master"]) }
  .map { $0.attributes["commit"] }

Where I've entered the API at it's root and  then followed some of the transitions the API has offered. The client has an understanding of a repository and know a specific owner and repository I'm looking for.
{ "repository_url": "https://api.github.com/repos/{owner}/{repo}" }

NOTE: The client could just as easily look at all repositories for a user by not expanding the repo component of the URI.
Then following a transition called branches with a branch parameter.
{ "branches_url": "https://api.github.com/repos/kylef/URITemplate.swift/branches{/branch}" }

Obviously this example makes a lot of assumptions about the features in the API so it should instead check for the features and the types of variables that can be supplied to the transitions. For brevity and simplicity the example is as-is.

Thanks for weighing in, @kylef! I think it's a really great tool, just not for Moya. :)


Multiplayer doesnt work

When i try to join a friend i get this message

does it not work in multiplayer?

it works in multiplayer, just not with steam multiplayer
i might add steam multiplayer in the future


Add DateOnly support.

This PR adds support for setting cells through a DateOnly value.

It seems the build is failing because it uses .NET 5. .NET 5 is end-of-life and not supported anymore. Will it be possible to upgrade to .NET 6, the LTS release?

I've fixed the build issue.

Build looks good. How does the PR itself look?

Since you changed the ICell interface, please change XSSFCell and SXSSFCell as well. They both implements ICell interface.
I'm curious why there is no compilation error if XSSFCell and SXSSFCell doesn't have SetCellValue(DateOnly value) method. Maybe a bug of .NET 6? I'm not sure

How does it look? Can we merge this?

LGTM


Fix tip alert rendering

Why:
This PR provides a fix for a Note alert rendering in the this article.
Closes: #35364

What's being changed (if available, include any code snippets, screenshots, or gifs):

Check off the following:

[x] I have reviewed my changes in staging, available via the View deployment link in this PR's timeline (this link will be available after opening the PR).

For content changes, you will also see an automatically generated comment with links directly to pages you've modified. The comment won't appear if your PR only edits files in the data directory.

[x] For content changes, I have completed the self-review checklist.

Closing this per comment here 💛


Make poutine.broadcast as fast as hand parallelization

Currently, poutine.broadcast will be slower than hand-parallelizing the same example using .expand_by. This is because poutine.broadcast uses .expand which constructs new distribution instances under the hood, whereas .expand_by reuses distribution instances.
Example:
In [10]: import torch
In [11]: prof_expand = lambda d: d.expand((1000, 1000, 10)).log_prob(torch.ones(1000, 1000, 10))
In [11]: prof_expand_by = lambda d: d.expand_by((1000, 1000, 10)).log_prob(torch.ones(1000, 1000, 10))

In [26]: %timeit prof_expand(dist.Normal(0., 1.))
226 ms ± 4.37 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In [27]: %timeit prof_expand_by(dist.Normal(0., 1.))
121 ms ± 1.32 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

This is understandable as constructing distribution instances isn't cheap. For many small models, this difference might not be perceptible, but with lots of sample sites and iaranges, the difference could add up for more complicated models.
With more usage of poutine.broadcast, it will be good to start thinking about how we can make .expand more performant. A couple of options are:

defer to .expand_by whenever possible.
implement .expand in torch.distributions in a way that reuses those instances or at least bypasses some of the expensive steps in __init__ (I haven't thought through this fully, and it might not be possible).

It sounds reasonable to defer to .expand_by() whenever possible, since this is not very intrusive.

Deferring to .expand_by mostly fixes the issue, but I discovered that there is another source of slowness in the Dice class when the num_particles dimension is anything but the rightmost:
class Dice(object):
    ...
    def in_context(self, shape, ordinal):
        ...
        # TODO replace this naive sum-product computation with message passing.
        log_prob = sum(self._get_log_factors(ordinal))

This arises due to summing a tensor with a large batch dimension (due to num particles for instance) that is not the right-most dimension.
In [13]: %timeit sum([np.random.randn(2, 1000000, 1, 1), np.random.randn(2, 1, 1000000, 2, 1)])
258 ms ± 10.2 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

In [14]: %timeit sum([np.random.randn(2, 1, 1, 1000000), torch.randn(2, 1, 1, 2, 1000000)])
131 ms ± 4.23 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

While the difference seems great, the actual impact is fairly low. e.g. the test_enum.py::test_elbo_iarange_iarange (set of 81 total tests) on my local mac notebook:

Without any fixes - 46 seconds.
Deferring to .expand - 35 seconds.
Using iarange as rightmost - 30 seconds.

I don't suppose there is an easy fix for this. I will change the priority of this issue once the .expand -> .expand_by PR is merged.

Bumping the priority lower now that #1187 is merged.

@neerajprad what's the status of this in PyTorch 1.0?

This can be closed now since we have already implemented .expand methods directly for each of the distributions. There are still a few optimizations we can make there. e.g. https://github.com/pytorch/pytorch/issues/11389 but that's a micro-optimization on the pytorch side.


Visibility Issues Guidance

I realize this isn't a C++ support forum, but I was wondering if you had any guidance on compiling with "hidden" visibility of dependencies.
For example, I build OIIO + dependencies completely statically, but want all the dependencies of OIIO to be hidden so that (for example) OIIO's boost dependency doesn't get used for things out of scope of the OIIO libraries. Is this possible to do? Any special incantation for boost b2 compile I need to do?
A warning I see a million times during OIIO compilation (different symbols, same warning):
ld: warning: direct access in function 'boost::exception_ptr boost::exception_detail::get_static_exception_object<boost::exception_detail::bad_alloc_>()' from file '{redacted}/boost-1.79.0/lib/libboost_thread-mt.a(thread.o)' to global weak symbol 'guard variable for boost::exception_ptr boost::exception_detail::get_static_exception_object<boost::exception_detail::bad_alloc_>()::ep' from file '../../lib/libOpenImageIO_Util.a(sysutil.cpp.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
Additionally I will see some warnings like this:
{redacted}/oiio-<IP_ADDRESS>/src/include/OpenImageIO/benchmark.h:29:1: warning: 'always_inline' attribute ignored [-Wignored-attributes]
OIIO_FORCEINLINE T const& DoNotOptimize (T const &val);
^
{redacted}/oiio-<IP_ADDRESS>/src/include/OpenImageIO/platform.h:393:52: note: expanded from macro 'OIIO_FORCEINLINE'
#    define OIIO_FORCEINLINE inline __attribute__((always_inline))
                                                   ^
{redacted}/oiio-<IP_ADDRESS>/src/include/OpenImageIO/benchmark.h:431:33: note: conflicting attribute is here
inline T const & __attribute__((__optnone__))

Thanks!

No worries, Greg, I'm actually always looking for ways to improve the build and dependency experience. I don't consider myself an expert in a lot of this area, and am trying to learn myself.
Your second example related to the always_inline/optnone conflict, I believe, should be fixed by #3444. It's in both master as well as the dev-2.3 staging branches already, and I expect it to be in the next <IP_ADDRESS> release scheduled for July 1.
I haven't seen the first warning before, the one about boost. I'm not really sure I understand it myself. So you're saying that this is a warning you're seeing when building YOUR app, by linking OIIO? Or when you are building OIIO itself?
We do try to hide symbols. One way we do it is here and using this file and some extra logic here. The idea is that we are defaulting our own symbols to be hidden except if they are part of the public APIs, and also trying to suppress the visibility of symbols of any of our dependencies.
Though I see now that some parts of this logic are specific to Linux. So maybe that's why it's not working for you as expected.
Which platform are you using, and which compilers?

Thanks for replying so soon!
I'm seeing the "This was likely caused by different translation units being compiled with different visibility settings. " warning during OIIO compilation (they also show up when compiling my app when linking OIIO, too, though!).
I'm targeting macOS universal - I wonder if that dependent library hiding would work out of the box on macOS - I'll give it a go!

I have no recollection now about why that dependent library hiding seems crafted only for Linux (and FreeBSD and GNU) but excludes MacOS. I do a lot of my development on a Mac laptop, so it's not like I didn't probably try it. I suspect you're about to find out why it's like that.  :-)

OK, so apologies: these warnings were only coming up during the executable (like iconvert) link phase at the very end of olio compilation.
Adding "Darwin" to the list of supported CMAKE_SYSTEM_NAME sets the variable correctly and compiles just fine - it doesn't seem to affect these warnings though.
I did make some progress, however. I use CMake for building OIIO, so I added
-DCMAKE_CXX_FLAGS="-fvisibility=hidden -fvisibility-inlines-hidden"

and that completely cleared up any boost visibility warnings. However, I still am getting OpenEXR (2.5.x - macOS universal2 build support on 3.x is still iffy) warnings:
/ld:1:1: direct access in function 'OpenImageIO_v2_3::OpenEXRInput::PartInfo::parse_header(OpenImageIO_v2_3::OpenEXRInput*, Imf_2_5::Header const*)' from file '../Vendor/lib/OpenImageIO//libOpenImageIO.a(exrinput.cpp.o)' to global weak symbol 'typeinfo for Imf_2_5::TypedAttribute<Imath_2_5::Matrix33<float> >' from file '../Vendor/lib/OpenImageIO//libOpenImageIO.a(exroutput.cpp.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
/ld:1:1: direct access in function 'Imf_2_5::Header::hasName() const' from file '../Vendor/lib/openexr//libIlmImf-2_5.a(ImfHeader.cpp.o)' to global weak symbol 'typeinfo for Imf_2_5::TypedAttribute<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >' from file '../Vendor/lib/OpenImageIO//libOpenImageIO.a(exroutput.cpp.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.

The boost::asio dependency is the main culprit for me. I have a plugin that shares memory space with other plugins that use different versions of asio (Why isn't boost ABI stable?!). Turns out there is a hard to find compiler definition (BOOST_ASIO_DISABLE_VISIBILITY for hiding ASIO symbols as they don't respect the usual methods of hiding.
This is "good enough" for my current issue, though there are plenty of other boost symbols that get leaked (not sure what to do there!)
if (${CXX_VISIBILITY_PRESET} STREQUAL "hidden" AND VISIBILITY_MAP_FILE AND
    (CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_CLANG) AND
    (CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU" OR CMAKE_SYSTEM_NAME STREQUAL "Darwin"))
    # Linux/macOS/FreeBSD/Hurd: also hide all the symbols of dependent libraries
    # to prevent clashes if an app using this project is linked against
    # other versions of our dependencies.
    add_compile_definitions(BOOST_ASIO_DISABLE_VISIBILITY)
    set (VISIBILITY_MAP_COMMAND "-Wl,--version-script=${VISIBILITY_MAP_FILE}")
endif ()


() Invalid expression: Could not find a property named 'content' on type 'search.document'. Parameter name: $select Code: Message: Invalid expression: Could not find a property named 'content' on type 'search.document'. Parameter name: $select

Please provide us with the following information:

This issue is for a: (mark with an x)
- [ ] bug report -> please search issues before submitting
- [ ] feature request
- [ ] documentation issue or request
- [ ] regression (a behavior that used to work and stopped in a new release)

Minimal steps to reproduce

Any log messages given by the failure

Expected/desired behavior

OS and Version?

Windows 7, 8 or 10. Linux (which distribution). macOS (Yosemite? El Capitan? Sierra?)

Versions

Mention any other details that might be useful

Thanks! We'll be in touch soon.

Please provide more details, hopefully with screenshots, what are you trying to do when you get that error and have you uploaded your documents already? Does your index has any data?


Minor alignment fixes

Thanks, but these are fine as-is. The primary reason I align things like this across lines is for editing multiple lines at once; it's unlikely you'll need or want to edit these at the same time.

@mdo Not to be a nitpick nelly, but I noticed the same changes were later made and approved :(
https://github.com/twbs/bootstrap/commit/54908a95a87b592d81df3231823979c75917d57a#diff-0a2f34e035b36da00e5ac44b48a707df
(I'm just hoping to contribute more and more)

Sorry about that @entozoon. I was rushing through things the last few days and decided against this with the Hound errors. I later fixed it for a more comprehensive PR and didn't swing back to this. Please do keep contributing! <3

No problem, will do! :)
Thanks for the reply