Proof of concept: Higher compression mode

This is a proof of concept that replaces the existing encoder with a slower but higher-compression one (an actual implementation would likely expose both as separate modes). On some PNG data I experimented on, its was as fast as miniz_oxide's level=2 but got a compression ratio better than miniz_oxide's level=9.
The key insight is that PNG data has a very skewed distribution of symbols which often makes short back-references worse than simply encoding the same data with literals. This decoder doesn't even attempt to find 3-byte back-references and 4-7 byte back-references are only used if they are likely to require fewer bits than the equivalent sequence of literals. The encoder uses a hash-table of 8 byte sequences and a separate one for 4 byte sequences. This means that with only two hash look-ups per-byte the encoder has a good chance of finding matches for most look-ups (due to the 4-byte sequence table) but doesn't risk missing 8+ byte sequences that give the biggest compression wins.
To estimate the frequency of symbols (which determines whether literals or back-references are better), the first 128 KB of the data assumes the hard-coded symbol frequencies used for the existing ultra-fast mode. Then each subsequent block of 128 KB uses the frequencies from the previous block.
Results on raw PNG IDAT data produced by re-encoding the QOI benchmark suite images...
Encoder[level]     Speed          Ratio
--------------     -----------    ------
fdeflate:          0.128 GiB/s    24.14%

miniz_oxide[0]:    0.123 GiB/s    100.02%
miniz_oxide[1]:    0.285 GiB/s    28.17%
miniz_oxide[2]:    0.128 GiB/s    26.12%
miniz_oxide[3]:    0.081 GiB/s    25.36%
miniz_oxide[4]:    0.069 GiB/s    25.24%
miniz_oxide[5]:    0.054 GiB/s    24.97%
miniz_oxide[6]:    0.028 GiB/s    24.55%
miniz_oxide[7]:    0.020 GiB/s    24.41%
miniz_oxide[8]:    0.015 GiB/s    24.34%
miniz_oxide[9]:    0.012 GiB/s    24.30%

zlib-rs[0]:        5.492 GiB/s    100.02%
zlib-rs[1]:        0.305 GiB/s    36.79%
zlib-rs[2]:        0.165 GiB/s    25.78%
zlib-rs[3]:        0.140 GiB/s    25.15%
zlib-rs[4]:        0.115 GiB/s    24.77%
zlib-rs[5]:        0.103 GiB/s    24.58%
zlib-rs[6]:        0.074 GiB/s    24.35%
zlib-rs[7]:        0.046 GiB/s    24.05%
zlib-rs[8]:        0.024 GiB/s    23.92%
zlib-rs[9]:        0.015 GiB/s    24.12%

zlib and zlib-ng
zlib[0]:           2.359 GiB/s    100.02%
zlib[1]:           0.167 GiB/s    26.99%
zlib[2]:           0.150 GiB/s    26.55%
zlib[3]:           0.098 GiB/s    25.97%
zlib[4]:           0.094 GiB/s    25.45%
zlib[5]:           0.060 GiB/s    24.97%
zlib[6]:           0.033 GiB/s    24.54%
zlib[7]:           0.024 GiB/s    24.41%
zlib[8]:           0.012 GiB/s    24.23%
zlib[9]:           0.007 GiB/s    24.16%

zlib-ng[0]:        6.785 GiB/s    100.02%
zlib-ng[1]:        0.416 GiB/s    36.79%
zlib-ng[2]:        0.217 GiB/s    25.78%
zlib-ng[3]:        0.188 GiB/s    25.15%
zlib-ng[4]:        0.146 GiB/s    24.77%
zlib-ng[5]:        0.129 GiB/s    24.58%
zlib-ng[6]:        0.087 GiB/s    24.35%
zlib-ng[7]:        0.050 GiB/s    24.05%
zlib-ng[8]:        0.026 GiB/s    23.92%
zlib-ng[9]:        0.016 GiB/s    24.12%

The initial results are very impressive! Kudos!
I wonder, what are the buffering requirements here? Maybe getting ahead of ourselves here, but: in theory, would it be possible to have an algorithm that makes two passes over a 128k buffer, first to estimate the symbol distribution and the second one to actually encode data? Would it make sense to have a mode that does those two passes for the first block only, to compress small images such as website favicons with a high ratio even if they don't fit the hardcoded distribution, and have the cost of the extra pass over a single block amortized over the runtime of a large image?

I'm happy to help with testing this, by the way. This looks like a great application for roundtrip fuzzing, and I can take care of writing the harness and running the fuzzer.

I'm curious whether keeping backreferences pixel-aligned helps.

Did some testing using geometric mean rather than a simple average. Now performance and compression ratio falls close to zlib-rs level 4 or 5. Still beats miniz_oxide and zlib:
fdeflate:          110.5 MiB/s    24.05%

miniz_oxide[0]     124.8 MiB/s    100.03%
miniz_oxide[1]     270.6 MiB/s    28.34%
miniz_oxide[2]     112.3 MiB/s    25.29%
miniz_oxide[3]      80.6 MiB/s    24.38%
miniz_oxide[4]      69.8 MiB/s    24.30%
miniz_oxide[5]      59.3 MiB/s    24.00%
miniz_oxide[6]      38.6 MiB/s    23.57%
miniz_oxide[7]      30.3 MiB/s    23.43%
miniz_oxide[8]      23.7 MiB/s    23.35%
miniz_oxide[9]      20.5 MiB/s    23.31%

zlib[0]           2417.0 MiB/s    100.03%
zlib[1]            153.2 MiB/s    26.97%
zlib[2]            142.3 MiB/s    26.45%
zlib[3]            106.6 MiB/s    25.78%
zlib[4]             88.6 MiB/s    24.68%
zlib[5]             65.8 MiB/s    24.17%
zlib[6]             43.9 MiB/s    23.63%
zlib[7]             35.4 MiB/s    23.48%
zlib[8]             20.0 MiB/s    23.20%
zlib[9]             12.5 MiB/s    22.99%

zlib-rs[0]        5591.9 MiB/s    100.03%
zlib-rs[1]         292.0 MiB/s    36.06%
zlib-rs[2]         162.3 MiB/s    25.29%
zlib-rs[3]         138.0 MiB/s    24.63%
zlib-rs[4]         114.9 MiB/s    24.16%
zlib-rs[5]         103.9 MiB/s    23.74%
zlib-rs[6]          81.0 MiB/s    23.40%
zlib-rs[7]          57.3 MiB/s    23.28%
zlib-rs[8]          34.4 MiB/s    23.03%
zlib-rs[9]          22.5 MiB/s    22.85%

I wonder, what are the buffering requirements here? Maybe getting ahead of ourselves here, but: in theory, would it be possible to have an algorithm that makes two passes over a 128k buffer, first to estimate the symbol distribution and the second one to actually encode data?

Yes, using the actual block contents to estimate the symbol distribution does (slightly) improve compression. You can actually make more than two passes: each additional pass gives you a more accurate symbol distribution, which in turn lets you make better choices about which back-references to use. This is what the "iterations" parameter in zopfli does.
The downside is that this significantly adds to compression time. Selecting which sequence of matches to use takes the majority of time when compressing a block, so doing it twice, cuts performance roughly in half.

Would it make sense to have a mode that does those two passes for the first block only, to compress small images such as website favicons with a high ratio even if they don't fit the hardcoded distribution, and have the cost of the extra pass over a single block amortized over the runtime of a large image?

Tried this out and got a roughly twentieth of a percentage point improvement. May be partially because the encoder is currently doing greedy parsing rather than optimal parsing, so it doesn't benefit as much from knowing symbol costs.

I'm curious whether keeping backreferences pixel-aligned helps.

The data structures involved don't really allow you to query only for aligned matches, they just tell you the closest match of a given length, whether it happens to be aligned or not. You could try only doing look-ups at the start of pixel boundaries, but then you'd miss cases like a 5-byte match consisting of the green and blue channels of one pixel along with all three channels of the next pixel.
Though I think a bigger problem is that the simple data structures I'm using are fast but miss way to many possible matches. Ideally you'd learn about a bunch of possible matches and then use a later step to select the best ones to use. Currently the encoder will only know about the most recent matching 4-byte sequence but not a 7-byte sequence that came just before it.
(I think that the other compressors are mostly having the opposite issue. At a given compression level they examine the previous N matches that are 3+ bytes in length to find the longest one. For low compression levels, they frequently only find junk matches that are 3-4 bytes long. At high compression levels, they find the good matches but waste a really long time looking at shorter matches.)
I may look into Morphing Match Chain or other data structures which might have better results

You could try only doing look-ups at the start of pixel boundaries, but then you'd miss cases like a 5-byte match consisting of the green and blue channels of one pixel along with all three channels of the next pixel.

My hypothesis is that long matches misaligned with channels are extremely rare, so you don't lose much compression, and gain ability to process 3-4 bytes at a time, and have fewer unique backreference distance+length pairs (IIRC that also helps).
Why rare? The misalignment would need image to have colors shifted by R/G/B channels, and that would look like color aberrations. I don't think this happens often in real images. Even the visual effects of glitch art and lens aberrations are unlikely to have channels shifted that precisely. ClearType and anaglyph images will probably adjust for different perceived brightness of green, so they won't repeat exactly either. Additionally opaque pixels in RGBA have 255 every four bytes that is likely to "synchronize" matches a lot.

Actually, the above applies to filter=0. Filtering may fix that. That makes me wonder whether it would help to have a different compression strategy per filter type?

Yeah, the data looks very different after filtering than it does before hand. They do a very good job of reducing entropy. On the test corpus I've looked at, upwards of 75% of all bytes after filtering are either 0, 1 or -1. The net result is that backreferences aren't really "the dark blue pixel followed by the lighter blue pixel", but more like "two perfectly predicted channels, then the next two channels off by 1"


Module names should use snake case

Some modules in plugins.hybrid_ae_pkg.backend.quantum.pl use camel case instead of snake case.

Should be fixed now


User/admin management UI problem

Steps to re-create problem in admin UI

open modal form like add admin/user etc.
submit form with errors(submit it empty)
the form will re-appear with errors, but it seems there is a doubled backdrop
if closing the form, one backdrop remains, making the UI unaccesible

Fixed in #7


Is it necessary to add   tokens ?

Hi,
While using ELMoForManyLangs programmatically, do I need to add <bos> <eos> tokens manually to the sentences ? Specifically, could you specify which one of the below usages is the correct one ?
from elmoformanylangs import Embedder

# Option-1
e = Embedder('/path/to/your/model/')
sents = [['this','is','the','first','sentence'],['another','sentence']]
e.sents2elmo(sents)

#Option-2
e = Embedder('/path/to/your/model/')
sents = [['<bos>','this','is','the','first','sentence','<eos>'],['<bos>','another','sentence','<eos>']]
e.sents2elmo(sents)

No. It will add  and  automatically. You can find it in line 33 of elmo.py.


Update application form -models

Upon closer inspection we decided to rename a field and add better verbose names.
Add ApplicationMixin with fields for accepting and rejecting an application.
Add new model for apartments and HASO application apartment priorities. Also modify the serializers, factories and tests to match these changes.

Refs ASU-355 ASU-356

Codecov Report

Merging #9 into develop will decrease coverage by 0.00%.
The diff coverage is 94.25%.

@@             Coverage Diff             @@
##           develop       #9      +/-   ##
===========================================
- Coverage    93.04%   93.03%   -0.01%
===========================================
  Files           24       27       +3
  Lines          546      747     +201
  Branches        20       48      +28
===========================================
+ Hits           508      695     +187
- Misses          31       38       +7
- Partials         7       14       +7

Impacted Files
Coverage Δ

application_form/tests/test_haso_application.py
100.00% <ø> (ø)

application_form/tests/test_hitas_application.py
100.00% <ø> (ø)

application_form/models.py
90.00% <86.48%> (-10.00%)
:arrow_down:

application_form/api/serializers.py
100.00% <100.00%> (ø)

application_form/tests/factories.py
100.00% <100.00%> (ø)

connections/tests/test_etuovi_mapper.py
100.00% <0.00%> (ø)

connections/etuovi/field_mappings.py
100.00% <0.00%> (ø)

connections/etuovi/mapper.py
91.42% <0.00%> (ø)

connections/tests/factories.py
98.24% <0.00%> (+0.03%)
:arrow_up:

connections/elastic_models.py
96.29% <0.00%> (+0.03%)
:arrow_up:

... and 1 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 698e3e9...6266395. Read the comment docs.


Add a 'load screen connection'

Add a load screen connection and manage the Exceptions

solved in #7


Win 10 ver 19042.1165 not working

Hi still shows not supported! any help will be appreciated.
screenshot attached:

thanks

See snip attached

See this


Enable support for labels on synthetic agents and tests

SynTest and Agent classes now have labels properties.
Also includes:

more unique names for e2e synthetic tests
optional argument for synthetics.get_all_agents allowing to filter only private agents
utility methods for Agent class allowing to easily identify private and app (a.k.a. node) agents

Yes!


expose web config options

Description
expose Web config options
Related Issue

Motivation and Context
Make Web configurable
How Has This Been Tested?

minikube

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Technical debt
[ ] Tests only (no source changes)

Checklist:

<!-- or create documentation PR in https://github.com/owncloud/docs-ocis/tree/master/modules/ROOT/pages/deployment/container>
- [x] Code changes
- [ ] Unit tests added
- [ ] Acceptance tests added
- [ ] Documentation generated (`make docs`) and committed
- [ ] Documentation ticket raised:
- [ ] Documentation PR created:

@wkloucek Would you mind squashing this into a single commit? The commit history of this PR is pretty confusing. (E.g. c073cbe looks like mostly reverting 2ad244a)


isValidForm always return true

Hi! First thanks for this project, is very very usefull.
I have a question, why isValidFrom method from FormBuildHelper always return true?
Thanks.

Hi @adib2149 @pblinux ! I faced that issue too. Checked the source code and found that the issue is with the isValidForm() method in FormBuildHelper.java . The value is not null and logs 0 when i checked it's length. So it remains true all the time.

Thanks, will fix this issue in the next release v1.0.3.


Suggest deleting swap file

The file .do_RMsynth_1D.py.swp causes confusing vi error messages when one tries to open do_RMsynth_1D.py. I suggest this can be safely removed from the repo.

Good shout, I don't know how that got in there. I've removed it now.
Thanks,
Cameron


[WIP] Add quantum metrology tutorial

Summary:
Adds a new tutorial showcasing how variational quantum algorithms can benefit the design of quantum sensing protocols.
Relevant references:
A variational toolbox for quantum multi-parameter estimation
Possible Drawbacks:
Related GitHub Issues:

One more thought: Might be nice to have a bit more visual flair to the tutorial, maybe you can re-use a figure from your paper?

Thanks for you very helpful comments, @co9olguy ! I incorporated them, improved the introduction added a figure and an outro.


Add PR notices into the PR description created by RefreshSecurityUpdatePullRequest operation

Description
What are you trying to accomplish?
Implementing a feature, https://github.com/dependabot/dependabot-core/pull/10399 to include generated PR notices into the PR which are created by the RefreshSecurityUpdatePullRequest  operation. This ensures that important messages, warnings, and deprecations are clearly communicated in the PR description.
What issues does this affect or fix?
This enhancement adds the ability to pass generated PR notices into the PR message for update all versions, ensuring that relevant information is prominently displayed in the PR description. Currently, this includes the bundler v1 deprecation warning.
Anything you want to highlight for special attention from reviewers?

This PR extends the functionality of the RefreshSecurityUpdatePullRequest  operation to include generated PR notices in the PR description.
The generated PR notices can include various types of messages such as informational messages, warnings, and errors to provide a comprehensive overview of the updates.
Since we generated bundler v1 deprecation warning, currently it is aiming to add this warning into the PR for bundler eco-system when PR is generated by bundler v1

How will you know you've accomplished your goal?

Demonstration: The generated PR notices, including the bundler v1 deprecation warning, should appear in the PR description for security updates, ensuring that all relevant information is clearly communicated.

Checklist

[x] I have run the complete test suite to ensure all tests and linters pass.
[x] I have thoroughly tested my code changes to ensure they work as expected, including adding additional tests for new functionality.
[x] I have written clear and descriptive commit messages.
[x] I have provided a detailed description of the changes in the pull request, including the problem it addresses, how it fixes the problem, and any relevant details about the implementation.
[x] I have ensured that the code is well-documented and easy to understand.

The feature implemented in the following PR, https://github.com/dependabot/dependabot-core/pull/10421


make: icc: No such file or directory

I'm getting the following error while compiling the GPU code:
$ ./configure
Creating config for apple x86_64
hnt:src tcf$ make
icc -openmp -fPIC -c -O2 -g -DNDEBUG -I/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/include  -I/Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/include/darwin -I/opt/intel/mkl/include -I/opt/intel/mkl/include/intel64/lp64  BIDMach_CPUMACH.c
make: icc: No such file or directory
make: *** [BIDMach_CPUMACH.o] Error 1

Any suggestions?
Update: I downloaded the executable bundle.

Compiling has a dependency on icc - the Intel C++ Compiler. Unfortunately this is not free software. Intel does however offer free academic and open source developer licenses.

@danielchalef Thanks for the response. Is the icc necessary for the BIDMach GPU code? Is there a way to test out BIDMach's GPU capabilities without icc?

First off, you dont need to build the libraries to try out the code. We keep current copies of the libraries on our own server. After pulling or cloning from github, run ./getdevlibs.sh in the main directory to get them.
Secondly the GPU libraries don't require icc, so you can build them without the Intel compiler.  "make" with no arguments will try to build everything, but "make gpulib" will just build the GPU library and "make installgpulib" will copy it into the appropriate subdirectory.
But you shouldnt need to build the CPU or GPU libs unless you're modifying the native code, or running on an unusual platform.

My installation with export CUDA_VISIBLE_DEVICES=1,2 shows only one device.
I suspected BIDMach jar was probably compiled for device over CC 3.0....

在makefile.include文件中，将icc替换为icx，icpc替换为icpx


[TRI-1401] feat: Add support for tabler-icons when using the icon for Tasks

Problem
When you use io.runTask you can provide an icon in the options. (Docs: https://trigger.dev/docs/sdk/io/runtask).
This property is a string and we currently have support for:

Some company names (used by our integrations), such as "github". This uses the @trigger.dev/companyicons package: https://github.com/triggerdotdev/companyicons
Some internal icons (https://github.com/triggerdotdev/trigger.dev/blob/ebe78017efdf7bd53c0e4414a8302b7f0ff2648d/apps/webapp/app/components/primitives/NamedIcon.tsx#L73)

We want to add lots more icons, that are open source friendly.
https://tabler-icons.io/ is the perfect fit for this.
Solution
Add support for passing in a tabler-icons named to the NamedIcon component. Somewhere like here: https://github.com/triggerdotdev/trigger.dev/blob/ebe78017efdf7bd53c0e4414a8302b7f0ff2648d/apps/webapp/app/components/primitives/NamedIcon.tsx#L218
This means it would first try and render an internal icon, or a company icon. If they fail then it would render a tabler-icon.
There are so many icons in this set, we need to be careful how we accomplish this. I think the best way would be to use their sprite sheet, as it can be cached and tends to be efficient for rendering: https://github.com/tabler/tabler-icons#svg-sprite
To test

Add an icon name from tabler-icons to this runTask in the catalog: https://github.com/triggerdotdev/trigger.dev/blob/ebe78017efdf7bd53c0e4414a8302b7f0ff2648d/references/job-catalog/src/events.ts#L26
Test that it comes through correctly
Test that "github" still works (that uses companyicons)

Tasks

[ ] Add support for tabler-icons
[ ] Update the docs with a mention and link to tabler-icons instead of font-awesome

TRI-1401

@matt-aitken While running the task, I ran into an issue. it throws TypeError: callback is not a function

import { eventTrigger } from<EMAIL_ADDRESS>import { client } from "@/trigger";
import { z } from "zod";

// your first job
client.defineJob({
  id: "new person",
  name: "New person",
  version: "0.0.1",
  trigger: eventTrigger({
    name: "person",
    schema: z.object({
      name: z.string(),
      email: z.string(),
    }),
  }),
  run: async (payload, io, ctx) => {
    await io.logger.info("New person", { payload });

    await io.runTask("task-example-1", async () => {
      return {
        message: "Hello World",
      };
    });
  },
});

Do you have any idea about this? what I am missing !!

@RamK777-stack which version of the SDK are you using?

@ericallam I am using version  2.2.0
before started working on this issue I updated using npx @trigger.dev/cli@latest update

Hi @matt-aitken , pnpm install @tabler/icons and
      <svg className={className}>
          <use<EMAIL_ADDRESS>/>
      </svg>

does not seem to work.

Copy the icon svg sprite file from Github tabler/tabler-icons into the folder  public/tabler/
Use https://github.com/tabler/tabler-icons#svg-sprite
is this what you were going for?

      <svg className={className}>
          <use xlinkHref={`/tabler/tabler-sprite.svg#${name}`} />
      </svg>

I am doing something like this now it works, is it ok?
And also should I write something similar to
https://github.com/triggerdotdev/trigger.dev/blob/ebe78017efdf7bd53c0e4414a8302b7f0ff2648d/apps/webapp/app/components/primitives/NamedIcon.tsx#L203
to check if tabler has that particular icon?

@chaturrved yes this is exactly what I was thinking, having the sprite file in our repo.
Is it possible to write a hasIcon function for Tabler? Obviously it would be if you listed out every possible icon in a Set to look through, but do they have anything built-in to do that?

@matt-aitken no there isn't anything built in like hasIcon, we would have to do that's better option Or we can expect icon name to be "tabler-[ICON-NAME]" and those icons will be rendered from tabler, but this won't be able to guarantee icon exists in tabler.

Maybe you could use their tags.json file to write the function?

I did see that but thought don't need all those objects here just to only check if it exists. I just took the keys to prepare a set. I don't know what's better, both of these i.e. svg and object will have to be changed every time new icons are added.

Could another task to this issue be to add documentation on trigger.dev/docs on how/where to find available icons? Found this issue and the reference to NamedIcon.tsx to figure out what my currently available options were.

@chaturrved I like how you did it 👍
It's a bit of maintenance when we upgrade but I think that's ok given we're going for the sprite as we don't know which icons will be used.
This is now merged into main and will be deployed to cloud soon (probably early next week) 🥳
@martinse generally I think I'd encourage people to use Tabler rather than our internal icon set we have in NamedIcon. But we don't do a good job of documenting company icons at the moment. If you think that would be helpful definitely creating an issue for it and feel free to work on it you want 😄


TILA-555 | Bandit and safety checks

Looks like the safety check is failing with command not being found.

:facepalm:  fixed that one


Generate version displayed in Help/About based on Build Number

Generates the version shown in Help/About instead of hardcoding. (Showing <IP_ADDRESS> for dev build)

@minestarks we probably want something similar in TypeScript VS?

This is great, now do it for TypeScript please?


defaultselection does not set "language"

SelectionResponse:
type: object
required:
- "language"
- "selection"
- "links"
"language" is not present
Ex https://api.scb.se/ov0104/v2beta/api/v2/tables/TAB5659/defaultselection

Looks like a bug in the implementation. I have created an issue there.


Quote shell variables so as to avoid errors if those contain spaces

This should resolve https://github.com/pote/gvp/issues/41
(The changes to unstore_prompt are unrelated to the specific issue mentioned above.)

Love it! Thanks!


Ingest more traces

We have quite low traffic and this will make it a lot easier to repro issues etc.
Previously retention was set to "auto" which in practice meant about 7% of traces were captured. I was trying to repro the generation slowness and it wasn't working because my traces weren't captured, making me sad and frustrated :/
edit: The updated logic will ingest 100% of traces except for the top 11 methods which together account for 90% of our ingested traces. 10 of those will still be sampled at the automatic rate, and one (/health) will be dropped.

This LGTM. I'm slightly concerned about adding a new noisy route, retaining all the traces, and spending a lot of money without realizing it. Would you be up to add a monitor or spending limit on APM? I'm open to other suggestions too.

Good idea! I added a monitor here -- it looks for 20GB ingested over a 24hr rolling window. This is an amount we haven't had in the last 2 months, so I think it should be a reasonable threshold to look at this again.
I don't think I have access to add spending limits (if they even have such a feature lol).


Prevent dead players from turning bar stools

About the PR
Bugfix.
Why / Balance
Previously, players could always turn a bar stool (or office chair, etc..) they were buckled into; even while stone cold dead.
Technical details
RotateToFaceSystem now only lets players rotate barstools (& similar) when the actionBlockerSystem reports that they CanChangeDirection; this also means players who are frozen by admins (see AdminFrozenSystem) can no longer spin barstools.
SharedBuckleSystem no longer tries to prevent buckled players from being able to change direction, instead relying on RotateToFaceSystem to ensure that players on beds and such don't rotate.
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame

Video showcasing prior broken behavior:
https://github.com/space-wizards/space-station-14/assets/4543739/74be203a-0961-4850-842a-768d927f6691
Breaking changes

Changelog
:cl:

fix: Dead players can no longer spin on a bar stool.

This PR also resolves #22198

Rebased on latest master, no changes otherwise.
(Previous CI pipeline failure was flake).


Auto Dismiss Notification & Toast Notification

Hi Pedro, I know you already have a note of this but for the record.
Auto dismiss notification fails if the catch success toast is turned off.

Hi... thanks for the bug report. It's fixed with the commit 2e8175e
Next update should be gone.


added latest Zanata translation fixes

please merge this PR asap - these are Zanata translation fixes

+1 to merge.

Thanks.
0.7.x: cc019bd820cf1748d6be807ef6b57389bfaad12c


corobo security hardening

[x] Make all labhub commands except invite require being a member of the org , so that corobo isnt a way around bans.
[x] Prevent all labhub commands in private chat with the bot, optionally re-adding access for maintainers to issue labhub commands in private chat. 794be488d0fd8a7f6add1b2de040b586690124d6
[x] Add ability to ban from all gitter rooms at once (otherwise it is very tedious) [this can be done by using api keys]
[ ] Have corobo changes land in a staging instance before deploying to production (what keys will be different in staging?  If none, this is useless.  If some, the staging wont be testable unless labhub is connected to a different ‘dummy’ org, and then nobody will use it.)
[x]  Prevent corobo being used to spam a room. https://github.com/coala/corobo/issues/359
[x] Potentially remove auto-invite, replacing with developer invite https://github.com/coala/corobo/issues/322
[x] Slow down newcomers; force them to finish one issue first https://github.com/coala/corobo/issues/184
[x] Require newcomers to find a newcomer issue to work on before they are invited to join the org, lowing our risk profile

Created from security hardening docs created by maintainers.

Make all labhub commands except invite require being a member of the org -> https://github.com/coala/corobo/commit/d697e18d436a33dca07f29e6d26544d3234750f3
Add ability to ban from all gitter rooms at once ->https://github.com/coala/corobo/commit/e24d461af968ef2bce95130c3bab12364dd962e1
Prevent corobo being used to spam a room ->https://github.com/coala/corobo/commit/fc9ba1e9e938938305b90ec6fb30361071482e0a
Potentially remove auto-invite, replacing with developer invite ->https://github.com/coala/corobo/commit/ef885b0f4b4904ef46036fe570823936440725b6
Slow down newcomers; force them to finish one issue first ->https://github.com/coala/corobo/commit/6c192f455fcd3e859d776dbef089219f7a5bd3a2

A staging system is imo a separate issue and is not necessarily tied to security hardenings. Also I don't see major security benefits due to introducing a staging system, nobody really wants to do manual tests anyway so the effectiveness is rather limited. In any case, I extracted that point into a separate issue: https://github.com/coala/corobo/issues/653
Since all other points are done, closing the issue.


Memory leak when training pointpillars on waymo

I notice in the log file provided by mmdet https://download.openmmlab.com/mmdetection3d/v0.1.0_models/pointpillars/hv_pointpillars_secfpn_sbn_2x16_2x_waymoD5-3d-3class/hv_pointpillars_secfpn_sbn_2x16_2x_waymoD5-3d-3class_20200831_204144.log.json
the memory is increasing constantly. Why is this? Is there a memory leak somewhere?

Generally, the statistics memory got from torch api in the log is larger than the true memory footprint got from NVIDIA-SMI. It's not accurate.  If your want to see whether there is a memory leak, you can inspect the true memory footprint by using the command provided by NVIDIA.

@selmadeac have you found out that it increases in nvidia-smi as well? and have you found the reason why?


Add Multiplication Support for Complex Types

Thank you very much for sharing your code.
The multiplication operator in Quantity is only enabled if T suffices std::is_arithmetic.
However, my use case involves the use of complex numbers, e.g. std::complex.
What about allowing such types as well?
As a quick work-around I adapted the code as follows:
    template<typename T, typename = void>
struct has_real_and_imag : std::false_type
{
};
template<typename T>
struct has_real_and_imag<T, std::void_t<decltype(std::declval<T>().real()), decltype(std::declval<T>().imag())>> : std::true_type
{
};
template<typename T>
struct is_complex : has_real_and_imag<T>
{
};

// Scalar and Complex multiplication.
template<typename T, typename = std::enable_if_t < std::is_arithmetic<T>::value || is_complex<T>::value >>
friend constexpr auto operator*(Quantity a, T s)
{
	return make_quantity<UnitT>(a.value_ * s);
}

Thank you very much for taking care of this issue.
From what I can see now, adaptions must involve:

Adding support for all arithmetic operations which do not change the unit.
Adding real() and imag() functions to complex-valued quantities. They should return the T::value_type with the same unit as the Quantity.

Maybe it helps.

I looked into this some over the weekend.  It turns out to be surprisingly tricky and subtle.
First, why are these std::is_arithmetic SFINAE instances here in the first place?  It's to prevent ambiguous overloads of operator* and friends when we multiply two Quantity types.  The intent wasn't so much to restrict scalars to only arithmetic types.  Rather, the goal was more like "any valid rep", but unfortunately, we don't have a good trait or concept to express that constraint (see #52).
Although I don't know how to express what we do want, there are a bunch of types we definitely don't want:

Any Quantity or QuantityPoint
Any unit
Magnitudes
etc.

I thought we might be able to get away with switching to a "deny list" approach that excludes these types, using "any empty type" as a proxy for our monovalue types.  Unfortunately, this doesn't work: if users define a custom type with multiplication or division operators which work with Quantity types, we'll get an ambiguous overload, because the Quantity version of the operator will think that custom type is OK to use as a rep.
Next time I take a crack at this, I'll probably try a simpler approach that keeps the "allow list", but simply expands it to std::complex on arithmetic types.  I'm guessing that would unblock your main use case, right?  My next several weekends are pretty packed, so I think it'd be about a month before I can pick up this thread.
As for adding real() and imag() member functions, I don't think this would be appropriate.  It would add too much complexity to the Quantity interface for a somewhat niche use case.  I'd recommend a free function approach, where you write an API something like real(x) that can be made to work both for any x that has .real(), and for Quantity<U, std::complex<T>>.

That's really helpful, and I'm grateful that you posted it before I went and implemented something that wouldn't have solved your use case!
I'll mull this over and see what strategies my subconscious can come up with.  Maybe the fact that I'm so swamped for the next several weeks will be a blessing in disguise, giving my subconscious more opportunity to digest the problem.  :slightly_smiling_face:

Update: everyone here got sick, so we had to cancel this weekend's plans.  But the silver lining is that it gave me the chance to try out my ideas!
Try the code in #229.  It passes all of the new and existing unit tests, and all of the tests internally in Aurora's repo.  Additionally, I verified that it has no measurable impact on compile time.
If it fixes your problem, then I'll take it out of draft mode and get it reviewed!

It seems to work now for std::complex, very good.
However, I face another issue (unrelated to this one) when I try to use thrust::complex from the CUDA library.
au::Quantity<au::Thickness, Type> a = au::meters(thrust::complex(1.0, 2.0));
Using MSVC and the commit you pointed out, I receive the following compilation error:
"au\magnitude.hh(525,34): error C3615: Die constexpr-Funktion "au::detail::get_value_result" kann keinen konstanten Ausdruck ergeben"

Interesting!
What is au::Thickness?  I can't find it in the library, so I assume it's a custom unit you added.  (If so, I'd recommend giving it a unit-name rather than a dimension-name like Thickness.  The library is designed to read as though whatever goes in that slot is a unit.)
Anyway, the error itself was very suggestive.  get_value_result() has to do with unit conversions.  It turns out there's a whole lot here that just doesn't work well yet with anything that isn't std::is_arithmetic types.  For example:
constexpr auto length = meters(std::complex<double>{1.0, 2.0});
const auto length_m = length.in(meters);          // Passes
const auto length_mm = length.in(milli(meters));  // Fails horribly

I'm going to need to figure out how to approach this problem in general... :thinking:

@MatthiasJeuthe, could you please check the draft PR #278, and see if it fixes your problem?  If it does, I'll get it ready for more thorough review.

Thank you very much for working on the issue.
I am quite busy at the moment. I try to test it during the weekend.

Multiplication and division by a scalar appear to be functioning correctly; I verified this using both std::complex and cuda::std::complex. However, multiplying by a complex-valued quantity isn't supported yet. I assume that wasn't the goal of this fix, correct?
For example:
au::Quantity<au::Meters, cuda::std::complex<double>> test = au::meters(cuda::std::complex<double>{1.0, 2.0}); 		test *= au::meters(cuda::std::complex<double>{2.0, 2.0});
This results in the following error:
C2338 static_assert failed: 'We don't support compound multiplication of integral types by floating point'.

I hadn't considered that test case, but I think we should include it in this PR.
One small nitpick.  As written, the test case could never work, because you can't pass au::meters(...) as the argument to *= for any type.  After all, the left hand side must be the same type before and after, but multiplying by meters will always change the unit, and thus also the type.
That said, I've added some tests that multiply by a "raw" complex number.  Your feedback was really helpful in uncovering an issue with complex support, and I think I've fixed it now.  Try the latest on #278!

@MatthiasJeuthe, let me know if you can come up with any more test cases we should include.  Otherwise, I'll fix this up for review, likely sometime soon after my CppCon talk next Wednesday. :slightly_smiling_face:

@chiphogg I believe you're ready to proceed with your review. Best of luck with your talk—I’ll definitely watch it on YouTube!


There are no type definitions available for use with typescript

I would like to use these components in a typescript / react project.
(I will do a fork later this week and create the definitions myself)

Hi @Unluckymichell ,
Glad to hear that you use react-windows-ui in your project,
I am apologizing for not added d.ts files to this project this issue is also pinged by @Myzel394
And now i believe that the d.ts files are needed asap.
so stared figuring out creating the files if you are thinking of creating the files please also create a pull request we will be happy
or also try it by myself so it can be compatible with typescript project.

I think it would be better to refactor the jsx files to tsx files now. Otherwise we will be at the same moment as we are now. @virtualvivek

HI @Myzel394 , @Unluckymichell ,
I started to create typing for the available .jsx components
@Myzel394 can it be sufficient for now to use only typings, i have checked few components currently and working great with VSCode and intelliSense.
@Myzel394 if you are interested to optimize the .d.ts you can also do that. iam on the way completing this file

@virtualvivek Please don't put all definitions in one file. Create a d.ts file for each component. This way you profit from a clean code base :D

@Myzel394 yes you are right i forget that in future if we have to edit any component it will become blender to search in a big d.ts file for now will create it for each component seperately.
Thanks for the suggestion.

Btw, AFAIK "SFC" shouldn't be used, you can simply use "Component" and pass the props as a generic to it

it will like this??
export interface ButtonProps {
    value?: string;
}
declare const Button: React.Component<ButtonProps>

Exactly, I did it like this

Thankyou @Myzel394 for helping me out :smile:
Regards you both @Unluckymichell and @Myzel394 for pingind for typescripting
maybe it will never added without this pings.

Nice to see this added so fast. If i can still help with any types or if i should update the jsx to tsx files later please tell me.

@virtualvivek you can also contact me over Matrix @myzel394:matrix.org

Hi @Unluckymichell ,
I have added all the type definitions, yes you can help us in many ways,
Can you please see the type definitions and check everything is fine to be deployed.
You can find speific .d.ts files using link: src/lib/src/components/ComponentName/index.d.ts
We can close this issue after successful publishing in npm.

Hi @Myzel394 ,
Sure i can contact you if encountered in any issue. :D
Thankyou in advance.

@virtualvivek See my pull request #4


Add Slowroll repos

I submitted the package manually in https://build.opensuse.org/request/show/1174040


Correct some documentation

I have no clue why tests are failing for this commit. Can you please rebase with latest master?

This PR is no longer applicable. Closing it. Thanks


APIM - Revert accidental changes

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[X] Other, please clarify
This file was accidentally changed and merged to main in a recent PR: https://github.com/Azure/azure-rest-api-specs/pull/18478/files#diff-8cb682f825debe7854ab4987ff98f9be7efd739a9be9ff079283a8986aea9743
The change was unintentional and shouldn't have made it to main, so I'm reverting it.

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
If updating an existing version, please select the specific language SDKs and CLIs that must be refreshed after the swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No refresh required for updates in this PR

Contribution checklist:

[X] I commit to follow the Breaking Change Policy of "no breaking changes"
[X] I have reviewed the documentation for the workflow.
[X] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[ ] Check this box if any of the following apply to the PR so that label "WaitForARMFeedback" will be added automatically to begin ARM API Review. Failure to comply may result in delays to the manifest.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you are using OpenAPIHub to initialize the PR for adding a new version. More details, refer to the wiki.

[X] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If any of the following scenarios apply to the PR, request approval from the Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in a stable version
[ ] Removing properties in a stable version
[ ] Removing API version(s) in a stable version
[ ] Updating API in a stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

@qiaozha - This file was accidentally changed and merged to main in a recent PR: https://github.com/Azure/azure-rest-api-specs/pull/18478/files#diff-8cb682f825debe7854ab4987ff98f9be7efd739a9be9ff079283a8986aea9743
The change was unintentional and shouldn't have made it to main, so I'm trying to reverting it.

@qiaozha Can we merge this?

@qiaozha hello?

@qiaozha Hello? Can you merge this?

This is ridiculous..

Hello?


Suggestions and help

Hey,
I have recently built and started to use your very cool SPIRO device. To start with, congrats, it is a very nice tool and easy to setup. I wanted to discuss with you about a few points:
1- Filenaming
In my case, I cannot, or rather don't want to go through the trouble of running the RPI on the local network. This leads to file that are wrongly dated and timed. I wanted to share with you the solution that I made for myself hoping it could help someone else. I am running this Python script on my folder, with the only information required being the start date and time of your experiment (that you note on the side when you start your experiment...):
import os
from datetime import datetime, timedelta

def rename_files(start_date, start_time, directory):
    # Convert start_date and start_time to datetime object
    start_datetime = datetime.strptime(start_date + start_time, '%Y%m%d%H:%M:%S')

    # Find the minimum datetime among all files
    min_datetime = None
    for root, dirs, files in os.walk(directory):
        for filename in files:
            if filename.endswith('.png'):
                parts = filename.split('-')
                file_datetime = datetime.strptime(parts[1] + parts[2], '%Y%m%d%H%M%S')
                if min_datetime is None or file_datetime < min_datetime:
                    min_datetime = file_datetime

    # Iterate through files in directory and subdirectories
    for root, dirs, files in os.walk(directory):
        for filename in files:
            if filename.endswith('.png'):
                parts = filename.split('-')
                plate_number = parts[0]
                dayornight = parts[3]
                file_datetime = datetime.strptime(parts[1] + parts[2], '%Y%m%d%H%M%S')

                # Calculate time difference between start and current file
                time_difference = file_datetime - min_datetime

                # Calculate new timestamp for the file
                new_datetime = start_datetime +  time_difference

                # Rename the file with new timestamp
                new_filename = f'{plate_number}-{new_datetime.strftime("%Y%m%d-%H%M%S")}-{dayornight}'
                os.rename(os.path.join(root, filename), os.path.join(root, new_filename))

    print("Files renamed successfully!")

# Example usage:
start_date = input("Enter start date (YYYYMMDD): ")
start_time = input("Enter start time (HH:MM:SS): ")
directory = input("Enter path to folder. (Double backslash instead of simple backslash and end with double backslash as well): ")

rename_files(start_date, start_time, directory)

2- Error in R code?
While going through the pipeline to get root growth length, I stumbled upon an error.
In process_rootgrowth_data.R, I had to remove the "[0,24,48,72,96,120,144]" from the following line (59 and also 73):
  fit.glmmTMB %>% ggeffect(terms = c("RelativeElapsedHours","Group")) -> glmmTMB_model_ggeffects

Other than that, the pipeline runs smoothly and you did a nice job to describe it.
3- Your opinion?
After the first running of the experiment, I tend to have very noisy data with growth curves jumping up and down.
Model prediction overview.pdf
Root length barchart.pdf
I can see that I have some breaks in the segmentation, mostly during the night when the green lamp turns on. Could it be my issue? What would be your recommendation to improve the smoothness of the results? Do you need some more graphs to give me an answer?
Thanks a lot

Hi L-103,
happy to hear your SPIRO is working well! The script for renaming files looks brilliant. We have ours connected to the net so hadn't reflected on this. If you're ok with it, I'll put it in an "Extras" folder or something like this so it is easier to find? I should probably also add a method for setting the system date via the web UI.
Regarding the R error, I'd have to investigate it. What was the error you were getting?
Your data does indeed look messy. On plate4, it also seems the germination detection algorithm has failed. This should be obvious from the pre-analysis graphs (generated after running the Consolidate rootgrowth data script). If germination times are off, they can be manually changed in the germination-perseed file.
I personally do not work on the imaging and plating side of things, but there are some things to try for improving the quality of images: Tweak your image exposure settings in the web UI. Don't use too much medium on your plates. If possible, use the anti-reflection lids. The distance between the camera and the cube, and the LED illuminator and the cube also impact image quality.
There is also a root skeleton overlay which could be enabled in the macro when running in debug mode, but its use is not recommended since it adds artifacts. I'd try to tweak the image quality first.

Well if you run into the error again, please copy it here :) The syntax should be correct for ggeffects as far as I can tell. It's to give predictions for these specific timepoints instead of the 10-hour intervals you get in your graph.
For image quality issues, I'd ping Alyona (last author on the paper: https://onlinelibrary.wiley.com/doi/10.1111/tpj.16587). She knows that stuff best.

Hey,
Here is the error I am getting if I keep the part between brackets.
Error in round(at_values[[1]], 5) :
  non-numeric argument to mathematical function

Will do then.

Hm, not sure what is going on there. Could you attach your rootgrowth.postQC.tsv and germination-perseed.tsv files for me to have a look?

I'm very new to Github, I can apparently not share .tsv files?
Here are the txt file version.
Thanks for your time!
germination-perseed.txt
rootgrowth.postQC.txt

Perfect. I can reproduce the error here. Will look into it.

Hi again,
this error was caused by a problem in the ggeffects package. It's now been fixed but the updated package (version <IP_ADDRESS>) isn't yet available on CRAN. As soon as it's updated on CRAN you should be able to update your packages and get normal-looking charts!

Thanks. I will check on that on the new run I am doing now. I have reduced the quantity of gel in the plate (as it is described in the protocol... if only I could read!) and indeed, I can see the seedlings better so I feel like the image analysis is going to be smoother!


[website] Broken link to LuminaOS.h

The link to LuminaOS.h on https://lumina-desktop.org/ is broken. It should point to https://github.com/trueos/lumina/blob/master/src-qt5/core/libLumina/LuminaOS.h

Fixed!
Thanks for reporting that!


Test AWS Release 19.3.0 without PSPs for default and Managed Apps - Horizon

Following migration plan from PSP to PSS, Phoenix has prepared a 19.3.0 release with latest security-bundle in kyverno enforce mode. We have achieved the desired state where no PSP is deployed for any default apps tied to the release.
However all the default apps should be tested separately in terms of functionality by teams owning separate components.
Additionally with this release the Managed Apps also have to be tested if they handle the PSP disabling toggle.
19.3.0 release is available on gaia, however it could be reverted or changed by anyone testing a separate component, hence here is a yaml to apply just in case on any testing MC.
The desired state for the cluster while testing the release should result in:
$ kubectl get pods -A -o custom-columns=PSP:\".metadata.annotations.kubernetes\.io/psp\"|sort|uniq
<none>
PSP

and
$ kubectl get psp -A|awk '{print $1}'
NAME
privileged

In few cases we had to adjust the helm templates to force-disable PSP-related resources, this has been done for the default apps but was not tested for Managed Apps. Sample PR is available here.
Action points:

[x] test default apps functionality in 19.3.0 + confirm force-disable PSP-related resources
[x] test managed apps functionality and PSP toggle with 19.3.0 + check for need to force-disable PSP-related resources

I am testing k8s-initiator in the gaia cluster but I don't think Horizon has any managed app TBH
cc/ @JosephSalisbury correct me if I am wrong

@pipo02mix is on it and will close once the tests are done.

how are we doing here? 🙏

This is how it is going
- [x] operational load exporter (Nothing needed)
- [x] opsgenie shift report (Nothing needed)
- [x] opsgenie alert reporter (Nothing needed)
- [ ] alfred-app (I am hardening the config)
- [x] k8s-initiator-app (I added a Polex and releases 0.9.6)

Alfred done too, closing here

I found operational load exporter failng because the grafana agent so I added the polex too


Zhenya/communication

ok @thure actions are ready for another look, we have to finish deciding about how to do event handling


TypeError: 'float' object cannot be interpreted as an integer on Python 3.10.0

~ # python3
Python 3.10.0 (default, Nov 13 2021, 03:23:03) [GCC 10.3.1 20210424] on linux
Type "help", "copyright", "credits" or "license" for more information.

from captcha.image import ImageCaptcha
image = ImageCaptcha()
data = image.generate("chars")
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python3.10/site-packages/captcha/image.py", line 45, in generate
im = self.generate_image(chars)
File "/usr/local/lib/python3.10/site-packages/captcha/image.py", line 228, in generate_image
im = self.create_captcha_image(chars, color, background)
File "/usr/local/lib/python3.10/site-packages/captcha/image.py", line 212, in create_captcha_image
mask = im.convert('L').point(table)
File "/usr/local/lib/python3.10/site-packages/PIL/Image.py", line 1680, in point
return self._new(self.im.point(lut, mode))
TypeError: 'float' object cannot be interpreted as an integer

~ # pip list
Package    Version

captcha    0.3
Pillow     8.4.0
pip        21.2.4
setuptools 57.5.0
wheel      0.37.0

Fixed by #52

Fixed by #52

Is this still valid?


Hypermodern karmabot

This PR introduces major changes and a large overhaul of the whole project. The major changes follow the Hypermodern Python approach to provide modern packaging, dependency resolving, testing, linting etc.
Packaging
Packaging and dependency resolving are now solved by poetry. While this introduces some limitations I think it these are outweighed by the advantages.  Restrictions are that poetry does not support Conda and contributors are required to use poetry. Poetry works good on UNIX-based system but may be a hassle on Windows.
Further, the project now uses the src structure.
Development
A range of configs and tools has been added to help with consistency in development. There are configs for black, flake8, mypy and isort. The isort config is made compatible to black to avoid formatting interferences.
A docker file was added to provide some help with database setup. However, for direct testing in a slack you still need a real slack server.
Pre-commit hooks are provided to use pre-commit in development.
Testing
Testing has been automated by using nox which also does some additional work like linting checks and coverage reports.
CI/CD testing is now automated by using Github actions. Coverage is also reported by a Github action.
Readme
The readme has been modernized and updated for all the new changes and provides some help for setting up the dev environment. Configurations are explained for the end-user with regard to providing settings either by file or by environment variable.
pip install and command line
Karmabot is now pip-installable and can be easily published to pypi by using poetry. In the future, we have to decide on some release logic for version numbers etc.
After installing karmabot it can be launched by simply calling karmabot in the command line.

Awesome piece of work, changes look good to me. I will merge it in to play with it locally then test on our uat instance.


Automated cherry pick of #4383: fix: 修复接收参数异常问题

Cherry pick of #4383 on release/2.13.
#4383: fix: 修复接收参数异常问题

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.13@7fed6b1). Click here to learn what that means.
The diff coverage is 0%.

@@              Coverage Diff               @@
##             release/2.13   #4384   +/-   ##
==============================================
  Coverage                ?   6.87%
==============================================
  Files                   ?     521
  Lines                   ?   88457
  Branches                ?       0
==============================================
  Hits                    ?    6085
  Misses                  ?   81866
  Partials                ?     506

Flag
Coverage Δ

#aFlag
6.87% <0%> (?)

Impacted Files
Coverage Δ

pkg/compute/models/cloudaccounts.go
0.86% <0%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7fed6b1...f5971c6. Read the comment docs.

/lgtm

/lgtm

/lgtm

/approve

/approve


remove custom registry from the CI

Looks like the unit testing time improved from about 15 minutes to about 9 minutes  on the arm runners :+1:


Issue about basic set up

In your guide, you specify the basic set up should be:
{   "plugins": [     "meteor"   ],   "extends": [     "plugin:meteor/recommended"   ] }
If the user follow these setup, 'Template' will still be 'no-undef'. To fix it, user need to manually add 'meteor' as 'env'. So why not specify it here? Or a better solution maybe put that(put 'meteor' in 'env') in 'meteor/recommended' file, so that when user extends that, they will got everything right to work.

Thank you for the report :-)
Are you talking about this guide? The guide mentions the env-stuff directly under it in the Tips section.

If the user follow these setup, 'Template' will still be 'no-undef'

By default all rules are disabled in ESLint. no-undef is disabled as well.
This means to get the warning the user would have to enable no-undef first.

Or a better solution maybe put that(put 'meteor' in 'env') in 'meteor/recommended' file,

Plugins should only configure their own rules from their recommended settings. The correct solution would be to create a Shareable Config which contains eslint-plugin-meteor, sets the recommended rules and also sets the Meteor env (and eventually enables some other rules). Enabling the Meteor Environment is not a concern of eslint-plugin-meteor.

Got it, thanks for asking my questions as well as write/maintain this useful package. : )


VisualRust doesn't play well with Rust 1.7, the required registry entry isn't set

VisualRust can't find the Rust 1.7 compiler after a fresh install of both on Windows 10 with Visual Studio 2015. I've fixed it by adding a registry entry mimicking the one mentioned in #187. There was no "Mozilla Foundation" key, so I've added the whole tree "Mozilla Foundation\Rust stable (64-bit)\1.7" and set "InstallDir" to the root of the installation directory (not the /bin).

Before I did that, I tried reinstalling and repairing the compiler, and it didn't set the registry entry, so I presume it just stopped doing this in the newer versions?

VisualRust really shouldn't rely on a registry key anyway, since some people (like me) install Rust using multirust-rs.

Can confirm that I ran into this issue as well, and solved it using the same method as @marcinmrotek. If nothing else, couldn't looking for rustc.exe be a potential fallback, considering it'll most likely be in %PATH%?

I'd prefer if this supported multirust-rs, as in it could be configured to set MULTIRUST_TOOLCHAIN to the version I want, and depend on multirust-rs being in the path.

We support multirust-rs, although the discovery order is local official installation ---> multirust ---> global official installation (multirust and global path used to be switched around but I've just changed it). If we don't pick a multirust installation or pick wrong path/version it's a bug.
As for looking in %PATH%, I've got a mixed feeling about this. Usually, language plugins (not only in Visual Studio) rely on proper paths in the registry. If there's no official distribution, then you usually get an option to fiddle with the paths yourself (and we want to enable this with #172).


[core] Upgrade Babel 6 to Babel 7

Following https://github.com/zeit/next.js/pull/4050, it's still early, but let's see what's missing to complete the upgrade.
Blockers

~https://github.com/babel/babel/issues/7572~
~https://github.com/kentcdodds/babel-plugin-preval/issues/52~:

Module build failed: Error: Requires Babel "^7.0.0-0", but was loaded with "6.26.0". If you are sure you have a compatible version of @babel/core, it is likely that something in your build process is loading the wrong version. Inspect the stack trace of this error to look for the first entry that doesn't mention "@babel/core" or "babel-core" to see what is calling Babel.

Following the stack trace, the error is coming from:
https://github.com/mui-org/material-ui/blob/1b90855ab0553b5cdb4c5bb9c1a66d8cb5cd48c6/docs/src/modules/components/withRoot.js#L7

~A weird non transpilated file issue.~

I only wished the Babel 7 output was smaller than the Babel 6
{
     "name": "The initial cost people pay for using one component",
     "webpack": true,
     "path": "packages/material-ui/build/Paper/index.js",
-    "limit": "25.4 KB"
+    "limit": "26.0 KB"
   },
   {
     "name": "The size of all the modules of material-ui.",
     "webpack": true,
     "path": "packages/material-ui/build/index.js",
-    "limit": "101.4 KB"
+    "limit": "102.3 KB"
   },
   {

@oliviertassinari just curious, which bundles do you measure? I decided to look inside the development UMD bundle and noticed lots of _extends and _createClass helpers duplicated everywhere. I haven't had time to look into it, but I think it could be related to BABEL_ENV or NODE_ENV not being set for UMD? I might get some time later, so could try to investigate further. But feel free to pick this up yourself if you wish :)

@NMinhNguyen Interesting. I can see that too. To investigate :)

@NMinhNguyen You were right, the umd/dev bundle was missing the execution of the transform-runtime Babel plugin. It should be fixed with #11298.

which bundles do you measure?

I don't use a bundle. I use an entry point:
https://github.com/mui-org/material-ui/blob/835286cb57f765fc9ed74f3dd1880a28fea00d06/.size-limit#L8-L13

Here is another idea... stop using babel and switch to the typescript compiler?

@lookfirst 1. We don't use TypeScript. 2. Babel is working on adding TypeScript support to it.

@oliviertassinari You don't have to use TS to use the compiler. I'd be curious if it produces smaller code.

@oliviertassinari As an experiment, I've been trying to compile using tsc and have made good progress, but I'm finding a bunch of issues, for example:
https://github.com/mui-org/material-ui/blob/v1-beta/packages/material-ui/src/Collapse/Collapse.d.ts#L3
...
src/Collapse/Collapse.d.ts(3,10): error TS2305: Module '"/Users/jon/checkout/material-ui/packages/material-ui/src/styles/createMuiTheme"' has no exported member 'Theme'.
src/Drawer/Drawer.d.ts(6,10): error TS2305: Module '"/Users/jon/checkout/material-ui/packages/material-ui/src/styles/createMuiTheme"' has no exported member 'Theme'.
src/Fade/Fade.d.ts(2,10): error TS2305: Module '"/Users/jon/checkout/material-ui/packages/material-ui/src/styles/createMuiTheme"' has no exported member 'Theme'.
src/Grow/Grow.d.ts(3,10): error TS2305: Module '"/Users/jon/checkout/material-ui/packages/material-ui/src/styles/createMuiTheme"' has no exported member 'Theme'.
src/Slide/Slide.d.ts(2,10): error TS2305: Module '"/Users/jon/checkout/material-ui/packages/material-ui/src/styles/createMuiTheme"' has no exported member 'Theme'.
src/Typography/Typography.d.ts(3,10): error TS2305: Module '"/Users/jon/checkout/material-ui/packages/material-ui/src/styles/createTypography"' has no exported member 'Style'.
src/Typography/Typography.d.ts(3,17): error TS2305: Module '"/Users/jon/checkout/material-ui/packages/material-ui/src/styles/createTypography"' has no exported member 'TextStyle'.
src/Zoom/Zoom.d.ts(2,10): error TS2305: Module '"/Users/jon/checkout/material-ui/packages/material-ui/src/styles/createMuiTheme"' has no exported member 'Theme'.
src/styles/MuiThemeProvider.d.ts(3,10): error TS2305: Module '"/Users/jon/checkout/material-ui/packages/material-ui/src/styles/createMuiTheme"' has no exported member 'Theme'.


nuxt3 app Firebase Deploy Unexpected Error. how to ?[An unexpected error has occurred.] [TypeError: Cannot read properties of null (reading 'match')]

Environment
Working directory: /Users/User2/Desktop/Desktop/LINE-shift/LINE-shift-staff                        14:24:48
Nuxt project info: (copied to clipboard)                                                           14:24:48

Operating System: Darwin
Node Version:     v18.18.0
Nuxt Version:     3.7.3
CLI Version:      3.9.0
Nitro Version:    2.6.3
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      devtools, modules, runtimeConfig, nitro, ui
Runtime Modules<EMAIL_ADDRESS>Build Modules:    -

Reproduction
https://github.com/toriumi72/LINE_shift/tree/master
Describe the bug
I have been encountering an unexpected error while trying to deploy my project using Firebase. The error occurred suddenly; everything was working fine until August 28th. Here is the background and the error message I received:
Additional context
・package.json
{
"name": "nuxt-app",
"private": true,
"type": "module",
"scripts": {
"build": "nuxt build",
"dev": "nuxt dev",
"generate": "nuxt generate",
"preview": "nuxt preview",
"clean": "cd .output/server && rm -rf node_modules && npm i",
"deploy": "npm npm run build && npm run clean && firebase deploy",
"postinstall": "nuxt prepare"
},
"devDependencies": {
"@nuxt/devtools": "latest",
"nuxt": "^3.7.4",
"vue": "^3.3.4",
"vue-router": "^4.2.5",
"@nuxthq/ui": "^2.7.0",
"cdate": "^0.0.6"
},
"overrides": {
"vite-plugin-inspect": "0.7.38"
},
"dependencies": {
"firebase": "^10.4.0",
"firebase-admin": "^11.11.0",
"firebase-functions": "^4.4.1",
"firebase-functions-test": "^3.1.0"
}
}
・firebase.json
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"functions": [
{
"source": ".output/server",
"codebase": "default",
"ignore": [
"node_modules",
".git",
"firebase-debug.log",
"firebase-debug..log"
]
}
],
"hosting": {
"public": ".output/public",
"ignore": [
"firebase.json",
"**/.",
"/node_modules/"
],
"cleanUrls": true,
"rewrites": [
{
"source": "**",
"function": "server"
}
]
},
"storage": {
"rules": "storage.rules"
}
}
Logs
=== Deploying to 'line-shift'...
i  deploying storage, firestore, functions, hosting
i  firebase.storage: checking storage.rules for compilation errors...
✔  firebase.storage: rules file storage.rules compiled successfully
i  firestore: reading indexes from firestore.indexes.json...
i  cloud.firestore: checking firestore.rules for compilation errors...
✔  cloud.firestore: rules file firestore.rules compiled successfully
i  functions: preparing codebase default for deployment
i  functions: ensuring required API cloudfunctions.googleapis.com is enabled...
i  functions: ensuring required API cloudbuild.googleapis.com is enabled...
i  artifactregistry: ensuring required API artifactregistry.googleapis.com is enabled...
✔  functions: required API cloudbuild.googleapis.com is enabled
✔  functions: required API cloudfunctions.googleapis.com is enabled
✔  artifactregistry: required API artifactregistry.googleapis.com is enabled
i  functions: Loading and analyzing source code for codebase default to determine what to deploy
Serving at port 8875
shutdown requested via /__/quitquitquit
Error: An unexpected error has occurred.

---------------------------------------------------------------------------------------------

...
[debug] [2023-09-19T01:45:05.303Z] Could not find functions.yaml. Must use http discovery
[debug] [2023-09-19T01:45:05.307Z] Found firebase-functions binary at '/Users/User2/Desktop/Desktop/LINE-shift/node_modules/.bin/firebase-functions'
[info] Serving at port 8149
[debug] [2023-09-19T01:45:05.478Z] Got response from /__/functions.yaml {"endpoints":{"server":{"platform":"gcfv1","availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"serviceAccountEmail":null,"vpc":null,"region":[null],"httpsTrigger":{},"entryPoint":"server"}},"specVersion":"v1alpha1","requiredAPIs":[]}
[info] shutdown requested via /__/quitquitquit
[debug] [2023-09-19T01:45:10.643Z] TypeError: Cannot read properties of null (reading 'match') at resolveString (/opt/homebrew/lib/node_modules/firebase-tools/lib/deploy/functions/params.js:31:27) at /opt/homebrew/lib/node_modules/firebase-tools/lib/deploy/functions/params.js:47:36 at Array.map (<anonymous>) at Object.resolveList (/opt/homebrew/lib/node_modules/firebase-tools/lib/deploy/functions/params.js:47:21) at toBackend (/opt/homebrew/lib/node_modules/firebase-tools/lib/deploy/functions/build.js:180:30) at Object.resolveBackend (/opt/homebrew/lib/node_modules/firebase-tools/lib/deploy/functions/build.js:73:23) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async prepare (/opt/homebrew/lib/node_modules/firebase-tools/lib/deploy/functions/prepare.js:68:62) at async chain (/opt/homebrew/lib/node_modules/firebase-tools/lib/deploy/index.js:38:9) at async deploy (/opt/homebrew/lib/node_modules/firebase-tools/lib/deploy/index.js:95:5)
[error]
[error] Error: An unexpected error has occurred.

Would you be able to open a nitro reproduction upstream at https://github.com/unjs/nitro ? 🙏

This issue makes it impossible to deploy a Nuxt 3 project to firebase. I am having the same issue with the following configuration:
- Operating System: `Darwin`
- Node Version:     `v20.5.1`
- Nuxt Version:     `3.7.4`
- CLI Version:      `3.9.0`
- Nitro Version:    `2.6.3`
- Package Manager<EMAIL_ADDRESS>- Builder:          `-`
- User Config:      `-`
- Runtime Modules:  `-`
- Build Modules:    `-`

firebase -V
12.6.1

The following is a related piece of firebase-debug.log:
[debug] [2023-10-05T19:38:49.270Z] Building nodejs source
[info] i  functions: Loading and analyzing source code for codebase default to determine what to deploy
[debug] [2023-10-05T19:38:49.271Z] Could not find functions.yaml. Must use http discovery
[debug] [2023-10-05T19:38:49.276Z] Found firebase-functions binary at '/Users/yuri/src/courses-landing/node_modules/.bin/firebase-functions'
[info] Serving at port 8881

[debug] [2023-10-05T19:38:49.453Z] Got response from /__/functions.yaml {"endpoints":{"server":{"platform":"gcfv1","availableMemoryMb":null,"timeoutSeconds":null,"minInstances":null,"maxInstances":null,"ingressSettings":null,"serviceAccountEmail":null,"vpc":null,"region":[null],"httpsTrigger":{},"entryPoint":"server"}},"specVersion":"v1alpha1","requiredAPIs":[]}
[info] shutdown requested via /__/quitquitquit

[debug] [2023-10-05T19:38:54.468Z] TypeError: Cannot read properties of null (reading 'match')
    at resolveString (/Users/yuri/.nvm/versions/node/v20.5.1/lib/node_modules/firebase-tools/lib/deploy/functions/params.js:31:27)
    at /Users/yuri/.nvm/versions/node/v20.5.1/lib/node_modules/firebase-tools/lib/deploy/functions/params.js:47:36
    at Array.map (<anonymous>)
    at Object.resolveList (/Users/yuri/.nvm/versions/node/v20.5.1/lib/node_modules/firebase-tools/lib/deploy/functions/params.js:47:21)
    at toBackend (/Users/yuri/.nvm/versions/node/v20.5.1/lib/node_modules/firebase-tools/lib/deploy/functions/build.js:180:30)
    at Object.resolveBackend (/Users/yuri/.nvm/versions/node/v20.5.1/lib/node_modules/firebase-tools/lib/deploy/functions/build.js:73:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async prepare (/Users/yuri/.nvm/versions/node/v20.5.1/lib/node_modules/firebase-tools/lib/deploy/functions/prepare.js:68:62)
    at async chain (/Users/yuri/.nvm/versions/node/v20.5.1/lib/node_modules/firebase-tools/lib/deploy/index.js:38:9)
    at async deploy (/Users/yuri/.nvm/versions/node/v20.5.1/lib/node_modules/firebase-tools/lib/deploy/index.js:95:5)
[error]
[error] Error: An unexpected error has occurred.

👋 Hello all,
I've come across this issue and haven't been able to find a solution yet. Has anyone managed to resolve this or found a workaround? @danielroe

had same issue, solved adding specific data to the nitro config
`nitro: {
preset: 'firebase',
firebase: {
nodeVersion: "18",
gen: 2,
httpsOptions: {
region: 'us-central1',
maxInstances: 3,
},
},
}`

Hi.
I was able to deploy to 2nd gen by using the configuration in the following URL.
https://github.com/nuxt/nuxt/issues/23496#issuecomment-1758748355
Since I am using 1st gen, the impact of the change in 2nd gen is significant, so I checked the source code to see if I could somehow deploy on 1st gen.
https://github.com/unjs/nitro/blob/ae253596a847f764e275f7e0450ffdfcdcd8957e/src/types/presets.ts#L76-L86
I modified the nitro setting in nuxt.config.ts as follows and was able to deploy.
// ...
  nitro: {
    preset: 'firebase',
    firebase: {
      nodeVersion: '18',
      gen: 1,
      region: 'us-central1'
    }
  }
// ...

@aipacommander thank you very much this helped a lot

This is an upstream issue in Nitro. Would you be able to open an issue there so we can track it in the right place? 🙏

firebase: { nodeVersion: "18", gen: 2 } is the essential missing part to fix the error. It starts working without the other options.

Do we need to add anything to the docs here or in nitro?

@danielroe
As someone who just spent 3 hours tracking down why my first firebase deployment didn't work yes.  Please add this to the nitro docs.

If it is a requirement for deployment i expect that was set by default. @HoldenMalinchock would you mind to open an issue in nitro repo to track in upstream. /cc @posva

Hello everyone. Thank you for discussing this issue and thank you for providing a solution. This made it easy for me to get up and running with my first Firebase Hosting deployment.


Ability to drag black popup box

So the triangle's point still points to the right spot

duplicated by https://github.com/datadesk/web-map-maker/issues/150


Confirm button for transaction signing not visible

On smaller screens the confirm button is not visible

Related to #273

Are you able to scroll down? We can also increase the default height on this popup, but given that the height is dynamic, we can't be sure the button is always above the fold.

There is no way to scroll, that is the main issue
Hank Stoever<EMAIL_ADDRESS>schrieb am Do., 2. Apr. 2020, 18:08:

Are you able to scroll down? We can also increase the default height on
this popup, but given that the height is dynamic, we can't be sure the
button is always above the fold.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/blockstack/ux/issues/302#issuecomment-607940030, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AALBYWLHVMHQF4ERKSJIBZDRKSZ7PANCNFSM4LWXIPLQ
.

@hstove
The button appears normal in Chrome on a Samsung galaxy 9

I get an infinite spinner in Firefox on a Samsung galaxy 9

@timstackblock Can you create a separate issue for this infinite spinner issue or link it here if already available?
And were you able to confirm that this modal now scrolls (apart from the spinner issue?)

Actually I just tested this myself in Chrome and Firefox and it scrolls for me. So I'm going to close this out.
@friedger please re-open with more system information if you still can't scroll here.


HtmlNode.CreateNode add closing tag to video source item

Hi,
if I try to create a node from this html string:
<video width="1280" height="720" poster="poster.jpg">
   <source type="video/mp4" src="video.mp4">
</video>

the result outer html is like this:
<video width="1280" height="720" poster="poster.jpg">
   <source type="video/mp4" src="video.mp4"></source>
</video>

that's not valid.
Thanks
Marco

Hello @valse ,
Thank you for reporting,
We will look at this issue very soon.
Best Regards,
Jonathan

Hello @valse ,
We fixed the source tag in the v1.5.2-beta5,
We will soon re-work the library to fix all tags with a similar issue.
Feel free to re-open if you still have the issue.
Best Regards,
Jonathan


adding Promise.race documentation and reference to proper API docs

This is for https://github.com/then/promise/issues/154

Coverage remained the same at 95.783% when pulling e597a0282c79fd8d4b68b72eeb71857094063739 on debopamsengupta:master into 44f6d7aee2b89d0173139d140a4d0d8fe51bb7af on then:master.

Mind splitting this into two commits? LGTM beyond that.

I think this is ok as one commit, both changes are just documentation updates.


Create course site is not available for admin user

There's no possible to create course sites with the default deploy in the target versions, then I edit the following realms, adding admin user  and set maintain role with all functions enabled in:
!group.template.course
!matrix.template.course
!site.template.course
But the result is the same and catalina.out log don't show anything related to course site creation.
Target versions:
11.0 deploy in august 4
11.x deploy in July 29
Tomcat version: 8.0.36

Hi @mpldev  - the github issue tracker is currently only for gradebook issues. Please file this issue at https://jira.sakaiproject.org. Thanks.


Fix miter artifacts in issue #1134

This adds a fix to keep the miter scale from getting too large for shapes which use the miter functions.

In the long run we might should look at emulating the behavior of inkscape and don't even do a miter for angles which exceed a given scale.  Just a thought.

Thank you for the PR kingadami.  Mimicking Inkscape sounds reasonable to me, but i'll let someone more familiar with the matter make that decision.


Add the ability to wait for documents to be published before responding to clients

Elasticsearch provides a way to wait for indexing operations to be visible to searchers using the refresh=wait_for query parameter, it would be useful to have something similar in Quickwit waiting for the split containing the docs to be published especially for benchmarking.
I believe this will be something we'll need to do anyway for the ES-compatible API #2653

@ChillFish8 seems like a duplicate of #2699

It's similar but I don't think it's the same, that ticket describes forcing a commit/publish from what I can tell rather than just waiting for a publish to complete (which is what the refresh=wait_for parameter is on ES iirc)


Support opening custom file browsers

A couple of hidden settings in the config should be fine: I'm not expecting this to be used a lot.
See https://forum.syncthing.net/t/synctrayzor-windows-host-for-syncthing-installer-auto-start-built-in-browser-tray-icon-folder-watcher-and-more/2011/204

Edit OpenFolderCommand and ShowFileInFolderCommand in config.xml. {0} will be replaced with the path to the file/folder to open.


Grafana dashboards are invalid

When building the Grafana image from source, you'll notice that the Cluster and Pods dashboards aren't loaded. The reason being that cluster.json and pods.json are missing the top dashboard object, which was explicitly removed in commit https://github.com/kubernetes/heapster/commit/e960cd47fb14847f642ef275da01726496e7faff
Oddly enough the latest docker image does contain the right json files.

cc @acobaugh


Native iOS view inside scrollview still visible

I encounted this bug inside iOS native views (no issue on Android!). To keep it short and simple I simply use the webview_flutter plugin to demonstrate the issue:
void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: SingleChildScrollView(
            child: Column(
              children: [
                Container(
                  height: 1000,
                  color: Colors.black26,
                  child: Center(
                    child: Text('Placeholder'),
                  ),
                ),

                SizedBox(
                  height: 200,
                  child: WebView(
                    initialUrl: 'https://flutter.dev',
                  ),
                ),
              ],
            )
        ),
      ),
    );
  }
}

If I first scroll down, the native view is properly rendered. If I then scroll up very fast, the native iOS view is still visible.

I encountered this bug when creating my own iOS view with UiKitView. So bug is not related to the webview_flutter plugin I used here for demonstration. I only attached the screenshot where the view is hanging around at the bottom, but same can happen at the top. I tested it both on iOS simulator and also a real device.
Output of flutter doctor -v:
[✓] Flutter (Channel stable, 2.0.1, on macOS 11.2.2 20D80 darwin-x64, locale de-DE)
    • Flutter version 2.0.1 at /Users/timo/flutter
    • Framework revision c5a4b4029c (11 days ago), 2021-03-04 09:47:48 -0800
    • Engine revision 40441def69
    • Dart version 2.12.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/timo/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

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

[✓] Connected device (1 available)
    • iPhone 12 Pro Max (mobile) • 8C1C1834-2E41-497F-968F-1E780DC4C4FB • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-4
      (simulator)

Suggested labels: platform-ios, f: scrolling, has reproducible steps

Same issue with google_maps_flutter and others plugins. Native view remains visible under other layer in stack, or after very quick scroll. This issue present in flutter >= 2.0 and not in older releases.

+1 (google_maps_flutter)

I have already opened an issues see:
https://github.com/flutter/flutter/issues/76097

Solved with Flutter 2.2. stable release


Added a "back-to-top" button.

📝 Description
Added a "back-to-top" button.
🔧 Fixes #2

[x] I have performed a self-review of my own code.
[x] I'm a contributor in Hacktoberfest'21.

Thankyou @amanr11314


[WIP]DPO

Context
integrating DPO into Torchtune, more details see here
Changelog

...

Test plan

....

are you able to kick off a run of this recipe and document the results in the PR's test plan? Please let me know if you need any assistance with this and I'll be happy to help out.

I run this recipe on a 24g 4090, here is the log:
loss:

rewards margin:

avg log probs:

avg logits:

And I also run DPO by using TRL, differences include:

in TRL, I use batch size 2, gradient_accumulation = 32; in Torchtune, batch size is 4, and gradient_accumulation is 16.
in TRL, fine-tuned weights inlcudes "q_proj", "v_proj", "k_proj", "out_proj", "fc_in", "fc_out", "wte", while in torchtune, we only fine-tune "q_proj", "v_proj".
lr scheduler is different.

the training log closely resembles ours, with the only difference being a slightly lower loss, I'll update the training log once the training is completed.
An intriguing observation is that the log probabilities of the selected (preferred) responses decreased, while the margin of rewards increased. This phenomenon has also been noted in this paper.
Should any other results be provided?

In TRL, I utilize a batch size of 2 with a gradient accumulation of 32. Conversely, in Torchtune, the batch size is 4, and the gradient accumulation is 16.
In TRL, the fine-tuned weights include "q_proj," "v_proj," "k_proj," "out_proj," "fc_in," "fc_out," and "wte," whereas in Torchtune, we only fine-tune "q_proj" and "v_proj."
The learning rate scheduler differs between the two approaches.
Prior to training DPO in TRL, I also execute SFT, which is not performed in Torchtune.

Comparing the training results in TRL to those in Torchtune, it appears that the second and fourth differences may have influenced the outcome. Do you have any suggestions or insights regarding this?

@yechenzhi thanks for this analysis! I am curious about the difference in the loss curves between trl and torchtune, it seems like the torchtune loss does not decrease as much as the trl one does.
Regarding the differences in training you point out, for  (2) you can enable LoRA some of the missing modules to get closer to an apples-to-apples comparison. E.g. set lora_attn_modules=['q_proj', 'k_proj', 'v_proj', 'output_proj'] and apply_lora_to_mlp=True in your config. This is still not perfectly 1:1, but should at least provide a better comparison.
For (3): what is the lr scheduler used in the trl run?
For (4), is it possible to perform the trl run without doing SFT first? (Apologies if this last point doesn't make sense, personally I am not so familiar with the trl setup.)

I am curious about the difference in the loss curves between trl and torchtune, it seems like the torchtune loss does not decrease as much as the trl one does.

@ebsmothers Yes, I found two reasons for this. Firstly, in TRL, it defaults to shuffling the data, but in TorchTune's training, I set shuffle to false. Perhaps due to the continuous appearance of similar prompts in the data, such as consecutive Russian questions and answers, it makes training more challenging. Secondly, there is a typo in the code which causes the learning rate to decrease extremely slow after warming up.

set lora_attn_modules=['q_proj', 'k_proj', 'v_proj', 'output_proj'] and apply_lora_to_mlp=True in your config.

I've done that, but if I don't shuffle the data, the loss goes up.

For (3): what is the lr scheduler used in the trl run?

The typo mentioned earlier caused this issue.

For (4), is it possible to perform the trl run without doing SFT first?

I tried that as well, and it turns out it didn't really matter.
Here is the updated training log after addressing the two issues:
loss:

reward accuracies:

rewards margins:

To note, for a fair comparison, I selected approximately 70,000 samples for the 1000-step training in both TRL and Torchtune. Initially, I chose the first 64,000 * 5 samples from the dataset, and then filtered out those exceeding a length of 1024, resulting in approximately 70,000 remaining samples. I did not include this code in the PR. If you would like to reproduce the loss curve changes provided by me, you can add the line 'self._data = self._data.select(range(64000 * 5))' before here.

I am curious about the difference in the loss curves between trl and torchtune, it seems like the torchtune loss does not decrease as much as the trl one does.

@ebsmothers Yes, I found two reasons for this. Firstly, in TRL, it defaults to shuffling the data, but in TorchTune's training, I set shuffle to false. Perhaps due to the continuous appearance of similar prompts in the data, such as consecutive Russian questions and answers, it makes training more challenging. Secondly, there is a typo in the code which causes the learning rate to decrease extremely slow after warming up.

set lora_attn_modules=['q_proj', 'k_proj', 'v_proj', 'output_proj'] and apply_lora_to_mlp=True in your config.

I've done that, but if I don't shuffle the data, the loss goes up.

For (3): what is the lr scheduler used in the trl run?

The typo mentioned earlier caused this issue.

For (4), is it possible to perform the trl run without doing SFT first?

I tried that as well, and it turns out it didn't really matter.

@yechenzhi thank you for the thorough analysis here! The loss curves look much better now, and thank you for catching the bug on how we were counting steps in the LR scheduler when gradient accumulation was turned on.


[FR] - Balance existing transaction

Internal (anyone could benefit though)
Area
Transaction building
Describe the feature you'd like
I would like to use the cardano-cli to balance a transaction that was drafted by another application. Assuming we have a transaction already built with body and witnesses (redeemers) by a DApp in a transaction envelope tx.json and some signing key wallet.sk which owns ADA to pay fees:
 cardano-cli transaction balance \
   --socket-path ... \ #
   --testnet-magic 2 \
   --unbalanced-tx tx.json \
   --cardano-signing-key wallet.sk \
   --out-file tx.json

Would connect to the cardano-node as usual to fetch various information (utxo owned by user, protocol parameters, system start and era history) and balance the transaction. That is:

(Re-)calculate script costs using redeemers from the tx
Estimate fees
Find and add input to cover fees
Add a change output
Write the balanced transaction to disk (or stdout)

Alternative with slightly smaller scope: Take only an input to use for paying fees and change address, very much like transaction build.
Describe alternatives you've considered
Obvious alternative is to do all this in the DApp itself, but balancing a transaction is a generic process and not application-specific. Also, this would tie the transaction creating code very much to the "source" of where UTxO, protocol parameters etc. are fetched from. Having it in the cardano-cli, a dedicated client to the cardano-node, would keep it separated from e.g. an alternative workflow that uses blockfrost.
Additional context / screenshots
We encountered this while designing a command line tool to create certain smart contract transactions in the Hydra protocol. More details here: https://github.com/cardano-scaling/hydra/issues/1574

BTW I could contribute this directly and this feature request is also to test waters whether this would be appreciated?

@ch1bo This is a very interesting use case and is very much appreciated. If you can submit the PR it would be awesome, if not, just let us know and we will find it a place on the TODO list.

This would enable a more standalone operation of some of hydra tools,

Adding example files I got from https://github.com/v0d1ch
commit-utxo.json
deposit.json


Replacing core commands

From @alefragnani on November 4, 2015 1:12
Is there a correct way to replace core commands?
(of course, if this is something that is available or in the roadmap)
My intention is to create an extension to replace Edit / Copy (editor.action.clipboardCopyAction) and Edit / Cut (editor.action.clipboardCutAction) commands. So, when there is no selection, the Copy/Cut would use the current word instead of the entire line.
About coding, I can:

Determine the word based on the cursor position
Select the word
Execute vscode.commands.executeCommand("editor.action.clipboardCopyAction")
Remove the selection, returning the cursor to its initial position.

But I was wondering if there is something else that I could (or couldn't) do, like defining the keybindings in package.json to Ctrl + C / Ctrl + X; or define vscode.commands.registerCommand for the core command, with my own code.
Thanks in advance
Copied from original issue: Microsoft/vscode-extensionbuilders#79

I also need to override arrow-key navigation, backspace and delete key bindings for my plugin, TabSanity, which is a port of TabSanity from the full-blown Visual Studio.
Additionally, it would be ideal if we could "override" core commands, but still have the ability to execute the original commands manually for fallback cases.

I would like to replace "Save As" command to "Save All". I added the keybinding, but now theres two commands for the keybinding Ctrl+Shift+S.

@Ivan171 I had the same issue initially. Just override the other to empty:
[
	{"key": "ctrl+shift+s", "command": "workbench.action.files.saveAll"}
	{ "key": "",          "command": "workbench.action.files.saveAs" },
]