text:
[Snyk] Security upgrade markdown2 from 2.3.10 to 2.4.0

Snyk has created this PR to fix one or more vulnerable packages in the `pip` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

{{cookiecutter.project_slug}}/requirements.txt

⚠ Warning
wagtail 2.10.2 requires django-taggit, which is not installed.
wagtail 2.10.2 requires django-modelcluster, which is not installed.
wagtail 2.10.2 requires django-filter, which is not installed.
wagtail 2.10.2 requires djangorestframework, which is not installed.
wagtail 2.10.2 has requirement Django<3.2,>=2.2, but you have Django 1.11.29.
pytest-sugar 0.9.4 requires pytest, which is not installed.
pytest-logger 0.5.1 requires pytest, which is not installed.
pytest-forked 1.3.0 requires pytest, which is not installed.
pytest-factoryboy 2.0.3 requires pytest, which is not installed.
pytest-cov 2.10.1 requires pytest, which is not installed.
pip-tools 5.5.0 has requirement pip>=20.1, but you have pip 9.0.3.
doc8 0.8.1 requires stevedore, which is not installed.
doc8 0.8.1 requires Pygments, which is not installed.
django-nexmo 2.0.0a1 requires nexmo, which is not installed.
django-model-utils 4.1.1 has requirement Django>=2.0.1, but you have Django 1.11.29.
bpython 0.20.1 requires pygments, which is not installed.
beautifulsoup4 4.8.2 requires soupsieve, which is not installed.

Vulnerabilities that will be fixed
By pinning:

Severity
Priority Score (*)
Issue
Upgrade
Breaking Change
Exploit Maturity

768/1000  Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 7.5
Regular Expression Denial of Service (ReDoS) SNYK-PYTHON-MARKDOWN2-1063233
markdown2:  2.3.10 -> 2.4.0
No
Proof of Concept

(*) Note that the real score may have changed since the PR was raised.
Some vulnerabilities couldn't be fully fixed and so Snyk will still find them when the project is tested again. This may be because the vulnerability existed within more than one direct dependency, but not all of the effected dependencies could be upgraded.
Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

fixed manually

repo: engineervix/cookiecutter-wagtail-vix


text:
can't find BCC/USDT symbol on bittrex

Dear Catalyst Maintainers,
Before I tell you about my issue, let me describe my environment:
Environment

Operating System: Linux [redacted] 4.11.3-1-ARCH #1 SMP PREEMPT Sun May 28 10:40:17 CEST 2017 x86_64 GNU/Linux

Python Version: Python 2.7.13 :: Continuum Analytics, Inc.

Python Bitness: 64

How did you install Catalyst: conda

Python packages: $ pip freeze or $ conda list

alembic                   0.9.6                     <pip>
backports-abc             0.5                       <pip>
backports.functools-lru-cache 1.4                       <pip>
backports.shutil-get-terminal-size 1.0.0                     <pip>
bcolz                     0.12.1                    <pip>
bleach                    2.1.2                     <pip>
boto3                     1.5.6                     <pip>
botocore                  1.8.20                    <pip>
Bottleneck                1.2.1                     <pip>
ca-certificates           2017.08.26           h1d4fec5_0
ccxt                      1.10.477                  <pip>
certifi                   2016.2.28                py27_0
certifi                   2017.11.5                 <pip>
chardet                   3.0.4                     <pip>
click                     6.7                       <pip>
configparser              3.5.0                     <pip>
contextlib2               0.5.5                     <pip>
cycler                    0.10.0                    <pip>
cyordereddict             1.0.0                     <pip>
Cython                    0.27.3                    <pip>
decorator                 4.1.2                     <pip>
docutils                  0.14                      <pip>
empyrical                 0.2.1                     <pip>
enigma-catalyst           0.4.0+41.g869ef8ec           <pip>
entrypoints               0.2.3                     <pip>
enum34                    1.1.6                     <pip>
funcsigs                  1.0.2                     <pip>
functools32               3.2.3.post2               <pip>
futures                   3.2.0                     <pip>
html5lib                  1.0.1                     <pip>
idna                      2.6                       <pip>
intervaltree              2.1.0                     <pip>
ipykernel                 4.7.0                     <pip>
ipython                   5.5.0                     <pip>
ipython-genutils          0.2.0                     <pip>
ipywidgets                7.0.5                     <pip>
Jinja2                    2.10                      <pip>
jmespath                  0.9.3                     <pip>
jsonschema                2.6.0                     <pip>
jupyter                   1.0.0                     <pip>
jupyter-client            5.2.0                     <pip>
jupyter-console           5.2.0                     <pip>
jupyter-core              4.4.0                     <pip>
libgcc-ng                 7.2.0                h7cc24e2_2
libgfortran               3.0.0                         1
Logbook                   1.1.0                     <pip>
lru-dict                  1.1.6                     <pip>
Mako                      1.0.7                     <pip>
MarkupSafe                1.0                       <pip>
matplotlib                2.1.0                     <pip>
mistune                   0.8.3                     <pip>
mkl                       2017.0.3                      0
mock                      2.0.0                     <pip>
multipledispatch          0.4.9                     <pip>
nbconvert                 5.3.1                     <pip>
nbformat                  4.4.0                     <pip>
networkx                  2.0                       <pip>
nose                      1.3.7                     <pip>
nose-ignore-docstring     0.2                       <pip>
nose-parameterized        0.6.0                     <pip>
notebook                  5.2.2                     <pip>
numexpr                   2.6.4                     <pip>
numpy                     1.13.1                   py27_0
numpy                     1.13.3                    <pip>
openssl                   1.0.2l               h077ae2c_5
pandas                    0.19.2                    <pip>
pandas-datareader         0.5.0                     <pip>
pandocfilters             1.4.2                     <pip>
pathlib2                  2.3.0                     <pip>
patsy                     0.4.1                     <pip>
pbr                       3.1.1                     <pip>
pexpect                   4.3.1                     <pip>
pickleshare               0.7.4                     <pip>
pip                       9.0.1                    py27_1
prompt-toolkit            1.0.15                    <pip>
ptyprocess                0.5.2                     <pip>
Pygments                  2.2.0                     <pip>
pyparsing                 2.2.0                     <pip>
python                    2.7.13                        0
python-dateutil           2.6.1                     <pip>
python-editor             1.0.3                     <pip>
pytz                      2017.3                    <pip>
pyzmq                     16.0.3                    <pip>
qtconsole                 4.3.1                     <pip>
readline                  6.2                           2
requests                  2.18.4                    <pip>
requests-file             1.4.2                     <pip>
requests-ftp              0.3.1                     <pip>
s3transfer                0.1.12                    <pip>
scandir                   1.6                       <pip>
scipy                     1.0.0                     <pip>
scipy                     0.19.1              np113py27_0
setuptools                38.2.5                    <pip>
setuptools                36.4.0                   py27_1
simplegeneric             0.8.1                     <pip>
singledispatch            3.4.0.3                   <pip>
six                       1.11.0                    <pip>
sortedcontainers          1.5.9                     <pip>
SQLAlchemy                1.1.15                    <pip>
sqlite                    3.13.0                        0
statsmodels               0.8.0                     <pip>
subprocess32              3.2.7                     <pip>
tables                    3.4.2                     <pip>
terminado                 0.8.1                     <pip>
testpath                  0.3.1                     <pip>
tk                        8.5.18                        0
toolz                     0.9.0                     <pip>
tornado                   4.5.2                     <pip>
traitlets                 4.3.2                     <pip>
urllib3                   1.22                      <pip>
wcwidth                   0.1.7                     <pip>
webencodings              0.5.1                     <pip>
wheel                     0.29.0                   py27_0
widgetsnbextension        3.0.8                     <pip>
zlib                      1.2.11               ha838bed_2

Now that you know a little about me, let me tell you about the issue I am
having:
Description of Issue

What did you expect to happen?
When running an algorithm on bittrex live, it should be found no matter what's the symbol naming convention is used by the exchange.

What happened instead?
The historical data is not found as it's trying to use the wrong symbol name. It throws this error:

$ python project/broken.py                                                                                *[master]
[2017-12-26 15:04:14.889864] INFO: run_algo: running algo in paper-trading mode
[2017-12-26 15:04:15.295666] WARNING: Loader: Refusing to download new treasury data because a download succeeded at 2017-12-26 14:27:20.799999+00:00.
[2017-12-26 15:04:15.298364] INFO: exchange_algorithm: initialized trading algorithm in live mode
[2017-12-26 15:04:15.393710] INFO: exchange_algorithm: got totals from exchanges, cash: 100.0 positions: 0.0
Traceback (most recent call last):
  File "project/broken.py", line 28, in <module>
    live=True)
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/utils/run_algo.py", line 573, in run_algorithm
    stats_output=stats_output
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/utils/run_algo.py", line 356, in _run
    overwrite_sim_params=False,
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/algorithm.py", line 724, in run
    for perf in self.get_generator():
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/gens/tradesimulation.py", line 224, in transform
    for capital_change_packet in every_bar(dt):
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/gens/tradesimulation.py", line 137, in every_bar
    handle_data(algo, current_data, dt_to_use)
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/utils/events.py", line 216, in handle_data
    dt,
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/utils/events.py", line 235, in handle_data
    self.callback(context, data)
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/exchange/exchange_algorithm.py", line 666, in handle_data
    self._handle_data(self, data)
  File "project/broken.py", line 10, in handle_data
    data.history(context.asset, ['close'], bar_count=100, frequency='5m')
  File "catalyst/_protocol.pyx", line 120, in catalyst._protocol.check_parameters.__call__.assert_keywords_and_call
  File "catalyst/_protocol.pyx", line 679, in catalyst._protocol.BarData.history
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/exchange/exchange_data_portal.py", line 114, in get_history_window
    ffill)
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/exchange/exchange_data_portal.py", line 73, in _get_history_window
    ffill)
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/exchange/exchange_data_portal.py", line 248, in get_exchange_history_window
    False)
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/exchange/exchange.py", line 511, in get_history_window
    end_dt=end_dt if not is_current else None,
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/exchange/ccxt/ccxt_exchange.py", line 386, in get_candles
    params={}
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/ccxt/bittrex.py", line 384, in fetch_ohlcv
    market = self.market(symbol)
  File "/home/anaconda3/envs/catalyst/lib/python2.7/site-packages/ccxt/base/exchange.py", line 1010, in market
    raise ExchangeError(self.id + ' does not have market symbol ' + str(symbol))
ccxt.base.errors.ExchangeError: bittrex does not have market symbol BCC/USDT

To reproduce the error, run this with python broken.py:
from catalyst.api import symbol
from catalyst.utils.run_algo import run_algorithm

def initialize(context):
    context.asset = symbol('bcc_usdt')

def handle_data(context, data):
    data.history(context.asset, ['close'], bar_count=100, frequency='5m')

def analyze(context=None, results=None):
    pass

if __name__ == '__main__':
    run_algorithm(
        capital_base=100,
        initialize=initialize,
        handle_data=handle_data,
        analyze=analyze,
        exchange_name='bittrex',
        algo_namespace="bittrex_is_broken",
        base_currency='usdt',
        data_frequency='minute',
        simulate_orders=True,
        live=True)

The issue only happens with bitcoin cash/tether pair. When testing other symbols, issue #119 is reproduced.

Try "bcc_usd" pair instead of "bcc_usdt".

@bl17zar it gives another error:
Error traceback: /home/caio/anaconda3/envs/catalyst/lib/python2.7/site-packages/catalyst/exchange/exchange.py (line 281)
SymbolNotFoundOnExchange:  Symbol BCC_USD not found on exchange Bittrex. Choose from: [u'1st_btc', u'1st_eth', u'2give_btc', u'aby_btc', u'ada_btc', u'ada_eth', u'adt_btc', u'adt_eth', u'adx_btc', u'adx_eth', u'aeon_btc', u'agrs_btc', u'amp_btc', u'ant_btc', u'ant_eth', u'apx_btc', u'ardr_btc', u'ark_btc', u'aur_btc', u'bat_btc', u'bat_eth', u'bay_btc', u'bcc_btc', u'bcc_eth', u'bcc_usdt', u'bcy_btc', u'bitb_btc', u'blitz_btc', u'blk_btc', u'block_btc', u'bnt_btc', u'bnt_eth', u'brk_btc', u'brx_btc', u'bsd_btc', u'btc_usdt', u'btcd_btc', u'btg_btc', u'btg_eth', u'btg_usdt', u'burst_btc', u'byc_btc', u'cann_btc', u'cfi_btc', u'cfi_eth', u'clam_btc', u'cloak_btc', u'club_btc', u'coval_btc', u'cpc_btc', u'crb_btc', u'crb_eth', u'crw_btc', u'cure_btc', u'cvc_btc', u'cvc_eth', u'dash_btc', u'dash_eth', u'dash_usdt', u'dcr_btc', u'dct_btc', u'dgb_btc', u'dgb_eth', u'dgd_btc', u'dgd_eth', u'dmd_btc', u'dnt_btc', u'dnt_eth', u'doge_btc', u'dope_btc', u'dtb_btc', u'dyn_btc', u'ebst_btc', u'edg_btc', u'efl_btc', u'egc_btc', u'emc2_btc', u'emc_btc', u'eng_btc', u'eng_eth', u'enrg_btc', u'erc_btc', u'etc_btc', u'etc_eth', u'etc_usdt', u'eth_btc', u'eth_usdt', u'excl_btc', u'exp_btc', u'fair_btc', u'fct_btc', u'fct_eth', u'fldc_btc', u'flo_btc', u'ftc_btc', u'fun_btc', u'fun_eth', u'gam_btc', u'game_btc', u'gbg_btc', u'gbyte_btc', u'gcr_btc', u'geo_btc', u'gld_btc', u'gno_btc', u'gno_eth', u'gnt_btc', u'gnt_eth', u'golos_btc', u'grc_btc', u'grs_btc', u'gup_btc', u'gup_eth', u'hmq_btc', u'hmq_eth', u'incnt_btc', u'infx_btc', u'ioc_btc', u'ion_btc', u'iop_btc', u'kmd_btc', u'kore_btc', u'lbc_btc', u'lgd_btc', u'lgd_eth', u'lmc_btc', u'lsk_btc', u'ltc_btc', u'ltc_eth', u'ltc_usdt', u'lun_btc', u'lun_eth', u'maid_btc', u'mana_btc', u'mana_eth', u'mco_btc', u'mco_eth', u'meme_btc', u'mer_btc', u'mln_btc', u'mona_btc', u'mtl_btc', u'mtl_eth', u'mue_btc', u'music_btc', u'myst_btc', u'myst_eth', u'nav_btc', u'nbt_btc', u'neo_btc', u'neo_eth', u'neo_usdt', u'neos_btc', u'nlg_btc', u'nmr_btc', u'nmr_eth', u'nxc_btc', u'nxs_btc', u'nxt_btc', u'ok_btc', u'omg_btc', u'omg_eth', u'omg_usdt', u'omni_btc', u'part_btc', u'pay_btc', u'pay_eth', u'pdc_btc', u'pink_btc', u'pivx_btc', u'pkb_btc', u'pot_btc', u'powr_btc', u'powr_eth', u'ppc_btc', u'ptc_btc', u'ptoy_btc', u'ptoy_eth', u'qrl_btc', u'qrl_eth', u'qtum_btc', u'qtum_eth', u'qwark_btc', u'rads_btc', u'rby_btc', u'rcn_btc', u'rcn_eth', u'rdd_btc', u'rep_btc', u'rep_eth', u'rise_btc', u'rlc_btc', u'rlc_eth', u'salt_btc', u'salt_eth', u'sbd_btc', u'sc_btc', u'sc_eth', u'seq_btc', u'shift_btc', u'sib_btc', u'slr_btc', u'sls_btc', u'snrg_btc', u'snt_btc', u'snt_eth', u'sphr_btc', u'spr_btc', u'start_btc', u'steem_btc', u'storj_btc', u'storj_eth', u'strat_btc', u'strat_eth', u'swift_btc', u'swt_btc', u'synx_btc', u'sys_btc', u'thc_btc', u'tix_btc', u'tix_eth', u'tks_btc', u'trig_btc', u'trst_btc', u'trst_eth', u'trust_btc', u'tx_btc', u'ubq_btc', u'unb_btc', u'via_btc', u'vib_btc', u'vib_eth', u'vox_btc', u'vrc_btc', u'vrm_btc', u'vtc_btc', u'vtr_btc', u'waves_btc', u'waves_eth', u'wings_btc', u'wings_eth', u'xcp_btc', u'xdn_btc', u'xel_btc', u'xem_btc', u'xem_eth', u'xlm_btc', u'xlm_eth', u'xmg_btc', u'xmr_btc', u'xmr_eth', u'xmr_usdt', u'xmy_btc', u'xrp_btc', u'xrp_eth', u'xrp_usdt', u'xst_btc', u'xvc_btc', u'xvg_btc', u'xwc_btc', u'xzc_btc', u'zcl_btc', u'zec_btc', u'zec_eth', u'zec_usdt', u'zen_btc']

looks like my only choice is to use the bcc_usdt pair as it's what's listed on the available symbols list

Yes, looks like a bug to me. Sorry, have nothing to advice anymore.

Sometimes, it does not find something because the data is not available in
our repository. For example, we don’t have Bittrex minute data yet. We’ve
improved this error message in the develop branch which we will release
soon.
On Tue, Dec 26, 2017 at 8:50 AM bl17zar notifications@github.com wrote:

Yes, looks like a bug to me. Sorry, have nothing to advice anymore.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/enigmampc/catalyst/issues/120#issuecomment-353988779,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABZ-QtrS5pgzVzLDbJk7bWjWV1MFGOyzks5tESPJgaJpZM4RM0zv
.

@fredfortier but in this case I'm running the algorithm live. shouldn't it fetch the 5min bars from bittrex API?

Yes, in live mode it should. I will take a closer look now.
On Tue, Dec 26, 2017 at 11:11 AM Caio Oliveira notifications@github.com
wrote:

@fredfortier https://github.com/fredfortier but in this case I'm
running the algorithm live. shouldn't it fetch the 5min bars from bittrex
API?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/enigmampc/catalyst/issues/120#issuecomment-354002486,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABZ-QpXZHbqcJW56hFyZv4BDT5cNZ_K3ks5tEUT4gaJpZM4RM0zv
.

Hi!
Here's a list of symbols supported for Bittrex in CCXT:
mbp:ccxt igorkroitor$ python examples/py/symbols.py bittrex

id              symbol          base            quote
BTC-1ST         1ST/BTC         1ST             BTC
ETH-1ST         1ST/ETH         1ST             ETH
BTC-2GIVE       2GIVE/BTC       2GIVE           BTC
BTC-ABY         ABY/BTC         ABY             BTC
BTC-ADA         ADA/BTC         ADA             BTC
ETH-ADA         ADA/ETH         ADA             ETH
BTC-ADT         ADT/BTC         ADT             BTC
ETH-ADT         ADT/ETH         ADT             ETH
BTC-ADX         ADX/BTC         ADX             BTC
ETH-ADX         ADX/ETH         ADX             ETH
BTC-AEON        AEON/BTC        AEON            BTC
BTC-AGRS        AGRS/BTC        AGRS            BTC
BTC-AMP         AMP/BTC         AMP             BTC
BTC-ANT         ANT/BTC         ANT             BTC
ETH-ANT         ANT/ETH         ANT             ETH
BTC-APX         APX/BTC         APX             BTC
BTC-ARDR        ARDR/BTC        ARDR            BTC
BTC-ARK         ARK/BTC         ARK             BTC
BTC-AUR         AUR/BTC         AUR             BTC
BTC-BAT         BAT/BTC         BAT             BTC
ETH-BAT         BAT/ETH         BAT             ETH
BTC-BAY         BAY/BTC         BAY             BTC
BTC-BCC         BCH/BTC         BCH             BTC
ETH-BCC         BCH/ETH         BCH             ETH
USDT-BCC        BCH/USDT        BCH             USDT
BTC-BCY         BCY/BTC         BCY             BTC
BTC-BITB        BITB/BTC        BITB            BTC
BTC-BLITZ       BLITZ/BTC       BLITZ           BTC
BTC-BLK         BLK/BTC         BLK             BTC
BTC-BLOCK       BLOCK/BTC       BLOCK           BTC
BTC-BNT         BNT/BTC         BNT             BTC
ETH-BNT         BNT/ETH         BNT             ETH
BTC-BRK         BRK/BTC         BRK             BTC
BTC-BRX         BRX/BTC         BRX             BTC
BTC-BSD         BSD/BTC         BSD             BTC
USDT-BTC        BTC/USDT        BTC             USDT
BTC-BTCD        BTCD/BTC        BTCD            BTC
BTC-BTG         BTG/BTC         BTG             BTC
ETH-BTG         BTG/ETH         BTG             ETH
USDT-BTG        BTG/USDT        BTG             USDT
BTC-BURST       BURST/BTC       BURST           BTC
BTC-BYC         BYC/BTC         BYC             BTC
BTC-CANN        CANN/BTC        CANN            BTC
BTC-CFI         CFI/BTC         CFI             BTC
ETH-CFI         CFI/ETH         CFI             ETH
BTC-CLAM        CLAM/BTC        CLAM            BTC
BTC-CLOAK       CLOAK/BTC       CLOAK           BTC
BTC-CLUB        CLUB/BTC        CLUB            BTC
BTC-COVAL       COVAL/BTC       COVAL           BTC
BTC-CPC         CPC/BTC         CPC             BTC
BTC-CRB         CRB/BTC         CRB             BTC
ETH-CRB         CRB/ETH         CRB             ETH
BTC-CRW         CRW/BTC         CRW             BTC
BTC-CURE        CURE/BTC        CURE            BTC
BTC-CVC         CVC/BTC         CVC             BTC
ETH-CVC         CVC/ETH         CVC             ETH
BTC-DASH        DASH/BTC        DASH            BTC
ETH-DASH        DASH/ETH        DASH            ETH
USDT-DASH       DASH/USDT       DASH            USDT
BTC-DCR         DCR/BTC         DCR             BTC
BTC-DCT         DCT/BTC         DCT             BTC
BTC-DGB         DGB/BTC         DGB             BTC
ETH-DGB         DGB/ETH         DGB             ETH
BTC-DGD         DGD/BTC         DGD             BTC
ETH-DGD         DGD/ETH         DGD             ETH
BTC-DMD         DMD/BTC         DMD             BTC
BTC-DNT         DNT/BTC         DNT             BTC
ETH-DNT         DNT/ETH         DNT             ETH
BTC-DOGE        DOGE/BTC        DOGE            BTC
BTC-DOPE        DOPE/BTC        DOPE            BTC
BTC-DTB         DTB/BTC         DTB             BTC
BTC-DYN         DYN/BTC         DYN             BTC
BTC-EBST        EBST/BTC        EBST            BTC
BTC-EDG         EDG/BTC         EDG             BTC
BTC-EFL         EFL/BTC         EFL             BTC
BTC-EGC         EGC/BTC         EGC             BTC
BTC-EMC         EMC/BTC         EMC             BTC
BTC-EMC2        EMC2/BTC        EMC2            BTC
BTC-ENG         ENG/BTC         ENG             BTC
ETH-ENG         ENG/ETH         ENG             ETH
BTC-ENRG        ENRG/BTC        ENRG            BTC
BTC-ERC         ERC/BTC         ERC             BTC
BTC-ETC         ETC/BTC         ETC             BTC
ETH-ETC         ETC/ETH         ETC             ETH
USDT-ETC        ETC/USDT        ETC             USDT
BTC-ETH         ETH/BTC         ETH             BTC
USDT-ETH        ETH/USDT        ETH             USDT
BTC-EXCL        EXCL/BTC        EXCL            BTC
BTC-EXP         EXP/BTC         EXP             BTC
BTC-FAIR        FAIR/BTC        FAIR            BTC
BTC-FCT         FCT/BTC         FCT             BTC
ETH-FCT         FCT/ETH         FCT             ETH
BTC-FLDC        FLDC/BTC        FLDC            BTC
BTC-FLO         FLO/BTC         FLO             BTC
BTC-FTC         FTC/BTC         FTC             BTC
BTC-FUN         FUN/BTC         FUN             BTC
ETH-FUN         FUN/ETH         FUN             ETH
BTC-GAM         GAM/BTC         GAM             BTC
BTC-GAME        GAME/BTC        GAME            BTC
BTC-GBG         GBG/BTC         GBG             BTC
BTC-GBYTE       GBYTE/BTC       GBYTE           BTC
BTC-GCR         GCR/BTC         GCR             BTC
BTC-GEO         GEO/BTC         GEO             BTC
BTC-GLD         GLD/BTC         GLD             BTC
BTC-GNO         GNO/BTC         GNO             BTC
ETH-GNO         GNO/ETH         GNO             ETH
BTC-GNT         GNT/BTC         GNT             BTC
ETH-GNT         GNT/ETH         GNT             ETH
BTC-GOLOS       GOLOS/BTC       GOLOS           BTC
BTC-GRC         GRC/BTC         GRC             BTC
BTC-GRS         GRS/BTC         GRS             BTC
BTC-GUP         GUP/BTC         GUP             BTC
ETH-GUP         GUP/ETH         GUP             ETH
BTC-HMQ         HMQ/BTC         HMQ             BTC
ETH-HMQ         HMQ/ETH         HMQ             ETH
BTC-INCNT       INCNT/BTC       INCNT           BTC
BTC-INFX        INFX/BTC        INFX            BTC
BTC-IOC         IOC/BTC         IOC             BTC
BTC-ION         ION/BTC         ION             BTC
BTC-IOP         IOP/BTC         IOP             BTC
BTC-KMD         KMD/BTC         KMD             BTC
BTC-KORE        KORE/BTC        KORE            BTC
BTC-LBC         LBC/BTC         LBC             BTC
BTC-LGD         LGD/BTC         LGD             BTC
ETH-LGD         LGD/ETH         LGD             ETH
BTC-LMC         LMC/BTC         LMC             BTC
BTC-LSK         LSK/BTC         LSK             BTC
BTC-LTC         LTC/BTC         LTC             BTC
ETH-LTC         LTC/ETH         LTC             ETH
USDT-LTC        LTC/USDT        LTC             USDT
BTC-LUN         LUN/BTC         LUN             BTC
ETH-LUN         LUN/ETH         LUN             ETH
BTC-MAID        MAID/BTC        MAID            BTC
BTC-MANA        MANA/BTC        MANA            BTC
ETH-MANA        MANA/ETH        MANA            ETH
BTC-MCO         MCO/BTC         MCO             BTC
ETH-MCO         MCO/ETH         MCO             ETH
BTC-MEME        MEME/BTC        MEME            BTC
BTC-MER         MER/BTC         MER             BTC
BTC-MLN         MLN/BTC         MLN             BTC
BTC-MONA        MONA/BTC        MONA            BTC
BTC-MTL         MTL/BTC         MTL             BTC
ETH-MTL         MTL/ETH         MTL             ETH
BTC-MUE         MUE/BTC         MUE             BTC
BTC-MUSIC       MUSIC/BTC       MUSIC           BTC
BTC-MYST        MYST/BTC        MYST            BTC
ETH-MYST        MYST/ETH        MYST            ETH
BTC-NAV         NAV/BTC         NAV             BTC
BTC-NBT         NBT/BTC         NBT             BTC
BTC-NEO         NEO/BTC         NEO             BTC
ETH-NEO         NEO/ETH         NEO             ETH
USDT-NEO        NEO/USDT        NEO             USDT
BTC-NEOS        NEOS/BTC        NEOS            BTC
BTC-NLG         NLG/BTC         NLG             BTC
BTC-NMR         NMR/BTC         NMR             BTC
ETH-NMR         NMR/ETH         NMR             ETH
BTC-NXC         NXC/BTC         NXC             BTC
BTC-NXS         NXS/BTC         NXS             BTC
BTC-NXT         NXT/BTC         NXT             BTC
BTC-OK          OK/BTC          OK              BTC
BTC-OMG         OMG/BTC         OMG             BTC
ETH-OMG         OMG/ETH         OMG             ETH
USDT-OMG        OMG/USDT        OMG             USDT
BTC-OMNI        OMNI/BTC        OMNI            BTC
BTC-PART        PART/BTC        PART            BTC
BTC-PAY         PAY/BTC         PAY             BTC
ETH-PAY         PAY/ETH         PAY             ETH
BTC-PDC         PDC/BTC         PDC             BTC
BTC-PINK        PINK/BTC        PINK            BTC
BTC-PIVX        PIVX/BTC        PIVX            BTC
BTC-PKB         PKB/BTC         PKB             BTC
BTC-POT         POT/BTC         POT             BTC
BTC-POWR        POWR/BTC        POWR            BTC
ETH-POWR        POWR/ETH        POWR            ETH
BTC-PPC         PPC/BTC         PPC             BTC
BTC-PTC         PTC/BTC         PTC             BTC
BTC-PTOY        PTOY/BTC        PTOY            BTC
ETH-PTOY        PTOY/ETH        PTOY            ETH
BTC-QRL         QRL/BTC         QRL             BTC
ETH-QRL         QRL/ETH         QRL             ETH
BTC-QTUM        QTUM/BTC        QTUM            BTC
ETH-QTUM        QTUM/ETH        QTUM            ETH
BTC-QWARK       QWARK/BTC       QWARK           BTC
BTC-RADS        RADS/BTC        RADS            BTC
BTC-RBY         RBY/BTC         RBY             BTC
BTC-RCN         RCN/BTC         RCN             BTC
ETH-RCN         RCN/ETH         RCN             ETH
BTC-RDD         RDD/BTC         RDD             BTC
BTC-REP         REP/BTC         REP             BTC
ETH-REP         REP/ETH         REP             ETH
BTC-RISE        RISE/BTC        RISE            BTC
BTC-RLC         RLC/BTC         RLC             BTC
ETH-RLC         RLC/ETH         RLC             ETH
BTC-SALT        SALT/BTC        SALT            BTC
ETH-SALT        SALT/ETH        SALT            ETH
BTC-SBD         SBD/BTC         SBD             BTC
BTC-SC          SC/BTC          SC              BTC
ETH-SC          SC/ETH          SC              ETH
BTC-SEQ         SEQ/BTC         SEQ             BTC
BTC-SHIFT       SHIFT/BTC       SHIFT           BTC
BTC-SIB         SIB/BTC         SIB             BTC
BTC-SLR         SLR/BTC         SLR             BTC
BTC-SLS         SLS/BTC         SLS             BTC
BTC-SNRG        SNRG/BTC        SNRG            BTC
BTC-SNT         SNT/BTC         SNT             BTC
ETH-SNT         SNT/ETH         SNT             ETH
BTC-SPHR        SPHR/BTC        SPHR            BTC
BTC-SPR         SPR/BTC         SPR             BTC
BTC-START       START/BTC       START           BTC
BTC-STEEM       STEEM/BTC       STEEM           BTC
BTC-STORJ       STORJ/BTC       STORJ           BTC
ETH-STORJ       STORJ/ETH       STORJ           ETH
BTC-STRAT       STRAT/BTC       STRAT           BTC
ETH-STRAT       STRAT/ETH       STRAT           ETH
BTC-SWIFT       SWIFT/BTC       SWIFT           BTC
BTC-SWT         SWT/BTC         SWT             BTC
BTC-SYNX        SYNX/BTC        SYNX            BTC
BTC-SYS         SYS/BTC         SYS             BTC
BTC-THC         THC/BTC         THC             BTC
BTC-TIX         TIX/BTC         TIX             BTC
ETH-TIX         TIX/ETH         TIX             ETH
BTC-TKS         TKS/BTC         TKS             BTC
BTC-TRIG        TRIG/BTC        TRIG            BTC
BTC-TRST        TRST/BTC        TRST            BTC
ETH-TRST        TRST/ETH        TRST            ETH
BTC-TRUST       TRUST/BTC       TRUST           BTC
BTC-TX          TX/BTC          TX              BTC
BTC-UBQ         UBQ/BTC         UBQ             BTC
BTC-UNB         UNB/BTC         UNB             BTC
BTC-VIA         VIA/BTC         VIA             BTC
BTC-VIB         VIB/BTC         VIB             BTC
ETH-VIB         VIB/ETH         VIB             ETH
BTC-VOX         VOX/BTC         VOX             BTC
BTC-VRC         VRC/BTC         VRC             BTC
BTC-VRM         VRM/BTC         VRM             BTC
BTC-VTC         VTC/BTC         VTC             BTC
BTC-VTR         VTR/BTC         VTR             BTC
BTC-WAVES       WAVES/BTC       WAVES           BTC
ETH-WAVES       WAVES/ETH       WAVES           ETH
BTC-WINGS       WINGS/BTC       WINGS           BTC
ETH-WINGS       WINGS/ETH       WINGS           ETH
BTC-XCP         XCP/BTC         XCP             BTC
BTC-XDN         XDN/BTC         XDN             BTC
BTC-XEL         XEL/BTC         XEL             BTC
BTC-XEM         XEM/BTC         XEM             BTC
ETH-XEM         XEM/ETH         XEM             ETH
BTC-XLM         XLM/BTC         XLM             BTC
ETH-XLM         XLM/ETH         XLM             ETH
BTC-XMG         XMG/BTC         XMG             BTC
BTC-XMR         XMR/BTC         XMR             BTC
ETH-XMR         XMR/ETH         XMR             ETH
USDT-XMR        XMR/USDT        XMR             USDT
BTC-XMY         XMY/BTC         XMY             BTC
BTC-XRP         XRP/BTC         XRP             BTC
ETH-XRP         XRP/ETH         XRP             ETH
USDT-XRP        XRP/USDT        XRP             USDT
BTC-XST         XST/BTC         XST             BTC
BTC-XVC         XVC/BTC         XVC             BTC
BTC-XVG         XVG/BTC         XVG             BTC
BTC-XWC         XWC/BTC         XWC             BTC
BTC-XZC         XZC/BTC         XZC             BTC
BTC-ZCL         ZCL/BTC         ZCL             BTC
BTC-ZEC         ZEC/BTC         ZEC             BTC
ETH-ZEC         ZEC/ETH         ZEC             ETH
USDT-ZEC        ZEC/USDT        ZEC             USDT
BTC-ZEN         ZEN/BTC         ZEN             BTC
mbp:ccxt igorkroitor$

The list is generated by running this script: https://github.com/ccxt/ccxt/blob/master/examples/py/symbols.py
In CCXT the BCC is substituted for a more common BCH (which is also the coinmarketcap "standard" for Bitcoin Cash).
If you don't want CCXT to do that substitution, you can override the default exchange.commonCurrencyCode(currency) method. Bittrex uses the inherited implementation from the ccxt.Exchange base class:
    def common_currency_code(self, currency):
        if not self.substituteCommonCurrencyCodes:
            return currency
        if currency == 'XBT':
            return 'BTC'
        if currency == 'BCC':
            return 'BCH'
        if currency == 'DRK':
            return 'DASH'
        return currency

↑ These substitutions are common for most of exchanges. The above logic is described here: https://github.com/ccxt/ccxt/wiki/Manual#naming-consistency
Hope it helps!

Thanks @kroitor ! I was just about to check on your side noticed your answer. We'll include the same substitution in Catalyst ASAP. Currently, requested bch_usdt fails the catalyst safeguard but we are currently working on better integrating our pricing data repository with CCXT.

I'm improving the structure of Catalyst symbol.json to be better integrated with CCXT. Basically, we'll create a config.json file for each exchange on the server based on the CCXT markets and availability of historical data in our repository, we'll update it periodically. Each Catalyst client will download and de-serialize this file only instead having to download symbols.json then merge with the CCXT markets. This simplifies the code and helps with performance by minimizing "markets" queries to each exchange.

source: gharchive/issue

authors: bl17zar caioaao fredfortier kroitor

repo: enigmampc/catalyst

license_type: permissive

license_source: bigquery


text:
New projectile spawning glyphs

Adds three new projectile glyphs: Pyromancer's Ploy, Dragon's Ploy, and Demolitionist's Ploy. They all currently use the same formula for the cost as the Ballista's Ploy, but this may not be wanted.

I've also added the Ploy of Creation, a block placement trick, as I wished to make changes that would affect both it and the projectile tricks, and so making a separate PR for the Ploy of Creation would have been annoying.

Single-use spell scrolls cannot be read from anymore, and will not have their spell displayed in the inventory tool-tip. The only way to execute it is to consume it.

source: gharchive/pull-request

repo: enjarai/trickster

license: MIT

license_source: github-api


text:
Constraint not re-validated when dependent field changes

Describe the bug
It appears that a constraint on a field is only validated when that field is updated even if the constraint expression also depends on the value of another field.  If the other field changes, the constraint on the first field is not re-validated.
To Reproduce
Given a form like this:

type
name
label::en
appearance
constraint

begin_group
account_info
Account Info
field-list

string
acct_nbr
Account Number

. = ${confirm}

string
confirm
Confirm Account Number

end_group

Enter 123 in the "Account Number"
See the "Value not allowed" error for the field (because the constraint is violated)
Enter 123 in the "Confirm Account Number"
See that the "Value not allowed" error is still displayed for the "Account Number"

Expected behavior
I would expect the constraint for acct_nbr to be re-validated when confirm changes since the xPath expression for the constraint depends on the value from confirm.  That being said, I do not really see anything mentioned in the ODK Spec or the xPath Spec that indicates if that is the proper behavior or not (maybe I am missing something?)....
It is worth noting that when validation is triggered for the whole page (e.g. like when advancing to the next page) then the constraint is validated properly and the error is no longer displayed.
Browser and OS (please complete the following information):

OS: Linux Mint 20.3
Browser: Chromium 102.0.5005.61
enketo-core: 5.18.1 (but can also re-create the behavior on https://getodk.org/xlsform/)

when validation is triggered for the whole page (e.g. like when advancing to the next page)

And also when you submit, right? It lets you?
I'm not surprised by this. I think it has to do with how relationships between expressions and the nodes in them are determined (there's no unified dependency graph). @eyelidlessness and I are poking around in this area but don't have a clear plan yet.
In the mean time, I believe putting the constraint on confirm would usually give the expected behavior, right?

And also when you submit, right? It lets you?

Correct. I can submit the form without issue even if the error message is being improperly displayed.

putting the constraint on confirm would usually give the expected behavior, right?

Yes, this is true. Not ideal, since the user could go back and change the value of acct_nbr and it would not cause any constraint to fail (right away).  But, it would fail when trying to go to the next page or submit the form, which is seems sufficient.
Of course, my actual use case where I am seeing this issue is not so simple (seems like it never is... :laughing: ).  One of our custom widgets will auto-populate other fields on the form based on the value selected for the widget's field. But that population happens async and a constraint on the widget field would get calculated as soon as its value is set and will not be re-validated when the other fields are set (even though the constraint depends on the values in the other fields).  I think I will be able to work around this, though by just having the widget trigger a re-validation of the current page once it is finished loading the fields....

authors: jkuester lognaturel

repo: enketo/enketo-core


text:
Move generate_coverage.py as function to vptstools

Cf. #17 @stijnvanhoey, you probably have already started with this?
Note that the generate_coverage.py might no longer be needed if we use AWS Inventory.

Indeed, this will be replaced by the inventory based code. Will close this once the operational code of https://github.com/enram/vptstools/pulls is properly checked.

Fixed by https://github.com/enram/vptstools/pull/45

authors: peterdesmet stijnvanhoey

repo: enram/vptstools


text:
Consider stopping using transfer in ETHRegistrarController

Due to the EIP1884 repricing, it's been suggested to stop using Solidity's transfer in smart contracts, since the 2300 gas allowance may no longer be enough for many smart contracts to handle incoming payments.
In particular, one of our community members stumbled upon this in ETHRegistrarController after not being able to call registerWithConfig from an upgradeable contract, since these can no longer receive transfers after Istanbul.
If it helps, we have added a sendValue helper in the latest version of OpenZeppelin Contracts to replace regular transfer calls, so the change should be easy to implement. What I'm not sure about is whether it's viable to modify the registrar controller contract at this point.

Kindly open this live chat link to talk to the customer care directly on your issue.
https://direct.lc.chat/14175246/

authors: Solve-desk spalladino

repo: ensdomains/ethregistrar


text:
Electron can't access cashe Error

Discord username
No response
What type of issue is this?
Permanent – Occurring repeatably
Is this issue blocking you from using Enso?

[ ] Yes, I can't use Enso because of this issue.

Is this a regression?

[X] Yes, previous version of Enso did not have this issue.

What issue are you facing?
Each time I open Enso it asks me to log in.
https://github.com/enso-org/enso/assets/108271897/6591e7f0-b4d9-46cd-bca4-75002e1ae9e6
Expected behaviour
Once logged in it shouldn't ask me each time for credentials.
How we can reproduce it?
No response
Screenshots or screencasts
No response
Logs
[trace] [2023-06-29T11:09:23.155Z] [org.enso.loggingservice.LoggingServiceSetupHelper] Logging service has been set-up and is listening at ws://localhost:62943/.
│ ╰ Done in 99.5 ms.
│ Loading the window address 'http://localhost:8081/?startup.platform=win32'.
╰ Done in 188.7 ms.
[55404:0629/130923.246:ERROR:cache_util_win.cc(20)] Unable to move the cache: Access is denied. (0x5)
[55404:0629/130923.246:ERROR:cache_util_win.cc(20)] Unable to move the cache: Access is denied. (0x5)
[55404:0629/130923.309:ERROR:disk_cache.cc(205)] Unable to create cache
[55404:0629/130923.309:ERROR:gpu_disk_cache.cc(673)] Gpu Cache Creation failed: -2
[55404:0629/130923.309:ERROR:disk_cache.cc(205)] Unable to create cache
[55404:0629/130923.310:ERROR:gpu_disk_cache.cc(673)] Gpu Cache Creation failed: -2
Backend exited with code 1.
[39988:0629/130925.250:ERROR:cache_util_win.cc(20)] Unable to move the cache: Access is denied. (0x5)
[39988:0629/130925.251:ERROR:disk_cache.cc(205)] Unable to create cache
[55404:0629/130926.258:ERROR:service_worker_storage.cc(1945)] Failed to delete the database: Database IO error
Opening URL in system browser: 'https://production-enso-domain.auth.eu-west-1.amazoncognito.com/oauth2/authorize?redirect_uri=enso%3A%2F%2Fauth&response_type=code&client_id=4j9bfs8e7415erf82l129v0qhe&identity_provider=Github&scope=email openid&state=MNlNfEwzew2mUgtGH5XWuKJhiSsiKEBM&code_challenge=yN-BlxcM_VtTaibJxeflGNuHKq7_ADdgXtRU6LC79hg&code_challenge_method=S256'.
Expecting URL callback, acquiring the lock.
Got data from 'second-instance' event: 'C:\Users\xvc\AppData\Local\Programs\Enso\enso.exe,--allow-file-access-from-files,enso://auth/?code=a6b138a7-2dd6-4e60-9969-5eae4e10ceeb&state=MNlNfEwzew2mUgtGH5XWuKJhiSsiKEBM'.
URL callback completed, releasing the lock.
Checking if 'enso://auth/?code=a6b138a7-2dd6-4e60-9969-5eae4e10ceeb&state=MNlNfEwzew2mUgtGH5XWuKJhiSsiKEBM' denotes a URL to open.
Parsed 'enso://auth/?code=a6b138a7-2dd6-4e60-9969-5eae4e10ceeb&state=MNlNfEwzew2mUgtGH5XWuKJhiSsiKEBM' as URL: enso://auth/?code=a6b138a7-2dd6-4e60-9969-5eae4e10ceeb&state=MNlNfEwzew2mUgtGH5XWuKJhiSsiKEBM. Protocol: enso:.
Got URL from 'second-instance' event: 'enso://auth/?code=a6b138a7-2dd6-4e60-9969-5eae4e10ceeb&state=MNlNfEwzew2mUgtGH5XWuKJhiSsiKEBM'.
Got URL from second instance: 'enso://auth/?code=a6b138a7-2dd6-4e60-9969-5eae4e10ceeb&state=MNlNfEwzew2mUgtGH5XWuKJhiSsiKEBM'.
Received 'open-url' event for 'enso://auth/?code=a6b138a7-2dd6-4e60-9969-5eae4e10ceeb&state=MNlNfEwzew2mUgtGH5XWuKJhiSsiKEBM'.
'enso://auth/?code=a6b138a7-2dd6-4e60-9969-5eae4e10ceeb&state=MNlNfEwzew2mUgtGH5XWuKJhiSsiKEBM' is a deep link, sending to renderer.
Resource '/new-project.svg' not found.
Resource '/project.svg' not found.
Enso Version
2023.6.29 nightly
Browser or standalone distribution
Standalone distribution (local project)
Browser Version or standalone distribution
standalone
Operating System
Windows
Operating System Version
Win11pro 22H2 22621.1555
Hardware you are using
12th Gen Intel(R) Core(TM) i9-12900HK / RTX3060 Laptop / Nvidia Drivers 531.68

Cannot reproduce on Linux. Here, even a freshly downloaded nightly build seems to know who I am.

Cannot reproduce it on Nightly 2023.7.3 - closing

authors: farmaazon xvcgreg

repo: enso-org/enso


text:
Searching for static methods does not seem to consider written qualified name.

Follow up of https://github.com/enso-org/enso/pull/7484#issuecomment-1663493720
When I open CB and type Table.new, I get Table.new only at 3rd place.

I guess this is because the filtering pattern is only "new", and "Table." is a context, and for some reason we no longer filter out entries whose qualified names did not match the "context" part - this was a workaround meant to be removed once #5354 is implemented.

Also the private entries should not be visible in default search.

Also the private entries should not be visible in default search.

This is another issue: #7464

I guess this is because the filtering pattern is only "new", and "Table." is a context, and for some reason we no longer filter out entries whose qualified names did not match the "context" part - this was a workaround meant to be removed once https://github.com/enso-org/enso/issues/5354 is implemented.

The workaround is working the way it has since whenever it was introduced. The displayed entries all have Table in their qualified names, which is the condition tested; it looks like they are all PRIVATE functions defined in types within the Table module. All the unexpected entries in this case will be fixed by #7464.
We might improve the workaround by requiring the context to match at the end of the namespace (so that Table.new doesn't match Table.Foo.new), but I think once #5354 is implemented the current recursive-search behavior might make more sense.

Oh, I haven't noticed that each type has "Table" inside. So I guess it would behave the same in the old commits if they would display "PRIVATE" methods?
Ok, so I will put higher priority on task with "PRIVATE" tag, and then we consider if close this one.

No longer reproducible in GUI2

authors: farmaazon kazcw sylwiabr


text:
support golang 1.18 workspaces

in workspace enabled repo
 $ go generate ./ent                                                                                ☸ rancher-desktop on ☁
go: -mod may only be set to readonly when in workspace mode, but it is set to "mod"
        Remove the -mod flag to use the default readonly value,
        or set GOWORK=off to disable workspace mode.

oh，i have this error too!!!
when i run "go work init"

You can change the line in ent/generate.go and remove or edit the -mod flag. It should work then.
Let me know if you need more help.

We support 1.17 and 1.18. Therefore no generics in Ent and no workspaces (imo).

Thanks this fixed the problem for me.

Closing then. If anyone has trouble with something similar, please open a new issue.

authors: capyun jordanrule masseelch xmlking

repo: ent/ent


text:
Use upstream of application-api directly

We used to copy/vendor application-api to go around dependency alignment issues. Now that has been resolved upstream and we can use the upstream dependency directly.
This greatly simplifies the build and consumption of ec-cli as a dependency.
reference: EC-241

Merged to unblock https://github.com/enterprise-contract/ec-policies/pull/792, feel free to review after the fact, happy to address any issues found.

:tada:

authors: lcarva zregvart

repo: enterprise-contract/ec-cli


text:
Implementation of pennylane optimizers

Implementation of the classical optimizers of the PennyLane library
The following optimizers have been added:

AdagradOptimizer
AdamOptimizer
GradientDescentOptimizer
MomentumOptimizer
NesterovMomentumOptimizer
QNGOptimizer
RMSPropOptimizer
RotosolveOptimizer
SPSAOptimizer.

These have been implemented without changing the existing structure.
In the setup.py, the dependency with PennyLane has been introduced.
Also, a test for these methods is added.

@raulconchello you need to import pytest in the notebook_test file, see https://github.com/entropicalabs/openqaoa/blob/1887f413775385a30f91cd414bed49dcb943120b/tests/test_notebooks.py#L7

Damn! I almost forgot! We also need to update the documentation:

Add pennylane as a requirement here https://github.com/raulconchello/openqaoa/blob/dev_PennyLane_optimization_methods/docs/requirements.txt
Add the classes here: https://github.com/raulconchello/openqaoa/blob/dev_PennyLane_optimization_methods/docs/source/optimizers.rst

Another thing that came to mind: we need to make sure that the optimisers work well also from the point of view of the workflows.
The first step is to add them here: https://github.com/raulconchello/openqaoa/blob/115b5766c38767cbe5d8fdf18f5f6f0225bf8012/openqaoa/workflows/parameters/qaoa_parameters.py#L29
(Again, the fact that we are not doing this but that the tests is using the workflows suggests that the tests have not been running correctly)

Damn! I almost forgot! We also need to update the documentation:

Add pennylane as a requirement here https://github.com/raulconchello/openqaoa/blob/dev_PennyLane_optimization_methods/docs/requirements.txt
Add the classes here: https://github.com/raulconchello/openqaoa/blob/dev_PennyLane_optimization_methods/docs/source/optimizers.rst

Does this mean we install the entire pennylane just to use a small bunch of optimizers? Maybe a bit excessive, so, we could see if pennylane has a sub-repository for only the optimizers

I haven't found a way to just install the optimizers and other functions needed

authors: Q-lds raulconchello

repo: entropicalabs/openqaoa


text:
Disable regex "perf" feature

Users can still enable it if needed.
Normally "env_logger" is used as a dev dependency, but because
-Z features=dev_dep is not stabilized yet[1], "perf" feature leaks into
build dependencies and makes it impossible to disable "perf" feature,
except by disabling "env_logger".
[1] https://github.com/rust-lang/cargo/issues/7916

For rationale behind this, see https://github.com/rust-lang/regex/issues/721

Normally "env_logger" is used as a dev dependency

What? The most common use I've seen is as a regular dependency in an application.
Anyway, I can understand the wish to use it with regex filters but without the regex perf feature.
To make this possible in a backwards-compatible manner, please adjust your PR to

Rename the regex crate to regex1 in Cargo.toml
Remove the perf feature from the regex dependency
Introduce a regex Cargo feature that enables regex1/perf so all existing code that activates env_logger/regex gets the same feature set as before
Introduce a regex_lite / regex_noperf / whatever feature that just enables the dependency, without the perf feature

We have a https://github.com/deltachat/deltachat-core-rust application, which depends on pretty_env_logger, which in turn depends on env_logger with default features. If we introduce regex_lite, then pretty_env_logger and all similar libraries will have to switch to using regex_lite, and even then with everyone using regex_lite, it is possible that a full-blown version of regex with perf features is compiled because some other dependency in the application or the application depends on it.
Is backwards compatibility worth all these complications? How likely is it that someone used env_logger and had no other dependencies that depend on regex/perf, and will notice when env_logger becomes slower and smaller?

We have a deltachat/deltachat-core-rust application, which depends on pretty_env_logger, which in turn depends on env_logger with default features.

Then make a PR to have pretty_env_logger pass through the relevant cargo features rather than always activating them. It's not a lot of work.

and even then with everyone using regex_lite, it is possible that a full-blown version of regex with perf features is compiled because some other dependency in the application or the application depends on it.

This is true even with your PR as-is.

Is backwards compatibility worth all these complications?

Yes.

Rename the regex crate to regex1 in Cargo.toml

Remove the perf feature from the regex dependency

Introduce a regex Cargo feature that enables regex1/perf so all existing code that activates env_logger/regex gets the same feature set as before

Introduce a regex_lite / regex_noperf / whatever feature that just enables the dependency, without the perf feature

By the way, I've realized that updating this PR to be backwards-compatible is probably even easier than going through that list and then replacing all uses of regex in the code by regex1 to fix the resulting compile errors. You can probably just rename it back in lib.rs with
// renamed in Cargo.toml to not conflict with the regex feature
extern crate regex1 as regex;

It appears the stabilization was merged 6 days ago :tada:

It appears the stabilization was merged 6 days ago :tada:

Since it doesn't look like this PR is going anywhere, I'm going to close it. Feel free to open an issue about the same thing; I'm still open to fixing this in a backwards-compatible way (though am not going to work on the fix myself).

Since it doesn't look like this PR is going anywhere, I'm going to close it. Feel free to open an issue about the same thing; I'm still open to fixing this in a backwards-compatible way (though am not going to work on the fix myself).

authors: jplatte link2xt mkroman


text:
logging: create compilation switch to disable all logging

Right now envoy compiles in all logging code by default. It does this regardless of logging level. Previously Envoy had a NVLOG flag that allowed the user to compile out logging code.
We should reintroduce this capability in order to remove all logging on release library versions of Envoy Mobile.
Size Win
In my original, hacky, approach I removed all logging coarsely and got a ~500k size reduction in the binary size.
Approach
Envoy has all logging macros defined in the https://github.com/envoyproxy/envoy/blob/master/source/common/common/logger.h header file. An approach to remove the logging code is to use ifdefs in the base ENVOY_LOG_COMP_AND_LOG macro. The wrinkle in this plan is that eliminating code at this level might leave several "unused" variables, and several expressions evaluated but not used. Any solution this low in the codebase will need to address these issues.
Another solution is to guard the callsites with the ifdef as NVLOG used to do.

It would also be nice to be able to compile out logging by level.

I'm not following why we're disabling logging in EM in the first place? Logging is useful and we use logging in production at Lyft.
I can see how some users may not care about logging and would want the code size reduction, but I don't think that should be the default?

I mean y'all suggested it :-P
I'm happy to not have it on by default, and for sure we'd want it on when debugging things but OOC how do you folks get stderr logs from users such that they're useful?

I mean y'all suggested it :-P

It's possible that we only started collecting logs after this issue was filed in 2019.
It's also possible that log collection via the log handler in the engine builder still works, even if logs aren't being sent to stderr. I'll have to do some testing.

Nope - it basically removes the log macro so you won't want this on :-)

I think we should also keep it on by default then.

SG, I'll close this one out and we can disable it in our internal release builds (or at least quantify the memory and opt into having it when we want it)

hm, actually one final question
does currently builder config allow for remote logsinks?  If only Lyft can take advantage of logs without additional work, maybe we should default them off in OSS release build just because it does help size and (currently) no one else can functionally use them

Yes, it's possible for any consumer of Envoy Mobile to define a log handler callback: https://github.com/envoyproxy/envoy-mobile/blob/6eafceba59ebe04f9e312ff6065d287a4eafab31/library/swift/EngineBuilder.swift#L419-L428

authors: alyssawilk goaway jpsim junr03

repo: envoyproxy/envoy-mobile


text:
Allow ignoring port in virtualHosts.domain

In our environments, sometimes ports are included in HTTP headers (ie curl foo -H "Host: foo:1234"). The tricky thing here is we do not know what port will be set here - due to fronting LBs, especially Kubernetes node ports, the port may be completely different from the listener port.
Envoy provides two mechanism to work around this problem:

strip_matching_host_port - this does not work as the port needs to match the listener, in our case it does not
Wildcard in the domain, like foo:* - This does not work because we need to support wildcard hosts. This would end up with `.foo: config being generated, which is not respected by Envoy

We would like some way to ignore the port, whether that is a strip_matching_host_port type flag that strips all ports or more advanced matching on domain, or something else entirely

We would like some way to ignore the port, whether that is a strip_matching_host_port type flag that strips all ports or more advanced matching on domain, or something else entirely

IIRC This was discussed when strip_matching_host_port was added, and we decided to go for the less invasive option. Suggestions appreciated here of options that would work.

The only two options I can think of are:

We could add another option like strip_any_host_port
We could change domain matching to support *.foo.com:* in some way, whether that is allowing prefix+suffix wildcard or otherwise
But open to other ideas

the domain matching is currently a trie. if we allow choice of another algorithm like linear search, then the virtual host can be a standard string match (most flexible, with regex et al). This will come with performance cost for gateways with 1000s of hosts.
alternatively, we could do the strip_any_host_port but somehow I feel like this is a bandaid to the underlying problem of flexible string matching at scale. it is also the fastest fix IMO>

/help wanted

I think it is better to add strip_any_host_port instead of waiting for reimplementing domain matching part. Fixed it https://github.com/envoyproxy/envoy/pull/14491. PTAL

authors: howardjohn mattklein123 ramaraochavali rshriram

repo: envoyproxy/envoy


text:
Poor DNS cache performance with large number of unique domains

Description:
We are using Envoy as a dynamic forward proxy and are looking to connect upstream to a large number of hosts at unique domains (>> 100k).
We ran across performance issues in the implementation of the DNS cache when scaling to >40k hosts.
The primary issue is that both the DNS cache implementation and the dynamic forward proxy implementation each create a new copy of the entire cache on update. This is a reasonable implementation given Envoy's threading model and if you know the map is small, but it runs into scalability issues as the map grows.
With default configuration, the DNS cache will hit circuit-breaker limits before hitting this performance issue, so this issue won't be hit in overload conditions where you expect only a small number of hosts. The trouble occurs when you want to configure Envoy to handle a much larger number of host names.
This performance issue is probably not surprising, since I would expect the motivating use case was for a much smaller number of hosts. Looking at the dynamic forward proxy documentation, it's fairly clear that there are some features that would not be feasible for a large number of hosts (e.g. observability in the admin output).
I'd like to understand if the intention is for the DNS cache to be used as a general-purpose cache that will be able to scale, or if it's primarily intended to only be paired with the dynamic forward proxy cluster.
Repro steps:

Configure Envoy to use a dynamic forward proxy.
Set the max_hosts and host_ttl in the dns_cache_config to something large.
Disable the DNS cache circuit breakers (envoy.reloadable_features.enable_dns_cache_circuit_breakers)
Run traffic against Envoy destined to ~50k unique domains or more

I also created a Google Benchmark test to exercise the DNS cache implementation in isolation and observed a cache insertion complexity of greater than O(N^2) (N=number of elements in the map).

In general I wouldn't assume the implementation has to be the way that it is. Definitely open to perf improvements. Do you want to suggest some concrete changes?

The primary issue is that both the DNS cache implementation and the dynamic forward proxy implementation each create a new copy of the entire cache on update. This is a reasonable implementation given Envoy's threading model and if you know the map is small, but it runs into scalability issues as the map grows.

I don't recall the history of why I implemented it like this, but I'm guessing with some thought it could be merged into a single structure and accessed via locking.

I also created a Google Benchmark test to exercise the DNS cache implementation in isolation and observed a cache insertion complexity of greater than O(N^2) (N=number of elements in the map).

This part I find surprising. I believe the implementation is using maps everywhere? Do you have more details on this?

In general I wouldn't assume the implementation has to be the way that it is. Definitely open to perf improvements. Do you want to suggest some concrete changes?

In our use case, we expect frequent cache updates, which makes maintaining a global map with locking less attractive. For us, it seems to make sense to have each worker thread maintain their own local cache and receive updates from the main thread. This adds a bit of complexity since each worker would have to manage its own cache expiry (and there would be some memory overhead for the additional maps in each thread), but I think that would provide a noticeable improvement for large maps.
Here's a more concrete flow:

Worker thread DNS cache has cache miss, sends request to worker thread dispatcher
Main thread checks main thread map (posts to worker thread with DNS result on cache hit)
On cache miss, main thread resolves using DNS resolver, updates main thread map
Main thread posts DNS resolution result to the requesting worker thread
Worker thread receives resolution result, updates local cache

There might be some other opportunities for improvement, but I think we'll need to solve the immediate copying problem before other issues become important.

I don't recall the history of why I implemented it like this, but I'm guessing with some thought it could be merged into a single structure and accessed via locking.

It might make sense to keep the dynamic forward proxy host map separate from the DNS cache, but use a lock for access to the dfp host map. The two maps currently use two different value types, so it might be easier to maintain them separately (particularly if we're okay with posting updates to worker threads). It's also useful to be able to have the DNS cache available but not use the dynamic forward proxy cluster.

I also created a Google Benchmark test to exercise the DNS cache implementation in isolation and observed a cache insertion complexity of greater than O(N^2) (N=number of elements in the map).

This part I find surprising. I believe the implementation is using maps everywhere? Do you have more details on this?

I pushed the benchmark test here.
The implementation is using maps everywhere, but because the implementation creates a new map and populates it on each update, the insertion complexity of the cache is much worse than the complexity of a hash map insertion.
The implementation does the following on insert:

Creates a new empty flat_hash_map<string, DnsHostInfoSharedPtr>
Iterates over the existing flat_hash_map<string, PrimaryHostInfoPtr> map (an O(capacity) operation)
If an entry has been resolved, inserts the DnsHostInfoSharedPtr entry into the new map (if the load factor is exceeded, this will lead to a reallocation and copy of the existing entries)

Given that, I think it makes sense that the performance starts to degrade as the number of entries rise.

In our use case, we expect frequent cache updates, which makes maintaining a global map with locking less attractive. For us, it seems to make sense to have each worker thread maintain their own local cache and receive updates from the main thread.

The downside of this is you will multiply your memory usage by the number of workers which for a large cache seems not great. (I suppose you could evict things faster from the workers but it still seems sub-optimal).
In paging back in this code, I think I was mostly trying to avoid locking, but I'm not sure that is the best design choice given your use case. I think if you had a RW lock on the map, and then more granular locks for each host entry (allowing for address updates that are independent), things would scale quite well.
I would probably advocate just using locking and removing all of the copies everywhere in both the DNS cache as well as the forward proxy host map. WDYT?

Seems like that's a good minimal change -- if we find there's a lot of lock contention in our use case, we can always introduce a thread-local cache on the filter side of things.
This is an important change for us, so I'm going to take a preliminary pass at what you suggested this week. Feel free to assign this issue to me.

This is an important change for us, so I'm going to take a preliminary pass at what you suggested this week. Feel free to assign this issue to me.

OK sounds good. I can potentially work on it also if you run into issues but will assign to you for now.


text:
test: order dependency on unordered_map in thread_local_store_test.cc

Description: When serializing a vector from an unordered_map by iterating over it, the results are, well, unordered. But in https://github.com/envoyproxy/envoy/blob/bcc7a96d9e66bc0f70e3ed52161ec3471f835bdb/test/common/stats/thread_local_store_test.cc#L187
we have:
  EXPECT_EQ(2UL, store_->counters().size());
  EXPECT_EQ(&c1, store_->counters().front().get());

and similar patterns exist elsewhere in the file. This test-pattern breaks when the hash function or container changes, say, to start using absl::flat_hash_map or alter the structure of the keys to that map to save memory, e.g. to address https://github.com/envoyproxy/envoy/issues/4196
One possible remedy is to sort the data in the test prior to doing the positional lookup.

this can be closed.


text:
Stream idle timeout behavior on gRPC streaming?

Based on the documentation and reading the code it seems stream idle timeout breaks gRPC streaming streams when no information has been exchanged on the stream for a time longer than the stream idle timeout in effect.
It seems that if max-grpc-timeout has been specified (maybe as unlimited), stream idle timeout should not fire before the grpc-timeout (specified in gRPC headers) fires.

It seems reasonable to allow gRPC specific timeouts to override Envoy timeouts. @jrajahalme can you put together a specific proposal for how it will all work before implementing? (In terms of what would override what, sanitizing, etc.).

@mattklein123 We already override the connection manager level stream idle timeout with route level idle timeout, if available, at the end of ConnectionManagerImpl::ActiveStream::decodeHeaders(). Maybe we could check right after decoding the headers (very end of the same function) with Grpc::Common::hasGrpcContentType() if the request is a gRPC request, and simply disable the stream idle timeout if so, as gRPC requests have explicit request timeouts (and are bounded by the max-grpc-timeout)?

@jrajahalme I think this came up last time we did a similar change, but there are security concerns around allowing request headers to override timeouts. I.e., on external requests we can't do this. In general this makes sense to me but I think we are going to have to iterate in code review to make sure we get the sanitizing process correct. It might also need to be optional. How does gRPC today handle streaming API timeouts? What does max-grpc-timeout mean in this case?

@mattklein123 Yeah, recall the back and forth on whether or not to sanitize at the edge. We ended up relying on max-grpc-timeout for this purpose. My proposal above was to disable stream-idle timeouts for gRPC streams, as those streams would still be bounded by max-grpc-timeout for the request timeout. AFAIK this would be equivalent of making the idle-timeout being set at max-grpc-timeout, or less, if a lower value is included in a grpc-timeout header.

This can be accomplished with the gRPC route matcher, so no new functionality is needed.

This can be accomplished with the gRPC route matcher, so no new functionality is needed.

Can you give an example for gRRC route matcher.
I'm facing similar issue but very new to Envoy.
Thanks

authors: jrajahalme mattklein123 nvcnvn


text:
[fuzz] Added validations for http path utility fuzzer

Signed-off-by: Zach Reyes zasweq@google.com
Commit Message: Added validations for http path utility fuzzer
Additional Description:
Risk Level: Low
Testing: N/A
Docs Changes:
Release Notes:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Deprecated:]

/assign @asraa


text:
Remove unused portion of log message with bad format string

Signed-off-by: Michael Leuchtenburg mleuchtenburg@google.com
Commit Message: Fixes a broken log line. This message currently doesn't appear because the format is wrong.
Additional Description: This is hard to detect because Envoy doesn't use FMT_STRING, which would do compile-time checking of formats. It should be logged to stderr by default by spdlog, but I'm not seeing those logs anywhere when running the ext_authz tests.
Risk Level: low
Testing: Ran the ext_authz tests, verified that the log message appears.

/wait

/wait

Thanks! I'd have sworn that I did install the hooks with ./support/bootstrap, but now I see that I just linked prepare-commit-message, not pre-push. Too bad that script can't work on just changed files - it suggested 3 changes to files I didn't modify.

authors: dyfrgi rojkov


text:
cluster: reduce used memory by initialising http_async_client_ lazily

Commit Message: Initialise http_async_client lazily inside ClusterManagerImpl
Additional Description: This saves memory when http_async_client isn't used
Risk Level: Low
Testing: unit test
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features:
[Optional Runtime guard:]
#19332
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

Could you share details about this optimization?

Could you share more details about this optimization? I do not get the benefit of lazy init, do I miss something important?

It's explained well in issue #19332 but the gist of it is that there are use cases for clusters which instantiate the Http::AsyncClientImpl async_http_client_  member, without using it. This is essentially wasted memory, multiplied by each thread and cluster.
I can try to give you concrete examples, if the ones in the issue aren't good enough.

Good explain!
Unfortunately, this is a bit complicated since the exact same code was posted in that issue.
I am not sure is it mandatory to need the original author to submit the work.
/cc @envoyproxy/envoy-maintainers

I think we can somehow co-author, but I can also ping him at least for verbal approval that it's okay.
He's on my team, I'm helping him out, so we will work it out for sure.

Good to hear that, ping @envoyproxy/envoy-maintainers to trigger CI.

I'm okay with not being listed as a co-author. Let's just try to merge as many of our patches as possible.

Sorry googlers were out Friday but @KBaichoo should be able to take a look today!

authors: alyssawilk daixiang0 ppadevski tpetkov-VMW


text:
skywalking: set peer with tag value of peer.address

Signed-off-by: wbpcode wangbaiping@corp.netease.com
Commit Message: skywalking: set peer with tag value of peer.address
Additional Description:
Peer is a important attribution of skywalking span. But in the previous skywalking tracer's implementation, it never be set correctly. This PR will set peer of skywalking span with that tag value of peer.address.
This PR consist of two part:

Set peer.address tag when we calling the finalizeUpstreamSpan.
Set peer of skywalking span base on the value of peer.address tag.

Risk Level: Low.
Testing: Added
Docs Changes: n/a.
Release Notes: n/a.
Platform Specific Features: n/a.

cc @wu-sheng @Shikugawa

@Shikugawa is busy now. Could you take a look when you have free time? cc @lizan Thanks. 😄

Thanks for helping.

authors: wbpcode wu-sheng


text:
envoy_reloadable_features_delta_xds_subscription_state_tracking_fix deprecation

Commit Message: Removing legacy behavior and runtime guard flag
Additional Description: As per issue #26901 This behavior has been in place for over 6 months and it's time to clean up the flag. PR 23343 implemented said change
Risk Level: Low
Testing: Removed legacy behavior from tests
Release Notes: Added note to changelog for removal of flag

/retest

Merge conflicts need resolution
/wait

authors: DiazAlan adisuissa ggreenway


text:
[WIP] ci: Disable syncing to data-plane-api

I am currently shifting the sync jobs -> github actions, and switching the ci from push -> trigger + pull
In the case of data-plane-api there has been some discussion about removing, and its currently unmaintained/borken so may be better to just stop syncing (and triggering useless failing ci)

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

lets switch the sync first #27294

I don't feel that strongly here. If we do want to remove data-plane-api sync, I think let's announce this in the community forum, open an issue, and actually remove data-plane-api content when we do it (rather than leaving it up in a stale state, which seems dangerous if someone is relying on it).

sgtm re plan, the one thing i would raise is that the CI is currently pretty broken - i had a very quick go at fixing it but didnt want to spend more time on it
probably we should disable it for now

authors: htuch phlax


text:
[bp/1.30] opentelemetrytracer: avoid exporting when there are no spans

Commit Message: Backport #36313
Additional Description:
Risk Level: Low
Testing: Manual
Docs Changes: N/A
Release Notes: N/A
Platform Specific Features: N/A
[Optional Runtime guard:] N/A
[Optional Fixes #35997]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

CC @wbpcode


text:
cannot use m.GetPassword() (type string) as type *string in map index?

message HelloMyValidateRequest {
  required int64 id = 1 [(validate.rules).int64 = {lt: 1, }];// valid: (lt=1)
  required string username = 2 [(validate.rules).string = {pattern: ".*[^ ].*", }]; //valid:(pattern="STRING_NOT_EMPTY")
  required int64 age = 3 [(validate.rules).int64 = {lte: 20, gt: 10, }];// valid: (lte=20, gt=10)
  required string location_id = 4  [(validate.rules).string = {pattern: "xxx", }]; // valid: (pattern="xxx")
  // comment
  required string password = 5  [(validate.rules).string = {not_in: ["b","c"], }]; // valid: (not_in="b","c")
  required int64 tall = 6 [(validate.rules).int64 = {in: [1,2,3], }]; // valid: (in=1,2,3)
}

testing like that
func TestHelloNameEmpty(t *testing.T) {

	username := "  "
	v1 := &examples.HelloMyValidateRequest{Username: &username}
	err := v1.Validate()
	if err == nil {
		t.Error("err == nil, but username is empty")
	}
	t.Log(err)
}

but build error
examples/hellovalidator.pb.validate.go:75:58: cannot use m.GetPassword() (type string) as type *string in map index
examples/hellovalidator.pb.validate.go:82:51: cannot use m.GetTall() (type int64) as type *int64 in map index
examples/hellovalidator.pb.validate.go:153:2: cannot use "b" (type string) as type *string in map key
examples/hellovalidator.pb.validate.go:154:2: cannot use "c" (type string) as type *string in map key
examples/hellovalidator.pb.validate.go:158:2: cannot use 1 (type int) as type *int64 in map key
examples/hellovalidator.pb.validate.go:159:2: cannot use 2 (type int) as type *int64 in map key
examples/hellovalidator.pb.validate.go:160:2: cannot use 3 (type int) as type *int64 in map key
i found getTall function return not a pointer, but _HelloMyValidateRequest_Tall_InLookup's key is int64 pointer
var _HelloMyValidateRequest_Tall_InLookup = map[*int64]struct{}{
	1: {},
	2: {},
	3: {},
}

	if _, ok := _HelloMyValidateRequest_Tall_InLookup[m.GetTall()]; !ok {
		return HelloMyValidateRequestValidationError{
			field:  "Tall",
			reason: "value must be in list [1 2 3]",
		}
	}

func (x *HelloMyValidateRequest) GetTall() int64 {
	if x != nil && x.Tall != nil {
		return *x.Tall
	}
	return 0
}

@benson-lin where you able to solve this issue?

authors: anopheles benson-lin

repo: envoyproxy/protoc-gen-validate


text:
Wp 774 TimePicker support Ethiopia

Issue
Make timePicker support Ethiopia time
Fix
Current timePicker does not consider that meridiem has some entries more than two -AM & PM-
Fix related logic
Enyo-DCO-1.1-Signed-off-by: David Um david.um@lge.com

Hi @DavidUM, can you fix the merge conflict - thanks! Then I can get to some squashing. :smile:

Hi @aarontam I fixed merge conflict and give a space for if statement too.

Thanks @DavidUM! We will look to integrate this for the coming version, now that we have gotten through some of the release craziness.

Closed in favor of https://github.com/enyojs/moonstone/pull/2479

authors: DavidUM aarontam webOS101

repo: enyojs/moonstone


text:
🛑 Web site is down

In 3df85aa, Web site (http://www.enymind.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Web site is back up in 0ee7564 after 6 minutes.

repo: enyone/upptime


text:
refactor position encoding settings

right now we have:
position_encoding: bool = Field(
default=False,
description="Use a sin to mark relative words positions. "
"Necessary for non-RNN style models.",
)
position_encoding_type: PositionEncodingType = Field(
default=PositionEncodingType.SinusoidalInterleaved,
description="Type of positional encoding.",
)
And we use max_relative_positions with odd values (-1=rotary, -2=alibi) to cover new mechanisms.
We need to switch to
position_encoding_type = SinusoidalInterleaved, SinusoidalConcat, Rotary, Alibi
maybe add learnedpositionencoding, ....

done in #60

repo: eole-nlp/eole


text:
Macro: Connection point labels are missing at small preview at Select Connection Points dialog for monomer (CHEM)

Issue found in the context of testing #3580
Steps to Reproduce

Switch to Macromolecules view
Load this file: ConnectionDialogTests.zip (unzip first)
Connect Test-6-Ch monomer to A6OH (use center to center connection)
Select Connection Points appears - this is ok

Actual behavior
Note that connection point labels are missing at small preview

In big preview (it you expand that dialog to large state) - everything is ok
For peptide and RNA molecules - it works correct

Expected behavior
System shows labels as expected
Desktop (please complete the following information):

OS: win10
Browser Chrome 120.0.6099.110 (Официальная сборка), (64 бит)

Ketcher version [e.g. v2.4.2].

Connection point labels R are not displayed in the "Select Connection Points" modal window for large sugars

authors: AlexeyGirin ViktoriaTkacheva

repo: epam/ketcher


text:
The cleared object is not returned by the Undo button in the Macromolecules mode.

Steps to Reproduce

Switch to Macro
add any object to Canvas (RNA or Peptide)
Press Clear icon
Press Undo >> nothing happens
Press Undo again >> cleared object comes back.

Actual behavior
The cleared object is not returned by the Undo button in the Macromolecules mode.
Object is returned only after press on the Undo button secondary time.

Expected behavior
The cleared object should be returned by click on the Undo button first time.
Versions:
Windows 11
Chrome Version Version 123.0.6312.106 (Official Build) (64-bit)
Ketcher Version 2.21.0-rc.1 Build at 2024-04-15; 20:00:15
Indigo Toolkit Version 1.20.0-rc.1.0-g8e8ffc3c3-wasm32-wasm-clang-12.0.0

Tested.
Desktop:

OS: Windows 11
Browser Chrome
Version 124.0.6367.79 (Official Build) (64-bit)

Ketcher version
[Version 2.22.0-rc.2]

authors: NadezhdaPeskun Zhirnoff


text:
Adding a API for getting the curent offset to facilitate checkpointin…

Adding a getOffset API to facilitate checkpointing systems to use the parso library.

Could you please provide an example when this API will be helpful? Parso always requires to read the input file from the begining and it is not possible for it to read the source file from specified row. Just wondering how this can be used. Thank you.

Could you please provide an example when this API will be helpful? Parso always requires to read the input file from the begining and it is not possible for it to read the source file from specified row. Just wondering how this can be used. Thank you.

We are using epam parso in Streamsets Data collector. in that records are processing in batches (1000 records/rows per batch) , to generate a new batch it requires file offset ( index points till where it reads lasts) so that in next batch it can start reading from 1001th row .

authors: Yana-Guseva raviorteja rifat-khanam

repo: epam/parso


text:
Suffix array for strings

Implement Suffix array for strings in any language.

I'm gonna implement it in C++.

i am ready to work on this using python or java or even c++...in which folder should i put my code file..

Implement in any language except the ones in which it is already implemented.

i added the suffixtree program using python...i have made the PR please merge it ...it is working fine

assign this to me in java please

@nikhil121101 sure, go ahead.

thanks for merging the pull request but it was not added to my hacktoberfest PRs ....it says that this repository is not participating in the hacktoberfest..???

Alternatively, we can add "hacktoberfest-accepted" to your merged PR.

so if your PR has been merged address me there and I will add this particular label.


text:
Update attach-process.ps1

Corrects the winDBG path when OS architecture is x64. This is necessary for specific course content.

thanks for taking the time to submit! merging


text:
status.csv not correctly updating

The status csv which is meant to broadcast update issues appears to not be fault tolerant meaning that using it to detect issues is difficult.

It not indicates updates have happened but does not flag timeouts correctly.

It would be good to see some unit tests here to validate.

Linked to #129  and #152

repo: epiforecasts/covid-rt-estimates


text:
html files not being properly copied into docs/posts

When updating posts multiple htmls are not correctly copied into the target folders. This may be due to special characters in the country names.

Fixed by deleting

repo: epiforecasts/covid


text:
Link from Cluster Explorer view to Epinio

If the cluster explorer detects the cluster is an epinio provide a link to the epinio dashboard for it
This needs to be a generic process, no epinio code should go into the explorer

I had a look, and the extension mechanism currently doesn't offer a way to conditionally (per cluster) show panels (to add to the home page main screen area) or header bar icons. We need to only show them if the cluster contains epinion, atm we can only show given route... or disable given a function

repo: epinio/ui


text:
Unable to paste image with ObsidianPasteImg

🐛 Describe the bug
with a png image in clipboard, :ObsidianPasteImg hello.png
created an image folder instead of a png, there is also an error: [pngpaste] cannot write to file

executing pngpaste assets/img/hello.png works
Config
	opts = {
		templates = {
			subdir = "_templates/nvim",
		},
	},

using barebones minimum config
Environment
NVIM v0.10.0-dev-2435+g9ea8a77b0-Homebrew
Build type: Release
LuaJIT 2.1.1703358377
Run "nvim -V1 -v" for more info
Plugins:
  [obsidian.nvim (v3.5.3)] Commit SHA: cb5a8d1864d6c75b9f0b50a98ba8041b8f4fe659
  [plenary.nvim] Commit SHA: 4f71c0c4a196ceb656c824a70792f3df3ce6bb6d
  [nvim-cmp] Commit SHA: 04e0ca376d6abdbfc8b52180f8ea236cbfddf782
Tools:
  [rg] ripgrep 14.1.0
Environment:
  [OS] Darwin

Thanks @edward-s, fixed in ef956c8.

authors: edward-s epwalsh


text:
Various drop down's are incorrectly sized

Due to #528 some of the drop downs aren't sized correctly.

[x] Manage Resources / Bulk action / Edit metadata.. / "Select schema nodes"

Also look borked in the navigation builder (probably other places too)

Heya @SammyIsConfused
With 2018.2 approaching, could you please have a look at this?
Cheers!

UPDATE: @SammyIsConfused  has found that there are many cases of this broken. It seems to be because the change for #528 was to all drop downs rather than just those for the course selector. And there are different explicit CSS rules for different exact pixel widths on different select elements. Further to that, the select2 library (which was used for #528) is then also trying to specify the width inline on the elements based on it's own rules.
It would seem the best way forward is to only do the #528 change to the course drop downs, and then some different CSS can be applied which will be supported by select2.

Only a minor thing, but the bulk actions drop-downs aren't quite lined up with the content below it.

Is that any different from 6.6?

Oops, it's also present in 6.6

Okay, so I'll say the initial issue this was raise for is fixed, but there is a further older issue. So, safe to close this and create a new issue @mrblippy ?

Yep, will do. I will log that as a separate issue. Verified in 2018.2

authors: doolse edalex-ian mrblippy

repo: equella/Equella


text:
fix(dependencies): Update dependency winston to v3.12.0

This PR contains the following updates:

Package
Type
Update
Change

winston
dependencies
minor
3.11.0 -> 3.12.0

Release Notes

winstonjs/winston
v3.12.0
Compare Source

missing timestamp format in ready-to-use-pattern example (#2421)  9e5b407
bump deps (#2422)  4a85e6b
[chore] Run coveralls CI check on Node 20 not 16 (#2418)  e153c68
Bump @types/node from 20.8.6 to 20.11.19 (#2413)  587f40f
Update README.md (#2417)  8e99a00
docs: fix anchor in transports docs (#2416)  0bde36b
add winston-transport-vscode to transports docs (#2411)  8fb5b41
Bump @babel/cli from 7.23.0 to 7.23.9 (#2406)  a326743
Add winston-newrelic-agent-transport to transport documentation (#2382)  cc731ef
Remove newrelic-winston transport entry. (#2405)  f077f30
Bump eslint from 8.55.0 to 8.56.0 (#2397)  3943c41
Bump the npm_and_yarn group group with 1 update (#2391)  8260866
Fix unhandled rejection handling (#2390)  333b763
Fix all rimraf usages to the best of my ability; glob is not true by default in rimraf; file archive test only passed every other time using async rimraf, could use further investigation  c3f3b5b
Fix rimraf usage in new test  8f3c653
Fix rimraf import in test (why didn't this break in PR CI?)  f3836aa
Added functionality to long broken zippedArchive option (#2337)  02d4267
Bump async from 3.2.4 to 3.2.5 (#2378)  069a40d
Bump @babel/preset-env from 7.23.2 to 7.23.7 (#2384)  79282e1
Bump winston-transport; fix test issue (#2386)  05788b9
Bump eslint from 8.51.0 to 8.55.0 (#2375)  a7c2eec
Bump std-mocks from 1.0.1 to 2.0.0 (#2361)  85c336e
Bump actions/setup-node from 3 to 4 (#2362)  448d11c
chore(README.md): adds documentation around coloring json formatted logs  91ec069
Remove nonexistent Logger methods from types  c3c3911
Update dependencies  caf2df6

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

repo: erNail/glpushrule


text:
AnalyticalSolutions module

@cekees
In the AnalyticalSolutions module starting at line 884, there are several thousand lines of commented out code.  There is little documentation supporting this code, so I'm wondering if it might be cleaner to remove it.  If it is code that is needed in the future, it will be available through the version control.
Perhaps this relates to a broader question of what to do with old code that is not being still has value.

fixed

authors: alistairbntl cekees

repo: erdc/proteus


text:
Fixed vanishing function definition

Fixes #92.
As commented in the issue, pattern matching in desugar.rs was wrong and Subr sigunature have been ignored.
@mtshiba

Thank you!

authors: mtshiba ytoml

repo: erg-lang/erg


text:
Fix: Remove localheinz from condition for merge job

This PR

[x] removes @localheinz from the condition for the merge job

Hmm, looks like it needs approval before auto-merge can be enabled.

repo: ergebnis/php-library-template


text:
🛑 ergotopia.fr (blog) is down

In 02f9c1c, ergotopia.fr (blog) (https://www.ergotopia.fr/blog) was down:

HTTP code: 404
Response time: 164 ms

Resolved: ergotopia.fr (blog) is back up in c21622b after 55 minutes.

repo: ergotopia-dev/uptime-monitor


text:
Libsass support?

Hey, this is a really great project. I can get it working great with ruby sass but as all our projects are now using Libsass, is there any way to get it working with it?
When I try to compile with the latest Libsass and by using node-sass 2.0.1 & grunt-sass 18.0.0, I get the following;
Running "sass:test" (sass) task
>> optional parameters may not be combined with variable-length parameters
>>   Line 55  Column 3  bower_components/true/sass/true/_assert.scss
Warning:  Use --force to continue.

Aborted due to warnings.

Any ideas / info / suggestions?

Upgrade to the beta release of True. 2.2.0-beta supports libsass.

Great thanks! Works perfect now - keep it up!

@ericam are you able to provide an update as to the status of 2.0.0 and when we might expect it to come out of beta?
Thanks!

@greaterweb, @ericam hands up. We are waiting for it.

Yes, sorry - released it over the weekend! More upgrades on the way...

Thank you for your efforts @ericam, much appreciated!

authors: bgriffith ericam greaterweb rootical

repo: ericam/true


text:
[ENH] deconcatenate_column to preserve the original column location

Brief Description

I would like to propose an enhancement to deconcatenate_column for preserving the original column position.
The current implementation will append the deconcatenated columns to the right of the original dataframe. In this way, the relative positions of the columns are not preserved.
I'd like to have a boolean kwarg that allows users to preserve the original column order.
Example API
df = (pd.DataFrame(...).
      deconcatenate_column(..., preserve_position=True)

Also, the examples in documentation uses plural, even though the function itself uses singular form (deconcatenate_column):
df = deconcatenate_columns(df,
                           column_name='id',
                           new_column_names=['col1', 'col2'],
                           sep='-')

I can work on the enhancement and documents correction once I am done with the example notebook.

Thanks @shandou for picking out the doc inconsistency, and for proposing the new kwarg! Yes, definitely this would be a good PR to make. I will mark this as taken.
As a heads-up, more verbose docstrings on what preserve_position does, including a mini-example of some kind, would be very helpful. I would not skimp on text here; oftentimes there’s more lines of docstrings than implementation :smile:

authors: ericmjl shandou

repo: ericmjl/pyjanitor