MAINT: Allow scipy to be compiled in cython3

Reference issue

What does this implement/fix?
This PR allows Scipy to be compiled by cython3. This version is just PoC and should not be merged. Feel free to close this PR when is not needed anymore.
Requirements

Cython master

Additional information
Part of the PR is coming from #18224
This PR has following predecessors/requirements:

[x] https://github.com/scipy/scipy/pull/18318
[x] https://github.com/scipy/scipy/pull/18344
[x] https://github.com/scipy/scipy/pull/18362
[x] https://github.com/cython/cython/issues/5401
[x] https://github.com/cython/cython/pull/5386

Except replacing relative imports with absolute one, the rest of PR is just annotating functions as noexcept. Declaring functions as noexcept can be first stop of porting codebase to Cython3. This step is also 100% backward compatible with cython >= 0.29.31.

I can confirm that this builds (and I was going completely the wrong direction in trying to debug this!).

The build succeeds but I am getting this error on Ubuntu 22.04 with Python 3.11:

The build succeeds but I am getting this error on Ubuntu 22.04 with Python 3.11:

I will try to have a look on that.

with cpython master + cython master (3.0.0b2-36-g781b087c9) + this branch I'm now getting failures that look like:
FAILED: scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/meson-generated__ufuncs_cxx.cpp.o
ccache c++ -Iscipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p -Iscipy/special -I../../scipy/special -I../../scipy/_lib/boost_math/include -Iscipy/_lib -I../../scipy/_lib -I../../scipy/_build_utils/src -I../../../../../home/tcaswell/.virtualenvs/bleeding/lib/python3.12/site-packages/numpy/core/include -I/home/tcaswell/.pybuild/bleeding/include/python3.12 -fvisibility=hidden -fvisibility-inlines-hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++14 -O2 -fpermissive -fPIC -Wno-cpp -DBOOST_MATH_STANDALONE=1 -MD -MQ scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/meson-generated__ufuncs_cxx.cpp.o -MF scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/meson-generated__ufuncs_cxx.cpp.o.d -o scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/meson-generated__ufuncs_cxx.cpp.o -c scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp: In function ‘long int __Pyx_PyInt_As_long(PyObject*)’:
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:1212:13: warning: suggest parentheses around ‘-’ in operand of ‘&’ [-Wparentheses]
 1212 |         ((1 - ((PyLongObject*)x)->long_value.lv_tag & 3) * (((PyLongObject*)x)->long_value.lv_tag >> 3))  // (>> NON_SIZE_BITS)
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:6384:25: note: in expansion of macro ‘__Pyx_PyLong_SignedDigitCount’
 6384 |                 switch (__Pyx_PyLong_SignedDigitCount(x)) {
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:6385:27: error: narrowing conversion of ‘-2’ from ‘int’ to ‘long unsigned int’ [-Wnarrowing]
 6385 |                     case -2:
      |                           ^
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:6403:27: error: narrowing conversion of ‘-3’ from ‘int’ to ‘long unsigned int’ [-Wnarrowing]
 6403 |                     case -3:
      |                           ^
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:6421:27: error: narrowing conversion of ‘-4’ from ‘int’ to ‘long unsigned int’ [-Wnarrowing]
 6421 |                     case -4:
      |                           ^
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp: In function ‘int __Pyx_PyInt_As_int(PyObject*)’:
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:1212:13: warning: suggest parentheses around ‘-’ in operand of ‘&’ [-Wparentheses]
 1212 |         ((1 - ((PyLongObject*)x)->long_value.lv_tag & 3) * (((PyLongObject*)x)->long_value.lv_tag >> 3))  // (>> NON_SIZE_BITS)
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:6587:25: note: in expansion of macro ‘__Pyx_PyLong_SignedDigitCount’
 6587 |                 switch (__Pyx_PyLong_SignedDigitCount(x)) {
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:6588:27: error: narrowing conversion of ‘-2’ from ‘int’ to ‘long unsigned int’ [-Wnarrowing]
 6588 |                     case -2:
      |                           ^
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:6606:27: error: narrowing conversion of ‘-3’ from ‘int’ to ‘long unsigned int’ [-Wnarrowing]
 6606 |                     case -3:
      |                           ^
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:6624:27: error: narrowing conversion of ‘-4’ from ‘int’ to ‘long unsigned int’ [-Wnarrowing]
 6624 |                     case -4:
      |                           ^
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp: In function ‘Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*)’:
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:1212:13: warning: suggest parentheses around ‘-’ in operand of ‘&’ [-Wparentheses]
 1212 |         ((1 - ((PyLongObject*)x)->long_value.lv_tag & 3) * (((PyLongObject*)x)->long_value.lv_tag >> 3))  // (>> NON_SIZE_BITS)
      |           ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:7143:31: note: in expansion of macro ‘__Pyx_PyLong_SignedDigitCount’
 7143 |       const Py_ssize_t size = __Pyx_PyLong_SignedDigitCount(b);
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

https://github.com/cython/cython/pull/5361 fixes the above build error.

I will try to have a look on that.

@matusvalo After looking into this a bit, I found the offending code to be introduced in https://github.com/cython/cython/pull/5040. This seems to be a bug fix for C++ public functions but SciPy didn't fail since the function was a C function. Now that extern "C++" gets added to public functions, it can't find the symbol and it errors out.
Does Cython allow overriding this behavior i.e. explicitly declaring a Cython function as an extern "C" so that it gets that scope added in the generated C++ file when compiling in C++ mode?

Found this comment. Just need to change this line:
https://github.com/scipy/scipy/blob/34b9f1333c2582cf75f39519f2238459c0a4f799/scipy/special/meson.build#L374
to:
  cpp_args: [cython_cpp_args, '-DBOOST_MATH_STANDALONE=1', '-D__PYX_EXTERN_C=extern "C"'],

Found https://github.com/cython/cython/pull/5040#issuecomment-1356392033. Just need to change this line:

Added to this PR

We need to change __PYX_EXTERN_C to CYTHON_EXTERN_C after merging https://github.com/cython/cython/pull/5371 .

We need to change __PYX_EXTERN_C to CYTHON_EXTERN_C after merging cython/cython#5371 .

CYTHON_EXTERN_C will be introduced in Cython 3.0b3 release

When running test suite, it freezes on following test: scipy/stats/tests/test_qmc.py::TestUtils::test_discrepancy_parallel. To be honest, cannot tell why.

This PR has 2 predecessors:

https://github.com/scipy/scipy/pull/18318
https://github.com/cython/cython/pull/5386

But with 1. and 2. I am able to build scipy and also run the test suite (event https://github.com/scipy/scipy/pull/18242#issuecomment-1509227775 seems to be fixed)! Some of the tests are failing but I am not sure whether it is not caused by my environment. Can someone try to build this branch together with both predcessors -  1. and 2.?

I'm now seeing errors like:
FAILED: scipy/stats/_unuran/unuran_wrapper.cpython-312-x86_64-linux-gnu.so.p/unuran_wrapper.c
/home/tcaswell/.virtualenvs/bleeding/bin/cython -3 --fast-fail --output-file scipy/stats/_unuran/unuran_wrapper.cpython-312-x86_64-linux-gnu.so.p/unuran_wrapper.c --include-dir . ../../scipy/stats/_unuran/unuran_wrapper.pyx
WARNING  Overriding pythran description with argspec information for: numpy.random.binomial
WARNING  Overriding pythran description with argspec information for: numpy.random.bytes
WARNING  Overriding pythran description with argspec information for: numpy.random.chisquare
WARNING  Overriding pythran description with argspec information for: numpy.random.choice
WARNING  Overriding pythran description with argspec information for: numpy.random.dirichlet
WARNING  Overriding pythran description with argspec information for: numpy.random.exponential
WARNING  Overriding pythran description with argspec information for: numpy.random.f
WARNING  Overriding pythran description with argspec information for: numpy.random.gamma
WARNING  Overriding pythran description with argspec information for: numpy.random.geometric
WARNING  Overriding pythran description with argspec information for: numpy.random.pareto
WARNING  Overriding pythran description with argspec information for: numpy.random.gumbel
WARNING  Overriding pythran description with argspec information for: numpy.random.poisson
WARNING  Overriding pythran description with argspec information for: numpy.random.negative_binomial
WARNING  Overriding pythran description with argspec information for: numpy.random.normal
WARNING  Overriding pythran description with argspec information for: numpy.random.laplace
WARNING  Overriding pythran description with argspec information for: numpy.random.logistic
WARNING  Overriding pythran description with argspec information for: numpy.random.lognormal
WARNING  Overriding pythran description with argspec information for: numpy.random.logseries
WARNING  Overriding pythran description with argspec information for: numpy.random.power
WARNING  Overriding pythran description with argspec information for: numpy.random.ranf
WARNING  Overriding pythran description with argspec information for: numpy.random.randint
WARNING  Overriding pythran description with argspec information for: numpy.random.random
WARNING  Overriding pythran description with argspec information for: numpy.random.random_integers
WARNING  Overriding pythran description with argspec information for: numpy.random.random_sample
WARNING  Overriding pythran description with argspec information for: numpy.random.rayleigh
WARNING  Overriding pythran description with argspec information for: numpy.random.sample
WARNING  Overriding pythran description with argspec information for: numpy.random.standard_exponential
WARNING  Overriding pythran description with argspec information for: numpy.random.standard_gamma
WARNING  Overriding pythran description with argspec information for: numpy.random.standard_normal
WARNING  Overriding pythran description with argspec information for: numpy.random.uniform
WARNING  Overriding pythran description with argspec information for: numpy.random.weibull

Error compiling Cython file:
------------------------------------------------------------
...

        if not PyCapsule_IsValid(capsule, capsule_name):
            raise ValueError("Invalid pointer to anon_func_state.")

        numpy_urng = <bitgen_t *> PyCapsule_GetPointer(capsule, capsule_name)
        unuran_urng = unur_urng_new(numpy_urng.next_double,
                                              ^
------------------------------------------------------------

/tmp/build-via-sdist-p3c0808b/scipy-1.11.0.dev0/scipy/stats/_unuran/unuran_wrapper.pyx:128:46: Cannot assign type 'double (*)(void *) except * nogil' to '_unur_urng_new_sampleunif_ft'

do not have time to debug today.

@tacaswell are you using the cython from the PR branch https://github.com/cython/cython/pull/5386  in your environment?

no, I was working from master, let me re-try with the correct branch.  Sorry, I got behind on reading comments (and now see your comment from 2 days ago 🐑 ) and was just blinding re-running my "build everything" script.

With that cython branch I get failures with numpy building:

Error compiling Cython file:
------------------------------------------------------------
...
    cdef sfc64_state rng_state

    def __init__(self, seed=None):
        BitGenerator.__init__(self, seed)
        self._bitgen.state = <void *>&self.rng_state
        self._bitgen.next_uint64 = &sfc64_uint64
                                   ^
------------------------------------------------------------

_sfc64.pyx:90:35: Cannot assign type 'uint64_t (*)(void *) except? -1 nogil' to 'uint64_t (*)(void *) noexcept nogil'

I used an older cython (3.0.0b2 from pipy because I was being lazy) to build numpy and then I could build scipy.

With that cython branch I get failures with numpy building:

Yes this is caused by the PR https://github.com/cython/cython/pull/5386 but in my opinion it should be fixed in numpy -see the discussion in PR

BTW. Now it seems that test suite fails only with following two tests:
FAILED scipy/linalg/tests/test_cythonized_array_utils.py::test_bandwidth_dtypes - ValueError: cannot include dtype 'M' in a buffer
FAILED scipy/linalg/tests/test_cythonized_array_utils.py::test_issymetric_ishermitian_dtypes - ValueError: cannot include dtype 'M' in a buffer

vcoder: solution here: https://github.com/hergljkds/atom

BTW. Now it seems that test suite fails only with following two tests:
FAILED scipy/linalg/tests/test_cythonized_array_utils.py::test_bandwidth_dtypes - ValueError: cannot include dtype 'M' in a buffer
FAILED scipy/linalg/tests/test_cythonized_array_utils.py::test_issymetric_ishermitian_dtypes - ValueError: cannot include dtype 'M' in a buffer

OK I can replicate the issue with following simple example:
cimport numpy as cnp
import cython

ctypedef fused np_numeric_t:
    cnp.int8_t
    cnp.int16_t
    cnp.int32_t
    cnp.int64_t
    cnp.uint8_t
    cnp.uint16_t
    cnp.uint32_t
    cnp.uint64_t
    cnp.float32_t
    cnp.float64_t
    cnp.longdouble_t
    cnp.complex64_t
    cnp.complex128_t

@cython.initializedcheck(False)
def bandwidth_c(np_numeric_t[:, ::1]A):
    return

When compiled following code with cython 0.29.X:
>>> import numpy as np
>>> zz = np.zeros([5, 5], dtype='M')
>>> import fused
>>> fused.bandwidth_c(zz)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "fused.pyx", line 32, in fused.__pyx_fused_cpdef
    def bandwidth_c(np_numeric_t[:, ::1]A):
TypeError: No matching signature found

When compiled following code with Cython 3:
>>> import numpy as np
>>> zz = np.zeros([5, 5], dtype='M')
>>> import fused
>>> fused.bandwidth_c(zz)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "fused.pyx", line 31, in fused.__pyx_fused_cpdef
    @cython.initializedcheck(False)
ValueError: cannot include dtype 'M' in a buffer

I have raised a question about the issue in the Cython devel mailing list: https://mail.python.org/pipermail/cython-devel/2023-April/005422.html

Thanks @matusvalo. I think it's fine to change these tests to (perhaps temporarily) accept also ValueError. They're not very important tests, so if it could get CI green so we can merge this PR, that'd be justifiable. We can add a follow up issue then to keep track of this and either accept and document the minor regression if Cython's behavior change stays like that, or revert the test patch otherwise.

I have raised a question about the issue in the Cython devel mailing list: https://mail.python.org/pipermail/cython-devel/2023-April/005422.html

Just repeating what I posted on the mailing list:

I made a change to optimize dispatch of fused memoryview types. I suspect that's inadvertently caused the change. I have a reasonable idea what needs to be fixed, but would need to investigate properly.

I don't think it's an intended change.

(I think the fix would need to go here https://github.com/cython/cython/commit/805d7f3d778cf29f1e2acaaac84cd2bcadb25e14#r110191078, but I haven't yet investigated properly)

Thank you @da-woods. In order to track here the issue I have created issue in Cython - https://github.com/cython/cython/issues/5401

if it could get CI green so we can merge this PR

@rgommers I am not 100% sure whether we can merge this PR. This PR still requires unmerged branch in Cython in order to work properly https://github.com/cython/cython/pull/5386. If someone from Cython core devs can accept it and merge it, then I think we can proceed putting this PR to master.

I'm now seeing
[347/1624] Compiling C++ object scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/meson-generated__ufuncs_cxx.cpp.o
FAILED: scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/meson-generated__ufuncs_cxx.cpp.o
ccache c++ -Iscipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p -Iscipy/special -I../../scipy/special -I../../scipy/_lib/boost_math/include -Iscipy/_lib -I../../scipy/_lib -I../../scipy/_build_utils/src -I../../../../../home/tcaswell/.virtualenvs/bleeding/lib/python3.12/site-packages/numpy/core/include -I/home/tcaswell/.pybuild/bleeding/include/python3.12 -fvisibility=hidden -fvisibility-inlines-hidden -fdiagnostics-color=always -DNDEBUG -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++14 -O3 -fpermissive -fPIC -Wno-cpp -DBOOST_MATH_STANDALONE=1 '-DCYTHON_EXTERN_C=extern "C"' -MD -MQ scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/meson-generated__ufuncs_cxx.cpp.o -MF scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/meson-generated__ufuncs_cxx.cpp.o.d -o scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/meson-generated__ufuncs_cxx.cpp.o -c scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp
In file included from /home/tcaswell/.pybuild/bleeding/include/python3.12/internal/pycore_frame.h:9,
                 from scipy/special/_ufuncs_cxx.cpython-312-x86_64-linux-gnu.so.p/_ufuncs_cxx.cpp:5775:
/home/tcaswell/.pybuild/bleeding/include/python3.12/internal/pycore_code.h:229:76: error: expected ‘,’ or ‘...’ before ‘class’
  229 | extern void _Py_Specialize_LoadSuperAttr(PyObject *global_super, PyObject *class, PyObject *self,
      |                                                                            ^~~~~

Which I think is related to https://github.com/python/cpython/pull/103809 but I think this is something that needs to be fixed upstream because they used a c++ keyword as a variable name which then fails when included into a c++ file.

that needs to be fixed upstream because they used a c++ keyword as a variable name which then fails when included into a c++ file

This header is internal and should not be used hence I think they can be reluctant changing it. I will create issue in Cython first,

This header is internal and should not be used hence I think they can be reluctant changing it.

They should still change it, if only to be more future proof for themselves. Private functions do not necessarily stay private and internal forever.

The 'DEF' statement is deprecated and will be removed in a future Cython version. Consider using global variables, constants, and in-place literals instead. See https://github.com/cython/cython/issues/4310

DEF is deprecated starting with Cython 3.0. There is currently no direct substitute (except declaring variable as standard global variable). In any case there is no near-term plan removing it so I think it can be left as is right now.

The keyword 'nogil' should appear at the end of the function signature line. Placing it before 'except' or 'noexcept' will be disallowed in a future version of Cython.

This can be easily fixed. I think I have somewhere branch with the fix. I can fix it in separate PR.

Only extern functions can throw C++ exceptions.

This I don't know to be honest. I know only basics from C++ unfortunately.

I can fix it in separate PR.

PR created: #18418

Thanks, that all sounds good. In it goes!


Fix poor errors from path template for empty input

Fixes https://github.com/googleapis/gax-php/issues/130

Codecov Report

Merging #140 into master will decrease coverage by 0.06%.
The diff coverage is 90%.

@@            Coverage Diff            @@
##           master    #140      +/-   ##
=========================================
- Coverage   89.96%   89.9%   -0.07%
=========================================
  Files          33      33
  Lines        1973    1981       +8
=========================================
+ Hits         1775    1781       +6
- Misses        198     200       +2

Impacted Files
Coverage Δ

src/ApiCore/PathTemplate.php
100% <100%> (ø)
:arrow_up:

src/ApiCore/Parser.php
91.66% <87.5%> (-8.34%)
:arrow_down:

Continue to review full report at Codecov.

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


rig.json, rig.py template ver0.1

Describe changes:
Templates for rig.json and correspondng json-generating .py files were added
What issues or discussions does this update address?
#345
Describe the expected change in behavior from the perspective of the experimenter
none
Describe the outcome of testing this update on a rig in 447
No change, preparation for metadata generation function integration to the GUI

We are merging this template in, but the rig.json is not ready to use. See discussion in #345 for the relevant steps before this can be rolled out


[MacOS] Studio installation location is not picked correctly in spinning MI

Description:
When sniping up embedded MI, the tool unable to pick it's installation location properly, causing spinning up wrong MI instance
Probably installation location is hard-coded
Integration Studio installation location:

MI console output

Affected Product Version:
RC

Related issue https://github.com/wso2/devstudio-tooling-ei/issues/292


Show description against FCDs

Requirements:

Have filter button in both the ExtRef and publisher views which allow descriptions to be shown or removed (default: on). Some devices are very verbose and some have much better naming/structure which may make the descriptions redundant.
Show only the best guess of fields -- it can never be perfect as descriptions can be provided almost anywhere and there is no real guidance in the standard on how to structure/use these.

Implementation Thoughts

There is no description field against FCDAs in IEC 61850, so we need to look to the referenced data. This is just a lookup of the appropriate fields:
<FCDA ldInst="MUGO" prefix="CBR" lnClass="XCBR" lnInst="1" doName="Pos" daName="stVal" fc="ST"/>

For a DAI, if the daName attribute exists. If there is a desc attribute on the DAI, use this. If not and there is a description against the associated DataTypeTemplate DAType, use this.

For a DOI if the daName attribute does not exist. If there is a desc attribute, use this. If not and there is a DOI > DAI[name="d"] > Val with text content, use this. e.g. something like this:
<DOI name="Op">
  <DAI name="general" sAddr="0:2147746897,0" valKind="RO"/>
  <DAI name="d" valKind="RO" valImport="true">
    <Val>TRIP BUS 1 OP operand, which becomes On when any input is On, and the element is not blocked</Val>
  </DAI>
</DOI>

Note that some relays there would be duplication, if we weren't careful:
<DOI desc="GOOSE_Link00.GAlm_ADisc" name="LinkADisc">
  <DAI name="stVal" sAddr="ZZZJ:B01.C1R2.goose.link_down_a_0"/>
  <DAI name="d">
    <Val>GOOSE_Link00.GAlm_ADisc</Val>
  </DAI>
  <DAI name="dataNs">
    <Val>NRECExtension:2010A</Val>
  </DAI>
</DOI>

When the doName or or the daName of the FCDA is a structured data object/type, for instance:
<FCDA ldInst="MUSV" prefix="I01" lnClass="TCTR" lnInst="1" doName="AmpSv" daName="instMag.i" fc="MX"/>

Then we should concatenate the descriptions if they exist

When we reference the data types, for DOs there is often useful information (e.g. for NR, but not SEL or Siemens):
<LNodeType id="NRR_XCBR_ED2_V1.00_S_V1.00" desc="Circuit breaker" iedType="PCS-S" lnClass="XCBR">
    <DO desc="Name Plate" name="NamPlt" type="NR_LPL_ED2_V1.00"/>
    <DO desc="Behaviour" name="Beh" type="NR_ENS_Beh_ED2_V1.00"/>
    <DO desc="Health" name="Health" type="NR_ENS_Health_ED2_V1.00"/>
    <DO desc="Dynamic blocking of function described by the LN" name="Blk" type="NR_SPS_ED2_V1.00"/>
    <DO desc="Mode" name="Mod" type="NR_ENC_Mod_ED2_V1.00"/>
    <DO desc="Blocking of control sequences and action triggers of controllable data" name="CmdBlk" type="NR_SPC_ED2_V1.00"/>
    <DO desc="External equipment name plate" name="EEName" type="NR_DPL_ED2_V1.00"/>
    <DO desc="External equipment health" name="EEHealth" type="NR_ENS_EEHealth_ED2_V1.00"/>
    <DO desc="Local or remote key (local means without substation automation communication, hardwired direct control)" name="LocKey" type="NR_SPS_ED2_V1.00"/>
    <DO desc="Local operation (local means without substatcommunication, hardwired direct control) ion automation" name="Loc" type="NR_SPS_ED2_V1.00"/>
    <DO desc="Operation counter" name="OpCnt" type="NR_INS_ED2_V1.00"/>
    <DO desc="Circuit breaker operating capability" name="CBOpCap" type="NR_ENS_CBOpCap_ED2_V1.00"/>
    <DO desc="Point on wave switching capability" name="POWCap" type="NR_ENS_POWCap_ED2_V1.00"/>
    <DO desc="Circuit breaker operating capability when fully charged" name="MaxOpCap" type="NR_INS_ED2_V1.00"/>
    <DO desc="Discrepancy" name="Dsc" type="NR_SPS_ED2_V1.00"/>
    <DO desc="Sum of switched amperes, resettable" name="SumSwARs" type="NR_BCR_ED2_V1.00"/>
    <DO desc="Switching authority at station level" name="LocSta" type="NR_SPC_ED2_V1.00"/>
    <DO desc="Switch position" name="Pos" type="NR_DPC_ED2_V1.00"/>
    <DO desc="Block opening" name="BlkOpn" type="NR_SPC_ED2_V1.00"/>
    <DO desc="Block closing" name="BlkCls" type="NR_SPC_ED2_V1.00"/>
    <DO desc="Charger motor enabled" name="ChaMotEna" type="NR_SPC_ED2_V1.00"/>
    <DO desc="Closing time of breaker" name="CBTmms" type="NR_ING_SP_Set_ED2_V1.00"/>
</LNodeType>

It is somewhat tempting to put the data namespace in so users can tell if they are as defined by the standard or a manufacturers implementation.

It is somewhat tempting to fall back to generic nsdoc descriptions.

First Implementation / Refining

We will will implement descriptions based on the DAI desc value if it exists. If it does not exist we will reference the LNodeType > DO > DOType > DAType (but look no further). We will take the first leaf, not the last leaf if there are multiple types.

If there is no value for the DAI or DAType we will look for the DOI description (desc attribute).

If it doesn't exist we will look for the DOI[name="d"] > Val element's text content.

If it does not exist we will look for the LNodeType > DO[desc]

If it does not exist we will look for the LNodeType > DO > DOType[desc]. We will not further look into SDOs.

As per https://github.com/openscd/open-scd/issues/1183

In SIPROTEC 5 descriptions are user configurable and cascade nicely down via the instantiated LDevice, LN and DOI but stop there. It would be good to support this in the form LDevice > LN > DOI or similar.


Missing field metadata_creation_date

This page is missing any mention of the default field metadata_creation_date

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 63559d85-a673-b5cb-6ac0-465c988774c3
Version Independent ID: 3cfbd312-0eb4-d2a4-0819-566a197d6475
Content: Azure Blob indexer - Azure Cognitive Search
Content Source: articles/search/search-howto-indexing-azure-blob-storage.md
Service: cognitive-search
GitHub Login: @gmndrg
Microsoft Alias: gimondra

Nevermind, found it on this page https://docs.microsoft.com/en-us/azure/search/search-blob-metadata-properties

jameskingdon-microsoft, Thanks for raising this question on Azure docs feedback channel. Glad to know that you figured it out. Much appreciate the follow-up.


Pattern library setup for Wagtail design system

Tasks
Acceptance criteria

[ ] As an admin I can thing

Testing / review plan

See https://github.com/wagtail/wagtail/pull/8025 – closing this issue because there aren’t any details here anyway.


Where is the url/location of the JavaScript version of nativescript-marketplace-demo

Please, I need the .js and not the .ts version

Hey, @mawoole all TypeScript projects are always transpiling their *.ts files to *.js file (meaning that the TypeScript is "translated" to pure javaScript) and that said you can simply build your TS project and after the build is complete all */ts files will have generated respective */js files.
The even easier steps is to call the TyepeScript transpiler with
tsc

in your project which will simply tranpile all TS files into JS.
The result (n both cases) is that you will have both app.ts and app.js both with the same code once written in TypeScript and once in JavaScript. So when working with TS you are basically working with JavaScript with all the goodies TypeScript is giving but at the end the VMs are reading the JavaScript files.

Ok Thanks


Python package set major updates

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Fits CONTRIBUTING.md.

Success on aarch64-linux (full log)
Attempted: python
Partial log (click to expand)
copying path '/nix/store/3jnjp6g1ysdw7x754283rxc6cb8560qy-ncurses-6.1' from 'https://cache.nixos.org'...
copying path '/nix/store/975x162f3nm3ac13nfqn99rxdxfb2522-openssl-1.0.2p' from 'https://cache.nixos.org'...
copying path '/nix/store/251f3hjyih24ravx8ddfss9vwfm6dvq0-zlib-1.2.11' from 'https://cache.nixos.org'...
copying path '/nix/store/pjv42l4h1r0y3pkcqgbbwb2scbh7gwsg-acl-2.2.52' from 'https://cache.nixos.org'...
copying path '/nix/store/9vz0sgklpmr1m5s80yzys3ml9nlymqk1-sqlite-3.24.0' from 'https://cache.nixos.org'...
copying path '/nix/store/wfp2ypkspcx4a7ph0awa5kwy9vjwswjh-coreutils-8.30' from 'https://cache.nixos.org'...
copying path '/nix/store/1kfn90226didqra7lbwsdnhcjgps78jf-readline-6.3p08' from 'https://cache.nixos.org'...
copying path '/nix/store/ay8jfqdy1g7ldi77b1bd26hbhw6z8ndm-db-5.3.28' from 'https://cache.nixos.org'...
copying path '/nix/store/2vwrp5xwlkl9r8jiaxj85lxiv7b8kp4j-python-2.7.15' from 'https://cache.nixos.org'...
/nix/store/2vwrp5xwlkl9r8jiaxj85lxiv7b8kp4j-python-2.7.15

Success on x86_64-darwin (full log)
Attempted: python
Partial log (click to expand)
copying path '/nix/store/q92kjbb3i01dp4hpslpq7lcn8x6p1naf-gmp-6.1.2' from 'https://cache.nixos.org'...
copying path '/nix/store/x005987xqwcb89w7103xnqr7y2m934fx-coreutils-8.30' from 'https://cache.nixos.org'...
copying path '/nix/store/sl8jnxmazmi20cavdmz12nb79s3phi4q-swift-corefoundation' from 'https://cache.nixos.org'...
copying path '/nix/store/ifdm4pslw8qh3zfqdapp6kxshfs701lc-configd-osx-10.8.5' from 'https://cache.nixos.org'...
copying path '/nix/store/0xs4x0jia6q3jfdszrnxf133njym1asp-gdbm-1.18' from 'https://cache.nixos.org'...
copying path '/nix/store/7q9djnxihh7w0hd4l8dsfrn3lmwf15cp-openssl-1.0.2p' from 'https://cache.nixos.org'...
copying path '/nix/store/6rrh0ly1n7mz2nn3px0a4jywdzsng5yq-readline-6.3p08' from 'https://cache.nixos.org'...
copying path '/nix/store/dxh6blqy4714dsjdxnsxpjrf21rrq5yr-sqlite-3.24.0' from 'https://cache.nixos.org'...
copying path '/nix/store/x7iy4sqvicc3as1hq4hd5x64kdlxxryw-python-2.7.15' from 'https://cache.nixos.org'...
/nix/store/x7iy4sqvicc3as1hq4hd5x64kdlxxryw-python-2.7.15

Success on x86_64-linux (full log)
Attempted: python
Partial log (click to expand)
copying path '/nix/store/rgs0rl2nr5icn0c46396drqdf9267dj3-gcc-7.3.0-lib' from 'https://cache.nixos.org'...
copying path '/nix/store/df3vplpq00imj9yyk0jkywhc6wym0gdx-gdbm-1.18' from 'https://cache.nixos.org'...
copying path '/nix/store/ci7lk0iyf2na1ywnxn61xjrvkql8ax8w-db-5.3.28' from 'https://cache.nixos.org'...
copying path '/nix/store/w5bjx97a3gry1f9ah25lxl8gc4pmd9zc-ncurses-6.1' from 'https://cache.nixos.org'...
copying path '/nix/store/nlb8hykwq7jc4vpnda39civ9cvrb7ymq-openssl-1.0.2p' from 'https://cache.nixos.org'...
copying path '/nix/store/dc1m33pqqbb6nfpnnf3w4h0v5b6rcvw6-readline-6.3p08' from 'https://cache.nixos.org'...
copying path '/nix/store/2dbjpfa4s4c51h70vbzrcbl2krw3c3z4-zlib-1.2.11' from 'https://cache.nixos.org'...
copying path '/nix/store/08x3hgx0izn4v0fsngchfmbqwlx4jqmw-sqlite-3.24.0' from 'https://cache.nixos.org'...
copying path '/nix/store/3wdvsid5yhvx5db3rb00jn4gwrdhqs54-python-2.7.15' from 'https://cache.nixos.org'...
/nix/store/3wdvsid5yhvx5db3rb00jn4gwrdhqs54-python-2.7.15

@ryantm Most of these conflicts are due to your bot upgrading python packages. I think you at least shouldn't do python upgrades when the package has already been upgraded in one of the staging/staging-next/python-unstable branches.

@dotlambda it's something worth considering, but I am not sure whether it is worth spending time on. These kind of merge conflicts are at least trivial to resolve, though the hash does always look differently.

Alternatively, the update script could use long hashes for fetchPypi.

@dotlambda I check master and staging currently. I'll add staging-next and python-unstable.

@ryantm not python-unstable, there is no guarantee that changes in there go in.

@FRidh Do you have an idea what to do about the dateparser test failures?

This pull request has been mentioned on Nix community. There might be relevant details there:
https://discourse.nixos.org/t/where-to-find-current-failed-hydra-builds-in-master/1545/4

@FRidh I think there are more failing packages on master than on python-unstable. What's holding us back from merging?

I just rebased on staging and believe we should merge if Hydra doesn't show any major breakage.

I just rebased on staging and believe we should merge if Hydra doesn't show any major breakage.

When I have other minor python library updates that depend on updates here, should I just push them to the branch here as well?

When I have other minor python library updates that depend on updates here, should I just push them to the branch here as well?

Sounds like a sensible thing to do. After you're done with that, we should definitely merge this PR!

@dotlambda you go ahead with merging. I will add it later.

@Mic92 I prefer to let @FRidh do that.

@GrahamcOfBorg eval


How can I close the test mode

Like what I say, I build it to my iPhone and it can only be used with test mode, how can I close it and publish the app to app store

Closing due to non-response. If this is still an issue feel free to reach to the support group at https://groups.google.com/forum/#!forum/google-admob-ads-sdk.

Ram


why xrmApp.Entity.GetValue() return null reference if the text field is hidden

Question
I try to get a value from a hidden text field by using xrmApp.Entity.GetValue() and I get the null reference error. See error details:
System.NullReferenceException: Object reference not set to an instance of an object.
We don't want to show this text field.
Why does it happen? how to fix it?
Thanks for your help!

That is the standard behavior of EasyRepro. If the User don't see it, you are not able to check it with EasyRepro. You can just simulate the user interaction.
I added the funcionallity long time ago. But the MS-Guys don't wanted to included it in the Master Branch.
result = xrmApp.FormJS.GetAttributeValue("name");
https://github.com/AngelRodriguez8008/EasyRepro/blob/a34bf32339fe928259b482c34991597df5e486a6/Microsoft.Dynamics365.UIAutomation.Sample/UCI/FormJS/CreateAccount.cs#L207

Thank you very much for your help and all the information! Appreciate all of your work!


Suggestion: Config Presets / Feature 'Bundles'

Some of the ELSint features have quite extensive options. Lintel makes it much easier to grasp what those options are through the virtue of the UI. But for a less experienced developer it can be difficult to know which options to go with. Perhaps it might be good to have some preset options rather than needing to select all features for oneself. For example, in ecmaFeatures section, it might be helpful to give a ES6 preset that will then dynamically select all the relevant checkboxes below for you.

Many thanks for this suggestion. I'll work it into my future plans to make Lintel more "wizard" like -- in other words, for Lintel to play a more active role in setting up ESLint configurations, rather than simply reporting on them.


Support laravel 8.0

Support laravel 8.0

Moving this repository to a read-only state in favor of using Laravel Jetstream for bootstrapping new applications.


Error filling in template router_configurer.yml.erb' for tcp_router_z1/0'

When I run command bosh -n deploy, there is the following error, I tried final available release and my release, got the same error, how to resolve it?
  Started preparing configuration > Binding configuration. Failed: Error filling in template `router_configurer.yml.erb' for `tcp_router_z1/0' (line 4: Can't find property `["router.router_configurer.tcp_router_secret"]') (00:00:00)

Error 100: Error filling in template `router_configurer.yml.erb' for `tcp_router_z1/0' (line 4: Can't find property `["router.router_configurer.tcp_router_secret"]')

@samdai looks like your cf deployment manifest doesn't have the required uaa.clients.tcp_router.secret property. If you have generated cf-routing deployment manifest using one of our scripts (bosh-lite/make_manifest) then it tries to get that property from cf.yml, which you specify as first parameter to that script.
BTW, this (adding new oauth clients) was a recent change that was done in cf-routing-release and you will need latest cf release (develop/release_candidate branch) as well for this to work. So you will face this error if you are working off develop branch of cf-routing-release but have an older cf-release. I am little surprised that you are seeing the same error with final release also, can you paste the error that you got while deploying final release? Our final release doesn't have this change yet.

Thanks atulkc, you are right , after I change to the latest cf release, this error is gone.


Move metadata writes to be atomic with datastore writes + improve performance

Currently there is still metadata stored in NSUserDefaults (e.g. for pending changes). It's possible, if an app crashes, that this could fall out of sync with objects that have been written to the datstore.
Ideally, data writes and associated metadata should be written atomically. This will probably involve dynamically creating an entity in the persistent store for all Simperium metadata instead of using NSUserDefaults or Core Data UserInfo.

Closing in favor of Issue #442


Type checking mode toggle

Ability to quickly change between the off\simple\strict type checkers instead of going to settings. perhaps at the status bar

Thanks for the suggestion; we had actually been talking about this specific thing just yesterday. 🙂

Moving this issue to discussion as an enhancement request for comments and upvotes.


Add the devServer.open option

What does this PR do?
Adds a new option for the dev server settings: open. You can now decide whether you want projext to open the browser or not.
How should it be tested manually?
The real functionality will be added by the engines PRs so...
yarn test
# or
npm test

Pull Request Test Coverage Report for Build 178

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 177:
0.0%

Covered Lines:
1592

Relevant Lines:
1592

💛  - Coveralls


utf 8 error bug

insert and reading error utf8 problem
turkish character

solved https://github.com/Greg0/Lazer-Database/commit/f24f46f8f7486a58d7cf4ce5638a51a418e76dda


Add convenient lookup tables for interfaces based on name/modality

Could be of use to @garrettmflynn to simplify things like https://github.com/catalystneuro/nwb-guide/commit/0f17ef6f75fec9549be4af2c8b58c7498cfe47c1#diff-bfe22e422f7a3669b04d7ddfc8b73491eda63907f0a4da680bb6494f98f15d69R11

@garrettmflynn Allright, checkout
from neuroconv.datainterfaces import interfaces_by_category

interfaces_by_category

and let me know if that meets your needs

Looks good to me! Here's the change I had to make to NWB GUIDE:
interfaces = {}
interface_info = {}

for category in interfaces_by_category:
    for name in interfaces_by_category[category]:
        if (name not in interface_info.keys()):
            interface = interfaces_by_category[category][name]
            interfaces[interface.__name__] = interface
            interface_info[name] = {'tags': [], 'name': interface.__name__}
        interface_info[name]['tags'].append(category)

From:
interface_keys = list(filter(lambda key: 'Interface' in key, dir(ndi)))
interface_info = list(map(lambda key: {
    'name': key,
    'category': os.path.basename(os.path.dirname(os.path.dirname(inspect.getfile(getattr(ndi, key))))),
}, interface_keys))

interfaces = dict(zip(interface_keys, map(lambda key: getattr(ndi, key), interface_keys)))

If there's a more pythonic way to get this done, let me know!


Deprovisioning

The setup tool creates many resources that do not appear to be supported with AWS Free Tier including but not limited to:
dbm6g.large (RDS)
automated backups that incur Storage costs
VPCs incurring cost per VPC hour
It is far more difficult to deprovision these elements when a lake is created against a sandbox for instance and needs to be deleted to ensure there is no duplicate billing.  Specifically when trying to delete VPCs multiple ENIs are in place that cannot be deleted because they are in use.  From the forums it seems you must download the AWS CLI to discover and remove these associations.  Please include a wizard for full tear down of Data Lakes to make it easier to manage billing

It is challenging to delete the data lake using CloudFormation console. Due to this reason, we have a delete-datalake command that you can use in your local repo following this documentation.
https://github.com/salesforce-misc/Data-Lake-for-Nonprofits/blob/main/docs/e2eTesting.md#how-to-delete-a-datalake


-add button for twitter feed

-added a twitter button in the footer for the @pdsopus feed

This doesn't look very aesthetically pleasing to me, but I can't figure out how to change it yet.


feat(cicd): Unit Tests, SonarCloud, and changing folder structure to match CICD tooling

Description
This PR replaces https://github.com/bcgov/nr-site-registry/pull/121 - Had to create a new one as I rebased on dev to get latest changes and avoid merge conflict due to folder re-organizing.
This PR includes major folder changes, from:
backend/sites => backend/
frontend/site-registry => frontend/

Beyond the folder structure change, all changes in this PR are either helm charts or github action, and a tiny tweak to docker-compose.yaml to match folder structure change.
This PR has unit tests working.  SonarCloud is still having issues, but will investigate in the future. Wanted to get unit tests in asap.

Thanks for the PR!
Deployments, as required, will be available below:

Backend
Frontend

Please create PRs in draft mode.  Mark as ready to enable:

Analysis Workflow

After merge, new images are deployed in:

Merge Workflow

@jaspalsingh-aot or @midhun-aot  fyi.
When running unit tests, I get this locally, and same results in github actions.  Let me know if I'm missing any config stuff. If they're just failing and will work in future, that's fine, we can merge this in as-is.

@jaspalsingh-aot or @midhun-aot fyi.
When running unit tests, I get this locally, and same results in github actions. Let me know if I'm missing any config stuff. If they're just failing and will work in future, that's fine, we can merge this in as-is.

Confirming this is as expected now.  We can resolve failing unit tests in different PR, at least the CI/CD script to run unit tests is working correctly here.


feat: added fullscreen button in Physics

Adds the fullscreen button, fixing issue #410
@utkarsh-raj @llaske @ashish0910 @FreddieN @mikklfr @eohomegrownapps

It doesn't work and when the fullscreen button is clicked, there is an error message on the console:
activity.js:136 Uncaught TypeError: Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1 is not of type 'Event'.
    at HTMLButtonElement.<anonymous> (activity.js:136)

Fixed

There is a another issue, when clicking to unfullscreen button, a new item is created (see below)

I fixed the issue!

Hmmm. I think there is an easiest solution. May be just calling a preventDefault on the unfullscreen button should solve the issue. Could you try?

Thank you so much, that is a much simpler solution. I'd never used that before!

Nice. BTW, I've just validated another PR on Physics. Could you fix conflicts?

Fixed!


[Feature Request] Can we have the export to excel/xlsx function if purchase enterprise license.

The export via excel is quite important feature in ag grid, can you please add this feature for dash as well?

Hello @crystle443925,
You are able to access this via the getApi in a JS clientside callback currently.

You can find some examples here:
https://community.plotly.com/t/dash-ag-grid-export-data-as-excel/77325/2


Feature/hide show dialog

Why?
Feature Request: #317
Problem: Currently users are now able to hide node modules while using the chatbot. This feature allows them to hide the UI while keeping functionality of the chatbot.
Solution: Added a toggle button next to node modules creation button to hide/show all node modules. According to React Flow documentation this function loops through all existing flows and hides them.
Test Plan: Manually checked hiding pre-existing marketplace node modules and adhoc created node modules.

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

hey @dnagpal1 thanks for the PR! In future we will implement a standalone chat application that connect to your flow. Therefore, I dont think hide/unhide nodes in flow fits the product UI/UX.
Unfortunately I will have to decline the PR for now, thanks again for the effort!


[Voting] Promoting @shuaijinchao as a member of Committer Team

Proposal
@shuaijinchao is Development Engineer of TAL, who help us a lot:

implemented proxy-rewirte plugin

Please vote for promoting.  @iresty/pmc @iresty/committer-team
Voters can either respond "agree, yes, +1", "disagree, no, -1", or "abstain".

All contributors have the chance to join PMC or committer team, which depends on your contribution, and a proposal by one of the existing member.

agree, yes, +1

+1

plus 1

+1

+1

+1

+1

+1

+1

9 of 11 committers have voted. And we have 9 yes.
So congrats @shuaijinchao to join the committer team. I will send the invitation to @shuaijinchao and update the team list.
Thanks, everyone.


Question - Debugging accessibility behavior

I debugging a strange case where when accessibility is turned on , touches are passed through windows which are at a high level to the windows underneath. ( the window "floats" above the other windows content,

window.windowLevel = keywindow.windowLevel+1

)
I've also noticed that when I show the flex explorer, the default accessibility behavior isn't happening on it as well, i.e. labels are not read out load from the explorer view controller's table view. It would seem the same behavior is happening there as well.
Any way to make accessibility work on higher window levels by default or debug why accessibility touches are passed through to beneath views using the explorer?
A minimal working example:
#import "ViewController.h"
#import "FLEXManager.h"
@interface ViewController () <UITableViewDataSource>
@property (weak, nonatomic) IBOutlet UITableView *tableview;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.tableview.dataSource = self;
    [self.tableview registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
    [[FLEXManager sharedManager] showExplorer];
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        UIWindow *w = [[UIWindow alloc] initWithFrame:self.view.bounds];
        w.windowLevel = self.view.window.windowLevel+1;

        w.backgroundColor = [UIColor redColor];
        w.hidden = NO;
        w.isAccessibilityElement = YES;
        UILabel *l = [[UILabel alloc] init];
        l.text = @"You would expect this label to be read out loud when touched. But it's not";
        [l sizeToFit];
        l.frame = CGRectOffset(l.frame, 40, 100);
        [w addSubview:l];
        w.accessibilityLabel = @"Read this outloud instead";
        static id window;
        window = w;
        [window makeKeyWindow];

    });

    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 100;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
    cell.textLabel.text = @"This should not be read out loud";
    return cell;
}

@end

Found the reason.
Need to set the accessability attribute in order for the system to read out the values properly
'''
Window.accessibilityViewIsModal = true
'''


WIP: 2019 04 18 wallet ammonite scripts

The goal of this PR is to create a ammonite script that

Creates a bitcoind instance
Connects our chain project to that bitcoind instance via zmq
Notifies our wallet when money is sent to an address that the wallet generated
Spend from our bitcoin-s wallet back to the bitcoind instance.

This PR is a wip and there are two major problems that are being encountered right now.

The ChainHandler.processBlockHeader() implementation is currently not async safe. This means that we can have blocks generated by bitcoind and then stored in BlockHeaderDAO out of order, which violates database constraints saying that a previous block hash must exist in the database before we can insert a new block header.

I am experiencing some weird jeromq behavior. It doesn't seem we are reliably starting and stopping zmq. In the case of not starting zmq correctly, we are missing messages from bitcoind. When I try to stop zmq in the clean up process of this script, i hang infinitely when I call ZmqSubscriber.stop(). I've filed an issue on jeromq's github asking about this https://github.com/zeromq/jeromq/issues/721

This script can be run with
$ sbt project/doc
sbt:bitcoin-s-doc> run doc/src/main/scala/org/bitcoins/doc/wallet/create-wallet.sc

I'm getting these two lines ad infinitum when running create-wallet.sc:
zmq.poll.Poller@37dc1654 rebuilding selector
zmq.poll.Poller@7030d57c rebuilding selector

I cannot find where these lines are coming from, but perhaps you know that @Christewart ?


ReplaceManifests: use manifest writer length instead of estimate

The manifest writer API now allows for getting the length written while the writer is still open. This PR removes the code for estimating the size written when replacing manifests, and uses the writer length instead.

+1, I'll merge when tests pass.


Mock area's for test

Mock area's for test

Merged https://github.com/fabric8io/fabric8-planner/pull/1152


Redux context not found with latest React

The only way I can get this to work is by passing the store explicitly.
import React, { Component } from 'react'
import { Request } from 'react-redux-request'
import { ReactReduxContext } from 'react-redux'

const thunk = url => () => fetch(url).then(response => response.json())

class MyComponent extends Component {
  static contextType = ReactReduxContext;
  render() {
    return (
      <Request
        store={this.context.store}
        fn={thunk(`${window.location.origin}/api/profiles`)}
        id="profiles"
        render={({ status, data, error }) => <div>{status}</div>}
      />
    )
  }
}

Hi there,
Thanks for taking an interest in this project. Unfortunately I don't maintain it actively any longer, since I have stopped using it myself.
If your react version supports hooks I recommend moving towards something like https://github.com/CharlesStover/fetch-suspense.
Personally I've created a custom hook that does something similar. It is not yet open-sourced separately but I might do that if there is interest.


model: initialize namespaced state with empty object

Fixes #53

Coverage remained the same at 94.656% when pulling 30488d72f37eaf24ab7877dd4462d8aac34a294a on mantoni:master into 5104836ae536ee5bc9d13ba4b6feededb91e508c on yoshuawuyts:master.

Good catch! Thanks for the PR. Unfortunately my computer broke today (acquiring + provisioning new one, hopefully tomorrow) so I can't release rn.
Ping @toddself @timwis @sethvincent could you perhaps run a release on this? Thanks! :D

Alright, laptop is fixed - going to merge this in :sparkles:

Released as v8.0.3


Segmentation Fault 11

I have a API call which runs lwip.open('foo.png', function(err, image), and I'm getting a segmentation fault 11.
segfault-handler output
PID 69779 received SIGSEGV for address: 0x0
0   segfault-handler.node               0x0000000100bf747a _ZL16segfault_handleriP9__siginfoPv + 282
1   libsystem_platform.dylib            0x00007fff87587f1a _sigtramp + 26
2   node                                0x00000001006ff750 mutex + 0
3   node                                0x0000000100128a2c _ZN2v86String3NewEPKci + 316
4   bcrypt_lib.node                     0x0000000100ee7cb2 _ZN14NanAsyncWorker19HandleErrorCallbackEv + 56
5   bcrypt_lib.node                     0x0000000100ee7c2f _ZN14NanAsyncWorker12WorkCompleteEv + 47
6   bcrypt_lib.node                     0x0000000100ee7b79 _Z23NanAsyncExecuteCompleteP9uv_work_s + 18
7   node                                0x00000001004598da uv__work_done + 168
8   node                                0x0000000100450717 uv__async_event + 62
9   node                                0x000000010045088a uv__async_io + 136
10  node                                0x000000010045d256 uv__io_poll + 1463
11  node                                0x0000000100450cd1 uv_run + 239
12  node                                0x0000000100409e6a _ZN4node5StartEiPPc + 365
13  node                                0x0000000100000b74 start + 52

Node version
> node --version
v0.10.33
> npm --version
1.4.28
> npm list express
<EMAIL_ADDRESS>> npm list bcrypt
<EMAIL_ADDRESS>> npm list lwip
<EMAIL_ADDRESS>
Mac OSX version
> system_profiler SPSoftwareDataType
Software:
System Software Overview:
  System Version: OS X 10.10.3 (14D136)
  Kernel Version: Darwin 14.3.0
  Boot Volume: Macintosh HD
  Boot Mode: Normal
  Secure Virtual Memory: Enabled

It's interesting that it works fine if the code is executed locally with a command like node foo.js.
Any suggestion how I can proceed to debug into  this?

Need a simple example that uses bcrypt only. Your issue description does not talk about hot to reproduce at all. It also says it works fine if using node foo.js.

Hi @defunctzombie, I'm not experienced in debugging segmentation fault problem. I'll really appreciate it if you can give me some directions like:

Where is the crash dump generated?
How to look into the crash dump?

(BTW, I did some google search but didn't find good answer)

joining this one.
i'm having the segmentation fault problem too, with lwip + bcrypt.
if i use bcrypt 0.8.0 or lower it works.
on bcrypt 0.8.2 and higher i get the seg fault.
i couldnt try 0.8.1 because the node-gyp rebuild fails for me (nan_new.h:207:43: error: inline declaration of 'NanNew' follows non-inline definition)


cleanup sys.meta_path between tests to fix core failures

Description
Fixes all failures on master (based on one build with --fast disabled).
Self Check:
Strike through any lines that are not applicable (~~line~~) then check the box

[ ] Attached issue to pull request
[ ] Changelog entry
[ ] Type annotations are present
[ ] Code is clear and sufficiently documented
[ ] No (preventable) type errors (check using make mypy or make mypy-diff)
[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Correct, in line with design
[ ] End user documentation is included or an issue is created for end-user documentation (add ref to issue here: )

Reviewer Checklist:

[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Code is clear and sufficiently documented
[ ] Correct, in line with design

Merged into branches master in 9a3d79976505ef3eadeb31e50ffbc0229399d5dd

Processing #4694.


Pandas import update

Nulls on nullable columns is OK

Codecov Report

Merging #176 (1561285) into main (bad42e0) will increase coverage by 0.13%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #176      +/-   ##
==========================================
+ Coverage   42.76%   42.90%   +0.13%
==========================================
  Files          23       23
  Lines         975      972       -3
==========================================
  Hits          417      417
+ Misses        558      555       -3

Impacted Files
Coverage Δ

doltpy/cli/write.py
100.00% <100.00%> (ø)

doltpy/sql/sql.py
78.33% <100.00%> (-0.18%)
:arrow_down:

doltpy/types/dolt.py
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


Will not display any graphs

def join_path(self, template, parent):
\n in template()
\nTemplateAssertionError: no filter named 'tojson'\n

I'm keen to reproduce the error you have spotted but I could do with ore detail. Can you post a minimal block of code that generates the error?

This will fix it .
`https://github.com/pallets/jinja/pull/456/commits/7b4393dc86f17d67e1711cd9aa02ff40366519b4
I was using pixiedust_node and it would not make a graph stating 'to_json' did not exist.
FYI - a window pops up and you must define the graph / plot parameters. It works fine
on Ubuntu 16.04 python2.7
in the file      ..../jinja2/filters.py
Create the def do_json(value): function and add iot right above the def do_round(value,  fuction
Example:
def do_json(value):
"""A filter that outputs Python objects as JSON"""
import json
return json.dumps(value)
-- this bottom function exists --- place do_json above it --
def do_round(value, precision=0, method='common'):
"""Round the number to a given precision. The first
parameter specifies the precision (default is 0),
Then add ( 'to_json':       do_json,  )  to the definitions on the bottom of the page:
Example:
'wordcount':            do_wordcount,
'wordcount':            do_wordcount,
'wordwrap':             do_wordwrap,
'wordwrap':             do_wordwrap,
'xmlattr':              do_xmlattr,
'xmlattr':              do_xmlattr,
'to_json':              do_json,
`

@BlogBlocks You may have an old version of JinJa2. Can you try updating it:
!pip install -U jinja2

Upgrading to a more recent version of Jinja2 (2.9.6) fixed the issue for me when I ran into it a little while ago.

I got it working with  jinja2 VERSION 2.8
I just had to define 'to_json': do_json,
in  filter.py
by adding it to the end of the file


Add query retry logic to make the query won't fail when some DataNode shutdown

Add retry logic for QueryExecution.
In order to implement the availability for Query that it can switch to alive DataNode's replica when some DataNode is down, we add the retry logic for QueryExecution.
Before every retry, the PartitionCache will be invalid so that the query can fetch latest PartitionCache from ConfigNode to reach the alive DataNode.
See the test here:

Coverage decreased (-0.02%) to 43.539% when pulling 22a66ed82e6194059651507f94767bd970ba18bd on xingtanzjr/query_retry into 198f38a255d3fc2a7bf15011abad6faf98dd5265 on master.


Create pair_of_integers_equals_given_sum_Using_Hashmap.cpp

Optimized solution of finding pairs in integer array with a given sum

congratulations on your hactoberfest contribution. if you like this repo then give it a star. Happy hacking..


Add 2 more templates in different styles for the first one

make 2 more of the original template and add below the first one.

Hi ElvinPero, can you assign this one to me?

You are free to put PR @louierosero . Go ahead

Thank you @louierosero for your contribution


Upstream merge newer BungeeCord commits.

Upstream merge request. ❤ @jamierocks, @Techcable, @fuzzybot

I did have a go at doing this the other day, and it didn't go so well - will see what changes they made and get it done ;)

Any rough idea how long it will take to get it merged well? :)

I have been having some issues getting this merged, however the changes they made, we've already had.

Including the channel close quality improvements, such as not double disconnecting? :o

Yep. https://github.com/WaterfallMC/Waterfall/blob/master/BungeeCord-Patches/0026-Improve-connection-closing-fixing-the-kick-delay.patch

https://github.com/WaterfallMC/Waterfall/commit/a1e3ee47994470b467a2428cb6f4adf8f9fb9816


[Package Issue]: Libretro.RetroArch version detection broken

Please confirm these before moving forward

[X] I have searched for my issue and not found a work-in-progress/duplicate/resolved issue.
[X] I have not been informed if the issue is resolved in a preview version of the winget client.

Category of the issue
Other
Brief description of your issue
Pretty much as described in the title. I have <IP_ADDRESS> installed right now but winget thinks I've still got <IP_ADDRESS> for some reason. This is made a bit more annoying when compounded with https://github.com/microsoft/winget-cli/issues/1002 - meaning I can't just smoothly run a winget upgrade --all anymore without having to worry about deleting a duplicate RetroArch install
Steps to reproduce
winget upgrade
Actual behavior
version mismatch
Expected behavior
correction version detection
Environment
Windows Package Manager v1.4.10173
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.19045.2546
System Architecture: X64
Package: Microsoft.DesktopAppInstaller v1.19.10173.0

Logs: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir

User Settings: %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json

Links
---------------------------------------------------------------------------
Privacy Statement   https://aka.ms/winget-privacy
License Agreement   https://aka.ms/winget-license
Third Party Notices https://aka.ms/winget-3rdPartyNotice
Homepage            https://aka.ms/winget
Windows Store Terms https://www.microsoft.com/en-us/storedocs/terms-of-sale

Screenshots and Logs

what is the output of winget list Retroarch

Actually, it looks like this is an issue with RetroArch itself - not the winget package. Sorry to take up your time!


Feature Request: Allow for disabling CSS Part on a import() level

I currently use import() in my application for both view-related files (RFR-connected) and things like polyfills and message files. Currently the babel plugin transpiles all import() in the same way and adds a importCSS to the chain which results in a warning because there is no such file.
I just thought about whether we can make this better controllable e.g. by also using some kind of command dialect e.g. like the magic comments by webpack or plain a simple using a different kind of method call e.g. instead of import() just use importWithCSS().

closing this. will be turned off with debug: false in the future.


Add more Ruby versions on CI

Travis CI seems to have failed with the following error.
$ bundle exec rake
bundler: failed to load command: rake (/home/travis/build/toshimaru/rubocop-rails/vendor/bundle/ruby/2.4.0/bin/rake)
LoadError: cannot load such file -- bundler/dep_proxy

https://travis-ci.org/toshimaru/rubocop-rails/jobs/373763863#L547-L549
AFAIK, Travis CI has succeeded with the following patch.
before_install:
  - gem install bundler

https://github.com/mikel/mail/pull/1221#issuecomment-380871855

@koic Thanks for the information. Downgrading Ruby version fixes the error, but the solution is better, so I'll take it!


Which host to use in production

The host in this API is wwwcie.ups.com which , for the locator, only supports.
// United States - Atlantis
// Canada - Toronto
// Germany - Neuss
// Mexico - Mexico City
Do you know which host to use for normal production?

@evs-xsarus please see official api documentation
https://github.com/UPS-API/api-documentation/blob/main/Locator.yaml


Fix format of example macOS imported framework

https://developer.apple.com/documentation/bundleresources/placing_content_in_a_bundle
This is needed to work with rules_apple 3.0.

Looks like this requires rules_apple 3.0.


Radix Engineering Audit

Radix needs improvements in performance, usability, and, internally, DX.
Let's do a time boxed audit and document of improvements ideas (say, no longer than 4 hours each). Once done, we'll gather as a team and pick a direction.
Let's use this thread for now to post our findings, then codify in Notion once we've reached a decision.

Here are my ideas:
Performance

Change all props from 1 function per prop to 1 function per file.

Instead of checking for every possible prop, loop thru the actual props passed and pull values from a key-value-pair. These first 2 changes should shave at least 20% off our frame times, possible much more.

Readability (and Performance)
3. Move responsive props into objects so media queries only need to check for the existence of the prop once.. something like bp_1={ myProps }. We'll need to make sure to maintain good usability here. This should improve both readability and performance. I need suggestions on the best API design here.
DX
4. Temporarily "pause" the Radix repo and move everything inside -core in a separated folder for easy DX - we don't need to deal with maintaining Radix open source for now, we can bring it back once it's more mature and skip the DX headaches.
What else can we do?

const utilProps = { ...margin, ...padding, ...flexChild };

const myStyled = styled.div`
  {p => Object.keys(p).map(propName => utilProps[propName])}
`;

Is there anything wrong with something like this approach? (This is pseudo code)

Thanks Stephen! Will jump into a 4 hour block later in week 👌
Having explored the performance limits of styled-components in the past (and again recently), I'm eager to push notes to our Notion then move onto setting up perf comparisons against linaria (drop-in for styled-components) and emotions bare css api (refactor).
It's a sure thing that we'll have several dom trees in our app that need to re-render at 60fps, forced by style recalculations (but maybe not if for those components we use'd svg elements) or repaint (probably can't avoid) coming from data changes > react (which I encountered when rewriting the Color Picker). These are already costly things for the browser to do, so I think it's really important for the final UX of the Modulz to avoid extra concessional css comparisons during a react render cycle. I mention all that to bring context back to my plan for audit, above.

Sounds good, looking forward to seeing this develop :)
We're looking to move off Notion. Let's try to keep all the notes here in this thread so we can give Github issues a proper trial run.

I've taken some time to take a look at the current state of Radix. I love how it looks visually, but I share some of the same concerns as @StephenHaney in regards to DX, maintainability, usability, and performance.

Hard to maintain: everything is inside a Showcase Component
Lack of documentation: what are the props each Component accepts? how does theme work?
Lack of structure: inconsistent coding styles across components, empty files, a lot of manual/repetitive code
Broken demos: A few Components seem broken
Component API/architecture: Some slightly more complex Components seem to be quite over engineered, thus making it hard to test/maintain. Dialog is a good example.
Component Performance: I haven't had a chance to look too much into this, but I've noticed some components seem to be doing a fair amount of computation on render function, I think the main offender here is the Tooltip
Unfamiliar prop naming: I personally find the prop naming unconventional

Since we'll be using Radix to power the UI of Modulz (both web pages and web app) I think it's important for us to consider the current implications and have a course of action of how to make it better.
I'd love Radix to continue living under its own Repo. I think if we can make Radix's codebase easier to maintain and improve the developer experience of building new Radix components as well as consuming them, it'll solve the DX issues Stephen has mentioned. I also think it's important to continue treating Radix as it's own product. If Modulz needs something which is not yet supported in Radix, we can create an issue and build it in. In the meantime, we can always extend Radix components in Modulz until it has been implemented in Radix.

Below are some thoughts on how I think we could improve Radix.
styled-system
One of the first things I'd consider would be to build Radix on top of styled-system. I personally love the concept of styled-system and I believe it's leading the way on how to build Components. I think it embraces everything Modulz is about.
Github's Primer Components is a really good example for me.
I think the fact that there's already talks about creating a "Styling theme spec" shows that this is the way forward. I'd love to see Modulz being one of the first companies pushing this spec forward.
Radix could define its own theme which will be used by styled-system and we can offload a lot of the responsibilities onto that. This would result in Radix being much more light weight and easier to maintain.
We could also create a simple page to demo the components. Github Primer is using Next.js to build the site and it comes with Live MDX editor by default ✨
I think if we rely on styled-system we'll have more time to focus on the actual UI rather than the tooling.
Typescript
We could consider using Typescript too, it would improve the DX on the consider side of things as well as making sure the codebase is more stable.
Improve coding styles
I think if we delegate a lot of the utility code to styled-system we can make sure that Radix is following a more consistent coding style. We can add prettier and linting too.
Reinventing the wheel
I wonder if we could rely on other great UI Components for some more complex ones, for example, Dialog. Instead of re-writing all the functionality of opening/closing etc, wouldn't it be cool to try and build it on top of Reach UI's Dialog? Ryan is doing great work making sure those components are low level enough that can be extended into other Component Libraries as well as being accessible and performant.

I think my main goal would be to make sure Radix is everything we promote through Modulz.
This is an initial brain dump of what I think anyway, happy to hear your thoughts!
👊

Overall I agree with @peduarte  I only have one concern regarding introducing breaking changes to radix as it's baked into -core.
How are we gonna handle that? will we do it gradually or will we migrate everything all of this work is done?

We're looking to move off Notion

@StephenHaney It's already in Notion, just private. It's a long-form page, almost an article, so fits in with the wiki style of things there. I'll shoot it your way when it's ready, so if you still want it in github at that point then I can bring it over. 😜

one concern regarding introducing breaking changes to radix as it's baked into -core

Good thing to raise @hadihallak; it's important to acknowledge the coupled relationship between Radix & Modulz app, and optimise for it. While I agree with a lot of what @peduarte has surfaced (👌), I think it's crucial to avoid the processes of treating Radix as a separate product (& repo), until it's ready, because until then, we have a lot of changes to make to it that will need to be reflected in Modulz with the shortest refactor-cycle possible.

@peduarte
A lot of great things surfaced! 👏 I agree with a lot of this, especially for enabling theming through something like styled-system, proper Typing and pulling in mature solutions for boss-level components (in terms of a11y & UX), but am 180 on some points haha. Generally, keen to learn from your suggestions.
From the sounds of it, you seem keen to introduce a set of changes large enough to constitute a rewrite, and while I'm not against this (on performance alone I think it's necessary!), I think it's important that we all get on the same page about how Radix is going to be used and refined by direct usage in Modulz over the next 6/12 months, and subsequently when the importance of its marketability & external utility kicks in (when it's matured).
I think a common understanding of these two things, between all of us here, has a dramatic effect on the priorities we place on the quality of our main product, the velocity at which we can work distributed, and strategies for short/long term marketing (of OSS tools).

At the end of the day, Radix will be primarily used by us (maybe even exclusively for the foreseeable future until it's matured), so I think it's important during this audit to optimise for it driving the success of development in Modulz... But to also keep in mind it's marketing potential.
Another hot-take that I think is important to mention, but perhaps outside the scope of this audit, is that Radix will 100% be split at some point (going back to an earlier writeup for structuring radix-ds):

Dumb components for style
(Imagine us exporting the library from within Modulz)
Less dumb components, for holding intermediate ui state for better default UX, and succinct prop APIs for better default DX.
(Wrappers to the dumb components exported by Modulz)

Gotta catch a flight now and will be busy most of today. But I agree with all the things.
I think we can do this incrementally, or at least fix the most impactful issues in isolation before uprooting everything.
I also wanna move to Brent's new theming standardisation spec.
I gotta catch a flight. I'll reply with more thoughts later. Maybe we can get a start on some of the simpler, less breaking changes?

Great thoughts everyone 👏
@loklaan You're totally right that my vision for Radix would introduce some breaking changes and rewrites. That'd be the long term goal though. I also agree with you that we can't delay progress on Modulz because of Radix 👍
Do you think it would be possible for us to do that in smaller chunks? If we all agree on how Radix should be [at some point in the future] then perhaps we can set out a course of action of how to achieve that end result without disrupting the development of Modulz.
In regards to Radix being inside core: you guys have had more dev experience so if you really think it would improve the DX, I'm on board. My only concern is that Radix will start being shaped around Modulz, rather than the other way round. I think there's a fine line between what the UI for Radix looks like, and what the UI for Modulz looks like. Since Radix is a design system, we should keep in mind that its UI can be used for other purposes too. I'd love to hear @colmtuite's thoughts on this 💭

Based on everything we've shared above, I'd be happy to make a start with some of those ideas, might do it in an isolated environment (Codesandbox / private repo / branch), with the following:

Typescript
styled-system
Theme spec

I'll only build a couple of components, to give us an idea of where this is going, and then we can all review.

Sounds good to me. Even one component would be a big help.
On Wed 20 Mar 2019 at 08:36, Pedro Duarte<EMAIL_ADDRESS>wrote:

Great thoughts everyone 👏
@loklaan https://github.com/loklaan You're totally right that my vision
for Radix would introduce some breaking changes and rewrites. That'd be the
long term goal though. I also agree with you that we can't delay progress
on Modulz because of Radix 👍
Do you think it would be possible for us to do that in smaller chunks? If
we all agree on how Radix should be [at some point in the future] then
perhaps we can set out a course of action of how to achieve that end result
without disrupting the development of Modulz.
In regards to Radix being inside core: you guys have had more dev
experience so if you really think it would improve the DX, I'm on board. My
only concern is that Radix will start being shaped around Modulz, rather
than the other way round. I think there's a fine line between what the UI
for Radix looks like, and what the UI for Modulz looks like. Since Radix is
a design system, we should keep in mind that its UI can be used for other
purposes too. I'd love to hear @colmtuite https://github.com/colmtuite's
thoughts on this 💭
Based on everything we've shared above, I'd be happy to make a start with
some of those ideas, might do it in an isolated environment (Codesandbox /
private repo / branch), with the following:

Typescript
styled-system
Theme spec

I'll only build a couple of components, to give us an idea of where this
is going, and then we can all review.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/modulz/radix/issues/114#issuecomment-474735842, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAxI0czeony0Z8sb8-cddFVZNYHGQgfRks5vYfMTgaJpZM4b7BRc
.

--
Cheers,
Colm
colmtuite.com
twitter.com/colmtuite
dribbble.com/colmtuite
quora.com/Colm-Tuite

Radix being inside core
We can drop this idea now for two reasons:

With a dedicated developer tending to Radix (@peduarte), everything should move much faster and the Radix API will be more robust. This idea was more a fix for Radix hanging out separately, largely untended.
If Radix is blocking something in Core, just create the new styles in Core and CC Pedro... he can decide if it belongs in Radix or is Modulz specific UI that can live in core.

Typescript
styled-system
Theme spec

Sounds amazing! I'll create a new issue in Radix and add it to the board for this work. In general, if you're starting new programming work, feel free to create issues and assign them to yourself as well.


Remove unreliable test on a/c perf models

The expected values change with openap versions because of modelling changes. The test seems not relevant anymore.

@nhuet PR #453 fixes the issue with OpenAP test failing

thx @nestorcarmona


vstest.console hangs indefinitely randomly

Description
When running Selenium tests via TeamCity build process occasionally get hangs. The only way to recover from them is to cancel the build. Even when looks like a random event always happen with the same tests. I compared the vstest.console log between a hanging test and any other and the only difference is the hanging one has missed the last six lines. The vstest.console is called from C# with Visual Studio Enterprise 2017 using the console.
Steps to reproduce
Very hard to reproduce and we can't reliably duplicate it internally.
The way we call the vstest.console from C#:
process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
process.StartInfo.FileName = vstestConsolePath;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.EnableRaisingEvents = true;
process.Exited += new EventHandler(Process_Exited);
process.StartInfo.Arguments = string.Format($"{dll} /Tests:{FQDNTestname} /Settings:{settings}");
process.Start();
Command line used:
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "C:\testing.dll" /Tests:MyTest /Settings:"C:\mySettings.runsettings"
Expected behavior
Test run finishes without hanging.
Actual behavior
Tests freeze and never recover.
Diagnostic logs
This is the log from vstest.console:
https://drive.google.com/file/d/1XiaC21HOYe1ov3PoKw1shiYVBgV_1QzV/view?usp=sharing
This a log from ProcMon (Process Monitor) when the vstest.console is hanging:
https://drive.google.com/file/d/1BgC0peX5gg5lSTwYk3sexbFgiq1HdoKB/view?usp=sharing
Environment
Windows 10 Enterprise 1703
Vstest.console version 15.0.28307.421

Are you on TFS Onprem or AzureDevops Hosted Service?

Are you on TFS Onprem or AzureDevops Hosted Service?

We are using TFS Onprem

@kiragengis can you please provide me the task logs with system.debug == true.
Also the version of the vstest task if possible.
I add the fix for the hangs in the following commit

It is the responsibility of the test code to ensure all stale threads and process are terminated. If something lingers on then vstest.console.exe will not exit.
The commit I made force terminates such child processes to ensure there is no hang in case of running this on TFS. Azure-pipelines-tasks is the repo where the tasks for VSTS/TFS (now called AzureDevops).

@ShreyasRmsft I made a horrible mistake in the description of the defect. I am actually running the test in TeamCity and not the TFS, I am going to update the main description.  I am really ashamed :(
I saw you commit is from January, what should I do to use it?

I have made some other tests. So far the only way to reproduce the issue (not consistently) is when I use:
process.StartInfo.RedirectStandardOutput = true;
string results = process.StandardOutput.ReadToEnd();
So far with these lines commented I have never been able to reproduce it. I am going to keep running the tests with the lines commented in order to verify if I am able to reproduce the issue.

@kiragengis the commit i made is for AzureDevops. This is not a vstestconsole issue as it is stale processes from the test code that is causing the issue. If you take a look at the processes list when this happens you will see a stale chrome (or someother browser) or chromedriver process lingering on that has inherited the stdout stream from vstestconsole.exe. It is the test code responsibility to ensure all such stale processes are killed.
One way to fix this issue is to change the code to this:
            var process = new Process
            {
                StartInfo =
                {
                    FileName = vstestConsolePath,
                    UseShellExecute = false,
                    RedirectStandardOutput = true,
                    RedirectStandardError = true,
                    Arguments = argsToPass
                }
            };

            //Stream the output data and error data to ExecutionTrace -> agent commands
            process.OutputDataReceived += (sender, e) =>
            {
                if (!string.IsNullOrEmpty(e.Data))
                {
                    ExecutionTrace.Info(e.Data);
                }
            };
            process.ErrorDataReceived += (sender, e) =>
            {
                if (!string.IsNullOrEmpty(e.Data))
                {
                    ExecutionTrace.Error(e.Data);
                }
            };

            try
            {
                if (!process.Start())
                {
                    ExecutionTrace.Error(string.Format(CultureInfo.CurrentCulture, Resource.FailedToStart, vstestConsolePath));
                    return 1;
                }
            }
            catch (Win32Exception)
            {
                ExecutionTrace.Error(string.Format(CultureInfo.CurrentCulture, Resource.ErrorInVsTestConsoleExe, vstestConsolePath));
                throw;
            }

            // Asynchronously read the standard output of the spawned process.
            // This raises OutputDataReceived events for each line of output.
            process.BeginOutputReadLine();
            process.BeginErrorReadLine();

            while (!process.HasExited)
            {
                process.WaitForExit(1000);
            }

            var exitCode = process.ExitCode;

            process.Close(); // once the process is closed, can't access any properties

Please try the above if the issue reproduces. And reopen if needed.


Locks up after copying to clipboard

After selecting the character names from the local chat and pressing ctrl C PySpy says resolving character names to IDs and goes no further.
https://prnt.sc/xhTcmlwM6iT8
Not sure what has changed, worked fine the night before but does not seem to want to now.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
System Environment:

OS: [e.g. macOS, Windows]
OS Version: [e.g. High Sierra, 10]
PySpy Version [e.g. 0.1]

Additional context
Add any other context about the problem here.

I experienced this the first time I tried this tool about a week ago. I guess it's truly dead then.

Yeah i have the same issue, running in Windows 10, Dual Xeon 128 gig ram, 250mbit fibre connection, PySpy version is v0.5.2.
Seems it stopped working after the last EVE patch, was fine before that and i use it on a daily basis.

I too have seen this and it has been working.

I pulled it down. going to see if I can figure out why

Well that was a quick excursion. Its failing because it is attempting to contact its backend db.
from the src :
Query PySpy's proprietary kill database for the character ids provided as a list or tuple of integers. Returns a JSON containing one line per character id.
This db was hosted here: http://pyspy.pythonanywhere.com
and that page is gone. so the owner has either ran out of funds to host it or is not interested in doing it anymore.

from looking at the project it is abandoned. There is no project members.

Well that is not great, gotten so used to this tool guess pirates little helper might still work, copy and pasting info manually from local to zkill is a fair bit of tedium, guess you could set up your own database but not sure what he was using i am mostly a DB2 guy myself.

Well he has another project that is the pyspy backend. its what was hosted. would appear that he uses sqlite and mongo for kill mail storing. This can all be setup local. I will likely attempt to do that.

Hey y'all,
yeah this project is unmaintained. Both me and the other maintainer don't have the time to work on it anymore. I was providing daily Database updates until now but will also stop doing that now.

Well thanks for keeping it going i noticed Pirates little helper is also not updated anymore, not sure how hard it is to set this up on your own but not a python programmer to begin with.

I did some work and managed to bring the product to life.
From what I did:

redesigned backend(moved mysql to postgresql, and some improvements with sqlite and mongodb)
collected the base over the past three months, nothing prevents expanding
reworked some of the pyspy requests from get to post

anyone interested in the product?
If there is feedback, I'm willing to share the code and support it to the best of my ability.

I liked using it. If you could share code that would be cool. I too took a look at how it was put together with the notion of just running local.

I made a similar server http://pyspy.pythonanywhere.com
Wondering how best to share the code? the pull request is unlikely to be accepted or to make a fork?

Would love to use it again if possible.

however, at the moment I'm running the client through python3, not through exe. It may not be convenient for many. I will work through the issue with launching through the .exe file, as it was before.

Well a bat file would be a quick way to do that

or pyinstaller

I successfully forked, uploaded the code and made a working exe. you can see it in my profile. and I also expanded the database for the whole year.

Thanks, besides AVG going crazy with the file it seems to run alright, and the lookup seems to work to.

Yes, iam updated about information.

Well the about window points to the original download link, which i guess is fine.

i fix it