When using sphinx-hoverxref together with this theme, links with tooltips are hidden

Describe the bug
When using sphinx-hoverxref on a Jupyter Book, the links do not appear when the HTML is rendered. However, the HTML tags are there. It seems there is a clash between CSS classes that produces this problem.
An issue was open in the sphinx-hoverxref repository (https://github.com/readthedocs/sphinx-hoverxref/issues/180) about this problem, but I'm not sure if the problem is there, here, or somewhere else 😅 . I'm copying (and modifying it a bit) and pasting the content of it here.
I'm the author of the sphinx-hoverxref extension. Let me know if I can be useful somehow here.
Reproduce the bug

in a clean virtualenv, install the dependencies pip install sphinx-hoverxref jupyter-book matplotlib
create a new book, jupyter-book create mynewbook/
edit the mynewbook/_config.yml file to install the sphinx-hoverxref extension

# _config.yml

sphinx:
  config:
    hoverxref_roles:
      - term
    hoverxref_role_types:
      term: modal
  extra_extensions:
    - hoverxref.extension

edit the mynewbook/intro.md to make usage of the extension

```{glossary}
Term one
  An indented explanation of term 1
```

Here is my term!

{term}`Term one`

Is it shown here?

build the book, jupyter-book build mynewbook

When you open mynewbook/_build/html/index.html you will see that the Term one is not shown. However, if you inspect the DOM, the HTML element is there. It seems there is a problem with CSS where Jupyter Book's theme interferes with the .tooltip (opacity: 0) and .modal (display: none) classes making them invisible.

List your environment
▶ jupyter-book --version

Jupyter Book      : 0.13.0
External ToC      : 0.2.4
MyST-Parser       : 0.15.2
MyST-NB           : 0.13.2
Sphinx Book Theme : 0.3.2
Jupyter-Cache     : 0.4.3
NbClient          : 0.5.13

@humitos - thanks for opening this one up. Hmmm, I can think of two potential ways around this:

Special-case sphinx hoverxref by adding an SCSS file that follows similar patterns as the others in this folder and making the behavior be what we want (I'm happy to enable sphinx-hoverxref on these docs if that would help test it out). Note that we might consider doing this in the PyData theme instead, if we imagine the same problem might occur there (it similarly has an extensions folder for special-case CSS).
Remove the bootstrap tooltips.  We may decide that these bootstrap tooltips are not be worth all of the trouble they are causing 😅. I wonder if there's a way that we could still nicely-style the tooltips with our own CSS rather than resorting to the Bootstrap over-rides, which tend to be a bit aggressive.

Any thoughts or guidance on either of these options?

@choldgraf

Special-case sphinx hoverxref by adding an SCSS file that follows similar patterns as the others in this folder and making the behavior be what we want (I'm happy to enable sphinx-hoverxref on these docs if that would help test it out). Note that we might consider doing this in the PyData theme instead, if we imagine the same problem might occur there (it similarly has an extensions folder for special-case CSS).

I've done something similar in sphinx-hoverxref as a quick fix for some other themes. However, I think this case, in particular, is a little more complex since there is a clash between the CSS classes that sphinx-hoverxref uses with the ones coming from bootstrap. So, I think there should be a way to use a "namespace" to not collide? I'm not good at CSS and I'm not sure if that's a thing or not, but if both, sphinx hoverxref and bootstrap, use .tooltip; how do we distinguish them when writing CSS rules?
Should I prefix all sphinx-hoverxref with hxr-, for example? Liike, hxr-tooltip, hxr-hoverxref, hxr-modal, etc

Remove the bootstrap tooltips. We may decide that these bootstrap tooltips are not be worth all of the trouble they are causing sweat_smile. I wonder if there's a way that we could still nicely-style the tooltips with our own CSS rather than resorting to the Bootstrap over-rides, which tend to be a bit aggressive.

I'm not aware of the troubles these have been causing, but if they are not being used anymore, removing these is the best option 😄

I do agree that prefixing things in hoverxref is the easiest path forward and is a good practice. It is similar to what sphinx design uses to avoid the same problem (and annoying that bootstrap doesn't do it)

Hi! I just released a new version of sphinx-hoverxref extension that prefixes all the CSS classes with hxr-. This should solve the collision problem that we had. I'm closing this issue now. Feel free to re-open, ping me or anything if you consider that's not working as expected. Thanks!


Buttons only as input available

Hello,
I have added the following buttons from your example for testing.
{
"keys": [
{"name": "Power", "key": "KEYCODE_POWER"},
{"name": "VolUp", "key": "KEYCODE_VOLUME_UP"},
{"name": "VolDown", "key": "KEYCODE_VOLUME_DOWN"},
{"name": "Home", "key": "KEYCODE_HOME"},
{"name": "Mute", "key": "KEYCODE_MUTE"}
]
}
But these are only shown as input, not as single buttons like e.g. Power.  Is this behavior normal? So the buttons are not really usable.

I do not understand what your are calling "input" : could you join a screenshot please ?

Hi,
the "wheel" with the Inputs like HDMI1 etc. Or is it not possible to show e. g. Volume Up as a separate Button?

Yes : you can create a scene that activate this input and run it by voice - it's the only way actually


Switch in form elements page are not implemented correctly

Note: for support questions, please use stackoverflow. This repository's issues are reserved for feature requests and bug reports.

I'm submitting a ...

bug report

Do you want to request a feature or report a bug?

Bug

What is the current behavior?
Switch are not disabled, and switch size are not according to label i.e small and large

If the current behavior is a bug, please provide the steps to reproduce, ideally also a screenshot or gif if it's a style issue

go to https://vuestic.epicmax.co/admin/forms/form-elements
scroll down to last section
Yo will the switch are not implement according to their labels

What is the expected behavior?
It show the correct state as defined

Should be fixed.


change node changes only first context entry in custom context

Current Behavior
I have a change note with three set rules:
SET flow.foo on custom to the value (string) "a"
SET flow.bar on custom to the value (string) "b"
SET global.foo on custom to the value (string) "c"
After triggering by an insert node the set method of the custom context module is only called for the first one.
Expected Behavior
I expected all three context variables to be set by calling set method three times, once for each variable, or two times, once per scope.
Steps To Reproduce
create a contextStorage module with at least debug output on the methods.
...
set(scope, key, value, callback) {
        console.log("OdeonContextStore","set","scope",scope,"key",key,"value",value,"callback",typeof callback);
...

Import the attached flow, deploy and trigger the inject. Review your console for generated output. If you have a complete contextStorage module implementation review your context in the corresponding sidebar.
Example flow
[
    {
        "id": "45e4e84a789d87e4",
        "type": "inject",
        "z": "3e854324c3d9dadd",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 520,
        "y": 400,
        "wires": [
            [
                "8e8960aa6d1f1180"
            ]
        ]
    },
    {
        "id": "8e8960aa6d1f1180",
        "type": "change",
        "z": "3e854324c3d9dadd",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "#:(custom)::foo",
                "pt": "flow",
                "to": "a",
                "tot": "str",
                "dc": true
            },
            {
                "t": "set",
                "p": "#:(custom)::bar",
                "pt": "flow",
                "to": "b",
                "tot": "str"
            },
            {
                "t": "set",
                "p": "#:(custom)::foo",
                "pt": "global",
                "to": "c",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 720,
        "y": 400,
        "wires": [
            [
                "425c993295afe887"
            ]
        ]
    },
    {
        "id": "425c993295afe887",
        "type": "debug",
        "z": "3e854324c3d9dadd",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 890,
        "y": 400,
        "wires": []
    }
]

Environment

Node-RED version: 3.1.0
Node.js version: 18.17.1
npm version: 10.2.4
Platform/OS: Linux
Browser: Chrome

I've added your debug to both the memory store and the localfs context that ships with and defined both in the settings.js and I'm not seeing this.
contextStorage: {
        default: {
            module: "memory"
        },
        custom: {
            module:"localfilesystem"
        },
    },

I do get a extra output when saving to the custom store because it uses a separate instance the memory context as a cache.
Are you sure your context is not throwing an error somewhere which is causing the code calling it to fail?

no, i don't.
tldr: discovered that i was missing the callback on the set method and that fixed the problem. Left all the text as documentation for others.
Just recapped the whole scenario by the following steps:

removed $HOME/.node-red
created a new directory "context-test" and changed to it
run: npm i node-red
run: ./node_modules/.bin/node-red and stopped it after startup completes to get a reference settings file
just uncommented the contextStorage section and edited to:

      contextStorage: {
          default: {
              module:"memory"
          },
          custom: {
              module:require("./contextstub.js")
          }
      },

added $HOME/.node-red/contextstub.js with

class context{
  constructor(config){console.log("constructor",arguments)};
  open(){console.log("open",arguments)};
  close(){console.log("close",arguments)};
  get(){console.log("get",arguments)};
  set(){console.log("set",arguments)};
  keys(){console.log("keys",arguments)};
  delete(){console.log("delete",arguments)};
  clean(){console.log("clean",arguments)};
}
module.exports=function(){
  return new context();
}

run: ./node_modules/.bin/node-red
opened the editor, import and deployed the flow above
triggered inject and got the following on the console:

24 Nov 09:25:32 - [info]

Welcome to Node-RED
===================

24 Nov 09:25:32 - [info] Node-RED version: v3.1.0
24 Nov 09:25:32 - [info] Node.js  version: v18.12.1
24 Nov 09:25:32 - [info] Linux 5.15.86-1-lts x64 LE
24 Nov 09:25:32 - [info] Loading palette nodes
24 Nov 09:25:33 - [info] Settings file  : /home/mwolff/.node-red/settings.js
24 Nov 09:25:33 - [info] Context store  : 'default' [module=memory]
constructor [Arguments] {}
24 Nov 09:25:33 - [info] Context store  : 'custom' [module=custom]
open [Arguments] {}
24 Nov 09:25:33 - [info] User directory : /home/mwolff/.node-red
24 Nov 09:25:33 - [warn] Projects disabled : editorTheme.projects.enabled=false
24 Nov 09:25:33 - [info] Flows file     : /home/mwolff/.node-red/flows.json
24 Nov 09:25:33 - [warn]

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

24 Nov 09:25:33 - [warn] Encrypted credentials not found
24 Nov 09:25:33 - [info] Server now running at http://<IP_ADDRESS>:1880/
24 Nov 09:25:33 - [info] Starting flows
24 Nov 09:25:33 - [info] Started flows
24 Nov 09:25:43 - [info] Stopping flows
24 Nov 09:25:43 - [info] Stopped flows
clean [Arguments] {
  '0': [
    '6a2eeeec0b6fe9ac',
    '45e4e84a789d87e4',
    '8e8960aa6d1f1180',
    '425c993295afe887'
  ]
}
24 Nov 09:25:43 - [info] Updated flows
24 Nov 09:25:43 - [info] Starting flows
24 Nov 09:25:43 - [info] Started flows
set [Arguments] {
  '0': '6a2eeeec0b6fe9ac',
  '1': 'foo',
  '2': 'a',
  '3': [Function: callback]
}

reviewed https://nodered.org/docs/api/context/methods/#contextstoresetscope-key-value-callback and decided to modify my stub to

class context{
 ...
  set(scope, key, value,callback){
    console.log("set",arguments);
    if(typeof callback==="function"){
      callback(null)
    }
  };
...
}
module.exports=function(){
  return new context();
}

rerun again and voila, it worked!
just for information: there are three calls to set, one for each variable!

Sorry for missing that in the first place and taking your time!
Still wondering where and when delete method is called. See slack->core-dev also.

You can delete items in context from the context sidebar view, try that

That calls set(key,undefined,callback). Signature of delete is delete(scope) not delete(key).


Collections customizers not tested

While hunting for another bug, I discovered that __iter__ was not working in as intended.  It appears that none of the customizers for collections are currently being tested.  Thus bugs are likely.

One bug was caught and fixed in #443.


404 at /registry/spec/deprecated-schema-v1/:

I found a broken link : https://docs.docker.com/registry/spec/deprecated-schema-v1/:
Getting this when pushing an image in, admittedly, a ecosystem that is old. I have no idea whether this is a client or server message, but the broken link is not very user-friendly.

That URL works for me (not getting a 404); can you verify if you're still getting a 404 on that URL? https://docs.docker.com/registry/spec/deprecated-schema-v1/

Turns out my terminal emulator thinks the colon is part of the URL. I didn't catch it, but seeing that you didn't either, I feel less bad ;)

Ah! Hm, perhaps we need to print it on a new line, or add a space in between if we print it there 🤔


Linting fails with 0.25 (delegate.rb:87:in `method_missing')

undefined method `children' for false:HamlLint::ParsedRuby
C:/Ruby/lib/ruby/2.3.0/delegate.rb:87:in `method_missing'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/tree/tag_node.rb:237:in `existing_attributes'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/tree/tag_node.rb:38:in `has_hash_attribute?'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/linter/inline_styles.rb:9:in `visit_tag'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:40:in `safe_send'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:19:in `visit'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `block in visit_children'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `each'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `visit_children'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:24:in `visit'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `block in visit_children'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `each'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `visit_children'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:24:in `visit'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `block in visit_children'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `each'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `visit_children'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:24:in `visit'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `block in visit_children'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `each'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `visit_children'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:24:in `visit'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `block in visit_children'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `each'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:30:in `visit_children'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/haml_visitor.rb:24:in `visit'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/linter.rb:28:in `run'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/runner.rb:84:in `block in collect_lints'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/runner.rb:83:in `map'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/runner.rb:83:in `collect_lints'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/runner.rb:119:in `process_file'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/runner.rb:108:in `block in process_files'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/runner.rb:107:in `each'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/runner.rb:107:in `process_files'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/runner.rb:132:in `report'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/runner.rb:23:in `run'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/cli.rb:106:in `scan_for_lints'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/cli.rb:51:in `act_on_options'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/cli.rb:23:in `run'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/rake_task.rb:97:in `run_cli'
C:/Ruby/lib/ruby/gems/2.3.0/gems/haml_lint-0.25.0/lib/haml_lint/rake_task.rb:87:in `block in define'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `block in execute'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `each'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:250:in `execute'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-funnel-0.19.0/lib/rake/funnel/integration/progress_report.rb:48:in `call'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-funnel-0.19.0/lib/rake/funnel/integration/progress_report.rb:48:in `block (4 levels) in create_patch'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-funnel-0.19.0/lib/rake/funnel/integration/progress_report.rb:48:in `call'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-funnel-0.19.0/lib/rake/funnel/integration/progress_report.rb:48:in `block (4 levels) in create_patch'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-funnel-0.19.0/lib/rake/funnel/tasks/timing.rb:89:in `call'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-funnel-0.19.0/lib/rake/funnel/tasks/timing.rb:89:in `block (5 levels) in benchmark'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-funnel-0.19.0/lib/rake/funnel/support/timing/statistics.rb:22:in `benchmark'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-funnel-0.19.0/lib/rake/funnel/tasks/timing.rb:81:in `block (2 levels) in benchmark'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-funnel-0.19.0/lib/rake/funnel/tasks/timing.rb:88:in `block (4 levels) in benchmark'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:194:in `block in invoke_with_call_chain'
C:/Ruby/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:187:in `invoke_with_call_chain'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:216:in `block in invoke_prerequisites'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:214:in `each'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:214:in `invoke_prerequisites'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:193:in `block in invoke_with_call_chain'
C:/Ruby/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:187:in `invoke_with_call_chain'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/task.rb:180:in `invoke'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:152:in `invoke_task'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block (2 levels) in top_level'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `each'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:108:in `block in top_level'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:117:in `run_with_threads'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:102:in `top_level'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:80:in `block in run'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:178:in `standard_exception_handling'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/lib/rake/application.rb:77:in `run'
C:/Ruby/lib/ruby/gems/2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>'
C:/Ruby/bin/rake:22:in `load'
C:/Ruby/bin/rake:22:in `<main>'
Report this bug at https://github.com/brigade/haml-lint/issues

To help fix this issue, please include:
- The above stack trace
- Haml-Lint version: 0.25.0
- Haml version: 4.0.7
- RuboCop version: 0.48.1
- Ruby version: 2.3.3
rake aborted!
haml-lint failed with exit code 70

My config was unchanged after updating haml-lint. Still using haml 4, FYI.

I'll have a look at this.

If possible, could you do some bisection to figure out what file + line in that file the error is coming from? I have a fix in mind, but I want to make sure it's the right one. It would be good to have a repro case. (ping @mensfeld as well, since you saw the same issue).
A workaround in the meantime is to disable the InlineStyles linter.

Thanks @agross for the report! This is fixed in 0.25.1.

Thanks for the quick fix!


Fix Docs Home layout for small devices

Docs Home page is not displayed correctly on mobile devices. Fix to set layout as column on small devices.

I signed it!

Looks like someone fixed it. Let me know if you think otherwise.  Thanks for the help.


vmtoolsd misses libssl.so.1.0.0

Description
Since version 2605.5.0 vmtoolsd misses libssl.so.1.0.0.
Impact
vmtoolsd failes to start.
systemctl status vmtoolsd.service

● vmtoolsd.service - VMware Tools Agent
     Loaded: loaded (/etc/systemd/system/vmtoolsd.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/vmtoolsd.service.d
             └─90-tmpfiles-cve-2015-4191.conf
     Active: failed (Result: exit-code) since Tue 2020-09-22 12:22:18 UTC; 33min ago
       Docs: https://github.com/vmware/open-vm-tools
    Process: 765 ExecStartPre=/usr/bin/ln -sfT /usr/share/oem/vmware-tools /etc/vmware-tools (code=exited, status=0/SUCCESS)
    Process: 769 ExecStart=/usr/share/oem/bin/vmtoolsd (code=exited, status=127)
   Main PID: 769 (code=exited, status=127)
Sep 22 12:22:18 <host_name> systemd[1]: Starting VMware Tools Agent...
Sep 22 12:22:18 <host_name> systemd[1]: Started VMware Tools Agent.
Sep 22 12:22:18 <host_name> vmtoolsd[769]: /usr/share/oem/bin/vmtoolsd: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory
Sep 22 12:22:18 <host_name> systemd[1]: vmtoolsd.service: Main process exited, code=exited, status=127/n/a
Sep 22 12:22:18 <host_name> systemd[1]: vmtoolsd.service: Failed with result 'exit-code'.

Environment
flatcar-install -d /dev/sda -i ignition.json -o vmware_raw
Expected behavior
vmtoolsd starts successfully.

Related to https://github.com/flatcar-linux/Flatcar/issues/21. Unfortunately, vendor tools like open-vm-tools are not updated on system update. While we are working on structural changes to make vendor tools part of a system upgrade, currently a fresh deployment is required in order to receive the latest vendor tools version.
VMWare has documented a workaround to update existing deployments: https://kb.vmware.com/s/article/2142569

@a2yp Can you confirm that this was on node that got updated and not a fresh installation?

@pothos The instances were automatically upgraded from 2512.5.0 to 2605.5.0.
@t-lo Thank you, will give the workaround a try.

@t-lo

VMWare has documented a workaround to update existing deployments: https://kb.vmware.com/s/article/2142569

Works for me, I backed up/restored the config.ign file and did not adjust a "version-id" in it.
Now vmtoolsd is running. (Version:11301)

Glad to hear @a2yp! I'll resolve this issue - please consider following the tracking issue https://github.com/flatcar-linux/Flatcar/issues/21 to stay up to date on vendor tools updates.

I've posted an improved workaround in #21.


docs: r components

Summary
Type

Documentation

Summarise concisely:
What is expected?
Documentation on R component. No documentation on Range because this component is totally broken

Its not part of migration but could you make text disabled too ?


Issue 1 first documentation

Add setup and usage instructions in the readme, as well as code docs throughout all modules.
Wouldn't mind a review from @GrooveStomp to help Resolve #1 .
Maybe give the setup instructions a go and see if you hit any problems?

The README is mostly good, but I'm missing something.
I've gone through all the steps up until the very last two.  The last two steps are ordered backwards compared to what someone new will expect, but that's not at all difficult to figure out.
However, building the project doesn't seem to work:
↳ cargo run project
   Compiling libc v0.2.10
   Compiling getopts v0.2.14
   Compiling yaml-rust v0.3.2
   Compiling rand v0.3.14
   Compiling muxed v0.2.0 (file:///home/aaron/code/muxed)
     Running `target/debug/muxed project`
thread '<main>' panicked at 'Config Read error: Error { repr: Os { code: 2, message: "No such file or directory" } }', ../src/libcore/result.rs:709
Process didn't exit successfully: `target/debug/muxed project` (exit code: 101)

And if I try without specifying project there:
↳ cargo run
     Running `target/debug/muxed`
thread '<main>' panicked at 'index out of bounds: the len is 1 but the index is 1', ../src/libcollections/vec.rs:1134
Process didn't exit successfully: `target/debug/muxed` (exit code: 101)

We're getting somewhere.
cargo run will always bail right now. (This is the fault tolerance I need to start looking at). It will bail because it's looking for a project to open. If we don't pass a project it has nothing to do.
cargo run project says to look for the project.yml in ~/.muxed/ which I believe it's finding but is claiming Config Read error.
So it's not having fun parsing the actual config. Is it the config copied from the setup sample? Or has there been changes?
Also,
Which two steps do you feel are mis-ordered. I think i left it a little ambiguous as to which way to compile. and maybe just need to suggest one way to compile and run. Instead of assuming someone know how to compile and then run the bin, or compile&run via cargo.

Ah. I see.  I followed the steps verbatim except instead of creating a project.yml file, I created muxed-project.yml.
I didn't even think that cargo run project was referring to the same project used in project.yml.  So cargo run muxed-project ought to work...
↳ cargo run muxed-project
     Running `target/debug/muxed muxed-project`
can't find window muxed_first_window_23817
sessions should be nested with care, unset $TMUX to force

Yep, that seems better!
I think the last two steps mentioned are ordered backwards for newbies.

4. Compile & run Muxed for your project.
Here is where you call your project, with the same name as the config file created in step 2.
$ ./muxed project

With Cargo:
$ cargo run project

Won't you always be building with cargo first, then you can use the resulting executable to launch you project afterward, ala: ./muxed project ?

I'll re-work the readme and try to make project have more meaning. And fixup the ambiguity in the last step.
I noticed you got can't find window muxed_first_window_23817. Aside form the documentation issue did tmux actually open with your desired setup?

No.  I'll modify my config here a bit and see if I can make it work.

@brianp I modified my config file and ran from a fresh gnome-terminal (not already running tmux) and it worked.  My new config file looks like this:
rt: "~/"
windows:
  - editor:
      layout: "main-vertical"
      panes: ["jed", "tig"]
  - server: "~/code/asciiquarium/asciiquarium_1.1/asciiquarium"
  - logs: "tail -f /var/log/dmesg"

Not significantly different from the example one.  Perhaps it might be worthwhile to update the example one with some common programs anyone will have installed in a unixy environment and add a description of what to expect with that layout?
ie., perhaps:
rt: "~/"
windows:
  - editor:
      layout: "main-vertical"
      panes: ["vi", "ls -alh"]
  - processes: "ls /proc"
  - logs: "tail -f /var/log/dmesg"

This will create a new tmux session with three windows named *editor*, *processes* and *logs*.  By default your view will be on the last window opened, which in this case is *logs*.
The first window will have to panes split vertically, the left will have the editor *vi* running and the right will have a shell listing of your current working directory.  For more information on configuring *muxed* see X.

What does `rt: "~"` mean?

What does rt: "~" mean?
root: ~/ Defines the root directory windows open in.

I've made additional updates to the readme as per above discussion.
Also the fact you had to have a "clean" tmux session in order to not get can't find window muxed_first_window_23817 is a separate bug I've identified. Should be fixed soon.

Cool man. Well, that sorts it for the documentation I guess! :-)

That's a lot of in-code documentation.
So... should I merge it?  It looks good to me.


Update to the latest Graph CLI and TypeScript library

This is work in progress. Think of it as a preview.

I'm going to go ahead and merge this.


Super Mario 3D World Graphic Pack Resolution Issue

When changing the resolution via the graphic pack for Super Mario 3D World certain areas (specifically areas where it's raining) look like this. It doesn't happen every time but seems to be more likely after playing for long periods of time. Happens on OpenGL and Vulkan.
How it's supposed to look

How it looks when the problem occurs.

reminder to check for format conversion issues before closing


Create example of getting a subnet ID tag

User wrote:
I'm trying to get a subnetId with a tag (actually the tag is applied by creation through CDK, so it's especially troublesome to not be able to find this).
In this example, you show how to apply a tag, but not how to find a resource with a Tag. Presently, I need to replace something like the following in the AWS SDK:
Filter filter = new Filter().withName("vpc-id").withValues(vpcId).withName("tag:Name").withValues("infraStack/CodeBuild VPC/PrivateSubnet1");

DescribeSubnetsRequest describeSubnetsRequest = new DescribeSubnetsRequest().withFilters(filter);

String subnetId = null;

try {
    subnetId = getClient().describeSubnets(describeSubnetsRequest).getSubnets().iterator().next().getSubnetId();

Right now CDK doesn't necessarily have API or user guide documentation on how to do this--or I'm not finding it.

Add this to: https://docs.aws.amazon.com/CDK/latest/userguide/constructs.html#constructs_tagging

Moving guide issues to doc repo.


Fix method text to work with other types then strings

For the following HTML structure:

123

Such formulated expectation, when called with a number and not a string, will fail because of strict comparison ===
expect($('#el')).to.have.text(123)

My fix ensures that any param for the text() method is converted into a string before comparing it with element text.

@keithamus and @meeber what you think?


FIX: Precheck cannot check In-app purchases with the App Store Connect API Key

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass

[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid

[x] I've read the Contribution Guidelines

[x] I've updated the documentation if necessary.

Motivation and Context

Resolves #18250
Description

I believe in providing solutions and not problems. I don't doubt we have this as true for a reason however with the recent additions to code signing with Apple's 2FA requirements, more people are moving to AppStoreConnect API Keys. This includes me and like me, many of us aren't expecting these checks.
I'd like to change the default value (as a shot in the dark) or ideally update the error to highlight you may be calling precheck without even being aware of it.

Thanks for the awesome thoughts! @joshdholtz
Alas I was expecting something around breaking changes to be the cause of this. That's great to hear it's been so deeply considered.
What is Apple ID Auth VS App Store Connect API Keys? Is that just traditional username and password?
I definitely don't love the idea of a temporary fix with a check around Spaceship::ConnectAPI.token. Seems like a lot more pain for the future.
If you're happy with it, I would be very happy to just see the error message extended to highlight you may inadvertently be calling the pre-check without realising.


fix typo

minumum => minimum
settins => settings
additon ==> addition
Measurment ==> Measurement

Hi, we have received a large number of these typo fix PRs recently and are unsure of the nature of them so we are closing them preemptively - we will make the recommended changes soon. Thanks.


Use version number from installed lib

Follow-up of #2463
Tested on my fork: https://github.com/JohnTitor/diesel/actions/runs/183373156

Thanks :+1:


Importing

While trying to run a obfuscated script with multiple .py files, I got an error just like can't import the a function from b.py
note: All scripts are obfuscated

As you think, after selecting the "Rename Classes, Functions, Variables & Parameters" option as N, my problem has been solved.


[Breaking] The script will not work when loaded from nginx because of the ಠ character

I used your package (thanks for making it) as a dependency. When loading and serving the whole package from an nginx server, I get the following error in the console:
"Uncaught SyntaxError: Invalid or unexpected token" pointing to  var ಠ = Symbol(); which is actually malformed to var à² = Symbol().
The nginx is a fresh install following this guide: https://gist.github.com/netpoetica/5879685
It could potentially be nginx not liking that char, and a conf issue, but when this code will be served as a 3rd party, without me having control of the servers serving it.
On node it works fine.
Thanks!

You should serve the monitors version which does not contain that character. Also the issue is probably caused by your server: you need to set it to deliver UTF-8


fix: add missing 'is' in second sentence

add missing 'is' in the second sentence of the first paragraph

Docs Build status updates of commit 451d54d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference/packages-config.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 451d54d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference/packages-config.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Generalize compile options creation

This is an attempt to prevent issues like those in https://github.com/intel-ai/hdk/pull/599#pullrequestreview-1550317117. The PR adds CompilationOptionsBuilder and uses it in the python execute API.
This is somewhat similar to what we've done to execution options earlier. The goal would be to move to the new builder everywhere and remove all the direct options modification*, although the config might not be always present. We could use another implementation for such cases. The builder would also be responsible for any validation needed. For example, to check that device_type and the codegen_traits_desc are compliant.
*For example, things like  c_co.get().allow_lazy_fetch = kwargs.get("enable_lazy_fetch", config.rs.enable_lazy_fetch) should modify the config itself and everything else uses the config as a single source of truth.
Thoughts?

Ugh. I was trying to reproduce the problem locally, but QueryBuilderTest fails with an assertion for me. Updated conda, clean build - still failing.


feat: text channel in bar(single view only)

Make Text channel Enable out of Text marks.

But not work in facet graphic.

Todo: add support in Pie chart & Map


Migrate to Smithy 1.7.0

Description of changes:

Adds support for renaming conflicting shapes within service closure
Adds support for httpQueryParams location

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Closed in favor of #289


Add support for decoding gzip-encoded response bodies

The bug here isn't that the recorded response isn't usable (it is). The bug is that the gzipped response is recorded in the cassette as-is, i.e. not human-readable. Unless preserve_exact_body_bytes is used, it seems that VCR prefers storing human-readable responses to allow inspecting/editing.
This is what I did to work around it:
require 'vcr'

begin
  require 'zlib'
  require 'stringio'
  have_zlib = true
rescue LoadError
  have_zlib = false
end

VCR.configure do |vcr|
  vcr.before_record do |i|
    if have_zlib and enc = i.response.headers['Content-Encoding'] and 'gzip' == Array(enc).first
      i.response.body = Zlib::GzipReader.new(StringIO.new(i.response.body), encoding: "ASCII-8BIT").read
      i.response.update_content_length_header
      i.response.headers.delete 'Content-Encoding'
    end
  end
end

@mislav -- that's pretty rad.  Thanks for posting that.  Want to add it to a wiki page so others can find it?
It might also be useful to have a VCR option that does this automatically; that said, I'd be a little hesitant to unreservedly recommend its use, because it goes a bit against the "accuracy" goal of VCR.  Consider the case where the real response is gzipped, but the client does not properly handle gzipped responses.  When testing the code with VCR and this option enabled, the user would get a failure the first time they run the test (since the body is gizipped but the client can't handle it), but then the tests would start to pass on future test runs because the replayed response would be decoded.  The test would be a false positive.
Still, I'm open to their being a built in option for this.  Thoughts?

The Net::HTTP#get method in Ruby 1.9.3 handles decoding of gzip/deflate-encoded responses. That's the "client" I'm using (Faraday with NetHttp adapter, to be precise). As a result, most of the responses from 3rd party services are recorded gzip-encoded, and I don't want that because I can't tap into them. Since Net::HTTP is my client, I trust that it will handle decompression well and I don't want this to be a part of my tests.
Therefore a built-in option would be quite useful here. It could be on global config, and be called c.decode_compressed_response = true.

BTW, although my code works flawlessly, VCR still issues a warning that I don't understand:

VCR: got Encoding::UndefinedConversionError: U+010D from UTF-8 to ASCII-8BIT while trying to encode the UTF-8 response body to the original body encoding (ASCII-8BIT). Consider using the :preserve_exact_body_bytes option to work around this.

This is in the recording phase, not the replay phase. I'm guessing that VCR stores the original body encoding somewhere (ASCII-8BIT) and gets confused how the body string encoding suddenly changes to UTF-8 due to my hook.

BTW, although my code works flawlessly, VCR still issues a warning that I don't understand

The improved encoding support in VCR is a bit "green", so to speak (it was added in 2.0.0.rc2) so it doesn't surprise me there are some edge cases that aren't handled too well.  At least it's only a warning!
Can you come up with an executable example that demonstrates this issue?  I'll take a look at fixing it.

The Net::HTTP#get method in Ruby 1.9.3 handles decoding of gzip/deflate-encoded responses. That's the "client" I'm using (Faraday with NetHttp adapter, to be precise). As a result, most of the responses from 3rd party services are recorded gzip-encoded, and I don't want that because I can't tap into them. Since Net::HTTP is my client, I trust that it will handle decompression well and I don't want this to be a part of my tests.

That makes sense.  I was thinking more about other clients, since VCR supports such a wide variety of them (curb, excon, typhoeus, em-http-request, patron, httpclient, etc).  Do you know how many of them handle the decoding automatically like Net::HTTP does?  Regardless, this is ruby, and the ruby philosophy is to trust users and give them the means to shoot themselves in the foot...so I think I do like having the option, and we can just document it as a "use with care" option.  Do you want to take a stab at implementing it and submit a pull request?

One other thing:

Therefore a built-in option would be quite useful here. It could be on global config, and be called c.decode_compressed_response = true.

I think I would favor making it a cassette option.  If people want to set it globally, they can set it as a default cassette option.  That makes it more flexible if people want to use it sometimes and not others, whereas if it was a global option, that flexibility wouldn't be there.

Hmmm....another idea that just popped in my head.  We could have it re-encode on playback, so that it's more accurate to what the actual real response is like.
I can see downsides to doing this, though (e.g. it would make playback a bit slower since it has additional work to do), so I'm not sure if it's a good idea or not.

I could make a pull request, maybe tomorrow.
I'm for making it a cassette option, but against re-encoding on playback. If the user already opted into recording decoded responses, they are opting into not caring about the decoder implementation.

I'm for making it a cassette option, but against re-encoding on playback. If the user already opted into recording decoded responses, they are opting into not caring about the decoder implementation.

Works for me.
I'm not sure if you have already have an implementation in mind (so feel free to ignore this if so), but I've been using the cassette tags mechanism as a generic away to add hooks for specific cassettes based on a cassette option.  Some of the options are converted into tags here, and built-in hooks get added here.


how to uninstall the Web-Addin in Excel-Online if installed the way by uploading an manifest.xml

Uninstall the Web-AddIn
I installed in excel online the  "hello world" manifest.xml in the way it is described here:
https://github.com/OfficeDev/Office-Add-in-samples/tree/main/Samples/hello-world/excel-hello-world#run-the-sample-on-excel-on-web
When I install the Manifest.xml by uploading it as described, everything works fine - the problem is that I can no longer uninstall the Hello World AddIn. The Addin is also not displayed in the dialog under "My Add-Ins". In contrast, when I install an add-in like the Script Lab addin from the MS Store. This is displayed in the dialog my AddIns and can then also be uninstalled via the 3-point menu.
How can I remove it again if it is not displayed under My AddIns? It is loaded every time and is visible in the ribbon.
Concerns only Excel Online.
Thanks for help

@deltavision Thanks for your interest in Office Add-ins. We use the issues of this repo to track bugs in the samples. For programming questions like this, it is better to ask it on Stack Overflow (tagged "office-js") or on Microsoft 365 Q and A (tagged "office-addins-dev").
In the meantime, see if clearing the cache gets rid of the manually sideloaded add-in: Clear the Office cache.


[BUG][opensearch] java heap size always 1GB

Describe the bug
The java opts flag doesn't seem to change the heap size in elasticsearch. The only way we've found to change this is to overwrite the config file manually. Not sure if this is by design or not, if it deliberately set to 1GB please close this.
To Reproduce
Steps to reproduce the behavior:

set esJavaOpts to 2GB
esJavaOpts: "-Xms2048m -Xmx2048m"
Check the heapsize on the installed chart
GET _cat/nodes?h=heap*&v

Expected behavior
I expect the heapsize to be 2GB for the nodes that have esJavaOpts set to 2GB (in our case the data nodes)
what actually happens is all nodes show 1GB
Chart Name
opensearch
what seems to happen is instead of taking the JAVA_OPTS environment variable elasticsearch instead uses the value set in the file /usr/share/opensearch/config/jvm.options which has
-Xms1g
-Xmx1g

Host/Environment (please complete the following information):

Helm Version: 3.6.3
Kubernetes Version: 1.22.1

Additional context
Prob not really relevant to the bug as a whole but...
Issue was spotted our side when we had a particularly large index, this triggered the circuit breaker exception in ES.
looking online we saw this could be solved by simply increasing the heapsize in ES which led to this bug. We have since reduced the size of our indicies which seems to have prevented the circuit breaker exception.

Talked to the team it is more of a core issue, transfer to OpenSearch.

I think you can close this actually.
Later versions of the helm chart seem to set limits correctly


When using directions, how can I set the current location as the origin?

I can't figure out how to use directions correctly.
How can I set the origin to my current location?  The below code does not work.  Thank you so very much, fantastic API.

Sorry, current-location is not currently supported for directions directive.
Will be added in later release.

Allen, thank you.
Can you help me with finding my current location using your API?  Couldn't figure this out.
Thank you,
Karl

https://github.com/allenhwkim/angularjs-google-maps/blob/master/services/navigator_geolocation.js
NavigatorGeolocation.getCurrentPosition().then(function(pos) {
   ...
});

Thank you!!

Can u give this module a star, so that other people can use it?

Reopening to add current-location for origin/destination

Star added.  Thank you, fantastic API.

Please leave this issue open. I will use this ticket to add feature of adding current-location for origin/destination

oops, my bad.


⚠ File access (beta) has degraded performance

In 5b3adee, File access (beta) (https://beta.fyle.uk/file/fish) experienced degraded performance:

HTTP code: 200
Response time: 2162 ms

Resolved: File access (beta) performance has improved in e447d42.


Added a Steam sensor

Checks the online status of Steam accounts.
platform: steam_online
api_key: API_KEY
accounts:
  -<PHONE_NUMBER>6271642

I'm also planning on writing up the documentation for it too. :-)
If I've done anything wrong just tell me, since this is my first ever pull-request. :-D

I was thinking this would be crazy fun in device_tracker instead :)  But that's probably a bad idea.

@balloob How's that, hopefully everything you suggested is done right. :-)

Hopefully all the commits "squashed" into one. :-)

Does that look good @happyleavesaoc ? Dictionaries look very cool, will definitely have to use them again. :-)


feat(consensus): Generic Block Type

Description
Introduces a Block type for the alloy-consensus crate. See #1290

Think I've added what you're asking for but LMK if I'm missing something :)


Adjust notifications

Disable notifications for custom builders
Re-enable email notifications for unstable builders

@pablogsal: Would you be ok to "experiment" to get again email notifications from unstable buildbots?

@vstinner Yeah, let's experiment :)

New config deployed.


Add Privacy Statement menu item to Help menu

We need a link to the Privacy Policy from the Help menu.

Out of code review.


Missing Unit Tests

Similar to #33, the code on a whole lacks unit testing. We should implement these tests sooner rather than later, since unit tests should ideally be created at around the same time the code that they're testing is made.
For the Rust portions of the project, I think the files are small enough that we can go with the standard Rustic way of adding unit testing in a module at the bottom of a file. Once the files get bigger, we can consider moving them off into their own folder. We will need to teach colcon-cargo how to run these tests, but that shouldn't be too difficult.
The other languages should follow the standard ROS 2 rules for unit testing.

What kind of tests should we start with?
Are there any particular category of tests we could start with my mimicking/porting what exists for rclcpp or rclpy?

What kind of tests should we start with?
Are there any particular category of tests we could start with my mimicking/porting what exists for rclcpp or rclpy?

I think that adding unit tests for context, as well as the node Publisher and Subscriber should probably be a priority. I'd put context at the top of the list, though - both because it is the lynchpin that the rest of the library builds off of (from what I'm able to see), and that it's what deals most directly with FFI with rcl.
Additionally, any function that has unsafe should have at least one unit test. Ideally, if we can get away with it, I'd put more in there, just so we can make sure that we know that it fails in a way we expect.
A quick look for unsafe in functions turns up the following (though I may have missed a few):

rclrs/src/context.rs - ContextHandle.drop()
rclrs/src/context.rs - Context.init()
rclrs/src/context.rs - Context.ok()
rclrs/src/context.rs - Context.default()
rclrs/src/lib.rs - spin()
rclrs/src/lib.rs - spin_once()
rclrs/src/node/mod.rs - NodeHandle.drop()
rclrs/src/node/mod.rs - Node.new_with_namespace()
rclrs/src/node/publisher.rs - PublisherHandle.drop()
rclrs/src/node/publisher.rs - Publisher.new()
rclrs/src/node/publisher.rs - Publisher.publish()
rclrs/src/node/subscription.rs - SubscriptionHandle.drop()
rclrs/src/node/subscription.rs - SubscriptionBase.take()
rclrs/src/node/subscription.rs - Subscription.new()
rclrs/src/node/subscription.rs - Subscription.take()

I think that adding unit tests for context, as well as the node Publisher and Subscriber should probably be a priority. I'd put context at the top of the list, though - both because it is the lynchpin that the rest of the library builds off of (from what I'm able to see), and that it's what deals most directly with FFI with rcl.
Additionally, any function that has unsafe should have at least one unit test. Ideally, if we can get away with it, I'd put more in there, just so we can make sure that we know that it fails in a way we expect.
A quick look for unsafe in functions turns up the following (though I may have missed a few):

rclrs/src/context.rs - ContextHandle.drop()
rclrs/src/context.rs - Context.init()
rclrs/src/context.rs - Context.ok()
rclrs/src/context.rs - Context.default()
rclrs/src/lib.rs - spin()
rclrs/src/lib.rs - spin_once()
rclrs/src/node/mod.rs - NodeHandle.drop()
rclrs/src/node/mod.rs - Node.new_with_namespace()
rclrs/src/node/publisher.rs - PublisherHandle.drop()
rclrs/src/node/publisher.rs - Publisher.new()
rclrs/src/node/publisher.rs - Publisher.publish()
rclrs/src/node/subscription.rs - SubscriptionHandle.drop()
rclrs/src/node/subscription.rs - SubscriptionBase.take()
rclrs/src/node/subscription.rs - Subscription.new()
rclrs/src/node/subscription.rs - Subscription.take()


KWD "Lists Should Be Equal" | TypeError: '<' not supported between instances of 'dict' and 'dict'

Hi,
I'm receiving following error for KWD  "Lists Should Be Equal" when comparing 2 lists of dictionaries.
TypeError: '<' not supported between instances of 'dict' and 'dict'
As in documentation is not described that the KWD does not support comparing lists of dictionaries I assumed that I could use it.
The use case is a control list, extracted from a json and a "found" list, extracted from UI via BrowserLibrary.
Here the example of code to reproduce the error.
JSONLibrary is required to reproduce the issue pip install robotframework-jsonlibrary
*** Settings ***
Library    JSONLibrary
Library    Collections

*** Variables ***
@{capitoliTrovati}    ${cap1}  ${cap1}
&{cap1}                Accertamenti=0,00 €    Capitoli=004297    Casella Spuntata=${True}    Economie=0,00 €    Impegni=20,00 €    Liquidazioni=0,00 €
&{cap2}                Accertamenti=0,00 €    Capitoli=010794    Casella Spuntata=${False}    Economie=0,00 €    Impegni=0,00 €    Liquidazioni=0,00 €

*** Test Cases ***
Verifica liste
    Set Log Level    TRACE
    ${capitoliAttesi}    Load Json From File    3.1.3_capitoli.json
    ...    encoding=utf-8
    Lists Should Be Equal    ${capitoliAttesi}    ${capitoliTrovati}
    ...    msg=Capitoli non combacianti!    ignore_order=${True}

Attached the control json
3.1.3_capitoli.json

The error seems to occur because the argument ignore_order is True, so Robot Framework attempts to sort the lists ${capitoliAttesi} and ${capitoliTrovati}. For this, I assume it needs to compare the list elements, i.e. the dictionaries.

Yeah, the problem is that when you use ignore_order=True, list items in the list must be sortable. Dictionaries aren't:
>>> sorted([{'a': 1}, {}])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'dict' and 'dict'

Same error occurs if the list has, for example, integers and strings:
>>> sorted([1, '2'])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'str' and 'int'

Fixing this would require coming up with an algorithm for sorting unsortable items. Handling the latter case would be relatively simple, because we could separate items having different types to different groups and items in those groups, but types not sortable with themselves like dicsts would require separate handling. I'm personally not too interested to try solve this, but if someone else has interest I'd be happy to review PRs.

The doesn't seem to be interest towards fixing this. Closing.


Github Pages link is not working

The link https://karolsw2.github.io/gradientify.js/ in README.md is not working

No problemo, updated. Thanks!


XML Attributes and Element values

As the example in https://github.com/metafacture/metafacture-core/issues/377#issue-936955906 also shows attributes and elements of XML are all reconstructed as subfields. There is no documentation on this. Also if again encoded in XML the "new" structure is kept and the attributes are only kept as subfields.
This specific handling of xml should be documented.
Also:
Is there any way to reconstruct this correctly or at least build XML with attributes in metafacture?
In:
<roleTerm authority="marcrelator" type="text">Author</roleTerm>

FLUX
infile
| open-file
| decode-xml
| handle-generic-xml
| encode-xml
| write(FLUX_DIR + "result.xml")
;

[Same if you use a morph with _elseNested]
Out:
<roleTerm>
    <authority>marcrelator</authority>
    <type>text</type>
    <value>Author</value>
</roleTerm>

The usual convention is that the value in between the two tags of an XML-field is always transformed in the literal named value and the attributes become literals with the same name as the attributes. Attributes and value are combined in one entity.
The two problems here are:

There is no documentation of this transformation of values and attributes. This sh
ould be a quick fix.

The xml-encoder can't reconstruct the "old" structure. It should understand - at least optional - that elements called "value" should be the field values and the attributes are all the other fields in on entity. @blackwinter isn't this the convention you are looking for? Catmandu does something similar but using the fieldname content instead of value.

<roleTerm authority="marcrelator" type="text">Author</roleTerm>
->
role Term:
   authority: marcrelator
   type: text
   value: Author

Some transformation changes the value: Author to Creator and the value of authority to greatVocab:
->

role Term:
   authority: greatVocab
   type: text
   value: Creator

The encoder then should be able to transform to:
<roleTerm authority="greatVocab" type="text">Creator</roleTerm>

The xml-encoder can't reconstruct the "old" structure. It should understand - at least optional - that elements called "value" should be the field values and the attributes are all the other fields in on entity.

Yes, I guess this implicit attribute handling should be possible as well: Treat all literals as attributes, except those named value (ideally, the "value" literal name would be configurable).
But SimpleXmlEncoder already has the concept of an attribute marker (~), it's just that GenericXmlHandler doesn't emit it (and it's hard-coded).

This also mainly (only?) applies to streams produced by GenericXmlHandler. Not sure about the other XML handlers. And non-XML input streams that are to be encoded as XML output.

Reopened and assigned @TobiasNx for functional review.


Fix Coverity failure caused uninitialized class member.

BUG=XWALK-4543,XWALK-4542

@pozdnyakov PTAL, thanks.

I think @pozdnyakov is on holidays, @rakuco ?

lgtm.
BTW, the xwalk_runtime_features.cc was fixed a long time ago in ef046ff37efdf0d97f12f947aba1fbfa72236c3e, but 69df77eede452f47fc5dcf736d6e3d5212ddd4b1 reintroduced the very same bug :(


Added user visualisation - closes #131

In order to implement #131
Added :

user/read role
userlist page
user detail page with topic and group tab
topic acls tab
group acls tab

Will have a closer look asap.
But in first view, seems to be perfect 👍😋

The refactor of user has been a bit tricky but I think I came with a nice naming for this feature now.

Perfect now !!
Thanks for the hard work !!!


Bug: projects section scrolling issue

What happened?
Projects section is not getting auto scrolled to the top as of now user have to manually scroll to top of the projects section.
To reproduce

Go to home page.
Then scroll down on home page
After that click on projects section

Add screenshots
https://github.com/priyankarpal/ProjectsHut/assets/68184118/1e34a79b-71a5-41e8-badb-f3b0d2b366fd
What browsers are you seeing the problem on?
No response
Record

[X] I agree to follow this project's Code of Conduct
[ ] I'm a GSSoC'23 contributor
[X] I want to work on this issue

good spot @777Prabhjot 👏🏻 we need to fix this.
assigned to you


Need to write test cases to cover HTTP/2 scenarios in transport

$subject is needed since right now we have around 7 tests in transport for HTTP/2 which is really not enough.

We have already done this hence closing the issue.


[bug] No notification sound on Windows

Describe the bug
Notifications on Windows don't make any sound when shown. This is not the default and most other apps does make a sound when showing a notification.
Reproduction

Show a notification on windows:

use tauri::api::notification::Notification;

Notification::new(&app.config().tauri.bundle.identifier)
    .title("New message")
    .body("You've got a new message.")
    .notify(app)
    .expect("failed to show notification");

Expected behavior
A notification is shown and a sound is played.
Platform and versions
Environment
  › OS: Windows 10.0.19044 X64
  › Webview2: 111.0.1661.62
  › MSVC:
      - Visual Studio Community 2022
  › Node.js: 19.7.0
  › npm: 9.5.0
  › pnpm: Not installed!
  › yarn: Not installed!
  › rustup: 1.25.2
  › rustc: 1.68.2
  › cargo: 1.68.2
  › Rust toolchain: stable-x86_64-pc-windows-msvc

Packages
WARNING: no lock files found, defaulting to npm
  › @tauri-apps/cli [NPM]: 1.2.3
  › @tauri-apps/api [NPM]: Not installed!
  › tauri [RUST]: 1.2.4,
  › tauri-build [RUST]: 1.2.1,
  › tao [RUST]: 0.15.8,
  › wry [RUST]: 0.23.4,

App
  › build-type: bundle
  › CSP: unset
  › distDir: ../dist
  › devPath: http://localhost:1420/
package.json not found

App directory structure
  ├─ .git
  ├─ .vscode
  ├─ dist
  ├─ public
  ├─ src
  └─ src-tauri

Stack trace
No response
Additional context
#4761 might be relevant to this issue.
Tauri uses the notify-rust crate to handle notifications (source). Its notify_rust::Notification::sound_name method allows specifying the sound name. The sound name is later in its windows implementation parsed using winrt_notification::Sound::from_str which is derive using
strum::EnumString. The derive macro's documentation says "Each variant of the enum will match on it’s own name". Which means we need to pass the string "Default" to get the default sound. Finally this enum is converted to the real audio tag in winrt_notification::Toast::sound.
Note that setting the sound to None results in <audio silent=\"true\" /> being appended to the "toast" xml in the winrt-notification crate while specifying the Default sound appends an empty string.
Anyway, this all means that the issue can be solved by adding the following code:
#[cfg(windows)]
{
    notification.sound_name("Default");
}

In the tauri::api::notification::Notification::show method.

Nice finding, we would love to see a PR to fix this. Thanks


Update the README

After taking out some old options, fully document what is left including the new options.

Good enough for now.


Boolean Support

How would you validate a boolean value that could be not set at all but if is needs to be true or false?

An example while validating a json submission.
accurized.data (json, req, res, next) ->
  #...
  json.field('flag', "The flag, if specified, must be 'true' or 'false'.").trim().optional().boolean().as 'boolean'
  #...

Thanks!

Basically I need this
if typeof req.body.value != 'undefined' && req.body.value != null && typeof req.body.value != 'boolean'

Happy to help.  It sounds like this answers your question.  I'm going to close the issue.

So there is no way to do it in the library?

Accurized's built in validators are based on node-validator which is really only meant for validating, cleansing and coercing input strings.  In practice this generally works fine for JSON as well since JSON encodable data reliably coerces into strings and you specify the data type you ultimately want via the as 'boolean' call.  If you don't like the built in validator you can always implement your own via:
accurized.data (json, req, res, next) ->
  #...
  json.field('flag', 'The flag, if specified, must be a boolean value').optional().as 'boolean', (flag, pass, fail) ->
    return fail() unless typeof flag is 'boolean'
    pass flag
  #...

One thing to note is that.  If the key is set to anything other than undefined including null in the JSON the field will be validated.  With accurized optional means it can be omitted not that it can be explicitly set to null.

The issue with you code is the the json.field('flag', 'The flag, if specified, must be a boolean value').optional().as 'boolean' converts value to boolean even in the custom validator. So string 'true' is true number 1 is true and 0 is false even though in the API this is not what they sent. JSON allows for null, boolean, number, string, array, and object types. The body parser took the string from the req and made it a JSON object in body so the library should have a fail if not type and set. Something like this...
json.field('flag', 'The flag, if specified, must be a boolean value.').optional().as (flag, pass, fail) ->
    return fail() unless typeof flag is 'boolean' or flag == null
    pass flag

The optional would run if the property was passed and by not passing type it just runs the raw function with no casting.


MM-56542 fix custom theme selection

Summary
Fixes the selection of the previous custom theme
Ticket Link
https://mattermost.atlassian.net/browse/MM-56542
Release Note
Fixed selection of custom theme

/cherry-pick release-2.13

Cherry pick is scheduled.


Wrongly stated PowerShell Module in Method 2 Step 5

Method 2 Step 5 says to use the on-prem SfB PowerShell cmdlet, but the only cmdlet used is an AD cmdlet.

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

ID: 3ce37c7f-6f13-8442-bfdb-47065a7339b3
Version Independent ID: 9a2b5082-369d-7c04-4fa8-81c1440ea119
Content: Disable hybrid to complete migration to the cloud - Skype for Business Hybrid
Content Source: Skype/SfbHybrid/hybrid/cloud-consolidation-disabling-hybrid.md
Product: skype-for-business-itpro
GitHub Login: @CarolynRowe
Microsoft Alias: crowe

@BrianMcNeese Thank you for submitting feedback and contributing to the docs. We are currently investigating this.

Thanks for your feedback @BrianMcNeese


murmur does not build

Describe the bug
murmur build breaks.
To Reproduce
Steps to reproduce the behavior:

nixos-rebuild switch

Expected behavior
nixos builds withour error
Screenshots
/nix/store/cp1sa3xxvl71cypiinw2c62i5s33chlr-binutils-2.35.1/bin/ld: cannot find -lre2
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile.Release:382: ../../release/murmurd] Error 1
make[2]: Leaving directory '/build/source/src/murmur'
make[1]: *** [Makefile:42: release] Error 2
make[1]: Leaving directory '/build/source/src/murmur'
make: *** [Makefile:504: sub-src-murmur-release_ordered] Error 2
builder for '/nix/store/ppdh8mm2xllldk6yw5ffg8xz749w82rr-murmur-1.3.4.drv' failed with exit code 2

Notify maintainers
@pstn
Metadata

system: "x86_64-linux"
host os: Linux 5.9.12, NixOS, 21.03pre256292.296793637b2 (Okapi)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3.9
channels(root): "nixos-21.05pre276379.266dc8c3d05"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:
  murmur

Seems to be a duplicate of #115745


dbmaintenance app and cmd to update OMIS regions

This adds a new dbmaintenance app with a base class which can be subclassed to process a CSV stored in S3.
The command would be:
./manage.py <comman-name> <bucket-name> <object-key>
This also add an update_omis_uk_regions command which updates the order.uk_region field with the data stored in the CSV.

Codecov Report

Merging #702 into develop will increase coverage by 0.02%.
The diff coverage is 98.24%.

@@             Coverage Diff             @@
##           develop     #702      +/-   ##
===========================================
+ Coverage    96.51%   96.53%   +0.02%
===========================================
  Files          130      132       +2
  Lines         3729     3786      +57
  Branches       341      345       +4
===========================================
+ Hits          3599     3655      +56
  Misses          87       87
- Partials        43       44       +1

Impacted Files
Coverage Δ

datahub/dbmaintenance/management/base.py
100% <100%> (ø)

...ance/management/commands/update_omis_uk_regions.py
95% <95%> (ø)

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 84f5e56...23a9484. Read the comment docs.


Remove usages of deprecated members from package:package_config in flutter_tools

As of 1.9.0, support for the .packages has been deprecated in package:package_config. flutter_tools will need to be migrated to utilize the new JSON format.
@pq do you happen to have any migration instructions for this?

I think we move to package_resolver, like in https://dart-review.googlesource.com/c/sdk/+/138322

The PR @jonahwilliams linked looks right to me.  Ping me if you hit any snags?

By when should this migration be done? What Dart SDK version or release date will no longer support .packages? /cc @mit-mit

Actually @pq I do have a question on this - what should we be passing to the frontend_server/dart2js and other tools?
By default, today we only deal with .packages, so we pass the path for this to these tools. But if the tooling resolves to the package_config.json file instead, nothing is surfaced to indicate this. We'd keep passing .packages, which might work provided that all of the tools we depend on are using package_config too?
Though it would be nice if package_config exposed some information on what file it resolved to

Thanks for the ping.  To be honest I'm not really sure.  A while back I chatted w/ @stereotype441 about this; maybe Paul knows?

What Dart SDK version or release date will no longer support .packages?

We havn't decided that yet. But probably 1-2 quarters after the first stable release that ships with the new format.


Exception rendering TextFormField in a Row

Steps to Reproduce

Run flutter create bug.
Update the main.dart as follows:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Row(
          children: [TextFormField()],
      ),
    );
  }
}

Run web version flutter run -d chrome.

Expected results:
A page with an input field.
Actual results:
A page with no input field rendered and an exception in the console:
══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during performLayout():
Assertion failed:
file:///c:/develop/soft/flutter/packages/flutter/lib/src/material/input_decorator.dart:948:7
layoutConstraints.maxWidth < double.infinity
"An InputDecorator, which is typically created by a TextField, cannot have an unbounded width.\nThis
happens when the parent widget does not provide a finite width constraint. For example, if the
InputDecorator is contained by a Row, then its width must be constrained. An Expanded widget or a
SizedBox can be used to constrain the width of the InputDecorator or the TextField that contains
it."

flutter doctor -v
[√] Flutter (Channel beta, 1.23.0-18.1.pre, on Microsoft Windows [Version 10.0.19041.572], locale ru-RU)
    • Flutter version 1.23.0-18.1.pre at c:\develop\soft\flutter
    • Framework revision 198df796aa (2 weeks ago), 2020-10-15 12:04:33 -0700
    • Engine revision 1d12d82d9c
    • Dart version 2.11.0 (build 2.11.0-213.1.beta)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Users\SPeller\AppData\Local\Android\sdk
    • Platform android-29, build-tools 30.0.2
    • Java binary at: C:\Users\SPeller\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\201.6858069\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

[√] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\SPeller\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\201.6858069
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] Connected device (3 available)
    • Android SDK built for x86 64 (mobile) • emulator-5554 • android-x64    • Android 9 (API 28) (emulator)
    • Web Server (web)                      • web-server    • web-javascript • Flutter Tools
    • Chrome (web)                          • chrome        • web-javascript • Google Chrome 86.0.4240.111

• No issues found!

I can see that something is wrong with some width constraints. But why all other widgets rendered successfully in a Row, but this one doesn't? From the users' perspective, I think any default constraints would be much better than exception and rendering failure.

I would like to be assigned to this issue

Hello @speller
wrap your TextFormField widget to Flexible because you are using Row here
Thanks

Hi @speller
As the log message says, this widget needs a constrained width and height.
For the question you asked please try asking on Stack Overflow or try one of the Flutter community: https://flutter.dev/community.
I don't think this is a valid issue with Flutter, so I'm closing it.

@Abhishek01039 @pedromassangocode
Why not to introduce any defaults to allow a text field to be in a row instead of failing with an exception? What's the difference between an input field and any other widget? From the user perspective, it seems like there should be no differences. A button has default sizes, many other widgets do. Why text field can't?


Generated code is pretty ugly, should clean it up

And maybe name the file {{symbol}}.sol instead of name.sol.

Should we let them choose the file name? but default to something like <type><symbol>.sol


update rake specs to capture http requests with VCR

Summary:
There's a chance these tasks are not in heavy use and can be removed.
But in the interim, until we reach that decision, these changes bring us
one step closer to removing real network calls from the test suite.
On another note, I ran into some interesting issues while working with
the existing rake tests that prompted the addition of the RakeHelpers
module. I've documented the two issues below in hopes they help a future
reader.
Issue:
Rake prevents a rake task from being invoked more than once and
quietly ignores all future calls to invoke the task.
When Rake instantiates a Rake::Application object, the object
keeps tracks of when the task has been invoked and prevents the task
from being invoked twice. To run a task more than once, one must
reenable the task or instantiate a new Rake::Application object.
Issue:
Running a rake task twice, using rake_require to load the file,
results in the second test raising the "don't know how to build" error.
Calling rake_require with a file that has already been loaded will
skip the important step: Rake.load_rakefile. One way around this is to
to call Rake.load_rakefile directly.

@cbisnett Thanks! 🐬


Tooltips issue

Hi,
In my app and in your jsfiddle exemple, tooltips doesn't work fine
https://jsfiddle.net/stewones/n6aaLckb/

Hi @frlinw
what exactly you mean?
because the result of my jsfiddle is exactly the same of jsbin from Morris.js doc
my fiddle
https://jsfiddle.net/stewones/n6aaLckb/
jsbin morris
http://jsbin.com/uqawig/441/embed?js,output
I'll close but feel free to open a new issue if is necessary


Move logic of tile instantiation to sources

The idea behind this PR is to move out from Layer.ts the logic related with data sources.
Why? Because if we want to include another kind of layer sources (as Data Observatory layer or a geojson) we can the layer object to have the same interface for styling, to link with deck, with popup, etc..
So with this idea, we've all the logic related to sources at the sources object instead of the Layer
Pending stuff:

Check all the examples are working. I've only checked examples/visualization/index.html
TileLayer concept
Lint
Fix Test

BTW, This is my first code in TS, feel free to suggest any type, improvement...

Ready for reviwe

I have not reviewed all new changes because I think that there's something to important to discuss here.
As per the latest changes, we are embedding a new type of layer (DataObservatoryLayer) which inherits from a MVTLayer inside main our Layer class. I think that the mechanism of checking what kind of source is the one that we have an instantiate a layer based on that is not optimal because we can have many if clauses that we don't want to.
So, given that we are refactoring our sources and layers, why don't we allow each source to define the type of layer that it wants to use and have an MVT Layer by default?
I don't like this type of source checks (and I think we should avoid them at all times):
if (this._source instanceof CARTOSource) {
  this._deckLayer = new MVTLayer(layerProperties);
} else if (this._source instanceof DataObservatorySource) {
  this._deckLayer = new DataObservatoryLayer(layerProperties);
} else {
  throw Error('Unsupported source instance');
}

For example, if we have a GeoJSON source (and we will eventually have it) we will have to add another if clause to the ones we already have. This can be fixed with a factory, but I think it is smarter if we allow each source to define the type of layer that wants to use.
@VictorVelarde @alasarr


RegexSet references cannot be passed across unwind boundaries

The following minimal test case fails on regex 1.1.6:
fn main() {
    let rs = regex::RegexSet::new(vec![""]).unwrap();
    let rrs = &rs;
    std::panic::catch_unwind(move || rrs.matches(""));
}

with the following error output:
error[E0277]: the type `std::cell::UnsafeCell<std::option::Option<std::boxed::Box<std::cell::RefCell<regex::exec::ProgramCacheInner>>>>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
 --> src/main.rs:4:5
  |
4 |     std::panic::catch_unwind(move || rrs.matches(""));
  |     ^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<std::option::Option<std::boxed::Box<std::cell::RefCell<regex::exec::ProgramCacheInner>>>>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
  |
  = help: within `regex::re_set::unicode::RegexSet`, the trait `std::panic::RefUnwindSafe` is not implemented for `std::cell::UnsafeCell<std::option::Option<std::boxed::Box<std::cell::RefCell<regex::exec::ProgramCacheInner>>>>`
  = note: required because it appears within the type `thread_local::CachedThreadLocal<std::cell::RefCell<regex::exec::ProgramCacheInner>>`
  = note: required because it appears within the type `regex::exec::Exec`
  = note: required because it appears within the type `regex::re_set::unicode::RegexSet`
  = note: required because of the requirements on the impl of `std::panic::UnwindSafe` for `&regex::re_set::unicode::RegexSet`
  = note: required because it appears within the type `[closure@src/main.rs:4:30: 4:53 rrs:&regex::re_set::unicode::RegexSet]`
  = note: required by `std::panic::catch_unwind`

error[E0277]: the type `std::cell::UnsafeCell<regex::exec::ProgramCacheInner>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
 --> src/main.rs:4:5
  |
4 |     std::panic::catch_unwind(move || rrs.matches(""));
  |     ^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<regex::exec::ProgramCacheInner>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
  |
  = help: within `regex::re_set::unicode::RegexSet`, the trait `std::panic::RefUnwindSafe` is not implemented for `std::cell::UnsafeCell<regex::exec::ProgramCacheInner>`
  = note: required because it appears within the type `std::cell::RefCell<regex::exec::ProgramCacheInner>`
  = note: required because it appears within the type `std::marker::PhantomData<std::cell::RefCell<regex::exec::ProgramCacheInner>>`
  = note: required because it appears within the type `thread_local::ThreadLocal<std::cell::RefCell<regex::exec::ProgramCacheInner>>`
  = note: required because it appears within the type `thread_local::CachedThreadLocal<std::cell::RefCell<regex::exec::ProgramCacheInner>>`
  = note: required because it appears within the type `regex::exec::Exec`
  = note: required because it appears within the type `regex::re_set::unicode::RegexSet`
  = note: required because of the requirements on the impl of `std::panic::UnwindSafe` for `&regex::re_set::unicode::RegexSet`
  = note: required because it appears within the type `[closure@src/main.rs:4:30: 4:53 rrs:&regex::re_set::unicode::RegexSet]`
  = note: required by `std::panic::catch_unwind`

error[E0277]: the type `std::cell::UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
 --> src/main.rs:4:5
  |
4 |     std::panic::catch_unwind(move || rrs.matches(""));
  |     ^^^^^^^^^^^^^^^^^^^^^^^^ `std::cell::UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferrable across a catch_unwind boundary
  |
  = help: within `regex::re_set::unicode::RegexSet`, the trait `std::panic::RefUnwindSafe` is not implemented for `std::cell::UnsafeCell<isize>`
  = note: required because it appears within the type `std::cell::Cell<isize>`
  = note: required because it appears within the type `std::cell::RefCell<regex::exec::ProgramCacheInner>`
  = note: required because it appears within the type `std::marker::PhantomData<std::cell::RefCell<regex::exec::ProgramCacheInner>>`
  = note: required because it appears within the type `thread_local::ThreadLocal<std::cell::RefCell<regex::exec::ProgramCacheInner>>`
  = note: required because it appears within the type `thread_local::CachedThreadLocal<std::cell::RefCell<regex::exec::ProgramCacheInner>>`
  = note: required because it appears within the type `regex::exec::Exec`
  = note: required because it appears within the type `regex::re_set::unicode::RegexSet`
  = note: required because of the requirements on the impl of `std::panic::UnwindSafe` for `&regex::re_set::unicode::RegexSet`
  = note: required because it appears within the type `[closure@src/main.rs:4:30: 4:53 rrs:&regex::re_set::unicode::RegexSet]`
  = note: required by `std::panic::catch_unwind`

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0277`.
error: Could not compile `testapp`.

To learn more, run the command again with --verbose.

Note that this is an issue for Regex types as well, not just RegexSet.

Did this use to work? (I don't think it did.) So are you reported this as a feature request?
It's not immediately obvious to me that this should work. But it's probably okay for regex internals to assert that it is unwind safe since interior mutability is never used for correctness, only performance.

I'm not sure if this was supported in the past; it was a bit of a sharp edge that bit me, as I'd assume normally that immutable objects would be unwind safe. If the interior mutability is only used for caching, perhaps the safest approach would be to drop the cache if a panic occurs inside the regex engine?

Just wanted to chime in that when using libfuzz or afl.rs this is also an issue because you need std::panic::RefUnwindSafe implemented for objects within the closure. If you're trying to fuzz something that involves regex matching, you just wont be able to (at least from my rust newbie perspective).

The situation may have changed here because of changes upstream in thread_local. The statement in the #[cfg(not(feature = "perf-cache"))] impl of Cached<T> states that "CachedThreadLocal impls Send, Sync and UnwindSafe, but NOT RefUnwindSafe." That doesn't appear to be the case on tip of master, because (Cached)ThreadLocal is now RefUnwindSafe. If you remove that PhantomData you'll get an implementation that passes the testcase above regardless of whether perf-cache is enabled. (Undoing f6f8276 breaks it again.) Should the PhantomData be removed or is there another reason specific to this crate that it should remain?
(I noticed this because the build is broken due to a warning. CachedThreadLocal is deprecated and now just passes through to ThreadLocal. That relates to this issue because the fix (just use ThreadLocal) should probably also adjust the comment, but just replacing "CachedThreadLocal" with "ThreadLocal" in the comment doesn't seem to make it right.)

@dpathakj Yeah, I'm working on addressing this. I have a newborn at home though, so it's tough. Basically, my plan here is to actually remove the thread_local dependency. I've had this thought for a while since it is the root cause of some use cases resulting in bad memory leaks. Specifically, what happens is when a regex is used across lots of different threads and where (I suppose) some of those threads become idle but not actually destroyed, each thread winds up having a copy mutable scratch space used during matching. There have been a few issues about it I think. This one comes to mind: https://github.com/BurntSushi/rure-go/issues/3
The main problem with removing the dependency is the reason why thread_local exists in the first place: it's really fast. So I need to do a bit of a benchmark investigation to see what I can do to replace it without sacrificing too much performance. Ideally without using any unsafe code, since the sort of unsafe required to make thread_local work is really quite tricky from my perspective and I don't really trust myself to get it right without a lot of deep thought and effort that I don't really have time for at the moment.

This should be fixed in regex 1.4.4. All regex types now impl RefUnwindSafe.


Recaptcha fails inside google chrome when using Django Recaptcha Ajax

https://github.com/praekelt/django-recaptcha/issues/162
I know it's not directly releated to this project since it's package maintainer problem, but maybe somebody have an idea how to fix that.
What I got while using AJAX (everything when I don't use AJAX requests "just works") is:

Uncaught DOMException: Blocked a frame with origin "https://www.google.com" from accessing a cross-origin frame.
at RR.wE.xl (https://www.gstatic.com/recaptcha/api2/v1542004393985/recaptcha__pl.js:529:376)
at ml (https://www.gstatic.com/recaptcha/api2/v1542004393985/recaptcha__pl.js:533:272)
at Object.init (https://www.gstatic.com/recaptcha/api2/v1542004393985/recaptcha__pl.js:542:44)
at https://www.google.com/recaptcha/api2/bframe?hl=pl&v=v1542004393985&k=6Ley7XsUAAAAAOkmsN1CVThsgorMxXLI7eqLc_Sp&cb=jhtqelkyq62o:184:30

And it's inside recaptcha__pl.js file at line 529, so I am not sure if it's really python package problem.
Any ideas how to resolve that issue?

Closing old issues that are not related to the PHP client code.


Can swap V3 only on Base. V2 Fails

Hello,
For some reason V2 swaps does not work on base chain.
Trying to buy a token 0x850Eaa67cA676B42C0693461848C33dd77249657, smart path returns:
{'path': ('0x850Eaa67cA676B42C0693461848C33dd77249657', '0x4200000000000000000000000000000000000006'), 'function': 'V2_SWAP_EXACT_IN', 'weight': 100, 'estimate':<PHONE_NUMBER>02} which means a V2 path is available.
I send this:
(<Function execute(bytes,bytes[],uint256)>, {'commands': b'\x0b\x08', 'inputs': [(<Function WRAP_ETH(address,uint256)>, {'recipient': '0x0000000000000000000000000000000000000002', 'amountMin':<PHONE_NUMBER>000}, {'revert_on_fail': True}), (<Function V2_SWAP_EXACT_IN(address,uint256,uint256,address[],bool)>, {'recipient': '0x0000000000000000000000000000000000000001', 'amountIn':<PHONE_NUMBER>000, 'amountOutMin': 0, 'path': ['0x4200000000000000000000000000000000000006', '0x850Eaa67cA676B42C0693461848C33dd77249657'], 'payerIsSender': False}, {'revert_on_fail': True})], 'deadline':<PHONE_NUMBER>})

and it fails TX. Can you spot why is this happening? I have no problems buying tokens with V3 pools.
V2 Deployments on Base Sepolia:
Factory: 0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e
Router :0x1689E7B1F10000AE47eBfE339a4f69dECd19F602
Universal Router: 0x050E797f3625EC8785265e1d9BDd4799b97528A1

Hi!
As far as I'm aware, UR/V2 is not officially supported/deployed on Base Sepolia, but feel free to let me know if you find some successful UR/V2 swaps.
You might want to use a local Base fork for your tests.


fix: radix conf v2

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Omnisharp fails to Start with NetCore 5.0 RC2

Issue Description
When working on an NetCore 5.0 class library Omnisharp fails to load. The project file is:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>
</Project>

OmniSharp log

Starting OmniSharp server at 10/22/2020, 12:04:45 PM
    Target: /Users/mky/mky.Project/mky.Project.mky.Core/src/mky.Core
OmniSharp server started with Mono 6.12.0.
Path: /Users/mky/.vscode/extensions/ms-dotnettools.csharp-1.23.4/.omnisharp/1.37.4-beta.2/omnisharp/OmniSharp.exe
PID: 4228
    Starting OmniSharp on MacOS 10.15.7 (x64)

    DotNetPath set to dotnet

    Located 2 MSBuild instance(s)
        1: Mono 16.6.0 - "/Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/Current/bin"
        2: StandAlone 16.8.0 - "/Users/mky/.vscode/extensions/ms-dotnettools.csharp-1.23.4/.omnisharp/1.37.4-beta.2/omnisharp/.msbuild/Current/Bin"

    Registered MSBuild instance: Mono 16.6.0 - "/Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/Current/bin"
        CscToolExe = csc.exe
        CscToolPath = /Users/mky/.vscode/extensions/ms-dotnettools.csharp-1.23.4/.omnisharp/1.37.4-beta.2/omnisharp/.msbuild/Current/Bin/Roslyn

    Detecting Cake files in '/Users/mky/mky.Project/mky.Project.mky.Core/src/mky.Core'.

    Could not find any Cake files

    No solution files found in '/Users/mky/mky.Project/mky.Project.mky.Core/src/mky.Core'

    Queue project update for '/Users/mky/mky.Project/mky.Project.mky.Core/src/mky.Core/mky.Core.csproj'

    Detecting CSX files in '/Users/mky/mky.Project/mky.Project.mky.Core/src/mky.Core'.

    Could not find any CSX files

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0

    Loading project: /Users/mky/mky.Project/mky.Project.mky.Core/src/mky.Core/mky.Core.csproj

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.Completion.CompletionOptionsProvider, Order: 0

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.ImplementTypeWorkspaceOptionsProvider, Order: 110

    Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider, Order: 140

    Configuration finished.

    Omnisharp server running using Stdio at location '/Users/mky/mky.Project/mky.Project.mky.Core/src/mky.Core' on host 3828.

    The reference assemblies for .NETFramework,Version=v5.0 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks

    Failed to load project file '/Users/mky/mky.Project/mky.Project.mky.Core/src/mky.Core/mky.Core.csproj'.

/Users/mky/mky.Project/mky.Project.mky.Core/src/mky.Core/mky.Core.csproj
/Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/Current/bin/Microsoft.Common.CurrentVersion.targets(1193,5): Error: The reference assemblies for .NETFramework,Version=v5.0 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
    Attempted to update project that is not loaded: /Users/mky/mky.Project/mky.Project.mky.Core/src/mky.Core/mky.Core.csproj

Environment information
VSCode version: 1.50.1
C# Extension: 1.23.4

Mono Information
  OmniSharp using global mono :6.12.0

Dotnet Information
.NET SDK (reflecting any global.json):
 Version:   5.0.100-rc.2.20479.15
 Commit:    da7dfa8840
Runtime Environment:
OS Name:     Mac OS X
OS Version:  10.15
OS Platform: Darwin
RID:         osx.10.15-x64
Base Path:   /usr/local/share/dotnet/sdk/5.0.100-rc.2.20479.15/
Host (useful for support):
Version: 5.0.0-rc.2.20475.5
Commit:  c5a3f49c88
.NET SDKs installed:
5.0.100-rc.2.20479.15 [/usr/local/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 5.0.0-rc.2.20475.17 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 5.0.0-rc.2.20475.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET runtimes or SDKs:
https://aka.ms/dotnet-download

Visual Studio Code Extensions

Extension
Author
Version

Angular2
johnpapa
9.1.2

azure-account
ms-vscode
0.9.3

azure-pipelines
ms-azure-devops
1.177.0

csharp
ms-dotnettools
1.23.4

markdown-preview-enhanced
shd101wyy
0.5.13

mdmath
goessner
2.5.1

ml-net-model-builder
franzssilva
0.1.1

mssql
ms-mssql
1.9.0

remote-containers
ms-vscode-remote
0.145.1

typescript-hero
rbbit
3.0.0

vetur
octref
0.28.0

vscode-docker
ms-azuretools
1.7.0

vscode-mjml
attilabuti
1.6.0

vscode-sqlite
alexcvzz
0.9.0

vscode-yaml
redhat
0.11.1

sorry for the trouble. This is a duplicate. Please see here for a solution https://github.com/OmniSharp/omnisharp-vscode/issues/4134#issuecomment-714326240


Fix copyright headers

Some headers start with '/**'.
Some files miss headers.
Some files have the unnecessary All Rights Reserved phrase.

Current coverage is 62.13% (diff: 100%)

Merging #308 into master will not change coverage

@@             master       #308   diff @@
==========================================
  Files            62         62
  Lines          1389       1389
  Methods           0          0
  Messages          0          0
  Branches        172        172
==========================================
  Hits            863        863
  Misses          468        468
  Partials         58         58

Powered by Codecov. Last update 9a2b758...7ed16ed


Add trigger doesn't trigger pipeline.

Fix: #642

Codecov Report

Merging #643 (0adeabf) into master (ecea5d5) will increase coverage by 0.01%.
The diff coverage is 95.23%.

@@            Coverage Diff             @@
##           master     #643      +/-   ##
==========================================
+ Coverage   68.36%   68.38%   +0.01%
==========================================
  Files         114      114
  Lines        6534     6538       +4
  Branches     1149     1151       +2
==========================================
+ Hits         4467     4471       +4
  Misses       2067     2067

Impacted Files
Coverage Δ

src/tekton/addtrigger.ts
91.87% <95.23%> (+0.20%)
:arrow_up:

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 ecea5d5...0adeabf. Read the comment docs.


Great program - however, we need just the  generated code

Hi Ethantw.  nice program you built.
I need a function where we can simply submit the chinese characters, and have as output, the generated ....  text.
Is this possible?  This would be very useful for our program. Can you help us with this?

Can you be more specific about what you expect for the output?

Yes, the output we desire is:

明日

@firecentaur Sorry, I just found out that the demo site has been down for a while. Is this what you’re looking for?
https://ethantw.github.io/az/