workflowTemplateRef gives missing entrypoint error when used within a WorkflowTemplate

Summary
I am trying to reference a WorkflowTemplate from another WorkflowTemplate for the purpose of submitting workflows from the UI while allowing a few different sets of default parameters to be chosen. We have a base workflow and several child workflows which are simply different sets of parameters to the base workflow. Using workflowTemplateRef creates a valid template but submitting the template from the UI or CLI gives Internal Server Error: template reference <entrypoint name> not found
I've included what I'm trying to accomplish (child-template-broken) as well as two work-arounds, one that's quite verbose and one that uses the deprecated template ref behavior, since this is much easier to explain with code.
Diagnostics
What Kubernetes provider are you using?
Can reproduce on minikube
What version of Argo Workflows are you running?
2.11.8
Workflow Templates
# Base workflow referenced by other workflow templates
# The goal is to create several different templates that can be used to conveniently instantiate
# this workflow with different default values.
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: base-template
  namespace: argo
spec:
  entrypoint: base-main
  arguments:
    parameters:
    - name: base1
      value: NO_DEFAULT # needed to make this show up in the UI, is there a better way?
    - name: base2
      value: NO_DEFAULT
    - name: base3
      value: NO_DEFAULT
  templates:
  - name: base-main
    inputs:
      parameters:
      - name: base1
      - name: base2
      - name: base3
    container:
      image: "docker/whalesay"
      command: [cowsay]
      args:
      - "{{inputs.parameters.base1}}"
      - "{{inputs.parameters.base2}}"
      - "{{inputs.parameters.base3}}"

---
# The field reference suggests that WorkflowTemplateSpec has a workflowTemplateRef field on it, and this workflow template is
# able to be created, but when you submit via the UI or CLI it fails to find the entrypoint.
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: child-template-broken
  namespace: argo
spec:
  entrypoint: base-main
  arguments:
    parameters:
    # From UI or CLI, user can just set base3, and can override others if they wish
    - name: base1
      value: default_value_1
    - name: base2
      value: default_value_2
    - name: base3
      value: NO_DEFAULT
  workflowTemplateRef:
    # Internal Server Error: template reference child-template.base-main not found
    name: base-template

---
# Works, but verbose. Requires declaring each arg 3 times and manually forwarding to base workflowtemplate,
# which gets long when you have many parameters.
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: child-template-verbose
  namespace: argo
spec:
  arguments:
    parameters:
    - name: base1
      value: default_value_1
    - name: base2
      value: default_value_1
    - name: base3
      value: NO_DEFAULT
  templates:
  - name: child
    inputs:
      parameters:
      - name: base1
      - name: base2
      - name: base3
    steps:
    - - name: invoke-base
        templateRef:
          name: base-template
          template: base-main
        arguments:
          parameters:
          - name: base1
            value: "{{inputs.parameters.base1}}"
          - name: base2
            value: "{{inputs.parameters.base2}}"
          - name: base3
            value: "{{inputs.parameters.base3}}"

---
# Works, but relies on deprecated behavior
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: child-template-hack
  namespace: argo
spec:
  entrypoint: invoke-base
  arguments:
    parameters:
    - name: base1
      value: default_value_1
    - name: base2
      value: default_value_2
    - name: base3
      value: NO_DEFAULT
  templates:
  # Deprecated use of template override
  - name: invoke-base
    templateRef:
      name: base-template
      template: base-main

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

At first glace - I don't think this can be a bug - we'd've seen many reports.

Thanks for looking. Is this type of use not supported? The documentation for WorkflowSpec and WorkflowTemplateSpec have identical descriptions for workflowTemplateRef, which is why I thought they would behave the same way, but it works for Workflow and gives the above error in WorkflowTemplate.
Is the intended use of this ref in WorkflowTemplate different than in Workflow?

@sarabala1979 ?

@jherman3
# Base workflow referenced by other workflow templates
# The goal is to create several different templates that can be used to conveniently instantiate
# this workflow with different default values.
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: base-template
  namespace: argo
spec:
  entrypoint: base-main
  arguments:
    parameters:
    - name: base1
      value: NO_DEFAULT # needed to make this show up in the UI, is there a better way?
    - name: base2
      value: NO_DEFAULT
    - name: base3
      value: NO_DEFAULT
  templates:
  - name: base-main
    inputs:
      parameters:
      - name: base1
      - name: base2
      - name: base3
    container:
      image: "docker/whalesay"
      command: [cowsay]
      args:
      - "{{inputs.parameters.base1}}"
      - "{{inputs.parameters.base2}}"
      - "{{inputs.parameters.base3}}"

---
# The field reference suggests that WorkflowTemplateSpec has a workflowTemplateRef field on it, and this workflow template is
# able to be created, but when you submit via the UI or CLI it fails to find the entrypoint.
apiVersion: argoproj.io/v1alpha1
kind: WorkflowTemplate
metadata:
  name: child-template-broken
  namespace: argo
spec:
  entrypoint: base-main
  arguments:
    parameters:
    # From UI or CLI, user can just set base3, and can override others if they wish
    - name: base1
      value: default_value_1
    - name: base2
      value: default_value_2
    - name: base3
      value: NO_DEFAULT
  workflowTemplateRef:
    # Internal Server Error: template reference child-template.base-main not found
    name: base-template

The above example is nested workflowtemplateRef which doesn't support.  When CLI or UI submit workflowTemplate, it will create a workflow with workflowtemplateRef. In your case that workflowTemplate has one more workflowtemplateRef.
Currently controller doesn;t support the nested workflowTemplateRef

I have the exact same issue for the exact same use case! If this feature is not implemented can we please add it?

@sarabala1979 Are there any plans to support nesting WorkflowTemplates or any suggestions how we can achieve a similar effect? We are otherwise forced to copy-paste many WorkflowTemplates that are mostly identical. It would be a very nice feature if we can use workflowTemplateRef inside the WorkflowTemplate just like from inside the Workflow.


quantlib: 1.35 -> 1.36

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Also tested rPackages.RQuantlib, as it was not done by the nixpkgs-review script.

Add a :+1: reaction to pull requests you find important.

Thanks for the patch, will test!

@ofborg build rPackages.RQuantLib

It seems to work, good to go for me.


manifest_url no longer found in JSON output from YT

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've searched known issues and the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
I have a script that previously used the -j parameter to get the complete JSON. It then searched for the manifest_url within the formats list. My Python script would then redirect to this manifest_url, and up until a few months ago, it worked well, allowing me to play YouTube videos in high quality on Emby using .strm files. However, this is no longer working. It doesn't find manifest_url within the formats list, and I also can't see it when manually inspecting the JSON.
I apologize for not being precise about the time and exact version when this stopped working; I haven't had time until now to notice this issue.
Here is the snippet of code where I use yt-dlp to get the JSON, and where I used to be able to obtain the manifest_url:
command = [
    'yt-dlp',
    '-j',
    '--no-warnings',
    f'https://www.youtube.com/watch?v={youtube_id}'
]
Youtube().set_cookies(command)
Youtube().set_proxy(command)
full_info_json_str = w.worker(command).output()
m3u8_url = None
try:
    full_info_json = json.loads(full_info_json_str)

    for fmt in full_info_json["formats"]:
        if "manifest_url" in fmt.keys():
            m3u8_url = fmt["manifest_url"]
            break

The test command to obtain the JSON and manually check it would be:
yt-dlp -vU -j --no-warnings --cookies-from-browser firefox -f best https://www.youtube.com/watch?v=nVD7M---Jhw > test.json

Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', '-j', '--no-warnings', '--cookies-from-browser', 'firefox', '-f', 'best', 'https://www.youtube.com/watch?v=nVD7M---Jhw']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out cp1252 (No VT), error utf-8, screen utf-8
[debug] yt-dlp version<EMAIL_ADDRESS>from yt-dlp/yt-dlp [65cf46cdd] (pip)
[debug] Python 3.12.3 (CPython AMD64 64bit) - Windows-11-10.0.22631-SP0 (OpenSSL 3.0.13 30 Jan 2024)
[debug] exe versions: ffmpeg N-116875-g3d0d0f68d5-20240905 (setts), ffprobe N-116875-g3d0d0f68d5-20240905
[debug] Optional libraries: Cryptodome-3.12.0, brotli-1.1.0, certifi-2023.11.17, curl_cffi-0.7.1, mutagen-1.47.0, requests-2.32.3, sqlite3-3.45.1, urllib3-2.1.0, websockets-13.1
[debug] Proxy map: {}
Extracting cookies from firefox
[debug] Extracting cookies from: "xxxxxx\cookies.sqlite"
Extracted 73 cookies from firefox
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Loaded 1837 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version<EMAIL_ADDRESS>from yt-dlp/yt-dlp
yt-dlp is up to date<EMAIL_ADDRESS>from yt-dlp/yt-dlp)
[youtube] Extracting URL: https://www.youtube.com/watch?v=nVD7M---Jhw
[youtube] nVD7M---Jhw: Downloading webpage
[debug] [youtube] Extracted SAPISID cookie
[youtube] nVD7M---Jhw: Downloading web creator player API JSON
[youtube] nVD7M---Jhw: Downloading mweb player API JSON
[debug] Loading youtube-nsig.03dbdfab from cache
[debug] [youtube] Decrypted nsig t8dSh99qCbEPxu6ET => 9bZLLELdEjs-tw
[debug] Loading youtube-nsig.03dbdfab from cache
[debug] [youtube] Decrypted nsig W2Snl_5g6JabYFYCY => WgOWOD_4QFiDHw
[debug] Loading youtube-nsig.03dbdfab from cache
[debug] [youtube] Decrypted nsig QCJRAKbcs0V8nbDeE => FhIVj0OYnVN9qw
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec, channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[info] nVD7M---Jhw: Downloading 1 format(s): 18

The issue has been fixed in the Discord discussion. The solution is to add --extractor-args "youtube:player-client=default,web_safari" to the command

To further explain: the ios client is no longer usable with cookies, and it is the client that gets all of the m3u8 formats for non-live videos by default. So the workaround is to use the web_safari client when passing cookies


Add ability to record failed prober tests to staging deploys

We currently record videos of failed tests for CI runs, but not when tests run when deploying to staging. Adding this functionality to staging deploys will make it easier to debug failed tests.
See example of test videos at the bottom of the screen here
This work will entail adding a step to the aws_deploy.yaml (see https://github.com/civiform/civiform-staging-deploy/pull/34) and adding arguments to the docker run (see failed attempt here https://github.com/civiform/civiform-staging-deploy/pull/35)

https://github.com/civiform/civiform-staging-deploy/pull/51
https://github.com/civiform/civiform-staging-deploy/pull/52


why is older version of phantomjs used here?

As latest version of phantomjs is 1.9.13.

It's the newest version that supports font-face. Font-face is broken in all newer versions.


feat(cli): Support for separate write repo

This PR adds a new field for specifying a write repo destination.
If the field is present, it is consumed. If not, the repoURL is consumed instead (same behaviour as before).
Potential impl for https://github.com/akuity/kargo/issues/1354.

Please help with setup of the toolchain on Apple M1. Seems I could install protobuf and the buf command runs successfully, however the rest fails.

Easy part first...

Please help with setup of the toolchain on Apple M1.

https://kargo.akuity.io/contributor-guide/hacking-on-kargo#executing-code-generation
The harder part:
There wasn't any commitment to #1354 from maintainers yet. I am sure that at an initial glance, this looks like trivial change, but unfortunately, it is not.
Two very big considerations:

This isn't going to work for Kargo Render (which was actually the ask in #1354. When Kargo invokes Kargo Render (which is a separate tool, that can be used standalone), there is no provision for instructing it to read from one repo, but write to another. And while I believe Kargo Render could tentatively add that feature, there would need to be some discussion among the maintainers as to whether it is contrary to what Kargo Render is trying to achieve. I noted this in #1354:

One of the fundamental premises of Kargo Render is that Kargo Render configuration is "close" to the source it operates on and to the branches it renders. i.e. If you were looking at repo, you would see what got rendered, what it got rendered from, and what the rules were for doing that, all in one place.
While this generally seems doable, it upsets the apple cart a little bit in terms of that fundamental premise of Kargo Render.

Where Kargo writes things is an important consideration for health checks that Kargo performs. Typically, Stages are backed by one or more Argo CD Applications and Kargo monitors those to ensure they are healthy and synced to the correct revision. Those are factored into determining overall Stage health.
In cases where Kargo has written to a different branch (which is typical), it records a "health check commit" in addition to information about the commit from the trunk that the Freight references. Naturally, these will be different. Kargo knows, when performing a health check, that if the health check commit field is non-empty, then that is the commit the Application should be synced to if it is to be judged healthy.
I haven't fully thought through the consequences yet of the health check commit being in a different repo than the commit that the Freight references. Things might ok, because I don't believe the health checks currently check what repos the Apps are synced to; they only check the commit. (Honestly, they ought to check what repo the Apps are synced to.) Even if this will technically work, there is some information loss if, in addition to recording a health check commit, we're not also recording a health check repo. i.e. This commit in this repo is where the correct config for this Stage can be found.

I don't want any of this to sound discouraging. No one is saying no to #1354 (at least not yet). We are, however, obsessive about user experience, so what really needs to happen first is a more thorough discussion around the impact of this change and the proposed implementation.
I do not want to scrap this, but I propose putting a pin in it until more discussion has happened in #1354. We're working hard to get v0.4.0 out right now, so I will commit to after that, getting an earnest discussion going about this.

#2537 has this covered.


python310Packages.netmiko: 4.1.1 -> 4.1.2

Description of changes
https://github.com/ktbyers/netmiko/releases/tag/v4.1.2

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 186827 run on x86_64-linux 1

2 packages marked as broken and skipped:

python310Packages.pytest-ansible
python39Packages.pytest-ansible

2 packages failed to build:

python310Packages.ansible-kernel
python39Packages.ansible-kernel

22 packages built:

ansible
ansible-later (python310Packages.ansible-later)
ansible-lint (python310Packages.ansible-lint)
ansible_2_13 (python310Packages.ansible-core)
napalm
python310Packages.ansible
python310Packages.ansible-compat
python310Packages.ansible-runner
python310Packages.napalm
python310Packages.napalm-hp-procurve
python310Packages.netmiko
ttp (python310Packages.ttp)
python39Packages.ansible
python39Packages.ansible-compat
python39Packages.ansible-core
python39Packages.ansible-later
python39Packages.ansible-lint
python39Packages.ansible-runner
python39Packages.napalm
python39Packages.napalm-hp-procurve
python39Packages.netmiko
python39Packages.ttp

ansible-kernel is already broken due to a failure of nbconvert.


Changed boost build to B2

Changed boost.build to B2.
Changed Boost:build[] to Boost.build[B2] - seems to work fine with B2 as the text and link

@alandefreitas
Squashed and gtg

Squashed and gtg

Please change the commit msgs to present tense next time


fix: disallow dupe registrations

Previously, it was not possible to detect duplicate pubkey registrations. This PR addresses that, and modifies the function signatures since we do not need the pubkeyIndex to slash a given peer.
Note:

This same change will be reflected in https://github.com/vacp2p/rln-interep-contract, but the test will look different due to different testing procedures

When this PR is approved I'll create a companion pr on the rln-interep-contract repo.

Before merging, can we get a review from someone at PSE? Just as a sanity check

Approved by @curryrasul and @AtHeartEngineer - https://discord.com/channels/864066763682218004/905333924476108800/1047599833269145741


Ansible / python UnicodeEncodeError

Please use the following bug reporting template to help produce actionable and reproducible issues:

A brief description

running ansible-playbook test.yaml which works on native linux ans os x

Expected results

it should also work on bash on windows

Actual results (with terminal output if applicable)

peter@computer:~/SUB_DIR$ ansible-playbook test.yaml

PLAY [MY_SERVER] ****************************************************************

GATHERING FACTS ***************************************************************
ok: [server.MY_SERVER.com]

TASK: [test] ***********************************************************
fatal: [server.MY_SERVER.com] => Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py", line 532, in _executor
    exec_rc = self._executor_internal(host, new_stdin)
  File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py", line 629, in _executor_internal
    return self._executor_internal_inner(host, self.module_name, self.module_args, inject, port, complex_args=complex_args)
  File "/usr/lib/python2.7/dist-packages/ansible/runner/__init__.py", line 810, in _executor_internal_inner
    complex_args = template.template(self.basedir, complex_args, inject, fail_on_undefined=self.error_on_undefined_vars)
  File "/usr/lib/python2.7/dist-packages/ansible/utils/template.py", line 349, in template
    d[k] = template(basedir, v, vars, lookup_fatal, depth, expand_lists, fail_on_undefined=fail_on_undefined)
  File "/usr/lib/python2.7/dist-packages/ansible/utils/template.py", line 345, in template
    return [template(basedir, v, vars, lookup_fatal, depth, expand_lists, fail_on_undefined=fail_on_undefined) for v in varname]
  File "/usr/lib/python2.7/dist-packages/ansible/utils/template.py", line 321, in template
    varname = template_from_string(basedir, varname, vars, fail_on_undefined)
  File "/usr/lib/python2.7/dist-packages/ansible/utils/template.py", line 543, in template_from_string
    data = data.decode('utf-8')
  File "/usr/lib/python2.7/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 11: ordinal not in range(128)

FATAL: all hosts have already failed -- aborting

PLAY RECAP ********************************************************************
           to retry, use: --limit @/home/peter/test.yaml.retry

server.MY_SERVER.com         : ok=1    changed=0    unreachable=1    failed=0

Your Windows build number

14393.3

Steps / commands required to reproduce the error

ansible-playbook ... - I checked the playbook and didn't find any non ansi characters, maybe they come from the server response, but the very same playbook works fine with default configurations on linux and os x

Strace of the failing command

it's 7000 lines, not sure which part is significant, you can find it here: https://gist.github.com/pgrm/8932b46d7c064de8eadc855291a512f2

Required packages and commands to install

ansible (python2 is already installed by default)

Thanks for reporting the issue.  Going through the strace, there aren't any obvious syscall failures around the time that the task fails.  We'll have to setup a local repro to understand the difference on WSL.

The WSL world is different now and a lot nicer :). Closing out this issue. Please reopen if you hit this again.


HS HoloEmitter: Make points show when outside of FOV

Same for the Interactable holoemitter, now acts just like the normal wire holo emitter does.
Tested in singleplayer, works as expected (altough interactable HE is not spawnable, but that bug is there regardless of my changes).
Thanks to @bigdogmat for helping me figure out how it works.
Also update the comments:
As there isn't really documentation for the HS Holo Emitter since the wiki/forum are shut down, at least the comments in the source code should not leave out relevant info.
Did i miss some more undocumented features of the HS Holoemitter?

The documentation is actually wrong for memory address 3, it's this
0:Local no line
1:Local line
2:Global no line
3:Global line
4:Local no line Color
5:Local line Color
6:Global no line color
7:Global line color

It's a bit field where information is stored in the indivual bits.
1₁₀ = 001₂ => normal color, not global, line
2₁₀ = 010₂ => normal color, global, no line
4₁₀ = 100₂ => individual color, not global, no line
And in combination:
3₁₀ = 011₂ => normal color, global, line
6₁₀ = 110₂ => individual color, global, no line
7₁₀ = 111₂ => individual color, global, line
etc

Well, I just tested it in game when I made the comment and reported what I saw


Handle changes in Textual 0.48

Textual 0.48 makes several changes to the TextArea that we need to adapt to

Disable line wrapping
Move from DEFAULT_CSS to using a CSS file (I'm not entirely sure why, but some of our CSS rules weren't being applied, and just moving them into a CSS file was enough to fix that. I know the priority of rules in DEFAULT_CSS is funny...)
Update a few snapshots that have trivial differences... whatever this is:

It looks like some characters are being positioned ever so slightly differently within their cell, but whatever's happening there appears to be specific to the conversion to SVG, and not something that's visible through a real terminal.

Even with the SVG, outside of the "show differences" mode I can't see the difference between the old:

and the new:

Oof, there's more that needs changing here it seems.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (41248ed) 92.55% compared to head (353a4f1) 92.92%.
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #543      +/-   ##
==========================================
+ Coverage   92.55%   92.92%   +0.37%
==========================================
  Files          91       91
  Lines       11304    11101     -203
  Branches     1581     2020     +439
==========================================
- Hits        10462    10316     -146
+ Misses        837      785      -52
+ Partials        5        0       -5

Flag
Coverage Δ

cpp
92.92% <100.00%> (+6.98%)
:arrow_up:

python_and_cython
92.92% <100.00%> (-2.80%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

... Huh. The 3 snapshots I needed to regenerate to get them to pass locally passed on Alpine, Ubuntu 22.04, and macOS, but failed in the manylinux and musllinux containers. What the heck? ☹

Ah - those 3 are testing with CPython 3.7, which Textual dropped support for in 0.44...
OK, I think we need to skip these 3 snapshot tests for Python 3.7, then.

Hey 👋
Textual snapshot tests will fail if there is a mismatch in the escape codes Textual writes to the terminal. A failing snapshot test does not always mean there is a visual difference, it's more of a nudge to double check things, because different escape sequences have been produced.
In the case of the TextArea, we modified how it renders, which will result in some failing tests.
As for the artefacts you see in the diff, I think that's just down to how the browser is rendering the SVG. We actually overlay the two SVGs and the diff is done via CSS, so I think it's just a rendering anomaly at the browser level 😄
For the TextArea changes, if you want to retain the exact same behaviour as before you can simply substitute calls to the TextArea constructor with TextArea.code_editor, which is a convenience constructor we added which retains the old defaults (wrapping disabled, syntax highlighting enabled, etc.)

different escape sequences have been produced.
In the case of the TextArea, we modified how it renders, which will result in some failing tests.

Fair enough, that makes sense.

As for the artefacts you see in the diff, I think that's just down to how the browser is rendering the SVG. We actually overlay the two SVGs and the diff is done via CSS, so I think it's just a rendering anomaly at the browser level 😄

Sounds plausible. I was thinking some characters might have been aligned a few pixels off in the SVG from where they were in a previous version. Either way, I agree that it doesn't seem like anything to worry about.
What I'm much more curious about is why switching from DEFAULT_CSS to CSS_PATH fixed some tests that were failing! I know there's some subtle differences between how DEFAULT_CSS is applied versus how CSS in a file is applied. I know DEFAULT_CSS is scoped to the widget and its children by default while CSS_PATH isn't... But I don't think that accounts for the differences, since the widget with the DEFAULT_CSS was the App, and so every other widget is one of its descendants...

For the TextArea changes, if you want to retain the exact same behaviour as before you can simply substitute calls to the TextArea constructor with TextArea.code_editor, which is a convenience constructor we added which retains the old defaults

That was actually a bit uglier to do, since I don't want to drop support for Textual < 0.48 just yet: we'd need to special case on the existence or non-existence of that attribute. I started off writing getattr(TextArea, "code_editor", TextArea)(...) but that seemed arcane, and it seemed clearer just to set soft_wrap = False directly (knowing that attribute would just be ignored in old versions).

the old defaults (wrapping disabled, syntax highlighting enabled, etc.)

I didn't notice that there were more differences between the new defaults and the ones set by code_editor than just soft wrapping, but it turns out we're getting them all right anyway. We're already setting a theme and disabling line numbers and disabling focusing entirely (via can_focus = False), and that seems to be the sum total of the differences.


Fix spacing between Board members and semester dropdown menu (Issue #223)

This works for me, it doesn't affect spacing of other components I believe

Issue #223 is not a priority and will be taken care of in a future version.


Plugins won't install

I can't seem to get any plugins to install. Using version 2.3.0
My config:
{
  "log_level": "info",
  "avahi_interfaces": "",
  "avahi_hostname": "",
  "avahi_domainname": "local",
  "enable_ipv6": true,
  "packages": [
    "make",
    "g++",
    "python",
    "git"
  ],
  "init_commands": [],
  "plugins": [
    "homebridge-nest"
  ]
}

And the logs when I try to start:
[cont-init.d] 82-user-plugins.sh: executing...
npm WARN registry Unexpected warning for https://registry.npmjs.org/: Miscellaneous Warning EAI_AGAIN: request to https://registry.npmjs.org/form-data failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm WARN registry Using stale package data from https://registry.npmjs.org/ due to a request error during revalidation.
npm ERR! code EAI_AGAIN
npm ERR! errno EAI_AGAIN
npm ERR! request to https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.5.2.tgz failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-03-03T07_00_43_937Z-debug.log
FATAL: Failed installing plugin homebridge-nest

Did you get this fixed?


Word Wrap not respecting settings on open

Does this issue occur when all extensions are disabled?: Yes

Version: 1.65.1 (user setup)
Commit: 8908a9ca0f221f36507231afb39d2d8d1e182702
Date: 2022-03-08T02:06:27.846Z
Electron: 13.5.2
Chromium: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Windows_NT x64 10.0.17763

Steps to Reproduce:

File -> Preferences -> Settings -> Search(word wrap) -> Set  editor.wordWrap and  diffEditor.wordWrap: off

Check settings.json to confirm settings

Make sure Word Wrap is unselected

Close VScode.

Open and see Word Wrap checked

Did you check for any workspace-level settings?

Did you check for any workspace-level settings?

workspace had the same settings

This file is most likely identified as being dominated by long lines (i.e. >50% of the characters in the file lie on lines longer than 10k chars). This can be disabled using Alt+Z or the word wrap toggle button that appears in this case in the editor title area. Let's track in https://github.com/microsoft/vscode/issues/139340#issuecomment-1008630140


getAll() returns an empty object, even though there are cookies present.

Expected Behavior
this.cookieService.getAll() should return the cookies that are locally stored.
The cookies are set from my server via passport and session.
Actual Behavior
this.cookieService.getAll() returns {}
Steps to Reproduce the Problem
call .getAll() method on the cookie service.
Specifications

Version: ^1.0.10
Browser: Chrome 64.0.3282.186 (Official Build) (64-bit)

Here are some screenshots and code snippets:

 getAllCookies() {
    console.log(this.cookieService.getAll()); //returns an empty object {}
  }
<button (click)="getAllCookies()">getAllCookies</button>

Proof that I have cookies stored:
http://prntscr.com/ijv4cs < the cookies
http://prntscr.com/ijv4pv < when I click getAll().
Is this a problem on my side, or this issue is valid?
Thanks.

Hey,
others have had similar issues and thus far it has usually been an implementation issue. Sadly, we cannot help you with those (StackOverflow is a better place for that), but we cannot absolutely rule out the possibility that it's a problem with our service. However, here some recommendations on how to proceed. Maybe they will help you.
First, you should check out the following SO answers:

https://stackoverflow.com/questions/1134290/cookies-on-localhost-with-explicit-domain
https://stackoverflow.com/questions/8064318/how-to-read-a-secure-cookie-using-javascript
https://stackoverflow.com/questions/15914744/javascript-document-cookie-always-empty-string

Alternatively, you can try setting an explicit path and getting your cookie from it (this solves a good bunch of all cookie-service/package/plugin related problems out there). Also, check if the domains are correct.
As a last resort, check manually document.cookie. Maybe you can find something there.
If this is really a problem with our service, feel free to supply an environment or tests that help us reproduce the issue (that saves us a lot of time, which is great 👍 ).
Good luck with your bug hunt!


adding observability and otel

@asteurer @calebschoepp are these changes to the SpinApp manifest available in SpinKube 0.2.0, or will this feature be available in SpinKube 0.3.0? If the latter, we should hold off until it's been released because the documentation currently refers to installing and maintaining SpinKube 0.2.0.

@asteurer @calebschoepp are these changes to the SpinApp manifest available in SpinKube 0.2.0, or will this feature be available in SpinKube 0.3.0? If the latter, we should hold off until 0.3.0 has been released because the documentation currently refers to installing and maintaining SpinKube 0.2.0.

Good point. They'll be in 0.3.0 so we should wait.

Labelling as DO NOT MERGE until SpinKube 0.3.0 has been released.

@bacongobbler shall we merge this now?


Add support for sensor classes on command_line platform

Description:
Add support for sensor classes on command_line platform
Related issue (if applicable): #
Example entry for configuration.yaml (if applicable):
...
    sensor_class: motion
...

Checklist:

[ ] Local tests with tox run successfully.
[ ] TravisCI does not fail. Your PR cannot be merged unless CI is green!
[x] [Fork is up to date][fork] and was rebased on the dev branch before creating the PR.
[x] Commits have been [squashed][squash].

Good to go after you squash your commits and fix your test.

I am having problem to fix the CI test. If anyone can give me a suggestion.
Once I solve the problem I will create a new PR.

Add this:
# pylint: disable=too-many-instance-attributes


Launch template with UEFI boot type doesn't work at first time

ISSUE TYPE

Bug Report

COMPONENT NAME
vm provision

CLOUDSTACK VERSION
Cloudstack <IP_ADDRESS>
vSphere Client version <IP_ADDRESS>00

CONFIGURATION
Cloudstack + vSphere

SUMMARY

STEPS TO REPRODUCE

1. Create a template with UEFI boot type.
2. Create an instance via Cloudstack UI with the template(without specified boot type).
3. Check the Firmware setting in Boot Options on vSphere side, it shows "BIOS"
4. Shutdown the instance via Cloudstack UI then start it again.
5. Check the Firmware setting in Boot Options on vSphere side, it shows "UEFI"

EXPECTED RESULTS

Template UEFI setting should overwrite the default boot type at first time.

ACTUAL RESULTS

Launch UEFI Template doesn't work at first time, need to stop the instance and start it again, then it will be reconfigured with UEFI boot type.

@Firxiao can you try <IP_ADDRESS>? cc @shwstppr

@Firxiao this has been fixed in 4.17.0 - https://github.com/apache/cloudstack/pull/5990

Thanks for checking @Pearl1594, @Firxiao I'm closing this as fixed in #5990. Please try <IP_ADDRESS> and re-open if you're still able to reproduce this issue in <IP_ADDRESS>. Thanks for your bug-report.


Filling up shuffle buffer (this may take a while): 9544 of 10000

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
OS Platform and Distribution: Windows 10 x64
TensorFlow installed from (source or binary):binary
TensorFlow version (use command below):1.13.1
Python version:3.6
CUDA/cuDNN version:10.0/7.4
GPU model and memory: Nvidia Geforce 840m / 4.00 Go

I used CNN facial landmarks for training my own dataset , when I start training I get some lines :

I tensorflow/core/kernels/data/shuffle_dataset_op.cc:101] Filling up shuffle buffer (this may take a while): 7024 of 10000
2019-06-19 12:02:24.102469: I tensorflow/core/kernels/data/shuffle_dataset_op.cc:101] Filling up shuffle buffer (this may take a while): 9544 of 10000

I want to know, are those lines meaning errors?
Thanks.

Can you please confirm whether you are getting expected results.Also, please share with us full code snippet to reproduce the issue reported here. Thanks!

I used CNN facial landmark project :

https://github.com/yinguobing/cnn-facial-landmark
I have modified the code :

landmark.zip

I tried to reproduce the issue. It looks some datasets are missing to reproduce the issue.Request you to provide the datasets. Thanks.

Did you mean upload datasets or just you want print their names?

Please upload the datasets for reproducing the issue. Thanks!

Actually, I used many different datasets and their size is big (including whole images).
But I will give you examples of image:

I tried reproducing the issue with the above image placed in testiriss.record folder but i am getting the below error.Thanks!
FailedPreconditionError (see above for traceback): testiriss.record; Is a directory [[node IteratorGetNext (defined at :249) ]]

What command you execute?

I have tried executing the code(landmark.py) given by you by placing the image in testiriss.record folder.Thanks!

You should followed some instructions before executing landmark.py

Apologies for the delay in response. Those are log info and not errors. See https://github.com/tensorflow/tensorflow/blob/42b5da6659a75bfac77fa81e7242ddb5be1a576a/tensorflow/core/kernels/data/shuffle_dataset_op.cc#L138

@ymodak, Thanks for your answer

@ymodak thanks - but what this log means?


Curly quotes present in code listings under XeLaTeX engine

Addressed by:
https://github.com/Wandmalfarbe/pandoc-latex-template/pull/78
...but noting in passing that the XeLaTeX-specific configuration mechanism used here (\usepackage{ifxetex}, \ifxetex, ..., \fi) may have an impact on the XeLaTeX-specific font selection options discussed in:
https://github.com/Wandmalfarbe/pandoc-latex-template/issues/68 (specifically https://github.com/Wandmalfarbe/pandoc-latex-template/issues/68#issuecomment-438408162).

The issue has already been discussed in https://github.com/silkeh/latex-sourcecodepro/pull/5 and fixed in https://github.com/silkeh/latex-sourcecodepro/commit/a62228bbe3d3fd02bc313d51061b892d2a4b0c82. Currently it is not released on CTAN that's why I merged your workaround. Thanks for the pull request!


PageView not rendering page correctly with conditional extendBodyBehindAppBar

Using a conditional statement that depends on the current page in extendBodyBehindAppBar breaks PageView. Navigating to the page that should extend behind the app bar will not render correctly unless its navigated to twice (click bottom nav bar when already on the broken page).
Please see dart pad example. Same result on flutter 3.0 and 2.10

Code sample

// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

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

class MyHomePage extends StatefulWidget {
  final String title;

  const MyHomePage({
    Key? key,
    required this.title,
  }) : super(key: key);

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int currentPage = 0;
  late PageController controller;

  @override
  void initState() {
    super.initState();
    controller = PageController();
  }

  @override
  Widget build(BuildContext context) {
    try {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
        backgroundColor: Colors.transparent,
        elevation: 0
      ),
      extendBodyBehindAppBar: currentPage == 1, //conditional breaks pageview
      body: PageView(
        controller: controller,
        onPageChanged: (int index) {
          setState(() {
            currentPage = index;
          });
        },
        children: [
          Container(color: Colors.blue),
          Container(color: Colors.red),
          Container(color: Colors.green),
        ]
      ),
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: currentPage,
        onTap: (int index) {
          controller.jumpToPage(index);
        },
        items: const [
          BottomNavigationBarItem(
            label: "1",
            icon: Icon(Icons.circle)
          ),
          BottomNavigationBarItem(
            label: "2",
            icon: Icon(Icons.square)
          ),
          BottomNavigationBarItem(
            label: "3",
            icon: Icon(Icons.accessible)
          ),
        ]
      )
    );
    } catch (e) {
      print(e);
      return Container();
    }
  }
}

Hi. Thanks for filing the issue. This issue is reproducible on latest stable and master channels.

Sample code
// Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

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

class MyHomePage extends StatefulWidget {
  final String title;

  const MyHomePage({
    Key? key,
    required this.title,
  }) : super(key: key);

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int currentPage = 0;
  late PageController controller;

  @override
  void initState() {
    super.initState();
    controller = PageController();
  }

  @override
  Widget build(BuildContext context) {
    print('re-render');
    try {
      return Scaffold(
          appBar: AppBar(title: Text(widget.title), backgroundColor: Colors.transparent, elevation: 0),
          extendBodyBehindAppBar: true, //conditional breaks pageview
          body: PageView(
              controller: controller,
              onPageChanged: (int index) {
                setState(() {
                  print('new index from pageview: $index');
                  currentPage = index;
                });
              },
              children: [
                Page1(),
                Page2(),
                Page3(),
              ]),
          bottomNavigationBar: BottomNavigationBar(
              currentIndex: currentPage,
              onTap: (int index) {
                controller.jumpToPage(index);
              },
              items: const [
                BottomNavigationBarItem(label: "1", icon: Icon(Icons.circle)),
                BottomNavigationBarItem(label: "2", icon: Icon(Icons.square)),
                BottomNavigationBarItem(label: "3", icon: Icon(Icons.accessible)),
              ]));
    } catch (e) {
      print(e);
      return Container();
    }
  }
}

class Page1 extends StatelessWidget {
  const Page1({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.blue,
      child: Center(child: Text("1", style: TextStyle(color: Colors.white, fontSize: 22))),
    );
  }
}

class Page2 extends StatelessWidget {
  const Page2({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.red,
      child: Center(child: Text("2", style: TextStyle(color: Colors.white, fontSize: 22))),
    );
  }
}

class Page3 extends StatelessWidget {
  const Page3({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Container(
      color: Colors.green,
      child: Center(child: Text("3", style: TextStyle(color: Colors.white, fontSize: 22))),
    );
  }
}

Demo

Conditional extendBodyBehindAppBar
Fixed extendBodyBehindAppBar value

flutter doctor -v
[✓] Flutter (Channel stable, 3.0.0, on macOS 12.2.1 21D62 darwin-x64, locale en-VN)
    • Flutter version 3.0.0 at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision ee4e09cce0 (2 days ago), 2022-05-09 16:45:18 -0700
    • Engine revision d1b9a6938a
    • Dart version 2.17.0
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-31, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • 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 11.0.12+0-b1504.28-7817840)

[✓] Android Studio (version 4.1)
    • Android Studio at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/201.7042882/Android Studio.app/Contents
    • 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-b3-6915495)

[✓] Android Studio
    • Android Studio at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-1/203.7185775/Android Studio Preview.app/Contents
    • 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 11.0.8+10-b944.6842174)

[✓] IntelliJ IDEA Community Edition (version 2020.3.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • 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

[✓] VS Code (version 1.67.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.40.0

[✓] Connected device (3 available)
    • iPhone 13 (mobile) • 5F5D609C-3B0B-4C48-872C-961928157361 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-2 (simulator)
    • macOS (desktop)    • macos                                • darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 101.0.4951.54

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[✓] Flutter (Channel master, 3.1.0-0.0.pre.727, on macOS 12.2.1 21D62 darwin-x64, locale en-VN)
    • Flutter version 3.1.0-0.0.pre.727 at /Users/huynq/Documents/GitHub/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 36f9a186bf (9 hours ago), 2022-05-15 14:34:06 -0400
    • Engine revision 1b064fd1a3
    • Dart version 2.18.0 (build 2.18.0-116.0.dev)
    • DevTools version 2.13.1

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-32, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • 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 11.0.12+0-b1504.28-7817840)

[✓] Android Studio (version 4.1)
    • Android Studio at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/201.7042882/Android Studio.app/Contents
    • 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-b3-6915495)

[!] Android Studio
    • Android Studio at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-1/203.7185775/Android Studio Preview.app/Contents
    • 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
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] IntelliJ IDEA Community Edition (version 2020.3.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • 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

[✓] VS Code (version 1.67.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.40.0

[✓] Connected device (3 available)
    • iPhone 13 (mobile) • 5F5D609C-3B0B-4C48-872C-961928157361 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-15-2 (simulator)
    • macOS (desktop)    • macos                                • darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)       • chrome                               • web-javascript • Google Chrome 101.0.4951.64

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

@Zolmy hi, here is a workaround,
Give you PageView a GlobalKey will work.

Update:
Blocking by https://github.com/flutter/flutter/pull/60248/files#r882361665


[micro-dash]j Make transitive deps use micro-dash?

I have a situation where specific lodash packages are being included by transitive dependencies. Deep in yarn.lock, I see lodash.flow and lodash.curry. I'm wondering if there is a way already, or if anyone has thought about being able to override these types of deps so the webpack bundle stays small?

I'm afraid I don't know any tricks for that. I wouldn't be surprised if there is some wild webpack config hack to accomplish it. Maybe through a giant list of aliases or something? But I make a point to steer as far clear as buildchain config as humanly possible. 😄
I'll leave this issue open in case anyone else has input. Though I'm not sure how many people browser is issue list in this repo. Maybe stack overflow?

I'm afraid I don't know any tricks for that. I wouldn't be surprised if there is some wild webpack config hack to accomplish it. Maybe through a giant list of aliases or something? But I make a point to steer as far clear as buildchain config as humanly possible. 😄
I'll leave this issue open in case anyone else has input. Though I'm not sure how many people browser is issue list in this repo. Maybe stack overflow?

Just cleaning up a few old, open tickets that don't have action items for me


Support of Multi-SIM lines in DeviceLocation APIs

Problem description
As introduced in https://github.com/camaraproject/Commonalities/issues/302, for Multi-SIM services. providing a phoneNumber as input does not identify a single device uniquely.
Current DeviceLocation specs do not consider or give guidelines about how to behave in scenarios when the input is only a phoneNumber of a Multi-SIM service and specific device (SIM) cannot be inferred from the access token or other device identifier.
Possible evolution
Discuss the problem and alternatives. There may be impact in other tracks, such as IC&M. We may need also to discuss implications in the short term when dealing with this situation in current versions.
In the case of DeviceLocation each API has each own considerations, as each SIM may be located in a different place:

For location-verification, the input area can match the location of one of the SIMs but not others. Do we return TRUE if there is a single match, or PARTIAL or another new value?
For location-retrieval, do we have to return an array with several locations? Do we want to disclose that the client has multi-SIM? Would we need to identify each device?
For geofencing-subscriptions? Do we trigger an event when any of the SIMs enter or leaves the area? How do we identify which device/SIM is the one affected?

Alternative solution

Relying on 3-legged tokens as much as possible would minimize the problem, but currently we cannot assure that they always identify a single device instead of a phone number.
Finally we can handle the situation with errors, such as 422 UNIDENTIFIABLE_DEVICE, or another dedicated code, informing clients to provide an alternative identifier that can identify the specific device. But this should be limited to corner situations as it is not dev friendly and in most cases developers do not know if a phone number belongs to a multi-SIM service.

For location verification, I prefer to avoid simply saying "PARTIAL". We need to indicate to the caller there are other devices and the devices have their own area match results. We can return multiple results, where we indicate one of them is for the "primary" device and the other results are for "secondary" devices.
For all APIs, if we return multiple results, should we return the secondary device identifiers in the response? Would there be a privacy concern? Are the secondary identifiers even useful for the caller ?
For geofencing-subscriptions, the secondary devices may not be compatible with the purpose of the subscription. I don't have a concrete example, but the caller may want to trigger a speicifc action like sending data, automated call or SMS, which may not make sense if the matching device is a smartwatch or fitbit.

We should wait until Commonalities (Issue #302) and probably ICM have clarified the treatment of multi-SIM groups before making any decisions. Currently, it is implicit that the device object and 3-legged tokens only identify a single device and not a related group of devices. I don't think it is at all a given that end user consent for the primary device means end user consent for all devices in the group, and APIs need to consider this.
What this sub-project can do is clarify or extend the use cases supported by the API given the existence of multi-SIM groups. The implication above is that the API should locate the entire group as a whole. But maybe the API consumer wants to locate only a single device from within the group (such as a "Find my smartwatch" app)?
By clarifying the use cases you want to support, the requirements on how CAMARA should handle multi-SIM groups may become clearer.

A problem is that probably we cannot generalize the concept of a primary or main device in a multi-SIM pack, as not all implementations support this concept, A MSISDN may be linked to several IMSIs without any hierarchy between them. Also, there is no a simple universal solution to identify several devices in a response in a way that is friendly to the client (e.g. smartphone, smart watch, tablet, etc), apart from the privacy issues that this kind of identification would imply.

@jlurien
Yes, I agree that some implementations of multi-SIM may make some use cases impossible for API providers that use these implementations. If the use case requires to locate an individual device, and a given device identifier (in this case MSISDN) is ambiguous, then that identifier cannot be used. Either another identifier (e.g. ip / port) or a new identifier (e.g. IMSI) should be used. But really this is something Commonalities and ICM should resolve, before pushing a solution to impacted APIs.
I'd recommend being careful to define API use cases around what an API consumer would find useful, and not around what all implementations can currently support. I don't really see the use case for locating a multi-SIM group as a whole, but that is for the sub-project to decide.

As discussed during Oct22th meeting, we still need to think about UC  as location retrieval will be probably mainly used for non-personal device (for user-privacy reason). For IoT we do not have the question of multi-sim and if we have very few UC for location-retrieval and multi-sim this is perhaps a corner case for our API.

Assuming that we won't have changes in the interface of the output responses of the APIs, I agree that it is very difficult to have a unique and deterministic implementation for the MultiSIM issue.
Trying to document the scenarios and considerations we are addressing in this conversation, and similar to the considerations added for QoD here: https://github.com/camaraproject/QualityOnDemand/pull/378 I suggest to generate some documentation like the following (just a proposal for DLVerification; DLRetrieval and Geofencing could be similar):

In multi-SIM scenarios, where more than one mobile device is associated with the phone number given as input in the API call (e.g. a smartphone with an associated smartwatch), it might not be possible to uniquely identify the device whose location is to be verified. Then, if the phone number is used as the device identifier, and assuming that the interface of the API only allows a unique response, there are three main options for the API to give as a response:

Return an error as multiSIM scenarios are not supported.
Return the verification just for the main SIM, in the case of such concept makes sense.
Return a value that combines the location verification of all the SIMs associated to the requested MSISDN. For example, a PARTIAL response calculating the overlapping between all the detected coverages of the SIMs and the requested area or providing a verification in case one of the devices fulfils the requirement of being in the requested area.

Applying just the first option is deterministic but misses some useful use cases. Additionally, this option potentially provides extra information about account nature, apart from the location information, that could be exploited by the developers.
The second one can be right in most cases but is not completely deterministic and can fail to verify the location of the intended SIM.
The third option don’t miss use cases, but there may be cases where the response is not useful (e.g. phone is in the area but a personal wearable is outside, so the user is indeed not inside the area, false positive).
An additional option is to apply one of those options depending on the type of addressed devices: for example, in the case of machine SIMs or IoT, it may make sense to leave the multiSIM issue as a corner case returning an error, and for residential SIMs a polygon containing all the coverages of the SIMs may be used to return a PARTIAL result.
The recommended ways to avoid this issue are:

Using the authorisation code flow to obtain an access token, which will automatically identify the intended device.
Identifying the intended device from a unique identifier for that device, such as its source IP address and port.
Check with the SIM provider whether a unique "secondary" phone number is already associated with each device and use the secondary phone number to identify the intended device if available.

And this one is a similar proposal specific for DLRetrieval:

In multi-SIM scenarios, where more than one mobile device is associated with the phone number given as input in the API call (e.g. a smartphone with an associated smartwatch), it might not be possible to uniquely identify the device whose location it to be retrieved. Then, if the phone number is used as the device identifier, and assuming that the interface of the API response only allows one location, there are three main options for the API to give as a response:

Return an error as multiSIM scenarios are not supported.
Return the location of the main SIM, in the case of such concept makes sense.
Return a value that combines the location verification of all the SIMs associated to the requested MSISDN. For example, a polygon or circle containing all the detected coverages of the SIMs.

Applying just the first option is deterministic but misses some useful use cases. Additionally, this options potentially provides extra information about account nature, apart from the location information, that could be exploited by the developers.
The second one can be right in most cases but is not completely deterministic and can fail to verify the location of the intended SIM.
The third option don’t miss use cases, but there may be cases where the response is not useful.
An additional option is to apply one of those options depending on the type of addressed devices: for example, in the case of machine SIMs or IoT, it may make sense to leave the multiSIM issue as a corner case and return an error, and for residential SIMs a polygon containing all the coverages of the SIMs may make sense.
The recommended ways to avoid this issue are:

Using the authorisation code flow to obtain an access token, which will automatically identify the intended device.
Identifying the intended device from a unique identifier for that device, such as its source IP address and port.
Check with the SIM provider whether a unique "secondary" phone number is already associated with each device and use the secondary phone number to identify the intended device if available.

It is possible to use variations of 422 error in this case.
If one simply wants to deny a response in a MultiSIM case (option 1):

If one wants to direct the API consumer to use other/more identifiers:

Having said that, I hope we have IMSI as an identifier in requests in the future. I understand it is a big change, but IMSI is a better identifier of a device imho, where an IP address may change when a device disconnects from the network for a moment.
If the API itself is data oriented , like QoD, yes IP address makes sense because the service must be provided to an IP address.

@alpaycetin74 but as far as I know an app developer cannot get the IMSI from iOS SDK no? (and probably same for android) so not sure how it can work.
  If we call the API under Front end auth code flow we should not have the issue as the device queried will be identified by the network...

yes, @bigludo7 , developers can't access IMSI on iOS. I forgot about that :(


Library Documentation

There should be sufficient documentation so that if anyone wants to use these components, he knows the functionality of these components and how to use them.

We are thinking of making the homepage as something similar to codepen.io where the end user can come and search for a component and they find the component that they were looking for. What are your suggestions?
Where do you want to add more documentation to make the user aware of the functionality?

That will be a good start, but the contributors who are adding components must contribute to it too then. Else, if somebody else will work on it, he may also find it difficult to understand those. You can mention it to contribution guidelines to add proper comments , etc.

Yeah that's the eventual plan.


Revalidate fetch only after x seconds

I'm trying to cache a Sanity API request for 10 seconds. I believe that adding revalidate: 10 to a normal fetch request would do this but in my code below the API is hit every time I refresh the page.
Is this feature supported and I have I set something up wrong?
import { createClient, groq } from "next-sanity";

export default async function Home() {
    const client = createClient({
        projectId: process.env.NEXT_PUBLIC_SANITY_PROJECT_ID,
        dataset: process.env.NEXT_PUBLIC_SANITY_DATASET,
        apiVersion: process.env.NEXT_PUBLIC_SANITY_API_V,
        useCdn: false,
    });

    const res = await client.fetch(
      `*[_type == "posts"] {
      _id,
      name
    }`,
        {
            next: {
                revalidate: 10,
            },
        },
    );

    return (
        <div className={"text-xs whitespace-pre"}>
            {JSON.stringify(res, null, 2)}
        </div>
    );
}

export const dynamic = "force-dynamic";

It looks like you're setting the options in the second param instead of the third one, try:
    const res = await client.fetch(
      `*[_type == "posts"] {
      _id,
      name
    }`,
        {},
        {
            next: {
                revalidate: 10,
            },
        },
    );


Create New Node search inaccurate

Godot version:

d9cf780a702b6776cc10eb5b9a2c943a76decd7e
OS/device including version:

Arch Linux
Issue description:

The search bar in the Create New Node dialogue has some odd predictions sometimes:

Expected: DampedSpringJoint2D
Predicted: AudioStreamPlayer2D

Expected: CanvasLayer
Predicted: CanvasModulate

Expected: Button
Predicted: TouchScreenButton

Expected: Tabs, or TabContainer
Predicted: VisibilityEnabler2D

Expected: Particles, Particles2D
Predicted: VSeparator

Expected: NinePatchRect
Predicted: TabContainer

Expected: VisibilityNotifier/2D
Predicted: VisibilityEnabler2D

Expected: HScrollBar
Predicted: TouchScreenButton
And so on.  It's usually not a problem, but if you're going fast and not paying attention, you might accidentally get the wrong node added and have to backtrack; if you are paying attention, you wind up having to type in extra characters to get the node you're really looking for.  One would expect, when typing in a particular string, that you'd get the node whose name most closely matches it starting from the beginning, but instead the predictor seems to try to find a match anywhere in the name and returns the first thing it finds that contains all the characters provided; I also assume it favors nodes which match the root node of the scene, though it's common to combine different kinds of nodes together (such as a UI in a 2D scene.)  I think it would be better if the predictor stuck more closely to matching the search criteria from start to end before trying to find other matches.

The Button -> TouchScreenButton thing has already been reported, but this is a broader report. I suppose we should close the other one?


Feature request: report eclipses

Preferably before August 2017 (next partial eclipse), or February 2017 if you want to also mention penumbral eclipses.

if this does get considered this may be helpful:
http://astronomy.stackexchange.com/questions/231/what-is-the-formula-to-predict-lunar-and-solar-eclipses-accurately

if this does get considered this may be helpful:
http://astronomy.stackexchange.com/questions/231/what-is-the-formula-to-predict-lunar-and-solar-eclipses-accurately


Review and propose changes for all files in pkg/deploy, pkg/image and pkg/wait  directory

Go over all files there, review, and fix as appropriate

We decided to stay with the bash scripts


Nextjs - "use client"

Is there a reason components are not annotated with 'use client' or was this not considered yet? If there's no issue, I'd like to submit a PR with these annotations, as I think Material Web doesn't currently support SSR for its components.

Thank you for your report. It is just missing consideration. Feel free to add a PR to fix it.


Add language support for notes of different length

Similar to #9 , we want to change the language to allow specifying a length (as currently, only quarter notes are possible).
Sticking to powers of 2 is good for now, but eventually we also want to allow for dotted notes of course.

Blocked by #13

I currently have something like this in mind:
<non-empty-piece> ::= <track-end> <bar> <piece>
<bar>             ::= <note> <bar> | ""
<piece>           ::= <barline> <bar> <piece> | <track-end>
<note>            ::= <pitch> <semitone> <length-modifier> | <pause> <length-modifier>
<length-modifier> ::= <length-raise> <dot> | <length-lower> <dot>
<length-raise>    ::= <circle> <length-raise> | ""
<length-lower>    ::= <flag> <length-lower> | ""

<track-end>       ::= "|"
<barline>         ::= "|"
<pitch>           ::= "C" | "D" | "E" | "F" | "G" | "A" | "B"
<semitone>        ::= "#" | "b" | ""
<pause>           ::= "-"
<dot>             ::= "." | ""
<circle           ::= "o"
<flag>            ::= "^"

Example
|| D A B F# | G D G A ||


Capture headers and status in ObjectReadStream.

The ObjectReadStream should capture any headers returned by the server and make them available to the application, even after Close() is called (i.e. they should be in the stream state).  Applications may need to know what generation of the object they read, or any number of other attributes returned via headers.
Consider filling out a ObjectMetadata() object with the information captured via headers too.

This was fixed as part of #1750.


Revert breaking checkbox markup change for 3.7.2 release

Due to an internal timeline, the team has decided to revert the breaking change in markup for checkbox, so that we can release 3.7.2 today instead of 3.8.0.
For more background information on the markup changes that were committed into master and now reverted, please review the 3.7.0 release notes.

Worked with @interactivellama to make the revert.


Dot Product Computes Wrong Values

First off - this is really cool library! I'm trying to implement the causal dot product kernel, but I'm running into some issues. It could be either a bug or my misunderstanding of the documentation.
Triton code: https://github.com/calclavia/Triton-Transformer/blob/master/ttx/attention/causal_product.py#L26
The above implements the algorithm from "Transformers are RNNs" paper (Algorithm 1) in Triton. In summary, I'm trying to batch-parallelize a for loop that computes a prefix sum. This is a simple O(n) implementation (not the more efficient O(log(n)) version).
The equivalent naive Pytorch implementation is here: https://github.com/calclavia/Triton-Transformer/blob/master/ttx/attention/causal_product.py#L6
When running a simple unit test, I'm getting very different values.
ref_output tensor([[[[0.0157, 0.6251, 0.6993],
          [0.7910, 2.1930, 2.1000],
          [0.7413, 1.7217, 1.4139],
          [0.8863, 1.4795, 1.5222],
          [1.2453, 2.5844, 1.9665]]]])
triton_output tensor([[[0.4268, 0.6251, 0.6993],
         [2.4132, 0.6186, 0.3389],
         [0.8975, 0.4929, 0.2288],
         [0.8470, 0.0080, 0.3058],
         [1.1330, 0.7073, 0.0776]]])

I tested a single dimensional vector and was unable to get matching values. The logic seems to be correct, but I suspect the issue is related to tl.dot. If anyone has insights, I would appreciate comments/feedback!

Hmm, this is interesting. Could you share a self-contained file that contains the content of causal_product_naive plus your failing unit test? Thanks!

@ptillet You can clone that repository and run it the test via:
python -m unittest

See README. Only requires Pytorch and Triton.
The repo currently contains nothing but causal dot product.

@ptillet Any updates on this? I'm hoping to figure out what's missing.

Hey! Sorry I haven't had time to look into it. I've been busy working on older issues (#170 and #176 ) that require quite a bit of work

I made and pushed some fixes, and now I'm running into a strange situation where the first column of my output doesn't match, but the rest of the elements pass the test:
ref_output tensor([[[[-1.8713, -3.2907,  2.6836,  1.0433]]]], device='cuda:0')
triton_output tensor([[[ 7.9835, -3.2907,  2.6836,  1.0433]]], device='cuda:0')

Replicate test on master branch:
python -m unittest tests.test_causal_dotprod.TestCausalDotProduct.test_causal_product_fwd_triton

There seems to be something wrong with tl.dot in terms of not working with the first column, and it's hard to debug why. I tried multiplying the dot product operands by constants to see where the cause was:
Changing:
output = tl.dot(q[None, :], state)

into
output = tl.dot(q[None, :] * 100, state * 0)

Now, I would expect the above matmul to just zero out the entire output, but the malformed first column is still there!
ref_output tensor([[[[-1.8713, -3.2907,  2.6836,  1.0433]]]], device='cuda:0')
triton_output tensor([[[79834.8906,     0.0000,     0.0000,     0.0000]]], device='cuda:0')

Seems like dot product took did not properly multiply the first element in the matrix, but multiplied the rest of them?
Another strange behavior is that:
My kernel only "works" if num_warps=1. If I don't set num_warps, it would output all zeros.

@calclavia I'm really interested in this as well! Phil had told me that it wasn't possible through email, but maybe I didn't explain it correctly

@lucidrains Great to see you're interested! I was hoping this could be a drop in replacement for your Performers repo to solve this issue (https://github.com/lucidrains/performer-pytorch/issues/44)

@calclavia yes, me too... i feel like the whole "linear" attention line of research is being held back by this

@calclavia have you tried cuda-python yet?

Hey! I looked into this and there are multiple issues at play:

I think what you ran into is an issue for dot products when the blocks are too small. It's quite tricky to get the thread partitioning right when the compiler needs to distribute 16 elements over hundreds of threads. This is one of the areas where the compiler is buggy at the moment.
It seems like with the most recent dev version, your causal attention makes the shared memory allocator hang. So that's another issue that I'll have to look into

@ptillet Thanks for the analysis. So I'm assuming these are Triton compiler side fixes, and not a bug on my implementation of Triton.
In terms of building a prefix sum primitive - how difficult do you think it would be to implement and what types of performance gains a primitive would likely yield? Ideally, wouldn't the compiler be able to "detect" these types of loop and optimize it to use a primitive behind the scenes?

@calclavia  It's a bit tricky. Our goal is actually to extend Triton-IR to support indexing operations, then prefix sum could just be implemented using an algorithm like https://en.wikipedia.org/wiki/Prefix_sum#Parallel_algorithms without having dedicated Triton-IR instructions. Then the compiler would look at all the indexing ops and add some shared memory barriers (and warp shuffles) accordingly to maximize performance without breaking correctness.
Pattern matching across loop boundaries tends to be pretty hard and brittle. So in order to avoid that, Triton tries really hard to find abstractions that make sense :p It'll take a while before indexing ops are part of the ecosystem (I'm thinking maybe by Jan - Feb), but hopefully we'll get a prototype before then that will be enough for causal attention.
Anyhow, the issues you're having are unrelated and should be addressed sooner than that :D

Same wrong values for small blocks here! Is there any plan to fix such a bug?

@ptillet I checked Triton v1.1 and I think this issue is still here. Any updates on this?

this should be fixed on the latest master branch, or the latest dev wheel

@ptillet I've updated Triton but I'm getting segmentation fault on version triton 2.0.0.dev20220211

@ptillet I did more digging to see which part of the kernel causes the error. Added some comments. In particular, if I try to load another vector q = tl.load(q_ptr + k_offsets[:, None], mask=k_mask[:, None], other=0) in the loop, I get a segfault. The tl.store at the end of the loop causes the IndexError: map::at error. The kernel seems to run if I comment out tl.store
    for _ in range(0, length, 1):

        # Load a single row of K and V as matrices.
        # [K_BLOCK_SIZE, 1]
        k = tl.load(k_ptr + k_offsets,
                    mask=k_mask, other=0)[:, None]
        # [1, V_BLOCK_SIZE]
        v = tl.load(v_ptr + v_offsets, mask=v_mask, other=0)[None, :]

        # Compute context [V, 1] x [1, K] => [V, K]
        context = tl.dot(v, k)
        state += context

        # Load a single row of Q of shape [K, 1]
        # TODO: Loading this causes segfault
        # q = tl.load(q_ptr + k_offsets[:, None], mask=k_mask[:, None], other=0)

        # Compute output = S * Q. [V, K] x [K, 1] x  => [D, 1]
        # TODO: Correct equation
        # output = tl.dot(state, q)
        output = tl.dot(state, k)

        # TODO: Storing output causes IndexError: map::at
        tl.store(
            output_ptr + v_offsets[:, None],
            output,
            mask=v_mask[:, None]
        )

        # Move to next row
        k_offsets += kdim
        v_offsets += vdim

I think this issue is related to https://github.com/openai/triton/issues/375
If I use tl.dot within a loop, it tends to be buggy with Segmentation fault

Hey!
First of all, thanks for digging into this issue. Sorry for having been unresponsive, I've been quite busy with other matters, and I am well aware of the instabilities of triton 😅  I will look into this problem. FWIW, we are planning a rewrite of the backend that should greatly improve stability on these kinds of issues.

Closing this, as the compiler now throws an error when the blocks are too small for tl.dot. Please submit a new issue with a repro if you have an alternative kernel that compiles


React -> Warning: module.exports.getDOMNode(...) is deprecated. Please use ReactDOM.findDOMNode(instance) instead.

Hello.
Thanks for the awesome plugin!
Little issue when I use it with React v0.14.6
I get the following errors:

Warning: module.exports.getDOMNode(...) is deprecated. Please use ReactDOM.findDOMNode(instance) instead.
Warning: ReactDOMComponent: Do not access .getDOMNode() of a DOM node; instead, use the node directly. This DOM node was rendered by module.exports.

After some brain scratching (I'm a React noob), I found that changing line 137 from
DOMNode = this.getDOMNode() ? (this.refs[options.ref] || this).getDOMNode() : this.refs[options.ref] || this;

TO
DOMNode = this.refs[options.ref] || this;
``
Removes the warning.
I'm writing this in case others run into the issue or if you would like to fix it.

Hope this helps.

https://github.com/RubaXa/Sortable/blob/dev/react-sortable-mixin.js#L143

@desduvauchelle could you open a PR?

@RubaXa could you publish it to npm?

@jiangzhizi To do this, need to test the dev-branch, but I don't have time for this.


Can't refresh shell folder icons using SHChangeNotify when there is unicode character in folder name

I am trying to refresh the overlay icons of a folder using this code
const ffi = require('ffi');
const ref = require('ref');

SHCNE_UPDATEDIR = 4096
SHCNF_PATH = 1
SHCNF_FLUSHNOWAIT = 8192

var shell32 = new ffi.Library('Shell32', {
/*
void SHChangeNotify(
           LONG    wEventId,
           UINT    uFlags,
  _In_opt_ LPCVOID dwItem1,
  _In_opt_ LPCVOID dwItem2
);
*/
SHChangeNotify: ['void',  ['long','uint', ref.types.CString ,'pointer']]
});

shell32.SHChangeNotify(SHCNE_UPDATEDIR,SHCNF_PATH | SHCNF_FLUSHNOWAIT,dir_name,null)

if i use dir_name = "C:\Users\arunk\test_folder" and call the above function the folder items are getting refreshed but when i give a folder with unicode character in it the function is not refreshing the folder  eg: dir_name = "C:\Users\arunk\Ω"
What am I doing wrong? please help
instead of ref.types.CString i tried giving wchar_t , but that also didn't work

instead of ref.types.CString i tried giving wchar_t , but that also didn't work

I think that’s a good idea in general, but you’d also somehow need to tell SHChangeNotify that you are passing in a wide string – a bit of googling shows a SHCNF_PATHW flag with value 5 (so SHCNF_PATH | 4) that might be what you want?

Thank you so much @addaleax
That worked


Wrong usage for validator's required directive

Hello,
The definition for required in the asyncapi specification, and the validator's required are different:

For asyncapi, the field needs to be present BUT can be empty
For validator, the fields needs to be present  AND cannot be empty - https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Required

Because of this behaviour, the validator cannot be used to validate most structs.
What I would recommend:

Remove required for non-pointer fields
Add a flag to force all fields to be generated as pointer.

Without the point 2., we have no way of knowing whether the incoming message was absent or not, since non-pointer struct will be initialized with empty/zero-value.
This could be the default behaviour (in a future version ?), but since this would have large impacts on users, I figured having it opt-in was best for now
Thanks

Hi @TheSadlig, thanks for the issue :)
For this version, a flag is indeed better and in a future version it could be a default behavior.
Feel free to propose a PR if you need this, as I don't have a lot of time in my hands actually.


LOAD fails on Node

$ LUMEN_HOST=node bin/lumen -e '(load "compiler.l")'
ReferenceError: exports is not defined
$ LUMEN_HOST=lua bin/lumen -e '(load "compiler.l")'
(eval: function compile: function run: function expand: function)

Lua's behavior seems correct, but it depends whether you want (define reader (load "reader.l")) to be semantically valid.
An alternative would be to change the export macro to define the exports globally during a load, instead of exporting anything. It could even namespace the definitions:
(load "system.l")
(load "reader.l")

(define read-file (path)
  (reader-read-all (reader-stream (system-read-file path))))

Still an issue, but probably out of scope for now.


Unable to find a specification for SwiftBackgroundLocation

when try to install pod

Hi @MuhammadAhmedBaig . It is new library, you should probably make pod repo update before use it.


Increase CursowWindow size to 100MB on android P and above.

Created this PR by mistake. It's not a general purpose fix, so isn't suitable to for merging upstream.


libtock: console: Remove putstr definition

There is no implementation of putstr() so let's remove the header definition.

bors r+


slow ecalib

I use ecalib to get the sensitivity maps with one slice of 128 channels in the command below. It takes very long. Is there a way to speed up the process?
Thanks!
[calib emaps] = bart('ecalib -r 10', data); % data is 1x64x48x128

I followed the example in the bart tutorial where the first dimension is 1.
I think that should be fine. It works as if there is only one slice. There
are 128 channels in my case.
On Wed, Jun 21, 2023 at 12:05 PM aTrotier @.***> wrote:

Hi
Channels number is suppose to be on the third dimensions (readout, phase
encoding, partition encoding, channels)
You should permute the dimensions, I suppose you have 48 channels
Aurelien
Le mer. 21 juin 2023 à 18:55, jiaen-liu @.***> a écrit :

I use ecalib to get the sensitivity maps with one slice of 128 channels
in
the command below. It takes very long. Is there a way to speed up the
process?
Thanks!
[calib emaps] = bart('ecalib -r 10', data); % data is 1x64x48x128
—
Reply to this email directly, view it on GitHub
https://github.com/mrirecon/bart/issues/308, or unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AC5P7O7OTSRHYXUBFLFWZT3XMMRPBANCNFSM6AAAAAAZPBA76Y>

.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/mrirecon/bart/issues/308#issuecomment-1601242551, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AJ3W3QEZYEHWA2E7N2ZWLQDXMMSVJANCNFSM6AAAAAAZPBA76Y
.
You are receiving this because you authored the thread.Message ID:
@.***>

Try reducing the number of coil With coil compression
Le sam. 24 juin 2023 à 00:21, jiaen-liu @.***> a écrit :

I followed the example in the bart tutorial where the first dimension is
1.
I think that should be fine. It works as if there is only one slice. There
are 128 channels in my case.
On Wed, Jun 21, 2023 at 12:05 PM aTrotier @.***> wrote:

Hi
Channels number is suppose to be on the third dimensions (readout, phase
encoding, partition encoding, channels)
You should permute the dimensions, I suppose you have 48 channels
Aurelien
Le mer. 21 juin 2023 à 18:55, jiaen-liu @.***> a écrit :

I use ecalib to get the sensitivity maps with one slice of 128
channels
in
the command below. It takes very long. Is there a way to speed up the
process?
Thanks!
[calib emaps] = bart('ecalib -r 10', data); % data is 1x64x48x128
—
Reply to this email directly, view it on GitHub
https://github.com/mrirecon/bart/issues/308, or unsubscribe
<

https://github.com/notifications/unsubscribe-auth/AC5P7O7OTSRHYXUBFLFWZT3XMMRPBANCNFSM6AAAAAAZPBA76Y>

.
You are receiving this because you are subscribed to this
thread.Message
ID: @.***>

—
Reply to this email directly, view it on GitHub
https://github.com/mrirecon/bart/issues/308#issuecomment-1601242551,
or
unsubscribe
<
https://github.com/notifications/unsubscribe-auth/AJ3W3QEZYEHWA2E7N2ZWLQDXMMSVJANCNFSM6AAAAAAZPBA76Y>

.
You are receiving this because you authored the thread.Message ID:
@.***>

—
Reply to this email directly, view it on GitHub
https://github.com/mrirecon/bart/issues/308#issuecomment-1605053491, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AC5P7O7BZUDZNBEGOD5HLDTXMYJHJANCNFSM6AAAAAAZPBA76Y
.
You are receiving this because you commented.Message ID:
@.***>

Please use the mailing list for questions:
https://mrirecon.github.io/bart/


Implementation of column reordering

Addresses #37.

I think I see what's going on.
Can you use Black?
$ black -l 79 .

Followed by pycodestyle?
$ pycodestyle .

And then fix whatever Black doesn't automagically fix for you?

Sure. Can't tonight, but will get to it tomorrow.

@ericmjl - done. Note that coalesce was slightly restructured in this process & I kept that in there.
PyCharm did the rebasing itself, but it looks like all's good?


chore: update dependencies

:tada: This PR is included in version 9.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Custom tsConfig path

Please provide the option to specify a custom tsConfig, something like this:
[
      'babel-plugin-tsconfig-paths-module-resolver',
      {
        "tsConfig": "apps/functions/tsconfig.app.json",
      }
    ]

You can work around this limitation by setting an environment variable pointing to the required tsconfig file before this plugin is initialized.  If you have a babel.config.js you can do something like:
process.env.TS_NODE_PROJECT = path.join(<someRootPath>, 'tsconfig.base.json');

before exporting the plugin configuration.
https://github.com/dividab/tsconfig-paths#config-loading-process


Cobalt, Ardite disapears

You can't mine Cobalt and Ardite with the Flux Infused Crusher because it disappears after you minned it.

Are you mining it in 1x1 mode or does that happen only with the AoE effect?
Also, are you using Iguana Tweaks? I've heard that it messes with tools from other mods.

I will look into improving the harvesting algorithm, but some more information would still be useful.

I use 5x5 and Iguana Tweaks. Sometimes it is working when I mine the ore directly and do not use the aoe.

The update containg the bugfix should be public now: http://minecraft.curseforge.com/mc-mods/229846-rfdrills/files/2257240


Design premium page #26

ISSUE #26
I had created a new design for the webpage and also added a designer footer and  favicon for the webpage.
Here is the link for the webpage :- https://naman-joshi-14.github.io/Movie-Streaming-Website/

First update your repo then make PR.


Drain the remaining messages from CLOSED shards

Current implementation ignores the shards in the CLOSED state immediately, but it can cause missing the messages that remained in the previous (parent) shards.

Resolved by v0.2.0


LVTs: Create new VkPositiveLayerTest class

Created new test class (VkPositiveLayerTest) for positive tests,
moved existing positive test into this class and split tests having
a mix of positive and negative tests. This should make things a bit
cleaner when adding valid usage IDs and adding test names into the
VU database.  In the future the class can be extended to do error
checking automatically.

Running this on our farm as lots of code was touched

We're going to have to change some of our test exceptions for this PR to work correctly. Let us clean it up on our side and if everything looks good I'll push it.

This is now clean on our farm. Will wait until tomorrow to merge in case anyone else had input or feedback.

Pushed to Master.  Thanks @tobine.


Adding linting, more unit tests and coverage

Adding linting, more unit tests and coverage. Admittedly a few of these are coverage only suites.

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