Convert ovn-tester to use asyncio

ovn-tester currently works in a synchronous and serialized manner. If we are going to provision, say, 50 ports, the operation will go something like:

Issue SSH command to create a port, and wait for that to return
Issue SSH commands to update load balancers, and wait for them to return
Issue SSH commands to ping ports, and wait for them to return
Repeat 50 times.

With this series, we use python's asyncio framework to create tasks that are each responsible for performing the above operations. Each task looks something like:

Issue SSH command to create a port, then yield control to the event loop
Collect result of SSH command, then issue SSH commands to update load balancers. Yield control to the event loop.
Collect result of SSH command, then issue SSH commands to ping ports. Yield control to the event loop.
Collect result of SSH command.
With asyncio, we can deploy multiple of these tasks at once, allowing the event loop to give control to the individual tasks as they have data to work with. The tests have been updated to take a "queries_per_second" option that allows for the number of tasks to create per second to be configured. By default, all the tests create 20 tasks per second.

In order to support asyncio, this also changes the SSH library from paramiko to asyncssh.
See the individual commits in this PR for explanations of all of what is happening in the code.
Some notes:

This change makes use of asyncio functions that are only available in python 3.7+. ovn-heater should probably be updated to ensure that a proper version of python is used in the virtualenv when running tests.
When testing this change in a cluster of RHEL8 servers, I found that the central container that was receiving the ovn-nbctl commands would get hung. It appeared that issuing multiple docker exec calls at once caused the container to deadlock. I fixed this by upgrading the docker version to 20.10.8 on the server in question. ovn-heater should probably be updated to ensure that a new enough docker version is installed on the physical nodes.
Stats are accurate, but may potentially be misleading.

Since test iterations run concurrently, adding together multiple iterations' times doesn't make much sense. As an example, I ran the ovn-20.yml scenario on a cluster, and the entire test took 20 minutes to complete. However, looking at the netpol_multitenant report, the sum of all iterations is 70 hours.
Measurements include idle time while the event loop runs other tasks. As an example, let's say we issue an SSH command to ping a port. 5 seconds later, the SSH command completes. However, because the event loop is running other tasks, the result of that SSH command is not collected until 30 seconds after the ping was initially issued. In this case, the stats would show the ping took 30 seconds. It may be worth changing our measurements to be performed on the server instead (or in addition to our client-side timing)

Hi, just leaving a comment to explain a few things. I have a couple more commits I want to add to this series and then I'll update the PR. I'm testing them in my async_sandbox branch right now. The first is one that changes how we wait for ports to be up. The second adds the connection pool as has been discussed in this PR.
When reviewing, I suspect you'll be able to find things that could be optimized, or you could find places where we can use asyncio features in ways that will be more efficient. But I think those sorts of improvements can wait until after the initial asyncio support is merged.
I also opened two issues: #85 and #86 . These issues exist without asyncio, but with asyncio they're even worse. I don't think those issues should impede us from getting the initial asyncio code in, though. These can be addressed afterwards.
It's currently Friday afternoon where I am so I've run out of time for the week. However, I plan on getting this PR updated early next week so that this can be reviewed again.


Archive related question and activating Year, Month and Day...

Hello,
I am newbie in web development and I am trying to learn jekyll and to build a personal site for myself.I have had some experience with ruby and am comfortable with ruby ecosystem. I have read all jekyll and minimal-mistakes theme documentation. On the other hand, I have difficulty in implementing several things in my website, specifically I can not get archives working for year, month and day. I have been stuck at year, to which all others depend upon.  I have also have problem with the home and blogging url but I will ask this in another issue...
My main menu currently is as below. I want root / to be my splash screen (if possible, I would like to show latest several blogs on it), but in general I want all my blogs to be accesible via url /blog.  I want all the archives to be accessible through /archives/  like /archives/categories, /archives/tags/, /archives/year, /archives/year/month, /archive/year/month/day, to save horizontal space at the top.  From the issues of minimal-mistakes, I have learned that embedded menus like archives>categories etc. are not possible. So I have made a separate page for /archives/ which provides links to categories, tags and years (for now) on it.
main:
  - title: "About Me"
    url: /about/
  - title: "Blog"
    url: /blog/
  - title: "Archives"
    url: /archives/

I have blindly applied following in _config without understanding internals.
# jekyll archieve related settings
category_archive:
  type: jekyll-archives
  path: /archives/categories/
tag_archive:
  type: jekyll-archives
  path: /archives/tags/
year_archive:
  type: jekyll-archives
  path: /archives/years/
jekyll-archives:
  enabled:
    - categories
    - tags
    - years
  layouts:
    category: 'archive-taxonomy'
    tag:      'archive-taxonomy'
    year:     'archive-taxonomy'
  permalinks:
    category: '/archives/categories/:name/'
    tag:      '/archives/tags/:name/'
    year:     '/archives/years/:name/'

To the best of my understanding, I need to create there pages for /archives/categories, /archives/tags and /archives/years, and I created them based on the sample provided in minimal-mistakes web site.
The settings for archiving of categories and tags work regardless of the existence of jekyll-archive plugin (which is mentioned at the documentation because of liquid). However year is not working.
I also created pages for single category, tag and year.  The files for years, single year are presented below, which they show nothing when accessed.
I am planning to use asciidoc so I have not been able to convert all files to asciidoc yet for this question only /archives/ page is in asciidoc and it is working.
***********************
archive.adoc
= Site Archive
:page-layout: single
:page-permalink: /archives/

* link:/archives/categories[Posts by Categories]
* link:/archives/tags[Posts by Tags]
* link:/archives/years[Posts by Years]
**********************
archive-years.md
---
title: "Years"
layout: archive
permalink: /archives/years/
---
*********************
archive-single-year.md*
---
title: "Years"
layout: archive
permalink: /archives/years/
---
***********************
(These files conforms what you have provided in the documentation, and they are working)
archive-categories.md
archive-single-category.md
archive-single-tag.md
archive-tags.md

I  appreciate any help..

Hello,
Year archive has started to work with following _config setting and chaging the layout to posts in archive-years.md file. Could you please identify how to handle month and days if possible...
category_archive:
  type: jekyll-archives
  path: /archives/categories/
tag_archive:
  type: jekyll-archives
  path: /archives/tags/
year_archive:
  type: jekyll-archives
  path: /archives/years/
jekyll-archives:
  enabled:
    - categories
    - tags
    - years
  layouts:
    category: 'category'
    tag:      'tag'
    year:     'posts'
  permalinks:
    category: '/archives/categories/:name/'
    tag:      '/archives/tags/:name/'
    year:     '/archives/years/:name/'

---
archive-years.md
title: "Years"
layout: posts
permalink: /archives/years/
---

Not sure it’s possible to months and days without customize the included layouts. I’ve only built layouts to do taxonomies (category/tag), collections, and posts by year.
You’ll want to consult jekyll-archives documentation and sample code to see what modifications you’d need to make for months/days.

Hello,
Thank you for the response...Even though I have read the full theme  and jekyll-archive documentation truly , maybe because my inadequate level of knowledge, I have not been able to get categories, tags and years archieve working with jekyll-archive.
I create a new site, quit using jekyll-archive, just depending on liquid with updated, following settings, now categories, tags and year archives are working.
more _data/navigation.yml
main:
  - title: "About Me"
    url: /about/
  - title: "Blog"
    url: /blog/
  - title: "Categories"
    url: /categories/
  - title: "Tags"
    url: /tags/
  - title: "Years"
    url: /years/

Relevant settings in _config.yml
category_archive:
  type: liquid
  path: /categories/
tag_archive:
  type: liquid
  path: /tags/
year_archive:
  type: liquid
  path: /years/

Relevant files
more _pages/posts-by-category.adoc
= Posts by Category
:page-layout: categories
:page-permalink: /categories/

more _pages/posts-by-tag.adoc
= Posts by Tags
:page-layout: tags
:page-permalink: /tags/

more _pages/posts-by-year.adoc
= Years
:page-layout: posts
:page-permalink: /years/

However I believe that the documentation must be improved with following points for the novice.

Which archive functions  are supported of out the box?  (You stated here that, month, days are not supported, which is not stated clearly in the documentation)
The correct settings for the default/liquid  as well as jekyll-archive for categories, tags and years...(categories, tags are provided, years are not) Someone has to dig that. For example, there are corresponding layouts for categories and tags but not for years.
Explicit statements and sample files that must be created by the user when using jekyll-archive, liquid etc.
The sample files for edge-cases are misleading for novice people for me...They should be either removed and enhanced with sample layouts.

Thank you again for this nice theme and great work.

Hello, because of mostly multi language issues, I have decided to change platform. I have switched to Hugo. Thank you for the beautiful theme and the support...


Opening diffview crashes on the second time

Description
Opening diffview a second time causes crash
E5108: Error executing lua ...share/nvim/lazy/plenary.nvim/lua/plenary/async/async.lua:18: The coroutine failed with this message: ....local/share/nvim/lazy/di
ffview.nvim/lua/diffview/hl.lua:373: attempt to call field 'get_icon' (a nil value)
stack traceback:
        [C]: in function 'error'
        ...share/nvim/lazy/plenary.nvim/lua/plenary/async/async.lua:18: in function 'callback_or_next'
        ...share/nvim/lazy/plenary.nvim/lua/plenary/async/async.lua:45: in function 'step'
        ...share/nvim/lazy/plenary.nvim/lua/plenary/async/async.lua:48: in function 'execute'
        ...share/nvim/lazy/plenary.nvim/lua/plenary/async/async.lua:118: in function 'callback'
        ...cal/share/nvim/lazy/neogit/lua/neogit/lib/popup/init.lua:588: in function 'cb'
        .../.local/share/nvim/lazy/neogit/lua/neogit/lib/buffer.lua:450: in function <.../.local/share/nvim/lazy/neogit/lua/neogit/lib/buffer.lua:449>
        ...are/nvim/lazy/neogit/lua/neogit/lib/mappings_manager.lua:14: in function 'invoke'
        [string ":lua"]:1: in main chunk

This error is with the minimal config below. If I install additional plugins then the problem disappears (haven't figured out which ones)
Neovim version
master

commit 3be926866a6fdee86f53c13455c9b106f85ca3dc (HEAD -> master, origin/master)
Merge: ab59d5dd 07d36edd
Author: Cameron<EMAIL_ADDRESS>Date:   Fri Nov 24 10:01:13 2023 +0100

    Merge pull request #966 from NeogitOrg/escape-filepaths-before-opening

Operating system and version
linux
Steps to reproduce

go to logs, select range press 'd' to open diffview
close diffview (q)
. go to logs, select range press 'd' to open diffview

crash (error msg above)
Expected behavior
diffview opens
Actual behavior
crash (error msg above)
Minimal config
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
	vim.fn.system({
		"git",
		"clone",
		"--filter=blob:none",
		"https://github.com/folke/lazy.nvim.git",
		"--branch=stable",
		lazypath,
	})
end
vim.opt.rtp:prepend(lazypath)

require("lazy").setup({
	{ "NeogitOrg/neogit", config = true, dependencies = {"sindrets/diffview.nvim"} },
	"nvim-lua/plenary.nvim",
})

The problem disappears when I comment out this line: https://github.com/NeogitOrg/neogit/blob/3be926866a6fdee86f53c13455c9b106f85ca3dc/lua/neogit/integrations/diffview.lua#L31

Should be fixed now.


Generate NAIP mosaic JSON for multiple years

I.e. one for 2012, 2013; one for 2014, 2015

Fixed in https://github.com/kylebarron/naip-lambda


Support passing a limit to get_records

The default limit I think is pretty high. 10MB of data. I would like to be able to fetch less records, and checkpoint more often. That way if there is a failure in my record processing I can restart further into the stream.

There's a setting for how many records to checkpoint after -
client.set_checkpoint_interval(n)

does it help?


Set up CI build

run sbt test on

main project
simple example
play example

That should catch bugs like #3
Should be quite trivial using travis, not sure how to make sure elm is installed

don't think so
this one for example combines a main haskell build with a elm install
https://github.com/deadfoxygrandpa/elm-test/blob/master/.travis.yml
We could do the same with a main scala build


[bug] ERROR: Expected identifier but found "import"

Describe the bug
First time trying Tauri and there is a problem with the basic app it seems like:
failed to load config from /tmp/tauri-app/vite.config.ts
error when starting dev server:
Error: Build failed with 3 errors:
(define name):1:0: ERROR: Expected identifier but found "import"
(define name):1:0: ERROR: Expected identifier but found "import"
(define name):1:0: ERROR: Expected identifier but found "import"
Reproduction
/tmp ❯ sh <(curl https://create.tauri.app/sh)
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100 16121  100 16121    0     0   136k      0 --:--:-- --:--:-- --:--:--  138k
info: downloading create-tauri-app
✔ Project name · tauri-app
✔ Identifier · com.tauri-app.app
✔ Choose which language to use for your frontend · TypeScript / JavaScript - (pnpm, yarn, npm, deno, bun)
✔ Choose your package manager · deno
✔ Choose your UI template · Vanilla
✔ Choose your UI flavor · TypeScript
Template created! To get started run:
cd tauri-app
deno install
deno task tauri android init
For Desktop development, run:
deno task tauri dev
For Android development, run:
deno task tauri android dev
/tmp took 9s ❯ cd tauri-app
/tmp/tauri-app via  v20.11.1 ❯ deno install
/tmp/tauri-app via  v20.11.1 ❯ deno task tauri dev
Task tauri tauri "dev"
Running BeforeDevCommand (deno task dev)
Task dev vite
✘ [ERROR] Expected identifier but found "import"
(define name):1:0:
  1 │ import.meta.dirname
    ╵ ~~~~~~

✘ [ERROR] Expected identifier but found "import"
(define name):1:0:
  1 │ import.meta.filename
    ╵ ~~~~~~

✘ [ERROR] Expected identifier but found "import"
(define name):1:0:
  1 │ import.meta.url
    ╵ ~~~~~~

failed to load config from /tmp/tauri-app/vite.config.ts
error when starting dev server:
Error: Build failed with 3 errors:
(define name):1:0: ERROR: Expected identifier but found "import"
(define name):1:0: ERROR: Expected identifier but found "import"
(define name):1:0: ERROR: Expected identifier but found "import"
at failureErrorWithLog (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:1476:15)
at file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:945:25
at runOnEndCallbacks (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:1316:45)
at buildResponseToResult (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:943:7)
at file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:970:16
at responseCallbacks. (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:622:9)
at handleIncomingPacket (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:677:12)
at Readable.readFromStdout (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:600:7)
at Readable.emit (ext:deno_node/_events.mjs:393:28)
at addChunk (ext:deno_node/_stream.mjs:2438:16)
Error The "beforeDevCommand" terminated with a non-zero status code.
Expected behavior
That starter app runs on localhost
Full tauri info output
/tmp ❯ sh <(curl https://create.tauri.app/sh)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16121  100 16121    0     0   136k      0 --:--:-- --:--:-- --:--:--  138k
info: downloading create-tauri-app
✔ Project name · tauri-app
✔ Identifier · com.tauri-app.app
✔ Choose which language to use for your frontend · TypeScript / JavaScript - (pnpm, yarn, npm, deno, bun)
✔ Choose your package manager · deno
✔ Choose your UI template · Vanilla
✔ Choose your UI flavor · TypeScript

Template created! To get started run:
  cd tauri-app
  deno install
  deno task tauri android init

For Desktop development, run:
  deno task tauri dev

For Android development, run:
  deno task tauri android dev

/tmp took 9s ❯ cd tauri-app
/tmp/tauri-app via  v20.11.1 ❯ deno install
/tmp/tauri-app via  v20.11.1 ❯ deno task tauri dev
Task tauri tauri "dev"
    Running BeforeDevCommand (`deno task dev`)
Task dev vite
✘ [ERROR] Expected identifier but found "import"

    (define name):1:0:
      1 │ import.meta.dirname
        ╵ ~~~~~~

✘ [ERROR] Expected identifier but found "import"

    (define name):1:0:
      1 │ import.meta.filename
        ╵ ~~~~~~

✘ [ERROR] Expected identifier but found "import"

    (define name):1:0:
      1 │ import.meta.url
        ╵ ~~~~~~

failed to load config from /tmp/tauri-app/vite.config.ts
error when starting dev server:
Error: Build failed with 3 errors:
(define name):1:0: ERROR: Expected identifier but found "import"
(define name):1:0: ERROR: Expected identifier but found "import"
(define name):1:0: ERROR: Expected identifier but found "import"
    at failureErrorWithLog (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:1476:15)
    at file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:945:25
    at runOnEndCallbacks (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:1316:45)
    at buildResponseToResult (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:943:7)
    at file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:970:16
    at responseCallbacks.<computed> (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:622:9)
    at handleIncomingPacket (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:677:12)
    at Readable.readFromStdout (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:600:7)
    at Readable.emit (ext:deno_node/_events.mjs:393:28)
    at addChunk (ext:deno_node/_stream.mjs:2438:16)
    Error The "beforeDevCommand" terminated with a non-zero status code.

Stack trace
/tmp ❯ sh <(curl https://create.tauri.app/sh)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 16121  100 16121    0     0   136k      0 --:--:-- --:--:-- --:--:--  138k
info: downloading create-tauri-app
✔ Project name · tauri-app
✔ Identifier · com.tauri-app.app
✔ Choose which language to use for your frontend · TypeScript / JavaScript - (pnpm, yarn, npm, deno, bun)
✔ Choose your package manager · deno
✔ Choose your UI template · Vanilla
✔ Choose your UI flavor · TypeScript

Template created! To get started run:
  cd tauri-app
  deno install
  deno task tauri android init

For Desktop development, run:
  deno task tauri dev

For Android development, run:
  deno task tauri android dev

/tmp took 9s ❯ cd tauri-app
/tmp/tauri-app via  v20.11.1 ❯ deno install
/tmp/tauri-app via  v20.11.1 ❯ deno task tauri dev
Task tauri tauri "dev"
    Running BeforeDevCommand (`deno task dev`)
Task dev vite
✘ [ERROR] Expected identifier but found "import"

    (define name):1:0:
      1 │ import.meta.dirname
        ╵ ~~~~~~

✘ [ERROR] Expected identifier but found "import"

    (define name):1:0:
      1 │ import.meta.filename
        ╵ ~~~~~~

✘ [ERROR] Expected identifier but found "import"

    (define name):1:0:
      1 │ import.meta.url
        ╵ ~~~~~~

failed to load config from /tmp/tauri-app/vite.config.ts
error when starting dev server:
Error: Build failed with 3 errors:
(define name):1:0: ERROR: Expected identifier but found "import"
(define name):1:0: ERROR: Expected identifier but found "import"
(define name):1:0: ERROR: Expected identifier but found "import"
    at failureErrorWithLog (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:1476:15)
    at file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:945:25
    at runOnEndCallbacks (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:1316:45)
    at buildResponseToResult (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:943:7)
    at file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:970:16
    at responseCallbacks.<computed> (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:622:9)
    at handleIncomingPacket (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:677:12)
    at Readable.readFromStdout (file:///tmp/tauri-app/node_modules/.deno/esbuild@0.24.1/node_modules/esbuild/lib/main.js:600:7)
    at Readable.emit (ext:deno_node/_events.mjs:393:28)
    at addChunk (ext:deno_node/_stream.mjs:2438:16)
    Error The "beforeDevCommand" terminated with a non-zero status code.

Additional context
No response

It is an issue with Vite 6, I fixed it by downgrading the dependency to<EMAIL_ADDRESS>

I'm also having the same issue

should be fixed in vite 6.0.5


polymer-build breaks the app-storage/app-indexeddb-mirror element

Description
polymer-build breaks the app-storage/app-indexeddb-mirror element.
Versions & Environment

polymer-build: v0.13.0
node: v6.3.0
Operating System: OS X

Steps to Reproduce
git clone https://github.com/GDGSpain/gdg.es.git

npm install && bower install

gulp polymer-build

polymer serve build/bundled

Open the localhost:8080/groups page.
Expected Results

Achieved with the polymer serve.
Actual Results

Closing and old issue.


Gh-pages-publish repository parameter

Hi,
I got a problem when I tested some features of library-starter.  Problem is in this line in file tools/gh-page-publish.js:
let repository = url.parse(pkg.repository)
But config file contains a little bit different node:
  "repository": {     "type": "git",     "url": "https://someurlhere.git"   }
So maybe we should parse pkg.repository.url? Or i miss something during installation process :(

Hi @Leefrost, you're totally right about this!
A good thing, could be to check whether pkg.repository is a string or an object, since the repository key can be written in a shorthand way (just the string).
Would you be able to make a PR for this?

Hi @alexjoverm! Here is my pull request

Closed as per #44, thanks a lot!


Sync main branch

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.3 out of 6 committers have signed the CLA.:white_check_mark: nisan-abeywickrama:white_check_mark: lasanthaS:white_check_mark: Lakith-Rambukkanage:x: tgtshanika:x: chamilaadhi:x: wso2-jenkins-botYou have signed the CLA already but the status is still pending? Let us recheck it.


Create a common entry point for named formulas and UDFs

In power apps, named formulas and UDFs will coexist in App.Formulas and we need a common entry point to parse both in one go.
Added a new API to ErrorContainer that ensures token has at most a single error.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

UDFs support doesn't work yet and is not ready for consumption in PA. for example, it doesn't give errors properly and it's easy to crash the parser   - See #942

We will need to clean this up. It won't be enabled for consumption yet until it's ready.

In reply to:<PHONE_NUMBER>

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.

✅ No public API change.


Bug: Instead of re-using scrolloff, let's have an specific option

People often use high values for scrolloff to keep the mouse in the midle of the screen. This provoke telescope-undo.nvim to always show the first line of the buffer.
There is really no reason to re-use this option instead of having our own.

See the config value diff_context_lines as shown in the README, scrolloff is just the default.


Knife-Thrower

PR Description 📜
Please include summary related to the issue you have fixed and describe your PR in brief over here by specifying the issue number on which you were working below
Fixes # (https://github.com/kunjgit/GameZone/issues/3216#issue-2291730652)
I have added a new game "Knife-Thrower" and in this game the user has to click on the knife and it will go to the board , if two knives collapse the game will end. It has 4 different levels and each level has different strategy. If a player loses a level it will automatically goto the first level.It has 4 levels and after clearing 1 level only the user can go to another level.
There will only be particular number of knives and it will decrease on each throw.
It will look as follow.

Mark the task you have completed ✅

[x] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[x ] I have performed a self-review of my own code or work.
[x ] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[ x] I have added screenshot for website preview in assets/images
[x ] I have added entries for my game in main README.md
[x ] I have added README.md in my folder
[ x] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

Thank you @sharmi4590 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

Hey @sharmi4590,
Please make sure to link the relevant issue using the appropriate syntax, such as "#issueNumber" 👀.
Follow the proper guideline and make a new PR again 😀.
Happy Hacking 💗

Thank you  @sharmi4590 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


PR: Add matplotlib state to status bar

Description of Changes
Includes : https://github.com/spyder-ide/spyder-kernels/pull/257

[x] Wrote at least one-line docstrings (for any new functions)
[x] Added unit test(s) covering the changes (if testable)

[x] Included a screenshot or animation (if affecting the UI, see Licecap)

Add matplotlib state to status bar and allows switching between inline and interactive by clicking the status bar.
Issue(s) Resolved

Fixes #
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct:

Hello @impact27! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file external-deps/spyder-kernels/spyder_kernels/console/kernel.py:

Line 44:80: E501 line too long (80 > 79 characters)

Thanks @impact27 for addressing my review! I fixed some minor issues I found when testing your PR locally. Besides that, I think nothing else is needed here. So, after our tests pass, I'll merge it.


refactor: Added .gitignore and rewrote .gitignore

close #53

I missed CONTRIBUTING.md, so I close this pullrequest...


call to exit() in desock.c::accept()

When trying to use redis with desock I ran into an issue where redis would exit right after it receives any input in STDIN, using gdb I found out that this is due to the exit(0) call in desock.c::accept(). Now, when I comment out line 216 and 217 everything works as expected.
I see that this was added with this commit, any reason why redis behaves this way?

I think it's to handle the following case:
while (1)
{
    int fd = accept();
    int pid = fork();
    if (pid) { close(fd); wait(pid); }
    else { handle_request(fd); }
}

If we desock the program, we probably want to only handle one request (at least, this has been my use-case so far), hence the exit on the second accept.
I'm all for having that controlled by an environment variable, though!

That use case makes a lot of sense. However, I imagine a lot of people (myself included) are using this on servers that offload the request to a thread pool or use nonblocking I/O to accept a large number of concurrent connections. I'm using desock on nginx, and it exits before the first request can be serviced.
Should this be the default behavior? Wouldn't it be better to have an optional env var to enable this on applications that only service one request at a time?

My commit dd96c133f6651380e6204f01c70d36d51af7e73a moves the exit call from accept to close/shutdown, so this should fix the issue.


Treating Azure OpenAI Deployments as resources

With the AOAI integration we can add a service resource into the AppHost like so:
var openai = builder.AddAzureOpenAI("openai")
                    .AddDeployment(new("gpt-35-turbo", "gpt-35-turbo", "0613"));

builder.AddProject<Projects.OpenAIEndToEnd_WebStory>("webstory")
       .WithReference(openai);

But within our client project we're going to need to know the name of the deployment to invoke it in the SDK:
    private ChatCompletionsOptions chatCompletionOptions = new ChatCompletionsOptions()
    {
        DeploymentName = "gpt-35-turbo",
        Messages =
        {
            new ChatRequestSystemMessage("Pick a random topic and write a sentence of a fictional story about it.")
        }
    };

Since the name of the deployment is any arbitrary string there's the possibility of it being miskeyed in the client application. My workaround approach to this is to have code like so:
.AddDeployment(new(builder.Configuration["Azure:AI:ChatDeploymentName"] ?? "gpt-4", "gpt-4", "1106"))

Where I use the config or fallback to a known default, but I then need to ensure that the config value is passed to the client using WithEnvironment.
It'd be convenient if there was a way that the deployment names were flowed into the client application, either allowing them to be created as parameters with AddParameter (and then passing that into the AzureOpenAIDeployment constructor) or when the AzureOpenAIResource` is passed to the projects as a resource the deployment info is also passed (probably as a different environment variable) - although the discovery of this could be challenging and it'd fall down if you're using a connection string for local dev like this:
var ai = builder.ExecutionContext.IsPublishMode ?
    builder.AddAzureOpenAI(ServiceNames.AzureOpenAI)
        .AddDeployment(new(builder.Configuration["Azure:AI:ChatDeploymentName"] ?? "gpt-4", "gpt-4", "1106"))
        .AddDeployment(new(builder.Configuration["Azure:AI:EmbeddingDeploymentName"] ?? "text-embedding-ada-002", "text-embedding-ada-002", "2")) :
    builder.AddConnectionString(ServiceNames.AzureOpenAI);

Since in this scenario the deployment info isn't available until provisioning happens.

Looping in @tg-msft.
This is one of the areas where having "deep linked connection strings" are really helpful. When you define a database resource via Aspire like the following:
var builder = DistributedApplication.CreateBuilder(args);
var sqldb = builder.AddSqlServer("sql").AddDatabase("sqldb");
builder.AddProject<Projects.MyApp>("myapp")
       .WithReference(sqldb);

The connection string ConnectionStrings__sqldb will end up being "deep" in that it connects directly to the database, and the SqlConnection we inject ends up being pre-wired to the database.
With Open AI this isn't the case. We get a connection to the cog services account, but the deployment name and all other connection information is something that the developer needs to plumb through themselves. Aaron illustrates how this creates extra work because he is trying to come up with a creative way of defining the deployment name once and plumbing it through.
I'm a big proponent of two things:

Providing a single string that can be used to connect to a resource, and in the case where you need a child resource to actually do anything useful, identifiers for that should be on the connection string.
When the connection string is consumed, a resource should be injected into DI that is pre configured to point to that deeply linked location.

In the case of Azure Open AI I would like to see a connection string format defined that:

Specifies the endpoint
Specifies the deployment name
Specifies the authentication method
(optional) key if managed identity isn't used.

Then I would like to see an OpenAIDeploymentClient which is preconfigured to talk to a particular deployment.

Glad you raised this @aaronpowell ... I was writing up an example of how you could plumb through the deployment name and found a bug. Fixing that now and will share a snippet of code with you in a sec.

OK here is a code sample that I put together as part of this bug fix: #3092
var openai = builder.AddAzureOpenAI("openai", (_, _, _, deployments) => {
    var deployment = deployments.Single();
    deployment.AddOutput("modelName", x => x.Name);
}).AddDeployment(new("gpt-35-turbo", "gpt-35-turbo", "0613"));

builder.AddProject<Projects.OpenAIEndToEnd_WebStory>("webstory")
       .WithReference(openai)
       .WithEnvironment("OpenAI__DeploymentName", openai.GetOutput("modelName"));

That's an interesting idea, using the outputs in that manner. I wonder if there's a way that we could automatically wire up the outputs across the pipeline

My idea was silly and unncessary, just do this:
var deploymentAndModelName = "gpt-35-turbo";
var openai = builder.AddAzureOpenAI("openai").AddDeployment(
    new(deploymentAndModelName, deploymentAndModelName, "0613")
    );

builder.AddProject<Projects.OpenAIEndToEnd_WebStory>("webstory")
       .WithReference(openai)
       .WithEnvironment("OpenAI__DeploymentName", deploymentAndModelName);

One of the benefits of Aspire is you can use plain old C# :)

Proposing we close this if you are happy @aaronpowell

While yes, that approach solves the problem (it's essentially what I do), I wonder if it can't be done is a more automatic manner. After all, you know that the deployments are going to be needed, or is there a concern about exposing info that isn't needed (say providing a deployment that isn't used by a particular service)?
I'm trying to think of other resources where you might want to bring in some additional data in this manner but I am struggling a bit to think of any, maybe it's best to leave AOAI as an outlayer.

@mitchdenny could you have a WithReference overload and add them both in there, so that the reference gets the deployment automatically without more code?

I think that gets messy pretty quickly. What if you have two OpenAI accounts both with the same deployment name. The variable that you inject for the deployment name now needs to include the OpenAI account resource name to make sure there isn't a conflict.
Then you have to consider the consuming side, how do they know what the configuration name is?
Lets imagine that AddDeployment didn't just flow through AzureOpenAIResource builder, and instead returned a deployment builder:
var builder = DistributedApplication.CreateBuilder(args);
var aoai = builder.AddAzureOpenAI("openai").AddDeployment("foo", ...);
var app = builder.AddProject<Projects.MyApp>("app")
                 .WithReference(aoai);

... the problem you are going to have is on the consumption side. How does the developer know what environment variable to get the deployment name out of. The AzureOpenAIClient doesn't allow you to create a client based on the deployment name, that is something you pass into chat completion options.
We've moved from a problem of the developer having to do something themselves to a developer having to guess what environment variable we stashed this key piece of data in.
The way to tackle these kinds of issues is go upstream and talk to the AI team about providing a connection string format that includes the deployment name, and having some kind of client that can have a pre-filled deployment name.
I suspect that horse has bolted though.

The way to tackle these kinds of issues is go upstream and talk to the AI team about providing a connection string format that includes the deployment name, and having some kind of client that can have a pre-filled deployment name.

Problem with that is that the client is agnostic of the model, model is specified per-request, since the client is really just a typed HttpClient.

I thought I'd bring this back up as there's been a bunch of changes in the space since April when it was last discussed.
New developments
In the Ollama integration for the Community Toolkit we've gone with the approach that the model is a resource, meaning you can provide the model resource rather than the Ollama resource as the reference:
var ollama = builder.AddOllama("ollama");

var phi35 = ollama.AddModel("phi3.5");

var exampleProject = builder.AddProject<Projects.ExampleProject>()
                            .WithReference(phi35);

This means that the client can get the right model without having to provide the connection name, ollama, and also the model name, phi3.5.
Going back to AOAI, with the new SDK when you request a ChatClient you provide the name of the AOAI deployment that you want to have the client for:
AzureOpenAIClient azureClient = new(
    new Uri("https://your-azure-openai-resource.com"),
    new DefaultAzureCredential());
ChatClient chatClient = azureClient.GetChatClient("my-gpt-4o-mini-deployment");

Via our docs. This is also the case with MEAI:
IChatClient client =
    new AzureOpenAIClient(
        new Uri(Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")),
        new DefaultAzureCredential())
            .AsChatClient(modelId: "gpt-4o-mini");

Aspire + AOAI
Presently, the AddDeployment method takes a AzureOpenAIDeployment which isn't a Resource type (and thus not returned), but let's propose a new API like so:
var aoai = builder.AddAzureOpenAI("aoai");
IResourceBuilder<AzureOpenAIDeploymentResource> gpt4o = aoai.AddDeploymentResource("gpt-4o");

builder.AddProject<Projects.Example>("api").WithReference(gpt4o);

Maybe the AddDeploymentResource would take in the AzureOpenAIDeployment type so you could get full configuration, maybe there'd be some defaults, that would have to be fleshed out. But the main thing that the AzureOpenAIDeploymentResource would do is provide a connection string with the endpoint/auth (from the parent) + DeploymentName=<deployment name>.
Then within our client app we would do:
builder.AddAzureOpenAIChatClient("gpt-4o");

This would register a ChatClient rather than (or in addition to) the OpenAIClient, and since it's using the connection name gpt-4o it would know to set that as the deploymentName by looking at the connection string of the AzureOpenAIDeploymentResource.
We could even adapt this same pattern to support MEAI and GitHub models.
For deployments, this wouldn't have any impact (from what I can gather) since the underlying types we have to create the AOAI resouce + deployments would still be leveraged, it really just comes down to the DX of working with deployments in AOAI.
And with development, the pattern of using a connection string could still be applied:
var gpt4o = builder.ExecutionContext.IsPublishMode
    ? builder.AddAzureOpenAI("aoai").AddDeployment("gpt-4o");
    : builder.AddConnectionString("gpt-4o");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(gpt4o);

Working with multiple deployments on the same AOAI resource would look a little more verbose though:
IResourceBuilder<IResourceWithConnectionString>? chat;
IResourceBuilder<IResourceWithConnectionString>? embedding;

if (builder.ExecutionContext.IsPublishMode) {
    var aoai = builder.AddAzureOpenAI("aoai");
    chat = aoai.AddDeploymentResource("gpt-4o");
    embedding = aoai.AddDeploymentResource("ada-002");
} else {
    chat = builder.AddConnectionString("chat");
    embedding = builder.AddConnectionString("embedding");
}

builder.AddProject<Projects.ExampleProject>()
       .WithReference(chat)
       .WithReference(embedding);


Resources shared per priority blocks

Dear all,
PdmV would like to check whether it is possible to get resources for lower blocks at a fixed minimal threshold whenever there is work pressure. This would imply the necessity of identification of the full pool of resources and then splitting them at some % of the total available.
Imagine that the full pool is 200k cores (or whatever that might be plus the opportunistic). In short, we could derive a rule of association between the number of cores and the priority block (or the raw number). Let's say:

Block 1 (>= 110k): 45% of 200k
Block 2 (>=90k & <110k): 20% of the 200k
Block 3: 15% of the 200k
Block 4: 10% of the 200k
Block 5: 5 % of the 200k
Block 6: 5% of the 200k

If any block is empty (no work pressure), we add half of the block provisioned resources to blocks 1 and 2.
The idea behind this is to avoid a workflow "getting lost" in a low block as we have for block 4 (currently used to allocate the preLegacy requests) at this time. Therefore, the system could care more about the whole picture of the pressure instead of relying on prioritization mode only.
Please, let us know if this is suitable at all or if it makes sense.
Thanks,
Jordan

Hi @jordan-martins , thanks for creating this issue.
Even though this is an interesting thought, resource partitioning is a problem that we have been avoiding and not depending on for the past many years. From my experience, it usually gives more problems than benefits, and make a study/debugging of the system very hard.
IF we wanted to make sure extreme low priority requests would run in a not-so-long future, I'd then deal with this in a different approach. Either by:
a) changing the McM priority boost algorithm (instead of weekly liner boosts, perhaps a quadratic function like (N*10)^2 (N being the agent of the request in weeks), which would bring 80k prio requests up to 116k in 5 months?
b) or "reserving" one of two sites for low priority work, meaning those would not be used for any other requests in the system.
Please let me know your thoughts. @haozturk might have some input on this as well.

@jordan-martins Jordan, there has been discussions here and there on how we can efficiently use grid resources, especially disk (with input and output data locked). Providing such fragmentation of the pool would actually increase the number of workflows running at any given time, thus also increase the disk requirements overall.
Without speculating too much, the idea would to actually get workflows in and out of the system as soon as possible, hence giving a more reliable and faster turnaround, in addition to unlocking data from disk in a shorter time window.


Cannot read mounted volumes as any user other than root

I am creating and running an image with nerdctl compose, using a simple "volumes" line in the compose file. I am running nerdctl inside lima-vm on MacOS using default configuration.
# excerpt from sample compose.yaml
services:
  my_container:
    build: .
    volumes:
      - ./files:/files

When I get into the container's shell, I can see the mounted volume as expected:
> lima nerdctl compose up -d
> lima nerdctl exec -it my_app_my_container_1 bash
>> ls -la /
...
drwxr-xr-x   2 root   root    4096 Sep  2 00:00 lib64
drwxr-xr-x   1 nobody nogroup  256 Sep 15 13:29 files   # <--- my shared volume
drwxr-xr-x   2 root   root    4096 Sep  2 00:00 media
...

In my case, I'm running into the issue trying to run apache in a container. However, no user other than root seems to be able to "see" that volume.
>> su -s /bin/bash www-data
>>> ls -la /
...
drwxr-xr-x   2 root   root    4096 Sep  2 00:00 lib64
d?????????   ? ?      ?          ?            ? files   # <--- what does this mean?
drwxr-xr-x   2 root   root    4096 Sep  2 00:00 media
...

Is this just something I've fouled up in my own configuration? Or is there some other way volumes should be defined when using nerdctl compose?

Duplicate of https://github.com/lima-vm/lima/issues/232
Being fixed in https://github.com/lima-vm/lima/pull/247


Completely sync with h-encore 2.0

was working on soarqin/finalhe#44 and found memcore is not fully h-encore 2.0 ported, so I did some effort to make this.

Sorry but your commit remove some changes I had made (I havent only changed offsets). So I will rebase from hencore 2.0 myself. Thanks.
If you want, look the commits I did on my repo (in branches) and you will see the issues with your commit.

I have not removed any changes from your codes except restoring payload decompression from henkaku 2.0

@CelesteBlue-dev I have created a new patch upon h-encore 2.0, with the same codes in this PR, showing that I did retain all needed offset patches:
https://github.com/soarqin/h-encore/commit/82f1bda7d3c394385fc0ae13a196ba60ca7fa080
If you pull newest master codes from h-encore, I can submit it as a new PR

The issue with your commit is that we must not use deflate anymore. I have removed it not without reason.

The issue with your commit is that we must not use deflate anymore. I have removed it not without reason.

I don't see any defect on using deflate, although it only saves several hundred bytes space.
But keeping it is good for following h-encore's code changes in future.

using deflate -> more gadgets = more code + more offsets + bigger ROP (more unstability) + longer runtime + longer compilation + non ability to port to lower fws (what is the BEST REASON to get rid of deflate)

okay, so I force pushed a new commit: https://github.com/soarqin/h-encore/commit/6b071c1dea76ad3145ec29c4b2c8a9d6a2e34b07
which also uses non-deflate asm codes from original memecore, applies only h-encore payload/bootstrap changes


fix: temporarily disable google/cloud/storagetransfer on macOS

See https://github.com/googleapis/google-cloud-cpp/issues/8785 about a name clash on UID_MAX from <sys/syslimits.h>.

This change is

The commit message for breaking changes should be tagged as fix!: shrug

Ack.


Move many udf implementations from invoke to invoke_batch

Which issue does this PR close?

As part of https://github.com/apache/datafusion/issues/13238 invoke was replaced with invoke_batch.

Closes https://github.com/apache/datafusion/issues/13516
Closes https://github.com/apache/datafusion/pull/13507

Rationale for this change
This will allow the removal of invoke. And maybe if we are quick we can rename invoke_with_args back to invoke.

What changes are included in this PR?
This PR moves function definitions over to use invoke_batch, so invoke can be removed.

Are these changes tested?

Are there any user-facing changes?

Here is what I suggest we do with this PR:

Remove the change for https://github.com/apache/datafusion/pull/13507 (let's do that in a separate PR)
Fix up the regressions introduced (where batch_size --> 1)

Then merge this one in.
If you have more time @joseph-isaacs  it would be even better to change this PR so all the functions used ScalarFunctionArgs but I realize that is asking quite a bit

I would have liked to move over to invoke_with_args, however its quite a bit more of an undertaking. Possibly in the future I can try

I would have liked to move over to invoke_with_args, however its quite a bit more of an undertaking. Possibly in the future I can try

Makes sense

I think there was a transient failure

I think there was a transient failure

I retriggered the tests

Thanks @joseph-isaacs @alamb

🙏 thank you -- we are making progresss


[Feature] Public Chat System

Description
What do you think about a public chat with Firebase authentication 🤔.
Please let me know if I am able to work on it or not. @rupali-codes @CBID2
GSSoC contributor
Screenshots
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I am willing to work on this issue (optional)
[X] I am a GSSoC'23 contributor

Why do we need a chat system?

A public chat system can enhance user engagement and collaboration. This website is a content-sharing website, users can discuss articles, videos, or other resources through the chat system, fostering a sense of community. 🤔🤔🤷♂🤷♂

A public chat system can enhance user engagement and collaboration. This website is a content-sharing website, users can discuss articles, videos, or other resources through the chat system, fostering a sense of community. 🤔🤔🤷♂🤷♂ @rupali-codes

I don't think so, also we have a  discord community for any kinda discussion. @CBID2 what do you say?

A public chat system can enhance user engagement and collaboration. This website is a content-sharing website, users can discuss articles, videos, or other resources through the chat system, fostering a sense of community. 🤔🤔🤷♂🤷♂ @rupali-codes

I don't think so, also we have a  discord community for any kinda discussion. @CBID2 what do you say?

I agree with @rupali-codes. People can just join the Discord community. With that being said , we're going to close this PR.


Support python 3 in the redmine downloader

The title said it all:  two lines had to be changed to run with python 3 (it should still work with 2.7)

@aurelien-naldi hi! Thanks for the pull request! Do you have any interest in becoming the maintainer of this code?

It turns out that the github part of the scripts can not be directly ported to python 3 as pygithub3 has a completely different API for python 3 than for python 2...
Thanks for the offer to maintain the project, but I don't think I will follow it for very long: for me like for most potential users (I imagine), it is a one shot operation only.

Yeah, I agree that it's a one shot operation. Good luck with your migration.


Add json ouput to crc console command

We probably should not add the clusterConfig block when the cluster does not exist:
$ ./out/linux-amd64/crc delete
$ ./out/linux-amd64/crc console -ojson
{
  "success": false,
  "error": "Machine 'crc' does not exist. Use 'crc start' to create it",
  "clusterConfig": {
    "webConsoleUrl": "",
    "url": "",
    "adminCredentials": {
      "username": "kubeadmin",
      "password": ""
    },
    "developerCredentials": {
      "username": "developer",
      "password": "developer"
    }
  }
}


Incorrect return value data-type with functions returning  qml.counts

Functions returning qml.counts() as the measurement process returns list instead of tuple of samples and counts.
Example:
@qjit()
@qml.qnode(qml.device(backend, wires=1, shots=1000))
def circuit(x):
    qml.RX(x, wires=0)
    return (qml.counts(), qml.state())

result = circuit(0.2)
assert isinstance(result, tuple) # PASS
assert isinstance(result[0], tuple) # FAIL
assert len(result) == 2 # FAIL as len(result) == 3

The PyTree work in #221 should fix this bug.


Add comparison code for structs and ctuples

Fixes #6438 and #6456
Requires/includes #6455

I've not had time to look at the implementation I'm afraid, but:
We definitely don't want to apply this to extern structs where:

We may not have visibility over all the contents of the struct,
In c++ mode there may already be an operator== and thus people may already be relying on the existing behaviour

(Sorry if you have covered this already, but it didn't look like it on a very quick skim)

It would really help me reviewing your PR if you provided informative commit comments to explain why you made a specific change. "Update file.py" is something I can see from the diff. "Change X to achieve Y" is something I cannot easily infer from the change.

I'm very new to Cython development so I often attempt multiple things before I settle on a solution.

I've not had time to look at the implementation I'm afraid, but:
We definitely don't want to apply this to extern structs where:

We may not have visibility over all the contents of the struct,

When is this the case?

We may not have visibility over all the contents of the struct,

When is this the case?

Because you don't have to tell Cython about everything in an extern struct. For example if you have a header file with
struct SomeStruct {
    int x;
};

it's fine to declare it to Cython as
cdef extern from "header.h":
    struct SomeStruct:
        pass

and just use in as an opaque type - you can pass it around to C functions, but not actually access its internals.
Alternatively you can just tell it about the fields that you plan to access from Cython.

cdef extern from "header.h":
    struct SomeStruct:
        pass

This seems to be broken in Cython already. For example:
cdef extern from "header.h":
    struct v:
        pass

cdef bint test(v a, v b):
    return a.x

..will result in broken C code.

In c++ mode there may already be an operator== and thus people may already be relying on the existing behaviour

Okay, it now avoids generate_struct_code if either struct has in_cpp set.

This seems to be broken in Cython already. For example:
cdef extern from "header.h":
    struct v:
        pass

cdef bint test(v a, v b):
    return a.x

..will result in broken C code.

No... that's not the point. You can't use attributes that Cython doesn't know about. However a lot of the time you don't want to use the attributes - you just want to pass the struct from an extern C function to another extern C function.

This seems to be broken in Cython already. For example:
cdef extern from "header.h":
    struct v:
        pass

cdef bint test(v a, v b):
    return a.x

..will result in broken C code.

No... that's not the point. You can't use attributes that Cython doesn't know about. However a lot of the time you don't want to use the attributes - you just want to pass the struct from an extern C function to another extern C function.

The point is that in this case, Cython automatically casts the struct to an empty dict instead throwing an error.


Fix markdown_render function

Fix markdown_render function that executing markdown javascript payload.
eg : [xss](javascript:window.onerror=alert;throw%20document.cookie)

[x] Your code is flake8 compliant (DefectDojo's code isn't currently flake8 compliant, but we're trying to correct that.)
[ ] If this is a new feature and not a bug fix, you've included the proper documentation in the ReadTheDocs documentation folder. https://github.com/DefectDojo/Documentation/tree/master/docs or provide feature documentation in the PR.
[ ] Model changes should include the necessary migrations in the dojo/dd_migrations folder.
[ ] Add applicable tests to the unit tests.

Thanks for the PR @dr3dd589!

wow. awesome job @dr3dd589 . I learnt new ideas from here. :+1:


Ensure that position does not change after printing barcode

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

9 of 9 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+4.6%) to 81.128%

Totals

Change from base Build<PHONE_NUMBER>:
4.6%

Covered Lines:
807

Relevant Lines:
988

💛  - Coveralls


Tre Files

Where did you install the swgemu client? /c/Users/lerma/Desktop/SWGEmu
Searching [/c/Users/lerma/Desktop/SWGEmu]
** Ok we found your files in /c/Users/lerma/Desktop/SWGEmu, we will now try and copy them to your guest...
** Checking to make sure your guest is up...
** Getting ssh configuration...
** Please follow directions in guest to complete user setup.
** setup timeout, continue anyway.
** Copying files...
** WARNING: List of missing files is blank but we're in auto mode, will try to copy everything...
lost connection
###################################################
SCP SEEMS TO HAVE FAILED WITH ERR=1, GET HELP!?
###################################################
I'm stuck on this part trying to get the Tre Files onto the guest but its not going through. any help would be appreciated.

From the host, check and post the following:

Host OS
Vagrant version (in gitbash vagrant --version)

Should not be above 2.2.3

VirtualBox version

Should not be above 6.0.4

From the guest, in terminal, do swgemu postdebug, select the gist option, and send me a PM either at forums or on Discord Farelli#5258 with the link to the gist.


How to get headers and messages for public stream API?

According to docs and this official post in forums, sometimes a connection could be delivering less tweets that existing ones. I wonder how can I get this sort of messages using twitter.
My current implementation is as simple as this:
query_term = sys.argv[1]
twitter_stream = TwitterStream(auth=auth)

iterator = twitter_stream.statuses.filter(track=query_term,language='es')

for tweet in iterator:
    print tweet['text']

I assume that for any term, at any time something like this could be received:
{
  "limit":{
    "track":1234
  }
}

So I need to get noticed if at any time I'm missing some tweets. How could I achieve it?

Just test whether text is actually present in tweet before trying to print it, otherwise test whether limit.track is in it, something like:
for tweet in iterator:
    try:
        print tweet['text']
    except KeyError:
        if 'limit' in tweet:
            print >> sys.stderr, "WARNING : stream overcharged, missed %d tweets since the beginning" % tweet['limit']['track']

But couldn't it be an scenario where I'm actually getting tweets but they're telling me that they're just not sending whole tweets on that tracked term available?
Due to the docs I refer I understand it could. And in the example you provide, it's like somehow there's not actual tweets ...

it means the stream most of the times send tweets (dict with a text field included) and sometimes when it has to sends other kind of messages, also a dict but with a different shape, like for instance those to tell you that there are too many tweets compared to what you can get
Just try!

Thanks, I love and have used tpt many times but I get confused with docs oftently. What's best way to contact and ask for any doubt?
Thanks again for your great job!

Thanks, although we really are mainly discussing the source behaviour of Twitter's streaming api here :)

Alright, it's just I have some other distinct doubs and wonder if I should open a new issue for each or keep on here :)


Updates for Hello Vectors

Add license notice, formatting and general cleanup

Can this be merged yet?

Can this be merged yet?
We still need Scott to add the new nuget for WinUI. But I guess, we ll ask him to do that in a separate PR.

This PR was closed, but not merged, so the changes aren't in the 'develop' branch yet. It needs to be merged.

This PR was closed, but not merged, so the changes aren't in the 'develop' branch yet. It needs to be merged.

My bad. Merged it now.


Updating scope sepearator and adding test to LinkedIn provider

Related to issue #335 and #346 , the LinkedIn provider can support scopes as a complete array, instead of a single index with all scopes space delimited.
This also includes a test to ensure the authorization url is formatted correctly.
This change has already be made and published in the separate package.

:+1:


chore(deps): update dependency jsii-docgen to v10

This PR contains the following updates:

Package
Change
Age
Adoption
Passing
Confidence

jsii-docgen
^9.2.2 -> ^10.0.0

Release Notes

cdklabs/jsii-docgen (jsii-docgen)
v10.0.0
Compare Source
10.0.0 (2023-10-26)
⚠ BREAKING CHANGES

README.md files are no longer included by default in the generated documentation files. To revert to the previous behavior, please provide the --readme flag.

Bug Fixes

readme incorrectly included in API docs by default (#1117) (7431871), closes #1073

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

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

This PR has been generated by Renovate Bot.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.


IndexError: list index out of range (MRIQC never runs longer than 25s)

What happened?
Received an 'IndexError: list index out of range' very early on whenever attempting to run MRIQC.
I have a feeling that it has something to do with the afni version. Please see error output and additional information below.
I am able to run fmriprep just fine.
What command did you use?
singularity run --cleanenv -B /data/ncl-mb10:/data/ncl-mb10,/data/ncl-mb13:/data/ncl-mb13,/usr/bin:/usr/bin $sifloc --participant-label $subj --n_procs 4 --omp-nthreads 4 --mem_gb 16 --no-sub --ica --fft-spikes-detector -w $workdir $indir $outdir participant

What version of fMRIPrep are you running?
MRIQC v23.0.0
How are you running this software?
Singularity
Is your data BIDS valid?
Yes
Are you reusing any previously computed results?
No
Please copy and paste any relevant log output.
Process Process-2:
Traceback (most recent call last):
  File "/opt/conda/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/opt/conda/lib/python3.9/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/conda/lib/python3.9/site-packages/mriqc/cli/workflow.py", line 61, in build_workflow
    retval["workflow"] = init_mriqc_wf()
  File "/opt/conda/lib/python3.9/site-packages/mriqc/workflows/core.py", line 44, in init_mriqc_wf
    workflow.add_nodes([fmri_qc_workflow()])
  File "/opt/conda/lib/python3.9/site-packages/mriqc/workflows/functional.py", line 130, in fmri_qc_workflow
    iqmswf = compute_iqms()
  File "/opt/conda/lib/python3.9/site-packages/mriqc/workflows/functional.py", line 322, in compute_iqms
    fwhm_interface = get_fwhmx()
  File "/opt/conda/lib/python3.9/site-packages/mriqc/workflows/utils.py", line 178, in get_fwhmx
    afni_version = Info.version()
  File "/opt/conda/lib/python3.9/site-packages/nipype/interfaces/base/core.py", line 1098, in version
    klass._version = klass.parse_version(raw_info)
  File "/opt/conda/lib/python3.9/site-packages/nipype/interfaces/afni/base.py", line 36, in parse_version
    version_stamp = raw_info.split("\n")[0].split("Version ")[1]
IndexError: list index out of range

Additional information / screenshots
I have a feeling that 'IndexError: list index out of range' might be coming from the afni version.
If I run this command: singularity exec np_mriqc_latest.sif afni -ver, I get: Precompiled binary linux_openmp_64: Aug 19 2022 (Version AFNI_22.2.07 'Marcus Aurelius')
The result for: version_stamp = raw_info.split("\n")[0].split("Version ")[1] would be AFNI_22.2.07 'Marcus Aurelius')

@oesteban Sorry for not seeing this earlier! I generated it like this: singularity build np_mriqc_latest.sif docker://nipreps/mriqc:latest
I think this specific issue was resolved by removing the binding of /usr/bin and making sure directories are in BIDS format.
However, I am still unable to run mriqc. You can see the newer issue here with netstat and 3dinfo: https://neurostars.org/t/bin-netstat-command-not-found-3dinfo-command-not-found-running-through-latest-mriqc-sif/25387

It looks again like a conflict of environments, and AFNI's binaries are being shadowed.

@oesteban Is there a possible way to fix this? Whenever I attempt to run a subject through, this is the furthest I get, and I'm not too sure what to try next.

I would try to first run it on some local desktop or laptop through docker. Once you have it working on one or two subjects, then try the setup with singularity.
This documentation -> https://www.nipreps.org/apps/framework/ can be useful. Please note the two sections following that I linked, one about docker and the other about singularity.

Hi-
Just to note, it might be simpler to get the version information using the -vnum option, rather than -ver.
The output is simpler for the version number, which likely might not even need to be split, for example:
$ afni -vnum
AFNI_23.0.07

$ afni -ver
Precompiled binary macos_10.12_local: Mar  1 2023 (Version AFNI_23.0.07 'Commodus')

--pt

Thanks Paul for the note, definitely worth updating on the nipype side (very dutifully you already submitted a patch :). However, the singularity container should go with an AFNI version old enough not to enter this error condition.

@oesteban @eilidhmacnicol Thank you so much for the suggestions. I tried to run the container through Docker with the BIDS-formatted data on my personal computer. I didn't get the netstat and 3dinfo errors, but I did get an error regarding synthstrip. I copied the crash file below.
It is my first time working with containers, so I am wondering if you have any general tips on getting things to run smoothly. My assumption is that as long as you have a BIDS-valid dataset, MRIQC should work fine. Is this correct?
Also, the reason I would like to use MRIQC is because it closely mirrors fMRIPrep which I am using for my project and have working smoothly. I am working with clinical data and would like to choose the best T1w and best functional run prior to running fMRIPrep on the subjects. If you have other recommendations or comments on my approach, please let me know.
`Node: mriqc_wf.anatMRIQC.synthstrip_wf.synthstrip
Working directory: /tmp/work/mriqc_wf/anatMRIQC/synthstrip_wf/in_file..data..sub-SPIN007..anat..sub-SPIN007_T1w.nii.gz/synthstrip
Node inputs:
args =
border_mm = 1
environ = {}
in_file =
model = /opt/freesurfer/models/synthstrip.1.pt
out_file =
out_mask =
use_gpu = False
Traceback (most recent call last):
File "/opt/conda/lib/python3.9/site-packages/mriqc/engine/plugin.py", line 60, in run_node
result["result"] = node.run(updatehash=updatehash)
File "/opt/conda/lib/python3.9/site-packages/nipype/pipeline/engine/nodes.py", line 527, in run
result = self._run_interface(execute=True)
File "/opt/conda/lib/python3.9/site-packages/nipype/pipeline/engine/nodes.py", line 645, in _run_interface
return self._run_command(execute)
File "/opt/conda/lib/python3.9/site-packages/nipype/pipeline/engine/nodes.py", line 771, in _run_command
raise NodeExecutionError(msg)
nipype.pipeline.engine.nodes.NodeExecutionError: Exception raised while executing Node synthstrip.
Cmdline:
synthstrip -b 1 -i /tmp/work/mriqc_wf/anatMRIQC/synthstrip_wf/in_file..data..sub-SPIN007..anat..sub-SPIN007_T1w.nii.gz/pre_n4/clipped_corrected.nii.gz --model /opt/freesurfer/models/synthstrip.1.pt -o clipped_corrected_desc-brain.nii.gz -m clipped_corrected_desc-brain_mask.nii.gz
Stdout:
Stderr:
Killed
Traceback:
RuntimeError: subprocess exited with code 137.`

@hannahleechoi  Error code 137 is due to insufficient memory. How much RAM are you devoting to the process (and over how many CPUs)?

@smeisler Oscar suggested trying to get it work on my personal mac first - the error code makes sense. I felt like it was taking a bit too long to get mriqc working for me, so I decided to handle qc through fmriprep. Thanks for checking in on the issue.

@hannahleechoi my 2ct:

It seems very clear to me that @smeisler's assessment is correct.
I don't think you really want to replace MRIQC with fMRIPrep - the goals are different. There's more on this in our protocol (OA preprint) and in this piece by Niso et al..

Thanks, @oesteban -- sorry, I wasn't sure if I should create a new issue for this error. I do get the same error with the 24.0.0rc2 version. I can also confirm that it happens without the config file being used.
I got a different error with a different subject (see below). So, just as a sanity check, I tripled checked the bids validator, and there are no errors there.
Same error, latest pre-release:
bash mriqc.sh 10003
------------------------------------------------------------------
  Running MRIQC version 24.1.0.dev0+g9b5c2f63.d20240408
  ----------------------------------------------------------------
  * BIDS dataset path: /base/bids.
  * Output folder: /base/derivatives/mriqc.
  * Analysis levels: ['participant'].
  * BIDS filters-file: /base/code/mriqc_config.json.------------------------------------------------------------------

Process Process-2:
Traceback (most recent call last):
  File "/opt/conda/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/opt/conda/lib/python3.11/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/conda/lib/python3.11/site-packages/mriqc/cli/workflow.py", line 45, in build_workflow
    config.load(config_file)
  File "/opt/conda/lib/python3.11/site-packages/mriqc/config.py", line 633, in load
    settings = loads(filename.read_text())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/toml/decoder.py", line 511, in loads
    ret = decoder.load_line(line, currentlevel, multikey,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/toml/decoder.py", line 778, in load_line
    value, vtype = self.load_value(pair[1], strictly_valid)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/toml/decoder.py", line 880, in load_value
    return (self.load_array(v), "array")
            ^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/toml/decoder.py", line 1002, in load_array
    a[b] = a[b] + ',' + a[b + 1]
                        ~^^^^^^^
IndexError: list index out of range
Traceback (most recent call last):
  File "/opt/conda/bin/mriqc", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/mriqc/cli/run.py", line 123, in main
    config.load(config_file)
  File "/opt/conda/lib/python3.11/site-packages/mriqc/config.py", line 633, in load
    settings = loads(filename.read_text())
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/toml/decoder.py", line 511, in loads
    ret = decoder.load_line(line, currentlevel, multikey,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/toml/decoder.py", line 778, in load_line
    value, vtype = self.load_value(pair[1], strictly_valid)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/toml/decoder.py", line 880, in load_value
    return (self.load_array(v), "array")
            ^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/toml/decoder.py", line 1002, in load_array
    a[b] = a[b] + ',' + a[b + 1]
                        ~^^^^^^^
IndexError: list index out of range

Different subject, new error:
------------------------------------------------------------------
  Running MRIQC version 24.1.0.dev0+g9b5c2f63.d20240408
  ----------------------------------------------------------------
  * BIDS dataset path: /base/bids.
  * Output folder: /base/derivatives/mriqc.
  * Analysis levels: ['participant'].
------------------------------------------------------------------

Process Process-2:
Traceback (most recent call last):
  File "/opt/conda/lib/python3.11/site-packages/toml/decoder.py", line 511, in loads
    ret = decoder.load_line(line, currentlevel, multikey,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/toml/decoder.py", line 778, in load_line
    value, vtype = self.load_value(pair[1], strictly_valid)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/toml/decoder.py", line 880, in load_value
    return (self.load_array(v), "array")
            ^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/toml/decoder.py", line 1029, in load_array
    raise ValueError("Not a homogeneous array")
ValueError: Not a homogeneous array

@oesteban -- I tried the latest pre-release (rc6), and I'm still getting the same IndexError. I uploaded some of the data to OpenNeuro if you want to take a look (https://openneuro.org/datasets/ds005085). I don't see the error on sub-10006 (no bold scans) or sub-10015 (no multiecho scans), so I wonder if the issue has something to do with how MRIQC is handling multiecho data?

I'm going to close the original issue, as the IndexError is unrelated and it seems to have been solved. Let's follow up with @DVSneuro on #1264.


vertex: fix test

Test has failed last two days with:

google.api_core.exceptions.InvalidArgument: 400 Please ensure that function response turn comes immediately after a function call turn. And the number of function response parts should be equal to number of function call parts of the function call turn.

There should be one ToolMessage per tool call.

Just confirming my understanding - this was just a bug in the test because we were passing one of the tool messages twice

Yes, my understanding is that previously we were making tool calls 1, 2, 3 and passing in tool messages 3, 1, 2, 3.


Logged wallet/user auth component rebuild.

We can sort of look into re-iterating the component into the materialized keys.

I think it's perhaps blocking the clean view, shall take a look into that.


find_object_2d: 0.6.4-1 in 'noetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository find_object_2d to 0.6.4-1:

upstream repository: https://github.com/introlab/find-object.git
release repository: https://github.com/introlab/find_object_2d-release.git
distro file: noetic/distribution.yaml
bloom version: 0.10.7
previous version for package: 0.6.3-5

Error: https://build.ros.org/job/Ndev__find_object_2d__ubuntu_focal_amd64/3/console


Increment version for datalake-analytics releases

Increment package version after release of Azure.ResourceManager.DataLakeAnalytics

API change check
API changes are not detected in this pull request.

/check-enforcer override


Ignore "OuterClass" suffix in the generated java classes for better readability

Some of the generated classes include the "OuterClass" suffix in their names. Please refrain from generating class names with that suffix for better readability.

@Sriram-Saranathan this will go out in the next release


Fixed generated urls not matching webmocks for nil parameters.

When running the tests, WebMock would break for any API calls with nil parameters. The reason being, that WebMock would generate a slightly different URL to Typhoeus: (I've indicated the difference)
https://openapi.youku.com/v2/videos/show_batch.json?client_id=client-id&ext=&video_ids=123
                                                                           |
https://openapi.youku.com/v2/videos/show_batch.json?client_id=client-id&ext&video_ids=123

Changing the parameters from nil to '' to WebMock fixes this.

:+1:


Remove HTMLField configuration from aldryn_config

The configuration was outdated. Default one should be taken from
javascript. Most notably - cmsplugins should not be there, since it's
not possible to add cms plugins to HTMLField

Coverage remained the same at 78.6% when pulling e8465d9b49c480a55a61ad20a0c7dd85ddb4fb31 on vxsx:bugfix/aldryn-config into c27b65eadc50d86dcfbc64b1e76f8d3a6efca6d4 on divio:master.


Add Verse Token (ERC20)

Adding the Verse Token:
Token Address: 0x249ca82617ec3dfb2589c4c17ab7ec9765350a18
Token Name: Verse
Token Decimals: 18
Token Symbol: VERSE
Etherscan: https://etherscan.io/token/0x249ca82617ec3dfb2589c4c17ab7ec9765350a18
Website: https://verse.bitcoin.com/
Whitepaper: https://www.getverse.com/verse-whitepaper.pdf
Thank you

@dawndarkness @PorlyBe contract has to be in EIP-55 format (0x249cA82617eC3DfB2589c4c17ab7EC9765350a18)

@MRabenda thank you, I have updated the contract id. Really appreciate your help with this.


Remove references to 'whitelist'

This is a suggestion to remove the two references to whitelist that are currently in the database.
blacklist, master, slave and other unfortunate terms are not present (other than in links, which will have to be fixed externally)
This topic has been discussed a lot lately. I see this as an opportunity to move to a language that is more easily understood and more inclusive. I also want it to be a display of sympathy for all blacks. These specific changes don't do much, but in the larger picture, they are a systemic move for the better.
A few related links:
9to5google - Chrome team moving away from the terms blacklist/whitelist
Twitter - Sean Metcalf reminding people to move away from old tech language
Twitter - Surma on Go's decision to move away from blacklist/whitelist
Twitter - PHP Unit will deprecate configuration options using blacklist/whitelist

Ah, I hadn't thought of this before, thanks for the information! Definitely agree to make this change.


feat: Add MediaPlayerElement styles and sample pages

closes #1032
GitHub Issue: #1032
PR Type
What kind of change does this PR introduce?

Feature

Description
Add MediaPlayerElement styles and sample pages
PR Checklist

Commits must be following the Conventional Commits specification
[X] Tested UWP
[X] Tested iOS
[X] Tested Android
[X] Tested WASM
[ ] Tested MacOS
[X] Contains No breaking changes

Other Information

Also when this PR is merged @kazo0, @Xiaoy312, @nguyeenvy we will need to add more samples for the Gallery app

@nguyeenvy let's bump the versions of Microsoft.WindowsAppSDK to 1.2.0

@kazo0 Microsoft.WindowsAppSDK has been successfully bumped to 1.2.0

Also when this PR is merged @kazo0, @Xiaoy312, @nguyeenvy we will need to add more samples for the Gallery app

I have opened an issue for it https://github.com/unoplatform/Uno.Gallery/issues/909

@nguyeenvy Thanks for that PR. I don't recall if I or @mtmattei had sent you an Uno Platform t-shirt as a small token of appreciation for the contribution. If not , please get in touch with me at sasha at platform . uno. Thanks again!


4-character hex prefix on branch names

Hello,
On most of our repos (configured via the UI) dependabot creates branch names such with the format dependabot/*.
We have another repo, configured via YAML (I'm not sure if this is relevant) which is creating branch names like 25d1dependabot/nuget/System.Threading.Tasks.Dataflow-4.11.0.
This makes it difficult to select all the dependabot branches with a refspec.
Is this due to using YAML? Is there any way around it?

Hi, I am experiencing the same issue, some PRs have this random prefix in the branch name.
We have all repositories configured with .github/depedabot.yml (same configuration in all repositories) and today we got PRs for "Bump lint-staged from 11.1.1 to 11.1.2" where some PRs have the prefix and some don't.
The documentation doesn't mention any prefix, only the separator.
We are relying on the branch name to run some actions and this random prefix is breaking it.

Could you share a PR where this happens? I've not seen it before

@jurre I have seen it only on private repos so I sent them to you via email.

Thanks @voda, unfortunately (or maybe, fortunately actually 😄) we're not able to see PRs or content in private repo's. Would you mind sending a request via support, they have tooling available to open this up and then route it to someone on our team, I think that'll be the best route to debug this.

Hi @j3parker @voda, apologies for the delay in replying.
This random prefix is added in cases where a branch named just dependabot already exists, see:
https://github.com/dependabot/dependabot-core/blob/84a82a62e1b27cc1b8fe0aa7f3c508e8b0aded23/common/lib/dependabot/pull_request_creator/github.rb#L245-L247
The use of dependabot/ as a 'folder' in git means our PRs are blocked on using their default naming scheme if this exists, so the prefix is a workaround to avoid failing to create the PR.
This is behaviour is fairly opaque so I'll add something to our backlog to make it more obvious when this is happening and how it can be corrected.

This random prefix is added in cases where a branch named just dependabot already exists.

Yes, that makes sense. Thanks for looking into it.

Ah of course. Thank you!


Washington DC TFR shows up for locations outside of the TFR

First off -- LOVE the TFR integration!!! I also love the weather, the METARs, and the Discussion and Report Metadata sections!!!
So the TFR for Washington DC really is not temporary, it's considered permanent. TFR FDC 1/1155
The problem is that many of the sites I fly are outside of the DC TFR 30nm ring (Called a SFRA, Special Flight Restriction Area), yet PPG.report continues to show the red warning sign.
KEZF, Shannon Airport, in Fredericksburg, VA, is both outside of the 30nm ring, as well as south of its southern-most border, yet ppg.report continues to show that TFR. I realize this is because the site is within 20 miles of my selected location, but truly, 80% of my flights are within 20 miles of the permanent flight restrictions.
I understand Washington DC is an exception here, maybe provide an option to ignore Permanent SFRAs? I still absolutely want to know about truly temporary TFRs, but the DC SFRA is not one of them! I took the FAA course, I have the certificate, I can fly in the 30-60nm SFRA Ring.
Thanks!

Hey there! Thanks for the issue. This makes sense and I'll probably make a way to permanently hide any given TFR (resettable through settings).

This should now be resolved with 3.7.0. Let me know if that solves your problem!

@aeharding it does!!! Perfect, thanks! Definitely a weird edge case, I really appreciate you providing a means to hiding PFRs pretending to be TFRs! ;-) Cheers!

Also, unrelated but since I'm here, the weather animations for rain are awesome!!! Super intuitive, very useful. Excellent improvement!


bug: Drawer prop open skips close animation

Describe the bug
When triggering the Drawer by code using the open prop, and closing it again with open={false}, there is no slide down animation as triggered normally with <Drawer.Close>Cancel</Drawer.Close>.
Reproduction
Use the open prop on Drawer to close the drawer.
Logs
No response
System Info
System:
    OS: macOS 10.15.7
    CPU: (6) x64 Intel(R) Core(TM) i5-8500 CPU @ 3.00GHz
    Memory: 412.88 MB / 40.00 GB
    Shell: 3.2.57 - /bin/bash
  Binaries:
    Node: 20.11.0 - /usr/local/bin/node
    Yarn: 1.22.17 - /usr/local/bin/yarn
    npm: 7.10.0 - ~/node_modules/.bin/npm
  Browsers:
    Chrome: 122.0.6261.94
    Firefox: 123.0
    Safari: 15.6.1
  npmPackages:
    @sveltejs/kit: ^2.5.0 => 2.5.0
    bits-ui: ^0.18.1 => 0.18.1
    formsnap: ^0.5.0 => 0.5.0
    mode-watcher: ^0.2.1 => 0.2.1
    svelte: 5.0.0-next.55 => 5.0.0-next.55
    sveltekit-superforms: ^2.5.0 => 2.5.0
    vaul-svelte: ^0.2.3 => 0.2.3

Severity
annoyance

Related https://github.com/huntabyte/vaul-svelte/issues/52


Reconciliation docs diffing algorithm uses unsafe lifecycle methods

In the docs page describing the reconciliation process,
when explaining the diffing algorithm there's a use of unsafe lifecycle methods in the Component elements of the same type section.
From the docs:

When a component updates, the instance stays the same, so that state is maintained across renders. React updates the props of the underlying component instance to match the new element, and calls componentWillReceiveProps() and componentWillUpdate() on the underlying instance.

I guess the componentWillReceiveProps and componentWillUpdate should be updated to contain an explanation regarding componentDidUpdate and static getDerivedStateFromProps
I guess this wasn't updated for a long time and probably have changed due to Fiber architecture but still is a great place to get a deeper explanation regarding the reconciliation process.

I've Just seen in the "codebase overview" page a statement reffering this.

We haven’t documented the internals of the new reconciler yet.

So I'm closing this one. Thanks and sorry.


helm upgrade doesn't work for new subscriptions

Keptn version: 0.15.0
I've installed the job executor service 0.2.0 using helm (but I assume this is more a core / distributor issue so will be relevant to any service). It is configured to listen for sh.keptn.hello-world.triggered. Everything is working fine.
I now want to update the subscriptions to include two new ones, so I run a helm upgrade command:
JES_VERSION=0.2.0
KEPTN_API_PROTOCOL=http
KEPTN_API_HOST=api-gateway-nginx.keptn
KEPTN_API_TOKEN=$(kubectl get secret keptn-api-token -n keptn -ojsonpath={.data.keptn-api-token} | base64 -d)
TASK_SUBSCRIPTION='sh.keptn.event.hello-world.triggered\,sh.keptn.event.je-deployment.triggered\,sh.keptn.event.je-test.triggered'

helm upgrade -n keptn-jes \
job-executor-service \
https://github.com/keptn-contrib/job-executor-service/releases/download/$JES_VERSION/job-executor-service-$JES_VERSION.tgz \
--set remoteControlPlane.topicSubscription="${TASK_SUBSCRIPTION}",remoteControlPlane.api.protocol=${KEPTN_API_PROTOCOL},remoteControlPlane.api.hostname=${KEPTN_API_HOST},remoteControlPlane.api.token=${KEPTN_API_TOKEN}

Helm succeeds and kubectl -n keptn-jes describe pod shows (partial output):
distributor:
    Container ID:   containerd://f809e693df0f23856fbb964bace3ed5e0ad40fef0ebc86b6cae565ca198774eb
    Image:          docker.io/keptn/distributor:0.13.4
    Image ID:       docker.io/keptn/distributor@sha256:ad82d87f3b22ba610d56d7bdb4fc6594248afaddff03557deb7aa194d7e03dcd
    Port:           8080/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Sun, 29 May 2022 03:45:56 +0000
    Ready:          True
    Restart Count:  0
    Environment:
      PUBSUB_TOPIC:         sh.keptn.event.hello-world.triggered,sh.keptn.event.je-deployment.triggered,sh.keptn.event.je-test.triggered
      PUBSUB_RECIPIENT:     <IP_ADDRESS>
      STAGE_FILTER:
      PROJECT_FILTER:
      SERVICE_FILTER:
      DISTRIBUTOR_VERSION:  0.13.4

Yet the task is not actioned and the bridge still shows only the initial event subscription (hello-world.triggered). The integration ID doesn't change either.
curl -X GET http://localhost/api/controlPlane/v1/uniform/registration/*****/subscription
[{
    "id": "******",
    "event": "sh.keptn.event.hello-world.triggered",
    "filter": {
      "projects": [],
      "stages": [],
      "services": []
    }
}]

Validated with distributor 0.14.1 and 0.15.0 too. Same JSON output from /subscription endpoint as above but pod shows:
Environment:
      PUBSUB_TOPIC:         sh.keptn.event.hello-world.triggered,sh.keptn.event.je-deployment.triggered,sh.keptn.event.je-test.triggered
      PUBSUB_RECIPIENT:     <IP_ADDRESS>
      STAGE_FILTER:
      PROJECT_FILTER:
      SERVICE_FILTER:
      DISTRIBUTOR_VERSION:  0.14.1

Environment:
      PUBSUB_TOPIC:         sh.keptn.event.hello-world3.triggered,sh.keptn.event.je-deployment.triggered,sh.keptn.event.je-test.triggered
      PUBSUB_RECIPIENT:     <IP_ADDRESS>
      STAGE_FILTER:
      PROJECT_FILTER:
      SERVICE_FILTER:
      DISTRIBUTOR_VERSION:  0.15.0

The bridge never updates the integration ID even when I helm uninstall and helm install?

shipyard-controller logs:
time="2022-05-30T01:26:51Z" level=info msg="Processing ABORT sequence control"
time="2022-05-30T01:26:51Z" level=info msg="Deleted event 7edd5554-b6f3-4ff9-aecb-606ad30cf068"
time="2022-05-30T01:26:51Z" level=info msg="Deleting all task.finished events of task sequence delivery with context d9ba4705-b56f-417a-b6b2-91eec5007ba8"
time="2022-05-30T01:26:51Z" level=info msg="Deleted event a06b5956-a62d-42a0-b7de-f7341d7810b6"
time="2022-05-30T01:26:51Z" level=info msg="Received event of type sh.keptn.event.qa.delivery.finished from shipyard-controller"
time="2022-05-30T03:06:34Z" level=info msg="Received event of type sh.keptn.event.qa.delivery.triggered from https://github.com/keptn/keptn/cli#configuration-change"
time="2022-05-30T03:06:34Z" level=info msg="Checking if sequence '.triggered' event should start a sequence in project fulltour"
time="2022-05-30T03:06:36Z" level=info msg="Found matching task sequence delivery in stage qa"
time="2022-05-30T03:06:38Z" level=info msg="Received event of type sh.keptn.event.je-deployment.triggered from shipyard-controller"

Interestingly the bridge integrations screen shows the hello-world.triggered event but when I modify the subscription the task is blank:

Another piece that may be important: The initial install was for a keptn project called helloworld which subscribed to sh.keptn.event.hello-world.triggered. The upgrade targets a different keptn project called fulltour. Perhaps that's the issue?

Hey @agardnerIT, the PUBSUB_TOPIC is used only to set the set of subscriptions for the very first time Keptn sees that integration. Afterward, the subscriptions must be changed through the Bridge.

Feel free to re-open the issue if you need more support


[Blade] Add birthDate field to Member schema

Why
Will be using date of birth to auto-increment a member's age, update their graduation status, and send them birthday wishes.
What
This diff adds dob as a new field of the member table and modifies the member application form as needed.
Test Plan
Form submits successfully
https://github.com/user-attachments/assets/476651ac-e791-43f8-a134-778e21105b56
Age is calculated correctly

lgtm!


CSGO via steam (runtime) starts with blackscreen among other issues.

Reproduction:

Start the game iwith launch options:  -refresh 144 -console -fullscreen -novid -nojoy -high -threads 6 -tickrate 128  +fps_max 0 -forcenovsync +cl_forcepreload 1
Game appears as a window but very small (about 400x400px)
Notice there is only audio and no video output, only black
Notice when you open the steamoverlay with shift+tab and you close it, the overlay still is slightly visible with a variable 'ghost' in the background

I know the consensus is the use gamescope, but I would very much like to play CSGO directly with hyprland as it makes it much easier and a painless process, so if you could look into this issue for me that would be awesome.
I am currently running the Hyprland-git current releaes as of Thursday, November 3, 2022 available via the AUR on Arch Linux x86-64
Thank you :)

ran CS:GO with your launch options and everything works as expected. Yes, it starts as a window, but you can use the fullscreen dispatcher to fullscreen it. Everything renders as normal.

both are fine

Hmm i added the option -vulkan now I am able to play the game, however, there is no sound, anything on that?

sound is not handled by hyprland.

both are fine

Could it be that im running an nvidia gpu, I still cannot get it to run under opengl and I am not sure what to do.

@vaxerski should we close this issue, as this user has been deleted, and I can start CS:GO with AMD, intel iGPU and Nvidia card just fine.

ye


Minor fixes

Hi,
These are the minor fixes we discussed two weeks ago on the mailing list.
Cheers

Btw, mvn -P jdk16 clean test builds but complains on uses of the deprecated firstNonNull.
I'll submit a trivial fix for this.
Plus, tests break on a missing avatax.properties file:
java.lang.IllegalArgumentException: resource avatax.properties not found.
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)
	at com.google.common.io.Resources.getResource(Resources.java:197)
	at org.killbill.billing.plugin.TestUtils.toString(TestUtils.java:104)
	at org.killbill.billing.plugin.TestUtils.loadProperties(TestUtils.java:77)
	at org.killbill.billing.plugin.avatax.AvaTaxRemoteTestBase.beforeMethod(AvaTaxRemoteTestBase.java:42)

I tried a trivial fix, adding an empty avatax.properties in src/test/resources but it's definitely not sufficient.
Didn't you forget adding that file to your commits?

When running integration tests, you need AvaTax credentials in src/test/resources/avatax.properties. The default profile will only run unit (fast) tests (for which a sandbox is not required).

Thanks!