Optimised images losslessly.

Saved 301 KB out of 9.2 MB. 15.8% per file on average (up to 82.2%)
Fixes #.
Saves 301 KB (although not all files are included in the build)
Description of the changes:

For PNG files: used a combination of Pngcrush, OxiPNG, AdvPNG, PNGOUT and Zopfli
For GIF files: used Gifsicle

How changes were validated:

No changes to behaviour or source code.
Previewed the changed files to make sure they still work

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

Interesting, thanks for the submission.  We do have an automated process that @danbelcher-MSFT wrote which runs TruePNG on our product images (we may have missed running it on the repo-only images).  I remember that there were other tools that he had tried out and chose not to use for various reasons, but I'm not sure if any were in the list that you used.
Daniel -- Had you tried any of these back when writing our Image Compression automation?

LGTM

#273 has issued a similar change, but against fewer files.  It would be good to understand the difference in the optimization result between these two PR's.

https://imgbot.net/docs/#compression says that it uses ImageMagick. In my experience, it's fast but doesn't squeeze images as much as other tools.
ImageOptim, which got mentioned in the other thread, is indeed what I used. It compares the output of various lossless tools and picks the smallest. The PNGOUT and Zopfli tools in particular take a bit more CPU, but are very effective.

Daniel -- Had you tried any of these back when writing our Image Compression automation?

Nope.  Different tools will optimize in different ways.  We aren't checking image compression any longer in our build pipelines.  If the community wants to crush the images further, that's fine with me.  We'll eventually end up with the most optimized images in the OSS community!

#273 has issued a similar change, but against fewer files. It would be good to understand the difference in the optimization result between these two PR's.

Let's take this change and then have the author of #273 re-run their optimizations.  If it produces a diff, we can check that in as well.

Thanks, @grischard!

@danbelcher-MSFT - this change will only impact the dev build, not our Store build (see my comment in #273). These files were previously optimized with your TruePNG tooling. If there are legit benefits seen here, we should look into updating our internal tooling.

I edited the comment above, but I'm also posting that update below since there was some misunderstandng by some around the original comment and I want to be sure to make this super clear:
For clarity to anyone else reading the above comment, the Store version is built directly from the code in this repo, however the icons are replaced before the official build starts.  We use a different set of icons in the dev build vs the official build to help distinguish the unofficial vs official builds.  We also don't sign the dev builds.  So, optimizations made to the icons in this repo have no impact to the Store version since these are non-shipping icons.  Instead of necessarily optimizing these icons, we should be updating the process that we use to internally to optimize the shipping icons, hence my interest more on the process that was used in these two PR's as opposed to this specific result.

It would be very cool to hear back once you've looked at the internal image pipeline. And I imagine Microsoft also has more software that includes images and gets downloaded often...

Hey @grishard, would you mind sharing what specific commands you ran for each of these tools, if any?  It would help when we want to add this as part of our internal process and I won't need to go learn each of the tools.

Hey @danbelcher-MSFT, sorry I missed your question a year ago! I used ImageOptim which simply brute forces combinations of optimisation tools. It's Mac-only, but the website lists similar tools for Windows.


Unable to successfully build a devel-cpu.Dockerfile for arm32v7/arm64v8

Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:build_template
System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 18.04 and 19.10
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: Raspberry Pi 4 B (4 GB)
TensorFlow installed from (source or binary): source
TensorFlow version: r2.1
Python version: 3.6 (Ubuntu 18.04) and 3.7 (Ubuntu 19.10)
Installed using virtualenv? pip? conda?: N/A
Bazel version (if compiling from source): 2.0.0
GCC/Compiler version (if compiling from source): gcc (Ubuntu 9.2.1-9ubuntu2) 9.2.1 20191008
CUDA/cuDNN version: N/A
GPU model and memory: N/A

Describe the problem
There are no crossbuild compile instructions for Raspberry Pi 4 armhf or aarch64--the latter being of much more interest--so I figured I'd follow the devel-cpu.Dockerfile (in tensorflow/tools/dockerfiles/dockerfiles) and devel-cpu-ppc64le.Dockerfile (in tensorflow/tools/dockerfiles/dockerfiles/ppc64le), and attempt to create both a devel-cpu-arm32v7.Dockerfile and devel-cpu-arm32v7.Dockerfile.  However, both fail to build.  Specifically, they fail at the building Bazel step.  I have attempted this from docker on an amd64 host using qemu, as well as from docker on arm32v7 and arm64v8, and finally directly on arm32v7 and arm64v8 without docker.  I have tried installing potential dependancies, i.e., pip install zypper, but still have had no success.
Provide the exact sequence of commands / steps that you executed before running into the problem
See attachment for devel-cpu-arm64v8.Dockerfile.  Simply replace "arm64v8" with "arm32v7" to create the devel-cpu-arm32v7.Dockerfile.
devel-cpu-arm64v8.Dockerfile.txt
docker build --build-arg UBUNTU_VERSION=19.10 --build-arg CHECKOUT_TF_SRC=1 --build-arg USE_PYTHON_3_NOT_2=1 -f ./devel-cpu-arm32v7.Dockerfile -t arm32v7/tensorflow:latest-devel-py3 .
docker build --build-arg UBUNTU_VERSION=19.10 --build-arg CHECKOUT_TF_SRC=1 --build-arg USE_PYTHON_3_NOT_2=1 -f ./devel-cpu-arm64v8.Dockerfile -t arm64v8/tensorflow:latest-devel-py3 .
Any other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.
ERROR: /bazel/src/BUILD:105:1: PythonZipper src/create_embedded_tools.zip failed (Exit 255)
Target //src:bazel_nojdk failed to build
INFO: Elapsed time: 292.985s, Critical Path: 199.34s
INFO: 438 processes: 438 local.
FAILED: Build did NOT complete successfully
ERROR: Could not build Bazel
The command '/bin/sh -c cd /bazel &&     env BAZEL_JAVAC_OPTS="-J-Xmx2g -J-Xms200m" EXTRA_BAZEL_ARGS="--host_javabase=@local_jdk//:jdk" bash ./compile.sh' returned a non-zero code: 1

FYI, in a way creating a working devel-cpu Dockerfile is a prerequisite of #36672.

I managed to successfully build a devel-cpu Dockerfile for aarch64 and submitted the necessary changes as PR #39695

@settle
As we have the latest stable version 2.6.0, Can you try building TF 2.6.0 and let us know if the issue still persists?


Add build folder to git ignore

@grant it seems like if I add the build folder in gitignore it would still work as its updated everytime i run it
Can we add it to the gitignore and rm it from github? It'll still build on the main server
cc: #2

If you gitignore build/, it will be left out from the gh-pages branch and give 404's. (Because we serve from build/).
An alternative could be to have a master branch that ignores the build folder and a Makefile or something that builds everything and pushes what needs to be served to gh-pages. Over-engineering for this use case IMO.

@karan I was just about to close this issue, hadn't seen the main page, thought it was being rebuilt by the server, wasn't sure if it was still hosted on git pages


implemented new function structure

full capture capabilities are working, replay has a couple bugs to work out and restart function seems to have a weird import error. This pull includes restructuring and simplifying and cleaning agents code and improving upon functions and adding class structures for ease of use, code re-use and scalability.

Great!  Let's code freeze for now and let's sync in the morning.  I want to layout our next goals.
Sent from my iPhone

On Oct 13, 2016, at 10:32 PM, Tyler Moore<EMAIL_ADDRESS>wrote:
full capture capabilities are working, replay has a couple bugs to work out and restart function seems to have a weird import error. This pull includes restructuring and simplifying and cleaning agents code and improving upon functions and adding class structures for ease of use, code re-use and scalability.
You can view, comment on, or merge this pull request online at:
https://github.com/flyballlabs/threatdetectionservice/pull/7
Commit Summary
changed calling statements on functions
fixed importing and function calling issues, created class for Capture functions, simplified dir structure, ammended iptables rules for production
removed old functions that were replaced with last commit
implemented new and improved function calls, condensed code and created classes for pertinent functions, deleted extra copies of scripts and old code, removed junk project files inserted by eclipse, improved import statement and directory structure, cleaned up old comments and unused code, added function comments
commented out RetartPi (needs bugs fixed)
fixed misspelled code
File Changes
D .project (17)
D .pydevproject (5)
D .settings/de.loskutov.anyedit.AnyEditTools.prefs (18)
D .settings/org.eclipse.ltk.core.refactoring.prefs (2)
D agents/PiTap/.project (17)
D agents/PiTap/.pydevproject (8)
D agents/PiTap/rpi/CheckPorts.py (28)
D agents/PiTap/rpi/DisableCapture.py (46)
D agents/PiTap/rpi/DisablePorts.py (39)
D agents/PiTap/rpi/EnableCapture.py (27)
D agents/PiTap/rpi/EnablePorts.py (38)
D agents/PiTap/rpi/EnableReplay.py (22)
D agents/PiTap/rpi/test.py (16)
D agents/PiTap/rpi/update.py (67)
A agents/rpi/Capture.py (38)
A agents/rpi/EnableReplay.py (52)
A agents/rpi/Ports.py (87)
R agents/rpi/RestartPi.py (30)
R agents/rpi/init.py (0)
A agents/rpi/update.py (84)
Patch Links:
https://github.com/flyballlabs/threatdetectionservice/pull/7.patch
https://github.com/flyballlabs/threatdetectionservice/pull/7.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Not QR pops up

In the HoloLens connected to Unity by Remoting, there is not QR pops up in the scene in front of the user.

Using openxr branch for qrocode with remoting in unity

Same here, tried both version, deployed to emulator x64 and device ARM, both project no QR pops in the scene. No erros, just nothing happens.

I'm having a similar issue to the one described in this issue. I can successfully detect QR codes when I build the QRCode tracker as a UWP app, but the QRCodeWatcher does not detect them when I use either the Unity editor or a standalone Windows app with holographic remoting.
I'm wondering if anyone has any suggestions for a solution to this issue. Thanks

Similar issue:
QR code is not tracked in playmode with a HoloLens 2 conntected through holographic remoting app. The code is recognized, but not spatially tracked (warning 'Cannot locate {id}').
Even stranger: The exact same project does work on another PC...
I'd appreciate any hints about what could be missing.
(Unity 2022.3.8f1, Windows 10 22H2)

Same problem, the add and updated events pop, but the node cannot be located

I have the same problem

Has anyone found a solution?


Throw CCE when using Fuse while enable client cache

Alluxio Version:
Alluxio master branch, HEAD
Describe the bug

java.lang.ClassCastException: alluxio.client.file.cache.LocalCacheFileInStream cannot be cast to alluxio.client.file.AlluxioFileInStream
        at alluxio.fuse.AlluxioJniFuseFileSystem.readInternal(AlluxioJniFuseFileSystem.java:429)
        at alluxio.fuse.AlluxioJniFuseFileSystem.lambda$read$17(AlluxioJniFuseFileSystem.java:404)
        at alluxio.fuse.AlluxioFuseUtils.call(AlluxioFuseUtils.java:280)
        at alluxio.fuse.AlluxioJniFuseFileSystem.read(AlluxioJniFuseFileSystem.java:404)
        at alluxio.jnifuse.AbstractFuseFileSystem.readCallback(AbstractFuseFileSystem.java:180)

To Reproduce
Enable client cache in alluxio-site.properties
alluxio.user.client.cache.enabled=true

And then start Alluxio-fuse, read a file
Expected behavior
get the content of the file.
Urgency
Urgent, block to use Alluxio Local Cache.
Additional context
No.

How to fix this bug

A simple workaround is test the is, if it is not the AlluxioFileInStream, turn to the original logic like the above code.

@bzheng888 Will take this issue and fix it, @LuQQiu please take a look at the PR when @bzheng888 make it ready to review, Thanks @bzheng888 @LuQQiu

@apc999 Hi Bin, In our scenario, we have to use standalone mode fuse, because the alluxio-fuse is out of our alluxio cluster, even worse, the ttl between alluxio-fuse and alluxio cluster are high ~4ms, so we'd like to enable client.metadata.cache and client.local.cache feature to reduce the communicate and data transform between alluxio-fuse and alluxio cluster, but met this CCE.

We plan to use FUSE+Worker combination.  but there is no valid kubernetes helm deployment option yet


minifab up -i 1.4.12 failed on docker environment

minifab up -i 1.4.12 got failed for docker environment in netup phase as below:
# Preparing for the following operations: *********************
  verify options, download images, generate certificates, start network, network status, channel create, channel join, anchor update, profile generation, cc install, cc instantiate, discover
..................
# Running operation: ******************************************
  verify options
.
# Running operation: ******************************************
  download images
............
# Running operation: ******************************************
  generate certificates
......................................................................................................................................................................................................................
# Running operation: ******************************************
  start network
...................
# Start all ca nodes ******************************************
  One or more items failed
    non-zero return code
    non-zero return code
# Error! ******************************************************
  Unable to find image 'hyperledger/fabric-ca:1.4.12' locally
  docker: Error response from daemon: manifest for hyperledger/fabric-ca:1.4.12 not found: manifest unknown: manifest unknown.
  See 'docker run --help'.

# STATS *******************************************************
minifab: ok=304	failed=0

CA image does not match up with fabric peer or orderer image, there was an logic in the code to deal with this, I wonder if that logic has been lost in recent changes.

What is the solution?


Combat Initiative Tracker Cannot be Repositioned

Changing the X and Y value for the position of the Combat Initiative Tracker doesn't change its position. It stays in the middle of the screen.

I cannot reproduce here, positioning appears to work as expected.
Changing the position settings does not currently dynamically update on the client, you'll need to restart combat or reload to see the position update.

I've perform some experiments to figure out the root of the issue.
The main issue appears when Camera Mode is set to Director in the Module Settings.
It seems that when I disable all my other modules (except the ones required by Stream Viewer), the combat tracker will not appear even when the Auto Show Combat Tracker option is checked.
When I have my module suite enabled, the combat tracker is shown (maybe by some other module) but the position is not set to the ones in Module Settings. Instead, it's just smack dab in the center
All works as normal when Directed mode is set to Automatic

Thanks for looking into this, I can reproduce the lack of combat tracker with Directed camera mode, I'll look into it and try to get a fix out soon.

Fixed in v0.1.5


Bug when run process_dataset.py

After convertion of the bvh file, there is an error (shown below), and it is because the BatchMirror class is in src.Datasets.augmentation, not src.Datasets.BatchProcessor.
Traceback (most recent call last):
File "process_dataset.py", line 173, in
splitStyle100TrainTestSet()
File "process_dataset.py", line 151, in splitStyle100TrainTestSet
style_loader.split_from_binary()
File "/workspace/RSMT-Realtime-Stylized-Motion-Transition/src/Datasets/Style100Processor.py", line 225, in split_from_binary
from src.Datasets.BatchProcessor import BatchMirror

After solving this error, another error occurs when I run python process_dataset.py --train_phase_model, shown below:
Traceback (most recent call last):
  File "process_dataset.py", line 175, in <module>
    processDeepPhaseForStyle100(62,2)
  File "process_dataset.py", line 145, in processDeepPhaseForStyle100
    style_loader.process_from_binary()
  File "/workspace/RSMT-Realtime-Stylized-Motion-Transition/src/Datasets/Style100Processor.py", line 273, in process_from_binary
    self.train_dict = self._process_dataset(self.train_motions)
  File "/workspace/RSMT-Realtime-Stylized-Motion-Transition/src/Datasets/Style100Processor.py", line 293, in _process_dataset
    train_set = self.processor({"offsets": o, "hip_pos": h, "quats": q}, self.skeleton, self)
  File "/workspace/RSMT-Realtime-Stylized-Motion-Transition/src/Datasets/DeepPhaseDataModule.py", line 48, in __call__
    gv = self.transform_single(offsets, hip_pos,quats, skeleton)
  File "/workspace/RSMT-Realtime-Stylized-Motion-Transition/src/Datasets/DeepPhaseDataModule.py", line 29, in transform_single
    dict = self.process(gq.unsqueeze(0),gp.unsqueeze(0))
  File "/opt/conda/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
    return forward_call(*input, **kwargs)
  File "/workspace/RSMT-Realtime-Stylized-Motion-Transition/src/Datasets/BatchProcessor.py", line 50, in forward
    ref_vector = torch.cross(global_positions[...,5:6,:]-global_positions[...,1:2,:],torch.tensor([0,1,0],dtype=global_positions.dtype,device=global_positions.device),dim=-1)
RuntimeError: inconsistent tensors dimensions input: 5 other: 1

Thank you, in some pytorch version it is indeed a problem.
Change the ref_vector to :
ref_vector = torch.cross(global_positions[...,5:6,:]-global_positions[...,1:2,:],torch.tensor([0,1,0],dtype=global_positions.dtype,device=global_positions.device).expand(global_positions[...,0:1,:].shape),dim=-1)


Switch from "wget" to "curl"

This avoids strange intermittent issues like:
Connecting to test.docker.com (<IP_ADDRESS>:443)
wget: error getting response: Connection reset by peer

Yay, fixes the build! :+1:


Newborn Exam - Changes to History Activity [8h]

Issue
We are making changes to the Newborn Exam as some issues were brought to light while working on NCDA.
We are making a few changes:
(1) We are adding:

Birth weight
birth length (has conditional follow up questions)
apgars (has conditional follow up questions)
birth defect (has conditional follow up questions)

(2)The activity name is changing to "Birth History" from "History"
Here is the updated design:

To Do:

design screen per design
update title of the activity

@jeanette-pelizzon

birth defect (has conditional follow up questions)

I don't see any conditional questions on the design.

@jeanette-pelizzon

We are making changes to the Newborn Exam as some issues were brought to light while working on NCDA.

I see this issue got NCDA label, but I don't see any requirement for pulling data from this (changed) activity to be used for NCDA logic.
Am I missing something?

@jeanette-pelizzon

birth defect (has conditional follow up questions)

I don't see any conditional questions on the design.

Sorry was waiting for information from the medical team. Updated design and the main issue.

I see this issue got NCDA label, but I don't see any requirement for pulling data from this (changed) activity to be used for NCDA logic.
Am I missing something?

If a child is under 2500 grams then they are underweight and that will be referenced on NCDA scorecard.

@jeanette-pelizzon

I see this issue got NCDA label, but I don't see any requirement for pulling data from this (changed) activity to be used for NCDA logic.
Am I missing something?

If a child is under 2500 grams then they are underweight and that will be referenced on NCDA scorecard. See #543.

Per #545, we have that input at NCDA questionnaire, when it asked once.
So, why do we need to referrence the oinput from Newborn exam?

You're correct, right now we do not need to reference it from the newborn exam. Sorry, this was discussed in a meeting but we are holding off on pulling from the newborn exam since that's only done at the CHW level now and not all districts use CHWs with eheza or something like that. So for now we will keep it on the questionnaire with the numerical input and pull the data for the NCDA questionnaire from there. Sorry for the confusion!

Okay sorry, I double checked with @adamhstewart and we DO need to pull the information from the newborn exam. So if the information is filled out in the newborn exam - NCDA will know that and automatically pull it. If the information does not exist in the newborn exam, then we need to ask the question on the questionnaire.

@jeanette-pelizzon
Ok, I see. This will require more additional effort.
There's another question that we ask at Newborn Exam - about birth defects.
I suppose it should it behave the same way?

@jeanette-pelizzon
Similar to all other inputs, shouldn't we ask if birth weight is available, before asking what it was?

There's another question that we ask at Newborn Exam - about birth defects.
I suppose it should it behave the same way?

@anvmn yes they should both behave the same way. Again, sorry for the confusion!

Similar to all other inputs, shouldn't we ask if birth weight is available, before asking what it was?

It seems that mothers are given a yellow card that has all the birth information about their baby so they will know the birth weight.

@jeanette-pelizzon

Similar to all other inputs, shouldn't we ask if birth weight is available, before asking what it was?

It seems that mothers are given a yellow card that has all the birth information about their baby so they will be able to provide birth weight to the healthcare worker. @anvmn

What if mother does not have that card for some reason?
Asking, because we need this info for NCDA, and if incorrect value is entered, it will show on the scoreboard.

It is my understanding that the yellow cards are VERY important and what is used currently to track everything about their childs health so I think it would be very, very rare that they don't have one but differing to @adamhstewart here. I think we can assume that 99% of them will have the card.

QA Review
Found issues and questions:

Not related to this issue, but when registering new patient some dropdown list is so long, that doesn't fit on the screen, and I couldn't even use the scrollbar to go further down.
![image](https://user-images.githubusercontent.com/3536805/207321399-8853123b-707d-428f-855f-fd11fa777c86.png

Checked and approved:

History is changed to Birth history

Apgar conditional questions display if Yes is answered.

Birth length conditional question displays if Yes is answered.

Birth weight and birth defect questions are displayed.

I believe this is how this has always functioned. Maybe just a random error. adding @anvmn for clarification.

@jeanette-pelizzon
Real case scenario is usage of tablet, where selector is different.
So, this is non issue.


Grains of Infinity server impact?

How server friendly is the Grains of Infinity process?
My current setup involves placing/removing liquid pyrotheum (sets blocks around it on fire) and vacuuming up the grains. So that's a combination of flowing liquids, fire, and vacuum mechanics.

Pyrotheum is from another mod, and doesn't need to be placed and replaced to cause fire. Also the performance is simply the same as having a fire.

As @EpicSquid said, there is minimal impact beyond that of a normal fire being lit/extinguished.


Define internal/crypto/ccm errors as var

To make it easy to unit test failure cases.
Tests to check panics and errors on invalid inputs are added.
(This increases patch cover ratio of #167.)

Codecov Report

Merging #168 into master will increase coverage by 0.4%.
The diff coverage is 85.71%.

@@            Coverage Diff            @@
##           master     #168     +/-   ##
=========================================
+ Coverage   72.01%   72.42%   +0.4%
=========================================
  Files          60       60
  Lines        3431     3431
=========================================
+ Hits         2471     2485     +14
+ Misses        660      653      -7
+ Partials      300      293      -7

Impacted Files
Coverage Δ

internal/crypto/ccm/ccm.go
76.47% <85.71%> (+11.76%)
:arrow_up:

Continue to review full report at Codecov.

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

That's fantastic! Thank you so much @at-wat :)
I am just announcing pion/turn v2 right now, and then will be finishing up a /v2 here!


Fix vm2 vulnerability

Updates release-it to 16.2.1 to fix the vm2 vulnerability https://github.com/patriksimek/vm2

Addressed in #154


nltk.text --> findall improviment to return hits

To improve findall in nltk.text I suggest to change "print(tokenwrap(hits, "; "))" in def findall(self, regexp) to "return hits". In this way it would be possible to get a list of values returned by findall.
The way it is implemented if you do:

x = text5.findall("<.><.>")
you rule bro; telling you bro; u twizted bro
x

This return only a print; x will be empty.
This, will be no control of the output.
If "print(tokenwrap(hits, "; "))" would be change to "return hits", x would be:

x
['you rule bro', 'telling you bro', 'u twizted bro']

Seems much better!
Thank you.

to 3.4.5 version

Text.py is just demonstration code; you can use it as a model, and change what you like.


Clarify method name in TreeLayout#initial warning

puts('this method is no longer necessary!  all code that *isn\'t in a `reapply` block is now only applied during initial setup.')

Because this is just output and not an exception being raised, RubyMotion doesn't show any hint (e.g. a backtrace) of what's generating this message.
I had to grep my bundled gems to figure out where this message was being triggered, and only then was I able to see it was from still having an initial block.
Let's help the user out a little! :smile:

Looks good!  Thanks.

Oops, meant to merge, not close.


Use file extension and directory name prefixes on the same prompt

Is your feature request related to a problem? Please describe.
When using extension # and directory name > prefixes on the same telescope prompt, I get result for matches on the extension OR directory, I would like to have matches for the extension AND directory, is it possible?
Describe the solution you'd like
Be able to use test >lua #plugins prompt and get results for lua files inside plugins directory
Describe alternatives you've considered
None
Additional context
This is the current result, the result shown is a lua file but not in the plugins directory

rg does not directly support this out-of-the-box. The way this would have to be done right now is via piping (cf. link below). This however adds too much complexity. Another way would be to write a parser that joins patterns. That's quite tedious though as well.
See: https://github.com/BurntSushi/ripgrep/issues/875#issuecomment-378089924
PR welcome.

Thank you for your quick response. I understand that this is not trivial.
I still want to give it a shot as this feature is important for me (it could take a few weeks since I don't have a lot of time).
If you think  this is too complex and hard to maintain, please let me know and I'll do it quick and dirty in my config.
If you're interested in a PR I have a few questions so that the PR I propose respects your needs, wants, quality requirements, etc:

the final pattern could look like this: **/{%s}*/**/*{%s}*.{%s} if all default prefixes are used at the same time, where each %s could be search or search1,search2,..., is that right?
Do you  want this to be the default behavior, or do you want to keep the default to multiple --glob and have this new behavior opt in with a new config option? If so, what would you want this new config option to be named?
I don't have much experience with telescope or this plugin codebase, do you see any caveat or edge case that would make this feature more complex that I think?
Any other requirements? Commits naming, PR style, code style?

Thank you!

Ex-post: I realize you've answered some questions yourself in the edit, but yes, that is the core problem.

the final pattern could look like this: /{%s}*//{%s}.{%s} if all default prefixes are used at the same time, where each %s could be search or search1,search2,..., is that right?

I remember trying this myself at some point for the reason but discarded it because there will be quite a few edge cases if we would like to do this in a general purpose (all sorts of patterns, etc.) setup. It's probably best to think of ways to isolate this use case (prefixes, simple flags, etc.).

behavior opt in with a new config option

My hunch is uninitiated rg users would expect this behavior by default, coinciding with the typical actual intent of inserting multiple flags. From that end yes, I'd say this probably is a good default. At the same time, the solution will have to be sufficiently robust.

I don't have much experience with telescope or this plugin codebase, do you see any caveat or edge case that would make this feature more complex that I think?

Parsing and merging is not easy ;)

Any other requirements? Commits naming, PR style, code style?

There is a stylua toml in the project that the binary should pick up automatically. CI I recall complains if the PR is not correctly formatted.


IGNITE-20936: Sql. Introduce container for dynamic parameters

Adds a container that stores values of dynamic parameters.
Updates some test removing empty parameters.

https://issues.apache.org/jira/browse/IGNITE-20778

Thank you for submitting the pull request.
To streamline the review process of the patch and ensure better code quality
we ask both an author and a reviewer to verify the following:
The Review Checklist

[ ] Formal criteria: TC status, codestyle, mandatory documentation. Also make sure to complete the following:
- There is a single JIRA ticket related to the pull request.
- The web-link to the pull request is attached to the JIRA ticket.
- The JIRA ticket has the Patch Available state.
- The description of the JIRA ticket explains WHAT was made, WHY and HOW.
- The pull request title is treated as the final commit message. The following pattern must be used: IGNITE-XXXX Change summary where XXXX - number of JIRA issue.
[ ] Design: new code conforms with the design principles of the components it is added to.
[ ] Patch quality: patch cannot be split into smaller pieces, its size must be reasonable.
[ ] Code quality: code is clean and readable, necessary developer documentation is added if needed.
[ ] Tests code quality: test set covers positive/negative scenarios, happy/edge cases. Tests are effective in terms of execution time and resources.

Notes

Apache Ignite Coding Guidelines

A motivation behind this patch is not clear to me. May you elaborate what was wrong with an array?


Timings and inlining (lazy) module initialization

Feature request
I've been looking to implement this as a plugin/loader or a babel plugin and I don't think it's possible because webpack restructures the import after plugin/loader have ran when packaging. If it is possible I'd greatly appreciate some small pointers in case I missed something.
Currently module import are hoisted to the top of the file and run eagerly. This can cause a problem for performance for large apps because you're now doing a lot of transitive module initializations for modules that potentially don't have side effects and that can be deferred until the feature is used, which may not happen during the app startup. In some traces I see this take upwards of 1000ms of execution:

First I'd like to be able to have a way to time the module initialization. I'm able to wrap the module body via babel but I'm not able to wrap the imports so I'm not able to get the total init time of the module and thus any node_modules are black hole unless I was to transpile those as well.
Second I'd like to be able to write a loader/plugin/transform that moves the sync import inline with where they are used. Facebook does this to improve their startup time and reduce module init cost as can be seen here in b(...):

There's considerations to keep in mind such as side effects, code size, call overhead and deviations from es6 modules that user of this would need to keep in mind when deploying. For my use case those trade offs are desirable compared to the large and hard to manage initialization step.

What is the expected behavior?
There's a good way to time module initialization. There's a good way to inline sync module imports.
What is motivation or use case for adding/changing the behavior?
Needing to find a more scalable way to track and manage initialization costs in a large code base beyond just managing the transitive import from the main entrypoint.
How should this be implemented in your opinion?
Either allow the behavior to be customized with loaders/plugins (preferred), or have built in options that give more flexibility in how the imports are structured to allow the above use case to be implemented.
Are you willing to work on this yourself?
yes, with high level guidance and pointers and concensus on the idea and feature.

With optimization.moduleIds: "named" the performance traces give a really good overview over module intialization time.
If that's really not enough, you can intercept module execution:
const { RuntimeModule, RuntimeGlobals } = require("webpack");

		compiler.hooks.compilation.tap("TimingsPlugin", compilation => {
			compilation.hooks.additionalTreeRuntimeRequirements.tap(
				"TimingsPlugin",
				(chunk, set) => {
					set.add(RuntimeGlobals.interceptModuleExecution);
					compilation.addRuntimeModule(
						chunk,
						new (class extends RuntimeModule {
							generate() {
								return `${RuntimeGlobals.interceptModuleExecution}.push(options => {
									const oldFactory = options.factory;
									options.factory = function(...args) {
										console.time(options.id)
										oldFactory.apply(this, args);
										console.timeEnd(options.id)
									}
								})`;
							}
						})(
							"module initialization timings runtime module",
							RuntimeModule.STAGE_NORMAL
						)
					);
				}
			);
		});

see also
https://github.com/princjef/babel-plugin-lazy-require
https://github.com/arcanis/babel-plugin-lazy-import


Bottlenecks and children

Is their some type of upper limit of concurrent players a room can have?Could rooms be broken up into sub areas so that a player only sees things within a certain area rather than things within the whole room(world).

Hi @Phacanu,
There's no limit of players per room, by default. You can specify a limit by implementing the requestJoin() method in your room handler.
In the current implementation, the entire room state patch is broadcasted to every single client connected to it.
It's possible to send custom data to connected clients manually if you really need to. In the room handler you can send data to a single client, like this:
this.send( this.clients[ clientIndex ], { arbitrary: 1, data: 2, here: 3 } );

The client will receive this message on the onData signal.
Given this, you can implement your own broadcast system for in-area updates. I believe it's possible to have a generic system to allow this, though. I'm definitely interested in having this for the version 1.0.0.
I'd love to hear ideas of how to implement this, and how the API could look like.
Cheers!

@endel What about the engine limit,like could this handle 200 or so players on a digital ocean server?

@Phacanu it pretty much depends on the amount of data your rooms will exchange with your clients.
You can scale your server using standard node.js + websocket techniques. This blog post has good advice about that: https://blog.jayway.com/2015/04/13/600k-concurrent-websocket-connections-on-aws-using-node-js/ on this blog post, the author is using socket.io. Colyseus uses uWebSockets, which in theory has better performance.
I'm planning to perform a stress test in a real game I'm working on during this week and post the results here :)

@endel  socket io uses uwebsockets as of the most recent versions,and i'll take a look at that post


font files are not served under base url

In index.css there are 3 font files loaded with relative path:
https://github.com/jupyterhub/binderhub/blob/74b3d69c1c37a2ca05cff816b81b68ba515ac0ae/binderhub/static/index.css#L3-L16
But for both mybinder (base url is '/') and GESIS binder (base url is '/binder/') they are loaded from /static/dist/... in styles.css:

https://mybinder.org/static/dist/styles.css
https://notebooks.gesis.org/binder/static/dist/styles.css

I don't know if this is because how they are loaded in index.css or because of webpack config.
Actually this is not a problem for GESIS binder. I just wanted to report the issue.

I think webpack rewrites the URLs when it creates styles.css from the input CSS files.
I am not sure if there is a problem with how things currently work or if this issue is about improving the documentation (I'd welcome that :) ) or something else?

But isn't it a problem that they are always served under /static/dist/... without considering the base url of the application? If base url is different than '/', those file won't be found. Maybe I am totally wrong :) I really don't know much about css files and webpack.

Ah! I think I agree with you that who ever re-writes that path to be /static/dist/... needs to take care to also include the base URL. I read your comment about notebooks.gesis.org/binder/static/dist/styles.css as "the files are being loaded from that URL, the fonts are somehow included in the CSS (by magic of webpack) and it includes the base URL and for mybinder.org it doesn't so all is as expected".
Now that I actually looked at the two CSS files you linked I see the problem. (Maybe I should have had a second coffee for breakfast.) -> We need to communicate the base URL to webpack. Maybe @captainsafia or @yuvipanda can help out with advice on how to do that best.


[HOLD 10414]mWeb - Chat - Device keyboard does not auto appear when editing a message

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.58-0
Reproducible in staging?: y
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4464317
Issue reported by: Applause - Internal Team
Action Performed:

Log in to New Expensify
Navigate to any chat
Send a message
Tap and hold the message
Tap on edit comment

Expected Result:
Message should enter edit mode and device keyboard should be displayed
Actual Result:
Message enters edit mode but keyboard does not appear
Workaround:
n/a
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/84846ff9-6cf1-46cb-8bcd-0ee70e8ec0ee
View all open jobs on GitHub

We think that this bug might be related to #vip-vsb

I cannot reproduce this on safari on ios. I don't have an android device to try it. I'll reach out for assistance.

This may be related to live markdown web

@francoisl reproduced this on a real android device.

I'll add a PR in a moment 👀

Fix is currently being reviewed by @jayeshmangwani

Turns out this also happens on production so it's not a blocker - but something we should still fix

Held on https://github.com/Expensify/App/issues/10414

Held on https://github.com/Expensify/App/issues/10414

Held on https://github.com/Expensify/App/issues/10414

Still held

Do we still care about this?

Looks like we closed the issue this was holding on, so probably not


added gradle file for bintray plugin

if a bintry account can be created i can autofill the rest of the details required


QoL: item cooldowns in stash

Suggestion to display item cooldowns while in stash and horadric cube as currently they are shown only while held by towers. If player is  planning to maximize usage of item ability while switching to other items - they have to bring the item to tower to check its cooldown and wait a few seconds or have already lost a few seconds of cooldown - which is annoying and inconvenient.

This is probably buffing active items though. In original YouTD player probably only saw item cooldowns while in tower.

Also item charges could be visible as well.

I think showing item cooldowns in item stash would cause visual clutter.
Maybe make default behavior to not show but add ability to enable it with "/show-item-cooldowns-in-stash"?

That would work I believe. But maybe whole item stash is indeed too much.
Let's think about applying this only to horadric cube and/or any additional inventories I've suggested in #460 that could mimic hero/builder inventory from original game. Not sure, but I believe cooldowns of items were visible there.

Item cooldowns are visible in horadric cube since #462
I consider this closed


[BUG] zero gravity on Earth

Version of Advanced Rocketry
[1.12.2-1.7.0-209 build -209 ]
Have you verified this is an issue in the latest unstable build
N/A
Version of LibVulpes
[1.12.2-0.4.2-74 build -74 ]
Version of Minecraft
[1.2.2]
Crash report or log (if applicable)
http://pastebin.com is a good place to put them
crash reports that are put in the issue itself are
hard to read
[insert here]
Description of the problem
[How can you reliably reproduce the problem]
When I launch into space my rocket disappears and I have to do /kill as I'm stuck and can't fly ever and when I respawn there is no gravity and I just float off  so  I have to exit the game to fix the gravity but it dose not fix anything else I still get stuck in space

Take a look at your planetDef.xml's Earth, if the gravitationalMultiplier is at 0, set it to 100.

after editing what @Gliese-832-c said please upload the planetdefs.xml from the world's folder to gist.github.com or pastebin please.


policy redirects to 404

there's typo issue too it should be Term of use instead Team of use

https://v1.iotex.io/policy

https://v1.iotex.io/policy
we are using footer from iotex-react-footer so i think we should change the URL there.


trailing comma when confidence has no decimal places

Hi. I like your bot very much and use it everyday.
The bot has a spelling problem when the number has no decimal places, spelling a comma at the end without need it. Eg: if the confidence was 3.0  , it prints "3,".

Misunderstood ... it always a comma


Consolidate updates to dependencies

Consolidates updates to several python and github-actions dependencies.
Updated docs to use docker compose instead of docker-compose
Added py3.12 and pypy-3.10 to CI workflow
Formatted code base with black
highest supported pydantic is 2.4.x. Anything higher than this fails to run with mypy errors.
Updating mypy fails.

Closes #577 #588 #548 #567 #556 #554 #564 #563 #560 #495 #518
Tests fail with: #497
Related to #596

Codecov Report
Attention: Patch coverage is 75.00000% with 2 lines in your changes are missing coverage. Please review.

Project coverage is 77.89%. Comparing base (1213ca7) to head (ea59eea).

Files
Patch %
Lines

aredis_om/model/query_resolver.py
0.00%
2 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #597      +/-   ##
==========================================
+ Coverage   77.87%   77.89%   +0.01%
==========================================
  Files          15       15
  Lines        1279     1280       +1
==========================================
+ Hits          996      997       +1
  Misses        283      283

Flag
Coverage Δ

unit
77.89% <75.00%> (+0.01%)
:arrow_up:

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

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

Looks like the issue was caused by some updates to fstrings in python 3.12, to match the redis tag syntax, we naturally needed to escape braces in interpolated strings, see an example here, this is all well and good, and it still works in python 3.12, however we regenerate model.py using unasync, and the std_tokenizer changed in 3.12 so that f"@{field_name}:{{{value}}}"  is yielded as a series of tokens @, {, field_name, }, :{, {, value, }, }, which from a code-interpretion perspective, is correct, however when the tokens are being reorganized they come out as `f"@{field_name}:{ {value}}", notice the space and missing braces.
It does not appear that there is a way to work around this with the code as-is, and changing those f-strings to the non-condensed format methods seems to resolve the tokenization issues:
so:
result += f"@{field_name}:{{{value}}}"

becomes:
result += "@{field_name}:{{{value}}}".format(
  field_name=field_name, value=value
)

This is a bit of hack, but it gets the job done and is the shortest and simplest way to the result we're looking for here, thoughts @banker, @gaby, @uglide?

Spoke with @banker we're good to go (when version update tests pass!)


Improvements to paramterized types

[x] Add docs to all Ecto.ParameterizedType callbacks

[ ] Discuss if and how to move the functionality in Ecto.Changeset to Ecto.ParameterizedType (cast, change, apply_changes)

[ ] Discuss if and how to move the functionality in Ecto.Repo.Schema to Ecto.ParameterizedType (Embedded.prepare, surface_changes)

@josevalim I just want to confirm … If we agree on 2nd and 3rd point we would be able to write such code:
defmodule MyApp.Comment do
  use Ecto.Schema
  use MyLib

  schema "comments" do
    belongs_to :author, MyApp.User
    exactly_one_of :source, :belongs_to do
      polym :post, MyApp.Post
      # …
    end
    # helpful macro which would generate something like:
    # belongs_to :post, MyApp.Post
    # …
    # field :source, MyLib.ExactlyOneOf, polym_fields: [:post, …]
  end
end

which would allow to work on :source field just like on :post association (in case %MyApp.Post{…} would be used or in this example post_id would be the only non-null column in database) just by Ecto.ParameterizedType callbacks without any workarounds and/or rewriting any part of ecto/ecto_sql code, right?
I believe that true polymorphic associations would be a good example for a complex real world use case of all callbacks. Here ideally if in callbacks we would receive full schema instead of only a field value. Maybe it would be good to consider if Ecto.ParameterizedType would receive full schema when virtual option is set to true? Look that for example callback load (from database) of virtual (field) does not makes sense unless it have access to full schema or at least a specified list of fields and looks like the same applies to other (all?) callbacks.
WDYT?

Associations have other complexities that are not taken into account here, such as tracking transactions. Plus there are many other association specific callbacks. So what you suggest above is a non-goal, at the moment.
I mean, we haven't even solved embeds yet, talking about associations is definitely too early.

@josevalim Associations have other complexities that are not taken into account here, such as tracking transactions. Plus there are many other association specific callbacks. So what you suggest above is a non-goal, at the moment.

Wait, do we need "association specific callbacks" and other things you said to support that? For sure: I asked about doing things like calling cast_assoc/3 instead cast callback (1st point) in parameterized type (instead of changeset/2 function) + give full schema instead of only field value. I asked in terms of custom field which would only help handling multiple associations and not about custom associations.
Would it still be a problem?

talking about associations is definitely too early.

I completely understand that. I just thought that it would be already possible after implementing 1st point (+ maybe 2nd) + as said providing full schema instead of only value in callbacks.

@josevalim I take the first task.

Has reuse of Ecto.Enum been discussed? We are big users of embedded_schema coupled with https://github.com/commanded/commanded. Since there are many events/commands that may share data types, its common for use to declare Enums to be shared across many schemas. For example, using our internal version of Enum
defmodule App.Sport do
  use App.Ecto.Enum, values: [:baseball, :football]
end

defmodule App.Event do
  use Ecto.Schema

  embedded_schema do
    field :uuid, Ecto.UUID
    field :sport, App.Sport
  end
end

defmodule App.Event do
  use Ecto.Schema

  embedded_schema do
    field :uuid, Ecto.UUID
    field :sport, App.Sport
  end
end

I really do think that first class support for this should be considered

@davydog187 yup, the plan is for Ecto to ship with an Ecto.Enum type, it's just a matter of laying the proper foundation first.

Great. Sharing our implementation in case its useful https://gist.github.com/davydog187/0bec728c8f61218e9390aa43266b2acf

@davydog187 Once ParameterizedType would be finished and released I would update my work I have already started locally. It would be an advanced enum library with a fully reversible migrations and many other features.
Regarding your use case you can do 2 things now:

Write a shared (between multiple schema modules) macros with predefined values
Write your own ParameterizedType based on existing implementation, but changing just those runtime values to compile time attributes or just keep your current implementation. I don't think that ecto would give 2 different enum modules (one with runtime values and one with compile time values).

If you need share enums with the current in master, I would do:
field :sport, App.Sport, values: App.Enum.sports()

where
def sports, do: [:baseball, :football]

If the goal is to define multiple enum modules, than the custom type API that is available today is enough. The goal with adding paramterized modules was to not force uses to define a bunch of small modules.

@josevalim #3381 submitted to address the first point.

@TheFirstAvenger awesome, thank you!

Btw, for the next tasks, we don't need to tackle all of them at once. For example, we can start only with a PR on cast, then one for change, etc.

@josevalim Today I took a shot at implementing embeds in Changeset.cast (#3384). Let me know if it is on the right track or not.

Hi folks, so today I spent most of the morning trying to remove embeds from Ecto.Repo.Schema and, unfortunately, those changes are not really straight-forward. We can't reliably do it without:

Slowing down inserts/updates by using transactions more frequently
Hardcoding the logic to nested changesets in changeset.changes

The approach in 2 is quite doable. I have even pushed a commit that uses this approach to removes embed specific logic from Ecto.Changeset.apply_changes here: 6f5b35fe0b57bb93c72cec634171fcb298ee3448 -  However, it feels like additional behaviour and not really part of parameterized types.
Here is the overall summary if we can move things to parameterized type:

Ecto.Changeset.cast -> probably not doable
Ecto.Changeset.change -> doable
Ecto.Changeset.apply_changes -> doable if we track the nested changesets in changeset.change
Ecto.Repo.Schema.surface_changes -> doable
Ecto.Repo.Schema.prepare -> doable if we track the nested changesets in changeset.change

So we can do 2, 2 would only apply to parameterized types that work with changesets, and 1 is not doable. At this moment, my opinion is that it is not worth doing the guaranteed 2 for a behaviour that most likely won't be used by most parameterized types (since most won't return changesets).
I already think we made great progress by removing :embed | :assoc from Ecto.Type itself, so at this point I am more inclined to take our victories and call this a day. :)

@josevalim right now only embeds/assocs need them and we can't fully convert them

Right now only those are hardcoded in ecto. :slightly_smiling_face:
But seriously … I believe that there are dozens if not hundreds of documents with nested fields just like json. 2nd most popular after json is obviously xml. We have no idea what kind of document optimizations (like jsonb) PostgreSQL would deliver, so parameterized types would have lots to say here.
I worked a bit on Ecto.Changeset last time so I have not much idea how in detail it looks in Ecto.Schema, but for Ecto.ParameterizedType as an API it's always better to add some callback even if embeds would call other modules like now they are doing in for example change callback (call to Ecto.Changeset.Relation module).
More important here is that we would no longer need to write cast_embed or even worse our own cast_* functions (if needed), because something is so much hard coded and we need to copy-paste ecto code.
If you want I can create an example repository with comments what can be improved in really specific real-world use case.

xml is not a good example because it is orthogonal to embeds/associations, i.e. I should be able to persist embeds to an XML column without reimplementing embeds.
And even if you wanted to reimplement embeds, the parameterized API won't solve the duplication because:

I don't think we can parameterize cast_* in the first place without making the paremeterized type API extremely more complex for everyone. I think we should recognize that not everything will fit cast and we may need specific cast_* functions for richer types

even if we somehow solved cast for parameterized types, the parameterized API would only give a unified API, it won't make it any easier to reimplement embeds because the implementation of the embeds themselves are still private

In a nutshell, I am skeptical about extending the behaviour with the new callbacks without the confidence it will ever fit their purpose. Even worse, releasing the wrong API now means we will block ourselves in the future.
If you think said generalized API is possible, I'd definitely read such a proposal, but after working on it with you and @TheFirstAvenger, I personally don't see it happening right now, so I'd rather focus my efforts elsewhere.
In any case, I want to reemmphasize there was already huge progress in here and the current parameterized types are a major win. :heart: And while I don't think we should merge the remaining PRs, they are the type of work that we only know it isn't a good fit once we actually try to do it, so I really appreciate all of the effort. :)

Closing this per the above.

@josevalim I have check what I would need in parameterized types. In my case I have virtual field which simplifies working on multiple other fields. Here are things currently missing to make my code fully integrated with ecto:

cast/2 should be: one of cast/2 or cast/3 (or maybe: on_cast/3)
a) For cast/2 we have 1:1 as before
b) For cast/3 we expect let's say %Ecto.Changeset{} to be passed and same to be returned in :ok tuple

load/4 optional callback (or maybe: on_load/4)
When source is Comment and query return has key parent I would like to be able to have a full schema added to callback like current load/3.

For my specific use-case I would need join_assoc/2 for Ecto.Query. It's for simplify API i.e. not introduce new confusing macro.

My example:
defmodule EctoPolym do
  defmacro __using__(_pts \\ []) do
    quote do
      Module.register_attribute(__MODULE__, :polym_fields, accumulate: true)
      import EctoPolym, only: [exactly_one_of: 3, polym: 2, polym: 3]
    end
  end

  defmacro exactly_one_of(polym_name, polym_type, do: block) do
    quote do
      EctoPolym.ensure_not_nested(@polym_fields)
      @polym_name unquote(polym_name)
      @polym_type unquote(polym_type)
      _ = unquote(block)
      polym_fields = Module.delete_attribute(__MODULE__, :polym_fields)
      field @polym_name, EctoPolym.ExactlyOneOf, polym_fields: polym_fields, polym_type: @polym_type, virtual: true
    end
  end

  defmacro polym(name, assoc_module, opts \\ []) do
    quote bind_quoted: [assoc_module: assoc_module, name: name, opts: opts] do
      assoc_name = :"#{@polym_name}_#{name}"
      @polym_fields assoc_name

      case @polym_type do
        :belongs_to -> belongs_to name, assoc_module, opts
        :has_many -> has_many name, assoc_module, opts
        :many_to_many -> many_to_many name, assoc_module, opts
        type -> raise "expected belongs_to, has_many or many_to_many got: #{type}"
      end
    end
  end

  @doc false
  def ensure_not_nested([]), do: :ok

  def ensure_not_nested(_non_empty_list) do
    raise ArgumentError, "nested polymorphic associations are not supported"
  end
end

defmodule EctoPolym.ExactlyOneOf do
  use Ecto.ParameterizedType

  def cast(%{__struct__: _related} = data, changeset, %{schema: _schema}) do
    assocs = schema.__schema__(:associations)
    assoc = Enum.find(assocs, & &1.related == related)
    {:ok, Ecto.Changeset.cast_assoc(changeset, assoc.field)}
  end
  # …
end

defmodule EctoPolym.Blog.Post do
  use Ecto.Schema

  schema "posts" do
    field :author, :string
    field :body, :string
    field :title, :string
    has_many :comments, EctoPolym.Blog.Comment
  end

  def changeset(post, params) do
    Ecto.Changeset.cast(post, params, [:author, :body, :title])
  end
end

defmodule EctoPolym.Blog.Comment do
  use Ecto.Schema
  use EctoPolym

  schema "comments" do
    field :body, :string

    exactly_one_of :parent, :belongs_to do
      polym :comment, __MODULE__
      polym :post, EctoPolym.Blog.Post
    end

    has_many :comments, __MODULE__
  end

  def changeset(comment, params) do
    Ecto.Changeset.cast(comment, params, [:body, :parent])
  end
end

and with such code:
import Ecto.Query
alias EctoPolym.Blog.{Comment, Post}

Comment
|> from(as: :comment)
# here in assoc/2 we check if parent field in Comment schema implements optional callback
# if so it would work as same as:
# parent in subquery(query_returned_from_callback)
|> join(:inner, [comment: comment], parent in assoc(comment, :parent), as: :parent)
# I would like to be able to load parent to a proper relation in load/4 callback
|> select_merge([parent: parent], %{parent: parent})
|> EctoPolym.Repo.all()
# [%Comment{parent: %Post{…}, parent_comment: nil, parent_post: %Post{…}, …}, …]

Thoughts?

As I mentioned, associations touch a whole different part of Ecto and they should be considered separately from ParameterizedType. My recommendation is to play with the private Ecto.Aosociation API and see where it leads you. There have been efforts in making them public in the past but it was not concluded.

@josevalim I was trying to read through old discussions but it's a lot and I decided to ask for your opinion before working on a PR. Did we have any decisions about allowing ParametrizedType (or a similar new type we can build) to use information from a different row within the schema? We can apply limitations to it, for example, say that only a raw schema field can be used, not a different embed, etc.
The reason why I'm asking is that there are a ton of use cases of having polymorphic embeds and currently one of the best working approaches is to use a ParametrizedType and put the type information inside the field itself, but in most use cases that I've hit the application also needs to index/query the type, so there are a few options to work around that:

Having a schema field type and then a copy of it in the embedded schema that must be always synced with it. I think this is the most common option right now.

This leads to some messy application code where you have to copy changes around, usually for code I saw, in multiple places, and is error-prone, especially because we don't have something like put_change_in(schema, path, value) in the changeset.

Allowing an option to instruct Ecto that the option should be read from a different field, like so:

field :foo, Ecto.Enum, values: ["one", "two"]
field :bar, MyApp.MyType, opt1: {:value_from, :foo}

I really like this one but I'm afraid that it would be technically a breaking change in case somebody already is using a tuple like that for a different purpose. Also, I'm not sure how many changes this will require in Ecto.

Rely on indexing json fields. The performance of this solution would depend on the index type, if single- or multi-column indexes are used, and on the database that is used. Quite a bit of context to know for a developer.

A very naive implementation can look something like this: https://github.com/AndrewDryga/ecto/commit/06956be0c243fe7339bd29965ae393080c9f90fa.

I think types are very well specified as being per-field and really wouldn't want to change that. I don't want to suddenly start to wonder "will this type behave differently based on other things related to this struct?". There are also other type properties, such as cast, which really can't rely on that (because it is also used in queries but not always). To achieve what you want you really need something else, but I haven't thought about what it should look like.

@josevalim yeah, I totally get that we don't want to increase the cognitive load when using Ecto. In case you have some good ideas on how to address this use case in the future - feel free to ping me anytime, I'd love to contribute but don't have better ideas on how to implement this now too.
Over the years I went back and forth between writing my own polymorphic embeds that mutate changeset internal fields mixed with parametrized types, different hex packages, and hardcoding polymorphic embeds logic in the application, not a single one of those felt right to me.


Add a section on Home page for "Latest videos and announcements"

Is your feature request related to a problem? Please describe.
This feature isn't quite related to a problem, it's more of an idea. The feature would be to add a section on the home page for Latest videos and announcements. This way a new user can watch a video without having to go to YouTube and search for Eddie's channel and latest videos. So it serves as a CTA (Call To Action) to incentivize users to consume Eddie's content.
Another CTA would be a button to join the Discord community perhaps.
Describe the solution you'd like
A new section like "Community Statistics" that contains a carrousel with the latest videos from Eddie. This information is available on the #videos and announcements channel on the discord server, but maybe we could read it from the DB in Firebase. The collection on the DB could have documents that have at least a url field, with the Youtube video.
On the front-end app, we would use a component to embed the video on the page.
Describe alternatives you've considered
Instead of using the Firebase as the sole data source, I've looked into Discord's REST API as an alternative. The reason for this is more about the fact that we could have access to more information, and data that the DB might not have stored yet.

can i do my first contribution here .... i am new in open source an you help me ....

Hi @PuneetDabral, I'm glad you want to contribute 😃. This project hasn't been active lately, so there might be a few changes.
This feature still needs to be discussed with the community members, so that we can reach some implementation strategies to follow.
@EddieHubCommunity/eddiebotui what does everyone think?

ok sir


How to add Laplace smoothie parameter to this code

How to add Laplace smoothie parameter to this code
It is important to have
Since sometimes there are values for features with small number of occurrences
By the way what will be for features with many moderate singificance values
And for features with one meaningful values and several fully random  values
Which feature in this case will be considered as important and Which not important
Do you have synthetic data tests for binomial case?
And for multinomial case
With clear probabilistic dependency between feature values and without
To see how your code correctly find predefined good / bad features?
And maybe even good/bad feature values?
It would be great add this performance example to paper...

The laplace smoothing parameter is the alpha parameter in the constructor in naivefeatureselection.py.
In terms of intuition for what the laplace smoothing parameter should be in different situations, we are not sure but it will definitely be a parameter that needs to be tuned for every specific application and we recommend to simply cross validate over this parameter.

referring to NaiveFeatureSelection call from example
nfs = NaiveFeatureSelection(k=kv)
may you share some code example with using all capabilities for NaiveFeatureSelection
it would be great help to learn your code
THANK YOU VERY MUCH IN ADVANCE

please see the updates

DemoBNFS.py is sample code for the sparse bernoulli naive bayes feature selection

Great thanks
By the way what is about generic  Bayesian classification for categorical data
Not specific case of multinomial Bayesian for counts ?
Scikit learn in last version 0.22 added such a classification, after many years having only multinomial baysian
May you even need to add to paper title that you consider only multinomial case ...


Download CMS assets when generating static sites

Describe the feature
When building my Nuxt site for production, it fetches all the data from a headless CMS (which is a pretty standard use case, I'd say).
However, images that were uploaded to the headless CMS will reference the CMS's url in the <img>'s source attribute, which is not ideal since a) the CMS may charge extra for that usage and/or a custom CDN/asset subdomain and b) it reveals whatever CMS I'm using to someone digging around the source code.
It would be super cool if Nuxt provided some functionality/guide on how to first download those assets into the .output/public/ folder and then replace the CMS's urls within the HTML files
Additional information

[ ] Would you be willing to help implement this feature?
[X] Could this feature be implemented as a module?

Final checks

[X] Read the contribution guide.
[X] Check existing discussions and issues.

This should be possible with @nuxt/image: see https://image.nuxtjs.org/getting-started/static. If you experience any issues, please do raise an issue in https://github.com/nuxt/image directly.

This should be possible with @nuxt/image: see https://image.nuxtjs.org/getting-started/static. If you experience any issues, please do raise an issue in https://github.com/nuxt/image directly.

Damn, wasn't aware of its existance. Thanks for the hint, and sorry for the noise!


Move AST and other core types to new circe-ast module [do not merge]

As suggested by @adelbertc on Gitter this evening.
I'm not 100% sold on this, but even apart from the fact that you can use the AST without bringing in the rest of the project, I like the fact that it gets rid of some of the circularity and multiple-ways-of-doing-things in the API.
The fact that we need to move core types to a new package is kind of a drag, but we could provide aliases in io.circe to make the transition less painful.
I'm interested in any feedback. If we want to move forward with this, the one additional thing that would need to be done for this PR is some test rearrangement.

Wow you're fast
For context, I found myself wanting just a JSON AST and parser when working on https://github.com/adelbertc/circular which would also be for parsing/printing JSON, but through an optics-like mechanism instead of type classes. I've had success with scodec using just the scodec-bits project without scodec itself (which has the analogous binary encode/decode type classes).
To add to @travisbrown 's point, I also like to see the separation of the core data types from the ways-you-can-do-stuff such as type classes, optics, etc.

If you want to touch AST, maybe it's a good opportunity to reevaluate https://github.com/circe/circe/issues/271?

The main benefit I understand is allowing people to depend only on circe-ast, without pulling circe-core. For what I can tell, this is an economy of a few kilobytes top when importing only the ast (and probably less, the current core becoming ~ 30 scala files).
Otoh, it's yet another import to drag in and remember when developing use cases beyond auto derivation with circe, which are already a pain (I've just discovered by reading the PR than by importing io.circe.syntax._ I could have written much more concise code ^^' ).
So, while I appreciate the fact it encapsulates even more tightly each functional part, I think this is detrimental to newcomers to circe, by making again that tiny bit harder to dive in.

@nicolasdalsass Would providing aliases in io.circe make the situation better? This is what Cats does for e.g. cats.Eq, which lives in cats-kernel, and the user experience seems okay so far.
The biggest downside I can see with the aliases (apart from just the extra complexity) is the compiler warnings for people who import both io.circe._ and the io.circe.ast types in the same scope.
More generally I agree that it's not clear yet that the benefits are worth the costs—I just want to get a clear sense of how bad the costs would be for people given the things we can do to mitigate them.

Yes, I think aliases help a lot !
Anoter example about imports simplification is that being able to read code snippets (e.g on gitter or SO) and use it simply is nice to have. More often than not, this kind of ressource doesn't include imports, and I've often been frustrated (not only using circe ^^) by not being able to know how to access the function that solves my need.
So, +1 for anything keeping imports relatively contained when using the lib !

This may happen after #228 but if it does the motivation will be slightly different—most importantly, circe-core wouldn't necessarily even have a circe-ast dependency.


[WIP] Add a fetch_metadata management command

Python2 tests for this PR require the mock library.
This PR is still WIP, because I would love to find a way to read the remote metadata entry from settings.SAML_CONFIG. However, since the SAML configuration can be loaded using a custom loader, I can't rely on settings.SAML_CONFIG. One possible way would be to pass the SAML configuration module to the management command. But that seem overly complicated.
Another option would be to inspect the SPConfig used by to PySAML2 to find all the remote metadata. Sadly, I haven't found a way to determine the source of the metadata once they have been loaded in PySAML2 and stored in the MetaDataStore. Do you know how to do that?

Hi @francoisfreitag, I think this command is a great idea, thanks for the effort. I think you can find IdP's Entity ID as a key in conf._sp_idp (generally, there can be more IdPs so this should be taken into account).
>> from djangosaml2.conf import get_config
>> conf = get_config(None, request)
>> conf._sp_idp.keys()
['https://localhost/simplesaml/saml2/idp/metadata.php']

I think the custom management command is helpful for people dealing with large metadata files. My company uses several metadata sources, some of which are quite big, like the incommon metadata aggregates, a 4.5MB XML document.
I would rather avoid storing large documents in the database if we can avoid it. IMHO, using the filesystem to cache the data is a reasonable solution, that's what simpleSAMLphp provides. That tool requires an external configuration to list the metadata sources and a cron job to periodically check if metadata need refreshing, much like this PR.
It would be even better if we could deduce the metadata sources from the config, but I don't think that's a realistic goal at the moment. I'm happy to implement any improvement on that PR if that can make metadata handling easier though.

@knaperek I think that this PR should be accepted, this command could be scheduled and would be helpfull in production environments

@peppelinux I don't have a problem with the idea, but the PR seems to have come to a dead end. Pls read the conversation. If you happen to have a way to solve the issue with dynamic SAML config, I'll be happy to accept your contribution.

You're right, I think that the best solution is also described here:
https://github.com/IdentityPython/pysaml2/issues/216
in other words we should write a custom class to manage metadata in a cache, then in another hand schedule a metadata downloader that, with the help of the same custom class, manages its storage.
Probably some of the code proposed in this PR could be imported in a DEVELOPMENT branch to managed only the scheduled download.  For the development of the custom class I thought to talk about this in pysaml2 repository, https://github.com/IdentityPython/pysaml2/issues/532

Probably we could develop an external app to serve this feature also to djangosaml2idp:
https://github.com/OTA-Insight/djangosaml2idp/issues/29

I think that the best solution, also tested in a production environment, would be the adoption of pyFF.
It could work as metadata downloader and validator and as MDQ server.
If you agree we could close this PR and move to introduce pyFF in djangosaml2 documentation.

Hi @francoisfreitag, I think that this is the stop-application we're looking for:
https://github.com/ConsortiumGARR/idem-tutorials/blob/master/idem-community/HOWTO-Shibboleth/Identity-Provider/HOWTO Setup a MDX Server and configure it in Shibboleth IdP.md
This is a fully compliant, scalable, solution, production ready and if you agree that's the way we should show to our users. I close this issue but please let me know what you think and if there would be the need of more information.

Thanks for the ping!
$DAY_JOB went with SimpleSAMLphp for handling Shibboleth authentication, it has been working great.

Yes PySAML2, Shibboleth and SimpleSamlphp are the thre most important enviroments to build SAML2 SSO for a particular attentions to Research and scholarship federations.
This topic is something related to download, validation and signing of third-party metadatas, it should be decoupled from the SSO entity di per se. Better this way I think.
PySAML2 can also download on each request the matadata from the remote endpoint but... I would discourage this, really


How to Replace Docker with Podman

How to replace Docker with Podman? I want to use Podman to create and run containers in OpenWhisk, because Docker changed its usage license, and Podman is the open-source alternative to Docker. Their commands are almost identical.

OpenWhisk is using the DockerContainer or KubernetesContainer to run containers.
Since it is using the Container trait, I believe we can add another implementation such as PodmanContainer but for now it does not support it.

[WIP] Using Podman for deploying OpenWhisk


Depcrecated supported featured after upgrade 2024.1.1

Hi,
After upgrading to 2024.1.1 Home Assistant notifies deprecated helpers:
(<class 'custom_components.dual_smart_thermostat.climate.DualSmartThermostat'>) is using deprecated supported features values which will be removed in HA Core 2025.1. Instead it should use <ClimateEntityFeature.TARGET_TEMPERATURE|PRESET_MODE: 17>
Any ideas?

Thanks for finding this. It seems that some feature values need to be updated. I will schedule this for todo. The component should work OK until 2025.1.

Hi, same warning for other values too

job
thx for your

The fix will be rolled out in the next release


report from clang's UndefinedBehaviorSanitizer

storm-src/src/SBaseCommon.cpp:455:24: runtime error: load of misaligned address 0x62c0000004fe for type 'DWORD' (aka 'unsigned int'), which requires 4 byte alignment
0x62c0000004fe: note: pointer points here
 7f d6 fd 14 fc ab  b2 e2 4b e7 bd dc 41 e3  bc 17 d4 62 1a dd f7 13  af 98 3a ff 80 3d d7 3d  f4 c0
             ^
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior storm-src/src/SBaseCommon.cpp:455:24 in
storm-src/src/SBaseCommon.cpp:455:9: runtime error: store to misaligned address 0x62c0000004fe for type 'DWORD' (aka 'unsigned int'), which requires 4 byte alignment
0x62c0000004fe: note: pointer points here
 7f d6 fd 14 fc ab  b2 e2 4b e7 bd dc 41 e3  bc 17 d4 62 1a dd f7 13  af 98 3a ff 80 3d d7 3d  f4 c0
             ^
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior storm-src/src/SBaseCommon.cpp:455:9 in
storm-src/src/SBaseCommon.cpp:456:21: runtime error: load of misaligned address 0x62c0000004fe for type 'DWORD' (aka 'unsigned int'), which requires 4 byte alignment
0x62c0000004fe: note: pointer points here
 7f d6 fd 14 02 48  89 8d 4b e7 bd dc 41 e3  bc 17 d4 62 1a dd f7 13  af 98 3a ff 80 3d d7 3d  f4 c0
             ^
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior storm-src/src/SBaseCommon.cpp:456:21 in

Everything works fine so far, just wanted to let you know about this. I open MPQ with BASE_PROVIDER_FILE | STREAM_PROVIDER_FLAT | STREAM_FLAG_READ_ONLY if it matters.

I checked all occurences of DecryptMpqBlock and they are all called on a buffer that is allocated by STORM_ALLOC. On Windows, it is guaranteed to return aligned pointer. Is there any chance that the platform (that you are testing on) does not give such guarantee?

I checked all occurences of DecryptMpqBlock and they are all called on a buffer that is allocated by STORM_ALLOC. On Windows, it is guaranteed to return aligned pointer. Is there any chance that the platform (that you are testing on) does not give such guarantee?

Testing on macOS 10.14 and 10.15, building with AppleClang 11 and 12.
Not pretending to be an expert on this topic (no idea about such low-level details), but from what I've read, it seems that the reason is the following cast:
LPDWORD DataBlock = (LPDWORD)pvDataBlock;

In some places pvDataBlock is LPBYTE (report indicates it's this case, see stacktrace below), in one it's even TMPQExtHeader.

But I could be wrong.

A stack trace, nice. Could you please send me the MPQ?

A stack trace, nice. Could you please send me the MPQ?

Sure! http://get.median-xl.com/launcher/?get=mod (7z archive)

it seems that pCache->pBegin is the source of the issue: https://github.com/ladislav-zezula/StormLib/blob/master/src/SFileListFile.cpp#L120-L123

it seems that pCache->pBegin is the source of the issue

Yes and there is more. When StormLib uncompresses data, the compressed data blocks (which were originally 0x1000 bytes long) are obviously not aligned. So, pointer to the second (and fuhrter) compressed block is potentially not aligned, even if the original buffer (returned by STORM_ALLOC) has a proper alignment.
I'll created a branch that does encryption/decryption of data more carefully. Could you please play with it a little and see if you get more catches?
Oh and BTW - nice catch.

thanks, looks good! No more UB reports.
FYI PDWORD doesn't exist on non-windows, I replaced it with LPDWORD to make the code compile.


Bower is no longer supported

Hi, as you know Bower is no longer supported. Please make an npm package with all dependencies. I don't use Bower any more and if I install Ublaboo via npm there are no dependencies mentioned in documentation. Thanks.
https://github.com/contributte/datagrid/pull/884 Do not support Bower but NPM. Few days ago you did a patch but only for Bower. Like Bower is still alive. But it is not. Bower is DEAD.

HI @camohub.
We have NPM package - https://www.npmjs.com/package/ublaboo-datagrid.
We will get rid off Bower, don't worry.

The point is you made a tag with bug fix BUT only for Bower not for NPM.  The secnd thing is package.json has no dependencies.  So why? https://github.com/contributte/datagrid/pull/884

PR: #892
NPM tag: https://www.npmjs.com/package/ublaboo-datagrid/v/6.2.11

Thanks a lot. And what about dependencies? NPM is not priority for you?

@camohub will be added to readme in following days

https://github.com/contributte/datagrid/pull/892#issuecomment-615856485


Call readDir when dropping folders into Chrome

When dropping folders into Chrome, the function readDir is defined in
order to be able to recursively call the function. readDir is then
never actually called, the upshot of which being no folders ever get
added from a drop into Chrome.

@TeaSeaLancs Does this actually complete the full chain -- and get the folder support working as expected?

@steffentchr I believe so. I dragged a folder with about fifteen files in (Including from sub-directories), and everything seems to have been added fine.
The first call to readDir reads all the direct children of the folder dropped, then calls readDir again, which in my tests does no more reading but passes the files back to loadFiles. It then adds any direct file children for uploading, and any direct directory children get passed round their own readDir function, and so on and so on.
Feels like it works to me?

Perfect, tested a few things now myself -- so merging with thanks ;)


Unexpected size for packed structure with repeated fields

Hi,
I'm getting an unexpected structure size after converting my protobuf messages containing a bytes field with a defined max_size and fixed_lentgh set to true.
I'm not sure if this is the same issue as shown here.
Here's my proto file:
syntax = "proto3";
import "nanopb.proto";

message AccelerometerRawSampleMsg
{
    bytes X = 1;
    bytes Y = 2;
    bytes Z = 3;
}

message AccelerometerRawDataMsg
{
    repeated AccelerometerRawSampleMsg mArrSamples = 1;
    uint32 iSize = 2;
}

Here's the options file:
AccelerometerRawSampleMsg               packed_struct:true
AccelerometerRawDataMsg                 packed_struct:true

AccelerometerRawSampleMsg.X             max_size:2
AccelerometerRawSampleMsg.X             fixed_length:true
AccelerometerRawSampleMsg.Y             max_size:2
AccelerometerRawSampleMsg.Y             fixed_length:true
AccelerometerRawSampleMsg.Z             max_size:2
AccelerometerRawSampleMsg.Z             fixed_length:true

AccelerometerRawDataMsg.mArrSamples     max_count:384

Here's part of the generated output header file:
PB_PACKED_STRUCT_START
typedef struct _AccelerometerRawSampleMsg {
    pb_byte_t X[2];
    pb_byte_t Y[2];
    pb_byte_t Z[2];
} pb_packed AccelerometerRawSampleMsg;
PB_PACKED_STRUCT_END

PB_PACKED_STRUCT_START
typedef struct _AccelerometerRawDataMsg {
    pb_size_t mArrSamples_count;
    AccelerometerRawSampleMsg mArrSamples[384];
    uint32_t iSize;
} pb_packed AccelerometerRawDataMsg;
PB_PACKED_STRUCT_END

#define AccelerometerRawDataMsg_size             5382
#define AccelerometerRawSampleMsg_size           12
#define MESSAGEACCELEROMETER_PB_H_MAX_SIZE       AccelerometerRawDataMsg_size

Notice the AccelerometerRawSampleMsg_size which I was expecting to be 6 (packed structure). Even the AccelerometerRawDataMsg_size is far larger than what I was expecting.
Am I missing something? It would be a lot nicer to make use of memcpy to copy a large buffer instead of having to do it in a more manual way. Is there any work around?

The _size defines are the maximum encoded size in protobuf format. To get the size of the C structures, use sizeof().
Storing a single 16-bit integer as bytes array is rather inefficient in protobuf, as it will take 1 byte for tag, 1 byte for number of bytes and 2 bytes for the data.


Sparsity! spits out a full matrix while the jacobian is sparse

I met an issue while experimenting with sparsity!. My application commonly involves constructing a sparse matrix (A) based on the input vectors (x) and then updating x by A (updating an HJB equation, for those in econ). A minimal example looks like this:
function testsparse!(out, x)
    A = Tridiagonal(x[2:end], x, x[1:end-1])
    out .= A * x
    return nothing
end
x = [1:100;]
out = similar(x)
sparsity!(testsparse!, out, x)

It can be validated by ForwardDiff that the jacobian is a tridiagonal matrix. However, as reported in issue #7, sparsity returns a matrix with zero entries.
A new bug arises when I compute A * x by hand:
function testsparse2!(out, x)
    A = Tridiagonal(x[2:end], x, x[1:end-1])

    for i in 1:100
        out[i] = 0
        for j in 1:100
            out[i]+= A[i, j] * x[j]
        end
    end
    return nothing
end
x = [1:100;]
out2 = similar(x)

ForwardDiff.jacobian(testsparse2!, out2, x)
sparsity!(testsparse2!, out, x)

ForwardDiff returns the same jacobian as that for testsparse!, while sparsity! returns a 100 x 100 matrix with all  (10,000) entries being true.
My julia version is 1.1.1, if it matters. Thanks in advance!

Reduced this to:
julia> using LinearAlgebra: MulAddMul, _modify!

julia> function foo(y,x)
           _modify!(MulAddMul(), x[1], y, 1)
       end
foo (generic function with 1 method)

julia> sparsity!(foo, x,y)
Explored path: SparsityDetection.Path(Bool[], 1)
1×1 SparseArrays.SparseMatrixCSC{Bool,Int64} with 0 stored entries

The second case is expected since you're indexing into all elements of the array, not only the non-zero ones.

Just wanted to check - is this the same issue?  I pick up a zero sparsity pattern with a sparse matvec:
Q = droptol!(sparse(round.(randn(10,10))),1e-10) # random sparse matrix
in = rand(10)
out = similar(in)
function spmatvec(dx,x)
  dx .= Q*x
end
sparsity_pattern = sparsity!(spmatvec,out,in)

The output is:
Explored path: SparsityDetection.Path(Bool[], 1)
10×10 SparseMatrixCSC{Bool,Int64} with 0 stored entries

If I use a dense matrix instead, it throws an error:
ERROR: LoadError: error compiling recurse: unsupported or misplaced expression "replaceglobalref" in function recurse

Reduced this to:
julia> using LinearAlgebra: MulAddMul, _modify!

julia> function foo(y,x)
           _modify!(MulAddMul(), x[1], y, 1)
       end
foo (generic function with 1 method)

julia> sparsity!(foo, x,y)
Explored path: SparsityDetection.Path(Bool[], 1)
1×1 SparseArrays.SparseMatrixCSC{Bool,Int64} with 0 stored entries


Extract Rethink Resource to separate Repo

Make more sense to keep this separate.

work being done in the tastypie-rethink repository

All rethink functionality moved out into the repo mentioned above


avoid reading entire request body into memory

Changes proposed in this PR
avoid reading entire request body into memory
Why are we making these changes?
avoid allocating huge strings for request bodies that we don't actually use

Superseded by #1327


Unable to Upload Files

I am unable to upload any kind of files to Outline. No images, profile pictures, files, pdfs, etc. Anyone else or fix? Thanks.

https://github.com/vicalloy/outline-docker-compose/issues/64#issuecomment-1770400887

Appreciate it


[Fix-it] Support defaulted and variadic arguments in renamed fix-it

What's in this pull request?
CC: @jrose-apple
Renamed fix-it used to give-up emitting fix-it for argument labels if the arguments have some defaulted or variadic arguments.
This PR should address UnsafeMutablePointer.initalize(with:count:) fix-it.
https://bugs.swift.org/browse/SR-2264
error: 'initialize(with:count:)' has been renamed to 'initialize(to:count:)'
  ptr.initialize(with: 42)
      ^~~~~~~~~~ ~~~~
      initialize to

I will add some formal test cases for these stdlib renames to test/1_stdlib/Renames.swift.
Done.
Resolved bug number: (SR-2264)

Before merging this pull request to apple/swift repository:

[ ] Test pull request on Swift continuous integration.

Triggering Swift CI
The swift-ci is triggered by writing a comment on this PR addressed to the GitHub user @swift-ci. Different tests will run depending on the specific comment that you use. The currently available comments are:
Smoke Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please smoke test
    All supported platforms     | @swift-ci Please smoke test and merge
    OS X platform               | @swift-ci Please smoke test OS X platform
    Linux platform              | @swift-ci Please smoke test Linux platform

A smoke test on macOS does the following:

Builds the compiler incrementally.
Builds the standard library only for macOS. Simulator standard libraries and
device standard libraries are not built.
lldb is not built.
The test and validation-test targets are run only for macOS. The optimized
version of these tests are not run.

A smoke test on Linux does the following:

Builds the compiler incrementally.
Builds the standard library incrementally.
lldb is built incrementally.
The swift test and validation-test targets are run. The optimized version of these
tests are not run.
lldb is tested.

Validation Testing
    Platform     | Comment
    ------------ | -------------
    All supported platforms     | @swift-ci Please test
    All supported platforms     | @swift-ci Please test and merge
    OS X platform               | @swift-ci Please test OS X platform
    OS X platform               | @swift-ci Please benchmark
    Linux platform              | @swift-ci Please test Linux platform

Lint Testing
    Language     | Comment
    ------------ | -------------
    Python       | @swift-ci Please Python lint

Note: Only members of the Apple organization can trigger swift-ci.

Updated UnsafeMutablePointer renamed APIs test (added fix-it).
CC: @gribozavr @atrick

@swift-ci Please smoke test

@DougGregor Mind reviewing this?

@swift-ci Please smoke test

This looks great! Some more possible test cases:
func defaultBeforeRequired(a: Int = 1, b: Int) {}
defaultBeforeRequired(b: 5)

func defaultPlusTrailingClosure(a: Int = 1, b: Int = 2, c: () -> Void) {}
defaultPlusTrailingClosure {}
defaultPlusTrailingClosure(c: {})
defaultPlusTrailingClosure(a: 1) {}

@jrose-apple Thank you for test case suggestion! I will add them. 👍

@swift-ci Please smoke test

@swift-ci Please smoke test

Unrelated failure on Linux. merging.

Given all our renames, this seems useful enough to pull into the 3.0 branch. I'll make a pull request for that.