Remove lots of pygtk using software

Motivation for this change
A lot of these programs that use pygtk, which is using python2, are just completely abandoned and nixpkgs doesn't need to hold onto them.
Additionally, there's certain packages that in their latest released version don't use deprecated bindings. I will try to handle some of these updates.

This is a draft. I'm not finished so review isn't needed just yet.
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

Notify maintainers
cc @

@romildo connman-notify is marked as broken here. In later versions it has been ported to python3.
Are you still interested in maintaining this?

I am still using phwmon to monitor cpu, memory, etc. with light window managers like openbox, fluxbox and awesome. It is working well for me.

@romildo connman-notify is marked as broken here. In later versions it has been ported to python3.
Are you still interested in maintaining this?

Yes, I am. I will take a look at the python3 based version.
I am waiting for a release of connman with good integration with iwd to make connman my network manager of choice.

I am still using phwmon to monitor cpu, memory, etc. with light window managers like openbox, fluxbox and awesome. It is working well for me.

Thanks. That was one of the entries I had a strong feeling was going to become a dropped commit :+1:

Though it's actually a pretty small script, it could be easily ported to python3 and gobject bindings

https://gitlab.com/o9000/phwmon/blob/master/phwmon.py

cc @dgonyeo

@veprbl As stated, this PR isn't ready for review because  I'm not certain all removed packages are appropriate. So I don't really want to attract to much attention like people's packages are in danger of removal.

@veprbl requested your review on: NixOS/nixpkgs#74295 Remove lots of pygtk using software.

Yeah, Uzbl stopped doing any releases around moving to WebKit2, and then just withered away, fine to drop
(by that time I was not closely following, as after Opera becoming Chromium clone I minimised my use of WebKit/Blink)

@romildo connman-notify is marked as broken here. In later versions it has been ported to python3.
Are you still interested in maintaining this?

Yes, I am. I will take a look at the python3 based version.
I am waiting for a release of connman with good integration with iwd to make connman my network manager of choice.

Updated connman-notify: https://github.com/NixOS/nixpkgs/pull/74321

Though it's actually a pretty small script, it could be easily ported to python3 and gobject bindings
* https://gitlab.com/o9000/phwmon/blob/master/phwmon.py

Issue entry in upstream: https://gitlab.com/o9000/phwmon/issues/4

@worldofpeace Sorry, I didn't mean to cause any trouble here.

Going to leave some of my research on the remaining packages here:

ocropus has a fork kraken that supports python3
there's also a wip PR:
https://github.com/tmbdev/ocropy/pull/319

pmenu has no activity of a python3 port
https://gitlab.com/o9000/pmenu cc @romildo

xdgmenumaker supports python3
https://github.com/gapan/xdgmenumaker#about cc @romildo

problematic claws mail python2 plugins
For the foreseeable future, python3 gtk won't be supported unless claws is ported to gtk3.
https://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=4271
Taking no action as it's optional off by default.

is nicotine-plus abandoned?
there's an issue upstream. https://github.com/Nicotine-Plus/nicotine-plus/issues/99.
Package was added 10 months ago.

screenkey is missing python3 support
no issue upstream https://gitlab.com/wavexx/screenkey.

keybinder is likely obsolete to keybinder3?
Keybinder doesn't appear to touch python anymore

libappindicator :frowning:
Remove python completely
https://src.fedoraproject.org/rpms/libappindicator/blob/master/f/nopython.patch

mpdris2 has python3 support
cc @pjones

gpsd has python3 support https://gitlab.com/gpsd/gpsd needs update.
cc  @bjornfor @rasendubi

solfege has python3 support https://sourceforge.net/projects/solfege/ (it's in the description)
cc @bjornfor

Screenkey is irreplaceable when I want to record a bug triggered by keyboard shortcuts, issue here: https://gitlab.com/wavexx/screenkey/issues/3
Regarding gpsd https://github.com/NixOS/nixpkgs/issues/35604

Regarding gpsd #35604

Cool, diff looks usable.

Going to try to leave this PR at what it is currently.
Please ignore the missing # added in aliases.nix. I'll fix that up later.

A lot of these programs that use pygtk, which is using python2, are just completely abandoned and nixpkgs doesn't need to hold onto them.

I don't understand. Presumably a lot of these packages actually still work as-is? Part of the beauty of nix is that we can have these live along new packages without worrying about version mismatches.
w.r.t. mcomix, it hasn't had a release for a while but it's not completely dead and there's even MR for gtk3 support.
Unless the packages are broken, why remove them?

A lot of these programs that use pygtk, which is using python2, are just completely abandoned and nixpkgs doesn't need to hold onto them.

I don't understand. Presumably a lot of these packages actually still work as-is? Part of the beauty of nix is that we can have these live along new packages without worrying about version mismatches.
w.r.t. mcomix, it hasn't had a release for a while but it's not completely dead and there's even MR for gtk3 support.
Unless the packages are broken, why remove them?

These are slight assumptions. I've mostly opened this so we can track what can be dropped that will never be ported, and what may have ports in process. Requesting review of the respective maintainers is part of this, so thank you for sharing this.
The premise of this PR is basically https://github.com/NixOS/nixpkgs/pull/74282#issuecomment-559125236. pygtk and python2 are deprecated. The underlying libraries don't have maintainers, so it doesn't matter if they're broken yet. There's nothing there to ensure their continued function.
I started at the most critical severity, removal, because nixpkgs already has a large problem of packages with no maintainers and scattered abandonware.

Actually @Fuuzetsu, after some more research there's a fork of mcomix, mcomix3, that supports gtk3

https://github.com/multiSnow/mcomix3

I think we should follow fedora and package that to supersede the previous package

https://src.fedoraproject.org/rpms/mcomix/c/d1de9b3e59de4e236a6c7f751c091eb436a11c8c?branch=master

Presumably a lot of these packages actually still work as-is?

They do not. pygtk no longer builds with current pango.
We have these options:

Staying at pango 1.43 and having to backport all the CVE fixes. (That is what we are doing now: https://github.com/NixOS/nixpkgs/pull/71660)
Duplicating pango fixed at the old version and all its reverse dependencies and having pygtk apps use that. (That is what https://github.com/NixOS/nixpkgs/pull/74282 attempted before realizing that reverse dependencies need to be duplicated as well.)
Reviving pygtk ourselves, fixing all the incompatibilities. (It looks like this is the direction we are going: https://github.com/NixOS/nixpkgs/pull/74282#issuecomment-559125236)
Mark pygtk as broken or drop it completely. (This would be the most pleasant variant for us.)

And I'd say we've agreed on going the #3 route because we won't be removing every single package that depends on pygtk. However, it's only temporary, eventually pygtk will have to be removed. But that's not going to happen right away. It's slightly more demanding on the maintainers to do this for now, but it will cause less a disruption to users.

A lot of these programs that use pygtk, which is using python2, are just completely abandoned and nixpkgs doesn't need to hold onto them.

I don't understand. Presumably a lot of these packages actually still work as-is? Part of the beauty of nix is that we can have these live along new packages without worrying about version mismatches.
w.r.t. mcomix, it hasn't had a release for a while but it's not completely dead and there's even MR for gtk3 support.
Unless the packages are broken, why remove them?

These are slight assumptions. I've mostly opened this so we can track what can be dropped that will never be ported, and what may have ports in process. Requesting review of the respective maintainers is part of this, so thank you for sharing this.
The premise of this PR is basically #74282 (comment). pygtk and python2 are deprecated. The underlying libraries don't have maintainers, so it doesn't matter if they're broken yet. There's nothing there to ensure their continued function.
I started at the most critical severity, removal, because nixpkgs already has a large problem of packages with no maintainers and scattered abandonware.

I think technically (sadly) Python 2.7 is still not deprecated (https://pythonclock.org/).

I think we should follow fedora and package that to supersede the previous package

Sounds good to me.

They do not. pygtk no longer builds with current pango.

I see.

pygtk and python2 are deprecated. The underlying libraries don't have maintainers, so it doesn't matter if they're broken yet.

I think it is a pretty strong claim (there are some upstream-unmaintained packages that caused no trouble in ten years), but it is not needed to make the point anyway: all versions of pango are slightly broken, and they are also incompatible with each other, so I agree that pygtk does actively create a pain.

Details for planner https://github.com/NixOS/nixpkgs/issues/74949.

* pmenu has no activity of a python3 port
  https://gitlab.com/o9000/pmenu cc @romildo

I consider jgmenu to be a successor of pmenu, and it is more complete. It has a module based on pmenu. Therefore pmenu can be removed.

* pmenu has no activity of a python3 port
  https://gitlab.com/o9000/pmenu cc @romildo

I consider jgmenu to be a successor of pmenu, and it is more complete. It has a module based on pmenu. Therefore pmenu can be removed.

Thanks, I've removed it here. I'll assume you'd package that when it's ready.
It would be nice if there was someway to poll cache.nixos.org for a popularity contest on the packages.

I consider jgmenu to be a successor of pmenu, and it is more complete. It has a module based on pmenu. Therefore pmenu can be removed.

Thanks, I've removed it here. I'll assume you'd package that when it's ready.

@worldofpeace Do you mean packaging jgmenu? It is already packaged.

I consider jgmenu to be a successor of pmenu, and it is more complete. It has a module based on pmenu. Therefore pmenu can be removed.

Thanks, I've removed it here. I'll assume you'd package that when it's ready.

@worldofpeace Do you mean packaging jgmenu? It is already packaged.

Ah :rofl:  Minor dyslexia on my side with the g's and q's.
(fuzzy search of jqmenu obviously didn't work)

xdgmenumaker supports python3
https://github.com/gapan/xdgmenumaker#about cc @romildo

Migrated to python3 in https://github.com/NixOS/nixpkgs/pull/75015.

Here's info about mcomix3 https://github.com/NixOS/nixpkgs/issues/75028.

uzbl and pywebkitgtk got moved into #75040.


Feat - Basic typings

Not in depth in any way, stops the error that typings are missing.
Resolves https://github.com/SavvyWombat/tailwindcss-grid-areas/issues/2

Actually this is a poor fix as it contains no real typing and may prevent someone adding actual types to https://github.com/DefinitelyTyped/DefinitelyTyped

Hi - thanks for taking the interest.
As I mentioned in the other issue, I haven't been able to replicate this problem which makes it hard to fix. Do you have a simple application or repo that is giving typescript errors? Would you mind sharing it?


Require 2SV for users from organisations where 2SV is mandatory

This implements the following:

requires 2SV for all existing users (who are not exempt) from an organisation when their organisation is set to require 2SV
requires 2SV for all new users from an organisation when their organisation is set to require 2SV (e.g. for users created by rake tasks, or in bulk)
moves the 2SV checkbox during registration to a separate page, so it is only presented to users who are not required to have 2SV (either by membership of an organisation or because they are an admin/superadmin role)

Validations are still carried out when the first form is submitted, hence why we now need to explicitly check the submission is valid without persisted the user in the database.
The following user flows are now present during registration:

New user who is being assigned to an organisation that has mandatory 2SV or has admin/superadmin status:

New user who is being assigned to an organisation that does not have mandatory 2SV and is not admin/superadmin:

Trello card
⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠
Follow these steps if you are doing a Rails upgrade.

Thanks @BeckaL.  I've rebased against main and I don't think there were any changes needed to this PR from the product review.


Add Zenodo integration for library citation

xclim version: NA
Python version: NA
Operating System: NA

Description
Integrate Zenodo API for citable library.
We are currently developing a proposal and having a simple way to cite the package would be useful before we submit it (...in the next days...)!
I'd do it myself but I do not have the permission for "third-party access" at the Ouranos inc org level. See Zenodo doc for details for how to allow such access to Zenodo.

I'm adding this to the v1.0-rc goals, but since this demands a stable/citable version, I would consider us waiting on performing this until v1.0 is finalized tagged.


Include LICENSE file in sdist

Coverage remained the same at 100.0% when pulling c9d015dcddd20adeff7a0d1cb464692811ba8fe3 on hroncok:patch-1 into dec5f4c8cc4aceeb3c8e63a49fcf15995fbc97e7 on WoLpH:develop.

Thanks for the fix. Forgot about that :)


support List with pagination and list all for developer and rbac roles

This PR add support for pagination for developer and rbac roles.
PS : I don't know why it detects a change on every lines of the files I modified. It didn't happened on my previous PR.

 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.1 out of 2 committers have signed the CLA.:white_check_mark: mmorel-35:x: MOREL MatthieuMOREL Matthieu seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Replaced by #29


fix(runtime-core): stringify Map and Set in hydration warning

Class and style mismatches are currently reported as
[Vue warn]: Hydration class mismatch on <element>
  - rendered on server: class="[object Set]"
  - expected on client: class="[object Set]"

Hydration style mismatch on <element>
  - rendered on server: style="[object Map]"
  - expected on client: style="[object Map]"

Are you sure? actual and expected are already strings.

Missed #10067 somehow


weird problem with installing caffeine with brew cask install --debug caffeine

Well now when running brew cask install --debug caffeine getting this msg:
==> Downloading
==> Downloading http://download.lightheadsw.com/download.php?software=caffeine
==> Calling curl with args ["http://download.lightheadsw.com/download.php?software=caffeine", "-C", "0", "-o", "#<Pathname:/Library/Caches/Homebrew/caffeine-1.1.1.php.incomplete>"]

curl: (7) Failed to connect to download.lightheadsw.com port 80: Operation timed out
==> Purging files for version 1.1.1 of Cask caffeine
Error: Download failed on Cask 'caffeine' with message: Download failed: http://download.lightheadsw.com/download.php?software=caffeine
/usr/local/Cellar/brew-cask/0.53.3/rubylib/hbc/download.rb:25:in `rescue in perform'
/usr/local/Cellar/brew-cask/0.53.3/rubylib/hbc/download.rb:22:in `perform'
/usr/local/Cellar/brew-cask/0.53.3/rubylib/hbc/installer.rb:89:in `download'
/usr/local/Cellar/brew-cask/0.53.3/rubylib/hbc/installer.rb:63:in `install'
/usr/local/Cellar/brew-cask/0.53.3/rubylib/hbc/cli/install.rb:20:in `block in install_casks'
/usr/local/Cellar/brew-cask/0.53.3/rubylib/hbc/cli/install.rb:17:in `each'
/usr/local/Cellar/brew-cask/0.53.3/rubylib/hbc/cli/install.rb:17:in `install_casks'
/usr/local/Cellar/brew-cask/0.53.3/rubylib/hbc/cli/install.rb:6:in `run'
/usr/local/Cellar/brew-cask/0.53.3/rubylib/hbc/cli.rb:79:in `run_command'
/usr/local/Cellar/brew-cask/0.53.3/rubylib/hbc/cli.rb:119:in `process'
/usr/local/Cellar/brew-cask/0.53.3/rubylib/brew-cask-cmd.rb:18:in `<main>'    ```

“Operation timed out” suggests a networking issue outside our control. Does http://download.lightheadsw.com/download.php?software=caffeine work from a browser?

Oh ok! It doesn't work((( Sorry! Thank you very much... Next time I'll know what this error means..


Bug in auto_chunks

I believe that there is a bug in auto_chunks. On line 1980 limit is redefined from byte units to num-items units:
limit = max(1, limit // dtype.itemsize)

However, later on in the file on line 2032 auto_chunks is called recursively passing the redefined limit in:
return auto_chunks(chunks, shape, limit, dtype)

I think that either limit shouldn't be redefined in-place  or this line should read something like:
return auto_chunks(chunks, shape, limit * dtype.itemsize, dtype)

Thanks!

Adding a bit more detail. The issue comes up when the array has a highly non-uniform chunksize. That is the following condition is triggered:
        size = (limit / largest_block) ** (1 / len(autos))
        small = [i for i in autos if shape[i] < size]
        if small:
            for i in small:
                chunks[i] = (shape[i],)
            return auto_chunks(chunks, shape, limit, dtype)

Consider first, a case where auto-chunking works as desired:
In [1]: limit = 2. ** 20

In [2]: auto_chunks(('auto', 'auto', 'auto'), (1000, 1000, 1000), limit, numpy.dtype('f8'))
Out[2]: (50, 50, 50)

In [3]: 50 ** 3 * numpy.dtype('f8').itemsize / limit
Out[3]: 0.95367431640625

Now one where it doesn't:
In [1]: limit = 2. ** 20

In [2]: auto_chunks(('auto', 'auto', 'auto'), (50, 20000, 1000), limit, numpy.dtype('f8'))
Out[3]: ((50,), 16, 10)

In [3]: 50 * 16 * 10 * numpy.dtype('f8').itemsize / limit
Out[3]: 0.06103515625

The array is chunked too finely along axes 1 and 2.  Interestingly enough (and consistent with the bug) when the "limit" is reduced the chunk size increases:
In [4]: dask.array.core.auto_chunks(('auto', 'auto', 'auto'), (50, 20000, 1000), 0.95 * 2 ** 20., numpy.dtype('f8'))
Out[116]: (25, 40, 40)

@jakirkham if you have a moment can I ask you to take a quick look at this?

Thanks for the excellent issue @abergou .  I have a proposed fix in https://github.com/dask/dask/pull/4645
Can you suggest a simple test that would use user-facing API, perhaps slightly higher level than the auto_chunks function, maybe something with da.ones(..., chunks=(...))?

Unfortunately, when auto_chunks is called through normalize_chunks then it is only triggered if previous_chunks is None (auto_chunks is only recursively called in this case). At the moment this is only exposed when auto_chunks or normalize_chunks is directly called (I was doing the latter). Thus, the lowest level test I can propose is:
In [1]: import numpy; from dask.array.core import normalize_chunks
In [2]: shape = (50, 20000, 1000)
    ...: chunks0=da.core.normalize_chunks(('auto', 'auto', 'auto'), (50, 20000, 1000), dtype='f8', limit=2 ** 20)
    ...: chunks1=da.core.normalize_chunks(('auto', 'auto', 'auto'), (50, 20000, 1000), dtype='f8', limit=0.95 * 2 ** 20)
    ...: size0 = numpy.prod([max(c) for c in chunks0])
    ...: size1 = numpy.prod([max(c) for c in chunks1])
    ...: size0 >= size1
    ...:
Out[2]: False

I believe we would expect Out[2]: True

Hrm, without thinking hard, it's not immediately clear to me why that would be

To be clear, I don't understand the intent of the test.

Thanks Matt!
Indeed I wasn't very clear about what the test does - sorry about that. The test calls normalize chunks twice changing only the limit parameter. It then computes the maximum chunk-size (in items) generated by the two calls and shows that in the buggy version of auto-chunks decreasing the limit-size actually increases the chunk size.
This is good to close though since your change fixes the issue. Thanks!


Integration of Drag & Drop [Phaser 2.9] with VueJS

Hello peeps,
I've been trying for a long time now to make it work, but i can't find any new ideas to test out.
My project is a vuejs webpack template project i've been able to initialize phaser make things display changing the game's background color on input etc
But i can't for the life of me find the way to make sprite input detect pointer.
I've followed this tutorial : https://www.sebastianklier.com/node/vue/phaser/game/2017/06/03/node-vue-phaser-webpack.html
Here's the code of my game vue
<template>

</template>

As you can see it's pretty simple i just want to be able to drag the block, the debug.spriteInputInfo shows no signs of life.
Of course the code works outside of vue ...
If anyone got an idea I'll gladly take it, i'm at my wits end.
Thanks !

I just see long eval statements in app.js and vendor.js, can that be changed?

So for me the drag input works correctly in the production app.
In the dev app, Phaser.Input#hitTest is failing (during a drag) because (displayObject instanceof PIXI.Sprite) evaluates to false, which is wrong.
If you add to create()
console.assert(sprite instanceof PIXI.Sprite);

you'll see that fails as well.

I don't quite get where you're going at
I'll try tho but i don't think that'll solve the problem

The problem seems to be that there are two nonidentical PIXI references in the dev app. I don't know why. I'd guess there's some difference in the webpack configs.
assert won't solve anything, it's just to help you spot the difference. Add that statement and then run both the dev/prod games.

I deactivated the PIXI vendor in the webpack build and it works

Hello! I am late to the show. but i am have the same problem. may i ask what is this deactivation you did ?? was looking at your guthub repo but i cant see how you deactivated it and made the mouse events to work. Will be a great help!!

its okay! thanks for sharing!! managed to find the solution!


Read 10-bit y4m input. #107

Note this cannot yet encode high bitdepth; it reads it and then shifts
to 8 before encode.  Updated with [corrected and tested] version of lu_zero's pattern.

Looks fine for me.


One of the connected branches suddenly stopped deploying the changes uploaded to github

** Please describe which feature you have a question about? **
The frontend enviroment in which we deploy one of branches wasn't updating the changes we uploaded to github.
** Provide additional details**
We got no errors, everything went smooth and we got green check boxes in the 4 stages (provision, build,deploy and verify). The github repository seems to be working fine, since we made sure that the changes were being uploaded correctly in the repository. The project works fine in local across all of our collaborators computers. We tried disconnecting the branch that is causing all of these issues and then plugin it again but now we get the following message: "Your app will appear here once you complete your first deployment.".... Any thoughts on what is causing this?

Hi @servappgit can you please share you appId, region, and branch name.

Hi Athena96,
heres the branch name: pre_produccion
Region:US-EAST-2
appid:arn:aws:amplify:us-east-2:305346604475:apps/d3le97war7ov3p

Hi @servappgit thanks for the info.
We've recently identified an issue related to what you described and have deployed a fix. Can you please try to build/deploy again and let us know if you're still facing the issue. Thanks!

The issue has been resolved, thank you so much Athena96.
Have a good one !


Move CaseStudies out from Drasil repo?

They have a weird side effect: because there is so many files, it makes it look like this repo is more C than anything else! I would like Drasil to be classified as a Haskell project.
@szymczdm @smiths @palmerst I would like your opinion. I can do the deed if we decide to go forward.
[Note that we can use git submodules to have our local mirrors still have the CaseStudies in the same spot]

I think it's a good idea.
We also have a copy of the chipmunk source code in the repo for some reason under Chipmunk2D-master which is adding a lot of C code:  https://github.com/JacquesCarette/literate-scientific-software/tree/master/Chipmunk2D-master  -- I'm not sure why this is in the repo?

I can see the value of moving the case studies out of the Drasil repo, but it is worthwhile to consider why they were originally moved into the Drasil repo.  Originally, the case studies were separate (in a misnamed repo called drasil, no less).  We moved them over because the summer students were getting confused, and because we were making some changes to the case studies and to the drasil code.  It just made sense to have everything together.
Having said that, the SWHS repo has always been separate.  I've cited it as an example in papers, so I want to maintain the GitHub version.  We don't want to introduce the maintenance nightmare of having the example in two places, so the Drasil repo just points to the SWHS repo in the case studies folder.
It seems like adding submodules in git would be a similar step to pointing to the external repos, but it would take things further.  I did a very quick search on working with submodules, and I'm not sure I'm encouraged by what I read:
https://github.com/blog/2104-working-with-submodules
There are some warnings in this article that implies that submodules might be more work than they are worth.
Rather than submodules, maybe we could just use the SWHS idea and keep the CaseStudy folders, but just include a readme that points to the correct repo?  For SWHS the readme.md is located at:
https://github.com/JacquesCarette/literate-scientific-software/tree/master/CaseStudies/swpcm
Going forward there will be less and less maintenance for the CaseStudies, and there are no dependencies at all from a compilation point of view.  My instinct is that we don't need submodules, but I'm willing to be convinced otherwise.
I've been collecting my thoughts as I write.  😄  I am okay with moving the CaseStudies out of the Drasil repo.  Rather than submodules though, I think we can just use the readme.md idea I just mentioned.
As far as the C code in the repo goes, I know the reason for it, and the ideal fix, but I don't know the best path to get there.  The reason for the code is that the Chipmunk example is bigger than the others.  Rather than code everything from scratch, we simply modified the original Chipmunk to match our simplified requirements.  This means that most of the code is Chipmunk code that wasn't written by an of our team.  What would be more helpful for Drasil (in my opinion) is a much simpler library, where we have written the code.  We cannot hope to use code generation to generate Chipmunk.  There is just too much going on in there.  We need a simpler physics simulator.
If we get another summer student on Chipmunk, I think they should start from the requirements for the design and implementation, and not reuse the existing library.  In hindsight, that was likely a mistake.
In the short term though, I don't want to delete the code that we have.  The code does work (or at least it did the last time I checked), and it can provide us with a benchmark for comparison with future code.  @JacquesCarette's idea to move the CaseStudies outside of Drasil would fix the problem of too much C code.  Down the road we can address the problem of how to make the game physics code more useful.

I was most definitely not suggesting that we delete anything.  I should have been clearer that I want to move things out of the Drasil repo, as it does not logically belong there.
I am perfectly happy with links. I should have been clearer that 'moving out' was the issue, and submodules was one potential solution. Probably should have made a comment rather than put it in the issue itself.

We should wait for @szymczdm's thoughts, but it seems like we are converging to removing the case studies.  Does it make more sense to create a separate repo for each, as in the SWHS example, or one Case Studies repo?  My initial thought is a separate repo for each, but since the amount of modification to the case studies is dropping off, this might divide things up too much.

I would think a single repo would suffice.  We could always add more case studies to it later, all in one convenient place.

Yes, I agree.  A single repo is fine, although I would like to continue to maintain SWHS as a separate repo.

Sorry I didn't respond until now, I seem to have accidentally archived the email chain for this issue (and was looking at the older issues until now).
I think we should remove the case studies to their own repo (with the exception of SWHS which, if we're already maintaining it separately, shouldn't be a problem). It will also make the log a bit cleaner when we're adding case studies down the road.
Linking to the case study repository would be a necessary, I'd suggest right from the root README.

I think we are agreed to move the Case Studies out of the Drasil repo, into their own repo, with pointers in the Drasil repo to the Case Studies.  @JacquesCarette offered to create the external repo, but maybe it makes more sense if I do it, since the SWHS example is already under my GitHub user name?  It isn't a big deal either way.  @JacquesCarette, if you want me to create a Case Studies repo, you can assign this issue to me.  If you would rather do it, please go ahead.  😄
A Case Studies repo would be nice for what we are doing right now with @halonazhao and @deviprasad135.  The issues that we create that involve changing the manual version of the case studies can be issues that exist in the case studies repo.

@smiths I think it makes sense for you to create this under your own name.
Eventually, we might want to look into creating a 'group' to own all of this. But that can wait.

The case studies have been moved to https://github.com/smiths/caseStudies.  Without much effort, I was able to keep the commit history for the new repo.  😄
In commit d898c6bd I have removed the case studies and included a pointer to them in the README.md file.


implement backend - a system can give scores to winner based on their word is minority or not when the game ends.

1cfcb0adf7c276f06050c3afed7a7383ba2f7102


normalization

how do i apply the normalization in the ffmpeg?
because some songs on youtubes are quieter than others etc
Cheers

Please have a look over http://superuser.com/questions/323119/how-can-i-normalize-audio-using-ffmpeg

that being said.. what file do i edit in musicbot?
i can look at the docs, but the musicbot calls ffmpeg what part do i need to edit to add commandlines?
Cheers

If you read carefully you noticed that ffmpeg is third-party software.
Ways to "edit" it are described in the link i posted.
`I created a Python script to normalize media files, available on PyPi as well. You simply:
download ffmpeg (choose a static build)
put the ffmpeg executable in your $PATH by either adding it in, for example, /usr/local/bin, or adding its directory to $PATH
To install: Either run pip install ffmpeg-normalize or in the source code, run python setup.py install.
Once the script is installed, use ffmpeg-normalize
On Ubuntu / Debian:
sudo apt-get install ffmpeg python-pip
sudo pip install ffmpeg-normalize
For example, to normalize the audio of every MP4 file to 0 dB, run this:
ffmpeg-normalize *.mp4
It'd output WAV files with the normalized audio, using the prefix normalized-. You have to merge the audio back into the original files. See this answer on how to do it.`

i think you don't get what i am asking, this musicbot itself uses ffmpeg does it not? and if so somewhere int here is the function to call it, i'm asking where, so i can add the propper for normalization

Yes, the MusicBot does use ffmpeg. We won't help you modify the code though. If we did that we'd have to help the hundreds of other people that ask for code help regularly.
We have a separate issue about sound normalisation here which you might want to read: https://github.com/SexualRhinoceros/MusicBot/issues/156


Files listing is not always sorted, we sort it for sequence detection

pre-sorting by the OS depends a lot of the OS (and version), thanks @pjotrek-b for the report.

Thanks for finding the reason so quickly :smile:

@pjotrek-b please test corresponding build.

Tested with build 18.06.20180607:
Encoding now works as expected: no more multiple video streams in the output, no more crash, proper runtime :smile:

We’ve played on various settings and for what we’ve tested all worked fine. Hooray!

@retokromer if there are comments, please fill issues so we can track them well.

BTW: Also the installation via Linuxbrew did work. (Merci @g-maxime!)


Possible to use with type-graphql and other third party libraries that require decorators?

Is it possible to use this library with libraries that also require using decorators in classes?
I'm currently trying to use this library with type-graphql and am running into an "Error: No such entity named "User" is known to TypeDORM" error.
Here's my setup currently:
@Entity({
  name: 'user',
  primaryKey: {
    partitionKey: 'user#{{id}}',
    sortKey: 'meta',
  },
})
@ObjectType({ implements: Node })
export class User extends Node {
...

The error resolves when removing the ObjectType decorator so I assume it's because of some sort of conflict but I'm relatively new to using decorators.

I was injecting the createConnection/using the entity manager in the wrong spot which caused the issue.


update info about not supported technologies

https://github.com/MicrosoftDocs/windows-itpro-docs/issues/1933

Thanks @VLG17.
@nenonix and @JohanFreelancer9 for copy review please. Thank you.

Can you please clarify this @VLG17 IE11 does not support CSS properties, JavaScript modules and certain APIs. That's not accurate, it does, but there are some modern CSS properties that do not work or are just partially supported. For example Flex, I personally never got that to work without a hack. Also, that statement contradicts the first sentence. Thanks.

Hi again @VLG17 following up on the update on this PR. Thank you.

Hi @eavena and @Dansimp, this pull request is ready for your final review and approval. It clarifies IE11 support with regard to modern web standards. Thank you. See: changes.

Hi again @eavena and @Dansimp, if time permits, kindly check this PR and please merge if there are no issues. Thank you.
@AndreaBarr would you be able to help? This PR contains a minor content update that clarifies IE11 support. Thank you.

@eavena @Dansimp please review for merging

Thank you very much for merging this PR @Dansimp!
Appreciate the help as well @AndreaBarr!


[SPARK-24948][SHS] Delegate check access permissions to the file system

What changes were proposed in this pull request?
In SparkHadoopUtil. checkAccessPermission,  we consider only basic permissions in order to check whether a user can access a file or not. This is not a complete check, as it ignores ACLs and other policies a file system may apply in its internal. So this can result in returning wrongly that a user cannot access a file (despite he actually can).
The PR proposes to delegate to the filesystem the check whether a file is accessible or not, in order to return the right result. A caching layer is added for performance reasons.
How was this patch tested?
added UT

cc @jerryshao @mridulm

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1900/
Test PASSed.

Test build #94357 has started for PR 22021 at commit fb68910.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1901/
Test PASSed.

Please change the title to add branch 2.3 backport tag.

Test build #94357 has finished for PR 22021 at commit fb68910.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/94357/
Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/1910/
Test PASSed.

Test build #94370 has started for PR 22021 at commit fb68910.

merging to branch-2.3.

@mgaido91 already merged to branch 2.3, please close this PR.

Thanks @jerryshao , closing.


Go Back Button doesn't work on Jitsi Meet

Hello team!
I tested Jitsi Meet and tipping during the meeting.
The "Go back" button in the wallet does not work correctly (it is not active from time to time):

I tested SH wallet 9302621 / v.0.3.2 on Chrome, Firefox and Brave browsers.

It is actually going "back" in the jitsi's iframe history

It is actually going "back" in the jitsi's iframe history

Probably a problem with cross-iframe navigation.

Should be fixed in 0.3.3. @venimus can you try the release branch and confirm if everything is ok.

@mradkov Can we close this if it's fixed? As I remember this problem was on 0.3.2 but not on 0.3.3

Tested, works on my side. This issue can be closed.

Current version of wallet doesn't have such problem. Feel free to reopen this issue, if it will pop up in next versions.


*.ETL files

Please add cleans *.ETL files.
An ETL file is a log file created by Microsoft Tracelog, a program that creates logs using the events from the kernel in Microsoft operating systems. It contains trace messages that have been generated during trace sessions, such as disk accesses or page faults. ETL files are used to log high-frequency events while tracking the performance of an operating system.

由于没有人提供实现，因此关闭。


Regarding Copyright

The Copyright displays "2022" along with it . I can fix this and make it so that it dynamically changes according to year .
So you won't need to change it in year 2024, 2025 or so on

Please assign this task to me and
please add the label of hacktoberfest and hacktoberfest-accepted

Kindly Checkout the pull request , thank you


allow multiple telegram

Display single telegram work. display multiple telegram should work but haven't tested.
Edit community telegram is currently broken

Unable to reproduce the issue with community editor. Investigation is in progress.

Thanks to the fix from Carina, it's now fully works.


Add support for auto, min-content, max-content

Hopefully this starts to sort out Issue #18.
I just added an extra line to the pattern tests to see if the unit is in a list of known keyword units.
Please let me know if there is anything else I need to do! :grin:

Thanks!


chore: Update pt-br translations

I just found one missing key 😄
Asked in #411

Those are missing too :
  connectingToGitHub: 'Connecting to GitHub...',
  preparingGitPoint: 'Preparing GitPoint...',
  cancel: 'CANCEL',

@machour sorry about that, I didn't see, but it's already updated 💃


CMB-586: add booklets CRUD documentation

Fixes CMB-586
Checklist

[ ] Up to date with main
[ ] All the tests are passing

[ ] Delete all resources created in tests

[ ] Prettier
[ ] Spectral Lint
[ ] npm run bundle outputs nothing suspect
[ ] npm run postman outputs nothing suspect

Changes

Adds booklets CRUD documentation

The fields to create a booklet and that are present in the response body are in accordance with the fields listed in this google doc - https://docs.google.com/document/d/1bogXv4M2eAwvNFx6QvkakBVAqN35x4Rk8rKP4C9Uetc/edit
The booklet fields are a subset of the letter fields
Booklets are always printed in color. Hence the default is true.
The size property defaults to 9x6.

The code samples are not added because the booklets resource does not exist in the SDKs. Once the SDK is updated with the booklet resource, the code samples will need to be introduced.

Areas of Concern (optional)
As mentioned above, the code samples are missing. This is because they are not part of the SDKs. Once they are introduced in the SDKs, the docs will need to be updated.
I encourage the reviewers to pull down the branch and preview the HTML to catch any errors or mistakes prior to approval.

The booklets launch is scheduled for end of July. This PR is expected to be merged when we're good to go with the launch of booklets. However, at this moment in time, it is good for a review.


Canonical way for popping outer ImplicitNavigator in nested scenarios

So I'm playing with ImplicitNavigator to get a feel for the sweet spot between imperative APIs and the behemoth that is GoRouter, and one thing I'm not finding intuitive is handling completion of "flows" when in a nested ImplicitNavigator scenario. Given the following "flow":
sealed class RootFlowStep {}

base class Start extends RootFlowStep {}

base class AddFix extends RootFlowStep {}

base class ViewFixDetails extends RootFlowStep {
  final String fixId;

  ViewFixDetails(this.fixId);
}

base class Settings extends RootFlowStep {}

class RootFlow extends StatelessWidget {
  final ValueNotifier<RootFlowStep> _flow = ValueNotifier(Start());
  RootFlow({super.key});

  @override
  Widget build(BuildContext context) {
    return MultiProvider(
      providers: [
        ChangeNotifierProvider.value(value: _flow),
      ],
      child: ImplicitNavigator.fromValueNotifier(
        valueNotifier: _flow,
        builder: (
          BuildContext context,
          RootFlowStep value,
          Animation<double> animation,
          Animation<double> secondaryAnimation,
        ) {
          switch (value) {
            case Start():
              return const FixesPage();
            case AddFix():
              return AddFixFlow(onComplete: () {
                // TODO: Best way to show `Start()` here?
              });
            case ViewFixDetails():
              return FixDetailsFlow(
                fixId: value.fixId,
                onComplete: () {
                  // TODO: Best way to show `Start()` here?
                },
              );
            case Settings():
              return const SettingsPage();
          }
        },
      ),
    );
  }
}

In the above, AddFix and ViewFixDetails() are both "sub-flows" that use their own ImplicitNavigators to show various "screens" that allow users to take action. Once they are "done", onComplete is invoked. It makes sense to me to have the parent flow (in this case RootFlow) own the completion behavior, but doing so is proving to be finicky.
Attempt 1:
Originally I simply did _flow.value = Start() but this results in a new page being added to the stack, such that the resulting stack is:
RootFlow (Start) => AddFixFlow (_) => Start

Attempt 2:
Second, I tried ImplicitNavigator.of(context).pop() but this results in a pop being called on the AddFixFlow's ImplicitNavigator and the user is simply sent back a single page.
Attempt 3:
For funsies, I gave ImplicitNavigator.of(context, root: true).pop() a whirl, but this had no real effect (visually at least)

So, what's the "correct" way to do this, and/or how should I be thinking about this differently?

Actually, putting aside the question of popping from the outer Navigator, I'm noticing that just the code above produces a bug where there are 2 FixesPages 🤔 :

From what I can tell, this is because it's added in both initState and didUpdateWidget.

So the critical piece missing here is the getDepth parameter. Implicit navigator uses depth to determine if a new page should be added to the stack or if it should replace the stack. You can think of a change in value as vaguely equivalent to:
if (newRoute.depth == null) {
  return Navigator.push(newRouter);
}
Navigator.of(context).pushAndRemoveUntil(
  newRoute,
  (route) => route.depth < newRoute.depth,
);

So here's my understanding of your desired outcome:

User opens the app and is greeted with RootFlow (start)
User taps AddFixFlow
User taps Finish which SHOULD take them back to RootFlow (start)

Instead (under attempt 1) you get the root appended to the end instead of popping back to the original root:
RootFlow (Start) => AddFixFlow (_) => RootFlow (Start)
This is because you haven't specified getDepth so whenever the state changes, implicit navigator assumed the new depth value is null, and null is a special case that basically means "Always append".
If you add the following to your root level navigator, everything should just work!
   getDepth: (RootFlowStep step) {
    // You could alternatively give each `step` class an `index` attribute and just return it.
    // This is even easier with enums because they inherently have an ordering.
    // I don't understand sealed classes well yet, so maybe there's a cleaner way
    // to do this.
    return switch (step) {
      Start _ => 0,
      AddFix _ => 1,
      ViewFixDetails _ => 2,
    };
  },

Now, when you update the value to start, Implicit nav sees that start is depth zero, so it pops all the extra pages off the top.
My action items from this (let me know if you think this will help):

The README is wayy too information dense, I've been meaning for awhile to rewrite it to frontload the important information. Namely, I think my discussion of app style and browser style navigation really needs to be removed or put at the bottom because it's really not relevant to 90% of users.
Maybe I should make getDepth and depth required arguments, but keep them nullable so it's much more clear that they're important? I could add kAlwaysAppend as a convenience for getDepth that always returns null to make it easier to navigate the API.
Good catch on the bug, I'll look into it and fix it.

So the critical piece missing here is the getDepth parameter

Doh! I knew it had something to do with depth but totally overlooked the parameter. To your point on the README, I think you're right about refactoring it in such a way that the most common stuff is super obvious and more complex use cases are nested/abstracted out for those who know what they're looking for (FWIW I could've done a better job here with regards to API exploration!)

Maybe I should make getDepth and depth required arguments, but keep them nullable so it's much more clear that they're important?

I have to noodle on this a bit more, I think, but right now I'm leaning towards liking the idea of getDepth being be required. It feels pretty common/basic to require some idea of depth which the implicitness of the package itself. OTOH, it's one of those things that once you run into it once, you probably(?) don't forget it again.
PS what I ended up with (for now) is the following:
abstract class FlowStep {
  final int depth;

  FlowStep({required this.depth});
}

I then had RootFlowStep extend that, and all subclasses of RootFlowStep declare their depth:
base class Start extends RootFlowStep {
  Start() : super(depth: 0);
}

base class AddFix extends RootFlowStep {
  AddFix() : super(depth: 1);
}

base class ViewFixDetails extends RootFlowStep {
  final String fixId;

  ViewFixDetails(this.fixId) : super(depth: 1);
}

base class Settings extends RootFlowStep {
  Settings() : super(depth: 1);
}

It's interesting to note here that basically all non-root screens or sub-flows have a depth of 1. It makes sense, but I wonder if it's a foot gun in the future if the flow gets refactored and I forget to change depths of the various steps? For instance, if I wanted to ship a step in between Start and Settings (like an FTUX screen or something, idk), then Settings should become 2 and the FTUX screen should become 1. Actually that case would be even more complicated, because presumably that FTUX displaying would be conditional, so I'd need to have my depth be conditional as well. Obviously still more fiddling here to do!
It's probably obvious but for completeness I'll just add that my navigator definition became:
ImplicitNavigator.fromValueNotifier(
  valueNotifier: _flow,
  getDepth: (step) => step.depth,
  builder: ...
)

@caseycrogers Let me know how you wanna handle this ticket. Happy to keep it open to address the README, getDepth parameter, and double-stack-entry bugs, but I'd also be happy to file those separately and close this one out. Just lemme know!

Leave this one open and I'll close it out when I get the action items done!


Fixes ENOENT issue when a folder is added and quickly removed

This issue was occurring for me while watching files. A unit test would create a folder and remove it before readdirSync had a chance to read it, thereby causing an exception.

Thanks!

@shama could you please publish this?
I know you are probably very busy, if you would like some help with this, I'm a maintainer and publisher for lots of NPM modules and would gladly take care of basic house keeping for this module here and there :)
My NPM is https://www.npmjs.com/~alexgorbatchev
My Github is https://github.com/alexgorbatchev
Add me on NPM with the npm owner add alexgorbatchev and on Github as a contributor.
Cheers!

@alexgorbatchev Thanks for the ping! I'm rebuilding the Windows tests and then will publish a new patch. I've added you as an owner of this project as well. Thanks for your help!

Published as 1.1.2. Thanks!

Thank you so much! 👍  💯


The ddoc list call got timeout even though os_process_timeout is adjusted

I'm using the ddoc list function with the native Erlang query server.
It keeps timeouting in a time-consuming list function, even though my os_process_timeout is set to 80000 .
I have no idea about the couchdb internal, and my Erlang is quite rusty,
but this simple patch can solve my problem.
Hope this patch can help for identifying the actually issue.

The log is here
[error] 2020-04-04T08:58:10.500532Z<EMAIL_ADDRESS><0.698.0> a72702703a req_err(4053083524) timeout : The request could not be
 processed in a reasonable amount of time.
    [<<"gen_server:call/2 L215">>,<<"couch_query_servers:proc_prompt/2 L520">>,<<"couch_mrview_show:send_list_row/2 L279">>,<<"
fabric_view:maybe_send_row/1 L132">>,<<"rexi_utils:process_mailbox/6 L55">>,<<"fabric_view_map:go/6 L81">>,<<"fabric_view_map:g
o/8 L44">>,<<"couch_query_servers:with_ddoc_proc/2 L514">>]

Hi @iblis17,
Thank you for this patch!
Do you think you could include a test with this change?


StringLookup layer adds None to list of saved model variables which breaks hub.KerasLayer

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Colab
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: No
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): v1.12.1-39890-gf74cc7a696 2.4.0-dev20200821
Python version: Colab default
Bazel version (if compiling from source): No
GCC/Compiler version (if compiling from source): No
CUDA/cuDNN version: No
GPU model and memory: No

Describe the current behavior
When loading (tf.saved_model.load) saved model (tf.saved_model.save) with StringLookup layer, None appears in list of model variables.
This breaks loading such model in tensorflow_hub.KerasLayer
Describe the expected behavior
Saved model should not contain None in list of variables
Standalone code to reproduce the issue
https://colab.research.google.com/drive/1sVGGeJZ2rq6PofMXJ31gknhnYomHFyX7?usp=sharing

TF 2.4.0: issue still here

Hi @shkarupa-alex, can you try this with the Keras saving/loading APIs instead of the TF ones?
model.save('model')
restored = tf.keras.models.load_model('model')
should get around this issue.

@markomernick , your solution woks if used in custom code.
But originally this issue occurred when i tried to use exported model thru TF-Hub. Just to make solving easier i dug deeper to find source of the issue.
At the moment issue with loading model with TF-Hub is present. I've added example at the end of https://colab.research.google.com/drive/1sVGGeJZ2rq6PofMXJ31gknhnYomHFyX7?usp=sharing#scrollTo=lPCNaXQn2wx7

TF 2.5.0: issue still here

Was able to reproduce the issue in TF 2.6.0-dev20210528,please find the gist here..Thanks !

@shkarupa-alex I tried to replicate the issue on colab using TF v2.8.0 and didn't see the error reported here .Please find the updated  gist and let us know if it helps?Thanks!

Seems that issue was resolved. At leas my test case in first message working well.

@shkarupa-alex Thank you for the update!
Could you please move this issue to closed status if it is resolved for you ?
Thanks!


Vulnerability roundup 114: ncurses-6.2: 1 advisory [7.1]

search, files

[ ] CVE-2022-29458 CVSSv3=7.1 (nixos-21.11)

CVE details
CVE-2022-29458
ncurses 6.3 before patch 20220416 has an out-of-bounds read and segmentation violation in convert_strings in tinfo/read_entry.c in the terminfo library.

Scanned versions: nixos-21.11: 3c5ae9be1f1.

See also: #142998

22.05 has 6.3-p20220507, 21.11 out of support


Could not load image "xpanes_space.png"

2020-04-11 18:45:07: ERROR[Main]: generateImage(): Could not load image "xpanes_space.png" while building texture; Creating a dummy image
2020-04-11 18:45:07: ERROR[Main]: generateImage(): Could not load image "xpanes_space.png" while building texture; Creating a dummy image
Seems like this png has vanished from the xpanes mod. You may want to replace it?
Line 70 of doors.lua asks for that png

c64128beae9b4a8a0


Fixes #692-Add_progress_bar_visual_element

Fixes #692
About
This PR creates a new visual element - Progress Bar (linear and circular). Currently this issue is being worked upon, this is only a draft for the review by the maintainers.

@yaten2302 Sorry but why did you close the PR? Did I miss anything?


HOTFIX: keep restore consumer assignment in sync & don't prematurely mark task closed

This fixes two issues which together caused the soak to crash/some test to fail occasionally.
What happened was:
In the main StreamThread loop we initialized a new task in TaskManager#checkForCompletedRestoration which includes registering, but not initializing, its changelogs. We then complete the loop and call poll, which resulted in a rebalance that revoked the newly-initialized task. In TaskManager#handleAssignment we then closed the task cleanly and go to remove the changelogs from the StoreChangelogReader only to get an IllegalStateException because the changelog partitions were not in the restore consumer's assignment (due to being uninitialized).
This by itself should^ be a recoverable error, as we catch exceptions here and retry closing the task as unclean. Of course the task actually was successfully closed (clean) so we now get an unexpected exception Illegal state CLOSED while closing active task
The fix(es) I'd propose are:

Keep the restore consumer's assignment in sync with the registered changelogs, ie the set ChangelogReader#changelogs but pause them until they are initialized
Move the StoreChangelogReader#remove call to before the task.closeClean so that the task is only marked as closed if everything was successful. We should do so regardless, as we should (attempt to) remove the changelogs even if the clean close failed and we must do unclean.

@guozhangwang @vvcephei

Ok to test.

Ran the tests locally twice: one unrelated failure in shouldWorkWithRebalance (that fix coming next) but otherwise all green. Prior to this I saw 1-2 failures per run due to the issue(s) fixed here

Why are there no new test cases for this bug in this PR?

I'll make a note to add test cases for this in the next PR


Start stubbing out the structure of the dynamics

This is to begin addressing #11.
@jozefg Does the DYNAMICS signature look reasonable to you?

I'll merge this now, but I expect we'll have bugfixes to do as soon as we have any way to try this code out.


Fix fork again increase indent

I simply tried to avoid more indentation.
Please confirm.
fix #92

I have tested this and it fixes #92!
Thank you for this patch!


Symbol mapping

I think currently you take the first symbol we can find in Yahoo ?
Would it be possible to somehow specify the symbol to be used?
Eg in my case it used SPY5.L but I would have preferred SPY5.DE.
Many thanks
T

Hi there!
The Security Service looks for the first match based on the currency that is related to the transaction. In most cases this works.
I have previously added a setting called DEGIRO_PREFERED_EXCHANGE_POSTFIX, which was added for DEGIRO but can also be used for other brokers. When you put .DE in this, it will try to take symbols that match that postfix. Is this something that could suit your needs?
I think it's not a good idea to maintain a list of specific symbols. This could open pandora's box and cause all kinds of other problems.

I am not sure, what I am sure is that for SPY5 it was completely wrong.
Eg SPY5.L is in USD but SPY5.DE is in EUR, even though the share class is in USD.
Maybe what I am saying doesn't make any sense

I think I get what you mean. I have had this issue with other ETF's as wel (V3AL, SMH). However I have not found a way to make this consistently work and it has been a rabbit hole I currently don't want to get back in to 🙈


Update registry.fedoraproject.org/fedora-minimal Docker tag to v42

This PR contains the following updates:

Package
Type
Update
Change

registry.fedoraproject.org/fedora-minimal
final
major
40 -> 42

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), 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.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: Containerfile.utils
Post-upgrade command 'renovate-post-upgrade-task.sh >>README.md' has not been added to the allowed list in allowedPostUpgradeCommands


Port puppet specs to rspec 3

This is WIP so please don't merge.
At this point specs look good on my laptop (mavericks) and travis (ubuntu 12.04), but windows has 334 spec fails. I'm taking a look at the windows spec failures (which look largely mechanical), but meanwhile, if anyone wants to review the changes so far, go for it!

@MikaelSmith or @joshcooper or @hlindberg can any of you comment on this, not so much from the perspective of the individual commits (which may be dauntingly vast from a line count perspective) but from the "do we even want this" perspective?
I ask because it's proving to be a fair bit of work to keep rebasing it against other incoming spec changes (and I still haven't arrived at a 100% reliable windows spec environment - next stop will be to use vmpooler).
So if the collective feeling is 'meh', I'll just drop this PR (but keep the branch around if (my/our) interest ever revives).
Thanks for any comments!

Rspec 3 has composable matchers which is something that will make it possible to write better spec tests. There are several such cases in the puppet language part of our test suite. While you can typically make it work with other mechanisms it is hard to provide meaningful failure messages. (We even have a ticket to improve one such implementation). So yeah, it is worth it.

@kylog overall I'm +1 with the direction. As to be expected, I'm getting a few windows failures: https://gist.github.com/joshcooper/01981d9ec46517db82f6 I can help wrap those up tomorrow.

@joshcooper cool, I've been pushing up some windows fixes as I go this afternoon and might have some of that gist fixed. But not all. It is really close though, so I'd very much appreciate the help tomorrow.
One puzzler though: I don't have the file spec/ext/windows/service/daemon_spec.rb in my tree at all.

@joshcooper or @hlindberg I've removed the WIP prefix on the PR because there are no remaining spec failures on travis, my mavericks laptop, or my windows 2012 vm (except for a handful of specs I see on puppet/master as well - artifacts of my dev environment that I won't bore you with at the moment ... ;)).

PR passes for me also on 2008r2.

PR passes for me also on 2008r2.

Woot!

@joshcooper and @hlindberg: any additional thoughts on this? I know Josh got a chance to review part of it.
And two logistics questions:

Should I file a ticket for this? Currently it's all "(maint)" which is often what we use where there's no functional change, as here. But worth checking.

Should I squash?  I usually don't like this, but in this case, the individual commits may have some value where they were shedding light on particular fixups needed. And if all squashed, the more interesting bits, will be lost in the sea of mechanical changes. I could go either way on this.

No ticket really needed unless there is documentation / discussion we want to have with puppet developers. (And something for people to click on in the release notes).  (I am ambivalent).

Ambivalent here as well - choose your poison.

Rebased.

I'm thinking we should email puppet-dev about the move to rspec3 and what this will mean for submitted PRs, e.g. using expect(..).to eq(42), etc. Having a ticket to point people to might be helpful, but I'm fine either way...


fix: fedimint-cli invite-code

Removes invite-code command from fedimint-cli dev and re-adds it as a non-dev command. The invite code is sourced from client database where it was stored the first time a client is created
fixes #3178

@okjodom Does this close https://github.com/fedimint/fedimint/issues/2556?

Yes, but also the issue is outdated. command is now fedimint-cli invite-code


Allow Inline Disabling of JSII Errors and Warnings

:rocket: Feature Request
Affected Languages

[X] TypeScript or Javascript
[ ] Python
[ ] Java
[ ] .NET (C#, F#, ...)
[ ] Go

General Information

JSII Version: 1.55.1 (build 07d2d90), typescript 3.9.10
Platform:     Windows 10
[X] I may be able to implement this feature request
[ ] This feature might incur a breaking change

Description
JSII tries to enforce various coding standards as a part of its build process. This creates massive issues with various edge cases, as there is no way to disable these checks currently (even the "Diagnostics" section of the Documentation fails for most of its examples now). An example of this can be seen with the discord-bot-cdk-construct project, where Discord's APIs expects allowed_mentions (ie: camel case). However, because there is no way to disable JSII8002, it is impossible to build a TypeScript API that supports this today using JSII.
Proposed Solution
There needs to be a way to disable certain code sections inline, similar to what is in the above example for eslint.

An example of this can be seen with the discord-bot-cdk-construct project, where Discord's APIs expects allowed_mentions (ie: camel case). However, because there is no way to disable JSII8002, it is impossible to build a TypeScript API that supports this today using JSII.

We made the decision to be opinionated here so that APIs have a consistent look-and-feel and we can reliably transpose these in other languages.
In the example provided, the way to go would be to expose an allowedMentions property "publicly", but serialize to allowed_mentions privately... Unless what you are trying to say here is that you would prefer to keep the original snake-casing in your exported API in order to meet user expectations?

We made the decision to be opinionated here so that APIs have a consistent look-and-feel and we can reliably transpose these in other languages.

@RomainMuller I appreciate the pursuit of uniformity, but I do agree that an escape hatch would be sensible in certain situations.  For example, I am currently running into JSII8002 because I have a method on a construct to generate parameters for an rds.ParameterGroup.  My understanding is that Postgres expects these values in snake case however to get around JSII8002 I suppose I have to do something like:
class MyConstruct extends Construct {
  constructor(scope: Construct, id: string) {
    super(scope, id);

    const params = this.buildParameters();
    const parameterGroup = new rds.ParameterGroup(this, "parameterGroup", {
      // ...
      parameters: {
        shared_buffers: params.sharedBuffers,
        effective_cache_size: params.effectiveCacheSize,
        work_mem: params.workMem,
        maintenance_work_mem: params.maintenanceWorkMem,
        max_locks_per_transaction: params.maxLocksPerTransaction,
        temp_buffers: params.tempBuffers,
        seq_page_cost: params.seqPageCost,
        random_page_cost: params.randomPageCost,
      },
    });
  }

  public buildParameters(): DefaultParameters {
    return {
      sharedBuffers: '...',
      effectiveCacheSize: '...',
      workMem: '...',
      maintenanceWorkMem: '...',
      maxLocksPerTransaction: '...',
      tempBuffers: '...',
      seqPageCost: '...',
      randomPageCost: '...',
    };
  }
}

export interface DefaultParameters {
  readonly sharedBuffers: string;
  readonly effectiveCacheSize: string;
  readonly workMem: string;
  readonly maintenanceWorkMem: string;
  readonly maxLocksPerTransaction: string;
  readonly tempBuffers: string;
  readonly seqPageCost: string;
  readonly randomPageCost: string;
}

This feels a bit cumbersome when I really just want:
class MyConstruct extends Construct {
  constructor(scope: Construct, id: string) {
    super(scope, id);

    const parameterGroup = new rds.ParameterGroup(this, "parameterGroup", {
      // ...
      parameters: this.buildParameters(),
    });
  }

  public buildParameters(): DefaultParameters {
    return {
      shared_buffers: '...',
      effective_cache_size: '...',
      work_mem: '...',
      maintenance_work_mem: '...',
      max_locks_per_transaction: '...',
      temp_buffers: '...',
      seq_page_cost: '...',
      random_page_cost: '...',
    };
  }
}

export interface DefaultParameters {
  readonly shared_buffers: string; // @jsii-ignore:JSII8002
  readonly effective_cache_size: string; // @jsii-ignore:JSII8002
  readonly work_mem: string; // @jsii-ignore:JSII8002
  readonly maintenance_work_mem: string; // @jsii-ignore:JSII8002
  readonly max_locks_per_transaction: string; // @jsii-ignore:JSII8002
  readonly temp_buffers: string; // @jsii-ignore:JSII8002
  readonly seq_page_cost: string; // @jsii-ignore:JSII8002
  readonly random_page_cost: string; // @jsii-ignore:JSII8002
}

If you have any ideas on how to implement this

With this said, I'm not familiar enough with JSII's internals to understand how to add such an escape-hatch comment.

Implementing inline diagnostic moderation would likely require a significant re-architecting of the compiler infrastructure... I think it is the right thing to do in the long run, but it will be no small feat.


Got error "stopped after 10 redirects"  when trying to download twitter video

when I download twitter video, always got a  error. stopped after 10 redirects
Ex:
`annie -x http://<IP_ADDRESS>:9999 -i -d "https://twitter.com/SYJll3U3MLpDrAR/status/1159868337649643520/video/1"
annie: version 0.9.4, A fast, simple and clean video downloader.
Downloading https://twitter.com/SYJll3U3MLpDrAR/status/1159868337649643520/video/1 error:
request error: Get /SYJll3U3MLpDrAR/status/1159868337649643520/video/1: stopped after 10 redirects`
looking forward for your help~
thx very much!

Takes a while, but downloading using this "annie https://twitter.com/SYJll3U3MLpDrAR/status/1159868337649643520" worked for me


Show warning and error badges on the map

Post-#5830, native iD issues are listed in a dedicated pane. We should show them on the map as well and have a visibility toggle like we have for KeepRight and ImproveOSM.

I think that this would be a good idea if it wasn't on by default, similar to how keepright errors are not on by default.  If a new user is editing, and suddenly starts seeing a bunch of yellow warnings on the map, they will likely not know what they mean and why they are there.  Turning on the map symbols should be a checkbox in the validations pane with default not toggled.

I think that this is be a good idea if it isn't on by default

Yep, this would be optional.
I'm also thinking that feature highlighting similar to iD's visual diffs (#6843) might be better than badges. There's lots of potential for different highlight styles. Re: #6616.


Suppress, hide or disable the error/warning messages

I was wondering if there was a way to suppress, hide or disable the error or warning messages outputted to the screen?
  There are only a few o these messages until it finds the header.
I do not understand CASE 2, I do not know what is happening, but it seems to read the frame in the end.  There are many of these messages and adds minutes to the processing time.

Yes, the messages come from FFmpeg. You could try setting the FFREPORT environment variable before running your script. I have no idea if this works but you can try:
export FFREPORT=level=info
Source: https://ffmpeg.org/ffmpeg.html#Generic-options

Thanks for the suggestion, but it does not suppress the messages.  I see comments about rebuilding FFMpeg and/or OpenCV, but was hoping for a easier answer.

Closing because this is not directly related to this repository. Most likely the only solution is to rebuild OpenCV and FFmpeg and disable all error reporting.


Batch encoder and INTT

I wonder why there is inverse_ntt_negacyclic_harvey() operation at the end of BatchEncoder::encode()? Could you please explain the rationale? Thanks.

The encoding algorithm itself is inverse negacyclic NTT over the plain_modulus. If you look at decoding, there is forward negacyclic NTT too.

Thanks. I can understand that functionality-wise this is fine. But I am wondering why it is designed like this? Is it required by the batch encoder?
Can I remove the INTT in encode() and NTT in decode()? That way, it may improve the performance a little bit?

Yes, it is required by the batch encoder. Actually the batch encoder is 100% INTT.

Do you mind explaining why this is the case? Or share a pointer to any publication? Thanks a lot!

It is explained in the old SEAL manual in section 7.4.

@yyang172 from the  convolution properties of the NTT : InvNTT(NTT(a) * NTT(b)) = a (x) b, similarely NTT(InvNTT(a) (x) InvNTT(b)) = a * b, for * the component-wise multiplication and (x) polynomial multiplication.

Thank you for the pointer and explanation @WeiDaiWD @Pro7ech !


How does Traffic Server process the http request which in 2 QUIC packets?

Hi,
I have some questions about QUIC support in TS, could you help answer it?
1.Traffic server is multiple threads support which share a single listening socket. If thread1 processes part of a http request using QUIC, how can we guarantee the remaining request also can be delivered to the same thread?
2.The connection ID table is global or per thread?
3.If 2 clients use same connection id, how can traffic server handle it?

Closing now. Your answer is in #3442 , if you have any question, please feel to ask on<EMAIL_ADDRESS>or open another issue.


Improve the README

Improve the README with more information on what this repo is actually about.

Document vagrant support as well

It also doesn't reflect the current development environment anymore, see opensuse/velum:development doesn't exist or no pull access

Closing this since README has been updated a few times since


user tapping logout will always logout, even if error is returned by API

What's this PR do?
#505 documented an issue where a user was unable to logout because the logout API call returned an error.
Now, if the user hits the "logout" button, she'll always be logged out--even if an error is returned by the API.
How should this be manually tested?
Tested by logging in with user A, turning off the wifi (to produce an error for the API, which previously would've prevented logout), and then logging out. Then turning on wifi, logging in user B, and confirming that the user account data belongs to user B.
Then turning off wifi, logging out, turning on wifi, and logging in with user A again.
Also tested by logging in with user A, turning off wifi, logging out. Then turning on wifi, logging in with user A again, and confirming that user account data belongs to user A.
What are the relevant tickets?
refers to #505.

I missed that this would log the user out even if they're not connected. I don't think we should do that, it suggests they can still functionally use the app, and they can't. We can inspect the error we get back to determine whether or not the error is due to no connection.

Great, thanks @aaronschachter. Added checks for whether or not the error stems from a connectivity issue.

:+1: Awesome sauce :spaghetti:

I saw the LDTMessage was presented in the view controller underneath the settings controller, but assumed that was desired behavior. Will make the fix!


[REQUEST] Add arg for simple console output

Might not be possible, but i've found that some applications that run commandline apps are unable to run deew due to the stdout console output format.
Would it be possible to add a basic mode arg that just list things in plain old console messages rather than the nice formatted console messages which we love to see when running manually?

The output shouldn't cause problems, what are you trying to integrate deew into?

Staxrip https://github.com/staxrip/staxrip
If you call DEEW through the commandline on staxrip you get an error about the output
I did add an issue a while ago about it, but the repo isnt actively developed (https://github.com/staxrip/staxrip/issues/961)
Error Audio Encoding: Command Line (v2.13.0)

-------------------- Audio Encoding: Command Line --------------------

"C:\Program Files\Deew\deew.exe" -i "ID1 English.dtshd" -b 640 -f dd

Traceback (most recent call last):
  File "__main__.py", line 6, in <module>
  File "deew\__main__.py", line 552, in main
  File "rich\__init__.py", line 74, in print
  File "rich\console.py", line 1667, in print
  File "rich\console.py", line 869, in __exit__
  File "rich\console.py", line 827, in _exit_buffer
  File "rich\console.py", line 2024, in _check_buffer
  File "rich\_windows_renderer.py", line 17, in legacy_windows_render
  File "rich\_win32_console.py", line 442, in write_styled
  File "rich\_win32_console.py", line 403, in write_text
  File "encodings\cp1252.py", line 19, in encode
UnicodeEncodeError: 'charmap' codec can't encode characters in position 1-5: character maps to <undefined>
[34264] Failed to execute script '__main__' due to unhandled exception!

   at StaxRip.Proc.Start() in D:\Code\Github\staxrip\staxrip\Source\General\Proc.vb:line 361
   at StaxRip.BatchAudioProfile.Encode() in D:\Code\Github\staxrip\staxrip\Source\General\AudioProfile.vb:line 452


Evaluate different selection policy in ContextPool::next_context

Currently ContextPool::next_context uses a round-robin policy to select the next context, it could be useful to evaluate if others policies provide some advantage

Closed by PR #286


SuperVessel not available (need alternate free trial?)

Not sure if we'll get free access to SuperVessel. Need to update this code pattern to suggest where to go to get a free trial, if any, and of course make it also for folks that have PowerAI.

There is a new trial registration open here: https://developer.ibm.com/linuxonpower/deep-learning-powerai/vision/access-registration-form/
Sorry about the inconvenience.


Support for OnValueChangedEvent and Converter in MDReplicatedMember

The Problem
The new MDList feature brought with it the IMDDataConverter interface, this interface is used so that you can have a list of any type you want including custom classes as long as you provide a data converter. A default converter is provided that supports the basic godot types that do not require conversion.
In addition the MDReplicatedCommandReplicator also has support for OnValueChangedEvent which was introduced when the MDClockedReplicatedMember was introduced.
So right now the support for these features look like this:

MDReplicatedMember N/A
MDClockedReplicatedMember - OnValueChangedEvent
MDCRMInterpolatedVector2 - OnValueChangedEvent (Inherited from MDClockedReplicatedMember)
MDReplicatedCommandReplicator - OnValueChangedEvent (has it's own implementation)
MDList - This is not a replicated member but it has support for the IMDDataConvert. The setting for the convert is in MDReplicatedCommandReplicator

I think this is confusing and I think most of this functionality should be moved into the MDReplicatedMember if possible so all classes that inherit can support the same functionality.
However to do this we will need one big change, currently MDReplicatedMember does replication by calling Rset and RSetUnreliable directly on the node, all other replicators send their messages through the MDReplicator.
Code from MDReplicatedMember
///Replicate this value to all clients
protected virtual void ReplicateToAll(Node Node, object Value)
{
    MDLog.Debug(LOG_CAT, $"Replicating {Member.Name} with value {Value} from {LastValue}");
    if (IsReliable())
    {
        Node.Rset(Member.Name, Value);
    }
    else
    {
        Node.RsetUnreliable(Member.Name, Value);
    }

    LastValue = Value;
}

The MDClockedReplicatedMember on the other hand sends it through the replicator
///Replicate this value to all clients
protected override void ReplicateToAll(Node Node, object Value)
{
    MDLog.Debug(LOG_CAT, $"Replicating {Member.Name} with value {Value} from {LastValue}");
    if (IsReliable())
    {
        Replicator.Rpc(REPLICATE_METHOD_NAME, Replicator.GetReplicationIdForKey(GetUniqueKey()),
            GameClock.GetTick(), Value);
    }
    else
    {
        Replicator.RpcUnreliable(REPLICATE_METHOD_NAME, Replicator.GetReplicationIdForKey(GetUniqueKey()),
            GameClock.GetTick(), Value);
    }

    LastValue = Value;
}

The MDReplicatedCommandReplicator is slightly different
protected void ReplicateCommandToPeer(object[] Command, int PeerId)
{
    Replicator.RpcId(PeerId, REPLICATE_METHOD_NAME, Replicator.GetReplicationIdForKey(GetUniqueKey()), GetGameTick(), Command);
}

To allow support for data converters and for the value change event we would need to modify the MDReplicatedMember to send its messages through the replicator just like MDClockedReplicatedMember does. In addition it should be noted that the MDReplicatedCommandReplicator supports both GameClock and no-GameClock modes in the same class. This is would also be possible for MDReplicatedMember if we send the commands through the MDReplicator.
Suggested Solution
I propose that we redo the replicated members so we end up with the following end result
MDReplicatedMember

Combine the MDClockedReplicatedMember and the MDReplicatedMember into one
Values would always go through the MDReplicator, regardless of if GameClock is enabled
Support for IMDDataConverter and OnValueChangedEvent
If the IMDDataConverter setting is not specified we should check if the member we are replicating implements the interface. This would allow any class that implements the IMDDataConverter to be replicated without setting a setting for it. See example below.

MDRInterpolatedVector2

This is the renamed MDCRMInterpolatedVector2, would mostly stay the same except inherits from MDReplicatedMember

MDReplicatedCommandReplicator

Mostly stays the same except Converter and OnValueChangedEvent are supplied by MDReplicatedMember instead of it's own implementation.

MDList

Stays the same

Benefits of this change

All current and future replicated members would support OnValueChangedEvent.
All settings for replicated members will be combined into MDReplicatedMember.Settings
IMDDataConverter support will mean that you can replicate any class as long as you provide a data converter.
No more need to write your own MDReplicatedMember for custom classes, just implement the data converter interface.
No need to set the MDReplicatedSetting for data converter unless your data converter is separate from your custom class.
No outside difference between the clocked / not clocked replicated members, meaning less replicated members
No more duplicated code in all the different replicated members (eg. for OnValueChangedEvent)

Example of how a class could be it's own data converter and thus be replicated. You can note there is no need to set the data converter setting since the interface is implemented directly in the class. This change would need to be made for the MDList as well.
[MDReplicated]
protected MyObject CustomObject = new MyObject();

[MDReplicated]
protected MDList<MyObject> ObjectList;

public class MyObject : IMDDataConverter
{
    public string Value1 { get; set; }
    public int Value2 { get; set; }
    public bool Value3 {get; set; }

    public object[] ConvertToObjectArray(object item)
    {
        MyObject obj = item as MyObject;
        return new object[] { obj.Value1, obj.Value2, obj.Value3 };
    }

    public object ConvertFromObjectArray(object[] Parameters)
    {
        MyObject obj = new MyObject();
        obj.Value1 = Parameters[0] as String;
        obj.Value2 = Convert.ToInt32(Parameters[1]);
        obj.Value3 = Boolean.Parse(Parameters[2].ToString());
        return obj;
    }

    public int GetParametersConsumedByLastConversion()
    {
        return 3;
    }
}

Fixed by #64


Missing info for downloading non-OSM building data

Hi all, I was curious how to get a hold of the building geojson that is in the data folder (in the examples repository)? Is there a URL to download these for cities not in the examples folder?

Non-OSM building data is downloaded case by case, like this website for Portland .
At present, OSMsc mainly works on OSM data. What I want to demonstrate in the example repository is that OSMsc can also incorporate with non-OSM building data, if any.

yeah. Recently, I have updated this repo. The previous examples repo is also needed to do so.
I am glad u have edited the code in init.py, I am doing the v.0.2.0 version of it. All these errrors will be fixed.
As for the "key" you mentioned, I guess they are osm keys, instead of access keys (like Mapbox keys). Possibly, the key info in your city object is None, did you add key preferences at the begining? or did OSM return the valid json?


Optimizer: re-implement the RedundantLoadElimination pass in Swift

The new implementation has several benefits compared to the old C++ implementation:

It is significantly simpler. It optimizes each load separately instead of all at once with bit-field based dataflow.
It's using alias analysis more accurately which enables more loads to be optimized
It avoids inserting additional copies in OSSA

The algorithm is a data flow analysis which starts at the original load and searches for preceding stores or loads by following the control flow in backward direction.
The preceding stores and loads provide the "available values" with which the original load can be replaced.
This is the counterpart to the new implementation of dead-store elimination (https://github.com/apple/swift/pull/67122)

@swift-ci test

@swift-ci test

@swift-ci benchmark

@swift-ci test


refactor($compile): remove skipDestroyOnNextJQueryCleanData, fix data leak on some replaced nodes

This removes the skipDestroyOnNextJQueryCleanData global while also fixing an edge case where some elements removed by replaceWith did not have child elements cleaned and could leak jq data/handlers. It's a bit of an edge case but would be reproduced if jq data ever got onto the child element of a ng-if or ng-repeat before the transclude replaceWith call (or similar situations with replace:true). This is captured in the added tests (3 previously failed). Also added a test ensuring the firstElementToRemove does not trigger the element $destroy.
skipDestroyOnNextJQueryCleanData is removed by doing jqLite(firstElementToRemove).off('$destroy') before doing cleanData(fragment.qSA(*)).
Doing cleanData(fragment.qSA(*)) avoids jqLite(elements[1...n]).remove() for the multi element case while also fixing the bug mentioned above by also fetching child elements. This makes use of the fragment meaning #12041 that avoided creating it would no longer work.
JQLite.cleanData is added so this code doesn't need JQLite vs jQuery specific logic.
For the single node case this adds the .qSA(*) and may add .off('$destroy') but all the benchmarks I tried showed no effect. The replaceWith is just too small/infrequent when doing compile/link/digest.

with the patch, is the issue outlined at the comment about jQuery UI an issue?

I believe that's covered by this test added in b9389b26ba2cf6aa70372fa32a7b28c62d174bf5. As long as we always reference the current jqLite.cleanData it should be fine.

@mzgol, this is changing what you originally did for jQuery2. What do you think?

@jbedard I'll take a look on Thursday, I'm on vacation until then.

A few questions/remarks, overall I like the direction of this PR. :+1:

Moving to 1.5 - @mzgol & @jbedard can we try to combine this with #8695?

@petebacondarwin Sure, I'll have a look. It seems all my comments have been addressed so I'll take the last look and it'll most likely be ready to land.


CI Node nvml configuration issue for website and centos-gpu pipelines

Description
log output:
nvidia-container-cli: initialization error: nvml error: driver/library version mismatch: unknown.

This can be caused by a mismatch between the installed driver and the currently loaded one.  Might be cured by a machine reboot?
Occurrences
Python Docs job:
https://jenkins.mxnet-ci.com/blue/organizations/jenkins/mxnet-validation%2Fwebsite/detail/PR-21104/7/pipeline
Also, all 3 jobs in this centos-gpu pipeline:
https://jenkins.mxnet-ci.com/blue/organizations/jenkins/mxnet-validation%2Fcentos-gpu/detail/PR-21104/6/pipeline/143
What have you tried to solve it?

Retry to bypass.

Thanks for filing, @DickJC123. I believe when the system is launched, auto-updates are overriding some packages, causing the mismatch between driver and nvidia-docker. I've manually updated the AMIs used to update all the dependency software, so it should be back to normal. We are working on automating this effort.


Pipfile

Coverage remained the same at 70.577% when pulling 52b0e6e586f2ae16e4a1c9aab408a2c3877a67b7 on pipfile into 5fddad2cb6e59b137f01184cfac4bbe350060291 on master.


Fix decoding of 4-byte UTF-8 characters into UTF-16 surrogate pairs

Fix for #156

Very nice! Thanks a lot, Mark!


CommandError: Neither pygraphviz nor pydotplus could be found to generate the image. To generate text output, use the --json or --dot options.

in https://github.com/django-extensions/django-extensions/blob/master/README.rst
other commands are working but
from docs, this command is not working
python manage.py graph_models -a -o myapp_models.png
trying to run this command on the console
but this error is coming
CommandError: Neither pygraphviz nor pydotplus could be found to generate the image. To generate text output, use the --json or --dot options.

how to solve this error
and on internet there is zero data to solve this error

https://www.google.com/search?q=python+manage.py+graph_models+-a+-o+myapp_models.png+CommandError%3A+Neither+pygraphviz+nor+pydotplus+could+be+found+to+generate+the+image.+To+generate+text+output%2C+use+the+--json+or+--dot+options.&rlz=1C1CHBD_enIN904IN904&oq=python+manage.py+graph_models+-a+-o+myapp_models.png+CommandError%3A+Neither+pygraphviz+nor+pydotplus+could+be+found+to+generate+the+image.+To+generate+text+output%2C+use+the+--json+or+--dot+options.&aqs=chrome.0.69i59j69i64l3.368j0j9&sourceid=chrome&ie=UTF-8

https://django-extensions.readthedocs.io/en/latest/graph_models.html


ci/tools: Add tarball unpacker

This removes the need for using download_toplevel and having to use a brittle/fixed path when unpacking outputs, you provide a bazel target to output to a directory.

Commit Message:
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

this will conflict with #29887 - pref that lands first


Integrate gitstatusd

Large repos are slow
Would it be possible to integrate gitstatusd?
Or any other faster git implementation?
https://github.com/romkatv/gitstatus

I believe there shouldn't be a repo that is slow in the status buffer as long as we watch out for performance. (Monorepos might kill us?)

sounds like a shellprompt integration,

I thought they had an interface to query the demon
seems like not yet

Also, could you point me to any open source repository large enough to give us performance issues?

mostly internal repos
could try LLVM
it's possible that the size of the repo is not the issue but the filesystem
either way seems like the implementation in gitstatusd is faster


How to record video from a front camera without a mirror❓

Question
I am analyzing recorded video and for me, it matters to record video without a mirror.
For IOS, I added some hack. I changed this connection.isVideoMirrored = false (from true to false) at node_modules/react-native-vision-camera/ios/Extensions/AVCaptureOutput+mirror.swift.
https://github.com/mrousavy/react-native-vision-camera/blob/ef4e9fabf9410dc5630dee8220f281089c941495/package/ios/Extensions/AVCaptureOutput%2Bmirror.swift#L19
But for Android, I don't know how to record video from a front camera without a mirror.
Maybe somebody knows how can I record video from a front camera without a mirror?
What I tried
I changing the Matrix for transformMatrix in VideoPipeline.kt and other stuff, but nothing helped
VisionCamera Version
3.6.16
Additional information

[ ] I am using Expo
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar questions in the issues page as well as in the discussions page and found none.

So I added also some hack that works for android.
VideoPipeline.kt node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/core/VideoPipeline.kt

update this line https://github.com/mrousavy/react-native-vision-camera/blob/ef4e9fabf9410dc5630dee8220f281089c941495/package/android/src/main/java/com/mrousavy/camera/core/VideoPipeline.kt#L165
onFrame(transformMatrix) -> onFrame(transformMatrix, isMirrored)

update this line https://github.com/mrousavy/react-native-vision-camera/blob/ef4e9fabf9410dc5630dee8220f281089c941495/package/android/src/main/java/com/mrousavy/camera/core/VideoPipeline.kt#L212
private external fun onFrame(transformMatrix: FloatArray)
->
private external fun onFrame(transformMatrix: FloatArray, isMirrored: Boolean)

VideoPipeline.cpp node_modules/react-native-vision-camera/android/src/main/cpp/VideoPipeline.cpp

update this line
void VideoPipeline::onFrame(jni::alias_ref<jni::JArrayFloat> transformMatrixParam) {
->
void VideoPipeline::onFrame(jni::alias_ref<jni::JArrayFloat> transformMatrixParam, bool isMirrored) {

VideoPipeline.h node_modules/react-native-vision-camera/android/src/main/cpp/VideoPipeline.h
update this line void onFrame(jni::alias_ref<jni::JArrayFloat> transformMatrix);
->
void onFrame(jni::alias_ref<jni::JArrayFloat> transformMatrix, bool isMirrored);

It doesn't work in my case on iOS with the same react-native-vision-camera. Could you say what iOS device you use? Also, could you send your Camera component JSX (if something differs here)?

It doesn't work in my case on iOS with the same react-native-vision-camera. Could you say what iOS device you use? Also, could you send your Camera component JSX (if something differs here)?

What VisionCamera Version are you using?

Could you say what iOS device you use?
it works for all IOS devices

@HorbachAndrii thank you for your quick response!

What VisionCamera Version are you using?
I tried with 3.6.16 (as you mentioned) and 3.9.2. I tested with iPhone 11.

here is my AVCaptureOutput+mirror.swift file
//
//  AVCaptureOutput+mirror.swift
//  mrousavy
//
//  Created by Marc Rousavy on 18.01.21.
//  Copyright © 2021 mrousavy. All rights reserved.
//

import AVFoundation

extension AVCaptureOutput {
  /**
   Mirrors the video output if possible.
   */
  func mirror() {
    connections.forEach { connection in
      if connection.isVideoMirroringSupported {
        connection.automaticallyAdjustsVideoMirroring = false
        connection.isVideoMirrored = false
      }
    }
  }

  /**
   Sets the target orientation of the video output.
   This does not always physically rotate image buffers.

   - For Preview, an orientation hint is used to rotate the layer/view itself.
   - For Photos, an EXIF tag is used.
   - For Videos, the buffers are physically rotated if available, since we use an AVCaptureVideoDataOutput instead of an AVCaptureMovieFileOutput.
   */
  func setOrientation(_ orientation: Orientation) {
    // Set orientation for each connection
    connections.forEach { connection in
      #if swift(>=5.9)
        if #available(iOS 17.0, *) {
          // Camera Sensors are always in landscape rotation (90deg).
          // We are setting the target rotation here, so we need to rotate by landscape once.
          let cameraOrientation = orientation.rotateBy(orientation: .landscapeLeft)
          let degrees = cameraOrientation.toDegrees()

          // TODO: Don't rotate the video output because it adds overhead. Instead just use EXIF flags for the .mp4 file if recording.
          //       Does that work when we flip the camera?
          if connection.isVideoRotationAngleSupported(degrees) {
            connection.videoRotationAngle = degrees
          }
        } else {
          if connection.isVideoOrientationSupported {
            connection.videoOrientation = orientation.toAVCaptureVideoOrientation()
          }
        }
      #else
        if connection.isVideoOrientationSupported {
          connection.videoOrientation = orientation.toAVCaptureVideoOrientation()
        }
      #endif
    }
  }
}

Did you 'Clean Build Folder' before building the app?
@HorbachAndrii Thank you! I tried it with 3.9.1 and 3.9.2, but unfortunately it didn't work. I didn't clean the build folder with 3.6.16 because it had another bugs, but I tested with logs that changes were reflected.
I will check if it works with other versions of iPhone (not 11)

Hey all! I just spent some time to build a new feature: I created a PR to add a isMirrored prop to Camera: https://github.com/mrousavy/react-native-vision-camera/pull/3036
With this prop you can enable or disable output mirroring 🎉🥳
If you appreciate my time and dedication towards building new features and constantly improving this library, please consider sponsoring me on GitHub  :)

@mrousavy thank you for introducing new features! However, in this issue, we needed Preview to be not mirrored in the front camera, but it isn't supported:

To avoid dizzyness for users, the Preview will always be mirrored in the front Camera, but not in the back Camera. This is the same behaviour as in the native iOS Camera app.

This is intentional - if the preview was mirrored the app would be pretty unusable because every movement goes in the wrong direction. All camera apps mirror the front preview.
If you really really need the preview not mirrored for whatever reason, you can just apply a scaleX: -1 transform to the <Camera> view style.


What is this?

Lol is this a client fail? What you quit for? Lol.

I'm making my own game instead.

Well, good luck with that.