[core] Support OpenRaster format

Please, before submitting a new issue verify and check:

[x] I tested it on latest raylib version from master branch
[x] I checked there is no similar issue already reported
[x] My code has no errors or misuse of raylib

Issue description
Support for OpenRaster standard would be nice. It's basically a zip file that contains information on things such as layers and other data so editors can use them independently of each other. In the zip archive, there's a file called mergedimage.png that is the "final product" so to speak. This is what the library should load when pointed to a .ora file. Currently, the only way to use these files is to make your build system extract these files at the Install Target.
As you can see, quite a few FOSS image editors support the format:
https://en.wikipedia.org/wiki/OpenRaster#Application_support

@Charadon It seems the format is still in draft mode and it does not seem to be any C single-file header-only implementation to integrate it in raylib. For now it's out of scope, feel free to comment if such implementation gets available.

@Charadon It seems the format is still in draft mode and it does not seem to be any C single-file header-only implementation to integrate it in raylib. For now it's out of scope, feel free to comment if such implementation gets available.

Well, there shouldn't be a need for a ORA specific header file as ORA is just a zip file. Since raylib can already read PNG files, it's basically 95% the way there. You can use a single-header library such as miniz (https://github.com/richgel999/miniz) to read the zip file, and then load the PNG file normally.

@Charadon Still, it requires that implementation and afaik, miniz is not single-file header-only.

@Charadon Still, it requires that implementation and afaik, miniz is not single-file header-only.

It's actually not hard to make miniz a single header library. You can use a tool like quom (https://github.com/Viatorus/quom) to make it one. Also, I can see about implementing an ORA loader into raylib. But I'd want to know if it'd get merged or not before I start.

@Charadon thanks but no plans to add a big library like miniz only to support a format still in draft. It adds uneeded extra complexity and maintenance work to raylib for a feature that most users don't need.

@Charadon thanks but no plans to add a big library like miniz only to support a format still in draft. It adds uneeded extra complexity and maintenance work to raylib for a feature that most users don't need.

That's a shame. Thought it would be a good idea since apparently Photoshop's format is supported, that it'd be nice if the open standard alternative was too. As for miniz, I could always strip it down to what's needed to open a zip file.
Guess for now, i'm workaround of having meson use unzip at install target will do =(


SectionList renderItem duplicate

When i use SectionList,console is duplicate.My code:
render() {
return (
<SectionList
renderItem={this._renderItem}
renderSectionHeader={({section}) => {section.title}}
sections={[
{title: 'Title1', data: ['item1', 'item2']},
{title: 'Title2', data: ['item3', 'item4']},
{title: 'Title3', data: ['item5', 'item6']},
]}
keyExtractor={(item, index) => this._renderKeyExtractor(item,index)}
/>
);
}
_renderItem({item,index}) {
console.log(item)
return <Text key={index} style={{textAlign:'center',color:'red'}}>{item}
}
consoleResult:
item1
item2
item3
item4
item5
item1
item2
item3
item4
item5
item6
why is it so...
Environment
Environment:
OS: macOS Sierra 10.12.6
Node: 6.10.1
Yarn: 0.27.5
npm: 5.6.0
Watchman: 4.9.0
Xcode: Xcode 9.2 Build version 9C40b
Android Studio: 2.2 AI-145.3360264
Packages: (wanted => installed)
react: 16.0.0-alpha.12 => 16.0.0-alpha.12
react-native: ^0.50 => 0.50.4
Steps to Reproduce
1.new a project and nom install
2.copy code and run

Your component containing the SectionList is likely doing a re-render which will make the SectionList re-render the items as well. To get around this you may want to pass the SectionList an "extraData" prop so that it only re-renders when the "extraData" prop changes.
https://facebook.github.io/react-native/docs/sectionlist.html#extradata

@jamsch Do you mean that SectionList is repeatedly rendered?

@WangJian0
Sorry, I didn't read the full question. Your SectionList is re-rendering because the "sections" prop on the SectionList has been updated. You should monitor the "sections" prop to see if there are any changes.

@jamsch But my sections are not changeable directly.
sections={
[
{title: 'Title1', data: ['item1', 'item2']},
{title: 'Title2', data: ['item3', 'item4']},
{title: 'Title3', data: ['item5', 'item6']},
]
}


test: add unit tests for pre push linting/testing

Description:
Realized our tests were not catching that the linting/testing lines had been removed from pre-push hook
Related:
noticed when updating #31
Visual:

Tests:
Add Unit Tests to check that linting/testing is being done
TODO:

[x] Updated README documents
[x] Complete PR Body

!merge


ISS-179 : during postgres compile  failure with stuck spinlock

during postgres compile  failure with stuck spinlock.
running bootstrap script ... 2024-10-13 14:13:23.589 CEST [178158] PANIC:  stuck spinlock detected at LockBufHdr, bufmgr.c:5781
Aborted (core dumped)
child process exited with exit code 134

will be fixed in 1.0.23


Training crashes when using eval table and training with sample_packing

Please check that this issue hasn't been reported before.

[X] I searched previous Bug Reports didn't find any similar reports.

Expected Behavior
To use `eval_table:
eval_table_size: 4
eval_table_max_new_tokens: 128

one is told to set:
sample_packing: true
eval_sample_packing: false

Which allows sample packing to be used in training, but not during testing.
Current behaviour
Instead, I get the following stacktrace:
  File "/workspace/axolotl/src/axolotl/cli/train.py", line 38, in <module>
    fire.Fire(do_cli)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 141, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 475, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 691, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
  File "/workspace/axolotl/src/axolotl/cli/train.py", line 34, in do_cli
    train(cfg=parsed_cfg, cli_args=parsed_cli_args, dataset_meta=dataset_meta)
  File "/workspace/axolotl/src/axolotl/train.py", line 118, in train
    trainer.train(resume_from_checkpoint=resume_from_checkpoint)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 1591, in train
    return inner_training_loop(
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 1999, in _inner_training_loop
    self._maybe_log_save_evaluate(tr_loss, model, trial, epoch, ignore_keys_for_eval)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 2328, in _maybe_log_save_evaluate
    metrics = self.evaluate(ignore_keys=ignore_keys_for_eval)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 3062, in evaluate
    eval_dataloader = self.get_eval_dataloader(eval_dataset)
  File "/workspace/axolotl/src/axolotl/core/trainer_builder.py", line 201, in get_eval_dataloader
    MultipackDistributedDataloader(
  File "/workspace/axolotl/src/axolotl/utils/dataloader.py", line 161, in __init__
    dataset.data.column("position_ids")
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/datasets/table.py", line 390, in column
    return self.table.column(*args, **kwargs)
  File "pyarrow/table.pxi", line 1611, in pyarrow.lib._Tabular.column
  File "pyarrow/table.pxi", line 1547, in pyarrow.lib._Tabular._ensure_integer_index
KeyError: 'Field "position_ids" does not exist in schema'

If I set sample_packing: false (disabling it for training also), or if I set eval_table_size: 0 (disabling the eval table), then this works fine.
Steps to reproduce
Take examples/mistral/qlora.yaml, and set:
eval_sample_packing: false
eval_table_size: 4

Config yaml
No response
Possible solution
No response
Which Operating Systems are you using?

[X] Linux
[ ] macOS
[ ] Windows

Python Version
3.10.13
axolotl branch-commit
10388a8daf593ca1e762c668b30feab373c6c42a (latest main)
Acknowledgements

[X] My issue title is concise, descriptive, and in title casing.
[X] I have searched the existing issues to make sure this bug has not been reported yet.
[X] I am using the latest version of axolotl.
[X] I have provided enough information for the maintainers to reproduce and diagnose the issue.

I'm getting this as well, except in my case, I can't fix it by setting eval_table_size: 0.  According to the docs that's the default, so I think setting that wasn't changing anything for me.
Here's my current config, which will fail on the first eval step with the error shown in the OP:
base_model: mistralai/Mistral-7B-v0.1
base_model_config: mistralai/Mistral-7B-v0.1
model_type: MistralForCausalLM
tokenizer_type: LlamaTokenizer
is_mistral_derived_model: true

load_in_8bit: false
load_in_4bit: false
strict: false

datasets:
  - path: /path/to/custom-dataset.json
    type: custom-prompt-strategy

dataset_prepared_path: ./last_run_prepared
val_set_size: 0.01
output_dir: /workspace/output-model

sequence_len: 4096
sample_packing: true
eval_sample_packing: false
eval_table_size: 0
pad_to_sequence_len: true
total_supervised_tokens: 5617006

wandb_project: project-name
wandb_entity: thebloke
wandb_watch:
wandb_run_id:
wandb_log_model:

gradient_accumulation_steps: 1
micro_batch_size: 6
num_epochs: 4
optimizer: adamw_torch
adam_beta2: 0.95
adam_epsilon: 0.00001
max_grad_norm: 1.0
lr_scheduler: cosine
learning_rate: 0.000006

train_on_inputs: false
group_by_length: false
bf16: true
fp16: false
tf32: false

gradient_checkpointing: true
early_stopping_patience:
resume_from_checkpoint:
auto_resume_from_checkpoint: true
local_rank:
logging_steps: 1
xformers_attention:
flash_attention: true

warmup_steps: 50
eval_steps: 0.1
save_steps:
debug:
deepspeed: /workspace/axolotl/deepspeed/zero2.json
weight_decay: 0.1
fsdp:
fsdp_config:
special_tokens:
  bos_token: "<s>"
  eos_token: "█"
  unk_token: "<unk>"

For now I've had to disable eval completely so I can get the training done.
Here's the exact error I received:
[2023-11-08 10:22:59,892] [INFO] [axolotl.utils.samplers.multipack._len_est:178] [PID:35578] [RANK:0] packing_efficiency_estimate: 0.97 total_num_tokens per device: 1161627
{'loss': 1.2304, 'learning_rate': 0.0, 'epoch': 0.03}
  1%|██▍                                                                                | 1/140 [00:34<1:20:39, 34.82s/it]Traceback (most recent call last):
  File "/root/miniconda3/envs/py3.10/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/root/miniconda3/envs/py3.10/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/workspace/axolotl/src/axolotl/cli/train.py", line 38, in <module>
    fire.Fire(do_cli)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 141, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 475, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 691, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
  File "/workspace/axolotl/src/axolotl/cli/train.py", line 34, in do_cli
    train(cfg=parsed_cfg, cli_args=parsed_cli_args, dataset_meta=dataset_meta)
  File "/workspace/axolotl/src/axolotl/train.py", line 124, in train
    trainer.train(resume_from_checkpoint=resume_from_checkpoint)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 1591, in train
    return inner_training_loop(
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 1984, in _inner_training_loop
    self._maybe_log_save_evaluate(tr_loss, model, trial, epoch, ignore_keys_for_eval)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 2328, in _maybe_log_save_evaluate
    metrics = self.evaluate(ignore_keys=ignore_keys_for_eval)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 3062, in evaluate
    eval_dataloader = self.get_eval_dataloader(eval_dataset)
  File "/workspace/axolotl/src/axolotl/core/trainer_builder.py", line 226, in get_eval_dataloader
    eval_sampler = self._get_eval_sampler(eval_dataset)
  File "/workspace/axolotl/src/axolotl/core/trainer_builder.py", line 178, in _get_eval_sampler
    eval_dataset.data.column("position_ids")
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/datasets/table.py", line 390, in column
    return self.table.column(*args, **kwargs)
  File "pyarrow/table.pxi", line 1624, in pyarrow.lib._Tabular.column
  File "pyarrow/table.pxi", line 1560, in pyarrow.lib._Tabular._ensure_integer_index
KeyError: 'Field "position_ids" does not exist in schema'

The above error was with eval_sample_packing: false.  I first tried with that set to True, which gave this different error at the same point:
[2023-11-08 10:19:50,901] [INFO] [axolotl.utils.samplers.multipack._len_est:178] [PID:28284] [RANK:7] packing_efficiency_estimate: 0.97 total_num_tokens per device: 15686
Traceback (most recent call last):
  File "/root/miniconda3/envs/py3.10/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/root/miniconda3/envs/py3.10/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/workspace/axolotl/src/axolotl/cli/train.py", line 38, in <module>
    fire.Fire(do_cli)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 141, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 475, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/fire/core.py", line 691, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
  File "/workspace/axolotl/src/axolotl/cli/train.py", line 34, in do_cli
    train(cfg=parsed_cfg, cli_args=parsed_cli_args, dataset_meta=dataset_meta)
  File "/workspace/axolotl/src/axolotl/train.py", line 124, in train
    trainer.train(resume_from_checkpoint=resume_from_checkpoint)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 1591, in train
    return inner_training_loop(
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 1984, in _inner_training_loop
    self._maybe_log_save_evaluate(tr_loss, model, trial, epoch, ignore_keys_for_eval)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 2328, in _maybe_log_save_evaluate
    metrics = self.evaluate(ignore_keys=ignore_keys_for_eval)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 3066, in evaluate
    output = eval_loop(
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer.py", line 3214, in evaluation_loop
    if has_length(dataloader):
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/transformers/trainer_utils.py", line 623, in has_length
    return len(dataset) is not None
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/torch/utils/data/dataloader.py", line 486, in __len__
    return len(self._index_sampler)
  File "/root/miniconda3/envs/py3.10/lib/python3.10/site-packages/accelerate/data_loader.py", line 133, in __len__
    if len(self.batch_sampler) % self.num_processes == 0:
ValueError: __len__() should return >= 0

We have since added validation to prevent this.


@closes 19, improved 'make run'

make run runs in the backround, detached shell and output is stored in a file

Fixes #19


Extend the function of eliminating unnecessary CAST function for integer

Description
Some unnecessary CAST functions for integer type exist in the SQL preventing the optimizer making use of the indexes on those columns. By removing those functions, we can give the optimizer an option to choose index.
This patch extends the following supported scenarios:

Functions nested in AND/OR clauses.
Functions appear in both sides of the operator.
Nested CAST functions.
CASTs among SMAILLINT, INT, BIGINT.
Apart from '=', more operators are supported: </>/<=/>=

Issues Resolved
Unnecessary CAST function in above scenarios cannot be removed. So the optimizer doesn't have a chance to consider index scan.
BABEL-4550
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is under the terms of the Apache 2.0 and PostgreSQL licenses, and grant any person obtaining a copy of the contribution permission to relicense all or a portion of my contribution to the PostgreSQL License solely to contribute all or a portion of my contribution to the PostgreSQL open source project.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>1
Details

44 of 44 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 74.497%

Totals

Change from base Build<PHONE_NUMBER>0:
0.01%

Covered Lines:
45181

Relevant Lines:
60648

💛  - Coveralls


Write script output to /tmp

The script command used for pseudo-tty during testing writes to typescript in the current directory by default. This may cause issues with some projects that do not expect new files to be generated. This changes the location of that file to the /tmp directory to avoid any issues.
Change-type: patch

I self-certify!


Quick Select Algorithm in C, C++, Python & Java

Is your feature request related to a problem? Please describe.
Yes, my feature request is related to a problem. I would like to implement Quick Select algorithm using C, C++, Python and Java languages.
Quick Select is a selection algorithm to find the k-th smallest element in an unordered list. It is related to the 'Quick Sort' sorting algorithm. The difference is, instead of recurring for both sides (after finding pivot), it recurs only for the part that contains the k-th smallest element.
Describe the solution you'd like
I would like a solution that provides an implementation of the Quick Select algorithm using C, C++, Python and Java languages.
I would like to work on this issue under SSOC 2023. Please assign it to me.

Can you assign this issue to me

@Kumar-laxmi Please /assign this task to me to contribute under SSoC'23 program.

@Trisha-tech What is your status on this issue?


update to trigger ci

/test all

/close
see #28 which picks up all the github workflows and prow tests


trying again format_coverage

trying fixing https://github.com/iapicca/yak_packages/issues/35

melos run test
   └> melos run test:dart --no-select && test:format --no-select && melos run test:flutter --no-select
       └> RUNNING

melos run test:dart
   └> melos exec -c 1 --fail-fast -- dart test --coverage="coverage"
       └> RUNNING

$ melos exec
   └> dart test --coverage=coverage
       └> RUNNING (in 3 packages)

--------------------------------------------------------------------------------
yak_runner:

00:00 +0: loading test/runners/async/nullary_test.dart
00:01 +0: loading test/runners/async/nullary_test.dart
00:01 +0: test/runners/async/nullary_test.dart: `YakRunnerAsync` WHEN `void Function()` throws THEN `Result` is `Failure`
00:01 +1: test/runners/async/nullary_test.dart: `YakRunnerAsync` WHEN `void Function()` throws THEN `Result` is `Failure`
00:01 +1: test/runners/async/nullary_test.dart: `YakRunnerAsync` WHEN `void Function()` does not fail `Result` is `Success`
00:01 +2: test/runners/async/nullary_test.dart: `YakRunnerAsync` WHEN `void Function()` does not fail `Result` is `Success`
00:02 +2: test/runners/async/nullary_test.dart: `YakRunnerAsync` WHEN `void Function()` does not fail `Result` is `Success`
00:03 +2: test/runners/async/nullary_test.dart: `YakRunnerAsync` WHEN `void Function()` does not fail `Result` is `Success`
00:03 +2: loading test/runners/async/unary_test.dart
00:04 +2: loading test/runners/async/unary_test.dart
00:05 +2: loading test/runners/async/unary_test.dart
00:05 +2: test/runners/async/unary_test.dart: `YakRunnerArgAsync` WHEN `void Function(T)` throws THEN `Result` is `Failure`
00:05 +3: test/runners/async/unary_test.dart: `YakRunnerArgAsync` WHEN `void Function(T)` throws THEN `Result` is `Failure`
00:05 +3: test/runners/async/unary_test.dart: `YakRunnerArgAsync` WHEN `void Function()` does not fail `Result` is `Success`
00:05 +4: test/runners/async/unary_test.dart: `YakRunnerArgAsync` WHEN `void Function()` does not fail `Result` is `Success`
00:06 +4: test/runners/async/unary_test.dart: `YakRunnerArgAsync` WHEN `void Function()` does not fail `Result` is `Success`
00:06 +4: loading test/runners/sync/nullary_test.dart
00:07 +4: loading test/runners/sync/nullary_test.dart
00:08 +4: loading test/runners/sync/nullary_test.dart
00:08 +4: test/runners/sync/nullary_test.dart: `YakRunner` WHEN `void Function()` throws THEN `Result` is `Failure`
00:08 +5: test/runners/sync/nullary_test.dart: `YakRunner` WHEN `void Function()` throws THEN `Result` is `Failure`
00:08 +5: test/runners/sync/nullary_test.dart: `YakRunner` WHEN `void Function()` does not fail `Result` is `Success`
00:08 +6: test/runners/sync/nullary_test.dart: `YakRunner` WHEN `void Function()` does not fail `Result` is `Success`
00:09 +6: test/runners/sync/nullary_test.dart: `YakRunner` WHEN `void Function()` does not fail `Result` is `Success`
00:09 +6: loading test/runners/sync/unary_test.dart
00:10 +6: loading test/runners/sync/unary_test.dart
00:11 +6: loading test/runners/sync/unary_test.dart
00:11 +6: test/runners/sync/unary_test.dart: `YakRunnerArg` WHEN `void Function(T)` throws THEN `Result` is `Failure`
00:11 +7: test/runners/sync/unary_test.dart: `YakRunnerArg` WHEN `void Function(T)` throws THEN `Result` is `Failure`
00:11 +7: test/runners/sync/unary_test.dart: `YakRunnerArg` WHEN `void Function()` does not fail `Result` is `Success`
00:11 +8: test/runners/sync/unary_test.dart: `YakRunnerArg` WHEN `void Function()` does not fail `Result` is `Success`
00:12 +8: test/runners/sync/unary_test.dart: `YakRunnerArg` WHEN `void Function()` does not fail `Result` is `Success`
00:12 +8: loading test/mixin/result/when_test.dart
00:13 +8: loading test/mixin/result/when_test.dart
00:13 +8: test/mixin/result/when_test.dart: `when` MIXIN on`YakRunnerArg` WHEN `Result`is `Failure` then `when(failure:)` is called
00:13 +9: test/mixin/result/when_test.dart: `when` MIXIN on`YakRunnerArg` WHEN `Result`is `Failure` then `when(failure:)` is called
00:13 +9: test/mixin/result/when_test.dart: `when` MIXIN on`YakRunnerArg` WHEN `Result`is `Success` then `when(success:)` is called
00:13 +10: test/mixin/result/when_test.dart: `when` MIXIN on`YakRunnerArg` WHEN `Result`is `Success` then `when(success:)` is called
00:13 +10: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunner` WHEN `Result`is `Failure` then `when(failure:)` is called
00:13 +11: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunner` WHEN `Result`is `Failure` then `when(failure:)` is called
00:13 +11: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunner` WHEN `Result`is `Success` then `when(success:)` is called
00:13 +12: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunner` WHEN `Result`is `Success` then `when(success:)` is called
00:13 +12: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunnerArgAsync` WHEN `Result`is `Failure` then `when(failure:)` is called
00:13 +13: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunnerArgAsync` WHEN `Result`is `Failure` then `when(failure:)` is called
00:13 +13: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunnerArgAsync` WHEN `Result`is `Success` then `when(success:)` is called
00:13 +14: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunnerArgAsync` WHEN `Result`is `Success` then `when(success:)` is called
00:13 +14: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunnerAsync` WHEN `Result`is `Failure` then `when(failure:)` is called
00:13 +15: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunnerAsync` WHEN `Result`is `Failure` then `when(failure:)` is called
00:13 +15: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunnerAsync` WHEN `Result`is `Success` then `when(success:)` is called
00:13 +16: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunnerAsync` WHEN `Result`is `Success` then `when(success:)` is called
00:14 +16: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunnerAsync` WHEN `Result`is `Success` then `when(success:)` is called
00:15 +16: test/mixin/result/when_test.dart: `when` MIXIN on `YakRunnerAsync` WHEN `Result`is `Success` then `when(success:)` is called
00:15 +16: loading test/mixin/result/on_result_test.dart
00:16 +16: loading test/mixin/result/on_result_test.dart
00:16 +16: test/mixin/result/on_result_test.dart: `onResult` MIXIN WHEN `Delegate<S>` fails THEN  `onResult() return Failure<T>
00:16 +17: test/mixin/result/on_result_test.dart: `onResult` MIXIN WHEN `Delegate<S>` fails THEN  `onResult() return Failure<T>
00:16 +17: test/mixin/result/on_result_test.dart: `onResult` MIXIN WHEN `ArgDelegate<T,S>` fail THEN  `onResult() return Failure<T>
00:16 +18: test/mixin/result/on_result_test.dart: `onResult` MIXIN WHEN `ArgDelegate<T,S>` fail THEN  `onResult() return Failure<T>
00:17 +18: test/mixin/result/on_result_test.dart: `onResult` MIXIN WHEN `ArgDelegate<T,S>` fail THEN  `onResult() return Failure<T>
00:18 +18: test/mixin/result/on_result_test.dart: `onResult` MIXIN WHEN `ArgDelegate<T,S>` fail THEN  `onResult() return Failure<T>
00:18 +18: loading test/mixin/result/on_result_async_test.dart
00:19 +18: loading test/mixin/result/on_result_async_test.dart
00:19 +18: test/mixin/result/on_result_async_test.dart: `onResultAsync` MIXIN WHEN `Delegate<S>` fails THEN  `onResult() return Failure<T>
00:19 +19: test/mixin/result/on_result_async_test.dart: `onResultAsync` MIXIN WHEN `Delegate<S>` fails THEN  `onResult() return Failure<T>
00:19 +19: test/mixin/result/on_result_async_test.dart: `onResultAsync` MIXIN WHEN `ArgDelegate<Future<T>,FutureOr<S>>` fail THEN  `onResult() return Failure<T>
00:19 +20: test/mixin/result/on_result_async_test.dart: `onResultAsync` MIXIN WHEN `ArgDelegate<Future<T>,FutureOr<S>>` fail THEN  `onResult() return Failure<T>
00:19 +20: test/mixin/result/on_result_async_test.dart: `onResultAsync` MIXIN WHEN `ArgDelegate<Future<T>,FutureOr<S>>` does not fail THEN  `onResult() return Success<T>
00:19 +21: test/mixin/result/on_result_async_test.dart: `onResultAsync` MIXIN WHEN `ArgDelegate<Future<T>,FutureOr<S>>` does not fail THEN  `onResult() return Success<T>
00:20 +21: test/mixin/result/on_result_async_test.dart: `onResultAsync` MIXIN WHEN `ArgDelegate<Future<T>,FutureOr<S>>` does not fail THEN  `onResult() return Success<T>
00:21 +21: test/mixin/result/on_result_async_test.dart: `onResultAsync` MIXIN WHEN `ArgDelegate<Future<T>,FutureOr<S>>` does not fail THEN  `onResult() return Success<T>
00:21 +21: loading test/extensions/result/on_future_result_test.dart
00:22 +21: loading test/extensions/result/on_future_result_test.dart
00:22 +21: test/extensions/result/on_future_result_test.dart: `onFutureResult` EXTENSION WHEN `Delegate<Future<S>>` fails THEN  `onResult() return Failure<T>
00:22 +22: test/extensions/result/on_future_result_test.dart: `onFutureResult` EXTENSION WHEN `Delegate<Future<S>>` fails THEN  `onResult() return Failure<T>
00:22 +22: test/extensions/result/on_future_result_test.dart: `onFutureResult` EXTENSION WHEN `ArgDelegate<Future<T>,FutureOr<S>>` fail THEN  `onResult() return Failure<T>
00:22 +23: test/extensions/result/on_future_result_test.dart: `onFutureResult` EXTENSION WHEN `ArgDelegate<Future<T>,FutureOr<S>>` fail THEN  `onResult() return Failure<T>
00:22 +23: test/extensions/result/on_future_result_test.dart: `onFutureResult` EXTENSION WHEN `ArgDelegate<Future<T>,FutureOr<S>>` does not fail THEN  `onResult() return Success<T>
00:22 +24: test/extensions/result/on_future_result_test.dart: `onFutureResult` EXTENSION WHEN `ArgDelegate<Future<T>,FutureOr<S>>` does not fail THEN  `onResult() return Success<T>
00:23 +24: test/extensions/result/on_future_result_test.dart: `onFutureResult` EXTENSION WHEN `ArgDelegate<Future<T>,FutureOr<S>>` does not fail THEN  `onResult() return Success<T>
00:24 +24: test/extensions/result/on_future_result_test.dart: `onFutureResult` EXTENSION WHEN `ArgDelegate<Future<T>,FutureOr<S>>` does not fail THEN  `onResult() return Success<T>
00:24 +24: All tests passed!
yak_runner: SUCCESS

--------------------------------------------------------------------------------
yak_error_handler:

00:00 +0: loading test/error_handler_test.dart
00:01 +0: loading test/error_handler_test.dart
00:01 +0: test/error_handler_test.dart: `YakErrorHandler` WHEN no `Catch` set THEN does not throw`
00:01 +1: test/error_handler_test.dart: `YakErrorHandler` WHEN no `Catch` set THEN does not throw`
00:01 +1: test/error_handler_test.dart: `YakErrorHandler` WHEN `function` throws THEN `handleError` should be triggered `
00:01 +2: test/error_handler_test.dart: `YakErrorHandler` WHEN `function` throws THEN `handleError` should be triggered `
00:01 +2: test/error_handler_test.dart: `YakErrorHandler` WHEN `YakErrorHandler` is unchanged THEN should retain config across function`
00:01 +3: test/error_handler_test.dart: `YakErrorHandler` WHEN `YakErrorHandler` is unchanged THEN should retain config across function`
00:01 +3: test/error_handler_test.dart: `YakErrorHandler` WHEN `YakErrorHandler` `handleError` is changed THEN should updated `
00:01 +4: test/error_handler_test.dart: `YakErrorHandler` WHEN `YakErrorHandler` `handleError` is changed THEN should updated `
00:02 +4: test/error_handler_test.dart: `YakErrorHandler` WHEN `YakErrorHandler` `handleError` is changed THEN should updated `
00:03 +4: test/error_handler_test.dart: `YakErrorHandler` WHEN `YakErrorHandler` `handleError` is changed THEN should updated `
00:03 +4: All tests passed!
yak_error_handler: SUCCESS

--------------------------------------------------------------------------------
yak_test:

00:00 +0: loading test/yak_runner_test.dart
00:01 +0: loading test/yak_runner_test.dart
00:01 +0: test/yak_runner_test.dart: unary test WHEN `void Function(T)` throws THEN `Result` is `Failure`
00:01 +1: test/yak_runner_test.dart: unary test WHEN `void Function(T)` throws THEN `Result` is `Failure`
00:01 +1: test/yak_runner_test.dart: unary test WHEN `void Function()` does not fail `Result` is `Success`
00:01 +2: test/yak_runner_test.dart: unary test WHEN `void Function()` does not fail `Result` is `Success`
00:01 +2: test/yak_runner_test.dart: nullary test WHEN `T Function()` throws THEN `Result` is `Failure`
00:01 +3: test/yak_runner_test.dart: nullary test WHEN `T Function()` throws THEN `Result` is `Failure`
00:01 +3: test/yak_runner_test.dart: nullary test WHEN `T Function()` does not fail `Result` is `Success`
00:01 +4: test/yak_runner_test.dart: nullary test WHEN `T Function()` does not fail `Result` is `Success`
00:01 +4: test/yak_runner_test.dart: async unary test WHEN `void Function(T)` throws THEN `Result` is `Failure`
00:01 +5: test/yak_runner_test.dart: async unary test WHEN `void Function(T)` throws THEN `Result` is `Failure`
00:01 +5: test/yak_runner_test.dart: async unary test WHEN `void Function()` does not fail `Result` is `Success`
00:01 +6: test/yak_runner_test.dart: async unary test WHEN `void Function()` does not fail `Result` is `Success`
00:01 +6: test/yak_runner_test.dart: async nullary test WHEN `Future<T> Function()` throws THEN `Result` is `Failure`
00:01 +7: test/yak_runner_test.dart: async nullary test WHEN `Future<T> Function()` throws THEN `Result` is `Failure`
00:01 +7: test/yak_runner_test.dart: async nullary test WHEN `T Function()` does not fail `Result` is `Success`
00:01 +8: test/yak_runner_test.dart: async nullary test WHEN `T Function()` does not fail `Result` is `Success`
00:02 +8: test/yak_runner_test.dart: async nullary test WHEN `T Function()` does not fail `Result` is `Success`
00:03 +8: test/yak_runner_test.dart: async nullary test WHEN `T Function()` does not fail `Result` is `Success`
00:03 +8: All tests passed!
yak_test: SUCCESS
--------------------------------------------------------------------------------

$ melos exec
   └> dart test --coverage=coverage
       └> SUCCESS

melos run test:dart
   └> melos exec -c 1 --fail-fast -- dart test --coverage="coverage"
       └> SUCCESS
/bin/sh: 1: test:format: not found

melos run test
   └> melos run test:dart --no-select && test:format --no-select && melos run test:flutter --no-select
       └> FAILED
Error: Process completed with exit code 127.

melos run test:format
   └> melos exec -c 1 format_coverage --lcov --in=coverage --out=coverage.lcov --packages=.packages --report-on=lib
       └> RUNNING

Unhandled exception:
Could not find an option named "lcov".

Usage: melos exec [arguments]
-h, --help              Print this usage information.
-c, --concurrency       (defaults to "5")
-f, --[no-]fail-fast    Whether exec should fail fast and not execute the script in further packages if the script fails in a individual package.

Run "melos help" to see global options.
#0      Command.usageException (package:args/command_runner.dart:399:7)
#1      CommandRunner.parse (package:args/command_runner.dart:130:15)
#2      CommandRunner.run.<anonymous closure> (package:args/command_runner.dart:112:36)
#3      new Future.sync (dart:async/future.dart:218:31)
#4      CommandRunner.run (package:args/command_runner.dart:112:14)
#5      main (file:///home/runner/.pub-cache/hosted/pub.dartlang.org/melos-0.4.5/bin/melos.dart:4:31)
#6      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:281:32)
#7      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12)

melos run test:format
   └> melos exec -c 1 format_coverage --lcov --in=coverage --out=coverage.lcov --packages=.packages --report-on=lib
       └> FAILED

melos run test
   └> melos run test:dart --no-select &&  melos run test:format --no-select && melos run test:flutter --no-select
       └> FAILED
Error: Process completed with exit code 255.


requests.exceptions.HTTPError: 404 Client Error: Not Found for url

Unavailable tracks are not skipped.

Hi, I am interested to work on this. Could you please send PR ?

Caught with https://github.com/Slyyxp/rsack/commit/80fc116d30d0d09a8b1e96608aa210294236b6a1


No peripheral on Ender io telepad

When i wrap it as a peripheral i get one functon named hello_segfault and prints "This peripheral is broken"
http://pastebin.com/KsR3Nvvg

This class contains field with client-only type. I can't do anything on my side..

@boq You could simply ignore exceptions like that and return null instead of a broken peripheral. I also had issues because of that and had to do this to fix it...
@tubs5 for what it's worth, official EnderIO support for ComputerCraft or OpenComputers is in Computronics, not in OpenPeripheral (they both work together rather well). Telepad support will be added in the next version.

Well, at one point I changed behaviour and allowed exception to propagate. I will see if I can restore it.
Anyway, this problem can be fixed by simple @SideOnly.
PS. "Official". We already had discussion about this.


Azure ServiceBus Binding error (cannot unmarshal string into Go struct field) - Dapr 1.8 RC

Expected Behavior
We'd like to configure some new properties added in Dapr 1.8 RC for Azure ServiceBus Queues so that we can increase the messages processing pace:

name: maxActiveMessages # Optional
value: 10
name: maxConcurrentHandlers # Optional
value: 1

Actual Behavior
When adding the below parameters to the component YAML:

name: maxActiveMessages
value: 10
name: maxConcurrentHandlers
value: 1

We receive the following error when the pod is starting:
{"app_id":"job","instance":"job-6f867c57cc-xs296","level":"fatal","msg":"process component  error: json: cannot unmarshal string into Go struct field serviceBusQueuesMetadata.maxActiveMessages of type int","scope":"dapr.runtime","time":"2022-07-04T12:56:23.30122603Z","type":"log","ver":"1.8.0-rc.5"}
Steps to Reproduce the Problem

Add the following config to the component YAML

name: maxActiveMessages # Optional
value: 10
name: maxConcurrentHandlers # Optional
value: 1

Deploy and start the pod.

Possible release blocker.
cc @ItalyPaleAle @artursouza

/assign

Thanks for the report. I will take a look at this tomorrow.

This is now fixed in release-1.8. a new RC is coming out shortly. Thanks again for reporting this and to @cmendible for fixing it :)


Always request audio focus when starting playback.

Fixes #40

What happens when the same app requests focus twice? Should change onCreate() to not request focus or onAudioFocusChange() now that we always request focus on start?

What happens when the same app requests focus twice? Should change onCreate() to not request focus or onAudioFocusChange() now that we always request focus on start?

It is okay to request the audio focus twice. You're right, we should not request the audio focus from onCreate. The audio focus should only be requested when about to start playback.


AUR Package

Do you have any plans to create an AUR package for trashy?

There is one, not building though.
   Compiling trashy v1.0.2
error: there is no argument named `table`
   --> /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/trashy-1.0.2/src/app/command/list.rs:150:29
    |
150 |     writeln!(io::stdout(), "{table}").context("Printing table")?;
    |                             ^^^^^^^

error: there is no argument named `humantime`
   --> /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/trashy-1.0.2/src/app/command/list.rs:238:14
    |
238 |     format!("{humantime}")
    |              ^^^^^^^^^^^

error: there is no argument named `len`
  --> /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/trashy-1.0.2/src/app/command/utils.rs:16:15
   |
16 |     println!("{len} item{plural} will be {action_name}");
   |               ^^^^^

error: there is no argument named `plural`
  --> /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/trashy-1.0.2/src/app/command/utils.rs:16:25
   |
16 |     println!("{len} item{plural} will be {action_name}");
   |                         ^^^^^^^^

error: there is no argument named `action_name`
  --> /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/trashy-1.0.2/src/app/command/utils.rs:16:42
   |
16 |     println!("{len} item{plural} will be {action_name}");
   |                                          ^^^^^^^^^^^^^

error: there is no argument named `s`
 --> /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/trashy-1.0.2/src/print.rs:6:19
  |
6 |     eprintln!("{} {s}", Red.bold().paint("error:"));
  |                   ^^^

error: there is no argument named `e`
  --> /home/user/.cargo/registry/src/github.com-1ecc6299db9ec823/trashy-1.0.2/src/main.rs:19:58
   |
19 |         Err(e) => ExitCode::Error.exit_with_msg(format!("{e:#}")),
   |                                                          ^^^^^

error: failed to compile `trashy v1.0.2`, intermediate artifacts can be found at `/tmp/cargo-installRSVjLh`

Caused by:
  could not compile `trashy` due to 7 previous errors

@willbasky You need a more recent rustc version (>= 1.59 if I recall well).
It’s probably a good idea to set rust-version in Cargo.toml.

I set the rust-version in https://github.com/oberblastmeister/trashy/commit/00707563b1d6b24fb2288b50a1d9302eb029ae31. @willbasky, does it work if you use the correct rust version?

There is one, not building though.

Ah, there wasn't when I asked. People move quick! I was going to offer to attempt it, but I would rather have someone directly involved with the project create the AUR package personally. Better chance of it continuing to work.

@sanpii thanks, an update to last version helped.
@oberblastmeister yes, thanks.


[stable/prometheus-operator] Add --namespaces argument to Prometheus operator

What this PR does / why we need it:
Gives access to the --namespaces argument of Prometheus operator in chart values.
Special notes for your reviewer:
I added a releaseNamespaceOnly option which restricts namespaces to the release one only since it is probably the main use case for this argument.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

/ok-to-test

The tests are broken - waiting for a PR merge to fix them

Hey @jlacoline. I could not wait for the PR to fix the tests and had to implement the feature you were looking for in a slightly different way. Please see if it fits your needs

@vsliouniaev Your implementation looks good to me, and does what i was looking for.
You can close this PR, thanks for your time!

I don't think I can close these but you can.


If the JVM version is too low, show a simple, clean error message

To reproduce:
sdk java use 11.2.3-tem (or whatever is the latest today)
cd school-timetabling
mvn quarkus:dev

Result:
File "org.jpype.pkg.JPypePackage.java", line -1, in org.jpype.pkg.JPypePackage.getObject
Exception: Java Exception

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

Traceback (most recent call last):
 File "org.jpype.pkg.JPypePackage.java", line -1, in org.jpype.pkg.JPypePackage.getObject
java.lang.java.lang.UnsupportedClassVersionError: java.lang.UnsupportedClassVersionError: ai/timefold/jpyinterpreter/CPythonBackedPythonInterpreter has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
... man more lines

Desired:
Timefold Solver for Python requires JVM (java) version 17 or later. Your JVM version (11.2.3) is not supported.
Maybe use sdkman (https//sdkman.org) to install a more modern version of Java.

Similarly, if no java is installed at all, it should output something like:
Timefold Solver for Python requires JVM (java) version 17 or later. You have none installed.
Maybe use sdkman (https//sdkman.org) to install a modern version of Java.


cmake fails for universal_poker game

Steps to repro:

Download the repository
Run export BUILD_WITH_ACPC="ON"
Run ./install.sh
Run ./open_spiel/scripts/build_and_run_tests.sh

The 4th step yields CMake generate step failed. Build file cannot be regenerated correctly. Along with lots of error messages along the lines of
Error evaluating generator expression:

    $<TARGET_OBJECTS:universal_poker_clib>

  Objects of target "universal_poker_clib" referenced but no such target
  exists.

I'm running Mac OS and python 3.7.9.
Any help would be much appreciated!

I'm afraid this is a known issue: https://github.com/deepmind/open_spiel/blob/master/.travis.yml#L38 But maybe I'm wrong, and there is a way to make it work ( https://github.com/deepmind/open_spiel/issues/121 ).

As far as I was aware, this was working and that line in Travis should be removed. You can see further below that it is enabled when running with nox (on MacOS) and it's been passing in travis for the recent past. We will look into this, thanks for reporting!

Hi @cwolffff can you send the ouput of cmake -version? I remember seeing those before from older CMake versions.

> cmake -version
cmake version 3.18.2

CMake suite maintained and supported by Kitware (kitware.com/cmake)

@lanctot

Seems like CMake isn't finding a target that should be enabled.
Three things to try:

Can you ensure the code got cloned? Show me the output of ls -l games/universal/poker. There should be an acpc subdirectory in there.
If not can you try running the install line as: BUILD_WITH_ACPC="ON" ./install.sh
If so, can you remove all the build files (rm -rf build) and try again with this line: BUILD_WITH_ACPC="ON" ./open_spiel/scripts/build_and_run_tests.sh

I just compiled and ran the universal_poker_test on my MacOS laptop and it worked without a problem. My guess is that you ran the export in one terminal and then tried a partial build, and reran the build in a different terminal which did not have the export. Removing the build directory entirely and redoing it with the environment variable prepended should fix it.

Removing the build files and rebuilding fixed it. Thanks for the help!


fix: add estimateDeployFee

Motivation and Resolution
Adds estimateDeployFee for UDC Deploys
Checklist:

[x] Performed a self-review of the code
[x] Rebased to the last commit of the target branch (or merged it into my branch)
[ ] Linked the issues which this PR resolves
[x] Documented the changes
[ ] Updated the docs (www)
[x] Updated the tests
[ ] All tests are passing

Also removes isDevnet param because Devnet now has the same UDC address. Made additionalCalls as a parameter in UniversalDeployerContractPayload.


Guides for nuxt-directus

Create new Guides for how to use Nuxt 3 & Directus. Like Auth, or Admin Dashboards

I'm happy to tackle this @Intevel - might be some overlap with what I'm currently writing for https://github.com/nuxtus/nuxtus as it's using nuxt-directus under the hood. Will reach out on Discord.


Does this library work on linux like Ubuntu?

:( that is a damn shame

Might be relevant: https://github.com/smblott-github/chromix-too


Test opendatacam v2.0.0-rc.1

v2.0.0-rc.1 released 🎉 on all platforms: nano, tx2, xavier and nvidiadocker.

Documentation reworked a lot, I feel I never wrote as many docs 😎
New dedicated Jetson Nano page as those users will be the one that need more guidance (and also because it has lots of specificities), I reflashed my device and built the doc as I was doing thing to get a sense of what issues you can face.
Last up to dates features (latest docker build was from 1 month & half ago)

Docs are also accessible also via website thanks to github page: https://opendatacam.github.io/opendatacam/
I also organised the roadmap with a 2.1 milestone we can start to work on next: https://github.com/opendatacam/opendatacam/milestone/3 :  Better run from file support, benchmark against MOT challenge, and Improvements to setup when Jetpack 4.2.1 comes out.
Would be good to:

Have someone flashing nano from scrach and fixing the documentation mistake I can have left
Proof read all the documentation , feel free to rewrite things / add stuff etc etc..
Test Nvidiadocker setup on a Ubuntu machine / server with CUDA GPU
(Low prio), test TX2 and Xavier ...

Thanks @tdurand  :) ... I blocked some time for next week to get into the flashing and installation stuff!

I tried what you are suggesting but in the first second there are thousands of logs.
another issue don't use wlan0 and eth0 for the ip, i had to change it to wlp3s0 to make it work...

tried to open {ip}:8080/console and managed to see better log, but there isn't something useful why the video stream don't opens

another issue don't use wlan0 and eth0 for the ip, i had to change it to wlp3s0 to make it work...

This is not very important, it is just to display IP adress when using jetsons.. not very relevant for you.

tried to open {ip}:8080/console and managed to see better log, but there isn't something useful why the video stream don't opens

I was gonna suggest this, what can make me help you would be the first part of the log before the crasyness.. If you have nothing meaningfull try to restart docker container, first open localhost:8080/console, and then open localhost:8080 on a second tab that makes Opendatacam start, the first tab should capture the first part of the log.
What video input are you running on ? For nvidiadocker it is untested for USB webcam as it was though to run on IP cam from the Cloud or on a file... The docker container might not have access to the usb and might need to run priviligied... In this case try to tweak the run_opendatacam.sh script created by the install process...
BTW does it work on a file with default config setup ?

tried to open {ip}:8080/console and managed to see better log, but there isn't something useful why the video stream don't opens

I was gonna suggest this, what can make me help you would be the first part of the log before the crasyness.. If you have nothing meaningfull try to restart docker container, first open localhost:8080/console, and then open localhost:8080 on a second tab that makes Opendatacam start, the first tab should capture the first part of the log.
What video input are you running on ? For nvidiadocker it is untested for USB webcam as it was though to run on IP cam from the Cloud or on a file... The docker container might not have access to the usb and might need to run priviligied... In this case try to tweak the run_opendatacam.sh script created by the install process...

video input is a webcam and it doesn't work, how can I tweak it?

BTW does it work on a file with default config setup ?
it works with the file

it works with the file

Ok great 😁

video input is a webcam and it doesn't work, how can I tweak it?

I've created this issue https://github.com/opendatacam/opendatacam/issues/102 , I'll add documentation and improve this next week... I'm not sure right now how to do it... Just follow this issue and I'll ping you once fixed. Many thanks for reporting this, we just never tested this use case.

How can we handle issues like that?
Nothing detected for frame nΒΊ9594
==== HTTP Stream closed by darknet, reset UI, might be running from file and ended it or have troubles with webcam and need restart =====
Process YOLO error
Error: Cannot stop process that is not running.
    at /var/local/opendatacam/node_modules/forever-monitor/lib/forever-monitor/monitor.js:357:26
    at process._tickCallback (internal/process/next_tick.js:61:11)

For now you need to manually restart everything... we have an issue for long term reliability: https://github.com/opendatacam/opendatacam/issues/95

@tdurand I put some time into testing the new version of the ODC.
Notes:
TX2:

the installation is still super simple and I don't see a problem with the documentation. Maybe one thing could be that somebody without knowledge about the project could also do an installation process. I will ask around if somebody is willing to do that.
At least on the TX2 that I'm using is recognizing two cameras with ls /dev/video*. Maybe listing them during the installation process could be helpful for the user (maybe a parameter for the install script as well?)

Nano:

The installation is also straight forward. I added notes to the issues in the flash-guide.
One critical thing I encountered is, that downloading the image from docker is very unstable if you are using a WiFi Dongle. The initial setup should be made via ethernet IMO.
In the office we are limited to WiFi only so I will take this issue home and do another test there.
I will update the case section for the nano in the documentation with some new content later today.

@florianporada Many thanks, feel free to update the documentation 😉

Hi,
following the instructions for the installation without docker, I had no problems to start opendatacam on my Jetson TX2. ( and I'm not really experienced in this topic, so I guess that is a good sign).
Just a few comments:

I was not able to set up a hotspot following the WIFI_HOTSPOT_SETUP.md instructions ,
adding the line:  options bcmdhd op_mode=2  to  /etc/modprobe.d/bcmdhd.conf solved the problem
I was also able to set up a hotspot via command line with these instructions:
https://seravo.fi/2014/create-wireless-access-point-hostapd
https://devtalk.nvidia.com/default/topic/910608/jetson-tx1/setting-up-wifi-access-point-on-
tx1/post/4976505/#4976505
but you can mess up your network settings (like I did) if you are careless and unexperienced, so at least
make a backup of your original settings before trying this, and it is not that intuitive, how to change
back to normal wifi-mode, so I would recommend the WIFI_HOTSPOT_SETUP.md instructions
in case people are interested to use other yolo-weights ( e.g. the yolov2.weights) they can do the
installation without docker and download the weight files they want to the darknet folder
you can also change the yolo input size via: cd darknet/cfg , edit the .cfg-file you want,
change the width and height (only multiples of 32 work, right?)
changing the width and height to 320 in yolov3.cfg, i got at least 7-8 FPS with yolov3, this should still
have a better mAP than 608*608 yolov2
if you are on the way with your Jetson and you want to make changes( for example in the config.json
file), you can access the Jetson in a terminal via: ssh YourUsername@IP-Address  ( which should be
<IP_ADDRESS> , if you followed the above mentioned wifi hotspot setup instructions)

I hope this can be a little help for other people in the future. (I am sorry if I mentioned something, which was already said, then I just missed it)
At the moment, I am looking for a convenient way to power my Jetson. I was thinking of a powerbank with controllable voltage and integrated protection,something like :
https://www.amazon.com/dp/B076GYGR6M/ref=cm_sw_r_cp_apa_i_wC3QCb122GNTJ
which was recommended here:
https://devtalk.nvidia.com/default/topic/1043299/portable-power-supply/
Has anyone experience with something like that?
And thank you very much for making this project available to everyone! ( it's the topic of my bachelor thesis, so I could write a little bit about my results in the future here #84 )

Hi @felixJets , many thanks

was not able to set up a hotspot following the WIFI_HOTSPOT_SETUP.md instructions ,
adding the line:  options bcmdhd op_mode=2  to  /etc/modprobe.d/bcmdhd.conf solved the problem

Could you do a PR adding a Troubleshooting section in the WIFI_HOTSPOT_SETUP documentation ?

in case people are interested to use other yolo-weights ( e.g. the yolov2.weights) they can do the
installation without docker and download the weight files they want to the darknet folder

Yes this is documented here: https://github.com/opendatacam/opendatacam/blob/master/documentation/CONFIG.md#use-custom-neural-network-weights

you can also change the yolo input size via: cd darknet/cfg , edit the .cfg-file you want,
change the width and height (only multiples of 32 work, right?)
changing the width and height to 320 in yolov3.cfg, i got at least 7-8 FPS with yolov3, this should still
have a better mAP than 608*608 yolov2

We didn't play a lot with this, it's always a tradeoff between FPS / accuracy, we are working on benchmarking better: https://github.com/opendatacam/opendatacam/issues/87 , you are welcome to share your results

if you are on the way with your Jetson and you want to make changes( for example in the config.json
file), you can access the Jetson in a terminal via: ssh YourUsername@IP-Address ( which should be
<IP_ADDRESS> , if you followed the above mentioned wifi hotspot setup instructions)

Yes, we should document ssh access, also I've recently seen that with jetson nano you can plug it as usb and ssh into it..

And thank you very much for making this project available to everyone! ( it's the topic of my bachelor thesis, so I could write a little bit about my results in the future here #84 )

Please do !

At the moment, I am looking for a convenient way to power my Jetson. I was thinking of a powerbank with controllable voltage and integrated protection,something like :
https://www.amazon.com/dp/B076GYGR6M/ref=cm_sw_r_cp_apa_i_wC3QCb122GNTJ
which was recommended here:
https://devtalk.nvidia.com/default/topic/1043299/portable-power-supply/
Has anyone experience with something like that?

We did power Jetson TX2 with external supply for v1, maybe @florianporada can give you some tips

Hey @felixJets,
thanks for testing the process and for all the thoughts you've written down! 👍
Regarding the power supply topic: As long as the external power supply (or the powerbank) matches the criteria of the board, I see nothing wrong with using the powerbank.
You can also cross-check the specs with this thread: https://devtalk.nvidia.com/default/topic/1006369/jetson-tx2/power-requirement-for-jetson-tx2-development-board/
There you can read some good infos regarding the power consumption.
hope that helps! 🙂

@tdurand @florianporada, thanks for the answer.
I did a PR ( I hope it is okay, I'm not very experienced in editing stuff on Github)
I think I will give the above mentioned powerbank a try ( I will give some feedback on it after testing)

it works with the file

Ok great

video input is a webcam and it doesn't work, how can I tweak it?

I've created this issue #102 , I'll add documentation and improve this next week... I'm not sure right now how to do it... Just follow this issue and I'll ping you once fixed. Many thanks for reporting this, we just never tested this use case.
We are testing 95% of the time with jetsons

try without framerate=30/1, width=640, height=360, just remove these and check again with cam.

Many thanks to everyone for the help to test opendatacam v2 , we just released a new website featuring this new version, https://opendata.cam and stay tune for upcoming updates


How can I use GQL fragments?

I would like to reuse fragments across multiple GQL requests. Whats the recommend way to go about this?
I tried this, but the codegen mentioned here is giving me an error ("unknown fragment").

Hey, any updates on this? @MoSattler Can you share discussion on https://community.shopify.com ?


fix nodejs example binding type

Thank you @georgeOsdDev for your PR. Thank you @shibayan  for this PR. This repo has been moved to Microsoft official repository, visit the Azure/azure-functions-openai-extension to make contributions.
The mentioned issue has been already fixed. Please visit the MS repo to make more contributions.


Add DaCeFrozenStencil and DaCeStencilObject with support for  __sdfg__ interface.

This PR enables gt4py stencils to be called from @dace.program decorated functions.

Acutally the error message was right!
E           FloatingPointError: Got allow_subnormal=True, but we can't represent subnormal floats right now, in violation of the IEEE-754 floating-point specification.  This is usually because something was compiled with -ffast-math or a similar option, which sets global processor state.  See https://simonbyrne.github.io/notes/fastmath/ for a more detailed writeup - and good luck!
Gotta love the cynical "and good luck" part.

bors try

bors try

bors try


Update docker-compose.yaml to auto restart on failures

Update docker-compose.yaml to auto restart on failures. Sometimes my node crashed without auto restart. It will help.

@jdutchak any comments?


Let SSL work

   asyncUpdate: function (first) {
        var protocol;
        if (location.protocol === "https:") {
            protocol = "wss:";
        } else {
            protocol = "ws:";
        }
        var socket = new WebSocket(protocol + window.location.host + '/api/socket');
        ...

Added support for SSL websocket connection.


Attach Cart persistence to Login Token, or DB

Currently the cart is stored in local storage.
If the user is logged out automatically, the cart items will remain on the local machine.  This would only be an issue if there were multiple users on the same system that were both wanting the change the cart on their individual accounts.
Option1: append a user ID ( some unique identifier ) to the name of the local storage item
Option2: store the cart in the DB, but this may require excessive network requests.  Maybe just use this to save the logout state of the info, and then restore it when the user logs in from any location.    that would override any cart items the user had if they were to add them while NOT logged in, and then logged in.


Minify app.js

:+1: once there's a new task that does it without using watch which we use for dev

:smile:


Forcing the Timer to stop when Pomodoro mode is on creates Entry with mismatched Duration and Stop Time

On Toggl Desktop (say its 7:!6PM)

Turn on the Pomodoro Timer and set it to 30 minutes
Start the Timer, and name the Entry (for easy reference later)
Open the running Entry, and set the Start Time to 1 hour earlier (6:16PM)
See the Timer stop + a new entry created with a 30-minute Duration, but Start and Stop Times are still 6:16PM and 7:16PM (or one hour apart)

Desktop app shows wrong Stop Time:

Web app shows wrong Stop Time:

Replicated on macOS 7.4.221 and 7.4.170, reported by user on Windows 7.4.184
(/conversations/17742327971)

User reporting this on version 7.4.129


Display a blank line in one SAS attached blob container's context menu

Storage Explorer Version: 1.14.0-dev
Build: 20200520.4
Branch: master
Platform/OS: Windows 10/ Linux Ubuntu 16.04/ macOS Mojave
Architecture: ia32/x64
Regression From: Previous release (1.13.0)
Steps to reproduce:

Expand one non-ADLS Gen2 storage account -> Blob Containers.
Select one blob container -> Attach it via sas.
Check the attached blob container's context menu.

Expect Experience:
The context menu displays well.

Actual Experience:
Display a blank line in the context menu.

More Info:

Record: https://msit.microsoftstream.com/video/4e3aa1ff-0400-96d0-3a31-f1ea9a6b03b3
This issue also reproduces for Azure AD attached blob containers(both regular and ADLS Gen2).

Context menu displays well after manually refreshing the Blob Containers node.

This issue is fixed on build master/20200522.4. So we close it.


Only include CSMR if it was actually requested by the modeler

I thought you were sick.

It's a cold. My brain is fuzzy, but that's a PR I can review. :)


Slider.js on mobile w/ vanilla javascript

Summary
Slider functionality is immobile on mobile devices
Relevant information
Using vanilla js for a php site. When browser/mobile testing carbon slider component functionality is broken. In vanilla slider.js I noticed there is no "touchmove" event listeners. Please see example page for reference.
Best,
Tfrankie88

Hi there! :wave: Thanks for reaching out about this issue with the Vanilla JS set of components. Unfortunately, the Vanilla JS components have been put in maintenance mode since our v10 release as our team has shifted focus to React. We try and help out as best we can but unfortunately no new development is occurring in that part of the codebase.
For teams looking to not use a framework for components, we recommend switching over to the Web Components library as that will be the strategy going forward in this area.
Hope this helps, let me know if you have any questions!


Copyright

Update copyright ty be dynamic with JavaScript.
Use Keiko Corp instead of Froala

I would like to claim this issue. Thanks.Please assign it to me

I would like to work on this.

I have completed your request. Please merge your pull request. Thanks!
add copyright .Update copyright ty be dynamic with JavaScript.Use Kei… #407

@pritesh11-10  I am assigning this to @Surya742 since you already have another issue to work on.

I have fixed the problem

@trinhminhhieu it is in order of who claims it and who is assigned is given 24 hours. I will leave your pr open and merge it if @Surya742 doesn't fix it.


Uncaught Exception: listen EADDRINUSE <IP_ADDRESS>:5672

Details below the automatic report.

An uncaught exception was reported.
Info:
OS: win32
Arch: ia32
GPMDP Version: 3.2.4
Time: Sun May 22 2016 18:16:53 GMT-0400 (Eastern Daylight Time)
Error:
listen EADDRINUSE <IP_ADDRESS>:5672
Error: listen EADDRINUSE <IP_ADDRESS>:5672
    at Object.exports._errnoException (util.js:890:11)
    at exports._exceptionWithHostPort (util.js:913:20)
    at Server._listen2 (net.js:1234:14)
    at listen (net.js:1270:10)
    at net.js:1379:9
    at _combinedTickCallback (internal/process/next_tick.js:77:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

This issue was created automatically inside the uncaughtException handler

Steps to reproduce:

Exit GPMDP, if applicable
Open GPMDP.
Prompt to open an issue appears.

System Info:

OS: Windows 10 Pro N x64 v. 1151 (build 10586.318)
CPU: Intel core i5-4690K, 4.40 GHz
RAM: 16.0 GB (2 x 8)
GPU: EVGA GTX 980ti
Storage: Samsung 840 EVO 250GB

Closing this automatically reported issue as a duplicate of #325


Encoding raw PCM stream fails with "TypeError: Invalid non-string/buffer chunk"

On Mac OS X, and recording with the "mic" package from NPM, which uses SOX to access built-in mic.
Example code:
var rate = 16000;
var frame_size = rate/100;
var channels = 1;
var opus = require('node-opus');
var opusEncodeStream = new opus.Encoder(rate, channels, frame_size);
var outputFileStream = fs.WriteStream('stream.opus');
micInputStream.pipe(opusEncodeStream).pipe(outputFileStream);
It fails as soon as the stream starts with error: "TypeError: Invalid non-string/buffer chunk"
I can record the same way with the "mic" package, write the raw stream to file, and encoding works fine here:
opusenc --raw --raw-rate 16000 --raw-chan 1 stream.raw stream.opus

I tried encoding the buffer but that makes the script die instantly, no errors or anything:
var opus = require('node-opus');
var rate = 16000;
var encoder = new opus.OpusEncoder(rate);
var frame_size = rate / 100;
var encoded = encoder.encode(buffer, frame_size);

What's the buffer.length in the latter one? encoder.encode calls more or less directly opus_encode of the underlying opus native library.
Essentially it needs to be 2.5, 5, 10, 20, 40 or 60 ms of audio. (40, 80, 160, 320, 640 or 960 samples with 16000 Hz sample rate.)
The frame_size parameter you are giving isn't a frame size but OPT_INT_ARG( 1, maxPacketSize, MAX_PACKET_SIZE ); which limits the encoded packet size.
The issue with your initial attempt to use Encoder is that Encoder isn't a file stream. It emits individual Opus frames, which is most certainly not what you want in your file. You'll need a container, such as ogg (which is what opusenc uses) to store these packets in an audio file.
The good news is that the Encoder should be compatible with TooTallNate's ogg package. See the mp3-to-ogg for an example of piping the opus frames into the ogg container.

Thanks very much for explaining!
Using the ogg module results in a file that:

plays back just fine in Firefox and Vox, but the leading and following
silence have disappeared...

crashes VLC - wait... I updated to latest VLC, and doesn't crash, but
says audio duration is 0:00, so plays back nothing

gets "cannot open file" error in Quicktime

If I do opusinfo on the resulting file, I see some errors:
WARNING: Samples with negative granpos in stream 1
WARNING: Sample count ahead of granule (960>640) in stream 1
... many more of these
and at the end I get:
ERROR: stream 1 has interior holes or more than one page of end trimming
Do you know if these are significant?
On Mon, Sep 4, 2017 at 2:30 PM Mikko Rantanen<EMAIL_ADDRESS>wrote:

What's the buffer.length in the latter one? encoder.encode calls more or
less directly opus_encode
https://mf4.xiph.org/jenkins/view/opus/job/opus/ws/doc/html/group__opus__encoder.html
of the underlying opus native library.
Essentially it needs to be 2.5, 5, 10, 20, 40 or 60 ms of audio. (40, 80,
160, 320, 640 or 960 samples with 16000 Hz sample rate.)
The frame_size parameter you are giving isn't a frame size but OPT_INT_ARG(
1, maxPacketSize, MAX_PACKET_SIZE ); which limits the encoded packet size.
The issue with your initial attempt to use Encoder is that Encoder isn't
a file stream. It emits individual Opus frames, which is most certainly not
what you want in your file. You'll need a container, such as ogg (which
is what opusenc uses) to store these packets in an audio file.
The good news is that the Encoder should be compatible with TooTallNate's
ogg https://www.npmjs.com/package/ogg package. See the mp3-to-ogg
https://github.com/Rantanen/node-opus/blob/master/examples/mp3-to-ogg.js
for an example of piping the opus frames into the ogg container.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Rantanen/node-opus/issues/40#issuecomment-326886808,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADDt58tE_0db8EtkSIW9PB1nbnpYrdiks5se6cSgaJpZM4PLd-K
.

Current code looks like:
var rate = 16000;
var max_packet_size = rate / 100;
var channels = 1;
var opus = require('node-opus');
var opusEncodeStream = new opus.Encoder(rate, channels, max_packet_size);
var ogg = require('ogg');
var oggEncoder = new ogg.Encoder();
var outputFileStream = fs.WriteStream('stream.opus');
micInputStream.pipe(opusEncodeStream).pipe(oggEncoder.stream());
oggEncoder.pipe(outputFileStream);

@Rantanen any ideas?
I'm most concerned by the opusinfo error.
"ERROR: stream 1 has interior holes or more than one page of end trimming"

I don't really.. Unfortunately I'm suspecting there's an issue with ogg...
I don't think node-opus deals with the granules at all.

I'll take that back! We do set the granulepos in Encoder.js.
I'll try to find a time to run the sample code later today or tomorrow and see if there's something weird going on with the granulepos calculations in Encoder.js..

Hm, another interesting test: Decode the resulting file from the code above, and play it back. The audio is sped up in the resulting wav file. The same file plays back fine in Firefox though.
opusdec --rate 16000 stream.opus stream.wav && play stream.wav

Completely my fault for not reading the specification. The granule position is not the total number of PCM samples with the given rate but the total number of PCM samples with rate of 48 kHz.
This meant anything but the 48 kHz sampling rate when encoding was off.

This should be part of the new 0.2.7 release in NPM. Just pushed that one.
Please reopen this issue if you still encounter problems with it.

FIXED!!! The opus file generated by the code above now works fine, can be
decoded normally with opusdec. Thank you so much for looking into this
@Rantanen!
On Sat, Sep 9, 2017 at 6:40 PM Mikko Rantanen<EMAIL_ADDRESS>wrote:

This should be part of the new 0.2.7 release in NPM. Just pushed that one.
Please reopen this issue if you still encounter problems with it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Rantanen/node-opus/issues/40#issuecomment-328271883,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADDtxZGZ_-PJ9RsNyV6pOeBDVCWnBHxks5sgnkqgaJpZM4PLd-K
.

Great! Thanks for sticking by - and sorry for the issues.
I should have probably written the code right in the first place. Would have saved us both some time. :)


The results on the code summerization task

Hello, Thanks for the good work. But I have some questions about the results in the paper:

Why are the results  of Table 4 and Table 5 in the article quite different while both on the code summerization task?
Which template is the result of the promp in Table 4 realized?
The results of CodeT5 Fine-tuning in Table 4 seem to be low. For example, the overall result of your CodeT5-base Fine-tuning is 19.23, but the result declared by CodeT5-base and commonly quoted by others is 19.55, and the result I reproduced is also19.4+

Thanks for your interest on our work!
For Q1: the results in Table 4 is on code summarization tasks and Table 5 is on code translation tasks.
For Q2: Prefix prompt with length 200
For Q3: We reproduce the results of fine-tuning and prompt tuning of codeT5 in the same code base. We report the average results on three times. It is possible for you to get the close results.


Clean and improvements on personManager bean

Checklist

[*] the individual contributor license agreement is signed
[x] commit message follows commit guidelines
[ ] tests are included
[ ] documentation is changed or added
[ ] message properties have been updated with new phrases
[ ] view conforms with WCAG 2.0 AA

Description of change

Moving / cleaning / improving the default PersonManager bean (see comments on commits)

@jgribonvald -- Do you need either of the following?...

The ability to add attributes to a new IPerson object before person-directory processes user attributes;  or
The ability for different instances of the same guest user (remember -- multiple guest users are supported) to have different attribute values

I hope the answers are "no" and "no."
If that's the case, I'm confident we can hit your use cases with simply guest users & user attributes.

@drewwills : so

no need to be before, or it because i don't have acknowledge of a process that use IPerson object before it was loaded from person-directory. Also I've made the change in this way to avoid to modify anything in the person directory, as the serverName is more a request attribute process than person-directory is...
not sure to understand the finality, what I need is to use the serverName to associate theme and channels (so on multi guest mode I will associate a different guest user per serverName).

@drewwills maybe I've got it
I don't necessary need to import the serverName into user informations as I can map a different guest user depending on serverName => that's ok

@jgribonvald,
I don't necessary need to import the serverName into user informations as I can map a different guest user depending on serverName => that's ok

Yes!  This is the easiest part -- the method that decides which guest user you get (and which you need to implement) takes an HttpServletRequest.  It should be very straightforward to fulfill your use case here.
But I need the serverName for authenticated users to map the good skin, or maybe there is a theme transformer that can apply on session attributes (that should contains the serverName) ?

This use case will also require very little work, but it appears that it will require a change to uPortal.
This bean...

https://github.com/Jasig/uPortal/blob/master/uPortal-webapp/src/main/java/org/apereo/portal/context/persondir/PersonDirectoryConfiguration.java#L143

Has this method...

https://developer.jasig.org/projects/person-directory/1.5.0-SNAPSHOT/apidocs/org/jasig/services/persondir/support/web/RequestAttributeSourceFilter.html#setServerNameAttribute(java.lang.String)

but (1) we're not calling it by default, and (2) we're not offering a configurable way to invoke it.
Either (1) or (2) needs to change.  The best outcome, I think, would be for someone to set up a clean/elegant way to configure all the options of that SevletFilter inside uPortal-start.  (Your item is simple -- just a property in uPortal.properties.)

@drewwills : Ok So I will watch to migrate my change to get the serverName into the personDirectory. I've seen this possibility but I didn't like it as it's the personDirectory and for me it used only to load informations from a datasource not to add other properties comming outsite of the datasource... But if you prefer this way I can watch to do it !

@jgribonvald,
I've seen this possibility but I didn't like it as it's the personDirectory and for me it's used only to load informations from a datasource not to add other properties comming outsite of the datasource... But if you prefer this way I can watch to do it !
I feel obligated to advocate for doing it with person-directory.
uPortal is large and complex.  It's can more difficult to maintain than I wish.  To become more agile, we need to look for things we can let go of.  We need one really good way of doing something, rather than several ways to do something.
User attributes is a "core subsystem" of uPortal -- we will never shed it.  We should focus on leveraging, improving, and better-documenting the "core" parts of uPortal.

After looking on it seems that I don't need to push a code to be able to add the serverName. I need only in my customization to add one IPersonAttributeDao bean that provide my property and that use the requestAttributeSourceFilter bean to get the serverName.
Or maybe you wan't that I make a Pull Request to activate it simply by a property ?

I think perhaps the best move here is to update the out-of-the-box config of It requestAdditionalDescriptors to include the serverName attribute by default.  (It can't hurt anything.)

Finaly it works pretty well without add, I don't understand why i don't get it before (maybe it worked after an update of the uPortal version deployed)...
So my PR is more a cleaning of useless code !

LGTM :+1:


APP_INITIALIZER won't work with delayed promises

Make sure to check the existing issues in this repository
Checked.
If there is no issue for your problem, tell us about it
I'm trying Angular's APP_INITIALIZER to initialize app configuration before app launches (SQLite reading). Angular's documentation states that it will wait until the promises on APP_INITIALIZER are resolved to start the application. But on Nativescript you always obtain the error 'Bootstrap promise didn't resolve' whenever you use a delayed Promise on APP_INITIALIZER. This simple code produces the error:
function testInitializer(): Promise<void> {
    return new Promise((resolve: () => void) =>
        setTimeout(() => resolve(), 10)
    );
}

@NgModule({
    bootstrap: [
        AppComponent
    ],
    imports: [
        NativeScriptModule,
        AppRoutingModule
    ],
    declarations: [
        AppComponent
    ],
    providers: [
        { provide: APP_INITIALIZER, useFactory: () => testInitializer, multi: true }
    ],
    schemas: [
        NO_ERRORS_SCHEMA
    ]
})
export class AppModule { }

However, if you return a resolved promise, it works. For example, if you change the initialization funtion to:
function testInitializer(): Promise<void> {
    return Promise.resolve();
}

it boots correctly.
I think that the problem is with the following code on platform-common.js, which doesn't wait for promises before checking the value of bootstrapPromiseCompleted:
https://github.com/NativeScript/nativescript-angular/blob/5e8c0921668a87f68a0f70b9622dc5a2c25a6224/nativescript-angular/platform-common.ts#L165-L197
Which platform(s) does your issue occur on?

iOS and Android, both emulator and device

Please, provide the following version numbers that your issue occurs with:
It can be easily reproduced on Playground: APP_INITIALIZER_PROMISES
Please, tell us how to recreate the issue in as much detail as possible.
The above mentioned Playground does it well.
Is there any code involved?

Hey @Peluko - you are indeed correct.
Тhe angular bootstrap is done in the launchEvent. The NativeScript framework expects that this event handler will return the root view for the app (inside args.root). Usually, the angular bootstrap resolves synchronously and so we are able to get the resulting root view and pass it to NativeScript (trough args.root). Having async app initializer causes the bootstrap promise to resolve async and so there is no view that we can give to the NativeScript framework to render.
Currently, there is no workaround for using async app initializer. Maybe you can do the async job inside your AppComponent or in an angular route resolver service.
There are a couple approaches we have discussed for overcoming this:

Extending logic handling the application launchEvent inside NativeScript, so that you can return a promise.
Changing the angular bootstrap so that if the promise is not resolved immediately - we return a temporary empty view and than when the promise is resolved - we replace the application root with the view returned form the async bootstrap.

I am also running into this issue.
@vakrilov Regarding #2, couldn't the splash screen continue to show until it is resolved?

Have you looked into the resolver service? Maybe you can add one to your default path (you should have a page-router-outlet outlet as the root of your app).
Other approach might be to have a loader component in your default path and trigger the loading inside it. Once the data is loaded you can navigate with clearHistory to your tabbed component.

Thanks @vakrilov, we went with your suggested approach (resolver) and we added it to the first child page route of the tabview component (1st tab page route).
The tabview component is a little bit special it seems in how it connects the routes with the tabs and the whole initialisation of it, although we are new to NS so it could be just us. We tried the "loading component" approach and then navigating to the tabbed component once resolver was done, but having a tabview with child page-router-outlets seems to collide with the app root child-page-router. Perhaps we need to have nested routers in that case? I'm sure this is confusing to read and a Playground example would be much better, but the 1st tab resolver approach seems to work so far with the resolver attached to the tabview child route (1st tab route), although it is yet to be seen how nice of a transition we will be able to make as the app loads for a longer period of time and then renders the 1st tab.
That's why the loading component approach sounds attractive, but not sure how to get that transition from the loading component to the tabview working. The tabview breaks in terms of rendering itself...does the tab view need to sit in its own module, or do we need to have two page-router-outlets, one for the original app and one for the tabs inside the tabview? thnx

A similar error is reproducible during live sync when debugging navigations (Livesync bootstrap promise didn't resolve).
https://github.com/NativeScript/nativescript-angular/blob/master/nativescript-angular/platform-common.ts#L328
Steps to reproduce:

npm i<EMAIL_ADDRESS>-g && tns create appNG –ng && cd appNG
tns debug ios
Set breakpoint in ngOnInit of item-detail.component.ts and tap on an item to hit it.
Edit a css file in order to trigger the livesync process.
You will get the Livesync bootstrap promise didn't resolve error in the Simulator.

As far as I see, the error is caused by the same (<any>global).Zone.drainMicroTaskQueue(); call. We could think about an alternative solution like locking a local object instead of relying on the zone.

Pls, fix this, there's no way to initialize things before the APP would start which is a huge issue when we're talking real Apps

we are also coming across this issue now. we expected it would be easy to implement, because in angular it is. but sadly impossible in nativescript to have a nice implementation. :/

@Firetrip Currently the only way to solve this is the route resolvers. I'm not comfortable with it but there's no other chance.

@csimpi  but how do you handle the wait time? The splashscreen already disappears at this point :(

You could create a "splash" view which displays the app logo and acts like an extended splash screen, so your first route would be splash screen which immediately goes to the next route with a resolver. AFAIK there's no way to extend the native splash screen. Even in the native space the recommended way is to create a new activity with the splash (https://devdeeds.com/how-to-create-a-5-seconds-splash-screen-in-android/)
As soon as your app is loaded android will hide the splashscreen. Best thing you can do is show an artificial one to circumvent this native limitation.

I tried that, but you can see the animation.
This is my route structure and instead of a resolver i do the async logic and the navigation in the SplashComponent.
const routes: Routes = [
    {
        path: "",
        component: SplashComponent,
    },
    {
        path: "pre-login",
        loadChildren: () => import("~/app/pre-login/pre-login.module").then((m) => m.PreLoginModule)
    },
    {
        path: "post-login",
        loadChildren: () => import("~/app/post-login/post-login.module").then((m) => m.PostLoginModule),
        canActivate: [LoginActivate]
    },
];


Testing support

Add support for testing (without needing to run the server?)
Add support for E2E testing support (e.g. Bruno, Hurl, etc)

The main thing we would need to add support for probably is cleaning up the db after tests.
What’s the best way to allow tests to be parallelized while also cleaning up the db between tests? Is there a way to track which tables are modified and/or which rows are added? Also, as a best practice, ids of rows added during tests should be random, so ideally if we’re able to track which ids are created by a test we can delete just those ids.

It looks like seaorm also allows mocking the db, which may cover our use cases. It may also allow us to run tests without needing a running Postgres instance. Though, it still might be good to have some sanity tests against an actual pg instance, and maybe we would want to run all tests against an actual pg instance still.  Or does something like that exist already?

Not related to the previous comment, this could be interesting: https://github.com/rust-rspec/rspec
looks like it hasn’t been updated in a while though. I wonder if it’s still maintained and/or if it’s considered done/stable.

Also interesting: https://crates.io/crates/shoulda

Factoybot for rust: https://crates.io/crates/factori

Can we allow using in-memory SQLite for tests? We’d probably want to provide a way to switch between SQLite and a real db on a per test or per group basis somehow

Some testing utilities (mainly related to using insta and rstest) were added in https://github.com/roadster-rs/roadster/pull/277

Closing this for now because we allow mocking the DB connection and we support TestContainers


feat(storage) CacheTable rewrite

Description
This PR rewrites the CacheTable used for the L2 block manager (and soon the L1BM) to increase performance.
It adds the following dependencies:

Dependency
About
Reason for addition

concurrent-map
A lock-free B+ tree based on sled’s internal index structure, but supporting richer Rust types as keys and values than raw bytes. This structure supports atomic compare and swap operations with the ConcurrentMap::cas method.
Powers the new in-memory cache, replaces the effective Mutex around a hashmap + arc rubbish we had going on before.

cache-advisor
A simple, high performance scan-resistant eviction manager. Tells you when to evict items from a cache. Features: two-segment LRU, protects against cache pollution from single-hit items, 256 shards accessed via non-blocking flatcombining, local access buffer that must fill up before accessing shared state, compresses the costs associated with each item to a u8 using a compression technique that will converge to the overall true sum of costs over time, but allows for much less memory to be used for accounting.
Concurrent map isn't an LRU by itself, so this gives us LRU functionality

kanal
Provides multi-producer and multi-consumer channels with advanced features and lock-free one-shot channels that only allocate the size of a pointer in the heap, allowing for fast communication. The library has a focus on unifying message passing between synchronous and asynchronous portions of Rust code through a combination of synchronous and asynchronous APIs while maintaining high performance.
Fastest channel design in Rust, so I want to move our internal channels to use this eventually. However, it was needed here for another reason. Tokio's broadcast::Receivercannot be cloned - you need the Senderto create new Receivers. Kanal's channels are cooler and let you do this, which gets rid of the Arcing we were previously doing, allowing concurrent map to clone Slots when necessary

ahash
Rust's fastest Hasherimplementation. Uses hardware AES when available. Non-cryptographic.
CacheAdvisoridentifies objects via u64 keys. To keep the cache generic, we require V: Hashand then internally use u64s to identify things in the map. So a bit of a hybrid between a B+ tree and a hash map.

Note that the new CacheTableis Sendbut !Sync. You cannot share a single instantiation between threads. This is the biggest API-level change. The way to share it across threads is by cloning, and giving a new clone of the CacheTable whenever it might switch threads, like for a tokio task.
I haven't yet tested the performance of this implementation, but I've built something using the same tooling and similar algorithms before. These things are usually blisteringly quick.
Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature/Enhancement (non-breaking change which adds functionality or enhances an existing one)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[x] Refactor
[ ] New or updated tests

Checklist

[ ] I have performed a self-review of my code.
[ ] I have commented my code where necessary.
[ ] I have updated the documentation if needed.
[ ] My changes do not introduce new warnings.
[ ] I have added tests that prove my changes are effective or that my feature works.
[ ] New and existing tests pass with my changes.

Related Issues

STR-627

Note that the new CacheTableis Sendbut !Sync. You cannot share a single instantiation between threads. This is the biggest API-level change. The way to share it across threads is by cloning, and giving a new clone of the CacheTable whenever it might switch threads, like for a tokio task.

Yeah this is a big problem.  We're likely to be fetching stuff from DB on different tasks/threads, so this probably weakens our use of caching here.

Anyway, not gonna do this anymore. I spent way too much time working on something like this last week and it was basically just premature optimisations and the replacement data structure that was built is very buggy atm.

But I liked the idea of parking_lot + hashbrown. That was an easy refactor and it was faster than what we have now no?


Only apply SquishSQLHeredoc when the SQL has no comments

Removes all strings and identifiers from the SQL and then checks it for single-comment markers, and does not apply the cop if they are present

I left several comments. Can you update and add a changelog entry?

Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Thank you, have addressed the comments

This PR can be merged after CI is passed. Can you fix and squash your commits into one?

As in the squash-and-merge option on the PR or as in squashing and repushing?

squashing and repushing?

Yeah, please do git rebase -i, squash, and force push to the branch.

All squashed. Out of curiosity, is there any advantage to this approach instead of squash-and-merge?

All squashed.

It looks like there are commits that haven't been squashed yet :-)

Out of curiosity, is there any advantage to this approach instead of squash-and-merge?

Squash merge changes the commit hash. This will cause broken links, etc. For example, it will take more effort to acquire released tag from PR commits merged into mater. And many more.
https://github.com/rubocop/rubocop-rails/pull/747#issuecomment-1190102450
Of course it depends on maintainers, and I don't want to deny other opinions. But I don't like it as a long time maintainer.

It looks like there are commits that haven't been squashed yet :-)

Ugh sorry I committed the suggestion from GitHub and didn't think about squashing that. Done now

"Squash and merge" changes the commit hash. This will cause broken links, etc. For example, it will take more effort to acquire released tag from PR commits merged into mater. And many more.
https://github.com/rubocop/rubocop-rails/pull/747#issuecomment-1190102450

Interesting, thanks!

Thank you, too!


Have to restart Peruse to connect to the network

It is often necessary to restart Peruse to connect to the network. I think this is because it's authenticating in the background now and sometimes that can take a bit of time. On loading a page the user is greeted with a "resource unavailable" type error (from memory - can't reproduce at the moment, typical ;) ), after which the only solution seems to be a reboot. Perhaps this message could be changed to add "please wait a moment or reboot the browser"?
Peruse version 0.4.1

Thank @JPL1 ! Closing as duplicate of #11

FYI, the error itself is coming from the network, so I'd not opt to switch that per se.
But we will be working in the reconnect functionality into an upcoming milestone, so this should ideally provide some of the missing UX feedback we need here 👍


Corrected DNSHostname, Canonicalnam

Correct Hostname, canonicalname, managedby and multiple other objects which contained user01.com as user domain instead fabrikam.com

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


Korean translation.

I may have missed something, but I'm pretty sure I've translated all.
Thanks for the tool! It's very cool.

Thank you very much for translating it!


glib: ignore unref return value

Some unref APIs (vte_regex_unref) have return values. Ignore that to fix
compilation issues, and return void.
Signed-off-by: Marc-André Lureau<EMAIL_ADDRESS>

Please add the same to src/boxed.rs while we're at it (for the free function).

only free? or init and clear too?

only free? or init and clear too?

All of them I guess

Needs some clippy #[allow]s :)

@GuillaumeGomez New clippy warning on beta
error: constructor `version` has the same name as the type
  --> cairo/src/utils.rs:40:5
   |
40 | /     pub fn version() -> Version {
41 | |         let version = unsafe { ffi::cairo_version() };
42 | |         Version {
43 | |             major: (version / 10_000 % 100) as _,
...  |
46 | |         }
47 | |     }
   | |_____^
   |
   = note: `-D clippy::self-named-constructor` implied by `-D warnings`
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#self_named_constructor

Should probably rename this to fn new() and impl Default...

@elmarco did it in https://github.com/gtk-rs/gtk-rs-core/pull/217.

@elmarco This needs a rebase now and then the CI should be succeeding.

Looks like this missed at least one place: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/jobs/12335738


fix #1844: show add/remove worker buttons for admin

Please add the status check.

@clockfly Yes, the status check is included. I will query /api/v1.0/supervisor, if Gearpump is running in YARN, the response should contain an non-empty path string. And the add/remove button will be visible in this case only.

Current coverage is 64.42%

Merging #2026 into master will increase coverage by +1.07% as of 322a507

@@            master   #2026   diff @@
======================================
  Files          179     179
  Stmts         5700    5700
  Branches       660     660
  Methods
======================================
+ Hit           3611    3672    +61
  Partial          0       0
+ Missed        2089    2028    -61

Review entire Coverage Diff as of 322a507

Uncovered Suggestions

+0.21% via .../worker/Worker.scala#184...195
+0.21% via ...cutor/Executor.scala#283...294
+0.19% via .../MasterService.scala#137...147
See 7 more...

Powered by Codecov. Updated on successful CI builds.

+1


Bunch of changes with the form

@RuslanHamidullin please review carefully, it's my first commits around that.
Moreover:
I've changed the Country field to be County in one of the questions for Trade. If I understand the problem correctly now all forms on servers which has the principal_address_country instead of county would be invalid ?
so I need to update them all after that

@jaleszek looks good, but some notes:

You need to setup principal_address sub_fields here (as default):
https://github.com/bitzesty/qae/blob/master/lib/qae_form_builder/address_question.rb#L46
instead of in app/forms
As you changed name of data field, so need to add simple rake task in order to make existing forms valid again on 4 servers after deploying this progress

@RuslanHamidullin
1) You need to setup principal_address sub_fields here (as default):
https://github.com/bitzesty/qae/blob/master/lib/qae_form_builder/address_question.rb#L46
instead of in app/forms

Are you sure ?
      if sub_fields.present?
        sub_fields

I assume it gets the subfields from the question ?

@jaleszek it's default
https://github.com/bitzesty/qae/blob/master/lib/qae_form_builder/address_question.rb#L41

I do not need to specify it in 3 places as  they same

Story doesn't cover changing it everywhere.


Is it possible to convert texts containing relations annotated in Label Studio into a Spacy binary file format ?

Is there a converter somewhere that can be used to turn JSON Label Studio files into Spacy binary file format ? I've been working on Label Studio for a while and I didn't expect to hit this roadblock... I urgently need some sort of converter for a relation extraction project.
For context, I'm talking about Spacy's custom relation extraction component : https://youtu.be/8HL-Ap5_Axo
While Label Studio's documentation shows that annotations for NER can be converted to Spacy binary format if they are exported as CONLL2003 files, the CONLL2003 format doesn't capture the annotated relations.
Is there a solution or work around to this problem ?

Hello Sofyan-fcomte,
Unfortunately, there isn't a direct converter to transform Label Studio JSON files with relation annotations into spaCy binary format. However, you can create a custom script to convert the Label Studio JSON annotations to a format that spaCy can understand for relation extraction.
Here's a high-level outline of the steps you can follow:

Export your annotations from Label Studio in JSON format.
Write a custom script to parse the Label Studio JSON annotations and extract the relevant information for relation extraction.
Convert the extracted information into a format that spaCy's custom relation extraction component can understand, such as the format used in the example in the video you provided.
Train your spaCy relation extraction model using the converted data.

Keep in mind that this process requires some programming skills, and you might need to adjust it based on your specific project requirements.