text:
SFTTrainer.train() gets "ERROR:root:Internal Python error in the inspect module"

I am currently trying to train LLaMa2 model with peft and SFTTrainer on Google Colab (using A100 40GB GPU).
However, I am getting the following error consistently, for some reason.
ERROR:root:Internal Python error in the inspect module.
Below is the traceback from this internal error.

ERROR:root:Internal Python error in the inspect module.
Below is the traceback from this internal error.

ERROR:root:Internal Python error in the inspect module.
Below is the traceback from this internal error.

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 3553, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-27-3435b262f1ae>", line 1, in <cell line: 1>
    trainer.train()
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer.py", line 1545, in train
    return inner_training_loop(
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer.py", line 1901, in _inner_training_loop
    self._maybe_log_save_evaluate(tr_loss, model, trial, epoch, ignore_keys_for_eval)
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer.py", line 2212, in _maybe_log_save_evaluate
    self.log(logs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer.py", line 2591, in log
    self.control = self.callback_handler.on_log(self.args, self.state, self.control, logs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer_callback.py", line 390, in on_log
    return self.call_event("on_log", args, state, control, logs=logs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer_callback.py", line 397, in call_event
    result = getattr(callback, event)(
  File "/usr/local/lib/python3.10/dist-packages/transformers/integrations.py", line 662, in on_log
    self.tb_writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/tensorboard/writer.py", line 1200, in flush
    writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/tensorboard/writer.py", line 150, in flush
    self.event_writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 125, in flush
    self._async_writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 190, in flush
    self._writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/record_writer.py", line 43, in flush
    self._writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/lib/io/file_io.py", line 221, in flush
    self._writable_file.flush()
tensorflow.python.framework.errors_impl.FailedPreconditionError: llama2-outputs/runs/Sep16_11-10-56_0a47c1af07b4/events.out.tfevents.1694866816.0a47c1af07b4.2289.0; Transport endpoint is not connected

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 2099, in showtraceback
    stb = value._render_traceback_()
AttributeError: 'FailedPreconditionError' object has no attribute '_render_traceback_'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1101, in get_records
    return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 248, in wrapped
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 281, in _fixed_getinnerframes
    records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))
  File "/usr/lib/python3.10/inspect.py", line 1662, in getinnerframes
    frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)
  File "/usr/lib/python3.10/inspect.py", line 1620, in getframeinfo
    filename = getsourcefile(frame) or getfile(frame)
  File "/usr/lib/python3.10/inspect.py", line 829, in getsourcefile
    module = getmodule(object, filename)
  File "/usr/lib/python3.10/inspect.py", line 861, in getmodule
    file = getabsfile(object, _filename)
  File "/usr/lib/python3.10/inspect.py", line 845, in getabsfile
    return os.path.normcase(os.path.abspath(_filename))
  File "/usr/lib/python3.10/posixpath.py", line 384, in abspath
    cwd = os.getcwd()
OSError: [Errno 107] Transport endpoint is not connected
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 3553, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-27-3435b262f1ae>", line 1, in <cell line: 1>
    trainer.train()
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer.py", line 1545, in train
    return inner_training_loop(
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer.py", line 1901, in _inner_training_loop
    self._maybe_log_save_evaluate(tr_loss, model, trial, epoch, ignore_keys_for_eval)
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer.py", line 2212, in _maybe_log_save_evaluate
    self.log(logs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer.py", line 2591, in log
    self.control = self.callback_handler.on_log(self.args, self.state, self.control, logs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer_callback.py", line 390, in on_log
    return self.call_event("on_log", args, state, control, logs=logs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer_callback.py", line 397, in call_event
    result = getattr(callback, event)(
  File "/usr/local/lib/python3.10/dist-packages/transformers/integrations.py", line 662, in on_log
    self.tb_writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/tensorboard/writer.py", line 1200, in flush
    writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/tensorboard/writer.py", line 150, in flush
    self.event_writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 125, in flush
    self._async_writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 190, in flush
    self._writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/record_writer.py", line 43, in flush
    self._writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/lib/io/file_io.py", line 221, in flush
    self._writable_file.flush()
tensorflow.python.framework.errors_impl.FailedPreconditionError: llama2-outputs/runs/Sep16_11-10-56_0a47c1af07b4/events.out.tfevents.1694866816.0a47c1af07b4.2289.0; Transport endpoint is not connected

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 2099, in showtraceback
    stb = value._render_traceback_()
AttributeError: 'FailedPreconditionError' object has no attribute '_render_traceback_'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 3473, in run_ast_nodes
    if (await self.run_code(code, result,  async_=asy)):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 3575, in run_code
    self.showtraceback(running_compiled_code=True)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 2101, in showtraceback
    stb = self.InteractiveTB.structured_traceback(etype,
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1367, in structured_traceback
    return FormattedTB.structured_traceback(
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1267, in structured_traceback
    return VerboseTB.structured_traceback(
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1124, in structured_traceback
    formatted_exception = self.format_exception_as_a_whole(etype, evalue, etb, number_of_lines_of_context,
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1082, in format_exception_as_a_whole
    last_unique, recursion_repeat = find_recursion(orig_etype, evalue, records)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 382, in find_recursion
    return len(records), 0
TypeError: object of type 'NoneType' has no len()

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 2099, in showtraceback
    stb = value._render_traceback_()
AttributeError: 'TypeError' object has no attribute '_render_traceback_'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1101, in get_records
    return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 248, in wrapped
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 281, in _fixed_getinnerframes
    records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))
  File "/usr/lib/python3.10/inspect.py", line 1662, in getinnerframes
    frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)
  File "/usr/lib/python3.10/inspect.py", line 1620, in getframeinfo
    filename = getsourcefile(frame) or getfile(frame)
  File "/usr/lib/python3.10/inspect.py", line 829, in getsourcefile
    module = getmodule(object, filename)
  File "/usr/lib/python3.10/inspect.py", line 861, in getmodule
    file = getabsfile(object, _filename)
  File "/usr/lib/python3.10/inspect.py", line 845, in getabsfile
    return os.path.normcase(os.path.abspath(_filename))
  File "/usr/lib/python3.10/posixpath.py", line 384, in abspath
    cwd = os.getcwd()
OSError: [Errno 107] Transport endpoint is not connected
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 3553, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-27-3435b262f1ae>", line 1, in <cell line: 1>
    trainer.train()
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer.py", line 1545, in train
    return inner_training_loop(
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer.py", line 1901, in _inner_training_loop
    self._maybe_log_save_evaluate(tr_loss, model, trial, epoch, ignore_keys_for_eval)
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer.py", line 2212, in _maybe_log_save_evaluate
    self.log(logs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer.py", line 2591, in log
    self.control = self.callback_handler.on_log(self.args, self.state, self.control, logs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer_callback.py", line 390, in on_log
    return self.call_event("on_log", args, state, control, logs=logs)
  File "/usr/local/lib/python3.10/dist-packages/transformers/trainer_callback.py", line 397, in call_event
    result = getattr(callback, event)(
  File "/usr/local/lib/python3.10/dist-packages/transformers/integrations.py", line 662, in on_log
    self.tb_writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/tensorboard/writer.py", line 1200, in flush
    writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/torch/utils/tensorboard/writer.py", line 150, in flush
    self.event_writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 125, in flush
    self._async_writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/event_file_writer.py", line 190, in flush
    self._writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/tensorboard/summary/writer/record_writer.py", line 43, in flush
    self._writer.flush()
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/lib/io/file_io.py", line 221, in flush
    self._writable_file.flush()
tensorflow.python.framework.errors_impl.FailedPreconditionError: llama2-outputs/runs/Sep16_11-10-56_0a47c1af07b4/events.out.tfevents.1694866816.0a47c1af07b4.2289.0; Transport endpoint is not connected

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 2099, in showtraceback
    stb = value._render_traceback_()
AttributeError: 'FailedPreconditionError' object has no attribute '_render_traceback_'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 3473, in run_ast_nodes
    if (await self.run_code(code, result,  async_=asy)):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 3575, in run_code
    self.showtraceback(running_compiled_code=True)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 2101, in showtraceback
    stb = self.InteractiveTB.structured_traceback(etype,
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1367, in structured_traceback
    return FormattedTB.structured_traceback(
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1267, in structured_traceback
    return VerboseTB.structured_traceback(
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1124, in structured_traceback
    formatted_exception = self.format_exception_as_a_whole(etype, evalue, etb, number_of_lines_of_context,
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1082, in format_exception_as_a_whole
    last_unique, recursion_repeat = find_recursion(orig_etype, evalue, records)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 382, in find_recursion
    return len(records), 0
TypeError: object of type 'NoneType' has no len()

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 2099, in showtraceback
    stb = value._render_traceback_()
AttributeError: 'TypeError' object has no attribute '_render_traceback_'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 3030, in _run_cell
    return runner(coro)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/async_helpers.py", line 78, in _pseudo_sync_runner
    coro.send(None)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 3257, in run_cell_async
    has_raised = await self.run_ast_nodes(code_ast.body, cell_name,
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 3492, in run_ast_nodes
    self.showtraceback()
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 2101, in showtraceback
    stb = self.InteractiveTB.structured_traceback(etype,
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1367, in structured_traceback
    return FormattedTB.structured_traceback(
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1267, in structured_traceback
    return VerboseTB.structured_traceback(
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1142, in structured_traceback
    formatted_exceptions += self.format_exception_as_a_whole(etype, evalue, etb, lines_of_context,
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1082, in format_exception_as_a_whole
    last_unique, recursion_repeat = find_recursion(orig_etype, evalue, records)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 382, in find_recursion
    return len(records), 0
TypeError: object of type 'NoneType' has no len()

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/interactiveshell.py", line 2099, in showtraceback
    stb = value._render_traceback_()
AttributeError: 'TypeError' object has no attribute '_render_traceback_'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 1101, in get_records
    return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 248, in wrapped
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/IPython/core/ultratb.py", line 281, in _fixed_getinnerframes
    records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))
  File "/usr/lib/python3.10/inspect.py", line 1662, in getinnerframes
    frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)
  File "/usr/lib/python3.10/inspect.py", line 1620, in getframeinfo
    filename = getsourcefile(frame) or getfile(frame)
  File "/usr/lib/python3.10/inspect.py", line 829, in getsourcefile
    module = getmodule(object, filename)
  File "/usr/lib/python3.10/inspect.py", line 861, in getmodule
    file = getabsfile(object, _filename)
  File "/usr/lib/python3.10/inspect.py", line 845, in getabsfile
    return os.path.normcase(os.path.abspath(_filename))
  File "/usr/lib/python3.10/posixpath.py", line 384, in abspath
    cwd = os.getcwd()
OSError: [Errno 107] Transport endpoint is not connected

Hmmm very strange, we do test 3.10 in the CI and everything seems to work fine so far: https://github.com/huggingface/trl/blob/main/.github/workflows/tests.yml#L33
@vwxyzjn  @tomaarsen do you know by any chance what this might be?

Transport endpoint is not connected seems to occur more often in Google Colab, e.g. related to a drive not being correctly mounted. You can often fix it with restarting the runtime or re-fusing some drive: https://stackoverflow.com/questions/49588113/google-colab-script-throws-transport-endpoint-is-not-connected
Alternatively, you can uninstall tensorboard as it's triggering the exception. Perhaps W&B gives you more luck?

Thanks for these amazing pointers @tomaarsen ! @YeonwooSung could you let us know if this resolves your issues?

@younesbelkada Yes, I was able to solve this issue by adding auto remount callback function.
Seems like it is necessary to remount when your notebook uses many disk writing operations in Google Colab..
@tomaarsen Thanks so much for help!

Thanks ! Marking this issue as solved, feel free to re-open if you think we still need to address it

authors: YeonwooSung tomaarsen younesbelkada


text:
KeyError: 'coded_sps_mean'

OS: Windows
I'm only changed some code that the folders and files will be work on windows, the rest of the code is untouched.
If i start train.py
python train.py --processed_dir .\data\processed --test_wav_dir .\data\fourspeakers_test
I get the error:
Traceback (most recent call last):   File "train.py", line 266, in <module>     train(processed_dir, test_wav_dir)   File "train.py", line 115, in train     one_file = normlizer.forward_process(one_file, speaker_name)   File "C:\work\StarGAN-Voice-Conversion\utility.py", line 33, in forward_process     mean = self.norm_dict[speakername]['coded_sps_mean'] KeyError: 'coded_sps_mean'
in the array of 'speakername' are the dict keys:
dict_keys(['f0', 'ap', 'sp', 'coded_sp'])
Any idea how i could fix it?

The code only tested on ubuntu 16.04

hi raanubis, i have the same problem. Did you solve the problem?

source: gharchive/issue

authors: hujinsen merveyyildiz raanubis

repo: hujinsen/StarGAN-Voice-Conversion

license: mit

license_type: permissive

license_source: bigquery


text:
Can't downgrade read-only database from version 2 to 1

Hello! Trying to create pre-populated database.
My Database
@Database(entities = {Series.class}, version = 2, exportSchema = false)
...
public static AppDatabase getDatabase(Context context) {
    if (INSTANCE == null) {
 synchronized (AppDatabase.class) {
     if (INSTANCE == null) {
    INSTANCE = RoomAsset.databaseBuilder(context,
            AppDatabase.class, DB_NAME)
             .allowMainThreadQueries()
                .build();
       }
       }
       }
        return INSTANCE;
    }
Problem is:
`I/SQLiteAssetHelper: successfully opened database cymbalsbase.db
W/SQLiteAssetHelper: Can't downgrade read-only database from version 2 to 1:
Upgrading database cymbalsbase.db from version 2 to 1...
missing database upgrade script: databases/cymbalsbase.db_upgrade_0-1.sql
E/SQLiteAssetHelper: no upgrade script path from 2 to 1
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main`
What can i do?

try to uninstall the current version and install a new one and see if the problem still exists.

I can't reproduce this error on my end, can you provide the steps leading to this exception?

I uninstall app on emulator and install it, then i get this error.
Can you tell me how i can provide steps?

I still can't reproduce your error.
can you provide a minimum working example so I can work on fixing this problem.

W/SQLiteAssetHelper: Can't downgrade read-only database from version 2 to 1
I solve this problem by using read-write database instead or you can change database version to 1.

repo: humazed/RoomAsset

license_source: github-api


text:
Feat/arbitrage component

Before submitting this PR, please make sure:

[ ] Your code builds clean without any errors or warnings
[ ] You are using approved title ("feat/", "fix/", "docs/", "refactor/")

A description of the changes proposed in the pull request:

Create Arbitrage component that works between DEX/CEX
Create script that uses the arbitrage component

Tests performed by the developer:
Tips for QA testing:

Yeah, I fixed it by adding in the conditional the check that the order
exists.
On Sun, 9 Jul 2023 at 20:09 Michael Feng @.***> wrote:

@.**** commented on this pull request.
In hummingbot/smart_components/arbitrage_executor/arbitrage_executor.py
https://github.com/hummingbot/hummingbot/pull/6452#discussion_r1257521809
:

           trade_pnl_pct = await self.get_trade_pnl_pct()

           fee_pct = await self.get_tx_cost_pct()

           profitability = trade_pnl_pct - fee_pct

           if profitability > self.min_profitability:

               await self.execute_arbitrage()

       except Exception as e:

           self.logger().error("Error calculating profitability", e)

   elif self.arbitrage_status == ArbitrageExecutorStatus.ACTIVE_ARBITRAGE:

       if self._cumulative_failures > self.max_retries:

           self.arbitrage_status = ArbitrageExecutorStatus.FAILED

           self.terminate_control_loop()

       else:

           self.check_order_status()

def check_order_status(self):

   if self.buy_order.order.is_filled and self.sell_order.order.is_filled:

2023-07-09 10:57:50,820 - 25875 - hummingbot.core.utils.async_utils - ERROR - Unhandled error in background task: 'NoneType' object has no attribute 'is_filled'
Traceback (most recent call last):
File "/Users/feng/Code/hummingbot/hummingbot/core/utils/async_utils.py", line 9, in safe_wrapper
return await c
File "/Users/feng/Code/hummingbot/hummingbot/smart_components/smart_component_base.py", line 72, in control_loop
await self.control_task()
File "/Users/feng/Code/hummingbot/hummingbot/smart_components/arbitrage_executor/arbitrage_executor.py", line 120, in control_task
self.check_order_status()
File "/Users/feng/Code/hummingbot/hummingbot/smart_components/arbitrage_executor/arbitrage_executor.py", line 123, in check_order_status
if self.buy_order.order.is_filled and self.sell_order.order.is_filled:
the above error is raised when there's no order object in this line
—
Reply to this email directly, view it on GitHub
https://github.com/hummingbot/hummingbot/pull/6452#pullrequestreview-1520941616,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIZJOSAWXKVFHUHOKM6Y6OTXPLXUTANCNFSM6AAAAAA2B24CAY
.
You are receiving this because you authored the thread.Message ID:
@.***>

PR update:

Test latest commit 6c76c7f0e
Overview on PR and script arbitrage_with_smart_component
Setup this PR and latest gateway development branch
Modified script using georli and paper trade.
Start and observed behavior:

At the start of the script getting error on price..

Getting unexpected error while processing even 200  when using to paper_trade and not related to current design of the PR ✅
Tested with Binance mainnet instead 👀

After successfully closing the arbitrage, UI seems to have been broken

Run status command will return the same UI behavior
Compare trade data from client and goerli etherscan,

Txn recorded ok and no error found on the process

Pending:

Not able to fully test the script with status --live UI seems to be broken atm (3/3 attempts)

Closed in favor of #6505

source: gharchive/pull-request

authors: cardosofede fengtality rapcmia

repo: hummingbot/hummingbot


text:
Améliorer l'affichage des données sur la carte

La carte est vraiment illisible, aussi bien en terme de couleurs, que de taille des points, etc.
On pourrait essayer de mettre des icones pour matérialiser les points importants (warehouse, delivery sélectionnée, ...)
Voir GraphicsContext.drawPath pour afficher une image sur le Canvas.

Je te laisse checker et accepter. Pour l'instant il y a que les affichages de la Warehouse et du point sélectionné qui ont été modifiés. À voir ce qu'on veut faire pour l'affichage des tours plus tard.

repo: hunkanome/AGILE-KroustyTour

license: MIT


text:
🎨 style(DashboardPage.svelte): adjust column span for Recent Sales ca…

fix Recent Sales card span in md and smaller view

in the dashboard example page, the two cards are not aligned when viewport's width is smaller than 1024px

Thank you @mactanxin !

@huntabyte Hi, is there anything I need to do about this PR? Or other issues 😉

hey @mactanxin -  there was actually a big merge that should have addressed this! If not, please let me know!

authors: huntabyte mactanxin

repo: huntabyte/shadcn-svelte


text:
🛑 kuma is down

In 49b97b9, kuma (https://uptime.thekor.eu/status/cloud) was down:

HTTP code: 0
Response time: 0 ms

Resolved: kuma is back up in 44724ff after 10 minutes.

repo: hupratt/upptime


text:
🛑 retro is down

In 3db7a82, retro (https://retro.craftstudios.shop/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: retro is back up in 5695b63.


text:
🛑 youtubeclone is down

In 42cca7e, youtubeclone (https://youtube.thekor.eu/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: youtubeclone is back up in 791eb52 after 27 minutes.


text:
Assertion error

thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `0`,
 right: `1`', src/epub/builder.rs:208:17
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Book: 9781789801217

Fixed in 0.1.2

repo: hurlenko/orly


text:
BootCDN 存在投毒风险，建议更换其他 CDN 服务

https://blog.feizhuqwq.com/86
https://github.com/hust-open-atom-club/linux-edu-rank/blob/4b385c3fddf79d1480a38c429a7747a813e6e5f3/index.html#L9-L15

好的，多谢，我们已经安排同学来看这个issue了

Merge Reason:
As of now, the poisoning issue with BootCDN has not been resolved, and it is necessary to switch to a different CDN service to ensure the normal use of the website.
Using Zstatic.net in conjunction with SRI is an better choice, as it can ensure that the content is not tampered with.

You should comment on the PR instead of this issue.

authors: THINKER-ONLY mudongliang shirok1

repo: hust-open-atom-club/linux-edu-rank


text:
added page level ads prop

I added the prop to manage the page level ads, it has to be tested better

official document：
<script>
(adsbygoogle = window.adsbygoogle || []).push({
google_ad_client: "ca-pub-123456789",
enable_page_level_ads: true
});
</script>

so add it into dom attribute is really work? can help add a demo on website?

Could you please explain with a little more detail? I have some problems when switching routes with React Router

repo: hustcc/react-adsense


text:
能否支持多服务代理

内网有好多代理需求

Could you be more specific on your requirement?

我也有同样的需求，配置的页现在只能配置一台。希望可以直接编辑frpc.toml文件，这样就可以配置多台设备。

Sorry for the late reply! I’ll get to work on that now. Thanks! @HouDiZhong @luckywaa

authors: HouDiZhong huxiaoxu2019 luckywaa


text:
Error executing action run on resource 'execute[omnibus_install]

My chef-client is exiting out after it tries to install the omnibus package :
  * execute[omnibus_install[chef-client-12.7.2.rpm]] action run
    [execute] warning: /opt/chef/cache/omnibus_updater/chef-client-12.7.2.rpm: Header V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
              Preparing...                ##################################################
              	package chef-12.7.2-1.el6.x86_64 is already installed

    ****================================================================================
    Error executing action `run` on resource 'execute[omnibus_install[chef-client-12.7.2.rpm]]'
    ================================================================================**

    Mixlib::ShellOut::ShellCommandFailed
    ------------------------------------**
    Expected process to exit with [0], but received '1'
    ---- Begin output of rpm -Uvh --oldpackage /opt/chef/cache/omnibus_updater/chef-client-12.7.2.rpm ----
    STDOUT: Preparing...                ##################################################
    STDERR: warning: /opt/chef/cache/omnibus_updater/chef-client-12.7.2.rpm: Header V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
    	package chef-12.7.2-1.el6.x86_64 is already installed
    ---- End output of rpm -Uvh --oldpackage /opt/chef/cache/omnibus_updater/chef-client-12.7.2.rpm ----
    Ran rpm -Uvh --oldpackage /opt/chef/cache/omnibus_updater/chef-client-12.7.2.rpm returned 1

    Resource Declaration:
    ---------------------
    # In /opt/chef/cache/cookbooks/omnibus_updater/recipes/installer.rb

     58: execute "omnibus_install[#{File.basename(remote_path)}]" do
     59:   case File.extname(remote_path)
     60:   when '.deb'
     61:     command "dpkg -i #{File.join(node[:omnibus_updater][:cache_dir], File.basename(remote_path))}"
     62:   when '.rpm'
     63:     command "rpm -Uvh --oldpackage #{File.join(node[:omnibus_updater][:cache_dir], File.basename(remote_path))}"
     64:   when '.sh'
     65:     command "/bin/sh #{File.join(node[:omnibus_updater][:cache_dir], File.basename(remote_path))}"
     66:   when '.solaris'
     67:     command "pkgadd -n -d #{File.join(node[:omnibus_updater][:cache_dir], File.basename(remote_path))} -a /tmp/nocheck chef"
     68:   else
     69:     raise "Unknown package type encountered for install: #{File.extname(remote_path)}"
     70:   end
     71:   if(node[:omnibus_updater][:restart_chef_service])

    Compiled Resource:
    ------------------
    # Declared in /opt/chef/cache/cookbooks/omnibus_updater/recipes/installer.rb:58:in `from_file'

    execute("omnibus_install[chef-client-12.7.2.rpm]") do
      action [:run]
      retries 0
      retry_delay 2
      default_guard_interpreter :execute
      command "rpm -Uvh --oldpackage /opt/chef/cache/omnibus_updater/chef-client-12.7.2.rpm"
      backup 5
      returns 0
      declared_type :execute
      cookbook_name "omnibus_updater"
      recipe_name "installer"
      only_if { #code block }
    end

edited the above to be a codeblock for easier reading :)

some formatting issues in my cookbook were causing this

I'm having the same issue all of a sudden. It's only happening in one cookbook though and I don't see any difference there. What were your formatting issues @ishug86 ?

Facing same error. @ishug86 @jslusher could you share what formatting or any other issues where causing this?

authors: ishug86 jslusher luckymike xTNTx


text:
[blog] updated the minio-test blog

This is only a preliminary update of this blog, which may have a long way to be a perfect blog. For example:

A blog shall not have too many spammed images that may provide a big delay to open the blog page.
A blog shall give more clear commands that you can directly copy/paste rather than screenshots.
A blog shall provide sufficient links to support your test as a reference.
What is the most important in a test blog? The test result shall be normally.

and more to talk further.

Good Suggestions! 👍

authors: SSmallMonster windsonsea

repo: hwameistor/hwameistor


text:
MGS88: Daftar Situs Slot Shopeepay Online 24 Jam win rate 98.50%

DAFTAR DISINI!!
DAFTAR KLIK DISINI!!
LINK DAFTAR!!
Slot shopeepay, Daftar situs slot deposit shopeepay 10k tanpa potongan dimana pelaksanaan shopeepay itu udah benar-benar menopang para judi slot online jauh lebih berkembang berasal dari sebelumnya pasalnya slot deposit via shopeepay ini mendukung di dalam mempermudah transaksi disaat kamu mengidamkan melaksanakan pembayaran. Kini orang orang menghendaki bermain judi online khususnya slot game jangan khwatir lagi apabila tidak miliki saldo di ATM, gara-gara bersama adanya pelaksanaan shopeepay telah dapat memberi tambahan efek vital buat slot online lapak pusat di indonesia.
Di slot deposit shopeepay 10k merupakan salah satu partner paling baik bagi website judi slot online terpercaya dan paling baik sebab kehadiran pelaksanaan shopeepay jauh lebih menopang bersama pertumbuhan teknologi zaman ini. Bagaimana tidak, pelaksanaan e-wallet atau dompet digital ini sudah memberi tambahan kemudahan bagi siapapun yang mau bermain taruhan slot online selama 24 jam tanpa sedikitpun terkendala gangguan maupun jadwal offline.
Tak sekedar deposit pakai shopeepay, seperti biasa terdapat lebih dari satu pelaksanaan e-wallet yang mampu digunakan untuk bertransaksi antara lain, slot deposit 10k shopeepay, slot shopee, slot deposit shopeepay, depo slot via shopeepay dan juga slot deposit shopeepay 10k tanpa potongan dapat kalian pakai untuk setoran shopeepay disini. Intinya slot online deposit shopeepay memudahkan kalian pas main bersama dengan kami game uang orisinil teraman di indonesia.
Situs Gacor Slot Shopeepay Online 24 Jam
Berikut ini adalah deretan daftar slot online yang di rekomendasikan dan menawarkan beragam jenis permainan slot online dari beberapa provider slot ternama dan persentase yang besar untuk mendapatkan kemenangan atau JP yang mudah. Berikut daftarnya:

SLOT SHOPEEPAY PRAGMATIC PLAY
Slot Gacor Pragmatic Play adalah salah satu provider yang memproduksi jenis permainan Game Slot Gacor yang ada di Indonesia. Slot Gacor Pragmatic Play tersendiri adalah salah satu jenis provider ternama yang mudah memberikan kemenangan kepada member setianya yang gemar bermain Game Slot. Pragmatic Play sendiri sudah bekerjasama dengan Pragmatic play sendiri untuk memberikan informasi sekilas 100 Game Slot Gacor Pragmatic yang sering kasih JP atau sering kasih WD kepada member.

SLOT SHOPEEPAY MICROGAMING
Slot Gacor Microgaming adalah salah satu perusahaan yang produksi jenis permainan Game Slot yang sering memberikan kemenangan kepada member setianya ya dan sering kasih WD atau memberikan JP besar kepada pecinta Game Slot Indonesia. Tak hanya itu SlotGacor Microgaming sudah bekerjasama dengan sibocor.com atau yang biasa disebut salah satu informasi Slot Gacor yang bisa memberikan kemenangan besar atau mudah JP dalam permainan slot.

SLOT SHOPEEPAY PG SOFT
Slot Gacor PG Soft adalah salah satu perusahaan ternama yang memproduksi Game Slot Terlengkap dan Terpercaya serta tingkat kemenangan yang sangat tinggi. Slot Gacor PG Soft juga memberikan kontribusi kepada member yang akan memainkan dan memberikan bonus besar dan memberikan kemenangan yang sangat tinggi kepada seluruh member pecinta game slot online. Pada provider ini PG Soft memberikan kemudahan kepada semua member dari bet paling terendah agar bisa mendapatkan JP Sensational.

SLOT SHOPEEPAY HABANERO
Slot Gacor Habanero adalah salah satu perusahaan provider ternama yang menyediakan konten game slot yang mudah memberikan kemenangan yang sangat besar. Semua member pasti akan diberikan kemenangan yang sangat besar di dalam jenis permainan Game Slot Gacor Habanero. Namun semua Kembali lagi ke hoki masing masing player, namun Game Slot Gacor Habanero ini termasuk 5 besar situs Gacor di Indonesia yang mudah memberikan JP.

SLOT SHOPEEPAY LIVE22
Slot Gacor Live22 adalah jenis permainan game yang bisa menghasilkan uang asli dengan cara mudah.Slot Gacor Live22 juga adalah salah satu perusahaan provider ternama yang membuat game penghasil uang terbaik di masa ini, tak hanya memberikan kemenangan kepada member yang bermain di jenis permainan Game Gacor Live22 namun juga bisa memberiikan kemudahan untuk memberikan tips dan trick slot gacor.

SLOT SHOPEEPAY MGS88
Slot Gacor MGS88 termasuk dalam jenis permainan Judi online penghasil uang dengan mudah, tak hanya bisa menghasilkan namun tingkat kemenangan di dalam jenis permainan MGS88 juga sangatlah tinggi dengan mencapai winrate di angka 99% pasti menang. Slot Gacor 88 atau biasa disebut Slot Gacor MGS88 adalah salah satu perusahaan ternama penyedia jasa dari Bandar Judi Online terkenal , tak hanya casino namun jenis permainan Slot Gacor saat ini dicari oleh semua orang. Slot Gacor MGS88 adalah situs slot gacor sering kasih JP.

SLOT SHOPEEPAY ION SLOT
Slot Gacor Ion Slot adalah jenis permainan yang saat ini sedang viral karena sering kasih WD kepada member yang bermain di dalamnya. Di dalam Slot Gacor ION Slot bisa memberikan kemenangan besar dengan modal yang sangat minim. Sehingga ION SLOT dikenal situs slot gacor modal receh JP besar, dilangsir dari survey semua member pecinta game slot di Indonesia, ION Slot memegang peranan penting untuk memproduksi game game slot yang sangat berkualitas.

SLOT SHOPEEPAY JOKER123
Slot deposit SHOPEEPAY Joker123 adalah sebuah perusahaan ternama selain dari pragmatic play yang berdiri sudah dari tahun 2019. Disini Joker123 memberikan tampilan beda kepada seluruh member yang gemar bermain game judi slot online. Joker123 juga sering memberikan kemenangan yang sangat mudah JP yang diberikan kepada member setianya, bahkan berani memberikan bonus cashback kekalahan mencapai 10% dari setiap jenis permainannya. Slot Gacor Joker123 juga disebut salah satu pelayanan terbaik sehingga semua membernya akan nyaman bila bermain Slot Gacor Joker123.

SLOT SHOPEEPAY ADVANTPLAY
Slot Gacor Advantplay adalah perusahaan produksi game terbaru yang bisa memberikan promo besar-besaran dalam semua jenis permainan dengan bonus Deposit Harian mencapai 80% dengan TO sangat rendah. Slot Gacor Advantplay sendiri berkantor di Indonesia dan Situs Slot Gacor yang sering kasih menang. Dengan deposit uang asli maka member bisa merasakan kemenangan atau WD dengan uang asli.

SLOT SHOPEEPAY SPADEGAMING
Slot Gacor Spade Gaming merupakan salah satu Situs Slot Gacor no 3 dan termasuk 3 situs slot paling gacor. Tak hanya memberikan kemenangan yang sangat mudah kepada playernya disini Slot Gacor Spadegaming juga berkontribusi dengan deposit pulsa tanpa potongan, Slot Gacor Spadegaming adalah salah satu jenis permainan game slot yang sempurna, dikarenakan disini bisa di coba dulu dengan permainan Slot Demo atau yang biasa disebut Demo Slot. Jenis permainan Slot Gacor Spadegaming juga bisa memberikan kemenangan dengan perkalian yang sangat besar bahkan bisa mengalahkan Slot Gacor Gate Of Olympus. Di dalam Slot Gacor Spadegaming bisa ditemuin permainan aladin.

SLOT SHOPEEPAY GAMATRON
Slot Gacor Gamatron merupakan salah satu provider ternama selain dari pragmatic play, Slot Gacor Gamtron sendiri juga memberikan kemudahan untuk para membernya untuk memberikan informasi yang lengkap dengan Cara Daftar Slot Gacor dari jenis permainan Slot Gamatron. Slot Gacor Gamatron berasal dari perusahaan Indonesia yang memproduksi game slot penghasil uang rupiah, tak hanya memberikan kemudahan untuk memperoleh kemenangan mudah JP disini game slot gamatron juga sering memberikan maxwin untuk semua jenis permainan yang disediakannya.

SLOT SHOPEEPAY JDB
Slot Gacor JDB adalah 10 Situs Slot Gacor Terbaik yang ada di Indonesia yang menyajikan jenis permainan Slot Gacor Terlengkap dari semua game yang di sediakan kepada semua member yang ingin bermain slot memakai uang asli. Dengan deposit minimal Rp. 10.000 ( Sepuluh Ribu Rupiah ) member bisa merasakan kemenangan yang sangat mudah dan sensasional sehingga semua member bisa mendapatkan uang tambahan dari game slot gacor ini. Slot Gacaor JDB juga bisa memberikan cashback kekalahan yang sangat besar dan bonus rollingan yang sangat tinggi sampai mencapai 1.5% untuk total dari TO semua member.

SLOT SHOPEEPAY PLAYTECH
Slot Gacor Playtech merupakan jenis permainan slot gacor favorit yang banyak dicari oleh penggemar game slot yang ada di Indonesia. Slot Gacor Playtech adalah perusahaan Game Slot server Kamboja yang memberikan jenis permainan lengkap dengan banyak bonus scatter kepada semua member yang bermain dalam permainan ini. Slot Gacor Playtech sendiri bisa memberikan kemenangan kepada bonus bonus hunter dan melayani proses deposit yang sangat cepat dan tepat. Rata-rata untuk pendingan deposit itu hanya memakan waktu kurang dari 2 menit dalam satu kali deposit. Hanya dengan melakukan satu kali deposit maka akan bisa mencairkan dana rupiah kedalam rekening member.

SLOT SHOPEEPAY CQ9
Slot Gacor CQ9 adalah salah satu situs game slot gacor dengan RTP tertinggi di setiap minggunya, tak hanya RTP Slot tertinggi namun Slot Gacor CQ9 pun selalu memberiikan tampilan dan kemenangan yang besar kepada semua member pecinta game slot gacor ini. Minimal bet di Slot Gacor CQ9 ini dimulai dari Rp.250,- ( Dua Ratus Lima Puluh Rupiah ) dengan menggunakan modal kecil untung besar atau depo kecil wd besar hanya bisa di dapatkan di game slot gacor CQ9.

SLOT SHOPEEPAY YGGDRASIL
Adalah salah satu situs ternama nomor 9 dalam kategori pencharian di google.com yaitu Game Slot Gacor YGGDRASIL. Disini kalian bisa merasakan JP sensational dengan mudah dengan hanya bermodalkan depo 50k atau deposit 50.000 deposit lima puluh ribu saja.
Cara Daftar Situs Slot Shopeepay Online 24 Jam
Segera daftar menjadi menjadi member Resmi Situs Slot Shopeepay Online 24 Jam. Dengan beberapa langkah saja, Anda akan langsung menjadi member. Berikut adalah cara daftar Slot Shopeepay Online 24 Jam dengan cepat dan mudah di situs slot Shopeepay terpercaya:

Klik Halaman Daftar
Isi Username
Isi Password
Konfirmasi Password
Isi Alamat Email yang aktif
Isi Nomor Handphone yang Aktif
Pilih Jenis Bank atau E- Wallet lalu isi nomor rekening
Isi Nama Akun di sesuai dengan nama Rekening yang Benar
Kode Referral (Bila ada)
Lalu Klik Submit
Bagaimana Cara Deposit Slot shopeepay 10k Tanpa Potongan?
Sudah daftar akun maka saatnya anda melakukan pengiriman uang ke akun agar akun tersebut dapat dimainkan dan memilih salah satu permainan slot online yang tersedia disini. Lalu bagaimana cara deposit slot shopeepay 5000 10rb tanpa potongan menggunakan aplikasi shopeepay? Masih belum paham? Dibawah ini kami akan memberikan panduan cara slot deposit shopeepay yang baik dan benar hanya untuk anda semua, berikut tata caranya:
Deposit Slot Shopeepay via “Transfer ke Kontak”
Pilih ShopeePay di halaman utama aplikasi Shopee
Pilih Transfer
Pilih Transfer ke Kontak
Masukkan no. handphone, cari nama kontak atau username Shopee
Masukkan nominal yang ingin ditransfer
Pilih Lanjutkan
Pilih Transfer Sekarang
Masukkan PIN ShopeePay
Deposit Slot Shopeepay via “Scan untuk Transfer”
Pilih ShopeePay di halaman utama aplikasi Shopee
Pilih Transfer
Pilih Scan untuk Transfer
Scan kode QR
Masukkan nominal yang ingin transfer
Pilih Lanjutkan
Pilih Transfer Sekarang
Masukkan PIN ShopeePay
Gampang banget kan? Nah inilah sedikit tutorial cara deposit via slot shopeepay yang sudah kita berikan kepada kalian. Ingat, selalu cek banklist terlebih dahulu atau bisa konfirmasi ke CS mengenai nomor tujuan sebelum deposit, supaya meminimalisir kesalahan didalam mentransfer. Kita bukan mengiakan apabila kamu segera mengirim uang tanpa melihat dulu nomor tujuan, segala kesalahan merupakan tangguang jawab member tersebut sendiri.

Reported


text:
chore: update BaseOpenAI for GPT-4 compatability

Updated modelname_to_contextsize method  to include the max tokens for gpt-4, gpt-4-32k, and gpt-3.5-turbo. (Docs)
Updated the get_num_tokens method to use the current model name not just gpt-3.5-turbo.

Hey @hwchase17,
Would I be able to ask for help with the approval to run the CI? These are just a couple of little changes that will allow folks to use the new GPT-4 models.
Thanks for all you do with this project!

@hwchase17 Ah I totally missed that, I will move it over. Thanks!


text:
Exclude nonmonophyletic individuals from further analysis

If you have two dogs in a branch with five cats, the cats are the predominant species of that branch; thus, when we identify a dog as being nonmonophyletic, we should exclude that dog from future comparisons.

I believe that this is what the global_nm array is supposed to do.

Example test file is trio171sequence

Is this complete? Did the biologists verify it? @mollysrour

The first pass on this was pushed in #103, but the test file you mention, trio171sequence, does not work due to some ent problems.  @hawkrives said he'd take a look at it tomorrow, but provided that the input is formatted like what we have in emydura.gb or any of the other emydura examples, we should have this mostly if not completely done, and it should work.

(To be more concise: the mbnb pipeline, which will get deployed soonish, does have that pruning magic built out.)

I think we have this solved, but I'd like to keep it open until we can verify on the trio171 dataset.

We're done with this right @hawkrives ? Can we close?

This is now fully solved, I believe.

authors: OmarShehata hawkrives rye

repo: hybsearch/hybsearch


text:
Fixed broken favicon and apple-touch-icon links.

Moved favicon.ico and apple-touch-icon.png to the content/media/images directory and edited layout/base.j2 to reflect these changes.

Thanks @bheesham.

Glad to help! :-D

authors: bheesham lakshmivyas

repo: hyde/hyde


text:
Filter by private shows 4 but finds no resources

In alpha pre-release deploy when not logged in, I can Select Discover, then expand Filter by availability, then it shows 4 next to private.  This is incorrect as since not logged in there should be no private resources accessible.  If I select the private box 4 resources are shown.  Clicking on each of them shows that they are actually "Discoverable"

@dtarb Should I just remove private option from there?
@alvacouch Which is the correct way to index "discoverable" property?
    def prepare_discoverable(self, obj):
        if(obj.raccess.public | obj.raccess.discoverable):
            return True
        else:
            return False

or

    def prepare_discoverable(self, obj):
        return obj.can_be_public_or_discoverable;

I don't think the 2nd option should be used
Sent from Outlook Mobile
On Wed, Apr 20, 2016 at 5:06 PM -0700, "Zhaokun Xue" notifications@github.com wrote:
@dtarb Should I just remove private option from there?
@alvacouch Which is the correct way to index "discoverable" property?
    def prepare_discoverable(self, obj):
        if(obj.raccess.public | obj.raccess.discoverable):
            return True
        else:
            return False

or

    def prepare_discoverable(self, obj):
        return obj.can_be_public_or_discoverable;

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/hydroshare/hydroshare/issues/1135#issuecomment-212659562

@pkdash Thanks! @dtarb Those four private resources are discoverable. Should I just show all public resources instead of all discoverable resources?

There is a discoverable category and those 4 resources should be part of that group.  They should not appear with the private group.
Private resources should only show if a user is logged in and if the user is owner or has been granted view or edit permissions.  If this is not feasible, I am OK with private resources not showing, as they appear on MyResources.
I am not sure what you are asking about showing all public resources instead of all discoverable resources.  It depends on which check boxes are checked.  If the public check box is checked, show public, if discoverable checked show discoverable, if both checked, show both.

@dtarb I am going to hide private option in availability.

I vote for simplifying if we can. The discovery page is for users to find out about what others are doing. If they want to see their own resources (and in particular their own private, non-discoverable resources), that's what the My Resources page is for.
I don't think private, non-discoverable resources should show up at all in searches on the discovery page (regardless of whether you are logged in or not).
I also don't think that "Discoverable" should even be a filter.  Anything that shows up in a search result is by definition discoverable.  Nothing that isn't discoverable should ever show up in the discovery page - whether you are logged in or not.

Fixed in 1.6.10 Candidate release.

authors: dtarb horsburgh pkdash xuezhaokun

repo: hydroshare/hydroshare


text:
REST API for creating a resouce needs capability to pass all valid metadata appropriate for a specific resource type

Currently a resource can be created using the REST API that allows only passing data for the following three metadata terms:
Title
Abstract
Keywords
This endpoint needs to be changed so that data for all valid metadata terms including the resource specific metadata terms can be passed when calling this endpoint.
Related issue: #1309

@pkdash Can this issue be closed now?

Closing as this functionality has been implemented.

authors: hyi pkdash


text:
[RC-1.21] Unable to search by Author or Subject in My Resources page

@sblack-usu, @pkdash
I was able to narrow down this error to a problem with a context variable not reaching the frontend:
https://github.com/hydroshare/hydroshare/blob/develop/hs_core/templates/pages/my-resources.html#L269
However, this only happens in our current deployment on beta. I tried to reproduce this error locally with no success. We might need to investigate directly in the VM in order to find out what's going on.
Testing locally:

Testing beta deployment:

Since this data doesn't make it to the template in beta, the DataTables' scripts can't use the information to filter correctly. The same happens with the Subjects column.

@pkdash, I was able to reproduce this issue locally today. Could you pull the most recent changes and try again? We might be able to debug and find the problem now.

@Maurier I am using the RC-1.21 now locally. Not able to reproduce this issue locally.

This is still a problem on the new 1.21 beta RC just deployed.  If I create a resource with a unique keyword "kw123" on www in MyResources if I search on the MyResources search bar for kw123, I find the resource, but on beta I do not.
Also, if I add another author and on www search on that auther in the search bar, I find the resource, but do not on beta.

@dtarb and @Maurier I have now created a PR #3282 as a hotfix for this issue.

the pr has been merged into the RC and deployed to beta., @Maurier @dtarb @pkdash, We are planning to release 1.21 on Tuesday

Filtering on authors and keywords seem to work now on beta.

Seems the page loading did not suffer much due to not prefetching the metadata.

@Maurier I think this can be closed.

authors: Maurier dtarb martinseul pkdash


text:
[#5432] - export discoverable resource ids to mongo for changestream …

This is a lighter version of tracking the current set of discoverable resources with MongoDB. Instead of gathering all the metadata, we just export the resource id and any downstream listeners can use the resource id to retrieve and transform the metadata.
As an alternative, we could just use a webhook. That wouldn't require the mongo dependency.

closing. superseded by https://github.com/hydroshare/hydroshare/pull/5467

authors: devincowan sblack-usu


text:
Hygieia-jira collector not showing data on feature widgets

Hi @mvineza,
I am facing on issue in jira collector
Database Name
dbname=dashboarddb
Database HostName - default is localhost
dbhost=localhost
Database Port - default is 27017
dbport=28017
MongoDB replicaset
dbreplicaset=[false if you are not using MongoDB replicaset]
dbhostport=[host1:port1,host2:port2,host3:port3]
Database Username - default is blank
dbusername=dashboarduser
Database Password - default is blank
dbpassword=dbpassword
Logging File location
logging.file=./logs/jira.log
PageSize - Expand contract this value depending on Jira implementation's
default server timeout setting (You will likely receive a SocketTimeoutException)
feature.pageSize=100
Delta change date that modulates the collector item task
Occasionally, these values should be modified if database size is a concern
feature.deltaStartDate=2019-03-01T00:00:00.000000
feature.masterStartDate=2019-03-01T00:00:00.000000
feature.deltaCollectorItemStartDate=2019-03-01T00:00:00.000000
Chron schedule: S M D M Y [Day of the Week]
feature.cron=0 * * * * *
ST Query File Details - Required, but DO NOT MODIFY
feature.queryFolder=jiraapi-queries
feature.storyQuery=story
feature.epicQuery=epic
JIRA CONNECTION DETAILS:
Enterprise Proxy - ONLY INCLUDE IF YOU HAVE A PROXY
feature.jiraProxyUrl=http://proxy.com
feature.jiraProxyPort=9000
feature.jiraBaseUrl=http://x.x.x.x:xxxx
feature.jiraQueryEndpoint=rest/api/2/
For basic authentication, requires username:password as string in base64
This command will make this for you: echo -n username:password | base64
feature.jiraCredentials=aGtib3NzOmthbG1ldWRlZ2E=
OAuth is not fully implemented; please blank-out the OAuth values:
feature.jiraOauthAuthtoken=
feature.jiraOauthRefreshtoken=
feature.jiraOauthRedirecturi=
feature.jiraOauthExpiretime=
#############################################################################
In Jira, general IssueType IDs are associated to various 'issue'
attributes. However, there is one attribute which this collector's
queries rely on that change between different instantiations of Jira.
Please provide a string name reference to your instance's IssueType for
the lowest level of Issues (for example, 'user story') specific to your Jira
instance. Note: You can retrieve your instance's IssueType Name
listings via the following URI: https://[your-jira-domain-name]/rest/api/2/issuetype/
Multiple comma-separated values can be specified.
#############################################################################
feature.jiraIssueTypeNames=Story
#############################################################################
In Jira, your instance will have its own custom field created for 'sprint' or 'timebox' details,
which includes a list of information. This field allows you to specify that data field for your
instance of Jira. Note: You can retrieve your instance's sprint data field name
via the following URI, and look for a package name com.atlassian.greenhopper.service.sprint.Sprint;
your custom field name describes the values in this field:
https://[your-jira-domain-name]/rest/api/2/issue/[some-issue-name]
#############################################################################
feature.jiraSprintDataFieldName=customfield_10101
#############################################################################
In Jira, your instance will have its own custom field created for 'super story' or 'epic' back-end ID,
which includes a list of information. This field allows you to specify that data field for your instance
of Jira. Note: You can retrieve your instance's epic ID field name via the following URI where your
queried user story issue has a super issue (for example, epic) tied to it; your custom field name describes the
epic value you expect to see, and is the only field that does this for a given issue:
https://[your-jira-domain-name]/rest/api/2/issue/[some-issue-name]
#############################################################################
feature.jiraEpicIdFieldName=customfield_10102
#############################################################################
In Jira, your instance will have its own custom field created for 'story points'
This field allows you to specify that data field for your instance
of Jira. Note: You can retrieve your instance's storypoints ID field name via the following URI where your
queried user story issue has story points set on it; your custom field name describes the
story points value you expect to see:
https://[your-jira-domain-name]/rest/api/2/issue/[some-issue-name]
#############################################################################
feature.jiraStoryPointsFieldName=customfield_10106
#############################################################################
In Jira, your instance will have its own custom field created for 'team'
This field allows you to specify that data field for your instance
of Jira. Note: You can retrieve your instance's team ID field name via the following URI where your
queried user story issue has team set on it; your custom field name describes the
team value you expect to see:
https://[your-jira-domain-name]/rest/api/2/issue/[some-issue-name]
#############################################################################
feature.jiraTeamFieldName=customfield_10300
Defines how to update features per board. If true then only update based on enabled collectorItems otherwise full update
feature.collectorItemOnlyUpdate=true
#Defines the maximum number of features allow per board. If limit is reach collection will not happen for given board
feature.maxNumberOfFeaturesPerBoard=1000
Set this to true if you use boards as team
feature.jiraBoardAsTeam=true
#Defines the number of hours between each board/team and project data refresh
#feature.refreshTeamAndProjectHours=
this is my property file
i am able to run collector successfully without error on logs.
i am able to fetch board and rest thing in widgets but not able to get count on the widgets

i am not able to get the counts in the widgets

@shubhamk0305 May I see some parts of the logs? You can change any confidential strings such as your jira instance name for privacy.
Basically I want to see something like this:
2020-02-19 17:59:28,372 [taskScheduler-1] INFO  c.c.d.collector.CollectorTask - Story Data Collected since 1970-01-01T09:00 0     1338s
2020-02-19 17:59:28,374 [taskScheduler-1] INFO  c.c.d.collector.FeatureCollectorTask - Collecting 1095 of 7190 boards.

Hi @mvineza,
2020-03-04 18:12:00,115 INFO  c.c.d.collector.CollectorTask - Story Data Collected since 2020-03-04T18:11:00.029 0        0s
2020-03-04 18:12:00,122 INFO  c.c.d.collector.FeatureCollectorTask - Collecting 2 of 4 boards.
2020-03-04 18:12:00,179 INFO  c.c.d.collector.CollectorTask - Story Data Collected since 2020-03-04T18:11:00.085 0        0s
2020-03-04 18:12:00,185 INFO  c.c.d.collector.FeatureCollectorTask - Collecting 3 of 4 boards.
2020-03-04 18:12:00,240 INFO  c.c.d.collector.CollectorTask - Story Data Collected since 2020-03-04T18:11:00.132 0        0s
2020-03-04 18:12:00,245 INFO  c.c.d.collector.FeatureCollectorTask - Collecting 4 of 4 boards.
2020-03-04 18:12:00,304 INFO  c.c.d.collector.CollectorTask - Story Data Collected since 2020-03-04T18:11:00.178 0        0s
2020-03-04 18:12:00,310 INFO  c.c.d.collector.CollectorTask - Finished                         0s
2020-03-04 18:13:00,001 INFO  c.c.d.collector.CollectorTask - Running Collector: Jira
2020-03-04 18:13:00,013 INFO  c.c.d.collector.CollectorTask - -----------------------------------
2020-03-04 18:13:00,013 INFO  c.c.d.collector.CollectorTask - http://172.32.31.207:9090
2020-03-04 18:13:00,013 INFO  c.c.d.collector.CollectorTask - -----------------------------------
2020-03-04 18:13:00,013 INFO  c.c.d.collector.FeatureCollectorTask - JIRA Collector is set to work in Board mode
2020-03-04 18:13:00,013 INFO  c.c.d.collector.FeatureCollectorTask - Hours since last run = 1. Collector is only collecting updated/new issues.
2020-03-04 18:13:00,027 INFO  c.c.d.collector.FeatureCollectorTask - Collecting 1 of 4 boards.
2020-03-04 18:13:00,074 INFO  c.c.d.collector.CollectorTask - Story Data Collected since 2020-03-04T18:12:00.050 0        0s
2020-03-04 18:13:00,081 INFO  c.c.d.collector.FeatureCollectorTask - Collecting 2 of 4 boards.
2020-03-04 18:13:00,120 INFO  c.c.d.collector.CollectorTask - Story Data Collected since 2020-03-04T18:12:00.122 0        0s
2020-03-04 18:13:00,127 INFO  c.c.d.collector.FeatureCollectorTask - Collecting 3 of 4 boards.
2020-03-04 18:13:00,165 INFO  c.c.d.collector.CollectorTask - Story Data Collected since 2020-03-04T18:12:00.185 0        0s
2020-03-04 18:13:00,171 INFO  c.c.d.collector.FeatureCollectorTask - Collecting 4 of 4 boards.
2020-03-04 18:13:00,210 INFO  c.c.d.collector.CollectorTask - Story Data Collected since 2020-03-04T18:12:00.245 0        0s
2020-03-04 18:13:00,217 INFO  c.c.d.collector.CollectorTask - Finished                         0s

@shubhamk0305 Here are some things to check:

Make sure the customfield_* values are correct
Try adding other Jira issue types. Example in my case I use feature.jiraIssueTypeNames=Story,Task

After you do any changes, restart the collector.

still same issue @mvineza

@shubhamk0305 did the Project Name and Team Name dropdown while configuring Feature Widget show any suggestions? For me it is not showing any suggestions

repo: hygieia/hygieia-feature-jira-collector


text:
Consider adding a code of conduct.

A code of conduct is a set of rules outlining the social norms for an organization.
Comments?
See also:

https://github.com/reactjs/react-redux/blob/master/CODE_OF_CONDUCT.md
https://github.com/blog/2039-adopting-the-open-code-of-conduct

Never seen value for such thing. The only thing that you need to do is absolutely always to answer with kindness as most as possible - everyone win and no burnouts.
@sindresorhus (just a mention, which won't ping him - don't surprise if no response from him :)):
What irritates you most of all in open source?

tl;dr Nothing really.
I used to get annoyed a lot by various things in open source; trolls, low-quality issues and pull requests, rude users, etc. But you won’t last long in open source if you let that stuff affect you. Communication on the internet is hard. You have different personalities, cultures, language proficiencies and coding competencies, all trying to communicate together with text. Lots of opportunities for miscommunication and assumptions. See Hanlon’s razor. I’ve found the best way to handle this is with absolute kindness, no matter what. Trolls will hate it, as they’re only seeking a reaction. Rude people will respect it. Nice people will appreciate it. And I feel better. Win win.

How do you avoid burnout?

I don’t. I embrace it. Burnout is unavoidable when you’re active in open source. Knowing how to handle it is key. Once in a while, I get burned out by all the issues, negativity, demanding user, drama, workload, etc, and I take a couple of weeks break from GitHub. Being away for a little while helps me process it all and refill my batteries.

ref: https://blog.sindresorhus.com/answering-anything-678ce5623798#.aij0hv6xn

@jbucaran I tend to follow as much as relevantly possible: https://www.rust-lang.org/en-US/conduct.html

The Ember.js Code of Conduct borrows heavily from:

Mozilla Code of Conduct
Ubuntu Code of Conduct
Twitter Code of Conduct

No one is causing trouble (anymore) so I'll go ahead and close this. We can always come back to it later.

authors: jbucaran selfup tunnckoCore tzellman

repo: hyperapp/hyperapp


text:
stable grid independent from screen size

gridster tries to be smart about the screen size and rearranges widgets if they don't fit. That's undesired behavior and should be prevented.

bd3a32379a305f4e549bf0f6268d7b5157312580 should to the trick. It's more of a workaround than a proper solution, but gridster doesn't seem to offer a more straightforward solution to disable smart widget positioning.

repo: hyperborea/heimdall


text:
Daemon not detected when directly started from hyperspace

When I start hypercore with hyperspace --storage $STORAGE --host $HOST --port $PORT, then run:
❯ ps -aux | rg hyp
jrestivo 1067902  0.1  0.0 635796 54572 ?        SLsl 11:08   0:00 /nix/store/5kkjf5wvfvclqj76k9f69c95gw5mfbhc-nodejs-14.17.4/bin/node /nix/store/if04chi2qyhxr5mvifmq9wfhswydj3ms-hyperspace/bin/hyperspace --storage ~/.hyperspace --host hyperspace --port 0
jrestivo 1069029  0.0  0.0   9644  6232 pts/11   S+   11:11   0:00 rg hyp
flakes [$!+?]
❯ hyp info
The daemon is not active. Please run:

  hyp daemon start
❯ hyp daemon status
Hyperspace v3.19.0
Hyperspace API v1.15.1
Your address:  (Not Hole-punchable)

This is preventing me from using any of the hyp commands. Any advice? Both hyp info and hyp daemon start connect to the daemon, as it prints out:
Remote client opened
Remote client closed

If you're using a --host other than the default, you'll need to pass that param to hyp daemon status too

I've added --host to both invocations. Same output:
❯ hyp --host hyperspace info
The daemon is not active. Please run:

  hyp daemon start
❯ hyp --host hyperspace daemon status
Hyperspace v3.19.0
Hyperspace API v1.15.1
Your address:  (Not Hole-punchable)

Ah, it looks like the hyp CLI isn't respecting this config: https://github.com/hypercore-protocol/cli/blob/master/lib/hyper/index.js#L16 and https://github.com/hypercore-protocol/cli/blob/master/lib/commands/daemon/status.js#L20 (and a few other spots)
We should either add a CLI flag or an env var. Any thoughts on which?
cc @andrewosh @mafintosh

What would the CLI flag/env var be specifying? From a usability standpoint, either sounds fine on my end as a user.

authors: DieracDelta pfrazee

repo: hypercore-protocol/cli


text:
feat: sentry ui improvements

Description
This PR:

adds a table view in addition to the normal breadcrumbs view to enrich experience for visualizing the breadcrumbs
implement logics to add additional tags from the log data object regarding browser information
adds sentry integration section to the teams page and exposes an additional environment variable for ingestor url in the docker-compose file
fixes minor typos

Could you also share the screenshot of the UI changes ?

repo: hyperdxio/hyperdx


text:
[QUESTION]

Before you submit this issue, you has been search all existed issues and search the documentation

[] I've been search all existed issues
[] I've been read all documentation

Describe your question
php bin/hyperf.php gen:model share_setting     生成的是 Sharesetting.php   没有得到期望的 ShareSetting.php
二期ShareSetting.php   打开之后  发现     protected $table = 'sharesetting';  如何排查 到底因为什么原因导致该问题？
数据库如下：

执行命令如下：

得到model下的PHP文件如下：

.env 配置发发一下看看

最后无法复现，重新拉取代码线，执行命令 OK了

repo: hyperf/hyperf


text:
有没有分库分表的支持呢

有没有分库分表的支持呢

自己实现
https://stackoverflow.com/questions/26757452/laravel-eloquent-accessing-properties-and-dynamic-table-names

这是来自QQ邮箱的假期自动回复邮件！
    您好，我最近正在休假中，无法亲自回复您的邮件。我将在假期结束后，第一时间给您回复。

@limingxinleo 李总，考虑增加一个分表分库组件吗？

authors: diankemao jasonccs runoob-coder


text:
vendor runv for libhyperstart

Signed-off-by: Lai Jiangshan jiangshanlai@gmail.com

@laijs need rebase here.

I am moving Godeps/ to vendor/ in #502 , please update this after it got merged

updated.....

authors: gnawux laijs

repo: hyperhq/hyperd


text:
http request timeout doesn't work

I just set the read/write timeout to 1 second, but it takes more than 2 minutes to return the timeout error. How should I configure the timeout value for a http request?
use hyper::client::Client;
let mut result = String::new();
let mut client = Client::new();

client.set_read_timeout(Some(Duration::from_millis(1000)));
client.set_write_timeout(Some(Duration::from_millis(1000)));
match client.get("http://IP_NOT_EXISTS/test.html").send() {
    Ok(mut res) => {
        res.read_to_string(&mut result);
    }
    Err(e) => {
        println!("HTTP_GET_ERROR : {} : {:#?}", url, e);
    }
}

For all versions of hyper 0.10.x and before, this is true. Using std::net::TcpStream::connect(domain) makes use of blocking getaddrinfo, which does not have a timeout and cannot be interrupted. DNS on master does make use of a timeout, and can't really be fixed another way.
There's more in a previous duplicate issue, #721.

authors: karlvlam seanmonstar

repo: hyperium/hyper


text:
New header for outdated doc repo

Note that archive doc repo should no longer be used
Description
We've come across an interesting problem. Someone created a RTD site for the now defunct https://github.com/openblockchain/peer project (which is no longer a thing) but that org now redirects to github.com/hyperledger-archives/fabric and so the RTD build picks up the old archive of fabric and publishes what looks like the Fabric docs (sigh) complete will all kinds of bad, misleading and dated information.
While we can try to remove the redirect, the fact is that the RTD site will still stand and confuse people https://openblockchain.readthedocs.io/en/latest/
What I would like to do is make a pull request against the hyperledger-archives/fabric repo to update the "home page" of the docs https://github.com/hyperledger-archives/fabric/blob/master/docs/index.md to say that these docs are DEFUNCT, built from an (OLD) archive of the Hyperledger Fabric repository and to redirect to the current stable release http://hyperledger-fabric.readthedocs.io/en/stable/index.html
Motivation and Context
Misleading cusotmers
Fixes #
How Has This Been Tested?
Simple doc change
Checklist:

[] I have added a Signed-off-by.
[x] I have either added documentation to cover my changes or this change requires no new documentation.
[] I have either added unit tests to cover my changes or this change requires no new tests.
[] I have run golint and have fixed valid warnings in code I have added or modified. This tool generates false positives so you may choose to ignore some warnings. The goal is clean, consistent, and readable code.

Signed-off-by:

LGTM

LGTM

LGTM

authors: JonathanLevi christo4ferris hacera ibmmark

repo: hyperledger-archives/fabric


text:
Translate Key Concepts » Membership into simplified Chinese

Translate Key Concepts » Membership into simplified Chinese

@JulienGuo , this issue can be set as resolved once new updates merged from 1.3 to master branch.

repo: hyperledger-labs/fabric-docs-cn


text:
feat: auto accept proofs

This adds automatically accepting of proof requests. This functions the same as #336 to stay as consistent as possible, yet they work completely seperate to eachother.
It allows for an agent- and recordwide configuration where the record configuration has priority.
Three states are allowed to be set:

always: accept any proof request/proposal no matter what the content might be.
contentApproved: accept any proof request/proposal as long as none of the content changes and it has to be accepted manually at least once.
never (DEFAULT) Does not automate anything and will just behave the same as before these changes.

Note: I am not sure whether we want to mention this as a feature in the README, so if there is any problem with this I will remove it.

Codecov Report

Merging #367 (bc5aa3e) into main (ee81d01) will increase coverage by 0.16%.
The diff coverage is 90.52%.

@@            Coverage Diff             @@
##             main     #367      +/-   ##
==========================================
+ Coverage   88.21%   88.38%   +0.16%
==========================================
  Files         220      221       +1
  Lines        4039     4123      +84
  Branches      475      495      +20
==========================================
+ Hits         3563     3644      +81
- Misses        476      479       +3

Impacted Files
Coverage Δ

...ules/proofs/handlers/ProposePresentationHandler.ts
82.60% <77.77%> (-17.40%)
:arrow_down:

...ules/proofs/handlers/RequestPresentationHandler.ts
88.00% <85.00%> (-12.00%)
:arrow_down:

src/modules/proofs/handlers/PresentationHandler.ts
89.47% <85.71%> (-10.53%)
:arrow_down:

src/agent/AgentConfig.ts
100.00% <100.00%> (ø)

src/modules/proofs/ProofResponseCoordinator.ts
100.00% <100.00%> (ø)

src/modules/proofs/ProofsModule.ts
88.88% <100.00%> (+0.57%)
:arrow_up:

src/modules/proofs/repository/ProofRecord.ts
92.30% <100.00%> (+2.83%)
:arrow_up:

src/types.ts
100.00% <100.00%> (ø)

src/storage/IndyStorageService.ts
87.50% <0.00%> (+2.50%)
:arrow_up:

... and 3 more

Continue to review full report at Codecov.

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

Tests on Github are failing while local tests work. Will resolve this asap.

If I recall correctly, we're waiting for additional followup to move the relevant validation changes into the service regardless of the automation configuration? Or am I remembering incorrectly here?

My understanding was first to merge this. And in a seprate PR abstract the functionality, add documentation stating the types of autoAccept.  I think for now this will suffice, but I would not mind to change that stuff and merge it later.

Merging. Additional improvements can be made in follow-up PRs

authors: TimoGlastra blu3beri codecov-commenter

repo: hyperledger/aries-framework-javascript


text:
Update Iroha to v1.0 beta-3

This PR introduces the new release of Iroha v1.0 beta-3
I actualized used containers in docker-compose.yml, simple benchmark code (we slightly changed our API) and node configs.
PLEASE PAY ATTENTION:
I removed grpc@1.10.1 from the main package.json because:

It sufficiently increases dependencies installing time by npm install. grpc of this version compiles from sources, despite I have a very widespread system (Ubuntu 18.04, x86_64).
This grpc package conflicts with the version from iroha-lib package.

So I removed both dependencies and specify in README.md additional dependency iroha-lib@0.1.7 in Iroha's section and grpc@1.10.1 in Fabric's section. It's not the best solution, but I couldn't think of a better one
Also
We are planning to use Caliper in our CI to benchmark new versions of Iroha from this version. :+1:

@haojun Please, check this PR if you can. Sorry, I know I have to create an issue first, but my team already want to use this.

repo: hyperledger/caliper


text:
Back port 2023 - skip empty ledge and 2635 - RetrieveBlockByNumber

Type of change

Bug fix
Improvement (improvement to code, performance, etc)

Description
Back porting these 2 fixes:

FAB-18276 Ch.Part.API: extractSystemChannel must skip empty ledger (#2023)
Added RetrieveBlockByNumber into blockledger (#2635)

@manish-sethi created a different PR to backport

2023 - skip empty ledgee and
2635 - RetrieveBlockByNumber

I will close other PR #2594

repo: hyperledger/fabric


text:
Remove Idemixgen from Fabric produced binaries

Type of change

Documentation update

Description
Removed Idemixgen from the documentation to reflect its removal from the set of Fabric produced binaries.

Additional details

Related issues

Thank you for the update.
There is also a link to this document in a table of contents that needs to be removed at the same time - https://raw.githubusercontent.com/hyperledger/fabric/main/docs/source/ops_guide.rst
Also https://github.com/hyperledger/fabric/blob/main/docs/source/idemix.rst mentions that Fabric provides this tool. I think we'd want to update that wording from "Fabric provides two possible Idemix issuers" to "There are two possible Idemix issuers". And make "idemix tool" a hyperlink over to https://github.com/IBM/idemix.
Finally, I think we'd want this doc content to appear at https://github.com/IBM/idemix where the tool now resides, before removing it from Fabric docs, do you want to submit the PR to https://github.com/IBM/idemix as well to complete the move?

Thank you for the update.
There is also a link to this document in a table of contents that needs to be removed at the same time - https://raw.githubusercontent.com/hyperledger/fabric/main/docs/source/ops_guide.rst
Also https://github.com/hyperledger/fabric/blob/main/docs/source/idemix.rst mentions that Fabric provides this tool. I think we'd want to update that wording from "Fabric provides two possible Idemix issuers" to "There are two possible Idemix issuers". And make "idemix tool" a hyperlink over to https://github.com/IBM/idemix.
Finally, I think we'd want this doc content to appear at https://github.com/IBM/idemix where the tool now resides, before removing it from Fabric docs, do you want to submit the PR to https://github.com/IBM/idemix as well to complete the move?

Thank you for your feedback and guidance!

Sorry, there is now a conflict in the doc, I think in the ops_guide table of contents. Could you resolve the conflict by rebasing locally and then re-push?
Also, it would be nice to squash the 3 commits into a single commit, see guidance at https://hyperledger-fabric.readthedocs.io/en/latest/github/github.html#updating-a-pull-request.

authors: Sayalikukkar denyeart


text:
Token pool page showing transfers for tokens in other pools

Tokens -> Token pools -> click into a token pool. This page shows a list of token transfers but is showing tokens that are not in the current token pool. See screenshots below where a token pool created at 4:50pm has tokens listed that were created earlier.

This page is attempting to filter transfers by "poolprotocolid":
https://github.com/hyperledger/firefly-ui/blob/8cb358c5d1a000cbb7bc3c87a7039f4234ea347b/src/modules/tokens/views/TokenPools/TokenPoolDetails.tsx#L117
This filter was replaced with a "pool" filter instead, which uses the pool ID (not the protocol ID):
https://github.com/hyperledger/firefly/commit/72549d0053e3d52b629ccac48181888a7f337afd

New UI resolves this issue

authors: awrichar eberger727 mkashgarian

repo: hyperledger/firefly-ui


text:
Ergonomic MST

Ideas on how can we make MST more ergonomic:

All smart contracts for MST should be registered from Executor, i.e. be put in default executor migration
I think we need an API to fetch all currently voted for transactions, i.e. pending transactions
we need a way to expire MST that have not been active for a while
We can define custom instructions for dealing with MST and also have them defined as part of default executor

Additionally, we should consider adding (behind a feature flag "mst") a specialized API to both iroha client and cli for dealing with MSTs.

actually, instead of doing it during executor migration as was suggested in 1. they should be registered in the genesis

Remaining issues after #5027:

custom instructions to encapsulate multisig operations
migrate shell script tests to pytests
regulate multisig account registrations?
make the default multisig ttl indefinite?

* [make the default multisig ttl indefinite?](https://github.com/hyperledger/iroha/pull/5027#discussion_r1742874965)

no, there should always be some default non-infinite value

My comment regarding the client interface: https://github.com/hyperledger/iroha/pull/5027#discussion_r1809720511

I don't immediately like the idea of having this being included directly into the client. Though, it depends on how much we need to make multisig an official out-of-the-box feature.
As an alternative idea, there could a separate CLI to construct multisig-related instructions in a form of JSON, which then could be supplied to the client:
iroha_multisig register --account .. --weights .. --quorum .. | iroha json transaction

Partially resolves #4930

Accidentally automatically closed. Reopened

[ ] well-structured multisig list CLI command stdout
[ ] override account-level TTL with transaction-level one

Closed as completed by:

#5027
#5217
#5240

Once settled the multisig issue of where to bridge the gap between the internal representation and the ergonomic interface. API may change depending on future requirements

repo: hyperledger/iroha


text:
docs: update the contributing guide

Description

Updated the contributing guide with reference to issues #4502, #4501, #4433.

Linked issue

Closes #4585

Benefits

Checklist

[X] I've read CONTRIBUTING.md
[X] I've used the standard signed-off commit format (or will squash just before merging)
[ ] All applicable CI checks pass (or I promised to make them pass later)
[ ] (optional) I've written unit tests for the code changes
[ ] I replied to all comments after code review, marking all implemented changes with thumbs up

Thanks, @nxsaken!


text:
SimpleStreamSender should compute prepare packet expiresAt just before sending

Currently SimpleStreamSender is submitting prepare packets to its ExecutorService to be sent but computing the expiresAt before submitting. In situations where the executorService is overwhelmed with packets to send, calling executorService.submit() can cause a packet to be queued up and not immediately sent. If the packet is queued for more than 30s (which I have seen happen under load), then prepare packet expiresAt is already expired. A better approach would be to construct the prepare packet just before sending occurs (i.e. after the packet has been queued and is now being executed).

@nhartner Can we close this issue?

authors: nhartner sappenin

repo: hyperledger/quilt


text:
Uncommit docs

Sawtooth docs content has been moved into the sawtooth-docs repo at
https://github.com/hyperledger/sawtooth-docs
Signed-off-by: Ryan Beck-Buysse rbuysse@bitwise.io

This pull request should not be merged until the refresh branch of
https://github.com/hyperledger/sawtooth-docs has been merged into master.

repo: hyperledger/sawtooth-sabre


text:
Add HTML error pages which capture all errors

This also includes some specialised details for certain errors
This page attempts to explain to the user where the error happened

This doesn't try and help with the NGINX errors yet.
What it looks like

A comparison from LMS (not quite the same, but kind-of similar):

Testing notes
There are a number of details in the error view page which displays all the messages associated with particular errors. These are matched by:

Looking for the exact class
Any thing that we are a sub-class if the exact can't be found
UnhandledException for anything else

There's no need to trigger all of the errors to see the messages. However to trigger each:

BadURL - http://0.0.0.0:9083/route?url=bad
UpstreamServiceError - http://0.0.0.0:9083/route?url=http%3A%2F%2Fvalid-url-but-not-a-website.com
HTTPNotFound - http://0.0.0.0:9083/not-a-route
HTTPClientError - http://0.0.0.0:9083/route
UnhandledException - This is a bit tricker as we handle everything we know about. Easiest way is to raise a random exception in a view

I think the "voice" (or the content tone or whatever) of this part with the "Oops" etc is quite different from what we normally use at Hypothesis. But I don't think we have a writing style guide so :man_shrugging: And it can be easily changed in future.

Oops, that URL doesn't look right
Hypothesis is a service that gets a web page and lets you annotate it.
This URL doesn't look right, so we couldn't try to get the web page.

I would like to suggest a couple of small changes though:

I don't think it's necessary to say Hypothesis is a service that gets a web page and lets you annotate it. I think we can go straight to saying that we couldn't get the page. Which also avoids confusion about what "Hypothesis" is vs what "Via" is.

It changes from saying "Hypothesis" in the first sentence to saying "we" in the second. I think it should be "Hypothesis" as it's clearer especially when Hypothesis is running inside other apps like Canvas and it might not always be completely clear who a dialog is coming from, and also because I think that's what we've tended to do in text elsewhere (e.g. in the LMS app).

Also say "Hypothesis" instead of "Our service" for the same reasons

Front-load the most important part of the message which is that we couldn't get the page

Suggestion:

Oops, that URL doesn't look right
Hypothesis couldn't get the page because the URL is invalid:
google.com
x Your request > Hypothesis > The web page

With regards to the various suggestions about wording etc:

In previous comments you asked who the service was, who we are etc. "Hypothesis is a service that gets a web page and lets you annotate it." is an attempt to set the scene so you know the answer to all these questions. (Although more on the fact we make little effort to identify ourselves later)

We can scoop it out, but does the intended user in LMS have any idea what Hypothesis is or that we exist? If you've been set some homework and it comes back with "Glarbon can't get your website, please contact Glarbon" does it make sense without any more info?
Could we replace this with a "What is Hypothesis?" expand at the bottom or something to give students a fighting chance?

The swap to "we" is on purpose in light of the above as a result of having established who "we" are as "Hypothesis". Although if we are going to assume people know what Hypothesis is we can just say it without the additional description. If we remove the above wording the same will still likely apply if we establish "Hypothesis" as the we in the first sentence for subsequent sentences etc. I feel like this is natural reading comprehension ("The dog sat on the ball. It left a bit later.", technically ambiguous, but not really)

I was originally going to say Via (as it's more accurate) but this leads to the problem of Hypothesis/Via relationship.
Another attempt to establish who "we" are as opposed to the LMS was the version with an inclusion of the h logo. You suggested I remove it to be consistent with LMS. This also makes us inconsistent with "h" errors which do include the icon so... not sure you can win that one.
Generally branding is the way you solve this problem e.g. http://google.com/kljnsdfkljnsdfgdf. The first thing this page does is tell you it's Google then refers to "this server". "Which server is that?" is obvious by context. I think the problem here is that LMS doesn't establish who it is, and we are copying that style.

Similar to the above by saying "Hypothesis is a service" we establish what "the service" is, in this case I think you're right it isn't any shorter, so it might as well swap out there. This could cause problems for people who do know what Hypothesis is and how it works, because this is sort of a lie. Via is a service that gets web pages for you and adds Hypothesis to them.

I can change the wording on that string to something similar. Have you looked at the others? All of your feedback here seems "BadURL" specific.

With regards to changing the order to have the URL below the first line, it works for "BadURL" and "UpstreamServiceError", but it doesn't make much sense in the context of other errors. At present any URL with a "url" parameter will show this part of the error:

http://0.0.0.0:9082/no-a-thing?url=a-url-here

So unless we want to add another flag which says "URL important" or something it's not clear where to put this to make it work in all cases. (All cases being those listed in via.error.ERROR_MAP at time of writing). As above, in the case of the 404, it would be actively misleading to have it after the first sentence.
What do you think? Move it somewhere else, add an extra parameter, something else?

Yeah I think we're agreeing furiously on some of this, but the 404 is tricky. Which URL wasn't found? Unusually there are two in play potentially.
Do you think the three panel diagram thing is enough to make the difference there?

I've remove reworded some of the errors and I'll go through some of the decisions:

Replaced "Our service" with "Hypothesis"
Use the active voice
We use "we" and "this service" in the sub-descriptions

On the use of "we" etc.
The language for "Something went wrong" as lifted directly from LMS. Which makes less reference to Hypothesis that this dialog does, so prior art says this is ok. We should not be subject to following existing practice as a constraint without benefiting from it as a freedom too.
It's clearer and more direct language.
Saying Hypothesis did something, without saying we are Hypothesis isn't really any better for letting the user know what's what.
About the active vs. passive voice
You suggested a change (a change was suggested) from:

"The URL you have entered isn't part of this service"

To:

"The requested URL wasn't found"

This is in an attempt to avoid prompting the question of what "this service" is. This isn't really a fix for a number of reasons:

The question remains, who are you?
This doesn't provide an answer
Requested by whom? Who failed to find it?

A user might not know what "this service" is or who "we" are, but they know who "you" refers to. They gain a lot of knowledge by knowing it wasn't them.
The Civil Service Style guide and many other technical writing guides recommend the use of the the active voice for the following reasons:

It makes it clear who and what is acting on what
It often leads to shorter clearer sentences:

"The committee is considering the proposal"
"The proposal is being considered by the committee"

I think we should adopt this consciously.

I've added grey circles for parts of the flow that haven't been reached yet as suggested. This is good because it doesn't imply it would work if you get that far, which the previous one did.

Is this icon supposed to look like this? It's a red circle with a white cross in your screenshot above and I think that's how it was for me locally previously as well, but now I'm seeing red on green, which is a really bad combo for colorblind users:

In Firefox the X is also misaligned:

I wonder if we should just use SVG icons here? And the entire circle-with-a-cross-through-it can just be one SVG, rather than trying to draw an SVG on top of a CSS circle background. And similarly circle-with-a-check-through-it could be a single, second SVG image, and grey-circle could be a third. It's probably going to be easier to get consistent colors and alignment that way.
The actual SVG code can even be inlined into the HTML if you don't want to have separate files.

There's a minor lack-of-vertical-spacing issue below the Error Details:

Compare to LMS:

There's a minor wording difference:
LMS always says "If the problem persists send us an email or open a support ticket".
Whereas these new dialogs say "To get help from Hypothesis send us an email or open a support ticket".
It's a minor thing for sure but it is slightly odd for the same sentence to be worded differently in half of the LMS-experience error messages

The width of the dialogs is different: these ones are narrower than LMS's ones:
Via 3:

LMS:

I think these kinds of inconsistencies do add up: if the error dialogs that appear in the same location in the UX, are sometimes one width and sometimes much narrower. Probably worth fixing

It might be missing or have returned an error to us reads better as It might be missing or might have returned an error to us IMO

Retrying might help if the web page is having temporary problems <- This is true of many, almost all, error dialogs that can happen in either Via 3 or LMS, but we don't say this in any of the other dialogs. We do put a Try again button on the dialog whenever retrying might work, and I think this is enough. If it were me, I would simply remove this sentence. But if you want to keep it in, can we reword it to Trying again might help if the web page is having temporary problems to match with the call-to-action on the Try again button?

I would change Cannot understand request to Bad request

Ok, I've had another look over these and posted observations as individual comments above.

I think the cross icon issue is definitely worth fixing
I think the overall dialog width is definitely worth fixing
The vertical spacing beneath Error Details is a minor vertical rhythm and consistency issue, but I think worth fixing
The To get help from Hypothesis -> If the problem persists change is another small thing that I think is worth fixing 'cos it's a consistency issue
I'll leave the other three up to you, I think they're minor wording improvements

Regarding the wider question of error design and passive vs active voice etc: I think there's a wider discussion to be had here. Hypothesis could benefit from a writing style guide for UI text and/or an error messages style guide.

Regarding the wider question of error design and passive vs active voice etc: I think there's a wider discussion to be had here. Hypothesis could benefit from a writing style guide for UI text and/or an error messages style guide.
There's a degree of consistency in the existing LMS error and non-error dialogs:

They all use the same visual design
The title is a "friendly" error message. This can be entirely generic in some cases ("Something went wrong") but where possible a more specific error message is used ("Developer key scopes missing", "Authorize Hypothesis", "Authorization failed", ...) ("Something went wrong" is a fallback for when the error is unrecognised / we don't have a special-case for it yet)
Further user-friendly explanation of the error message and help links follow in the body of the dialog (with always the exact same wording for the help links)
Where relevant further technical details under Error Details
Where relevant a Close or Cancel button
Where relevant a Try again button
I think the voice / writing style is roughly consistent across them all
They're all pretty concise / share the same level of conciseness

I think these new Via 3 dialogs also match those 8 points (other than the tweaks I've just suggested) and I think keeping the experience consistent was the right move for this PR.
But we could have a wider Can we improve our approach to error messages? mini project.

One more, I would just delete this:
Retrying might help, but if you get this error repeatedly please report it.
We already say If the problem persists send us an email or open a support ticket (if we accept my To get help from Hypothesis -> If the problem persists suggestion above) and we show a Try again button so I think we've got this covered, and the extra sentence is unnecessary.

One more thing: it should be vertically-centered as the LMS ones are

Ok. Attempt one meelion!

Changes as we went over in the call
Added an SVG sprite for the icons (this does give us one external dependency for the error page... seems ok)
Made it vertically center, although this looks pretty goofy when not in a tiny iframe

authors: jon-betts seanh