Botanical name modeling

There have been several issues related to modeling botanical nomenclature, and several conversations on Matrix, and I thought I would try to write down the outstanding concerns, as I understand them. A Github issue seems as good a place as any to put this, for future reference.  No immediate issue resolution is expected.
Perhaps the best way to start is with the minimal elements of a data model that I see as being necessary:

Create a uninomial name (a) with original parent (A) and original author (X) → A a X (i)
Optionally allow for Y to validly publish an invalidly published original name by X, thus → A a (X ex Y) (ii)
Create any number of new combinations (e.g., species under different genera, or shift of rank within a genus). Each of these is a correct (sensu ICN) name → B a (X ex Y) Z, A b var. a (X ex Y) Q, etc. (iii)
Different taxonomists may prefer to accept different combinations, moving the other combinations into homotypic synonymy, so some method is needed to specify the accepted status, in the opinion of the person running this project in TW → Accepted: B a (X ex Y) Z; ≡ A a (X ex Y), ≡ A b var. a (X ex Y) Q (iv)
Each of these combinations is an effective new name in TW, and can be used to create OTUs. (v)
In an nomenclatural export (e.g., CoL dump), for each combination the original basionym would be given, as well as the status (accepted or homotypic synonym).  In the nomenclatural browser, this would be shown as: Salix pseudomonticola C.R.Ball ≡ Salix barclayi var. pseudomonticola (C.R.Ball) Kelso (iv)
In our work, we use a Taxonomic Concept, aka OTU, of Salix pseudomonticola C.R.Ball sec. Argus 2010 (v)

Based on my exploration of TW - but not a comprehensive understanding of it! - several of the above capabilities seem not to be present:

The existing implementation allows a single preferred (= accepted?) new combination to be chosen as the preferred name, but not the basionym. (cf. (iv))
To indicate an invalidly published name to be validly published (the ex relationship) two identical (uninomial, rank, parent) names must be created and linked with name relationship ‘validly published as’ (cf. (ii), #3315)
Once a combination has been established, in TW one can only create an OTU using the current preferred name, not the basionym. For our Taxon Concept modeling we need to indicate which exact taxonomic name is used (c.f. TDWG’s TCS2). (cf. (v))

In essence, It seems that TW offers a linear path from basionym to one of the new combinations, with a single preferred name to use for OTUs. Currently, in order to model branching a graph such as indicated above, it is not possible to just create a single protonym with combinations, but one must follow one of two approaches (omitting the complication of the ex):

for each name (A a, B a, A b var. a) create a new protonym A a, then create the combinations for B a and A b var. a, and then indicate synonymy with relationship homotypic synonym between A a and B a, and A b var. a and B a, or,
for each name (A a, B a, A b var. a) directly create new protonyms without combinations, using verbatim authorship to make the parentheses ((X) Q, (X) Z), and then indicate synonymy with relationship homotypic synonym between A a and B a, and A b  var. a and B a, and is basionym of relationships from B a to A a, and A b var. a to A a.

However the creation of these additional protonyms seems to confuse the combination logic engine and the various independently created protonyms get ‘tangled up’ (demonstration offered, when we meet).
If there were to be no further discussion/development of this, approach (2) would be the way to go, being simpler, and completely avoiding the combination logic engine.  However, this seems a shame, and currently does not export basionym relationships in the CoL dump.
None of this is a criticism of TW as it stands - these are just barriers I currently see for implementing a botanical monograph in TW. Thanks as ever for this powerful informatics tool.

The code also uses  “nomenclatural novelty”, it refers to any or all of the categories: name of a new taxon, new combination, name at new rank, and replacement name.  I understand you are specifically talking about new combinations, but these can at the same time be a name at new rank (comb. & stat. nov.); a nomenclatural novelty with a basionym need not be either of these.

@camwebb Do you have insights on this part of Rhakis?  What is the nature of "hasSynonym" between a concept and a name? I confess, I haven't RTM like I need to.

Adding the link as well: https://list.worldfloraonline.org/terms.php?format=.

What does "alternative" label mean?  Alternative to what?

Alternative to what?

To the accepted name
Did my reply make sense?

Did my reply make sense?

This is all me talking through things- I think so. I'm try to wrap my head around how TW persistence translates to this system.  There are some probably pretty important differences in how we store the data and what we assert/infer.  For example we have no direct 1-many relationship between OTU and name. This may represent a significant problem if we can't infer those data from the name-name relation assertions in TW.  My gut feeling is that because of the TW Citations we can infer what we need, but I have nagging doubts that we can be specific enough.
Stepping to the side of this exploration, the spawning of multiple concepts because of apparent versioning, not biological change, feels strange to me:
<https://list.worldfloraonline.org/wfo-0000929086-2024-06>
  a wfo:TaxonConcept ;
  dc:replaces <https://list.worldfloraonline.org/wfo-0000929086-2023-12> ;
<https://list.worldfloraonline.org/wfo-0000929086-2024-06>

I.e. what changed (biologically, conceptually) between https://wfoplantlist.org/taxon/wfo-0000929086-2023-12 and https://wfoplantlist.org/taxon/wfo-0000929086-2024-06?
Because these are identical for all intents and purposes, I have doubts as whether these would be 2 OTUs in TW?  Would it ever make sense to relate these two with a RCC5 relationship?
Maybe we have 3 things in TW:

OTUs (anonymous biologically-based circumscriptions)
Nomenclatural assertions, sensu NOMEN
Inferred TaxonConcepts, sensu TCS2

Thanks for helping me through this.

I hope I can clarify stuff a little and not muddy the waters. Some of this is cut and paste from documentation elsewhere
First Principle
The botanical code of nomenclature is a mechanism for humans to get together and chat about stuff. It is not logically consistent and even if it were it is changed every few years (with nearly all changes being retrospective) and so modelling it in software beyond a very high level is a fool's errand. What is correct now might not be correct in the future and names in past publications will not follow the rules of today. Having a good model of today's code does not enable you to parse names in publications from the 19th and 20th centuries. I could wax lyrical about this but I'd just be sharing my neurosis.
What is a name
The code defines a name as a name. It is very unhelpful.
Rhakhis takes a pragmatic approach to what is regarded as a name. The ICNAFP defines a “name” strictly as something that meets the criteria to be considered validly published under the rules of the code. Something that “appears to be a name” but that does not meet these criteria is considered to be a “designation” not a name under the code. This means we can’t know for sure if a name is a name under the code until it is full researched. Because Rhakhis has to track putative names before their publication status is know the names component includes both names that may turn out to be merely designations and names that are valid under the code. Whether a name record is created for a name/designation found in literature is a judgement call made by the data editors. Even if a name is subsequently discovered to be merely a designation it is kept to maintain data integrity and to prevent it being re-researched at a future date. If two name records are judged to represent the same name/designation then they may be merged but the associated WFO IDs are never deleted. The term designation is not used beyond this discussion.
Bottom line: A name is a row in our names table that an editor thinks is worth keeping!
*** Taxon Concepts ***
From one perspective Rhakhis is not a taxon concept based approach as only a single classification is currently modelled and no attempt is made to delimit the taxa, either by listing specimens or with descriptions. From another perspective it is a taxon concept based approach because their is an implied delimitation of the taxa based on the types of the names placed in them as well as the taxonomic references provided. The Plant List API takes more of a concept based approach because it stores each copy of the taxonomy that is published and maps between them, on the basis of their names, using “replaces” and “isReplacedBy” assertions. The concept based approach can either be embraced or ignored as it makes no difference to building a shared taxonomic backbone.
*** Are the two Salix alaxensis different? ***
wfo-0000929086-2023-12
wfo-0000929086-2024-06
Unless you have a very tight, well defined way of delimiting taxa (nobody does) then it is not a question that can be answered beyond "they are if it is important to you". This is why the world has worked perfectly happily with people just using names for the last few hundred years. Provided there is enough overlap between your definition of a thing and my definition of a thing for us to get by then who cares!
If we consider a simple classification as a method of defining taxon concepts (i.e. as a set of TBox statements). If a species has different siblings in classification A vs B does that make it different in the two classifications? It implies a reworking of the species boundaries in the genus so probably. If it has different synonyms then probably because some of the specimens considered part of it (or their statuses) have changed. If it has different children? If it has different ancestors? Basically any change to the classification can be considered a potential change to the taxon boundaries.
In WFO Plant List we version the names in each classification. These are not strict Taxon Concept identifiers because they exist for synonyms and unplaced names (which are just names with no volume) but they act as concept identifiers for the accepted taxa. They are like placement identifiers really. In reality 99% of everyone uses ten digit name IDs! The way we track stuff does allow us to talk about how the use of those names has changed through time. That is probably all that is achievable in a practical sense as we do not have a universal way to define taxon concepts.
The identifier structure is documented here https://list.worldfloraonline.org/
Congratulations if you've read this far! I find these things get way too detailed and we really don't need to bother too much to answer real biological questions.

I believe ChecklistBanks model follows +/- the same ideas Roger has explained for Rhakis. Synonyms are largely just names linked to an accepted name without further properties, with the rare exception of a "name phrase" suffix which gets appended to the pure name. That is mostly used for misapplied names when you want to have things like auct. amer., non. Mill., s.str., etc.
In general the main thing that is treated differently in the brains of a botanist and zoologist is what is regarded as a name. Well, there is a lot of unclarity all over what that is, but there seems to be 2 fundamentally different ways to base your thinking on. Because the zoological code does not see comb. or stat. nov. as nomenclatural acts, zoologist think of a species name as an epithet, while botanist think of a name as the entire binomial. That leads to a botanist calling later combinations homotypic synonyms - while a typical zoologist does not call these synonyms. Nothing new here, but it typically leads to a rather different data model representing names.

treated differently in the brains of a botanist and zoologist

:idea: :idea: :idea: I never realized this! Explains so much. Thanks


Update 3.0.1.md

Indention errors and missing type: object YAML entry

Thanks for the PR.
We do not accept PRs changing released versions of the spec.
Early next week we'll have the 3.0.2 branch and you could submit the PR against that branch and version.

Thank you sir.  Will re-check the 3.0.2 and work against that.


Remove comprehension

Codecov Report

Merging #2 (28021f0) into main (6250835) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main        #2   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           23        23
  Lines          763       763
  Branches        55        53    -2
=========================================
  Hits           763       763

Impacted Files
Coverage Δ

loglan_db/model_init.py
100.00% <100.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 6250835...28021f0. Read the comment docs.


Problem: the tests are failing

Solution: rewrite test without fixtures
I couldn't find the underlying problem with the fixtures. In general we had difficulties in the past. Fixtures being reused and the tests being not independent led to errors and failing tests. It would be nice to find the reason why they are failing but worst case I waste a lot of time on it and I'm already out of ideas how to debug it.
I tried to make the test as short as possible, if you see any lines I can shorten, please tell me.

Codecov Report

Merging #478 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #478   +/-   ##
=======================================
  Coverage   98.74%   98.74%
=======================================
  Files           5        5
  Lines         239      239
=======================================
  Hits          236      236
  Misses          3        3


Tuxfamily mirror option only available during initial setup.

Describe the bug
A clear and concise description of what the bug is.
Tuxfamily mirror option present in initial setup version menu, but not the regular version menu, menu options for alphas, betas, and RCs cannot be used, and non-release versions are not available for download.
Complete the Following:

OS: Windows
Version 0.2.0

This is weird, as it should be present in the top right hand corner of the window....

And you are not seeing this?

Weird, only after a restart of my PC did it display properly. As a side note, none of the images for asset in the asset browser, nor the pictures of the news section were visible, but they are after a windows restart.

That is weird.  There shouldn't be any issues that would cause The Mirrors or Tags to not show up, as they are always on, even though I use the same panel in the Initial setup panel, as I do in the Main App, the only thing that isn't setup to be visible, is the header, or the Buttons for Add Custom Engine, Download from Webite, and Check for Updates.  The rest should be visible.  As for the images for Asset Library and News, it downloads them from the website, so it may have been a Network issue, but there really shouldn't be any issues.

I'll look to reproduce with a 100% clean install.

Since no further details on this report has come forth, closing this for now.  If a reproducible way is found for this bug to re-emerge, then re-open, and post the details of how you were able to reproduce this issue.


SRI ontology for review

This is the ontology update based upon comments from the last review with TA2.

Couple of items that need to be changed.

In line 389, the syntax should be "{SourceCode or RandoopTestsAndMetrics}"
The property "verifies" is defined in the core ontology and this ontology is changing the domain of this property. The 2 domains for "verifies" in this ontology are DaikonInvariantOutput and RandoopTestsAndMetrics. Both of these are types of ENTITY. Either they should both be of type TEST or use a qualifier on "verifies" or rename "verifies".

Made fixes for comments made by Abha.

@glguy : I have looked over the ontology and it seems fine. However one of the CI workflow action is failing - can you take a look at it?

@glguy : I have looked over the ontology and it seems fine. However one of the CI workflow action is failing - can you take a look at it?

This is because the PR is on an external branch and doesn't have access to the secret token our CI uses. I agree that the change seems fine; I wouldn't necessarily block it on CI. If you want to be sure we can make a local copy of the branch to run CI on.

@AbhaMoitra , the CI workflow failed because the pull request was from a forked repository.  We want to support running CI on pull requests from forked repositories.  I believe I've fixed the problem in PR #401.  @bhatt111 , please merge our repo's master branch into your repo's master branch and push again to see if #401 lets your pull request's next CI job run successfully.


Update behavior so that it matches current mkdocs spec

Describe the bug
Currently, the output files do not match the spec of mkdocs
To Reproduce
Steps to reproduce the behavior:

Run binary
See error

Expected behavior
Output should match expected mkdocs config
Screenshots
If applicable, add screenshots to help explain your problem.
Release information:

OS: all
node version: all
package version: all

This issue is way too broad to be worked on a single branch.
A lot of different things need to be done in order to generate the proper output MkDocs expects, namely:

Load source files

Load only from specified paths (--source|-s option)
Ignore specified files (--igonre|-i option)

.gitignore receives special treatment as its contents are ignored instead of the file itself

Parse source files for comments
Build a document tree

Root node should be Reference page
Nodes should represent pages
Nodes that are parent to leaf nodes are sections rendered within pages
Leaf nodes should be the actual comments parsed from source

Generate markdown files according to document tree

These files are generated in specified output path (--output|-o option)

Generate mkdocs.yml file

This file can be appended to a user provided mkdocs.yml file; this allows for the user to define their own configs were we'll only add pages

Optionally, run mkdocs with freshly built pages

Also, it would be a good idea to scan for a config file for JsMkDocs


Fix documentation about globalStyle injection for styled-components & emotion

This PR fixes a small typo in the documentation that would prevent the globalStyle from being injected properly.

Thanks!


fix: disable the import/extensions rule in JS and in TS

Overrides take precedence, so while the rule is now disabled in JS, it wasn't in TS

Isn't this just a revert to the previous version?

Oh, no. See it now.


subset dataset operator

@ngraham76 could you provide the Figma design for this operator please?

Sure thing, it's here:
https://www.figma.com/file/w4BmFSXhtXTqQy3T7cpWy3/Terarium---January-2024?type=design&node-id=553%3A115639&mode=design&t=EwsKEzeb3IDTjDVL-1


umap_utils missing?

Looks like umap_utils is missing?
ImportError                               Traceback (most recent call last)
<ipython-input-2-c9a53c6b2768> in <module>()
----> 1 import umap

/Users/max/Dropbox/Dokument/Python/voteringar/umap/__init__.py in <module>()
----> 1 from .umap_ import UMAP

/Users/max/Dropbox/Dokument/Python/voteringar/umap/umap_.py in <module>()
----> 1 from .umap_utils import fuzzy_simplicial_set, simplicial_set_embedding
      2 from scipy.optimize import curve_fit
      3 from sklearn.base import BaseEstimator
      4
      5 import numpy as np

ImportError: No module named umap_utils

The code is there :-( it apparently hasn't built for you? What did setup.py install say for you when you ran it?

It said some things :)
running install
running bdist_egg
running egg_info
creating umap.egg-info
writing requirements to umap.egg-info/requires.txt
writing umap.egg-info/PKG-INFO
writing top-level names to umap.egg-info/top_level.txt
writing dependency_links to umap.egg-info/dependency_links.txt
writing manifest file 'umap.egg-info/SOURCES.txt'
reading manifest file 'umap.egg-info/SOURCES.txt'
writing manifest file 'umap.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.6-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib.macosx-10.6-x86_64-2.7
creating build/lib.macosx-10.6-x86_64-2.7/umap
copying umap/__init__.py -> build/lib.macosx-10.6-x86_64-2.7/umap
copying umap/umap_.py -> build/lib.macosx-10.6-x86_64-2.7/umap
running build_ext
cythoning umap/umap_utils.pyx to umap/umap_utils.c
building 'umap.umap_utils' extension
creating build/temp.macosx-10.6-x86_64-2.7
creating build/temp.macosx-10.6-x86_64-2.7/umap
gcc -fno-strict-aliasing -I/Users/max/anaconda/include -arch x86_64 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/max/anaconda/lib/python2.7/site-packages/numpy/core/include -I/usr/include -I/Users/max/anaconda/include/python2.7 -c umap/umap_utils.c -o build/temp.macosx-10.6-x86_64-2.7/umap/umap_utils.o
In file included from umap/umap_utils.c:274:
In file included from /Users/max/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4:
In file included from /Users/max/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:18:
In file included from /Users/max/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1809:
/Users/max/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning:
      "Using deprecated NumPy API, disable it by "          "#defining NPY_NO_DEPRECATED_API
      NPY_1_7_API_VERSION" [-W#warnings]
#warning "Using deprecated NumPy API, disable it by " \
 ^
In file included from umap/umap_utils.c:274:
In file included from /Users/max/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:4:
In file included from /Users/max/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:27:
/Users/max/anaconda/lib/python2.7/site-packages/numpy/core/include/numpy/__multiarray_api.h:1453:1: warning:
      unused function '_import_array' [-Wunused-function]
_import_array(void)
^
umap/umap_utils.c:28421:32: warning: unused function '__Pyx_PyUnicode_FromString'
      [-Wunused-function]
static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) {
                               ^
umap/umap_utils.c:367:29: warning: unused function '__Pyx_Py_UNICODE_strlen' [-Wunused-function]
static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
                            ^
umap/umap_utils.c:24646:32: warning: unused function '__Pyx_GetItemInt_List_Fast'
      [-Wunused-function]
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
                               ^
umap/umap_utils.c:24661:32: warning: unused function '__Pyx_GetItemInt_Tuple_Fast'
      [-Wunused-function]
static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
                               ^
umap/umap_utils.c:25059:1: warning: unused function '__pyx_add_acquisition_count_locked'
      [-Wunused-function]
__pyx_add_acquisition_count_locked(__pyx_atomic_int *acquisition_count,
^
umap/umap_utils.c:25069:1: warning: unused function '__pyx_sub_acquisition_count_locked'
      [-Wunused-function]
__pyx_sub_acquisition_count_locked(__pyx_atomic_int *acquisition_count,
^
umap/umap_utils.c:26662:46: warning: unused function '__Pyx_PyInt_From_npy_int8' [-Wunused-function]
              static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_int8(npy_int8 value) {
                                             ^
umap/umap_utils.c:26725:48: warning: unused function '__pyx_t_float_complex_from_parts'
      [-Wunused-function]
    static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) {
                                               ^
umap/umap_utils.c:26736:30: warning: unused function '__Pyx_c_eqf' [-Wunused-function]
    static CYTHON_INLINE int __Pyx_c_eqf(__pyx_t_float_complex a, __pyx_t_float_complex b) {
                             ^
umap/umap_utils.c:26739:48: warning: unused function '__Pyx_c_sumf' [-Wunused-function]
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_sumf(__pyx_t_float_complex a, __pyx_t...
                                               ^
umap/umap_utils.c:26745:48: warning: unused function '__Pyx_c_difff' [-Wunused-function]
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_difff(__pyx_t_float_complex a, __pyx_...
                                               ^
umap/umap_utils.c:26757:48: warning: unused function '__Pyx_c_quotf' [-Wunused-function]
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_quotf(__pyx_t_float_complex a, __pyx_...
                                               ^
umap/umap_utils.c:26764:48: warning: unused function '__Pyx_c_negf' [-Wunused-function]
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_negf(__pyx_t_float_complex a) {
                                               ^
umap/umap_utils.c:26770:30: warning: unused function '__Pyx_c_is_zerof' [-Wunused-function]
    static CYTHON_INLINE int __Pyx_c_is_zerof(__pyx_t_float_complex a) {
                             ^
umap/umap_utils.c:26773:48: warning: unused function '__Pyx_c_conjf' [-Wunused-function]
    static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_conjf(__pyx_t_float_complex a) {
                                               ^
umap/umap_utils.c:26787:52: warning: unused function '__Pyx_c_powf' [-Wunused-function]
        static CYTHON_INLINE __pyx_t_float_complex __Pyx_c_powf(__pyx_t_float_complex a, __p...
                                                   ^
umap/umap_utils.c:26847:49: warning: unused function '__pyx_t_double_complex_from_parts'
      [-Wunused-function]
    static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double x, ...
                                                ^
umap/umap_utils.c:26858:30: warning: unused function '__Pyx_c_eq' [-Wunused-function]
    static CYTHON_INLINE int __Pyx_c_eq(__pyx_t_double_complex a, __pyx_t_double_complex b) {
                             ^
umap/umap_utils.c:26861:49: warning: unused function '__Pyx_c_sum' [-Wunused-function]
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_sum(__pyx_t_double_complex a, __pyx_...
                                                ^
umap/umap_utils.c:26867:49: warning: unused function '__Pyx_c_diff' [-Wunused-function]
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_diff(__pyx_t_double_complex a, __pyx...
                                                ^
umap/umap_utils.c:26879:49: warning: unused function '__Pyx_c_quot' [-Wunused-function]
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_quot(__pyx_t_double_complex a, __pyx...
                                                ^
umap/umap_utils.c:26886:49: warning: unused function '__Pyx_c_neg' [-Wunused-function]
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_neg(__pyx_t_double_complex a) {
                                                ^
umap/umap_utils.c:26892:30: warning: unused function '__Pyx_c_is_zero' [-Wunused-function]
    static CYTHON_INLINE int __Pyx_c_is_zero(__pyx_t_double_complex a) {
                             ^
umap/umap_utils.c:26895:49: warning: unused function '__Pyx_c_conj' [-Wunused-function]
    static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_conj(__pyx_t_double_complex a) {
                                                ^
umap/umap_utils.c:26909:53: warning: unused function '__Pyx_c_pow' [-Wunused-function]
        static CYTHON_INLINE __pyx_t_double_complex __Pyx_c_pow(__pyx_t_double_complex a, __...
                                                    ^
umap/umap_utils.c:27422:45: warning: function '__Pyx_PyInt_As_npy_int8' is not needed and will not
      be emitted [-Wunneeded-internal-declaration]
              static CYTHON_INLINE npy_int8 __Pyx_PyInt_As_npy_int8(PyObject *x) {
                                            ^
umap/umap_utils.c:27792:41: warning: function '__Pyx_PyInt_As_char' is not needed and will not be
      emitted [-Wunneeded-internal-declaration]
              static CYTHON_INLINE char __Pyx_PyInt_As_char(PyObject *x) {
                                        ^
umap/umap_utils.c:9307:32: warning: unused function '__pyx_f_5numpy_PyArray_MultiIterNew1'
      [-Wunused-function]
static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) {
                               ^
umap/umap_utils.c:9354:32: warning: unused function '__pyx_f_5numpy_PyArray_MultiIterNew2'
      [-Wunused-function]
static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyO...
                               ^
umap/umap_utils.c:9401:32: warning: unused function '__pyx_f_5numpy_PyArray_MultiIterNew3'
      [-Wunused-function]
static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyO...
                               ^
umap/umap_utils.c:9448:32: warning: unused function '__pyx_f_5numpy_PyArray_MultiIterNew4'
      [-Wunused-function]
static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyO...
                               ^
umap/umap_utils.c:9495:32: warning: unused function '__pyx_f_5numpy_PyArray_MultiIterNew5'
      [-Wunused-function]
static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyO...
                               ^
umap/umap_utils.c:10297:27: warning: unused function '__pyx_f_5numpy_set_array_base'
      [-Wunused-function]
static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObjec...
                          ^
umap/umap_utils.c:10393:32: warning: unused function '__pyx_f_5numpy_get_array_base'
      [-Wunused-function]
static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) {
                               ^
36 warnings generated.
gcc -bundle -undefined dynamic_lookup -L/Users/max/anaconda/lib -arch x86_64 -arch x86_64 build/temp.macosx-10.6-x86_64-2.7/umap/umap_utils.o -L/usr/lib -L/Users/max/anaconda/lib -lgsl -lcblas -o build/lib.macosx-10.6-x86_64-2.7/umap/umap_utils.so
creating build/bdist.macosx-10.6-x86_64
creating build/bdist.macosx-10.6-x86_64/egg
creating build/bdist.macosx-10.6-x86_64/egg/umap
copying build/lib.macosx-10.6-x86_64-2.7/umap/__init__.py -> build/bdist.macosx-10.6-x86_64/egg/umap
copying build/lib.macosx-10.6-x86_64-2.7/umap/umap_.py -> build/bdist.macosx-10.6-x86_64/egg/umap
copying build/lib.macosx-10.6-x86_64-2.7/umap/umap_utils.so -> build/bdist.macosx-10.6-x86_64/egg/umap
byte-compiling build/bdist.macosx-10.6-x86_64/egg/umap/__init__.py to __init__.pyc
byte-compiling build/bdist.macosx-10.6-x86_64/egg/umap/umap_.py to umap_.pyc
creating stub loader for umap/umap_utils.so
byte-compiling build/bdist.macosx-10.6-x86_64/egg/umap/umap_utils.py to umap_utils.pyc
creating build/bdist.macosx-10.6-x86_64/egg/EGG-INFO
copying umap.egg-info/PKG-INFO -> build/bdist.macosx-10.6-x86_64/egg/EGG-INFO
copying umap.egg-info/SOURCES.txt -> build/bdist.macosx-10.6-x86_64/egg/EGG-INFO
copying umap.egg-info/dependency_links.txt -> build/bdist.macosx-10.6-x86_64/egg/EGG-INFO
copying umap.egg-info/requires.txt -> build/bdist.macosx-10.6-x86_64/egg/EGG-INFO
copying umap.egg-info/top_level.txt -> build/bdist.macosx-10.6-x86_64/egg/EGG-INFO
writing build/bdist.macosx-10.6-x86_64/egg/EGG-INFO/native_libs.txt
zip_safe flag not set; analyzing archive contents...
creating dist
creating 'dist/umap-0.0.1-py2.7-macosx-10.6-x86_64.egg' and adding 'build/bdist.macosx-10.6-x86_64/egg' to it
removing 'build/bdist.macosx-10.6-x86_64/egg' (and everything under it)
Processing umap-0.0.1-py2.7-macosx-10.6-x86_64.egg
Removing /Users/max/anaconda/lib/python2.7/site-packages/umap-0.0.1-py2.7-macosx-10.6-x86_64.egg
Copying umap-0.0.1-py2.7-macosx-10.6-x86_64.egg to /Users/max/anaconda/lib/python2.7/site-packages
umap 0.0.1 is already the active version in easy-install.pth

Installed /Users/max/anaconda/lib/python2.7/site-packages/umap-0.0.1-py2.7-macosx-10.6-x86_64.egg
Processing dependencies for umap==0.0.1
Searching for Cython==0.24.1
Best match: Cython 0.24.1
Adding Cython 0.24.1 to easy-install.pth file

Using /Users/max/anaconda/lib/python2.7/site-packages
Searching for scikit-learn==0.18
Best match: scikit-learn 0.18
Adding scikit-learn 0.18 to easy-install.pth file

Using /Users/max/anaconda/lib/python2.7/site-packages
Finished processing dependencies for umap==0.0.1

That all looks ... fine. I was hoping it would have something informatively weird.

If you can do a
python setup.py build

And then cd into the appropriate directory and run from there that might work ... and if it doesn't we can maybe diagnose why a little easier. I don't know how to debug egg files.

Ran above and upgraded to the versions in your tweet. Is it saying skipping imap_utils.c here a clue?
python setup.py build
running build
running build_py
copying umap/umap_.py -> build/lib.macosx-10.6-x86_64-2.7/umap
running build_ext
skipping 'umap/umap_utils.c' Cython extension (up-to-date)```

No, that should be fine (it's already, in principle) built it. Ideally in build/lib.macosx-10.6-x86_64-2.7/umap there should be a file umap_utils.cpython-35m-darwin.so (or similarly named; perhaps with a 27 instead of  35). If that isn't there then that's the problem ... if it is then try:
cd build/lib.macosx-10.6-x86_64-2.7
python
>>> import umap

because that should work if the file is there. This may be a python2/python3 thing where I haven't gotten compatability in local package referencing. I'll look into that now, but I'm about to board a flight, so might not be able to update for several hours.

The file is there – and the import from that folder works! Thanks for your great work and time.

Still not sure why the install doesn't work, but hopefully that can be ironed out at a later date.

same problem for me (and same "solution"). Built with miniconda.

I'll see what I can figure out, but I admit I am completely at a loss right now. Sorry. At least there is a workaround, just not a good one.

Seems to be resolved in current version.


[doc request] explain better what xbrowsersync does

Hi, I didn't see a better place to talk about this.
The project looks cool and the website is terrific. I was just trying really hard to understand exactly what this project does.
Sync bookmarks? automatically sync bookmarks? sync open tabs?
After reading all the FAQ and website it is still not clear to me. If you accept some feedback, I would suggest that you write that, maybe even the first thing in the website.
Seems like you are doing a good job here, congratulations!

Hey @nachoparker!  It's probably because I'm talking about where I want it to be eventually, even though it's not quite there yet.
Currently it syncs your (Chrome) browser bookmarks across any other Chrome browser (for example, home and work pcs) and the mobile apps allow you to access your synced bookmarks on the go. I originally intended it to be a replacement to Chrome sync which I was using to sync all my browser data, but the development of the api, chrome extension and android and ios apps took longer than I anticipated, and so it's still only syncing bookmarks for now. My intention is to get the API update out over the next few weeks, then continue work on the (long overdue) Firefox web extension, and hopefully get an opera version out at the same time. Once that's been achieved, I'll start thinking about what to add to the sync next (tabs, passwords, etc).
The website needs some attention though (definitely the FAQs need updating), so I'll add it to my todo list. Thanks for taking an interest here, hopefully it's a little service in return for all your great work on NextcloudPi!

I see
So 'browser data' means passwords, history and such, right?
I like the idea of the project. I use only firefox and I have been using the bookmarks app in Nextcloud. It is pretty basic but it does the job. It is getting some love now I think so I expect to see improvements soon.
We have floccus that does something similar inside Nextcloud, and your service that doesn't require self hosting. Cool

Eventually yes! The long term goal would be to sync all browser data in one private, encrypted and free service that you can also run yourself, how cool would that be? We have the means, just need to get it done! 😆

Hmmm, maybe that explains why it's not working with Opera.... Thing is Opera allowed me to add it via its "Add Chrome Extensions" extension. Because I figured I'd be limited to compatible extensions, I've spent too much time trying to figure out how to make it work. When I click on Settings, my status is Online, but my Data Usage is 0 (see attachment).
Chrome has been my main browser, but it seems to be getting too bloated for my old computer to run well, so I've been using Opera a lot, which opens and runs faster. The whole reason I was interested in xBrowserSync is that I wanted to sync between different browsers. Oh, well...

As I mentioned in #11 I'm not exactly sure of the level of compatibility check that Opera performs on Chrome extensions. As Opera does implement bookmarks slightly differently I imagine in your case xBrowserSync is not able to create the local bookmarks which is breaking the sync.
Support for Opera will follow after v1.4.0 has been released.

I installed this in the hopes I could sync passwords between Vivaldi and Firefox, even though Vivaldi is working on its own solution at the moment. There's no sync feature there and I didn't feel like using LastPass and Xmarks as solutions since eventually they want money for those, whereas your solution was advertised as something free.
The lack of password sync makes this extension much less exciting, and the way it is advertised makes it feel like fake news. Please at least clarify with what it can do now, and provide a feature roadmap so you can maybe try to generate some hype on what's to come.

FYI Bitwarden replaces LastPass just fine.
https://bitwarden.com/
And I never noticed anywhere that xBrowserSync promised anything more than bookmark sync.


Added support for inline SVG as source

#2 I have added inline SVG support as the source element in Layer. Please have a look.

I have made the necessary changes.
Turns out, Chrome 72 changed the way image src is handled. I have fixed the code to work with the new rules. More info.


Publish docs as a build artifact

If done correctly this will hopefully make the html docs available on the azure builds tap

This does not work for the same reason as #1295

This seems to be working now. A zip of the docs can be downloaded from https://ms-quantum.visualstudio.com/QubitWorkbench/_build/results?buildId=9891&view=results

This is really nice! One small thing, though: could we call the artifact qcodes_docs or something slightly more specific than simply "docs"?


Container repositories

Small repository management module, using #1's IO layers.
Every file in the repository should be signed to avoid unwanted tampering (indexes, pack files, etc).
Repositories should be updatable in-place without taking them offline (write blobs, then metas, then packs, then index, then main)

In case it isn't obvious, there should be APIs for mirroring and cloning repositories. What's the difference, you say?
A clone is identical, as both repositories share bit-to-bit copies of all files, including indexes, with deletes being propagated accordingly.
A mirror is a different repository, with its own unique set of IDs (uuid, canonical) and index, that tracks changes to the source repository only by adding new backups in the source repository to its local index, but never propagating remote deletes.
Clones are good for offline dissection and backup of a particular repository in, say, optical read-only media. Mirrors are preferred for everything else, as they are safer and provide a method to tell existing repositories apart, not to mention they mention in their main.json what repository they are tracking, so a program walking the repository can try the source if a local file is corrupted, not present, etc.


Token Validate step should not use algorithm provided in the jwt header

This implementation is insecure, specifically the verification step can be circumvented easily. Because you use the algorithm specified in the header to verify, and attacker could just send you a JWT with algorithm=None, and your verification method would return true. Instead, JsonWebToken.validate should take the algorithm expected and verify using that algorithm. The algorithm should never be allowed to be chosen by the untrusted user.

I don't beleive it's vulnerable as described but let me double check -
haven't looked at this in a while. The user can also verify the algorithm.
On Feb 24, 2017 12:58 AM, "mlegore"<EMAIL_ADDRESS>wrote:

This implementation is insecure, specifically the verification step can be
circumvented easily. Because you use the algorithm specified in the header
to verify, and attacker could just send you a JWT with algorithm=None, and
your verification method would return true. Instead, JsonWebToken.validate
should take the algorithm expected and verify using that algorithm. The
algorithm should never be allowed to be chosen by the untrusted user.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jasongoodwin/authentikat-jwt/issues/31, or mute the
thread
https://github.com/notifications/unsubscribe-auth/ACtqLOuIzGgozgcgJlv9i5KZelzH_qAQks5rfnGdgaJpZM4MK2wu
.

I remember having a play around with this because I thought the same thing, then realised that because of the way the JWT string is split in JsonWebToken.scala
jwt.split("\\.") match {
  case Array(providedHeader, providedClaims, providedSignature)

we cannot pass in an empty string as the signature "", and match that case of tuple3.
in which case we fail:
 case _ ⇒         false
If we pass in a bogus value with header 'None', it still doesn't seem to work. JsonWebSignature.scala compares 'None' to empty array so bogus signature != empty array.
`def apply(algorithm: Algorithm, data: String, key: String = null): Array[Byte] = {
algorithm match {
    case HS256 ⇒ HmacSha("HmacSHA256", data, key)
    case HS384 ⇒ HmacSha("HmacSHA384", data, key)
    case HS512 ⇒ HmacSha("HmacSHA512", data, key)
    case NONE  ⇒ Array.empty[Byte]

`
To me this means the library doesn't even support signature of 'None'.
Am I correct or crazy?
:)

That is correct. We are using this library and were happy to find we were not vulnerable to the none algorithm, but didn't fully understand why until we stepped through the library code.
Is there a plan to add support for the none algorithm? I am not sure where I stand on this, since not having support for none, probably increased security, but the spec clearly outlines support for it.
If support is added, it would be helpful be able to validate the algorithm and signature at the same time.


Directory Restriction

This isn't a huge issue, and I imagine it will likely only affect a small number of people, if any at all.. Maybe I'm the only one... :)
I use a specific directory that I created for portable programs, '/Program Files - Portable/'. When adding Tooll3 there, a dialog appears stating that I cannot run it in '/Program FIles/'.
I can just put it in a different directory, it's seriously not a big issue. I just thought I'd notify you guys about it. I suppose specifically naming 'Program Files' and 'Program Files (x86)' as off limits instead of a directory containing the words would work out if it makes sense to do so...
Cheers!

Thanks for the feedback! Sadly, people installing tooll by unzipping it to "Program Files" is a top reason for crashes. That's why we added that check in the first place. I spent some time into another check, but unless we have a proper installer (yes, we need that) it's not easy to detect whether tooll was installed into a read only directory.
I will close this issue for now. If somebody else stumbles across this, please reopen it!


[BACKLOG-23395] Adds metadata injection support for the Get System In…

…fo step

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -fn -f 'pom.xml' -pl 'ui,engine' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'ui,engine' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemData.java
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataMeta.java
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaInjectionTypeConverter.java
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataTypes.java
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_en_US.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_fr_FR.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_it_IT.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_ja_JP.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_ko_KR.properties
  engine/src/test/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaInjectionTest.java
  engine/src/test/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaTest.java
  engine/src/test/java/org/pentaho/di/trans/steps/systemdata/SystemDataTest.java
  ui/src/main/java/org/pentaho/di/ui/trans/steps/systemdata/SystemDataDialog.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change: -1.2% :small_red_triangle_down:
Complexity Change: -1.6% :small_red_triangle_down:
Instruction Change: -0.3% :small_red_triangle_down:

org.pentaho.di.job.entries.ftpsget.JobEntryFTPSGet

Branch Change: -0.6% :small_red_triangle_down:
Complexity Change: -0.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.job.entries.getpop.MailConnectionMeta

Branch Change: -1% :small_red_triangle_down:
Complexity Change: -1.5% :small_red_triangle_down:
Instruction Change: -0.3% :small_red_triangle_down:

org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change: -3.4% :small_red_triangle_down:
Line Change: -3.8% :small_red_triangle_down:

org.pentaho.di.trans.steps.csvinput.CsvInputMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.dbproc.DBProcMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.groupby.GroupByMeta

Branch Change: -3.1% :small_red_triangle_down:
Complexity Change: -3.2% :small_red_triangle_down:

org.pentaho.di.trans.steps.systemdata.SystemDataMeta

Branch Change: -5.4% :small_red_triangle_down:
Complexity Change: -3.5% :small_red_triangle_down:
Instruction Change: -2.1% :small_red_triangle_down:
Line Change: -1.6% :small_red_triangle_down:
Method Change: -2.5% :small_red_triangle_down:

:new: org.pentaho.di.trans.steps.systemdata.SystemDataMetaInjectionTypeConverter

Branch Coverage: 75% :exclamation:
Complexity Coverage: 66.7% :exclamation:
Line Coverage: 77.8% :exclamation:

org.pentaho.di.trans.steps.systemdata.SystemDataTypes

Branch Change: -8.3% :small_red_triangle_down:
Complexity Change: -8.3% :small_red_triangle_down:

org.pentaho.di.trans.steps.webservices.WebServiceMeta

Branch Change: -1.7% :small_red_triangle_down:
Complexity Change: -1.2% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -fn -f 'pom.xml' -pl 'ui,engine' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'ui,engine' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemData.java
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataMeta.java
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaInjectionTypeConverter.java
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataTypes.java
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_en_US.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_fr_FR.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_it_IT.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_ja_JP.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_ko_KR.properties
  engine/src/test/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaInjectionTest.java
  engine/src/test/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaTest.java
  engine/src/test/java/org/pentaho/di/trans/steps/systemdata/SystemDataTest.java
  ui/src/main/java/org/pentaho/di/ui/trans/steps/systemdata/SystemDataDialog.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change: -0.4% :small_red_triangle_down:
Complexity Change: -0.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.job.entries.sql.JobEntrySQL

Instruction Change: -3.4% :small_red_triangle_down:
Line Change: -3.8% :small_red_triangle_down:

org.pentaho.di.trans.steps.constant.ConstantMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.dbproc.DBProcMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta

Method Change: -1% :small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -3.3% :small_red_triangle_down:
Complexity Change: -3.9% :small_red_triangle_down:

org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta

Branch Change: -2.6% :small_red_triangle_down:
Complexity Change: -1.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.singlethreader.SingleThreaderMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.systemdata.SystemDataMeta

Branch Change: -5.4% :small_red_triangle_down:
Complexity Change: -3.5% :small_red_triangle_down:
Instruction Change: -2.1% :small_red_triangle_down:
Line Change: -1.6% :small_red_triangle_down:
Method Change: -2.5% :small_red_triangle_down:

:new: org.pentaho.di.trans.steps.systemdata.SystemDataMetaInjectionTypeConverter

Branch Coverage: 75% :exclamation:
Complexity Coverage: 66.7% :exclamation:
Line Coverage: 77.8% :exclamation:

org.pentaho.di.trans.steps.systemdata.SystemDataTypes

Branch Change: -8.3% :small_red_triangle_down:
Complexity Change: -8.3% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:
Line Change: -0.9% :small_red_triangle_down:

org.pentaho.di.trans.steps.salesforceupsert.SalesforceUpsertMeta

Instruction Change: -0.1% :small_red_triangle_down:

I'll be making some changes to this, please hold off merging for now.

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -fn -f 'pom.xml' -pl 'ui,engine' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'ui,engine' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemData.java
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataMeta.java
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaInjectionTypeConverter.java
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataTypes.java
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_en_US.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_fr_FR.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_it_IT.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_ja_JP.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_ko_KR.properties
  engine/src/test/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaInjectionTest.java
  engine/src/test/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaTest.java
  engine/src/test/java/org/pentaho/di/trans/steps/systemdata/SystemDataTest.java
  ui/src/main/java/org/pentaho/di/ui/trans/steps/systemdata/SystemDataDialog.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.trans.steps.checksum.CheckSumMeta

Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.core.injection.bean.BeanInjector

Branch Change: -0.8% :small_red_triangle_down:
Complexity Change: -1.2% :small_red_triangle_down:

org.pentaho.di.trans.step.BaseStep

Branch Change: -0.5% :small_red_triangle_down:
Complexity Change: -0.5% :small_red_triangle_down:
Instruction Change: -0.7% :small_red_triangle_down:
Line Change: -0.9% :small_red_triangle_down:
Method Change: -0.9% :small_red_triangle_down:

org.pentaho.di.trans.step.StepMeta

Branch Change: -0.7% :small_red_triangle_down:
Complexity Change: -0.6% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:
Line Change: -0.3% :small_red_triangle_down:

org.pentaho.di.trans.step.StepStatus

Branch Change: -3.3% :small_red_triangle_down:
Complexity Change: -1.6% :small_red_triangle_down:
Instruction Change: -1.5% :small_red_triangle_down:

org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta

Method Change: -1% :small_red_triangle_down:

org.pentaho.di.trans.steps.ldapoutput.LDAPOutputMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta

Branch Change: -2.2% :small_red_triangle_down:
Complexity Change: -2.6% :small_red_triangle_down:

org.pentaho.di.trans.steps.processfiles.ProcessFilesMeta

Branch Change: -3.5% :small_red_triangle_down:
Complexity Change: -2.1% :small_red_triangle_down:
Instruction Change: -0.4% :small_red_triangle_down:

org.pentaho.di.trans.steps.systemdata.SystemDataMeta

Branch Change: -5.4% :small_red_triangle_down:
Complexity Change: -3.5% :small_red_triangle_down:
Instruction Change: -2.1% :small_red_triangle_down:
Line Change: -1.6% :small_red_triangle_down:
Method Change: -2.5% :small_red_triangle_down:

org.pentaho.di.trans.steps.systemdata.SystemDataTypes

Branch Change: -8.3% :small_red_triangle_down:
Complexity Change: -8.3% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:
Line Change: -0.9% :small_red_triangle_down:

org.pentaho.di.trans.steps.salesforceupsert.SalesforceUpsertMeta

Instruction Change: -0.1% :small_red_triangle_down:

Build Completed
:fire: This pull request has some issues. It would be preferable to fix them in order for it to be just perfect. See below for more details. Some links are also available below for further assistance in addressing those issues.
Build Commands
mvn -B -fn -f 'pom.xml' -pl 'ui,engine' -P '!assemblies' -Dsurefire.runOrder=alphabetical -Daudit -amd clean install

Cleanup Commands
mvn -B -f 'pom.xml' -pl 'ui,engine' -P '!assemblies' -amd build-helper:remove-project-artifact

Changed files
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemData.java
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataMeta.java
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaInjectionTypeConverter.java
  engine/src/main/java/org/pentaho/di/trans/steps/systemdata/SystemDataTypes.java
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_en_US.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_fr_FR.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_it_IT.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_ja_JP.properties
  engine/src/main/resources/org/pentaho/di/trans/steps/systemdata/messages/messages_ko_KR.properties
  engine/src/test/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaInjectionTest.java
  engine/src/test/java/org/pentaho/di/trans/steps/systemdata/SystemDataMetaTest.java
  engine/src/test/java/org/pentaho/di/trans/steps/systemdata/SystemDataTest.java
  ui/src/main/java/org/pentaho/di/ui/trans/steps/systemdata/SystemDataDialog.java

Unit Test Coverage
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.

:warning: Coverage Changes (click to expand)
org.pentaho.di.core.injection.bean.BeanInjector

Branch Change: -0.8% :small_red_triangle_down:
Complexity Change: -1.2% :small_red_triangle_down:

org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics

Branch Change: -0.4% :small_red_triangle_down:
Complexity Change: -0.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.job.entries.evaluatetablecontent.JobEntryEvalTableContent

Branch Change: -1.1% :small_red_triangle_down:
Complexity Change: -1.1% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.job.entries.ftpsget.JobEntryFTPSGet

Branch Change: -0.6% :small_red_triangle_down:
Complexity Change: -0.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.job.entries.getpop.MailConnectionMeta

Branch Change: -1% :small_red_triangle_down:
Complexity Change: -1.5% :small_red_triangle_down:
Instruction Change: -0.3% :small_red_triangle_down:

org.pentaho.di.trans.steps.csvinput.CsvInputMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta

Branch Change: -2.6% :small_red_triangle_down:
Complexity Change: -1.5% :small_red_triangle_down:
Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.setvalueconstant.SetValueConstantMeta

Instruction Change: -0.2% :small_red_triangle_down:

org.pentaho.di.trans.steps.singlethreader.SingleThreaderMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.sort.SortRowsMeta

Instruction Change: -0.1% :small_red_triangle_down:

org.pentaho.di.trans.steps.systemdata.SystemDataMeta

Branch Change: -5.4% :small_red_triangle_down:
Complexity Change: -3.5% :small_red_triangle_down:
Instruction Change: -2.1% :small_red_triangle_down:
Line Change: -1.6% :small_red_triangle_down:
Method Change: -2.5% :small_red_triangle_down:

org.pentaho.di.trans.steps.systemdata.SystemDataTypes

Branch Change: -8.3% :small_red_triangle_down:
Complexity Change: -8.3% :small_red_triangle_down:
Instruction Change: -0.2% :small_red_triangle_down:
Line Change: -0.9% :small_red_triangle_down:

org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta

Instruction Change: -0.1% :small_red_triangle_down:

@pentaho/r2d2 please review


jit-props not longer matching a animations when animation props are used

the -@ syntax isnt in the output, needs some remapping?

keyframes need flattened and formatted for jitprops

@argyleink Is a release (to npm) going to be cut soon that includes this?


feat: ignore tmp/temp files for Node

Pull Request
Thank you for contributing to @dvcs/gitignore and https://www.gitignore.io.
New or update
Select the appropriate check box for this pull request. This helps when merging to ensure there are no conflicts with other templates or misunderstandings of how thee template list works.
New

[ ] Template - New .gitignore template
[ ] Composition - Template made from smaller templates
[ ] Inheritance - Template similar to an existing template
[ ] Patch - Template extending functionality of existing template

Update

[x] Template - Update existing .gitignore template

Details
replace this section with links and/or info about the proposed request

Seems like it was override by a previous commit.

@caedes @quibaritaenperdresatrompe thanks!


Can VS2017 build caffe2 now?

I have built caffe2 successfully in VS2015, but I can't link the library in VS2015 #585 .
I tried to build caffe2 again in VS2017 community, but I got the error message below.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(171,5): error MSB6006: "cmd.exe" 以返回碼 1 結束。 [E:\caffe2\build\caffe2\Caffe2_GPU.vcxproj]
going into GUI and build, I got the link error below

Also I found that many people asking if  CUDA supports VS2017, and the answer is no from the result after google the key word. Since the installation tutorial of Windows had listed VS17 as an option to compile caffe2, I want to know if there's anyone have built caffe2 in VS17. Thanks for sharing!

BTW, if I build without CUDA, it works.

hi , @honamida , have you build the caffe2 with vs2015 successfully? and i have tried to build caffe2 with vs2015 according to the installation. but it failed, it always showed that "No CMAKE_C_COMPILER could be found.No CMAKE_CXX_COMPILER could be found.", however, i built it with using cmake with param that msvc 14 2015 win64, it could not find it. i have tried many methods, but i have not found a valued way. can you tell me about your successful experiences for building caffe2  with vs2015??? thank you very much!

@Wenchao-Du you can use command
set CMAKE_GENERATOR="Visual Studio 14 2015 Win64" to get around the the compiler not found issue, but possibly will encounter other issues.

@davinwang thanks , i have solved this problem, and i have compiled the caffe2 with CPU X64 successfully, but, i trid to complied the gpu version with cuda 8.0, cudnn 5.1 based on vs2015, but , unluckily, it failed on compiling *.cu file. i  have tried to update the version of cudnn, however it still did not work. do you have some good advice for me ? thank you!

@Wenchao-Du I'm still struggling compiling CPU x64 with VS2015. Did you follow the official guide? Could you share the steps to compile a CPU version? Did you pull caffe2:master?

@davinwang  yes, i just followed official guide with git clone --recursive ........., and step by step to do, it succeed. but this work have finished two month ago, i am busy on other things. i could share my steps in some days. I suggest you that before you start your work, firstly , you need to update your version of vs2o15, and then install thirdparty python packges. lastly, you could cmake your caffe2-master. good luck.

@Wenchao-Du Thanks. It seems a code issue about __unused__ was just fixed by Yangqing.

@Wenchao-Du I made some progress in compiling Win+GPU version, firstly you need to checkout tag v0.8.0 rather than master branch because master updates too quickly.
Then you need cherry-pick following commits because they are not include in v0.8.0
4cc5e798941459dc4b26fc1a21b968b3d78434bb
110d0860f1035c83a446e70ba4a37a5f0b44f7ae
d7d0e66ac64767db545d290a06e7758b4479b324
After all, you should still meet some compile error in topk*.cu*, you can comment them out to make the compile work, but I don't know how to fix them gracefully. Hope it helps.

@davinwang ok, thanks, I will try it soon.  I just want to try it on Ubuntu with GPU, if it works ,I will share with you.

@Wenchao-Du I already switched to Ubuntu+GPU because unstability of Windows build😂


feat: Implement AlwaysRasterizeSvg

https://github.com/imgproxy/imgproxy/issues/1251

Add EnableForceRasterizeSVG option
If enabled it skips conversion svg--->svg with unknown requested format

Hey @Frezyy123!
Thanks for the PR!
There's a case that is not covered: if EnableForceRasterizeSVG is true but po.SkipProcessingFormats includes svg, an SVG image won't be rasterized (as expected) yet won't be sanitized and minimized.
BTW, po.SkipProcessingFormats check can be replaced with a one-liner: slices.Contains(po.SkipProcessingFormats, originData.Type)
Also, I'd name the config AlwaysRasterizeSvg and put it after SanitizeSvg.

Wouldn't this be solved by simply setting the format option?

If you know the original format, yeah, it will. Otherwise, you probably don't want to convert your JPEGs to PNGs

I renamed option to AlwaysRasterizeSvg, replaced skipProcessingOptions and added sanitize everywhere
Also i wrote simple tests for some cases that cover this option

btw, I see in documentation that SkipProcessing works only when the requested format is the same. But when we have unknown type it works too.
Processing can only be skipped when the requested format is the same as the source format.

https://docs.imgproxy.net/usage/processing#skip-processing
What do you think should we divide these conditions? Or maybe we need to fix documentation?
if originData.Type == po.Format || po.Format == imagetype.Unknown {

Merged. Thanks for your contribution!


Performance: register atomic waker lazily in AsyncRingBuf

For the Async interface, registering atomic waker seems to affect performance quite a bit.
One way to reduce this cost is to register the waker only lazily: registering waker when the future is about to return Pending. So in a lot of cases when the buffer is readily available no registering is needed.
There is one caveat though: the caller must check again after register_waker, that the ring-buffer's expected state has not changed (i.e., the producer after buffer full and not closed -> about to return Pending -> register waker must check again that buffer is still full and not closed -> Pending, and the consumer after buffer empty and not closed -> about to return Pending -> register waker must check again that buffer is still empty and not closed). If the state has changed before the waker is registered, we might miss new notification of close or write / read.
As long as actual Pending return cases is relatively just a small portion of all polling, this might result in a better performance, since it prevents wasted synchronization of unnecessary waker registrations.
I've written a simple benchmark with Tokio runtime. And here is one GitHub Action run:
master:
running 1 test
test bytes_stream ... bench: 102,902,861 ns/iter (+/- 269,243)
test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured; 0 filtered out; finished in 30.99s

lazy register:
running 1 test
test bytes_stream ... bench:  69,654,620 ns/iter (+/- 202,799)
test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured; 0 filtered out; finished in 21.05s

This particular task runs about 30% faster:
#![feature(test)]
extern crate test;
use test::Bencher;
use async_ringbuf::traits::Split;
use futures::{AsyncReadExt, AsyncWriteExt};

const BUF_SIZE: usize = 8 * 1024;
const MSG_SIZE: usize = 128;
const MSG_COUNT: usize = 1024 * 1024;

#[bench]
fn bytes_stream(b: &mut Bencher) {
    let rt = tokio::runtime::Builder::new_current_thread().build().unwrap();
    b.iter(|| {
        rt.block_on(send_receive());
    });
}

async fn send_receive() {

    let (mut prd, mut cons) = async_ringbuf::AsyncHeapRb::<u8>::new(BUF_SIZE).split();

    // prd task
    let prd_task = tokio::spawn(async move {
        let msg = [0u8; MSG_SIZE];
        for _ in 0..MSG_COUNT {
            prd.write_all(&msg).await.unwrap();
        }
    });

    // cons task
    let cons_task = tokio::spawn(async move {
        let mut buf = [0u8; MSG_SIZE];
        for _ in 0..MSG_COUNT {
            cons.read_exact(&mut buf).await.unwrap();
        }
    });

    // await finish
    prd_task.await.unwrap();
    cons_task.await.unwrap();
}

30% is really nice performance improvement! It's interesting that registering an AtomicWaker is so expensive.
I'm merging the request.
Also I've added your benchmark to the crate if you don't mind.
Thank you for your interest in this project and for such an effort to make it better!


Add project settting for allowing StringName keys

Fixes #68834
Pretty sure it's not an acceptable solution. Taking aside that this PR adds a project setting that affects core class via some global static variable, the gained performance doesn't make much difference in practice. The benchmarks in the issue are done with 1000000 operations; in my case I do at most ~20 StringName operations per frame, so the gain is non-existent xd
But I just had this idea, so I opened a PR 🤷♂ It does solve the issue at least.

💀


Syntax coloring issue after regex in TypeScript

The syntax coloring doesn't work correctly after regex expressions as shown in the image above.

Closing since it also doesn't work correctly in other themes, so this is an issue unrelated to this particular theme.


Cannot find module "@babel/runtime/helpers/getPrototypeOf" in Babel 7

Bug Report
Steps
A clear and concise description of steps to reproduce the problem.
Use @babel v7
Expected Result
Should compile OK
Actual Result
Cannot find module "@babel/runtime/helpers/getPrototypeOf
That module is missing in @babel7

$ cat<EMAIL_ADDRESS>| head -n 1
var _Object$getPrototypeOf = require("../core-js/object/get-prototype-of");

$ cat<EMAIL_ADDRESS>| grep version
  "version": "7.0.0-beta.46",

Can you please provide more details?

@layershifter the packagew is required from ""@babel/runtime/helpers/getPrototypeOf" not from "../core-js/object/get-prototype-of", not sure what you mean by what you pasted.

Message from webpack:
./node_modules/semantic-ui-react/dist/es/addons/Confirm/Confirm.js
Module not found: Can't resolve '@babel/runtime/helpers/getPrototypeOf' in '.../node_modules/semantic-ui-react/dist/es/addons/Confirm'

File getPrototypeOf.js exists in<EMAIL_ADDRESS>i.e. all okay.

Please give more info of used versions, possible you need simply reinstall deps.

@layershifter all good, 7.0.0-beta.42 missed it. Thanks, and sorry for wasting your time over solving betas :/

I am not sure what the end result of the conversation above was - but I am running into this issue. I only seem to be having this issue when using SUI in a monorepo with yarn workspaces. It may be related to create-react-app@next/react-script@next too. I opened an issue over there, but thought I'd reference it here: https://github.com/facebook/create-react-app/issues/4511
Any thoughts @layershifter ? @tomitrescak how you were using SUI, with CRA? in a monorepo/workspace?

@nloding that's exactly what it is. The create-react-app@next/react-script@next is using version 7.0.0-beta.42 which is missing the above function. Wait for the full release.

@tomitrescak unfortunately that is not the case. 7.0.0-beta.42 may be missing it (looks like beta.44 is also, which is actually what react-scripts@next references), but if you manually install<EMAIL_ADDRESS>you get the same compilation error.
❯ cat<EMAIL_ADDRESS>| head -n 1
var _Object$getPrototypeOf = require("../core-js/object/get-prototype-of");

❯ cat<EMAIL_ADDRESS>| grep version
  "version": "7.0.0-beta.47",

❯ yarn start
...
./src/App.js
Module not found: Can't resolve '@babel/runtime/helpers/getPrototypeOf' in '/Users/nloding/code/oss/cra2-workspace-broken-ref/src'

Does anyone have any suggestions on how to deal with this while continuing to use semantic-ui-react and react-script@next together?  I need to keep react-scripts@next for monorepo support.

@rjbergerud I don't have my code anymore, it was just temporary code I was messing with, but I believe the fix was to nohoist everything babel/*. However, the latest version of react-scripts<EMAIL_ADDRESS>uses 7.0.0-beta.46 which should have getPrototypeOf I think.

Hmm, I tried with<EMAIL_ADDRESS>but same issue?

@AnaRobynn https://github.com/facebook/create-react-app/blob/next/packages/react-scripts/package.json#L24
If you look at your node_modules directory, is the right version installed? Are you using a monorepo/lerna, and if so, did you nohoist the right stuff?

I don't have a monorepo/lerna. So I don't need that.
The first time I tried upgrading resulted in babel 7 beta release to be installled. But I think it was 50+. Second time I tried my tests broke, because it installed babel 6.
I just went home. I might be tired. Tomorrow is another day.

This issue is not been solved by use latest react-scripts@next. What happened actually?

@eGroupTeam<EMAIL_ADDRESS>uses<EMAIL_ADDRESS>which has getPrototypeOf. Some previous betas of babel did not. Did you upgrade to those scripts and install all the dependencies? What version of babel is in your node_modules directory?


How to dependent a cocoapods target

My app depends on some cocoapods project.
And the framework target generated by xcodegen need import module from cocoapods.
SomeApp:

MyLibA

Podfile:
LibB
// in MyLibA source code
import LibB //No such module 'LibB'
I just do not find any elegant solution for this. Any practice solve this  plz?

I believe you should add the LibB library to the MyLibA target dependencies on your Podfile.
Xcodegen has nothing to do with it since cocoa pods will create a workspace from your .xcodeproject.

I believe you should add the LibB library to the MyLibA target dependencies on your Podfile.
Xcodegen has nothing to do with it since cocoa pods will create a workspace from your .xcodeproject.

I believe you should add the LibB library to the MyLibA target dependencies on your Podfile.
Xcodegen has nothing to do with it since cocoa pods will create a workspace from your .xcodeproject.

I cannot use this way because there's may many xcodegen targets depend on many cocoapods target. It is hard to maintain.
My final solution is create a target template. Which specify the xcconfig file cocoapods generated.
configFiles:
Debug: "Pods/Target Support Files/Pods-XXXXX/Pods-XXXXX.debug.xcconfig"
Release: "Pods/Target Support Files/Pods-XXXXX/Pods-XXXXX.release.xcconfig"


Scope for 8 Jan

WalletConnect

[x] WalletConnect now supports multi-sessions
[x] Let user choose the server to use WalletConnect against; no longer connecting to the one set in the dapp browser
[x] Use the chainId in the WalletConnect connection request, if provided and don't ask the user to choose chain #2440
[x] Tweak label in cell to show WalletConnect sessions in Wallet tab. Also plural form when there are more than 1 session
[x] Remove the Signed Transactions cell from the WalletConnect session screen, which does nothing when tapped anyway #2421
[x] Fix: Make EIP712v3 support for WalletConnect work correctly
[x] Fix: make gas and Ether value in fiat appear in actionsheet for confirming transactions initiated by WalletConnect #2419
[x] Fix: use correct AlphaWallet URL when broadcasting as a client for WalletConnect session
[x] Support eth_getTransactionCount for WalletConnect correctly #2418

Binance

[x] Add token icon for Binance mainnet
[x] Label Binance testnet as testnet for clarity

Others

[x] Support Heco #2411
[x] Fix: Send 10 tokens but only receives 1 #2408
[x] Fix: ERC20 token transactions are sent wrong to the recipient address. Should send to contract instead #2415

Build 370

Build 370


Made LinuxChixIndia.github.io mobile responsive

Solved the problem of mobile responsive which was asked by CuriousLearner in the issue #9

I think all the changes which were listed in issue #9 has made and all the discussions has been done so can someone merge this pull request.

@Tusharmalik Looks good to me. However how about we make the logo in the jumbotron a little bigger when on xs devices and make the font-size for the font in jumbotron a little smaller on xs devices?
Otherwise, it looks good to me. We can merge this.

Looks good to me.
Merging in!
Thanks for your work @Tusharmalik !


$findChannel

Type

[ ] Functions: $findChannel

Description
So this is the current one $findChannel[ID/mention/name;returnCurrentChannel (yes/no) (optional)]... It doesn't give any option on whether we are finding a Channel or a Category... So I tried making a category named hello and a text channel named hello, then tried to eval this command $findChannel[hello], it returned the category ID instead of the text channel ID... So I hope that you'd add an option like... $findChannel[ID/mention/name;Text/Category/Voice;returnCurrentChannel (yes/no) (optional)]

Well, currently it works like with link instead with name to be honest.

Well, currently it works like with ID instead with name to be honest.

But, wouldn't it be great if they'd add something like "Text/Category/Voice"

Well, currently it works like with ID instead with name to be honest.

But, wouldn't it be great if they'd add something like "Text/Category/Voice"

Umm, no?
Cause you're entering the ID already so what is the point of adding category/text/voice?
ID already defines the channel is type, name, raw position and more things. Have a nice day.

Umm, no? Cause you're entering the ID already so what is the point of adding category/text/voice? ID already defines the is type, name, raw position and more things.

I have said those things for desktop users, I do know mobile users can't get voice channel's ID.

The current methods don't allow us to obtain it.
Regardless, it is not hard to find a loophole in order to achieve what you want.


New version: SequenceTokenizers v0.0.4

Registering package: SequenceTokenizers
Repository: https://github.com/mashu/SequenceTokenizers.jl
Created by: @mashu
Version: v0.0.4
Commit: 0ac7304dc9d977e7f5c2fc279269f9a787210843
Reviewed by: @mashu
Reference: https://github.com/mashu/SequenceTokenizers.jl/commit/0ac7304dc9d977e7f5c2fc279269f9a787210843#commitcomment-145589844
Description: Character level tokenizers for sequence data

[merge approved]


Document installation and usage in README.md

Nice! Thanks for it!

Actually, radius can also be an object and there are other props as sides. But later I will add it.

Sounds good. I just covered the essentials (personal opinion) for now.


(Work In Progress): FireFox compatibility using WebExtensions format.

issue: https://github.com/rangle/augury/issues/1150

no outstanding manifest questions

Hello! I'm Potch, from Mozilla dev advocacy.
I built this branch locally and loaded the extension into Firefox to test it out. It seems to be working, but do you have any specific test apps I can point it at to verify?
Thanks for putting in the leg-work to port!

@potch You can test any of the Angular 2+ applications. We use this as the base application to check https://github.com/rangle/augury-examples/tree/master/kitchen-sink-demo If you want to check just run the application and test it in Firefox :D

I wasn't able to get the kitchen-sink-demo to build, but tried it on https://angular-quickstart.glitch.me/ and got the expected panel and was able to browse the (admittedly tiny) component tree. Excited to see this working!

What is the status of this PR?

We are currently working to get Augury approved in the Firefox add-on store. We hit a small issue with the add-on size which is being investigated. In the short-term you could pull the PR branch, build the add-on, then install the add-on from a file.

@andrewthauer it looks like the referenced AMO issue will not be fixed soon (as not many extensions are known to be blocked by this, so it is hard to make weigh risks vs benefits; working on it). Are you waiting on this or are you still working on splitting/reducing JS bundle size?

@digitarald we are good now. We were able to get the bundle size down and I was able to successfully submit the add-on. Just a few final tweaks and it should be ready to go very soon.
Thanks for following up. Looks like the AMO issue can be closed. Anything else you can think of that we should look at or do before publishing?

@andrewthauer looks like you submitted? Did it all work out?

Our review process is a little more involved, hopefully it doesn’t cause too much extra work. If anything is unclear, you can ask the reviewers by replying to the review email. Feel free to loop me in as needed.

Thanks @digitarald! I've followed up with some additional questions for the reviewer. I'll reach out to you if we run into any problems.


Comparison with OA button

I noticed that the OA Button has an API. I wonder if it would make sense to choose some subset of random articles and compare their availability via the OA button and sci-hub.
Docs make it sound like bulk queries aren't enabled yet, so a random set would probably be the way to go. You wouldn't be able to assess journal-specific coverage, but overall coverage might be possible.
https://openaccessbutton.org/api

if you ask the folks at CottageLabs nicely, they might dump the data for you to analyse.
@markmacgillivray are you still running this?

Hello, yes i am. You can have a dump of all the data you want, and also we have some comparisons already done that may be relevant. If you are wanting to do comparisons, the oabutton team (i just run the tech) would love to discuss your interests in case it relates to other things going on.

You can have a dump of all the data you want, and also we have some comparisons already done that may be relevant.

@markmacgillivray awesome! Thanks @blahah for connecting us.
We have a "new data" analysis freeze until we finish version 1 of our manuscript. Will mention you later if we're looking to explore this further!

Ok :)

Closing since we've completed a similar analysis using oaDOI data from the State of OA study (see https://github.com/greenelab/scihub-manuscript/issues/18 and 11.state-of-OA-viz.ipynb).


Create a proxy backend for api error integration

We have to create a proxy API, to prevent attacks.
https://docs.sentry.io/platforms/javascript/guides/vue/troubleshooting/

@maparr I think that belongs more to the Infra instead of here, isn't it?

@pigmej , yeah, you 're right.

move it to the infra side.


Display of active cases vs time

Thanks for sharing this, very nice project! I'd like to make a few small suggestions on the time evolution graphs:

it seems that the active cases over time should be normalized by the number people (country size). I found the closed issue #3, but it seems not to be effective yet? The number of cases in itself is a meaningless object, in particular when compared across countries. The effect of a single case is always relative to the number of health care professionals who can take care of it.

Using log as default scale: if I click a new country, the scale switches back to linear and displaying these data on linear scale is to me close to useless. Of course, it is good enough if the scale does not switch back.

I'd prefer if the two figures, world map and time evolution, were on top of each other rather than side-by-side, such that they can be displayed larger on the screen.

I made a similar effort that you can find here
with my rationales given here but I'd also be happy to join forces. I did it because I couldn't find a single source plotting new cases per day on a log scale for a variety of countries.

I agree that either log should be the default, or the scale choice should be sticky when one changes the country selection

We have now implemented the normalization for the time series.
With regards to the log vs linear scale: I agree that the resetting is a bug (it's dash / javascript, and I do not know how to fix it). However, given that our target audience is the layperson, I would rather have linear scale by default: people do not have intuitions about exponential growth (including decision makers). I think that the best would be to fix the bug that reset. Such a contribution would be incredibly helpful.

Cheers!

try blowing up the fonts for the page (ctrl-+ under firefox): the layout will adapt.

I (obviously) tried. This is what I get in Chrome:

The figure I am interested in now occupies a far too small amount of my screen, to my taste. On the positive side, the legend is readable ;-)

Thanks for the screenshot. You may be hitting a rendering bug that makes the table too large.
 Can you tell me your DPI, as detected by your browser (visible be visiting the following page https://www.infobyip.com/detectmonitordpi.php ), your screen width, and the br

Rightly so suspected. The page says 192 x 192 (on a recent 15.4" 2880 x 1800 Macbook pro).

OK, I'm working on addressing this in #88
(you can check out the link to circle CI artifacts, in the status badges of the PR, to visualize a rendered webpage).

Fixed the font size in the legend, but the legend width is unchanged (i.e. its widths is not adapted to the font size).

How about the version of #88 ?

No change with a101234383692477f09ff8e4d51bade9760814e1, as far as I can tell (sorry, was distracted).


Autocomplete: add analytics for dynamic switch to multiline completions

Part of https://github.com/sourcegraph/cody/issues/1619
Follow up for https://github.com/sourcegraph/cody/pull/1894

We planned to add a field to our completion analytics events to signify that the singleline completion was upgraded to a multiline completion during streaming, but we can calculate if this is true using existing fields.
A completion is upgraded if the multilineMode is null and lineCount is greater than zero. cc @philipp-spiess


[Teams SDK - Context] The tenantSKU prop is null inside a mobile environment, should return a string

Copied issue from: teams-sdk-context-the-tenantsku-prop-is-null
Posted by: @StefanoA1
I was using microsoft teams' sdk (js) to get a Context inside my app, and specifically the tenantSKU prop ( as seen in -> https://docs.microsoft.com/en-us/javascript/api/@microsoft/teams-js/microsoftteams.context?view=msteams-client-js-latest#tenantSKU) happens to be null Only when I test the app in a mobile environment, for other envs it is ok.
Tested on an Android device (Samsung S20+, latest OS version available)

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

ID: 8dfa1a29-bcf4-0cc5-ae3a-b185a00fd7bc
Version Independent ID: c68181e1-151b-fc78-2671-fe9b397b702e
Content: Get context for your tab - Teams
Content Source: msteams-platform/tabs/how-to/access-teams-context.md
Product: msteams
GitHub Login: @surbhigupta
Microsoft Alias: lajanuar

@StefanoA1 - FYI - Tracking your issue here.

@StefanoA1 - I have tried doing same and I am able to get the tenantSKU.
Can you please share the repro steps?
Please confirm :

Version of Microsoft Teams' SDK?
How are you referencing it? via NPM or CDN or copied locally?

Thanks

Let us know if you are still facing this issue.

@StefanoA1 - I have tried doing same and I am able to get the tenantSKU.
Can you please share the repro steps?
Please confirm :

Version of Microsoft Teams' SDK?
How are you referencing it? via NPM or CDN or copied locally?

Thanks

Hello @HunaidHanfee-MSFT @Wajeed-msft sorry, I was off-office, just read the notifications, I'm referencing using NPM, as for the version I'm using 1.8.0
"@microsoft/teams-js": "^1.8.0",
And I'm accessing the property from the context just as I access any other property from the sdk context (I get the other props, it's just the SKU one I don't get on mobile)

Hey,
Can you please try updating "@microsoft/teams-js" to "1.10.0" and see if you are still having the issue?
Are you facing this on android or iOS?
Also you can try re-login from mobile sometimes it helps.
Thanks

Hey,
Can you please try updating "@microsoft/teams-js" to "1.10.0" and see if you are still having the issue?
Are you facing this on android or iOS?
Also you can try re-login from mobile sometimes it helps.
Thanks

Thanks for your response, I've updated it to "1.10.0" and now I get unknown which this time is mentioned as a possible output for the prop in the docs but still doesn't address the lack of a SKU context in the mobile environment.

Hey,
What is your current SKU? It seems like for other than enterprise, free, edu it come as unknown.
Thanks

On teams desktop version and on web version it is enterprise, on teams (mobile app) it becomes unknown

Hello,
We have tested on Teams Mobile client v1416/<IP_ADDRESS>1093701 and Android v10.
Thanks

Teams Mobile client v1416/<IP_ADDRESS>1083801/0624 & Android v11, I'll try with the latest mobile client version you specify to see if I get a different result.
Thanks

You can close the issue, the problem is solved with the latest version

Although I'd recommend that the value unknown is set as a string "unknown" or indicate that the unknown value isn't a string but the primitive unknown type in the docs (for parsing purposes)

Hey,
Please try out this app at your end(Attaching a manifest). Let me know if you can see the tenant SKU with this one.
TestTenant.zip
This is a simple tab :

No free account can't get the unknown value?

I need to confirm with team when exactly unknown come.
Thanks

Hello @StefanoA1,
Did you get a chance to install and check the manifest I shared?
Thanks

Hello @HunaidHanfee-MSFT thanks for the info, I'm going to test it today/tomorrow

Hello @HunaidHanfee-MSFT , I tested the manifest and I get unknown for the tenantSKU, were you able to confirm if the unknown value never shows in any case for a free account? I'm backing on that info to address a publication requirement of the TeamsStore validation team, which is to give a meaningful error message in case a free teams account tries to access the app (an error will still be thrown if I can't identify the user as a free one but it will be less precise)

Hello,
I confirmed, For free users SKU value would be free.
Thanks


Duplicate firing of effects / useEffect logic executing twice for published Checkout UI extensions

Package: @shopify/checkout-ui-extensions-react: ^0.18.1
Extension type: checkout_ui_extension
Describe the bug
For the deployed version of checkout_ui_extension extensions, we are seeing duplicative behavior / effects logic firing twice
e.g. Double (2×) API calls for every extension
However, when testing the same version of the code through the local tunnel (ngrok), the above behavior is NOT present, effect logic is only fired once (1×) as you would expect. This is the only discernible difference: testing local dev vs. deployed.
Steps to reproduce the behavior:

Scaffold a checkout_ui_extension extension
Add some basic useEffect logic you'd expect to happen once e.g. logging or initial API fetch etc
Test locally via yarn dev + ngrok tunnel, monitoring DevTools console or Network tab (logic executed once)
Deploy to Shopify
Now, test deployed Draft or published version of the same code via dev store directly (no tunnel)
Monitor DevTools console or Network tab, and notice the associated effects logic fires twice!

Expected behavior

useEffect logic and associated network calls should not be duplicated for deployed / published extensions.
The firing of effects should be the same, regardless of developing locally (ngrok) or testing live / published extension code

Screenshots
Deployed version illustrating duplicate API calls during initialization:

Additional context
Confirmation from the community also experiencing this issue:
https://discord.com/channels/842813079926603828/984191460482105354/1017163573195182100

Interesting observation @marvinhagemeister -- in my case, it's 100% reproducible when DevTools is open (confirmed through verification of 2× API calls)
When testing the same extension locally -- also with DevTools open -- the API calls are not duplicated. Hope this helps!

@jamesvidler Unfortunately nothing I can share publicly here on GH, but would be happy to sync with you directly to better help illustrate. Alternatively, would be open to potentially creating a simplified POC w/ minimal requirements required to reproduce.

@jamesvidler Unfortunately nothing I can share publicly here on GH, but would be happy to sync with you directly to better help illustrate. Alternatively, would be open to potentially creating a simplified POC w/ minimal requirements required to reproduce.

No problem, we understand. Here is what I was testing with, but unfortunately I wasn't able to reproduce your issue with or without dev tools.
import React from "react";
import { render, Banner } from "@shopify/checkout-ui-extensions-react";
import { useEffect } from "react";

render("Checkout::Dynamic::Render", () => <App />);

function App() {
  useEffect(() => {
    fetch("https://eo825nk8zxilfx.m.pipedream.net")
      .then((response) => response.json())
      .then((data) => {
        console.log("networkRequest:", data);
      });
  }, []);

  return (
    <Banner>
      This extension tests how many times an initial useEffect is called. Check
      console.log for more info.
    </Banner>
  );
}

Just wondering if there might be something we are missing?

Thanks @jamesvidler  -- and to confirm, are you testing locally (via tunnel), via deployed / published, or both?
My current experience is not reproducible locally, but is only when published and testing an activated extension...
FWIW, confirmation from the community also experiencing this issue:

Yes, we are testing this both ways. But, primarily testing deployed versions since that's where this appears to be happening. That's why I'm wondering if we might be missing something that's happening in your code.

Will add that I see this same behavior. When extensions are served via local app (?dev=https://abc.ngrok.io) it behaves as expected. When loading the extensions via published state, double api calls for anything I call within useEffect.

Quick update from our end: We determined that the issue is related to a beta flag tied to pixel extensions(https://shopify.dev/apps/pixels). Reaching out internally to the team that owns them to take a look, our developer preview automatically enables pixels on the shop which is why most partner shops are seeing the issue.

Confirming only seeing api calls fire once. Looks resolved on my end! Thank you!!


Revert "Improve callout shortcode."

Reverts twbs/bootstrap#31802
Unfortunately, this results in the callout headings being included in the ToC. I'm not sure if there is any way to exclude specific headings apart from maybe using CSS to hide them, so maybe reverting this might be a better solution.

@regisphilibert: if you have any suggestions please let me know :)
Ideally, we should use {{% foo %}} since we do want the content to be processed by the Markdown engine.


min heap performance optimize

heap-inl.h
  for (k = 0, n = heap->nelts; n >= 2; k += 1, n /= 2)     path = (path << 1) | (n & 1);
to
  for (k = 0, n = heap->nelts; n >= 2; k += 1, n >>= 1)     path = (path << 1) | (n & 1);

So basically, replace n /= 2 with n >>= 1? The compiler should be able to use strength reduction to accomplish the same thing.

yes, some compilers don't optimize this, like MSVC

This change decreases the readability of the code. Is the corresponding performance improvement worthwhile?


Manually dedupe entries when listing files in s3

It's not clear why this is necessary, but we've been seeing duplicate
entries fairly often.
We should wait and see if #43 magically fixed this, though.

Nope, #43 did not magically fix this.

👍


Code Transpilation throws an AbortController exception

Bug Report
Any code transpilation including React yells an abort controller on TypeScript internal tooling
🔎 Search Terms

🕗 Version & Regression Information
TypeScript version: 4.9.3

This is a crash
This changed between versions ______ and _______
This is the behavior in every version I tried, and I reviewed the FAQ for entries about _________
I was unable to test this on prior versions because _______

⏯ Playground Link

Playground link with relevant code
💻 Code
node_modules/@types/node/globals.d.ts:72:13 - error TS2403: Subsequent variable declarations must have the same type.  Variable 'AbortSignal' must be of type '{ new (): AbortSignal; prototype: AbortSignal; abort(reason?: any): AbortSignal; timeout(milliseconds: number): AbortSignal; }', but here has type '{ new (): AbortSignal; prototype: AbortSignal; }'.

72 declare var AbortSignal: {
               ~~~~~~~~~~~

  ../../../../../../usr/local/lib/node_modules/typescript/lib/lib.dom.d.ts:2071:13
    2071 declare var AbortSignal: {
                     ~~~~~~~~~~~
    'AbortSignal' was also declared here.

Found 1 error in node_modules/@types/node/globals.d.ts:72

🙁 Actual behavior

🙂 Expected behavior

You forgot to fill out the issue template. Duplicate of #51567.

Thanks closing the issue.
Reason: duplicate