text:
Flaky test: Dask worker paused, causing race condition

Describe the problem
In this CI run, Dask crashed with ValueError("Sample larger than population or is negative"). This is likely due to a race condition in Dask itself; we've filed an issue on their end: https://github.com/dask/distributed/issues/6713
Stack trace
============================= test session starts ==============================
platform linux -- Python 3.8.13, pytest-7.1.2, pluggy-1.0.0
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/runner/work/modin/modin, configfile: setup.cfg
plugins: cov-2.11.0, benchmark-3.4.1, forked-1.4.0, xdist-2.5.0, Faker-13.15.0
gw0 I / gw1 I
gw0 [488] / gw1 [488]
........................................................................ [ 14%]
........................................................................ [ 29%]
........................................................................ [ 44%]
........................F............................................... [ 59%]
........................................................................ [ 73%]
........................................................................ [ 88%]
........................................................                 [100%]
=================================== FAILURES ===================================
________________ test_pivot[None-<lambda>-None-float_nan_data] _________________
[gw1] linux -- Python 3.8.13 /usr/share/miniconda3/envs/modin/bin/python
data = {'col1': [nan, 15.495823294762069, 54.18965011208873, 84.29175834609546, 52.475393862603724, 3.5983596208683966, ...],...': [nan, nan, nan, nan, 25.291907676386415, nan, ...], 'col12': [nan, nan, nan, nan, 4.509197191137804, nan, ...], ...}
PytestBenchmarkWarning: Benchmarks are automatically disabled because xdist plugin is active.Benchmarks cannot be performed reliably in a parallelized environment.
index = None, columns = <function <lambda> at 0x7f4854de0820>, values = None
    @pytest.mark.parametrize("data", test_data_values, ids=test_data_keys)
    @pytest.mark.parametrize(
        "index", [lambda df: df.columns[0], lambda df: df[df.columns[0]].values, None]
    )
    @pytest.mark.parametrize("columns", [lambda df: df.columns[len(df.columns) // 2]])
    @pytest.mark.parametrize(
        "values", [lambda df: df.columns[-1], lambda df: df.columns[-2:], None]
    )
    def test_pivot(data, index, columns, values):
>       eval_general(
            *create_test_dfs(data),
            lambda df, *args, **kwargs: df.pivot(*args, **kwargs),
            index=index,
            columns=columns,
            values=values,
            check_exception_type=None,
        )
modin/pandas/test/dataframe/test_default.py:489:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
modin/pandas/test/utils.py:767: in eval_general
    values = execute_callable(
modin/pandas/test/utils.py:746: in execute_callable
    md_result = fn(modin_df, **md_kwargs)
modin/pandas/test/dataframe/test_default.py:491: in <lambda>
    lambda df, *args, **kwargs: df.pivot(*args, **kwargs),
modin/logging/logger_decorator.py:128: in run_and_log
    return obj(*args, **kwargs)
modin/pandas/dataframe.py:1532: in pivot
    query_compiler=self._query_compiler.pivot(
modin/logging/logger_decorator.py:128: in run_and_log
    return obj(*args, **kwargs)
modin/core/storage_formats/pandas/query_compiler.py:2968: in pivot
    unstacked = reindexed.unstack(level=columns, fill_value=None)
modin/logging/logger_decorator.py:128: in run_and_log
    return obj(*args, **kwargs)
modin/core/storage_formats/pandas/query_compiler.py:1234: in unstack
    new_modin_frame = obj._modin_frame.apply_full_axis(
modin/logging/logger_decorator.py:128: in run_and_log
    return obj(*args, **kwargs)
modin/core/dataframe/pandas/dataframe/dataframe.py:115: in run_f_on_minimally_updated_metadata
    result = f(self, *args, **kwargs)
modin/core/dataframe/pandas/dataframe/dataframe.py:1906: in apply_full_axis
    return self.broadcast_apply_full_axis(
modin/logging/logger_decorator.py:128: in run_and_log
    return obj(*args, **kwargs)
modin/core/dataframe/pandas/dataframe/dataframe.py:115: in run_f_on_minimally_updated_metadata
    result = f(self, *args, **kwargs)
modin/core/dataframe/pandas/dataframe/dataframe.py:2340: in broadcast_apply_full_axis
    new_axes = [
modin/core/dataframe/pandas/dataframe/dataframe.py:2341: in <listcomp>
    self._compute_axis_labels(i, new_partitions)
modin/logging/logger_decorator.py:128: in run_and_log
    return obj(*args, **kwargs)
modin/core/dataframe/pandas/dataframe/dataframe.py:429: in _compute_axis_labels
    return self._partition_mgr_cls.get_indices(
modin/core/dataframe/pandas/partitioning/partition_manager.py:853: in get_indices
    func = cls.preprocess_func(index_func)
modin/core/dataframe/pandas/partitioning/partition_manager.py:121: in preprocess_func
    return cls._partition_class.preprocess_func(map_func)
modin/core/execution/dask/implementations/pandas_on_dask/partitioning/partition.py:248: in preprocess_func
    return DaskWrapper.put(func, hash=False, broadcast=True)
modin/core/execution/dask/common/engine_wrapper.py:89: in put
    return client.scatter(data, **kwargs)
/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/client.py:2354: in scatter
    return self.sync(
/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/utils.py:309: in sync
    return sync(
/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/utils.py:363: in sync
    raise exc.with_traceback(tb)
/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/utils.py:348: in f
    result[0] = yield future
/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/tornado/gen.py:769: in run
    value = future.result()
/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/client.py:2239: in _scatter
    await self.scheduler.scatter(
/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/core.py:900: in send_recv_from_rpc
    return await send_recv(comm=comm, op=key, **kwargs)
/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/core.py:693: in send_recv
    raise exc.with_traceback(tb)
/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/core.py:520: in handle_comm
    result = await result
/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/scheduler.py:5847: in scatter
    await self.replicate(keys=keys, workers=workers, n=n)
/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/scheduler.py:6644: in replicate
    for ws in random.sample(tuple(workers - ts._who_has), count):
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>   raise ValueError("Sample larger than population or is negative")
E   ValueError: Sample larger than population or is negative
/usr/share/miniconda3/envs/modin/lib/python3.8/random.py:363: ValueError
----------------------------- Captured stderr call -----------------------------
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 312.40 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 314.01 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Worker is at 85% memory usage. Pausing worker.  Process memory: 407.79 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 382.26 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Worker is at 79% memory usage. Resuming worker. Process memory: 378.01 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 378.01 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 378.01 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 319.11 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Worker is at 80% memory usage. Pausing worker.  Process memory: 382.70 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 382.70 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.core - ERROR - Exception while handling op scatter
Traceback (most recent call last):
  File "/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/core.py", line 520, in handle_comm
    result = await result
  File "/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/scheduler.py", line 5847, in scatter
    await self.replicate(keys=keys, workers=workers, n=n)
  File "/usr/share/miniconda3/envs/modin/lib/python3.8/site-packages/distributed/scheduler.py", line 6644, in replicate
    for ws in random.sample(tuple(workers - ts._who_has), count):
  File "/usr/share/miniconda3/envs/modin/lib/python3.8/random.py", line 363, in sample
    raise ValueError("Sample larger than population or is negative")
ValueError: Sample larger than population or is negative
distributed.worker - WARNING - Worker is at 78% memory usage. Resuming worker. Process memory: 376.08 MiB -- Worker memory limit: 476.84 MiB
--------------------------- Captured stderr teardown ---------------------------
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 376.08 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
distributed.worker - WARNING - Unmanaged memory use is high. This may indicate a memory leak or the memory may not be released to the OS; see https://distributed.dask.org/en/latest/worker.html#memtrim for more information. -- Unmanaged memory: 377.76 MiB -- Worker memory limit: 476.84 MiB
---------- coverage: platform linux, python 3.8.13-final-0 -----------
Coverage XML written to file coverage.xml
=========================== short test summary info ============================
FAILED modin/pandas/test/dataframe/test_default.py::test_pivot[None-<lambda>-None-float_nan_data]
=========== 1 failed, 487 passed, 1361 warnings in 380.33s (0:06:20) ===========
Error: Process completed with exit code 1.

Another failure: https://github.com/modin-project/modin/runs/7636442346?check_suite_focus=true

authors: mvashishtha noloerino

repo: modin-project/modin


text:
FIX-#2498: Fix possible number of partitions for Dask engine

Signed-off-by: yaroslav.igoshev yigoshev@ansatclx1005.an.intel.com

What do these changes do?

[x] commit message follows format outlined here
[x] passes flake8 modin
[x] passes black --check modin
[x] signed commit with git commit -s
[x] Resolves #2498
[x] tests passing

It looks like the same failure which we saw earlier. Tests are passing locally. I will rerun CI.

As I expected, cluster member is not always equal to not None. I am changing the fix.

source: gharchive/pull-request

license_type: permissive

license_source: github-api


text:
(fix) Use same next router in all modules

Should fix #37 . This shares the router from the main app in all other modules. Otherwise the router is not properly initialized in external modules.

I thought about only loading the full next application only once but I had some issues doing this. Don't know if that is clever? (and I currently it behaves quite good ;) )

repo: module-federation/nextjs-mf

license: MIT


text:
🛑 STATUS.MOFE.IO is down

In 7332412, STATUS.MOFE.IO (https://status.mofe.io) was down:

HTTP code: 0
Response time: 0 ms

Resolved: STATUS.MOFE.IO is back up in dd12728.

source: gharchive/issue

repo: mofelee/upptime


text:
Index out of range at random moments

I keep running into this error and after hours and hours trying to figure out how it comes about I think it's time to ask for some help. I'm starting to feel like it's something fishy in PyOrient because I can't find the origin of this problem anywhere else.
The database is properly initialised and I manage to send 100s of batch commands without a problem and then all of a sudden I send a command like this (I seen no distinguishable difference to other commands that do succeed)
CommandsBEGIN;let entity = SELECT FROM #12:62437;let page = CREATE VERTEX Pages CONTENT {"url": "http://www.geolink.net.au/about/accreditations/", "timestamp": "2015-04-04 20:09:26", "corpus": "Accreditations | GeoLINK                                                                              Home Featured Projects Our Services     About Us  Accreditations Company Profile Our Community   Our Team Contact us  Our Location Join Us             Accreditations           LATEST NEWS   THE GREEN PAPER \u2013 NSW Government\u2019s New Planning System      The NSW Planning Minister has recently released\u00a0The Green Paper, which sets out the government\u2019s... more \u00bb     Pacific Pines Environmental Approvals in place      This follows the State Government\u2019s approvals for the projects and will now enable a start on... more \u00bb     GeoLINK now offers Road Safety Auditing!      GeoLINK now offers Road Safety Audits in Tweed Heads, Lismore, Coffs Harbour, Newcastle and NSW... more \u00bb               \u00a0 Quality Assurance GeoLINK\u2019s policy is to provide all products and services in accordance with the client\u2019s specified requirements and best practice. The quality of our work is assured through established, purpose designed project management systems and rigorous peer review processes. GeoLINK maintains a Quality Management System meeting the requirements of AS/NZS ISO 9001 and is third party certified by BSI Australia. Certificate of Registration       \u00a0 \u00a0     \u00a0                    Project Login   Username    Password    Remember Me     Lost PasswordQUICKLINKSHome Company Profile Accreditations Our Community Contact us Join Us Our Team Past Projects LATEST NEWS   THE GREEN PAPER \u2013 NSW Government\u2019s New Planning System    Pacific Pines Environmental Approvals in place    GeoLINK now offers Road Safety Auditing!    NSW State Government Updates the Planning System    12th Annual Tree Planting Day at Lennox Head    CONTACT USLennox Head Office PO Box 119 (Level 1, 64 Ballina Street) Lennox Head, NSW 2478 Tel: +61 (0) 2 6687 7666 Coffs Harbour Office PO Box 1446 (23 Gordon Street) Coffs Harbour, NSW 2450 Tel: +61 (0) 2 6651 7666 Lismore OfficeUnit 10, Warina Walk Arcade156 Molesworth StreetLismore\u00a0 NSW\u00a0 2480      \u00a9 2015 GeoLINK Website design by Coast Studios. Find us on Facebook or Linked In"} RETURN AFTER @rid;let e = CREATE EDGE has_pages FROM $entity TO $page;COMMIT;SELECT  @rid as key from $page;
and I get the following exception:
  File "process_items.py", line 84, in createPageVertex
    page = self.odb.batch(commands)
  File "/Users/rik/anaconda/lib/python2.7/site-packages/pyorient/orient.py", line 246, in batch
    .prepare(( QUERY_SCRIPT, ) + args).send().fetch_response()
  File "/Users/rik/anaconda/lib/python2.7/site-packages/pyorient/messages/commands.py", line 149, in fetch_response
    return self._read_sync()
  File "/Users/rik/anaconda/lib/python2.7/site-packages/pyorient/messages/commands.py", line 197, in _read_sync
    res.append( self._read_record() )
  File "/Users/rik/anaconda/lib/python2.7/site-packages/pyorient/messages/base.py", line 407, in _read_record
    _res = ORecordDecoder(__res['content'].rstrip())
  File "/Users/rik/anaconda/lib/python2.7/site-packages/pyorient/serialization.py", line 17, in __init__
    self.__decode( content )
  File "/Users/rik/anaconda/lib/python2.7/site-packages/pyorient/serialization.py", line 36, in __decode
    chunk = self.parse_key(content)
  File "/Users/rik/anaconda/lib/python2.7/site-packages/pyorient/serialization.py", line 104, in parse_key
    if content[ 0 ] == '"':
IndexError: string index out of range ```

Does it have anything todo with maybe a bug in the deserialisation of the Unicode corpus body?

Hi @RXminuS , surely this could be a bug, i leave the issue opened and marked as bug. Next week i will investigate.

Hi @RXminuS
i tried to reproduce your issue and i tried with python 2.7.6 and python 3.4 on ubuntu system.
i used this simple script and it worked.
import pyorient
import sys
import os

os.environ['DEBUG'] = "1"

DB = pyorient.OrientDB("localhost", 2424)
DB.connect("root", "root")
db_name = "test_tr"
try:
    DB.db_drop(db_name)
except pyorient.PyOrientCommandException as e:
    print(e)
finally:
    db = DB.db_create(db_name, pyorient.DB_TYPE_GRAPH,
                      pyorient.STORAGE_TYPE_MEMORY)
    pass

cluster_info = DB.db_open(
    db_name, "admin", "admin", pyorient.DB_TYPE_GRAPH, ""
)

class_id1 = DB.command( "create class Pages extends V" )[0]
class_id2 = DB.command( "create class has_pages extends E" )[0]
rec1 = { '@Pages': { 'url': 'http://www.google.com', 'timestamp': '2015-04-04 20:09:26', 'corpus': 'ok' } }
rec_position1 = DB.record_create(class_id1, rec1)

sql = 'BEGIN;let entity = SELECT FROM ' + rec_position1._rid + ';let page = CREATE VERTEX Pages CONTENT {"url": "http://www.geolink.net.au/about/accreditations/", "timestamp": "2015-04-04 20:09:26", "corpus": "Accreditations | GeoLINK Home Featured Projects Our Services About Us Accreditations Company Profile Our Community Our Team Contact us Our Location Join Us Accreditations LATEST NEWS THE GREEN PAPER \u2013 NSW Government\u2019s New Planning System The NSW Planning Minister has recently released\u00a0The Green Paper, which sets out the government\u2019s... more \u00bb Pacific Pines Environmental Approvals in place This follows the State Government\u2019s approvals for the projects and will now enable a start on... more \u00bb GeoLINK now offers Road Safety Auditing! GeoLINK now offers Road Safety Audits in Tweed Heads, Lismore, Coffs Harbour, Newcastle and NSW... more \u00bb \u00a0 Quality Assurance GeoLINK\u2019s policy is to provide all products and services in accordance with the client\u2019s specified requirements and best practice. The quality of our work is assured through established, purpose designed project management systems and rigorous peer review processes. GeoLINK maintains a Quality Management System meeting the requirements of AS/NZS ISO 9001 and is third party certified by BSI Australia. Certificate of Registration \u00a0 \u00a0 \u00a0 Project Login Username Password Remember Me Lost PasswordQUICKLINKSHome Company Profile Accreditations Our Community Contact us Join Us Our Team Past Projects LATEST NEWS THE GREEN PAPER \u2013 NSW Government\u2019s New Planning System Pacific Pines Environmental Approvals in place GeoLINK now offers Road Safety Auditing! NSW State Government Updates the Planning System 12th Annual Tree Planting Day at Lennox Head CONTACT USLennox Head Office PO Box 119 (Level 1, 64 Ballina Street) Lennox Head, NSW 2478 Tel: +61 (0) 2 6687 7666 Coffs Harbour Office PO Box 1446 (23 Gordon Street) Coffs Harbour, NSW 2450 Tel: +61 (0) 2 6651 7666 Lismore OfficeUnit 10, Warina Walk Arcade156 Molesworth StreetLismore\u00a0 NSW\u00a0 2480 \u00a9 2015 GeoLINK Website design by Coast Studios. Find us on Facebook or Linked In"} RETURN AFTER @rid;let e = CREATE EDGE has_pages FROM $entity TO $page;COMMIT;SELECT @rid as key from $page;'

record_id = DB.batch(sql)[0]

print( record_id._rid )  #  prints '#-2:0'

From the traceback you pasted, seems like that the response from OrientDB is corrupted and it is only space(s).
In the traceback a line is highlighted in the file "serialization.py", line 36, in __decode method there is the caller line that leads to the crash:
        chunk = self.parse_key(content)

Some lines above ( Line 25 ) there is a check for a non empty string:
        if not content:
            return

and after that there is a:
        content = content.strip()

to clean heading and trailing spaces.
So, if the string was only spaces instead of something like 'key:#11:1', at line 79 accessing to the string index 0 inside the if statement raises an exception.
         if content[0] == '"':

Hope this helps you.
I will mark this issue as invalid.
If you have more info/examples/tests send me them and i will try to reproduce again to help you more.

authors: Ostico RXminuS

repo: mogui/pyorient

license_source: bigquery


text:
Could not get it to work

I have tried to implement without success:
// Import the SDK
import { DropshipperClient } from "ae_sdk";

// Initialize the SDK (replace with actual parameters if needed)
const client = new DropshipperClient({
    app_key: 'XXXXX',
    app_secret: 'XXXXXXXX',
    session: "oauth_access_token"
});

async function getProductData(productId) {
    try {
      const productData = await client.productDetails({
        product_id: productId,
        ship_to_country: 'US',
        target_currency: 'USD',
        target_language: 'en',
      });
      console.log(productData);
    } catch (error) {
      console.error(`An error occurred: ${error.message}`);
    }
  }

// Example usage
const productId = '3256806022897905';
getProductData(productId);

Using correct key / secret
{
  ok: false,
  message: 'Bad request',
  error_response: {
    type: 'ISV',
    code: 'IllegalAccessToken',
    msg: 'The specified access token is invalid or expired',
    request_id: 'xxxx'
  },
  request_id: 'xxxx'
}

Did I miss anything?

It seems that the issue is related to the access token you passed to client.session. According to the error message, the access token might be invalid or expired.
Please verify the validity of the token you're using. For more information on access tokens and how to resolve this issue, you can refer to the official documentation here.


text:
[Fix] Close task

Issue Description
task.close() method never completes because of method close() called twice for _hlsStreamController.
This issue leads to the huge memory leaks.
What is the fix

[ ] Added conditional close in close() method for _hlsStreamController.

Additional info

[x] Did little refractoring cleaning namespace and closed two more subscriptions.
[x]  Added changing TorrentTask to TaskState.stopped after succesfull dispose.
[x]  Added test.

Issue link(s)
https://github.com/moham96/dtorrent_task/issues/3

@moham96 Hello! Really appreciate for your job. Nice packages and ... it works! Magic of torrents is available for any flutter and its Huge.
Please, consider my PR adressed to fix memory leaks.

Thanks for the PR


text:
Splink produces and error when the left or right spark sql functions are used

This is because Versions of sqlglot before 1.18.0 could not parse the spark sql left and right functions - see here.
Example of error:
ParseError: Required keyword: 'this' missing for <class 'sqlglot.expressions.If'>. Line 4, Col: 10.
  null or col_r is null) then -1
    when col_l = col_r then 2
    when LEFT(col_l, 1) = LEFT(col_r, 1) then 1
    else 0 end  as gamma_col

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

ValueError                                Traceback (most recent call last)
<ipython-input-4-4ac324776c71> in <module>
      6
      7 settings = read_json_from_s3(model_path)
----> 8 model = Model(settings, spark)

/opt/conda/lib/python3.9/site-packages/splink/model.py in __init__(self, settings, spark)
     44         self.original_settings_obj = Settings(settings_dict_original)
     45
---> 46         settings_dict_completed = complete_settings_dict(deepcopy(settings), spark)
     47
     48         self.current_settings_obj = Settings(deepcopy(settings_dict_completed))

/opt/conda/lib/python3.9/site-packages/splink/default_settings.py in complete_settings_dict(settings_dict, spark)
    301         _complete_case_expression(col_settings, spark)
    302
--> 303         _complete_comparison_levels(col_settings)
    304         _complete_col_name(col_settings)
    305         _complete_custom_columns(col_settings)

/opt/conda/lib/python3.9/site-packages/splink/default_settings.py in _complete_comparison_levels(col_settings)
    171     if "comparison_levels" not in col_settings:
    172         case_expression = col_settings["case_expression"]
--> 173         col_settings["comparison_levels"] = parse_case_statement(case_expression)
    174
    175     if "case_expression" not in col_settings:

/opt/conda/lib/python3.9/site-packages/splink/parse_case_statement.py in parse_case_statement(sql)
     81 def parse_case_statement(sql):
     82
---> 83     tree = _get_top_level_case(sql)
     84     return _parse_top_level_case_statement_from_sql(tree)
     85

/opt/conda/lib/python3.9/site-packages/splink/parse_case_statement.py in _get_top_level_case(sql)
     34         syntax_tree = sqlglot.parse_one(sql, read="spark")
     35     except ParseError as e:
---> 36         raise ValueError(f"Error parsing case statement:\n{sql}") from e
     37
     38     if _tree_is_alias(syntax_tree):

ValueError: Error parsing case statement:
case
    when (col_l is null or col_r is null) then -1
    when col_l = col_r then 2
    when LEFT(col_l, 1) = LEFT(col_r, 1) then 1
    else 0 end  as gamma_col

Closed by #267

repo: moj-analytical-services/splink


text:
Allow multiple broadcast data passed to listener

I make a temporary package for this issue
https://github.com/yslyong/react-native-broadcast-receiver-android
once the fixes deployed, i will delete the duplicated package and repo
Root causes of this issue is when one action is broadcasting multiple value in single broadcast, unable to get multiple in the same action.
Example:
adb shell am broadcast -a com.action.data --es epc "EPC_VALUE" --es tid "TID_VALUE" --es rssi "RSSI_VALUE"
Usage:
When datakey exist it will only get the data for datakey, if datakey is empty string the listener will return the full broadcast data to the listener.
        BroadcastReceiver.setIntentActionConfig([
            { action: "com.showdecode.data", datakey: "msg" },
            { action: "com.action.data", datakey: "" },
        ])

@yslyong Thank you for reporting this and raising the PR.
A new version 0.6.0 is released with these changes.

authors: mojjominion yslyong


text:
display-dependency-updates not resolving to correct version

Example output:
[INFO]   commons-beanutils:commons-beanutils ......... 1.9.4 -> 20030211.134440
[INFO]   commons-codec:commons-codec .................. 1.12 -> 20041127.091804
[INFO]   commons-io:commons-io ...................... 2.11.0 -> 20030203.000550
[INFO]   commons-net:commons-net ....................... 3.3 -> 20030805.205232
Occurs if conventional versioning is not used for a given library.  Example for commons-codec, version 20041127.091804 was from 24-Nov-2005.  Latest version is actually 1.15 from 1-Sep-2020.

unfortunately versions like: 20041127.091804 are correct Maven version, both items separated by dot are numbers ...
when we compare numbers that is true:
20041127 > 1

The same effect:
https://search.maven.org/search?q=g:commons-codec AND a:commons-codec
Of course conventional versioning is broken in this example ...
versions-m-p and Maven compare versions by numbers not by date of release.

I believe - once artifacts with changed versioning scheme are determined, Ignoring certain versions can be used to solve such problem.
IMO this is not an issue to be solved here.

agree it is not a bug in versions-m-p

Can this plugin access / determine the release date of artifacts? In that case, even though the versioning of the projects is incorrect, the versions-maven-plugin could possibly first search for versions released after the current one (based on the release date) and only then compare the version numbers.

repo: mojohaus/versions-maven-plugin


text:
NPM organization

Use the mojs NPM organization to host all mojs packages for better consistency.

[ ] update the package properties
[ ] setup the npm org.
[ ] publish and test
[ ] update/check the doc.

Currently working on it, see https://github.com/mojs/mojs/tree/mojs-npm-org.

repo: mojs/mojs


text:
setting $$strict=true for params should work with nested objects

Consider the following action definition.  Take note of:

"city" parameter in the action
"I_DONT_REMEMBER_HOW_TO_SPELL_CITY" parameter in the payload

createLocation: {
    auth: 'required',
    params: {
        $$strict: true
        alias: { type: 'string' },
        address: {
            type: 'object',
            props: {
                address1: { type: 'string', optional: true },
                city: { type: 'string', optional: true },
            },
            optional: true,
        }
    }
    async handler(ctx: Context<Record<string, unknown>, ClientMeta>) {/* doSomethingLogical() */}
}

Now call this service with the following payload
{
  "alias": "InCoherent Developer's Palace",
  "address": {
    "address1": "42 Somewhere Path",
    "I_DONT_REMEMBER_HOW_TO_SPELL_CITY": "Why does this value get silently dropped and not stored in my database??  I set $$strict=true so I would get politely told to bugger off and go fix my typo",
  },
}

$$strict seems work great for top level params.  (ie, If I added "I_DONT_REMEMBER_HOW_TO_SPELL_ALIAS" at the top level, right under "alias" in my payload, validation correctly rejects it).  It's only when I define an object that I see this problem.
ps.  Thx for your efforts.  I really enjoy working with Moleculer!
Edit:  Sorry, Let me give you the software version details..
OS                      : Windows 10
NodeJS                  : 16.15.0
moleculer               : ^0.14.21
moleculer-web           : ^0.10.4
moleculer-decorators    : ^1.3.0
moleculer-http-client   : ^0.4.2
moleculer-io            : ^2.0.0

I tested with Chrome 104.0.5112.102   & Postman 9.28.2

Does it work if you add strict: true to the address definition?

@ColinFrick Yes!
Interesting...
Adding "$$strict:true" to the address definition did not work.
Adding "strict:true" to the address definition, with out the dollar signs, did work.
I'll have to check and see if I should be using "strict:true" everywhere now instead of "$$strict:true".

OK, so that gets me going.
@ColinFrick

I'm guessing this might be due to JS internals,  but do you know it doesn't stick with "$$strict" on nested schemas?
Do you know if there was a conscious decision to make $$strict not affect nested schemas?
I wonder if I'm the only one who made a bad assumption here.  Maybe it because I'm only using fastest-validator in the context on Moleculer?  I guess I'm asking if this issue is still a valid feature request (either for fastest-validator, or specifically for Moleculer), to make $$strict affect nested schemas,  or if this issue should get rewritten as, "Please make the docs call this out so others don't trip over a bad assumption",  or if this issue just gets closed as RTFM.

$$strict is only evaluated for the root schema. As far as I can tell it is the same behavior as if you have nested objects, children don't inherit the strict property from their parent either.
If you always want strict: true for object validator you can set it by default:
https://github.com/icebob/fastest-validator#default-options
https://moleculer.services/docs/0.14/validating.html#Fastest-Validator (Example with options)
I only can tell you what's in the documentation, maybe @icebob can tell you more.

@ColinFrick Thank you for pointing me at the docs.  The default values are new since I set this all up a few years back.   I think docs are good and I'm going to close this out as "RTFM Success".
Related question:  It looks like the default options handles any nested objects.  Do you know if there is any config setting to handle the top level $$strict: true as a default for all actions? or is my existing Middleware function still the best bet for that?  (I re-read both sets of docs but didn't see anything)

Hi, @ColinFrick's explanation is right, no inheritance in properties, every property is evaluated on the given level and not affect the  nested levels.
If you would like to add strict: true for every object rule, set it as a default option as Colin mentioned. You can do it in broker options, like:
// moleculer.config.js

module.exports = {
    validator: {
        type: "Fastest",
        options: {
            useNewCustomCheckerFunction: true,
            defaults: {
                object: {
                    strict: true
                }
            }
        }
    }
};

Thanks!   Closing this as RTFM.

authors: ColinFrick ekellstrand icebob

repo: moleculerjs/moleculer-web


text:
[42] Add command line proxy for Reality entities

#42 This adds a command line tool really that proxies methods to Entity.  I can change the name of this command to something you feel is more appropriate if necessary.
As a small example (misspelling of Seinfeld is on purpose :wink:):

Hey, that's pretty cool!
I'm merging this and releasing with other enchancements in next version (~Mar 17). And we'll look what others say, it seems great potential here.
Thank you!

This is way beyond super cool. I saw the beginning of this discussion in #42
As far as I see, this is not yet available in the published gem?

@DannyBen yes, it will be available in next release soon

Aaaaaaand finally! http://zverok.github.io/blog/2016-04-18-reality-new-release.html
@codenamev, I am really gratefull for your contribution and have added you to Contributors list in our new README

Woohoo! 🎉  You da man!

authors: DannyBen codenamev smostovoy zverok

license: mit


text:
Diff error when creating date with format

When creating a date using a non ISO format, the diff function returns weird results (it seems like it is ignoring the minutes of the date).

26/10/2016 14:19:46 - 26/10/2016 14:19:37 = 9 seconds
26/10/2016 14:08:50 - 26/10/2016 14:08:39 = 11 seconds
26/10/2016 14:07:00 - 26/10/2016 14:06:49 = -49 seconds
26/10/2016 13:48:07 - 26/10/2016 13:47:43 = -36 seconds
26/10/2016 13:58:07 - 26/10/2016 13:47:43 = -36 seconds

Here is a jsFiddle where you can check the issue:
var dates = [
    {start: '26/10/2016 14:19:37', end: '26/10/2016 14:19:46'},
    {start: '26/10/2016 14:08:39', end: '26/10/2016 14:08:50'},
    {start: '26/10/2016 14:06:49', end: '26/10/2016 14:07:00'},
    {start: '26/10/2016 13:47:43', end: '26/10/2016 13:48:07'},
    {start: '26/10/2016 13:47:43', end: '26/10/2016 13:58:07'}
];

for(let i = 0, len = dates.length; i < len; i++){
	let start = moment(dates[i].start, 'DD/MM/YYYY H:i:s');
  let end = moment(dates[i].end, 'DD/MM/YYYY H:i:s');
  let diff = end.diff(start, 'seconds');

  document.body.innerHTML += '
'+end._i+' - '+start._i+' = '+diff+' seconds

';
}

document.body.innerHTML += '
';

dates = [
    {start: '2016-10-25 14:19:37', end: '2016-10-25 14:19:46'},
    {start: '2016-10-25 14:08:39', end: '2016-10-25 14:08:50'},
    {start: '2016-10-25 14:06:49', end: '2016-10-25 14:07:00'},
    {start: '2016-10-25 13:47:43', end: '2016-10-25 13:48:07'},
    {start: '2016-10-25 13:47:43', end: '2016-10-25 13:58:07'}
];

for(let i = 0, len = dates.length; i < len; i++){
	let start = moment(dates[i].start);
  let end = moment(dates[i].end);
  let diff = end.diff(start, 'seconds');

  document.body.innerHTML += '
'+end._i+' - '+start._i+' = '+diff+' seconds

';
}

I'm using Chrome 54 on Widnows 10
Next is the output of:
console.log( (new Date()).toString())
console.log((new Date()).toLocaleString())
console.log( (new Date()).getTimezoneOffset())
console.log( navigator.userAgent)
console.log(moment.version)

Fri Oct 28 2016 11:02:55 GMT-0300 (Hora verano Sudamérica Pacífico)
28/10/2016 11:02:55
180
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36
2.15.2

You need a different format string. i is not a moment token. The format you are using would properly be coded as DD/MM/YYYY HH:mm:ss.
Also of note - any variable prefixed with _ is private and should not be used in your code. _i is in fact just the initial string passed to the parser. If you had used .format() instead, you would have seen that the minutes were in fact not parsing.

authors: maggiepint tikoflano

repo: moment/moment


text:
moment.max moments[i].isValid is not a function

Description of the Issue and Steps to Reproduce:
moment.max(moment(),new Date())
happens when last parameter is not moment
global.js:2673 Uncaught TypeError: moments[i].isValid is not a function
    at pickBy (global.js:2673)
    at Function.max (global.js:2690)
    at <anonymous>:1:8

Environment:
any
Other information that may be helpful:

The time zone setting of the machine the code is running on
The time and date at which the code was run
Other libraries in use (TypeScript, Immutable.js, etc)

If you are reporting an issue, please run the following code in the environment you are using and include the output:
console.log( (new Date()).toString())
console.log((new Date()).toLocaleString())
console.log( (new Date()).getTimezoneOffset())
console.log( navigator.userAgent)
console.log(moment.version)

Wed Nov 22 2017 15:26:08 GMT+0800 (CST)
VM97:2 2017/11/22 下午3:26:08
VM97:3 -480
VM97:4 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
VM97:5 2.19.2

Ensure your issue is isolated to moment. Issues involving third party tools will be closed unless submitted by the tool's author/maintainer.

What behaviour are you expecting?
The method signature for max says it takes 1 or more Moment instances - so a Date instance isn't valid here.

So the built-in typing is wrong?
https://github.com/moment/moment/blob/03073778ec18ee38e179208cd1af899e8d1848dc/moment.d.ts#L688
https://github.com/moment/moment/blob/03073778ec18ee38e179208cd1af899e8d1848dc/moment.d.ts#L400

authors: Diluka ashsearle


text:
feat: Flatten momento::response module into a flat public API

The response module has a whole bunch of submodules that don't really add much information and make things much harder to find and use. This PR flattens the public API down into just the response module while still keeping the other modules for code organization internally.

Fixed the compile errors but I had to bring the example in under a workspace so that it was actually using the current version of the momento crate. If you'd like, I can undo this but putting it under a workspace will help make sure the example stays up to date.

Another option to the workspace is to make use of cargo's example directory (see how the io-uring crate does it).

I like this and I particularly like the examples being bound to the repo instead of being allowed to diverge. @cprice404 what do you think?

For now, for better or for worse, we are using the examples directory in conjunction with dependabot to make sure that when official releases are published to crates.io, we have some automation that is ensuring that the latest package is usable from there rather than from local source.
Until we come up with a better solution for this I would prefer that we keep the Momento dependency version in the examples/Cargo.toml pinned to an explicit version.  I recognize that for local development you may need to flip it in order to make things easy to iterate on but for now I think we need to keep the version that is committed to git pinned to a specific version.

Good change flattening momento::response. This is what we have done in in the other languages (.NET, JavaScript, Python, ...) to reduce import clutter.

I've gone and removed the changes to the examples directory. I'll make a follow-up PR to update the examples directory to the latest version once a new version is released.
Also, I'm not sure what's up with CI because the clippy errors I'm getting don't make much sense...

I've gone and renamed examples -> example so that running cargo clippy in the repository root directory doesn't also check the example code.

repo: momentohq/client-sdk-rust


text:
fix(popover): add popoverTrigger Input

Description

adding popoverTrigger which was not there
Related Issue

Motivation and Context

How Has This Been Tested?

Screenshots:
Before (If applicable):

After:

Types of changes

[x ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation update
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Other... Please describe:

Checklist:

[x ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ x] I have read the CONTRIBUTING document.
[ x] I have added tests to cover my changes.
[x ] All new and existing tests passed.

Can you rename your commit message to 'fix(popover): add popoverTrigger Input'

I tested it in the playground, we may need an additional prop or something that will keep the popover open when clicking inside of the popover. For instance, we may have a list/selects inside the popover that would need to stay visible after clicking. Clicking outside of the popover will close the popover.
https://drive.google.com/file/d/1bXlQytGUzwf-UsZwIHwHv_8PwhJU2JSf/view
Pretty much how the click example works in React.
https://stage.momentum.design/components/popover/code
@mathsusan @pauljeter @bfbiggs

This definitely sounds like a feature request it was not part of the original requirements and should be put on the backlog.

I think the intent of the task was to allow it to have the same functionality as React. The props Daani is referencing are probably closeOnClick and allowClickAway that actually live in the EventOverlay component in React but since we're using the CDK in Angular, probably need to live in the Popover. Let's merge and we can revisit any additional needs in planning.

authors: bfbiggs mathsusan

repo: momentum-design/momentum-ui


text:
Canaloplasty without Cathether

137760 GLAUCOMA, PRIMARY OPEN ANGLE; POAG
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9585494/
As the illumination equipment is expensive, surgeons tried different alternatives to replace the microcatheter. Beck first used a 6/ 0 polypropylene suture in circumferential cannulation in 360-degree trabeculotomy for primary congenital glaucoma in 1995 [39]. Later, this technique was described for the treatment of OAG patients [40,41]. After the preparation of the deep scleral flap, the ostia of SC are enlarged by using an OVD and a 6/ 0 polypropylene suture is introduced into the canal. The suture probe is blunt and slightly curved or formed in a double spiral. After circumferential catheterization, the distal tip is exposed at the other ostium and a 10/ 0 prolene suture is fastened to it. On removal, the 10/ 0 prolene suture remains in the canal secured through a slip knot or a four-throw knot. In recent prospective studies [42-44], a twisted 6/ 0 polypropylene suture was used for the cannulation of the SC (Fig. 3). The authors reported that the smooth tip of the loop ensures an atraumatic probing of the SC, while the double helix configuration provides a good rigidity to the suture. According to the authors, the success rate of circumferential cannulation by twisted 6/ 0 sutures is up to 90%, which is not inferior to the previously reported cannulation rates in conventional canaloplasty [16,45] or by the Visco360 and Omni System [46].

added.

authors: LCCarmody Sukramg

repo: monarch-initiative/MAxO


text:
Mini-canaloplasty

137760 GLAUCOMA, PRIMARY OPEN ANGLE; POAG
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2813598/
This method was introduced by Rękas et al. and involves a mini-incision technique for accessing the Schlemm’s canal without the need to prepare the classical TDM and having to close sutures. The main difference of this variation is the size of the flaps created, the superficial flap having a diameter of 4.0 x 1.5 mm, and the deep flap 1.0 x 1.0 mm. After locating Schlemm’s canal, the ostium can be probed with iTrack and an OVD is injected at every 2 hours on removal. The tensioning suture is placed in the same way as in conventional canaloplasty. Finally, without the removal of the deep scleral flap or dissection of the intrascleral lake or the TDM, the conjunctiva is closed with diathermy. As there is no intrascleral lake, the hypotensive effect will only be induced thorough the tensioning suture in the Schlemm’s canal.

Is this a child of MAXO_0000959 canaloplasty?

Yes, this technique appears to be a variation of canaloplasty, which is represented by MAXO_0000959 in the Medical Actions Ontology (MAXO). It is essentially a modified canaloplasty procedure, with some key differences in the method of accessing Schlemm’s canal and the size of the flaps created. Therefore, it can be considered a 'child' or a specific type of the 'parent' procedure, canaloplasty.

added


text:
[Revise subclass] MONDO_0019395 'Hinman syndrome'

Mondo term (ID and Label)
MONDO_0019395 'Hinman syndrome'
Suggested revision and reasons
This is a subclass of 'disease or disorder'. Could we classify it at least under MONDO_0006026 MONDO_0006026
The text def is:
Hinman syndrome (HS) or non-neurogenic neurogenic bladder is a voiding dysfunction of the bladder of neuropsychological origin that is characterized by functional bladder outlet obstruction in the absence of neurologic deficits.

Go ahead and do it. Also add disjointness axiom.
Can you also axiomatize neurogenic bladder? In fact are we sure it's a
disease and not a phenotype? (HP:0000011)
On Fri, Oct 11, 2019 at 11:04 AM Nicole Vasilevsky notifications@github.com
wrote:

Assigned #885 https://github.com/monarch-initiative/mondo/issues/885 to
@cmungall https://github.com/cmungall.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/monarch-initiative/mondo/issues/885?email_source=notifications&email_token=AAAMMOJJJ37CYOBZGXJGTZTQOC5ZRA5CNFSM4I74XSQKYY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOUFMV5YA#event-2706988768,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAMMOKM2DKVIZH62LOAZELQOC5ZRANCNFSM4I74XSQA
.

authors: cmungall nicolevasilevsky

repo: monarch-initiative/mondo


text:
🛑 Bitlending Monetix is down

In 96fbd7c, Bitlending Monetix (https://api.bitlending.monetix.io/health) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Bitlending Monetix is back up in 540e495.

repo: monetixio/upptime


text:
Solr doc manager should accept multiple hosts

The Solr doc manager only allows a single host to be specified, even though the underlying library supports passing in a list of HA nodes. The doc manager should expose this functionality.
This feature is similar to that referenced in #359, #275 & #456 regarding the same feature request in the Elastic doc manager.

Hey @ghaughian, the Solr library looks like it only supports passing the address of a single node https://github.com/django-haystack/pysolr/blob/v3.5.0/pysolr.py#L281. Can you give an example of passing multiple?

Hi @ShaneHarvey, true the Solr class only accepts a single node address however Solr can run in 'Cloud' mode. i.e. A collection of Solr nodes form a cluster in which data is sharded/replicated throughout the cluster. Clients can subsequently connect to a Solr cluster through an instance of the SolrCloud class which accepts a list of Zookeeper nodes instead of a single Solr node.
We can use SolrCloud to connect to a cluster of Solr nodes managed by a Zookeeper instance/cluster in order to maintain High Availability.
I will be submitting a pull request shortly which addresses this issue/feature request.

Note that the solr-doc-manager is not bundled with mongo-connector anymore. Please open your pull request here: https://github.com/mongodb-labs/solr-doc-manager

authors: ShaneHarvey ghaughian

repo: mongodb-labs/mongo-connector


text:
cant install with php 7.0.8 in Ubuntu 16 platform

I cant install mongodb driver for php 7.0.8 in Unbuntu 16 with pecl install mongodb it return me pecl command not found

This is not a library problem.
Try installing pecl:
sudo apt-get install php-pear php-dev

Duplicate of https://github.com/mongodb/mongo-php-driver/issues/482.
@DBARUNNER: Please do not create duplicate issues on the driver and library projects. Simply use the project that is most relevant to the issue.

authors: DBARUNNER Visualq jmikola

repo: mongodb/mongo-php-library


text:
CLOUDP-68116: add simplified process list output

Proposed changes

Jira ticket: CLOUDP-68116

Closes #[issue number]
Checklist

[] I have signed the MongoDB CLA
[] I have added tests that prove my fix is effective or that my feature works
[] I have added any necessary documentation (if appropriate)
[] I have run make fmt and formatted my code

Further comments
./bin/mongocli atlas processes list --profile dev
ID							REPLICA SET NAME	SHARD NAME	VERSION
atlas-142xa9-shard-00-00.t9zpy.mongodb-dev.net:27017	atlas-142xa9-shard-0			4.2.8
atlas-142xa9-shard-00-01.t9zpy.mongodb-dev.net:27017	atlas-142xa9-shard-0			4.2.8
atlas-142xa9-shard-00-02.t9zpy.mongodb-dev.net:27017	atlas-142xa9-shard-0			4.2.8

love this output, so clean

authors: gssbzn robcarlan-mlab

repo: mongodb/mongocli


text:
chore(NODE-3717): test reorg part a-c

Description
NODE-3717
What is changing?
Moving remaining functional tests starting with a, b, and c, to the appropriate integration folder.
Note: the cursor stream test could arguably be "crud", but since it seemed to focus on our specific stream implementation, I thought "node-specific" was a better place for it. If any reviewers can think of a better place for it, please speak up.
Is there new documentation needed for these changes?
No
What is the motivation for this change?
Better organization
Double check the following

[ ] Ran npm run check:lint script
[ ] Self-review completed using the steps outlined here
[ ] PR title follows the correct format: <type>(NODE-xxxx)<!>: <description>
[ ] Changes are covered by tests
[ ] New TODOs have a related JIRA ticket

Fine with the cursor stream test going into "node-specific" and the misc cursors test refactor is out of scope for a reorganisation task.

authors: dariakp durran

repo: mongodb/node-mongodb-native


text:
Add find_in_batches method

Hello @jnunemaker .
I sometimes want to use Plucky#find_each as like ActiveRecord's find_in_batches and I substitute find_each(opts).each_slice(batch_size) for that.
But I thought that it's useful for also other mongomapper users to add the find_in_batches method to plucky queries.
I would appreciate it if you would review this, thank you.

I'm not involved with mongomapper or plucky anymore. I believe @cheald is still maintaining them.

@jnunemaker
I'm very sorry to disturb, and appreciate you mentioning the maintainer.

Seems this repo is no longer maintained...

authors: jnunemaker ohbarye

repo: mongomapper/plucky


text:
Update sbt-sonatype to 3.10.0

About this PR
📦 Updates org.xerial.sbt:sbt-sonatype from 3.9.12 to 3.10.0
📜 GitHub Release Notes - Release Notes
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.xerial.sbt", artifactId = "sbt-sonatype" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.xerial.sbt", artifactId = "sbt-sonatype" }
}]

labels: sbt-plugin-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #455.

repo: monix/monix-kafka


text:
Update sbt to 1.8.0 in series/4.x

Updates org.scala-sbt:sbt from 1.6.2 to 1.8.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-sbt", artifactId = "sbt" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "org.scala-sbt", artifactId = "sbt" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #1693.

repo: monix/monix


text:
和nginx冲突

问题描述(必要)：win10下面，同时运行proxyee-down和nginx。会导致访问本地服务器返回502，关掉proxyee-down，nginx就可以正常返回内容了 .用apache又没事 - -
版本号(必要) ：2.22
操作系统(必要)：Windows10

没有影响啊应该

authors: monkeyWie ttentau

repo: monkeyWie/proxyee-down


text:
可否加入嗅探链接然后让其他三方工具下载？ 内详。

比如路由器或者NAS有aria2c等下载软件，可以放嗅探链接发送过去？
这样就可以脱机下载了。

可以一试，我不建议，如果效果更好，百度会xx的。


text:
[BUG] When deploying on Azure, error MSB4066: The attribute "Kind" in element  is unrecognized.

Description
When deploying on Azure, WebApp, git deploy (windows machine), the following error shows up:
MSBuild auto-detection: using msbuild version '14.0'
packages\SkiaSharp.2.80.1\build\net462\SkiaSharp.targets(12,109): error MSB4066: The attribute "Kind" in element <NativeReference> is unrecognized.

This is the line.
<NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\osx\native\libSkiaSharp*.dylib" Kind="Dynamic" Visible="false" />

This is strange to happen on Azure?
Should I be setting the ShouldIncludeNativeSkiaSharp property to false?
Last person who changed this file is @mattleibow
Basic Information

Version with issue:  2.80.1
Last known good version:  Never deployed before
IDE:  Visual Studio
Platform Target Frameworks: My framework is 4.7.1. It uses the targets 4.6.2.

I think this is probably related to this issue:
https://developercommunity.visualstudio.com/content/problem/1142283/elements-still-appear-in-the-ide-even-though-they.html
The actual code for this is: https://github.com/mono/SkiaSharp/blob/master/binding/SkiaSharp/nuget/build/net462/SkiaSharp.targets#L11-L13
    <ItemGroup Condition=" '$(ShouldIncludeNativeSkiaSharp)' != 'False' and '$(_AppIsFullMac)' == 'True' ">
        <NativeReference Include="$(MSBuildThisFileDirectory)..\..\runtimes\osx\native\libSkiaSharp*.dylib" Kind="Dynamic" Visible="false" />
    </ItemGroup>

As you can see, there are 2 conditions on that element, the ShouldIncludeNativeSkiaSharp which you don't want to set because you do want to copy the native files, and then _AppIsFullMac which should be false or unset... It is a bit annoying that MSBuild is ignoring these conditions and pulling all the NativeReference elements out. I think it started with a recent-ish version of msbuild.
One thing you can try is setting the UseXamMacFullFramework  to false in your csproj and see if that does something. Maybe also set _AppIsFullMac to False just in case something...
Also is it not possible to use .NET Core instead of .NET Framework? This will solve all the other deployment issues .NET Framework has.

My goal is to go towards .NET Core for sure, but it's not as simple as expected. I am moving slowly my .NET framework dependencies into .NET Standard or something that supports .NET Core and .NET Framework.
So it will have to stay with .NET Framework right now.
    <UseXamMacFullFramework>false</UseXamMacFullFramework>
    <_AppIsFullMac>False</_AppIsFullMac>

It doesn't work.
MSBuild auto-detection: using msbuild version '14.0' from 'D:\Program Files (x86)\MSBuild\14.0\bin\amd64'.
All packages listed in packages.config are already installed.
D:\home\site\repository\Portal\hbti-web-master\packages\SkiaSharp.2.80.1\build\net462\SkiaSharp.targets(12,109): error MSB4066: The attribute "Kind" in element <NativeReference> is unrecognized. [D:\home\site\repository\Portal\hbti-web-master\HBTI.ServiceTech.Common\HBTI.ServiceTech.Common.csproj]
Failed exitCode=1, command="D:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" "D:\home\site\repository\Portal\hbti-web-master\HBTI.ServiceTech.Web2\HBTI.ServiceTech.Web2.csproj" /nologo /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="D:\local\Temp\8d840b5a8294a2a";AutoParameterizationWebConfigConnectionStrings=false;Configuration=Release;UseSharedCompilation=false /p:SolutionDir="D:\home\site\repository\Portal\hbti-web-master\\"

I'm not the most verse in MSBuild here, maybe it should not pick it up.
But Kind doesn't seem to be a valid attribute.
https://docs.microsoft.com/en-us/visualstudio/msbuild/common-msbuild-project-items?view=vs-2019

OK. It worked with the following setting on Azure Configuration
MSBUILD_PATH = %MSBUILD_16_DIR%\msbuild.exe

Since I use Kudu, it was using the MSBuild 14, and it seems like it was not liking the custom attribute.
Maybe a documentation has to be written or a check earlier to warn for this problem when building Skiasharp.
I'll let you handle the bug as you wish now :)

Very interesting... What image are you using?
I think what is happening here is that the older MSBuild did not like attributes and only had sub-elements.
But still, it is more weird that MSBuild is so old, v14 is VS 2015?

I don't use any VM Images. On Azure this is called an App Service (Azure Websites), and I'm doing a Web App Deployment. I picked Windows. I have very little control over this.
I use Kudu deployment. It's the git flow deployment on Azure Web Apps. It's before DevOps existed.
Which is also quite old and not maintained much. By default, it uses MSBuild 14 if not overridden in the Configuration.
https://github.com/projectkudu/kudu
Good luck with the project!

authors: jsgoupil mattleibow

repo: mono/SkiaSharp


text:
4.19

Sorry if this is the wrong place to ask, but has anyone tested with 4.19 yet? : )

I tried it during preview IIRC, and it worked.
Generally, it takes no (or little) update to the plugin to work on the new version. You should just try!

I just tried building the plugin on 4.19.2, unfortunately the automatic build failed : ''Project could not be compiled, try build from source manually''
....
i then also tried to generate new solution files to try and build manually but no luck:
Running E:/Program Files (x86)/Epic Games/UE_4.19/Engine/Binaries/DotNET/UnrealBuildTool.exe  -projectfiles -project="D:/Projects/UnrealEngine/VI_Spout_Kinect/VI_Spout_Kinect.uproject" -game -rocket -progress
Discovering modules, targets and source code for project...
While compiling D:\Projects\UnrealEngine\VI_Spout_Kinect\Intermediate\Build\BuildRules\VI_Spout_KinectModuleRules.dll:
ERROR: d:\Projects\UnrealEngine\VI_Spout_Kinect\Plugins\UE4-OSC-master\OSC\Source\OSC\OSC.Build.cs(3,15) : error CS0101: The namespace 'UnrealBuildTool.Rules' already contains a definition for 'OSC'
ERROR: UnrealBuildTool Exception: Unable to compile source files.
'''''''
How can i get this to work ?
thanks

Hi,
The plugin works in 4.19.
It looks like you have several modules (project, plugins) named "OSC", is that possible?
Possibly in the engine and in the project ?

I just checked in the root folder of the 4.19 engine, no OCS plugin to be found there, i also tried and search for it in the root dir and a bunch of files came up, but not sure if any of those are related to the issue https://ibb.co/gfsUny

authors: lagauche matewfeel monsieurgustav


text:
Close drop down after adding tag.

I'm using tags with single select to allow the user to select or add new option..
When the user enters text and hits enter I invoke @tag with addTag() but I also
want the dropdown to close without having to tab out, is there a close() function
I could use for this? or a prop that does it? (:close-on-select doesn't work for this)
thx for your help :)

I will double check the :close-on-select implementation to make sure it work the same when tagging and simple selecting. :)

I, too, would like to see this functionality. Great component though!

Fixed, should be released today/tomorrow.

@shentao. Many thanks for fixing this!

Awesome, thank you!!

@bovisp @eybarta beta.14 released and should fix this problem. Sorry you had to wait. Please read: https://github.com/monterail/vue-multiselect/blob/2.0/README.md
Breaking change regarding the styles.

authors: bovisp eybarta shentao

repo: monterail/vue-multiselect


text:
Language server needs to show argument names in addition to their types

When attempting to get more information about a particular method, the help text pops up in VSCode but only shows the types of the arguments and doesn't show the names, but then the text below refers to the argument names.  Both are needed.
For example:

In this case, the signature of blit is displayed as: (Int, Bytes, Int, Int) -> Unit
but it should instead be shown as:
blit(
  self : Bytes,
  dst_offset : Int,
  src : Bytes,
  src_offset : Int,
  length : Int
) -> Unit

so that the developer can figure out how to call the method.

It should be able to print parameter names now.
Close as completed. Feel free to reopen it when you run into any problems.

Note that this still seems to be a problem.
In my opinion, the following display for trim is not helpful because I have no idea what the second parameter should be without going to this repo and looking up the source code for the trim function:

authors: bzy-debug gmlewis

repo: moonbitlang/core


text:
[perf][0.25.1] the duration of node version resolve is too long

Reproduction
Using 0.25.1 @moonrepo/cli, npx moon run pkg-a:build

build in 2 seconds and resolve the node version in 6 seconds
Reason

I try to find the reason with the flamegraph and I found the following code.
code link
It looks like the library name proto_node sends a request to get the node manifest, but the request by this third-party library on my machine takes too long and blocking the entire process

So the resolve step is very important as it resolves versions like 18 -> 18.2.0, and verifies that the version is semantic.
However, this is very strange. Here's the code that logs "Resolving a semantic version for 16.18.0": https://github.com/moonrepo/proto/blob/master/crates/node/src/resolve.rs#L86
I believe the actual slowdown is checking for an internet connection (on line 80), because the actual version manifest is loaded from the cache instead of requested from the network (as you can see in your logs).
I'll look into improving the is_offline function: https://github.com/moonrepo/proto/blob/master/crates/core/src/helpers.rs#L54

authors: SoonIter milesj

repo: moonrepo/moon


text:
Fix Git hooks not created with trailing newlines

These files could create spurious diffs if someone were to open them with an editor that automatically fixes new lines, or when running with something to automatically fix missing new lines, e.g. a pre-commit hook[1]
[1] https://github.com/pre-commit/pre-commit-hooks?tab=readme-ov-file#end-of-file-fixer

I figured it was about as much effort to review an issue as it was to review this PR
I'm not a rust dev so it's likely the added code could be more idiomatic

@matthewhughes934 Looks good, just need to run just bump patch and commit it.

@matthewhughes934 Looks good, just need to run just bump patch and commit it.

:+1: done, I've just squashed everything into d798bc4


text:
Bin symlinks omit the major version number

proto install python <version> creates symlinks in bin with the minor version but omitting the major version. e.g.

python.9 -> .proto/tools/python/3.9.17/install/bin/python3.9
python.10 -> .proto/tools/python/3.10.12/install/bin/python3.10
python.11 -> .proto/tools/python/3.11.6/install/bin/python3.11

Proto 0.25.3 on macOS

This shouldn't even include the version number at all...

Has to be fixed on the proto side, will do here: https://github.com/moonrepo/proto/pull/354

authors: milesj rotu

repo: moonrepo/python-plugin


text:
[Proposal] WhereNotNull & SelectNotNull

With C# 8 nullability feature it would be nice to be able to easily filter out null values.
I always use
        <Nullable>enable</Nullable>
        <WarningsAsErrors>nullable</WarningsAsErrors>

For strict nullability warnings. Would be nice if we can have linq extensions that can automatically remove all null values and return a sequence of a non-nullable type.
     public static IEnumerable<T> WhereNotNull<T>(this IEnumerable<T?> enumerable) =>
            enumerable.Where(e => e != null)!;

    IEnumerable<Person?> nullableList = new List<Person?> { new("Foo"), null, new("Bar")};
    IEnumerable<Person> values = nullableList.WhereNotNull();
    Debug.Assert(values.Count() == 2);

I believe that this is a duplicate of #609, where I have presented arguments why Choose is what you want, better, more powerful and more generic. In short, by breaking down the problem another way, you can use Choose directly:
IEnumerable<Person?> nullableList = new List<Person?> { new("Foo"), null, new("Bar")};
IEnumerable<Person> values = nullableList.Choose(Nullable.Deconstruct);
Debug.Assert(values.Count() == 2);

record Person(string Name);

static partial class Nullable
{
    public static (bool HasValue, T Value) Deconstruct<T>(T? nullable) =>
        nullable is not null ? (true, nullable) : default;
}

Notice how the signature of Choose also adapts correctly instead of masquerading through the null-forgiving operator (!). Choose has two type parameters: T and TResult. In the example above, T is Person? and TResult is Person and you don't need any ! to change some T? into T.
I'll close this for now as a duplicate, but open to reconsidering if I've overlooked something.

I believe that this is a duplicate of #609, where I have presented arguments why Choose is what you want, better, more powerful and more generic. In short, by breaking down the problem another way, you can use Choose directly:
IEnumerable<Person?> nullableList = new List<Person?> { new("Foo"), null, new("Bar")};
IEnumerable<Person> values = nullableList.Choose(Nullable.Deconstruct);
Debug.Assert(values.Count() == 2);

record Person(string Name);

static partial class Nullable
{
    public static (bool HasValue, T Value) Deconstruct<T>(T? nullable) =>
        nullable is not null ? (true, nullable) : default;
}

Notice how the signature of Choose also adapts correctly instead of masquerading through the null-forgiving operator (!). Choose has two type parameters: T and TResult. In the example above, T is Person? and TResult is Person and you don't need any ! to change some T? into T.
I'll close this for now as a duplicate, but open to reconsidering if I've overlooked something.

What you think of providing a WhereNotNull extension as a shortcut of using Choose and implementing the Desconstruct method?

@atifaziz What you think of providing a WhereNotNull extension as a shortcut of using Choose and

Why have another way to do the same thing?

implementing the Desconstruct method?

It doesn't belong in MoreLINQ since it generally extends any type T whereas this library should only be extending sequential family of types like IEnumerable<> & IAsyncEnumerable<>.

@atifaziz because it is a very common use case and avoid repeating the same code over and over.
And about the null forgiving, the proposed Desconstruct is masquerading the null too as it returns default that returns null too, but it is not detected by compiler.

@atifaziz because it is a very common use case and avoid repeating the same code over and over.

Right, but MoreLINQ is not a convenience library of small helpers for common code. See the discussion in PR #1001 for some background.

And about the null forgiving, the proposed Desconstruct is masquerading the null too as it returns default that returns null too, but it is not detected by compiler.

True, but if you get a (false, _) then using the second half of the couple is undefined and at the risk of the user.

authors: atifaziz bram209 skarllot

repo: morelinq/MoreLINQ


text:
KafkaClient::setErrorCallback(line 87) is not thread-safe

Hi,
It seems on line 87 https://github.com/morganstanley/modern-cpp-kafka/blob/main/include/kafka/KafkaClient.h, the setErrorCallback is not thread safe. I can image one thread is setting the callback while the internal kafka thread is invoking this callback.

Another question related to this,  is it possible when the internal thread is calling the callback after producer is already self-destructed? Is RAII of Producer thread-safe here?

Q1: Normally, we'll setErrorCallback right after the producer being constructed, thus no chance to conflict with the internal thread (since even there's an error, it would take a while to emit). But you're right, it's not thread safe, and this could be improved.
Q2: Before the producer being destructed, it would wait the internal thread to finish & join. So, in short, it's quite safe then.

authors: YaoDing kenneth-jia

repo: morganstanley/modern-cpp-kafka


text:
Separate input values

I'm looking for a way to display one value in the input field (the value selected from the list of suggestions) whilst attaching a separate value (an id) to the value property of the input element, which would get submitted with the parent form.  Is this possible and/or advisable and if so what's the correct way to acheive it?

The need for id coming from the client may indicate a deeper issue in your application. For example, how will your app behave if user submits the form before JavaScript kicks in? From progressive enhancement point of view, I believe your server should be able to handle free text, not only text that is one of the suggestions. Could you explain the need for the id?
I can see cases when sending an id from the client would be an optimization, on top of the free text implementation. In this case, I'd probably create a hidden input field whose value will be the id, and set this value onSuggestionSelected (and probably clear it on inputProps.onChange).

Thanks @moroshko, your suggestion makes perfect sense.  Will move logic to the server to handle free text input and think about how to optimize on the client down the road.

Could you explain the need for the id?
Here are a few reasons for allowing access to the id (as distinct from the display text):

Other parts of the app are already written expecting an id.
Writing code to go from "John Brown" to 437 is a pain in the butt when you already know the id.
select/comboboxes/autosuggest widgets have worked this way since the beginning of time. react-select works this way. MS Access from the 90's works this way. The html select element in react works this way. From React docs:

Apple
Banana
Cranberry

<select multiple={true} value={'A'}>
Would it be that hard to implement?
By the way, otherwise, I like your component. Thanks.

Could you explain the need for the id?
Easy. We have a list of users. Autosuggest suggestion is a snipet of Avatar, First name, Second name and date of birth. There are two person with the same name: "John Smith". I want to pass into value his name (and his photo in container below), but send to server his id instead of "John Smith 19.10.1948".

After a full day of playing with react-autosuggest, I feel that its primary use case is the ability to enter free form text with some suggestion capability. You can't think of it as an underlying value + display text combination (the select use case). At the end of the day, you can ignore all suggestions and type whatever you want into the input field.
I was able to fake the selection use case by displaying the display text, but when a suggestion is selected the underlying value gets stuffed into the input field. See my repo here. The use case is selecting a ticker by typing in either the ticker or the company name. Ticker is the underlying value and ticker + company name is the displayed text.

authors: Carduelis StokeMasterJack moroshko nareshbhatia nhippenmeyer

repo: moroshko/react-autosuggest


text:
🛑 Bama is down

In f4f2973, Bama (https://bama.design) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Bama is back up in dbbafae after 25 minutes.

repo: mortonpepper/upptime-upptime


text:
"compareFolders.compareContent": true does not appear to have any effect

I am working on a compare set for two different generations of the same app.  So far, it appears that only file differences are listed - by name only.
I have been tweaking the workspace's .vscode/settings.json and it contains the following relevant settings:
{
  "compareFolders.compareContent": true,
  "compareFolders.excludeFilter": [
    "**/.git",
    "**/.yarn",
    "**/.keep",
    "**/node_modules",
    "**/storybook-static",
    ".env",
    ".npmignore",
    "lerna.json",
    "LICENSE",
    "README.md",
    "schema.json",
    "**/yarn.lock",
    "/cloud/*/Pulumi.*.yaml",
    "**.DS_Store",
    "/packages/api/bin",
    "/packages/api/ci_packages",
    "/packages/api/db",
    "/packages/api/features*",
    "/packages/api/public",
    "/packages/api/target",
    "/packages/api/tmp",
    "/packages/api/.knapsack_pro",
    "/packages/ui/locales",
    "/packages/ui/tree*"
  ],
  "compareFolders.respectGitIgnore": true
}

For example, I know for a fact that the packages/ui/src/index.tsx exists in both places but is different.
How can I get you more information or what can I try to make this work?  If this works it would be great!  Thanks for the work so far.
Version: 1.81.1 (Universal)
Commit: 6c3e3dba23e8fadc360aed75ce363ba185c49794
Date: 2023-08-09T22:20:33.924Z (2 wks ago)
Electron: 22.3.18
ElectronBuildId: 22689846
Chromium: 108.0.5359.215
Node.js: 16.17.1
V8: 10.8.168.25-electron.0
OS: Darwin arm64 22.5.0

Glad it worked out for you 😄

authors: moshfeu rosskevin

repo: moshfeu/vscode-compare-folders


text:
feat(types): Add explicit covariance to allow custom types

It seems like this should be fine, since all the types line up visually.
class NullSink {
  event (t: Time, x: any): void {}
  end (t: Time): void {}
  error (t: Time, e: Error): void {}
}

const nullSink: Sink<any> = new NullSink()

It isn't.  Flow considers object properties to be invariant by default (See Property Invariance here. I'm still not sure exactly why prototype properties violate the invariance rule, but they do:
src/split.js:16
 16: const nullSink: Sink<any> = new NullSink()
                                 ^^^^^^^^^^^^^^ NullSink. Covariant property `error` incompatible with invariant use in
 16: const nullSink: Sink<any> = new NullSink()
                     ^^^^^^^^^ object type

This PR adds explicit covariance for the properties of core types, to allow prototype properties satisfying core types, like the above, to type check.

I think there may be a better solution.  Instead of defining types with properties, it's possible to define them with methods.  For example, here is the Sink type as of @most/types 0.9.1, with properties, which fails for the case in the original PR description:
export type Sink<A> = {
  event: (Time, A) => void,
  end: (Time) => void,
  error: (Time, Error) => void,
}

Here's the modified version, which, like the explicit covariant version, works with the example in the PR description:
export type Sink<A> = {
  event (Time, a: A): void,
  end (Time): void,
  error (Time, Error): void,
}

I think the latter matches most folks intuition, and would be much less of a WTF for someone who looks at the type defs.  I'll switch this PR to use that style.

repo: mostjs/core


text:
[libs/movex] Fix Linting Issues Across the Movex Library

Where

/libs/movex/src/lib/ConnectionToMasterResources.ts
libs/movex/src/lib/MovexResourceObservable.spec.ts

What
There are a few linting issues in the codebase that need to be addressed to improve overall code quality. These linting issues are flagged by our linter, and resolving them will help keep the codebase clean and consistent.

Tasks

Run the linter on the codebase (e.g., npx nx lint movex --quiet).
Fix any linting issues that are flagged.
Ensure that the code passes the linter without any errors or warnings after your fixes.
Create a pull request with your changes.

Complexity:
Beginner-Friendly

Hey I want to work on this
can you assign this to me

yes, of course @ManikantaMandala

authors: GabrielCTroia ManikantaMandala

repo: movesthatmatter/movex


text:
Add lazy getDefaultRegistry

Resolve https://github.com/mozilla-services/react-jsonschema-form/issues/574
cc @n1k0

Thanks! :+1:

Released in v0.48.1.

repo: mozilla-services/react-jsonschema-form


text:
Make media player bigger

Not everybody is twenty with eagle-sharp eyes. https://github.com/thasmin/Podax on Android has actually a special tab (aside from "All my podcasts", "Search for new podcast", and "Current queue" ones) with a media player. Its Android appstore page shows it pretty nicely.

Closing as we'll be fixing up the codebase and want to keep the issues here for the new version we're working on.

authors: mcepl tofumatt

repo: mozilla/high-fidelity


text:
Coalesce simple parts of a complex 'or' expression

We implement simple or via alternation:
[?page :page/title ?foo]
[?page :page/meta ?foo]

becomes
(:or
  [:= :datoms123.a :page/title]
  [:= :datoms123.a :page/meta])

We don't currently recognize the simple subparts of a non-simple or, so we generate distinct UNION arms instead.
Implementing this optimization will be a nice performance win, and shouldn't be too difficult.

This is still relevant today.

repo: mozilla/mentat


text:
"fi" ligature is not displayed properly

"fi" ligature is displayed wrong (shifted) with Roboto font in a PDF.
Attach (recommended) or Link to PDF file here:
Copyright prevents me to do so.
Configuration:

Web browser and its version: Chrome 75.0.3770.100
Operating system and its version: Windows 10 x64
PDF.js version: 1.6.264
Is a browser extension: No

What is the expected behavior?

What went wrong?

Attach (recommended) or Link to PDF file here:
Copyright prevents me to do so.

That unfortunately means that the issue will be closed as INCOMPLETE, since it's simply impossible to debug font problems with only a screen-shot.

PDF.js version: 1.6.264

That version was first of all not an official release, and furthermore it's a couple of years old. Please note that only the latest stable/beta releases, as found at https://github.com/mozilla/pdf.js/releases, are officially supported.
Finally, please note that it's quite possible that this issue has already been fixed in later versions of PDF.js, which you can easily test yourself by opening your file with the default viewer. If it works there, you'll need to update to the latest version of PDF.js to fix the issue (which you should probably do anyway, given that your version is outdated).

authors: Gavroche-Jocatop Snuffleupagus


text:
How to listen popstate event or hitory.back?

Attach (recommended) or Link to PDF file here:
https://mozilla.github.io/pdf.js/es5/web/viewer.html
Steps to reproduce the problem:

open any pdf
scroll to the bottom
f12 open develop tool
press toggle device toolbar
5 press alt+<-  or mobile's back botton

What is the expected behavior? (add screenshot)
history back to pre url
What went wrong? (add screenshot)
history back to  the pre position of pdf
disableHistory may be usable,but I want keep history,and history back to the pre url when press alt+<- or mobile's back button
Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension):
https://mozilla.github.io/pdf.js/es5/web/viewer.html

history back to the pre position of pdf

That's the intended behaviour of the default viewer, and it won't be changed.

disableHistory may be usable,

That's the only simple solution to your problem.

but I want keep history,and history back to the pre url when press alt+<- or mobile's back button

That's definitely not something that the default viewer will support, since it would be really confusing if the back button just "jumped" several positions in the history rather than (as intended) moved to the previous entry.

You'll have to implement this yourself, by modifying web/pdf_history.js, in your custom PDF.js viewer: please also see http://mozilla.github.io/pdf.js/getting_started/#introduction (emphasis mine):

The viewer is built on the display layer and is the UI for PDF viewer in Firefox and the other browser extensions within the project. It can be a good starting point for building your own viewer. However, we do ask if you plan to embed the viewer in your own site, that it not just be an unmodified version. Please re-skin it or build upon it.

disableHistory may be usable,

That's the only simple solution to your problem.

@Snuffleupagus
I found a strange thing: disaleHistory is usable in a page ,but when set it in a iframe it seems wrong -- the develop tool'  network will show the url like this:
http://localhost:8213/statics/pdfjs/web/viewer.html?disableHistory=true&file=80.pdf#page=13&id=0
http://localhost:8213/statics/pdfjs/web/viewer.html?disableHistory=true&file=80.pdf#page=12&id=0

@Snuffleupagus
It seems I need to clearHistorySate, some code like this?
self.pdfHistory.clearHistoryState();

authors: Snuffleupagus wideweide


text:
Wrong accented characters visualization

Attach (recommended) or Link to PDF file here:
caratteri.pdf
Configuration:

Chrome 105.0.5195.102
Windows 10 Enterprise 20H2
PDF.js version: 2.16.105
Is a browser extension: No

What is the expected behavior? (add screenshot)

What went wrong? (add screenshot)

Thanks guys