Doublet filtering function

Hi,
I tried the DoubletDetection Python library on my data and got some interesting result. As it can be run directly on a numpy array of count matrix (adata.X), I thought it would be an interesting feature for scanpy.
clf = doubletdetection.BoostClassifier()
doublets = clf.fit(adata.X).predict()
adata.obs['doublet'] = pd.Categorical(doublets.astype(bool))

Sorry for the late response, I was on holidays. I'm happy to merge a pull request for this, if the package appears solid. Would you want to add a file scanpy/preprocessing/doubletdetection? We should probably just ask @JonathanShor whether he's interested in an interface for easily accessing his package. If he is, he should also make the pull request, I'd say. :smile:

Thanks to @yueqiw for the confidence. :)
@falexwolf We have no issue with our package being included here, but we wouldn't be able to create a custom API for your package right now, if that's what you were suggesting?
Given my quick overview of your package, two things you should note:

Our method expects the input count matrix to be from a single run. Performance takes a non-trivial hit on aggregate datasets.
Currently, our runtime will not satisfy those impressive metrics cited in your 1.0 announcement. This may possibly change in the future, as we haven't focused on hard optimization yet.

Hi @JonathanShor,
you don't need to create a custom API. One point of Scanpy is to provide convenient access via anndata to many single-cell packages around. The only thing needed for that is to provide a very simple interface like this or this or several of the other tools... Simply click on the GitHub links in the Scanpy docs...
If your package works reliably, both the restrictions you mention should in principle not prevent adding your package. Of course, in the future, we want all elements of Scanpy to scale to millions of cells, not just the core tools. But for a lot of people, it's right now helpful to have a large number of tools available also for relatively small datasets.
The only problem is to avoid cluttering the Scanpy API with virtually any tool there is. Tools in the API should have passed a certain quality check.
Doublet detection is a difficult problem. Already last autumn, we played around with @swolock 's tool but didn't end up using it - it was good, but in our situation, it didn't seem to apply (are you eventually going to distribute a package for it @swolock ?). I myself quickly wrote a tool, too, but it didn't work well. Just yesterday, this appeared. Then there is also this on "empty cell detection". There are more tools out there, I think...
What I mean is: computationally detecting doublets is still something where the field has not agreed on a consensus. Just like batch correction. Therefore, I would not add a tool tl.doublet_detection or tl.detect_doublets to the API at this stage.
There are two options. Either we create a .beta module of the API for tools that don't even have a preprint and add your tool and similar cases in the future there. We could make a separate page for that entitled Cutting Edge Beta Tools which advertises these tools for people to try out and play around with it. When you have a solid preprint and/or publication or if you think that your tool should go in the main API anyways 😄, we should add your package as tl.detect_doublets_ONEWORDDESCRIBGINGYOURALGORITHM...
@flying-sheep @gokceneraslan @fidelram @dawe anyone opinions on such cases?

Hi @falexwolf, yes I will be making my method available. A rough version is already on github, and I also played around with adding it to my scanpy fork (though not the right way -- I added it to tl rather than pp). I'll hopefully clean it up and release something more official when I have the chance.

Good to hear! Looking forward to learning more about it.
PS: Having a doublet detection tool in tl would be fine, I'd say... pp and tl are just meant to give a rough orientation for users... in some cases, it's not completely clear what preprocessing and what downstream analysis is...

It looks like this may have stalled a bit. Is anyone currently working on making some form of doublet detection available from scanpy?

Hi @ivirshup, I've been meaning to get back to this. I've just started on an AnnData-compatible version of Scrublet which should be easy to hook up to Scanpy. Will keep you posted.

Hi @ivirshup, I've been meaning to get back to this. I've just started on an AnnData-compatible version of Scrublet which should be easy to hook up to Scanpy. Will keep you posted.

Any updates on this?

I guess, we should ask @swolock. 🙂

I can apply pretty easily scrublet from the original python package, so I
guess a wrapper should be something fast to implement :) I was thinking
about doing it last week, but I am no expert in this kind of stuff :/
Den tir. 14. maj 2019 kl. 20.18 skrev Alex Wolf<EMAIL_ADDRESS>
I guess, we should ask @swolock https://github.com/swolock. 🙂
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/theislab/scanpy/issues/173?email_source=notifications&email_token=ACC66UJZJVVP2VIQXNRHEITPVL7A3A5CNFSM4FE4LIF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVMK5PQ#issuecomment-492351166,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACC66UN3NQVYPI4KPDUAOK3PVL7A3ANCNFSM4FE4LIFQ
.

@cartal @SamueleSoraggi
For some reason I decided to integrate Scrublet using Scanpy's functions where possible, rather than making a simple wrapper. The core functionality is up and running in this fork, and now I just need to add documentation, make some of the code more Scanpythonic(?), and add an example.

Your way sounds sure better, many things into the scrublet algorithm are in
redundancy with components of scanpy. It will sure look great :)
Just one thing: in the scrublet paper they suggest always to just run the
simulation of doublets and look at the expected vs estimated fraction of
doublets before removing doublets. If those two values do not match, they
say one should rerun scrublet and tune the expected fraction.
Does your script only run simulation of doublets and output the doublets
score, or does it also remove doublets at once? If you do the latter, then
one is not able to simulate doublets more than once to adjust the expected
doublet fraction.
Cheers.
Den tor. 16. maj 2019 kl. 05.15 skrev Sam Wolock<EMAIL_ADDRESS>
@cartal https://github.com/cartal @SamueleSoraggi
https://github.com/SamueleSoraggi
For some reason I decided to integrate Scrublet using Scanpy's functions
where possible, rather than making a simple wrapper. The core functionality
is up and running in this fork https://github.com/swolock/scanpy, and
now I just need to add documentation, make some of the code more
Scanpythonic(?), and add an example.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/theislab/scanpy/issues/173?email_source=notifications&email_token=ACC66UNQC744WOUTLRZ2CN3PVTGWTA5CNFSM4FE4LIF2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVQRA2I#issuecomment-492900457,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACC66UI4FF4LES7GRVKHZZDPVTGWTANCNFSM4FE4LIFQ
.

@swolock why don't you submit a PR? I just tested your code and seems to work.

How is this work going? We'd love to integrate Scrublet into our workflows, which are currently quite Scanpy-centric.

@pinin4fjords Given that there is no response from @swolock I tried the following, which works well:
import Scrublet as scr
scrub = scr.Scrublet(adata.raw.X)
adata.obs['doublet_scores'], adata.obs['predicted_doublets'] = scrub.scrub_doublets()
scrub.plot_histogram()
sc.pl.umap(adata, color='doublet_scores')

Thanks @fidelram, that will run the whole Scrublet workflow so will certainly do the trick. But I'd prefer a more Scanpy-integrated approach, which I think I can see how to do from @swolock's fork.

I have problem installing and importing scrublet on windows please can you help me
Here is my code !pip install scrublet
PackagesNotFoundError: The following packages are not available from current channels:

annoy

Current channels:

https://conda.anaconda.org/conda-forge/win-64
https://conda.anaconda.org/conda-forge/noarch
https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
https://conda.anaconda.org/pytorch/win-64
https://conda.anaconda.org/pytorch/noarch

To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org/

and use the search bar at the top of the page.

I started work to move scrublet into scanpy (since @swolock has expressed that he’s not interested in maintaining it separately anymore)
https://github.com/scverse/scanpy/pull/2703


Plant clippers should be removed

IDK what it's supposed to do in ss13 but you can put produce into the seed extractor for seeds so having clippers is redundant. I think it'd be better to be consistent.

You can't create seed extractors in Science (last I checked), so there will always be one and it's in botany

Just add seed extractor boards then?

the botany genetics right now has a 'seedless' mutation that means the only way you can get more seeds of some plants is clipping them and hurting the plant in the process. besides clippers are good to keep for later too as funni surgery tool

Then why keep the seed extractor then.

thats fair tbh its a bit woo woo bluespace magic to use it and makes getting seed stocks of your prize plants a bit trivial

just remove seed extractors

Then why keep the seed extractor then.

The only argument I've heard for plant clippers existing is that there's seedless variants of plants which is more of a "gotcha" because there's no way to tell this ingame. ATM you could remove clippers and have identical gameplay as seedless variants don't offer anything meaningful.

this is literally a non issue tbh, seed extractors allow more seed production at the cost of losing one product per extraction, plant clippers deteriorate the health of the plant and give one seed or 'clone' but don't lose out on a lost product.

this is literally a non issue tbh, seed extractors allow more seed production at the cost of losing one product per extraction, plant clippers deteriorate the health of the plant and give one seed or 'clone' but don't lose out on a lost product.

It still sounds like one of those things that's a meaningless stat for stats sake, which botany has a lot of, when you could just change the yield instead.

in terms of what the issue is about, being plant clippers, I think they're fine just as they are- widely used, and they work well with the seed extractor for other scenarios, need more wheat seeds to plant more individual plants? Then use the seed extractor, need to replant an old plant before it dies but don't want to lose out on the yield? Then plant clipper.

You start with 5 wheat seeds which is enough to fill almost every tray, making the extractor redundant.

9 tray gaming, and losing all your seeds because the chef just grinded all the wheat at once has happened quite a few times, as it stands still, I don't think its worth removing em at all.

Plant 5 wheat seeds
Clip immediately
Plant another 5
Extract after first harvest and never bother with the extractor again.

the 2 tools are both niche in what they do, both are arguably better or worse, one gives more seeds the other doesn't lose any yield, if anything maybe they should be more different when it comes to mutations behavior

seeds are oversupplied in general is the main thing. same with produce

Looking at https://github.com/space-wizards/space-station-14/pull/11972 I think the better approach is still remove plant clippers as having 2 separate upgrade paths for the same outcome (better plant clippers / better seed extractor) is kinda eh.

why keep the magic bluespace machine instead of the real, actual tool that real botanists use

Plant Clippers have saved latejoin botanists when their department is trashed. They aren't a problem, and I don't know why they need messing with. They take seeds from a plant, but harm the plant. As opposed to seed extractor which removes yield to give an unreliable amount of seeds.
There's a trade-off and they become more relevant now that mutations are a thing. Removing them would mean hydroponics can be more permanently screwed with, creates unnecessary reliance on cargo to do your job, and removes an experienced botanist's ability to compensate, improvise and plan.
Not just that, but seed extractors can be broken, stolen and cut off by power. There isn't a problem with seed extractors either. They're convenient and intuitive to use in of themselves.
I'm baffled why you think that it needs removing at all. Its presence is only a benefit.

In addition, Hydroponics oversupply isn't... a problem.

The bug reports I have for pvs pop-in from literal thousands of botany produce begs to differ.

In addition, Hydroponics oversupply isn't... a problem.

The bug reports I have for pvs pop-in from literal thousands of botany produce begs to differ.

That... sounds like a fundamental problem with the design of hydroponics, not the plant clippers. Removing them wouldn't outright cripple Hydroponics, but it would make it easier to cripple.

IDK why a renewable console getting screwed is the end of the world when half the other departments rely on 1 console.

In addition, Hydroponics oversupply isn't... a problem.

The bug reports I have for pvs pop-in from literal thousands of botany produce begs to differ.

Idea: If the Smartfridge was fixed, could that be used to resolve this issue? In SS13 the Smartfridge is a structure used by chemistry and hydroponics to store chems, pills,bottles, seeds, food and produce and interacts with plant and chemistry bags.
I imagine PVS (whatever that is exactly) would still track them but... like, that would probably help more than removing the cutters.

The only argument I've heard for plant clippers existing is that there's seedless variants of plants which is more of a "gotcha" because there's no way to tell this ingame. ATM you could remove clippers and have identical gameplay as seedless variants don't offer anything meaningful.

 There isn't a reason to not have both of these. There is literally no reason to not have both of them.
I think a do-after on the plant clipper could be a nice idea if you want to balance it. But the clipper is the superior option over the extractor and the extractor is necessary to have.

Botany uses real life botanicals as a reference.
Clippers, will make a clone of the plant. Technically this is not a seed but is an actual cutting of the plant itself. The clone retains the damage value of the plant it was taken from and then damage is dealt to the plant in the process of taking a clipping, Im almost certain thats how it was explained to me. The reason a clone is so sought after in real life is that clones make it impossible for the plant you are growing from it to have any other mutations than the ones expressed currently in the host plant, regardless of its current mutations.
Mutations come from genetic shift over time after reproduction. A mutation shouldn't be expressed in it's host plant until the next generation, but a mutation can considerably affect the lifespan of the plant negatively or positively. Natural Selection happens when genes are copied, and affects which genes are selected for the next generation. A non-optimal combination of genes would result in a weak genetic lineage, which results in that lineage dying out eventually unless a stronger gene-stock was introduced through factors like pollination. Conversely an optimal combination of genes would thrive in its conditions making that plant and its descendants stronger, better and even different plants altogether.
So as a general,

You shouldn't be able to get mutations through the clipping of a plant.
Repeated clipping of a plant stock will absolutely mean that over time you have an unusable seed stock that provides heavily damaged plant.
There are several chemical methods you can use to assist your plant, though sometimes even these fail to help your plant live long enough to be clipped again.
Seeding provides a new seed that is nearly identical to the previous with slight variations that are of a standard deviation away from the parent plant.
A plant shouldn't be able to be seeded unless it is pollinated by another plant, unless it has a trait that makes it a self-pollinator.


Connected textures

I want my smooth stone to look good

Reopening because of #84
Solutions include:

Resource packs that support Fusion
a mod that adds support for optifines CTM without crashing the game

OHHHHHHH WE DON"T NEEED IT
you can just press the connected textures button with the rechiseled chisel and then you get connected textures. i didn't know...


Fixing issue in typescript tests

@dsgouda,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


ARROW-6526: [C++] Poison data in debug mode

This would help detect some memory issues even without ASAN,
as a first line of defense.

@emkornfield

LGTM, do you know what caused the Gandiva failure (I think I saw another PR might have caused it?)


Add example images

[Enter feedback here]
It would be helpful if screenshots of the web page were added throughout the tutorial.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2b677fc7-67a6-ef2f-21ee-cdffddeaac66
Version Independent ID: b84bbc11-059d-26d1-e693-2d34dbff4af5
Content: Build a Blazor todo list app
Content Source: aspnetcore/tutorials/build-a-blazor-app.md
Product: aspnet-core
Technology: aspnetcore-tutorials
GitHub Login: @guardrex
Microsoft Alias: riande

Hello @CutlerSheridan ... We prefer to use as few images as possible because they're too time-consuming for us to maintain given the workload and staffing. Another problem with images is that we can't rely upon them for anything. The text must cover all of the behaviors of the app created in the tutorial to make the framework accessible to developers with vision impairments. If you feel that any of the textual descriptions aren't clear enough, I would like to hear about those cases so that I can make improvements to the text. Please open new issue(s) for those cases.


Add override and implement abstract method inherited from HttpClientRequest

Referenced issue: #39

@brianegan could you please take a look at this? The library is currently broken on Flutter stable (1.22)

@brianegan  any update on this?  I couldn't use this lib on 1.22.xx.

:/


Viewport does contain width or height

I wrote #10797 but you closed it before I had time to respond.  Here's my latest on this.
After upgrading to pdfjs-2.0.943-dist things still failed and I figured it was the same issues I was having with pdfjs-1.9.426-dist.  Turns out it's not.
In pdfjs-2.0.943-dist, this code:
pdf.getPage(1).then(function(page) {
var viewport = page.getViewport({ scale: 1, });
});
returns this viewport:

height: NaN
offsetX: 0
offsetY: 0
rotation: 0
scale: {scale: 1}
transform: (6) [NaN, NaN, NaN, NaN, NaN, NaN]
viewBox: (4) [0, 0, 595.273, 841.886]
width: NaN

I need the width and height so my code fails.  I ran the above in a Chrome browser.
I then tried pdfjs-dist-master and things work fine in all platforms.  I get this viewport:

height: 841.886
offsetX: 0
offsetY: 0
rotation: 0
scale: 1
transform: (6) [1, 0, 0, -1, 0, 841.886]
viewBox: (4) [0, 0, 595.273, 841.886]
width: 595.273

pdfjs-dist-master partially solves my problem (I get the complete viewport and it works for me in all platforms) but it doesn't contain viewer.html so I rely on  pdfjs-2.0.943-dist for the viewer.  Between the two I get everything I need but I'd  prefer to use one package for both pdf access and viewing.
If possible, please tell me:

how I can get pdfjs-2.0.943-dist to return a complete viewport.
or
how I can use viewer.html with pdfjs-dist-master.

Thank you

The method signature changed in PR #10369, hence:

In version 2.0.943 and earlier it takes "regular" parameters, i.e. formatted as getViewport(scale, rotate, dontFlip).
In version 2.1.266 and later it takes an object, i.e. formatted as getViewport({ scale, rotation, dontFlip })

(This change should probably have been done a lot earlier, but it was overlooked previously.)


Flutter: Ensure that flutter generates required file for Android project

This ensures that the local.properties file for Android Gradle
projects is generated before Gradle analyzes this project.
Resolves #4651.
The created dependency tree adds the child Gradle project as a dependency of the Flutter project:

Two things to note in this implementation:

The printed analyzer information is not completely correct. i.e. the child Gradle project(s) will not be printed, and the count is wrong:

Found 1 Pub project(s) at:
	pubspec.yaml
Found 1 project(s) in total.

As a workaround I added an additional print to show the child Gradle project(s):
Found 2 Gradle project(s) at:
	android/build.gradle
	android/app/build.gradle

Running the Analyzer using the -m Pub option, will now also run Gradle for Gradle projects managed by Flutter.

@fviernau I inlined scopes += parseScope("dependencies", manifest, lockFile, parsePackagesResult.packages, labels) again.
Accidentally added some test files, that's why the force-push diffs are a bit messed up.
Sorry for that.


ci: add bb fuzzing to new CI

Once this is done we should also turn it back on in old CI

This seems quite stale now but would be good to set up some fuzzers in CI


[FLINK-5798] [rpc] Let the RpcService provide a ScheduledExecutorService

This PR adds the getScheduledExecutorService method to the RpcService interface. So
henceforth all RpcService implementations have to provide a ScheduledExecutorService
implementation.
Currently, we only support the AkkaRpcService. The AkkaRpcService returns a
ScheduledExecutorService proxy which forwards the schedule calls to the ActorSystem's
internal scheduler.

Looks very good to me!
+1 to merge this...

Thanks for the review @StephanEwen. Merging the PR.


Add bbox invalidation when toggling layer visibility

Fixes #333

I should have put this in the setter, not the getter. Fixing that.

Hmm, this actually affects any property related to bbox, like left or top, not just visible flag.
A few requests:

Cache invalidation should not be public method, and perhaps named like _invalidate_bbox.
Need tests. A simple one would suffice.

Okay, I'll address those in a bit👌


Add option to convert YAML string to MATLAB char

Summary
I added the option StringToChar to load.m and loadFile.m, which lets the user choose if YAML String should be converted to MATLAB string (default, false) or MATLAB char (true).
Rationale
Depending on the context, MATLAB char are sometimes easier to manipulate than MATLAB string, especially in older versions of MATLAB. Therefore in many of my use cases, I found it useful to have an option to decide what should YAML String be converted to.
I can't imagine any YAML combination where using char would create a bug, because Sequences are converted to cell arrays, and Mappings are converted to struct, which both support char's correctly.
Feel free to change the name of the option or the implementation of the feature!

Hi thanks for your efforts. However, I am not convinced yet, that this feature is necessary. The string type was introduced 8 years ago and in my experience they are way more convenient to use then chars in 99 % of cases. As for older Matlab versions, this package requires R2019b anyway. Can you describe the cases where you found it convenient to have chars in more detail?


Want to add reset button

On clicking reset button the password generated will be disappear

please assign this to me

On clicking reset button the password generated will be disappear

are you interested in working on it?

@yash-sharma13  bro it was my issue

@yash-sharma13 bro it was my issue @ashwin3005 i think issues are assigned on the first come first serve??

sorry mate, i thought it's open for all.. you can go ahead and work on it.


Error setting height and width for keras_hub.models.StableDiffusion3TextToImage.from_preset

Describe the bug

To Reproduce

Expected behavior

Additional context

Would you like to help us fix it?
I wish I had this knowledge.

Hey @marciofreire
Could you provide a reproducible script for this bug?
We recently changed the parameter signature for the consistency across models. If you're using the latest version of KerasHub, you should be able to instantiate SD3 like this:
text_to_image = StableDiffusion3TextToImage.from_preset(
    "stable_diffusion_3_medium",
    image_shape=(height, width, 3),
    dtype="float16",
)

Great!! Since the issue was resolved, I will close the issue.


GIS SOP

Create SOP with the following sections:

Knowledge requirements/courses for GISSs'
Map standards
File name/directory standards

Write in MD and allow for a YAML file to alter variables. Use something similar to https://github.com/realdennis/md2pdf to convert to PDF for distribution.


Select car

[x] Added car selection for start transaction
[x] Aligned cars style with other lists

@AlixH Do not forget to attach your PR to an issue ;-)
I just did it

Fixed initial car loading
Display in car list the Default car
Added icons above selected user / car
UserID and CarID not passed to the HTTP call

@LucasBrazi06 , is it to do ? Some have past tense so I am mot sure
Concerning the start, I will do a final PR after the tag selection to send the infos, here I am just concentrating on the selection

@LucasBrazi06 , is it to do ? Some have past tense so I am mot sure

No, it's done :-).
It's just to inform you and if you agree with the changes.
Okay for the HTTP call.
I also removed the Available connector icon as this is the only use case where we display the selection.


RTP VM creation defaults owner to first user alphabetically

It'd be nice if it defaulted to the current user instead

lmoa


[TableCardFormContent] Thresholds not being updated when data item is removed

What package is this for?

[x] React
[ ] Angular

Describe the bug
When a data item for DataTable is added with thresholds. When the dataItem is removed, the JSON editor does not reflect the change for the threshold.
To Reproduce
Steps to reproduce the behavior:

Go to  https://next.carbon-addons-iot-react.com/?path=/story/2-watson-iot-experimental-☢-dashboardeditor--with-initial-value
Click on already created DataTabe
Add a threshold to a data item. Open JSON editor to see threshold has been added
Remove that same data item and open JSON editor. The threshold has not been removed from JSON

Please create a reduced test case in CodeSandbox:
https://codesandbox.io/s/github/carbon-design-system/carbon-addons-iot-react/tree/next/packages/react/examples/codesandbox

Expected behavior
Thresholds associated with dataItem should be removed when dataItem is removed for DataTable.
Environment/versions:

OS: MacOS
Browser: chrome
carbon-addons-iot-react version: [e.g. v2.60.0]

Additional context
If applicable, add screenshots to help explain your problem.
Add any other context about the problem here.
Specific timeline issues / requests
Do you want this work within a specific time period? Is it related to an
upcoming release?
NB: The core contributors will try to work with your timeline, but it's not
guaranteed. The earlier you make a request in advance of a desired delivery
date, the better!

@eosineye1 I see you have a draft PR. Do you need any guidance with this?

Related to #3566


Bug: Company member invitation needs to resend email verification link

Describe the bug
When a company member is invited, the invited user is sent an email with a link. After following the link, the user can fill out his user details and then a page appears showing that the user needs to verify his email (again). The email isn't sent, so the user needs to click the button to resend the mail.
To Reproduce
Steps to reproduce the behavior:

One user creates a company
He invites another user
Other user checks the mail
Fills out registration form
See error

Expected behavior
The process should be:

company rep invites user
User checks mail and opens the invitation link
The email address is set to verified and the registration for is shown
User fills out registration form
User is logged in

Screenshots
N/A
Desktop (please complete the following information):
N/A
Smartphone (please complete the following information):
N/A
Additional context
N/A

Closed in #440


WsEvents are filtered by topic, define possible topics

Apologies for the large diff due to whitespace/indentation changes. Changes are smaller than they look in the mirror.

bors merge


How is the reproduced performance?

Hi, it's a great and concise reimplementation of MLP works. Meanwhile, I'm wondering how is the performance of reimplemented version compares to the reported performance of the manuscripts? It would be very appreciated if you could show the results of the experiment.

Sorry. Due to the lack of training hardware, we are temporarily unable to provide the performance of these models.


Add estimated num training steps

What does this PR do?

Fixes #10760
Does your PR introduce any breaking changes? If yes, please list them.

Before submitting

[x] Was this discussed/approved via a GitHub issue? (not for typos and docs)
[ ] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
[ ] Did you make sure to update the documentation with your changes? (if necessary)
[x] Did you write any new necessary tests? (not for typos and docs)
[x] Did you verify new and existing tests pass locally with your changes?
[ ] Did you list all the breaking changes introduced by this pull request?
[ ] Did you update the CHANGELOG? (not for typos, docs, test updates, or internal minor changes/refactorings)

PR review
Anyone in the community is welcome to review the PR.
Before you start reviewing make sure you have read Review guidelines. In short, see the following bullet-list:

[x] Is this pull request ready for review? (if not, please submit in draft mode)
[x] Check that all items from Before submitting are resolved
[x] Make sure the title is self-explanatory and the description concisely explains the PR
[x] Add labels and milestones (and optionally projects) to the PR so it can be classified

Did you have fun?
Make sure you had fun coding 🙃

Overall looks clean to me!

@rohitgr7 Is this waiting on something?

hey @carmocca !
just need to add 1 test for TPU and IPU each. will try to get it done today.


Add clearer explanation about hostname being ignored in GAMMA

What would you like to be added:
Explain in API specification that hostnames are ignored in GAMMA, which is described in GEP1426.
Why this is needed:
It's frustrated for a user to find that hostnames being ignored is not noted in the specification of gateway-api. This important information is only described in gateway enhancement proposal. Interestingly, istio and linkerd have different behavior on whether to ignore hostnames in GAMMA implementation.

I'd recommend that we change this behavior, and add conformance tests to verify that hostnames in GAMMA routes are in fact equivalent to matches on the :authority pseudoheader. Linkerd already does this, and in https://github.com/istio/istio/issues/49973 it looks like Istio is headed that direction.

That makes sense, I guess, but will need an update to GEP-1426 to realize.

Yeah, @youngnick, I'll try to tackle that.

/remove-lifecycle rotten
Not stale, needs a GEP update per plan described in https://github.com/kubernetes-sigs/gateway-api/issues/2885#issuecomment-2024143231

/remove-lifecycle rotten
See above.


Unable to get instances from Sql Server Browser on host

Describe the bug
A clear and concise description of what the bug is.

URL
sqlserver://user:pass@server.ms.ds.org.com:1433/db
Error
Unable to get instances from Sql Server Browser on host server.ms.ds.org.com: read udp <IP_ADDRESS>:53997-><IP_ADDRESS>:1434: read: connection refused

How to specify the password in url if it contains @

Further technical details
SQL Server version: Microsoft SQL Server 2014 (SP3-CU4-GDR) (KB4583462) - 12.0.6433.1 (X64)
Oct 31 2020 02:54:45
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.3  (Build 9600: ) (Hypervisor)
Additional context
Add any other context about the problem here.

Works great


feat: Language translations finder and update

Description
Supersedes #7889
See thread https://forum.codeigniter.com/showthread.php?tid=88299
Ready to discuss the solution.
Edit #7889: Start with branch 4.5
Checklist:

[x] Securely signed commits
[x] Component(s) with PHPDoc blocks, only if necessary or adds value
[ ] Unit testing, with >80% coverage
[x] User guide updated
[x] Conforms to style guide

Tests failed.
https://github.com/codeigniter4/CodeIgniter4/actions/runs/6077247490/job/16498118276?pr=7896
There were 3 failures:

1) CodeIgniter\Commands\Translation\LocalizationFinderTest::testUpdateDefaultLocale
Failed asserting that two arrays are identical.
--- Expected
+++ Actual
@@ @@
     'DESCRIPTION' => 'TranslationOne.DESCRIPTION'
     'subTitle' => 'TranslationOne.subTitle'
     'overflow_style' => 'TranslationOne.overflow_style'
-    'last_operation_success' => 'TranslationOne.last_operation_success'
     'metaTags' => 'TranslationOne.metaTags'
     'Copyright' => 'TranslationOne.Copyright'
+    'last_operation_success' => 'TranslationOne.last_operation_success'
 )

/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Commands/Translation/LocalizationFinderTest.php:202
/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Commands/Translation/LocalizationFinderTest.php:46
phpvfscomposer:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpunit/phpunit/phpunit:106

2) CodeIgniter\Commands\Translation\LocalizationFinderTest::testUpdateWithLocaleOption
Failed asserting that two arrays are identical.
--- Expected
+++ Actual
@@ @@
     'DESCRIPTION' => 'TranslationOne.DESCRIPTION'
     'subTitle' => 'TranslationOne.subTitle'
     'overflow_style' => 'TranslationOne.overflow_style'
-    'last_operation_success' => 'TranslationOne.last_operation_success'
     'metaTags' => 'TranslationOne.metaTags'
     'Copyright' => 'TranslationOne.Copyright'
+    'last_operation_success' => 'TranslationOne.last_operation_success'
 )

/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Commands/Translation/LocalizationFinderTest.php:202
/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Commands/Translation/LocalizationFinderTest.php:58
phpvfscomposer:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpunit/phpunit/phpunit:106

3) CodeIgniter\Commands\Translation\LocalizationFinderTest::testUpdateWithEmptyDirOption
Failed asserting that two arrays are identical.
--- Expected
+++ Actual
@@ @@
     'DESCRIPTION' => 'TranslationOne.DESCRIPTION'
     'subTitle' => 'TranslationOne.subTitle'
     'overflow_style' => 'TranslationOne.overflow_style'
-    'last_operation_success' => 'TranslationOne.last_operation_success'
     'metaTags' => 'TranslationOne.metaTags'
     'Copyright' => 'TranslationOne.Copyright'
+    'last_operation_success' => 'TranslationOne.last_operation_success'
 )

/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Commands/Translation/LocalizationFinderTest.php:202
/home/runner/work/CodeIgniter4/CodeIgniter4/tests/system/Commands/Translation/LocalizationFinderTest.php:78
phpvfscomposer:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpunit/phpunit/phpunit:106

I see. But my test is running.
aleksandr@aleksandr-debian:~/www/codeigniter$ vendor/bin/phpunit --color=always --no-coverage ./tests/system/Commands/Translation/LocalizationFinderTest.php
PHPUnit 9.6.10 by Sebastian Bergmann and contributors.

Runtime:       PHP 8.2.7
Configuration: /home/aleksandr/www/codeigniter/phpunit.xml.dist

......                                                                                6 / 6 (100%)

Nexus\PHPUnit\Extension\Tachycardia identified these 3 slow tests:
⚠  Took 1.17s from 0.50s limit to run CodeIgniter\\Commands\\Translation\\LocalizationFinderTest::testUpdateDefaultLocale
⚠  Took 1.16s from 0.50s limit to run CodeIgniter\\Commands\\Translation\\LocalizationFinderTest::testUpdateWithLocaleOption
⚠  Took 1.16s from 0.50s limit to run CodeIgniter\\Commands\\Translation\\LocalizationFinderTest::testUpdateWithEmptyDirOption

Time: 00:03.484, Memory: 12.00 MB

OK (6 tests, 18 assertions)

Why isn't there a key when there is one?

Probably you need to sort the order of the found files.

Please add an entry for this feature in the changelog Enhancements > Commands.
See https://github.com/codeigniter4/CodeIgniter4/blob/4.5/user_guide_src/source/changelogs/v4.5.0.rst#commands

@neznaika0 This command does nothing to lang items that are removed.
Is it okay?

@neznaika0 This command does nothing to lang items that are removed. Is it okay?

If I understand correctly: No, the command does not delete keys in existing translations. Only new keys are inserted.
If there was no translation, a new file is created.

Opinion on reducing array validation [] !== $array
Is checked as empty($array) in many places of the system, why break it here? Or why leave it there?

Opinion on reducing array validation [] !== $array Is checked as empty($array) in many places of the system, why break it here? Or why leave it there?

The empty will be addressed when phpstan strict rules is adopted.

The coverage seems okay.

https://coveralls.io/builds/62534513/source?filename=system%2FCommands%2FTranslation%2FLocalizationFinder%2FArrayHelper.php
https://coveralls.io/builds/62534513/source?filename=system%2FCommands%2FTranslation%2FLocalizationFinder.php

This is not perfect but better.
--- a/system/Commands/Translation/LocalizationFinder.php
+++ b/system/Commands/Translation/LocalizationFinder.php
@@ -132,7 +132,12 @@ class LocalizationFinder extends BaseCommand
                 $newLanguageKeys = array_replace_recursive($foundLanguageKeys[$langFileName], $languageStoredKeys);

                 if ($languageDiff !== []) {
-                    if (false === file_put_contents($languageFilePath, $this->templateFile($newLanguageKeys))) {
+                    if (
+                        false === file_put_contents(
+                            $languageFilePath,
+                            $this->formatCode($this->templateFile($newLanguageKeys))
+                        )
+                    ) {
                         $this->writeIsVerbose('Lang file ' . $langFileName . ' (error write).', 'red');
                     } else {
                         $this->writeIsVerbose('Lang file "' . $langFileName . '" successful updated!', 'green');
@@ -231,6 +236,47 @@ class LocalizationFinder extends BaseCommand
             PHP;
     }

+    private function formatCode(string $code): string
+    {
+        $tokens    = token_get_all($code);
+        $newTokens = $tokens;
+
+        foreach ($tokens as $i => $token) {
+            if (is_array($token)) {
+                [$tokenId, $tokenValue] = $token;
+
+                // Replace "array ("
+                if (
+                    $tokenId === T_ARRAY
+                    && $tokens[$i + 1][0] === T_WHITESPACE
+                    && $tokens[$i + 2] === '('
+                ) {
+                    $newTokens[$i][1]     = '[';
+                    $newTokens[$i + 1][1] = '';
+                    $newTokens[$i + 2]    = '';
+                }
+
+                // Replace indent
+                if ($tokenId === T_WHITESPACE) {
+                    if (preg_match('/\n([ ]+)/u', $tokenValue, $matches)) {
+                        $newTokens[$i][1] = "\n{$matches[1]}{$matches[1]}";
+                    }
+                }
+            } // Replace ")"
+            elseif ($token === ')') {
+                $newTokens[$i] = ']';
+            }
+        }
+
+        $output = '';
+
+        foreach ($newTokens as $token) {
+            $output .= $token[1] ?? $token;
+        }
+
+        return $output;
+    }
+
     /**
      * Create multidimensional array from another keys
      */

This is not perfect but better.
--- a/system/Commands/Translation/LocalizationFinder.php
+++ b/system/Commands/Translation/LocalizationFinder.php
@@ -215,12 +215,14 @@ class LocalizationFinder extends BaseCommand
         if ($language !== []) {
             $languageArrayString = var_export($language, true);

-            return <<<PHP
+            $code = <<<PHP
                 <?php

                 return {$languageArrayString};

                 PHP;
+
+            return $this->replaceArraySyntax($code);
         }

         return <<<'PHP'
@@ -231,6 +233,47 @@ class LocalizationFinder extends BaseCommand
             PHP;
     }

+    private function replaceArraySyntax(string $code): string
+    {
+        $tokens    = token_get_all($code);
+        $newTokens = $tokens;
+
+        foreach ($tokens as $i => $token) {
+            if (is_array($token)) {
+                [$tokenId, $tokenValue] = $token;
+
+                // Replace "array ("
+                if (
+                    $tokenId === T_ARRAY
+                    && $tokens[$i + 1][0] === T_WHITESPACE
+                    && $tokens[$i + 2] === '('
+                ) {
+                    $newTokens[$i][1]     = '[';
+                    $newTokens[$i + 1][1] = '';
+                    $newTokens[$i + 2]    = '';
+                }
+
+                // Replace indent
+                if ($tokenId === T_WHITESPACE) {
+                    if (preg_match('/\n([ ]+)/u', $tokenValue, $matches)) {
+                        $newTokens[$i][1] = "\n{$matches[1]}{$matches[1]}";
+                    }
+                }
+            } // Replace ")"
+            elseif ($token === ')') {
+                $newTokens[$i] = ']';
+            }
+        }
+
+        $output = '';
+
+        foreach ($newTokens as $token) {
+            $output .= $token[1] ?? $token;
+        }
+
+        return $output;
+    }
+
     /**
      * Create multidimensional array from another keys
      */

Warn is still needed. Let's hope for the developer to format it himself

(feat-4.5-lang-finder $)$ php spark lang:find

CodeIgniter v4.4.1 Command Line Tool - Server Time: 2023-09-11 08:21:46 UTC+00:00

Note: You need to run your linting tool to fix coding standards issues.
All operations done!

(feat-4.5-lang-finder $)$ cat app/Language/en/Errors.php
<?php

return [
    'whoops' => 'Errors.whoops',
    'weHitASnag' => 'Errors.weHitASnag',
    'pageNotFound' => 'Errors.pageNotFound',
    'sorryCannotFind' => 'Errors.sorryCannotFind',
];

the command does not delete keys in existing translations. Only new keys are inserted.
If there was no translation, a new file is created.

If lang('Foo.bar) is deleted, isn't it better to show it?

Why and where is foo.bar removed? This is a normal key for translations.
Ah, typo? Yes, I could create an additional save of the missing keys. But this is already in another version

'Foo.bar' is just an example.
If a feature is removed, then, the lang() line in it also will be removed.
And yes, if there is a typo, we may fix the key value.

I don't understand a bit.
Are you suggesting removing lang() from the code (Controller, Views,..) or from the language file? Bad keys (.bar Foo. Foo,bar) will not get into the language file, but they will remain in the code.

I say on removing lang() from the code, or changing the argument.
E.g. lang('Cache.unabelToWrite') → lang('Cache.unableToWrite')
Cache.unabelToWrite is gone (but not deleted in the lang file), and Cache.unableToWrite is added.
I want to say, if there are items in the lang files that are not used by lang(),
it seems better to have a way to know them.

Ok. This is the second option of my answer.
I'm afraid that deleting may disrupt translations if you temporarily deleted the file where lang() or created the translation first (without a controller).
Probably it should be a new option --force?
Example:

Add ~100 new transtation keys in app/Language/Foo: 'bar1' => 'Bar1', ...
lang:find --force deleting all ~100 keys or lang:find will show ~100 unused keys (as table).
Create new Controller, Views files with lang('Foo.bar1')...
We will get one of the results: translated or missing keys

In my opinion, it is not necessary to remove items from the language files, but it would be nice to have an option to show unused items.

Let's do it in another PR?

This PR is very big, so it is okay to go another PR to improve.

Good. Then I don't add PR, we are waiting for approval. If necessary, I will rebase the branches

@neznaika0 See the last comment to the docs.

@neznaika0 Thank you!


ValidatorHandler masking status returned from validation with new status

In handleRequest method of ValidationHandler, following is the block of code that needs to be fixed
Status status = requestValidator.validateRequest(requestPath, exchange, openApiOperation);
if(status != null) {
    setExchangeStatus(exchange, status.getCode());
    if(config.logError) logger.error("ValidationError:" + status.toString());
    return;
}

When status is already populated with arguments, it is replaced with new status again because setExchangeStatus(exchange, status.getCode()); is not using the generated status object and is not providing the actual arguments that are needed to format the description in the status object.
To resolve this, setExchangeStatus(exchange, status.getCode()); should be replaced with setExchangeStatus(exchange, status);

@pradeepth Thanks a lot for raising it up. This was reported by another contributor today and it is addressed in the release 1.6.13 (released) and 2.0.9 (pending). Could you please confirm if it is the same as https://github.com/networknt/light-rest-4j/issues/119? Happy New Year!!!!

Thank you @stevehu for your prompt response. Yes the issue #119 is same as the one I raised. Happy New Year!

Cool. Thanks a lot for your confirmation. Please stay tuned for the new release.


Some Issues with 1.8

I can't seem to connect to 1.8.1 servers with this. It says something like "Cannot connect to %IP INSERTED HERE% Reason: Connection was ended cleanly." Also, I think the authentication has changed making the --onlinemode tag useless ATM either due to the new UUIDs or the fact they changed some links n' stuff. I am seeing how I can fix these issues manually, but for now, just wanted to make an official issue report.

Hi, development stopped at "Support for Minecraft 1.5"
1.8.1 is already way too different....
focusing on a different project now

Ah, I had a feeling. Thanks though for making a cool piece of software.

Maybe look at https://github.com/nickelpro/spock

Thanks, that will help a lot!


sigh(theme providers): bring back bidding provider until we are ready to replace this :(

This reverts commit b80f2d01f8b255b2a7af67afad26a86cd80d549b.The type of this PR is: TYPE

This PR resolves []
Description

PR Checklist (tick all before merging)

[ ] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have tested my changes on iOS and Android.
[x] I have added tests for my changes, or my changes don't require testing, or I have included a link to a separate Jira ticket covering the tests.
[ ] I have added a feature flag, or my changes don't require a feature flag. (How do I add one?)
[ ] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)
[ ] I have added a changelog entry below or my changes do not require one.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

Warnings

:warning:

❌ An error occurred while validating your changelog, please make sure you provided a valid changelog.

  Generated by :no_entry_sign: dangerJS against 10c9a1465043a73656912818bae4aa9211868e02

⚠ Ignore the failing check-pr ⚠
It's because we reverted some of the code and it brings back some migration comments.


Add support for Task deletion

Currently in pipelines, the PUT requests merge the previous tasks in a pipeline with the new one from the request. This additive functionality can't handle deletion of tasks. Please update the test PipelineResourceTest#put_AddRemovePipelineTasksUpdate_200 to enable testing task deletion.

@pmbrull we handled it in the latest lineage backend right?

Yes, now the client is the one who holds the truth. So if we make a put with a set of tasks, those are the ones that are going to be saved in the backend, managing adds/updates/deletes


Benchmark types

Suggestion
I'm looking for a way to benchmark and compare TS performance to optimize types definitions.
TS has a wiki page with tips to improve performance (link), it should have an instruction for how users can benchmark the code.
🔍 Search Terms
benchmark types, measure performance
✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion

I'm thinking of building a library similar to other benchmark tools, but to benchmark TS type system on itself over the user code.
This library would allow users to define multiple test cases, run them many times, and report which one was the fastest.
Each test case calls TS to parse and type-check the given code. There should be a way to set up a common TS code that will be parsed just once and will be available for all test cases.
If anything similar already exists, please let me know and add it to the performance guide.
📃 Motivating Example

I'm developing a library with complex types, and the performance of TS is becoming a problem. I can define a single type in different ways, I have an assumption that one way will be more efficient for TS than another, but there is no way to confirm that assumption.
Sometimes I meet the "type instantiation is excessively deep" error and I have to simplify the types guided only by intuition.
If you're developing a library, and users are complaining about poor performance, what can you do about it? How can you know if the change in the code is making TS faster or slower? AFAIK, there is no way for it currently.
A TS benchmark tool would serve as a guide to optimize our libraries.
💻 Use Cases

It would help to optimize the code. More optimal code would result in "type instantiation is excessively deep" less frequently.

Related: #44307

TS has a wiki page with tips to improve performance (link), it should have an instruction for how users can benchmark the code.

It does: https://github.com/microsoft/TypeScript/wiki/Performance-Tracing

Thanks for pointing!


Depreciation in Ember 2.8

DEPRECATION: Enumerable#contains is deprecated, use Enumerable#includes instead. [deprecation id: ember-runtime.enumerable-contains] See http://emberjs.com/deprecations/v2.x#toc_enumerable-contains for more details.

Thanks for patching this! Would it be possible to tag and publish this as v2.0.2? Is there still work to be done before this patch can be referenced by version?

I'll try to release a new version this week. Thanks for the ping.

Thanks for the patch! I'm too still waiting for the patch to be released though. :v:

On it 😄

Published v2.0.2

🎉


Implemented aggregation is different from the description in McMahan 2016 paper

Hello. Thanks for the nice repo.
I have a question about the implementation of aggregation on the server. According to the McMahan 2016 paper, the server does
$$w_{t+1}\leftarrow \sum_{k\in S_t} \frac{n_k}{m_t} w_{t+1}^k.$$
If I understand it correctly, there is a server-side optimizer in your code and your implementation can be translated into
$$w_{t+1}\leftarrow w_t - \eta(w_t - \sum_{k\in S_t} \frac{n_k}{m_t} w_{t+1}^k).$$
This looks like a momentum update of the server's model. Could you please explain the motivation behind this?

Dear @bokun-wang,
Hi! Thank you for your interest in my repository. 😃
Exactly as you understood, it is a server momentum, which is firstly proposed in FL by Hsu et al., 2019, coined as FedAvgM.
This concept has also been adopted into other FL researches, e.g., Dinh et al., 2022 (pFedMe).
Since vanilla aggregation mechnism is the special case of the momentum verison (i.e., $\eta=1$), I intentionally implemented in that way.
BTW, I think I should explictly add fedavgm option to the choice of algorithm argument that forces the momentum constant (i.e., $\eta$) to be positive.
Thank you!
Best,
Adam

Thanks for the clarification.
This paper  also looks relevant, which suggests specific values for the server-side step size eta.


Unable to upload file to file cabinet due to file path format.

Your environment
OS : Windows 11
Node.js version : 18.16.0
suitecloud-cli version : 1,4,1
Terminal/CMD tool : VSCodeTerminal
Describe the bug
I can create a project and set up the account. I can also pull files from the NetSuite file cabinet. However, When creating a new file or attempting to upload a file, it is not working. I get the following errors.

The first error is when trying to create a new suitescript file. The second is when trying to upload. I noticed on a colleagues computer when he uploads it is not the double slashes.
To Reproduce
Steps to reproduce the behavior:

Installed VSCODE and SuiteCloud extension
Created a SuiteCloud project
Set up account, account set up successfully.
When using create or upload it will not work.

Actual Behavior
Errors out with the screenshots above
Expected Behavior
Be able to create or upload scripts to file cabinet.
Additional context
The user with the error is an administrator and has all necessary permissions.

Same here. Able to import fine, but the upload file request seems to be doubling the slashes in the path making it invalid. Tried creating new projects on multiple versions of the suitecloud extension, but still haven't been able to fix the issue. I also switched to use CLI. Hopefully they get this resolved.

To solve the problem you should use Java 17.2 Jdk, It works for me.

Yep, that fixed it for me as well. 17.0.2 - Thanks!

Hello @adock27 @HanzChen @MJensen6889,
Thanks for providing a fix and verifying that it is working for you. Just to understand it, it seems that using Java 17.0.2 solves the issue. If yes, which version of Java were you using prior to that? (when you were getting the error)
Did you have to upgrade to a downgrade java to make it work?

Hello @adock27 @HanzChen @MJensen6889, any updates here?

I will close this. If you have updates on this feel free to include it here.

I had the same issue and installing Java 17.0.2 version fixed the issue. Previously, Java 17.0.7 version was installed.


Prevent fatal error when cart item contains non-standard attributes

In case you want to submit something non-standard(not one of product options) along with the product-data in add-to-cart form(in order to e.g. use it in some way in cart observers), the data will be put into productAttributes array in cart item. However, when submitting the order, the cart-item-to-order-item conversion will fail because it can't find the corresponding product option. In the PR, the code that  adds the actual cart-item option is moved inside a block that verifies that a product option exists - this way, it's possible to have data in productAttributes in cart item that is not a part of product options, and during order submission, this data is simply ignored.

Looks like a sensible improvement, many thanks


Host arg

Proper PR for #43
No tests were added, there weren't any for the port argument either.

<3


[3.x] Add option to paste animation as duplicate

Based on #33252 which implemented this on master.
Also updates the animation resource name if it's pasted as duplicate.

Thanks!


 See the commit with the comment Automatically optimized images [ci skip]. in this PR for details.
Vuepress build was successful!

@zebateira Added some quick styling to the non-Algolia search box ... do you mind a quick review and merge if OK? 🙏

@jessicaschilling perfect 👌


Nuget - flags that require a local path, return an error

To Reproduce
Steps to reproduce the behavior
jfrog.exe rt nuget restore -NoCache -PackagesDirectory MY_LOCAL_PATH(e.g. C:\a\1\s) -Verbosity Detailed
Expected behavior
Success
Screenshots
If applicable, add screenshots to help explain your problem.

Versions

JFrog CLI version: 1.35.1
JFrog CLI operating system: Windows 10
Artifactory Version:7

Additional context
Add any other context about the problem here.

Solved https://github.com/jfrog/jfrog-cli/commit/f3b5a338090c775cb3cb8b9b92d6e800a2b007c0


fixes bug 1310807 - maximize the HSTS header

Coverage remained the same at 86.062% when pulling e6014bc9348b1cfb081b32c491c019ebc94d4767 on peterbe:bug-1310807-maximize-the-hsts-header into f10c961a99787178670553aeaf3d5aaf35962774 on mozilla:master.


Added Institute of Technical Education (Singapore)

Institution/School Name
{Institute of Technical Education}
Instiution/School Website
{https://www.ite.edu.sg}
Email Users
Please place an x between the square brackets if yes
[x] Students
[x] Academic/Teaching Staff
Other/Support Staff
Alumni
Education Levels
Please place an x between the square brackets if yes
Post-graduate research
Graduate School
College (University) or Undergraduate School or equivalent
[x] Community College or equivalent
High School or equivalent
Elementary School or equivalent

@chaiyeow Pull request merged. Thank you!


Support python uc_catalog

Do you have an implementation plan to use uc_catalog with Python?
con.execute("""
INSTALL uc_catalog from core_nightly;
INSTALL delta;
LOAD delta;
LOAD uc_catalog;
    CREATE SECRET secret1 (
        TYPE S3,
        KEY_ID 'minio',
        SECRET 'minio123',
        REGION 'us-east-1',
        ENDPOINT 'localhost:9000',
        URL_STYLE 'path',
        USE_SSL 'false'

    );

    ATTACH 'my_catalog' AS my_catalog (TYPE UC_CATALOG);
    SHOW ALL TABLES;

    --select * from my_catalog.my_schema.test_table1;

"""
)
HTTPException                             Traceback (most recent call last)
Cell In[3], line 1
----> 1 con.execute("""
2         INSTALL uc_catalog from core_nightly;  INSTALL delta; LOAD uc_catalog; LOAD delta;
3
4 """
5 )
HTTPException: HTTP Error: Failed to download extension "uc_catalog" at URL "http://nightly-extensions.duckdb.org/v1.1.2/windows_amd64/uc_catalog.duckdb_extension.gz" (HTTP 403)
Candidate extensions: "spatial", "excel", "autocomplete"

windows is not yet supported for this extension

@samansmink is Windows support somewhere on the roadmap?


Adding one-click deploy button for RepoCloud.io to README.md

Adding button enabling community access to deploy template for self-hosting on RepoCloud.io with one click.

It's already present on the top of the README


Update roadmap from DMPonline_v4

I am trying to update to roadmap from DMPonline following the guide, but these commands are not available on step 4 in my server ( ubuntu 16.04 )

ruby 2.3.1p112
rails 4.2.7
bundler 1.16.1

wiki Upgrading-from-DMPonline_v4
rake migrate:init_plan_visibility
rake migrate:plan_data_contacts:
rake migrate:move_shibs
rake upgrade:v0_3_3

What was he supposed to do at this point?
Can I continue without this commands?

@xsrust updated the documentation at wiki and the user was able to continue with the steps until the issue #1315.


typo add limitation description for inverted index

Proposed changes
add limitation description for inverted index for different data model.
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall


No Spotify playback after long idle

There two issues with Spotify playback independent from used Mupibox version.

Start Mupi,  play Spotify track, stop, let Mupibox untouched for several hours, try to play again - > no playback

After a restart, playback is working flawless.

Do not use Spotify for a week (maybe less). Start Mupibox, try to play a Spotify track- > no playback

Only a new Spotify config setup will bring Spotify back to work.
Logs can be provided...

EDIT for issue 2:
THe issue can't be solved by renewing the spotify config. The only way is to use spotify on another device and chose Mupibox as speaker. After that, Spotify playback on Mupibox is restored.
Logs can be provided if necessary.

I'm experiencing the same problem. Spotify playback after pausing about an hour is not possible. I have to restart the box to get it working again.

EDIT for issue 2:
THe issue can't be solved by renewing the spotify config. The only way is to use spotify on another device and chose Mupibox as speaker. After that, Spotify playback on Mupibox is restored.
Logs can be provided if necessary.

Same herein in one box


Can't bind to 'ngclass'

If i use npm run ng-compile-prod following error happend.

But if i use npm run ng-compile the everything work fine.
Also i takes time to load. due to scripts.
Please help to reslove this issue.
Thanks and Regards,
Umesh B. K

Try to move to latest version of this project and also to Angular 5.


Adding custom finetuned (and converted+quantized) model to Ollama

Hey there!
First off: Thank you for this amazing model and all the work you put into it. So far this thing is really impressive (especially at this size).
I was messing around with it a bunch for the last couple of days because i have a project in mind. So I used Llava to make a more specific dataset for my task which I then used to fine tune the model. All of that worked pretty much flawlessly thanks to the finetuning notebook.
So now I have a .safetensors model which I can load as usual using the transformers library. So far so good.
I wanted the whole project to run on a raspberry pi with 4gb of ram. I did a test before with the base model and the official Ollama integration which also worked really well and didn't run out of ram (yay!)
So the next step would be to create the ggufs and make a custom model file. The create_gguf.py worked to create the two files for the text model and the projector. But here's where I'm currently stuck: I can create a model file (basically a copy of the moondream:v2 model file that i got with ollama show moondream:v2 --modelfile but with the paths changed to use my ggufs), but when I try to run that I get the following error:
llama runner process has terminated: exit status 0xc0000409
I also noticed that my files are much larger than the ones used by ollama (~888mb for the projector and ~2772mb for the text model vs 910mb and 829mb). I'm guessing that ollama is not using the create_gguf.py file or that there is some custom code for quantization and conversion. But idk, there's a very high chance that I'm just missing something very obvious lol.
So I guess my question is: How can I convert my finetuned safetensors model to the right (small) format and add them as a custom model to Ollama?
Hope you can help and thank you so much in advance!

@LrsChrSch This seems to be a problem with Ollama, multiple people seem to encounter the problem https://github.com/ollama/ollama/issues/4457
For the time being maybe try llama-cpp-python.
Based on their docs (https://llama-cpp-python.readthedocs.io/en/latest/#multi-modal-models)
from llama_cpp.llama_chat_format import MoondreamChatHandler
chat_handler = MoondreamChatHandler(clip_model_path="path/to/mmproj/mmproj.bin")
llm = Llama(
  model_path="./path/to/model/model.gguf",
  chat_handler=chat_handler,
  n_ctx=2048, # n_ctx should be increased to accommodate the image embedding
)
llm.create_chat_completion(
    messages = [
        {"role": "system", "content": "You are an assistant who perfectly describes images."},
        {
            "role": "user",
            "content": [
                {"type" : "text", "text": "What's in this image?"},
                {"type": "image_url", "image_url": {"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg" } }
            ]
        }
    ]
)

Hey there! Thank you so much for your response!
I tried to get it to work using Llama cpp python and it also gave me an error. This one was more descriptive though:
error loading model vocabulary: cannot find tokenizer merges in model file
So there was something wrong with my model and I also figured out what it was. The create-gguf.py asks for a tokenizer input which you can just set to "vikhyatk/moondream2" (which I did when I first tried it). This doesn't give an error during conversion as the tokenizer just gets loaded using the huggingface library. But this apparently also means that it doesn't add merges or special tokens to the gguf. The help within the file correctly tells you to give it the path to the directory, which I overread.
So the solution is to download the moondream repository from huggingface and point the create-gguf.py to the directory with all the files for the tokenizer and to the finetuned .safetensors for the model. The resulting .gguf files load perfectly in both llama cpp python and ollama!
The only thing that's missing now is a way to quantize the text model. I'll look into that today and hopefully I can update and close this "issue" then :)
If you have any advice on that too, it would be greatly appreciated of course

Alright I think I can close this. Quantization is made really easy by using the quantize.exe from the normal llama.cpp repository. This also threw an error before but now it doesn't anymore.
Thanks again @j0yk1ll
without your suggestion I probably wouldn't have found out what was wrong with it :D

@LrsChrSch happy that I could help.
If you got the time I think it would be amazing if you could create a small tutorial with some screenshots detailing the steps in a more visual way. I imagine there are more people out there that have an interest in creating their own quantized version and this would be a great help.

Yeah I can try to do a write-up of the whole process once I'm a little more familiar with how all of this works (and once I have some more time). I think it would be really helpful too because this model can produce really high quality results for single tasks once it is trained on them :)


HHH-12982 - Generify Hibernate#unproxy

https://hibernate.atlassian.net/browse/HHH-12982

@gbadner could you take a look at this one?
I think it's fine but wondering if there could be any weird corner case where people would pass a class that the implementation wouldn't implement.
I don't see any use case where it would make sense to pass the initial object as the proxy class though.

@gbadner @gsmet I also thought of any possible backward compatibility we might break, but I think we should be fine since we already did that before with Session#get which we changed from Object to T as well.

@vladmihalcea, I believe that Session#get was changed in 5.0. We were not concerned about maintaining binary compatibility for APIs moving from 4.2 (used in EAP 6) to 5.0 (used in EAP 7). In 5.x, we need to keep APIs binary compatible (and even 6.0, IIRC), since they will likely continue to be consumed by EAP 7.x.
Another difference is that is that the application provides the Class to Session#get that it expects to be returned. That's not the case with Hibernate#unproxy.
When debugging the test case from HibernateUnproxyTest#testInitializedProxyCanBeUnproxied, I can see that p.child is of type org.hibernate.test.proxy.HibernateUnproxyTest$Child$HibernateProxy$NIR55I68. which extends Child and implements HibernateProxy. It seems a bit strange to cast the return value to this subclass. It can also cause problems like the following:
An application could have:
HibernateProxy child = (HibernateProxy) parent.getChild();
// The following would cause a compiler error
Child unproxiedChildProxy = Hibernate.unproxy( child );
// The following doesn't cause a compiler error; instead ClassCastException is thrown at runtime.
HibernateProxy unproxiedChildProxy = Hibernate.unproxy( childProxy );
My preference would be add a new static method with a parameter for the expected class to be returned:
public static <T> T unproxy(Class<T> clazz, T proxy)

I'll add the new method instead as suggested by @gbadner.

@gbadner @gsmet I pushed the version as suggested by Gail. There's a new method now. I think it's safe to integrate it.

@vladmihalcea, this looks good to me now.


Model loading issue

Thank you very much for your work! Right now, I'm trying to reproduce your code and it's going smoothly for the part of selecting 'time' and getting the results. However,When using the 'inception', 'uid', and 'scda' methods, an error occurred while loading the model: _pickle.UnpicklingError: invalid load key, '<'.

Hi @ttharden,
Could you please provide a minimal reproducible example and indicate the version of Python you are using?
Thank you,
Luis.

**code:**python -m videosum.run --input data/video.mp4 --output data/uid.jpg --nframes 16 --height 1080 --width 1920 --algo uid --time-segmentation 1
**version:**python==3.10 ubuntu==22.04
Terminal running output message：
/home/tkl/anaconda3/envs/videosum310/lib/python3.10/site-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.
warnings.warn(
/home/tkl/anaconda3/envs/videosum310/lib/python3.10/site-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or None for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing weights=None.
warnings.warn(msg)
Traceback (most recent call last):
File "/home/tkl/anaconda3/envs/videosum310/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/home/tkl/anaconda3/envs/videosum310/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/home/tkl/.local/lib/python3.10/site-packages/videosum/run.py", line 190, in
main()
File "/home/tkl/.local/lib/python3.10/site-packages/videosum/run.py", line 151, in main
im = vidsum.summarise(args.input)
File "/home/tkl/.local/lib/python3.10/site-packages/videosum/videosum.py", line 254, in summarise
key_frames = VideoSummariser.ALGOS[self.algo](self, input_path,
File "/home/tkl/.local/lib/python3.10/site-packages/videosum/_methods/uid.py", line 41, in get_key_frames_uid
model = videosum.InceptionFeatureExtractor('vector')
File "/home/tkl/.local/lib/python3.10/site-packages/videosum/uid.py", line 61, in init
self.model = videosum.InceptionV3().to(device)
File "/home/tkl/.local/lib/python3.10/site-packages/videosum/inception.py", line 92, in init
inception = fid_inception_v3()
File "/home/tkl/.local/lib/python3.10/site-packages/videosum/inception.py", line 219, in fid_inception_v3
state_dict = load_state_dict_from_url(FID_WEIGHTS_URL, progress=True)
File "/home/tkl/anaconda3/envs/videosum310/lib/python3.10/site-packages/torch/hub.py", line 750, in load_state_dict_from_url
return torch.load(cached_file, map_location=map_location)
File "/home/tkl/anaconda3/envs/videosum310/lib/python3.10/site-packages/torch/serialization.py", line 815, in load
return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
File "/home/tkl/anaconda3/envs/videosum310/lib/python3.10/site-packages/torch/serialization.py", line 1033, in _legacy_load
magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: invalid load key, '<'.

I apologize for any confusion caused.  Thank you@luiscarlosgph

@luiscarlosgph  Thank you for your work! I have resolved this issue. Due to my network issue, the model file was not downloaded completely. I apologize for the inconvenience caused.

No worries, @ttharden, glad everything works well now for you.


Add MacOS-related extensions to allow-list for missing extensions

VK_EXT_METAL_SURFACE_EXTENSION_NAME
VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME

will be used during a gfxr-capture on MacOS, but should not ignored, if missing, during for a replay.

CI gfxreconstruct build queued with queue ID 202233.

CI gfxreconstruct build # 4285 running.

CI gfxreconstruct build queued with queue ID 202246.

CI gfxreconstruct build # 4286 running.

CI gfxreconstruct build # 4286 passed.

Did you run clang-format? I'm surprised it would accept the table as it is laid out in your changes.

yes strange, but that's coming from CLion's builtin clang-format.

Why would macOS need this but the other WSI extensions wouldn't?  Should we either put all the WSI extensions in here or just leave the macOS ones out and let people provide --remove-unsupported like they have for running a capture from one platform on another WSI in the past?

Why would macOS need this but the other WSI extensions wouldn't? Should we either put all the WSI extensions in here or just leave the macOS ones out and let people provide --remove-unsupported like they have for running a capture from one platform on another WSI in the past?

yes, I agree. we should have here either all WSI-extension (and making usage of --remove-unsupported obsolete for WSI-stuff) or none at all. we also got an option --wsi auto (it does not seem to work though) that 'could' be used to express "I don't care about WSI etc." and would select the 'correct' WSI backend for the platform and also act like --remove-unsupported wrt. WSI-extensions.
guess best is to close here with 'won't do' and phrase the question differently:
should we implement a different (default)-behavior, do we e.g. want to be more tolerant with mismatching WSI/extensions without explicit parameters?


test: TestDeleteOffsetsResponse is brittle and fails periodically

The new TestDeleteOffsetsResponse looks like it can fail periodically due to a timing issue:
% go test -run 'TestDeleteOffsetsResponse' -v -count=10
=== RUN   TestDeleteOffsetsResponse
--- PASS: TestDeleteOffsetsResponse (0.00s)
=== RUN   TestDeleteOffsetsResponse
--- PASS: TestDeleteOffsetsResponse (0.00s)
=== RUN   TestDeleteOffsetsResponse
--- PASS: TestDeleteOffsetsResponse (0.00s)
=== RUN   TestDeleteOffsetsResponse
--- PASS: TestDeleteOffsetsResponse (0.00s)
=== RUN   TestDeleteOffsetsResponse
--- PASS: TestDeleteOffsetsResponse (0.00s)
=== RUN   TestDeleteOffsetsResponse
--- PASS: TestDeleteOffsetsResponse (0.00s)
=== RUN   TestDeleteOffsetsResponse
    request_test.go:96: Encoding no error failed
        got  [0 0 0 0 0 0 0 0 0 1 0 3 98 97 114 0 0 0 2 0 0 0 7 0 0 0 0 0 6 0 0]
        want [0 0 0 0 0 0 0 0 0 1 0 3 98 97 114 0 0 0 2 0 0 0 6 0 0 0 0 0 7 0 0]
--- FAIL: TestDeleteOffsetsResponse (0.00s)
=== RUN   TestDeleteOffsetsResponse
--- PASS: TestDeleteOffsetsResponse (0.00s)
=== RUN   TestDeleteOffsetsResponse
--- PASS: TestDeleteOffsetsResponse (0.00s)
=== RUN   TestDeleteOffsetsResponse
--- PASS: TestDeleteOffsetsResponse (0.00s)
FAIL
exit status 1
FAIL    github.com/Shopify/sarama       0.361s

Needs investigating if we can make it more robust.
cc @faillefer

Ah it's the randomised ordering of the partitions in the response


Multiple documents at the same URI with ConvertingRouterRule

Since the ConvertingRouterRule only checks if the incoming data is supported when choosing which store to write to, it is possible to have 2 different documents with the same URI. If you write an RDF document to /foo and write a binary document to /foo afterwards, both will exist: ony in the sparql store and one in the binary store. Which one you get when doing a GET depends on the order the stores get checked (so will be the sparql store in this case).
This can be solved by first doing a getRepresentation to all stores to see if the resource already exists. This does increase the amount of calls necessary though.

This would probably also require an interface change somehow since the URI with a POST does not reference the resource directly.
Potentially even bigger problem: there is no way to check this when doing a POST with a slug. The store that generates the URI based on the slug has no way of knowing if that URI already exists in the other store.

So what I'm reading actually is that, when having representation-based routing, a simple route-and-delegate isn't enough.
Rather, we need a store on top that performs some management tasks. That would also solve #303.
Simple routing is probably only appropriate when doing path-based routing.

So what I'm reading actually is that, when having representation-based routing, a simple route-and-delegate isn't enough.

Yes. But at this point I'm not sure yet how complex this would be and if we can do it without overlapping with the DataAccessorBasedStore too much.

Simple routing is probably only appropriate when doing path-based routing.

Only when doing simple path-based routing. I think the current regex solution can also run into problems even for simple cases. E.g., if you have regexes matching ^/sparql/, ^/file/ and also ^/$, doing a GET on / is only going to return one of the two (depending on which store that last regex points to). But it is easier to create some safe cases with the regex router rule yes.

But at this point I'm not sure yet how complex this would be and if we can do it without overlapping with the DataAccessorBasedStore too much.

We might want a DataAccessor that implements this; taking either other accessors or stores as args.


Don't load exclusions from personal files when passing a config with a custom name

If passing a configuration with a custom name, like rubocop --config-file .my_custom_project_config.yml, that configuration should act as the project configuration and we want personal configuration files disregarded.
That's actually the only case where find_files_upwards can return an empty list, because when given an existing .rubocop.yml as the starting point, it will at least return that file, and the fallback to personal config files will not be applied.
Well, there's another case where find_files_upwards could return an empty list, which is when giving it a non existent file as the starting point. However, I don't think that ever happens in real life, and in tests it was only happening once, and due to a typo I believe.
So, we can completely remove the explicit fallback to look for exclusions in personal configuration files.

[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Run bundle exec rake default. It executes all tests and RuboCop for itself, and generates the documentation.

This is a follow up to #8176. @jonas054 what do you think?

If passing a configuration with a custom name, like rubocop --config-file .my_custom_project_config.yml, that configuration should act as the project configuration and we want personal configuration files disregarded.

What do you call personal configuration? Some examples might help understand better the problem you're trying so solve.

Hi @bbatsov, sorry for not being clear.
When I talk about personal configuration files, I mean configuration files in either $HOME or $XDG_CONFIG folders.
Currently these files are not very useful IMO because they get loaded in situations where you don't want them loaded. See for example https://github.com/rubocop-hq/rubocop/issues/7433. In my opinion, they should get only loaded as a fallback when the project has no specific rubocop configuration, or no explicit configuration is being passed to the CLI.
I'm submitting a series of PRs to fix these issues.

In #8176 I fix the issue when there's an explicit project configuration and neither $HOME, or $XDG_CONFIG are parent folders of the current project.
In this PR I fix the issue when there's an explicit configuration given on the command line.
In a followup PR, I'd like to fix the problem in general but I'm trying small changes first that can be easily justified.

A practical example of this specific fix would be when trying to add some initial rubocop configuration to a project. You might want to first try different "template" configurations with different settings, and the --config-file option can help there. In that case, I don't think you don't want your personal ~/.rubocop.yml to influence the configuration you're testing.

By the way, if we can find a better terminology, I'm happy to change this and the already merged changelog entries. Maybe "user configuration" is better since it matches more closely the terminology used by the code. I've also seen "global configuration" used.

Currently these files are not very useful IMO because they get loaded in situations where you don't want them loaded. See for example #7433. In my opinion, they should get only loaded as a fallback when the project has no specific rubocop configuration, or no explicit configuration is being passed to the CLI.

Agreed. I had almost forgotten about them at this point.

I had almost forgotten about them at this point.

Me too! I tried using them at some point but eventually gave up, because they kept getting in the middle. Then I saw #7433 and realized other people were trying to use them too, so I decided to give it another try.

I rebased this PR and moved the changelog entry in response to the new release :smiley:

I think you should also update the docs to reflect this.

@bbatsov I added a note about the --config flag which I believe was undocumented. (Also changed my previous comments in this PR since they were mentioning --config-file instead, which doesn't exist :sweat_smile:).
Regarding the behaviour of looking up the highest config file to look for exclusions, there's this: https://github.com/rubocop-hq/rubocop/blob/master/docs/modules/ROOT/pages/configuration.adoc#include-and-exclude-are-relative-to-their-directory.
In my opinion, the problem with that docs is that they don't explain why this is done differently from everything else. I'm currently investigating the why, since I think there's no good reason for this and all these code could eventually go. But until then I'm not sure I can improve those docs. From the current wording I don't think it's implied that user configuration files should be searched, so I'd say this is just a bug fix that doesn't need documentation.

Fair enough! Thanks for tackling this!

No problem! I'll follow up with more stuff!


Change ArgGroup::add_all from accepting a Vec<&str> to &[&str]

Using a Vec<&str> is a legacy issue that never got changed, so it's somewhat of a legacy bug. Changing to a &[&str] will be an extremely minor "breaking" change, and I believe I've only come across a single repo which it will affect.
The fix will be to change code from add_all(vec!["arg1", "arg2"]) -> add_all(&["arg1", "arg2"])
Even so, I want to wait until 1.3 so as not to mess with people's SemVer Cargo.toml entries.

I can do it in my fork and we'll merge when 1.3 will be ready to release

:+1:
You'll need to change a few lines in the examples and tests as well which were using the older style.


Add SUPPORT_SEEK for DLNA DMR devices + now (better) providing media_image_url for DLNA DMR devices

Description:
Add SEEK mode for to DLNA DMR devices and upgrade to async_upnp_client==0.13.2 to better support media_image_url
Related issue (if applicable): fixes #18040
Pull request in home-assistant.io with documentation (if applicable): not applicable
Example entry for configuration.yaml (if applicable):

Checklist:

[x] The code change is tested and works locally.
[x] Local tests pass with tox. Your PR cannot be merged unless tests pass

If user exposed functionality or configuration variables are added/changed:

[x] Documentation added/updated in home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[x] New dependencies have been added to the REQUIREMENTS variable (example).
[x] New dependencies are only imported inside functions that use them (example).
[x] New or updated dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

If the code does not interact with devices:

[x] Tests have been added to verify that the new code works.

Code-wise this looks pretty straightforward, however, I'm not getting images displayed for my sonoses (works with media_player.sonos though). The entity_picture gets filled, but it returns no image but just ERR_INVALID_RESPONSE.

@rytilahti To be certain, does the method/property DlnaDmrDevice.media_image_url return ERR_INVALID_RESPONSE? And did it work before?
Can you try, from the environment where you run Home Assistant run this:
$ upnp-client subscribe <url-to-device-description-xml> \*

And start playing media on your Sonos?
This starts listen for UPnP events and shows them. Specifically, I'm looking for some DIDL-Lite/escaped XML.

I don't think it used to work, but I suppose the property didn't exist earlier (although it's been some time since I had the platform enabled). The error is coming when trying to access the URL in that property manually with the browser. Here's a one-time unescaped value of CurrentTrackMetaData:
'<DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:r="urn:schemas-rinconnetworks-com:me
tadata-1-0/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"><item id="-1" parentID="-1" restricted="true"><res protocolInfo="sonos.com-http:*:app
lication/x-mpegURL:*" duration="0:06:26">x-sonosapi-hls-static:catalog%2ftracks%2fB006N9P7BY%2f%3fplaylistAsin%3dB07DW9FC9B%26playlistType%3dprimePlayl
ist?sid=201&flags=0&sn=1</res><r:streamContent></r:streamContent><r:radioShowMd></r:radioShowMd><upnp:albumArtURI>/getaa?s=1&u=x-sonosapi-h
ls-static%3acatalog%252ftracks%252fB006N9P7BY%252f%253fplaylistAsin%253dB07DW9FC9B%2526playlistType%253dprimePlaylist%3fsid%3d201%26flags%3d0%26sn%3d1<
/upnp:albumArtURI><dc:title>Strange</dc:title><upnp:class>object.item.audioItem.musicTrack</upnp:class><dc:creator>Hidden Orchestra</dc:creator><upnp:a
lbum>Chillout-Lounge</upnp:album></item></DIDL-Lite>"/><r:NextTrackURI val="x-sonosapi-hls-static:catalog%2ftracks%2fB0042EUT24%2f%3fplaylistAsin%3dB07
DW9FC9B%26playlistType%3dprimePlaylist?sid=201&flags=0&sn=1'

So it's returning a relative URI for it. Here's what soco does: https://github.com/SoCo/SoCo/blob/master/soco/music_library.py#L59 .

Fixed in async_upnp_client

With additional fix by @rytilahti , to be released later on.

Fixes are in #18377.


Spotify Login - Dialog to Switch Accounts isn't showing up

I'm making the following function call to authenticate the user and the dialog to switch Spotify accounts doesn't show up. I'm supporting sessions using
require('express-session'),
app.use(session({ secret: 'keyboard cat' }));
app.use(passport.session());
and I log the user out with this function call
app.get('/logout', function(req, res){
req.session.destroy(function (err) {
res.redirect('/'); //Inside a callback… bulletproof!
});
});
Here is my request to authenticate the user, where I want the dialog to switch accounts to show up, but it doesn't.
app.get('/auth/spotify',
passport.authenticate('spotify', {scope: ['user-read-email', 'user-read-private', 'user-read-private', 'playlist-read', 'playlist-read-private']}),
function(req, res){
});
passport.use(new SpotifyStrategy({
clientID: appKey,
clientSecret: appSecret,
show_dialog: true,
callbackURL: 'http://localhost:3000/callback',
},
function(accessToken, refreshToken, profile, done) {
access = accessToken;
var bad = {
"accessToken": accessToken,
"refreshToken": refreshToken,
"profile": profile
};
process.nextTick(function () {
return done(null, profile);
});
}));

I noticed that it does work whenever I close the browser, meaning I was using cookie sessions and those were preventing the login dialog from appearing.

@scotty914 Even though you solved it, it's true that at the moment there is no way to set the show_dialog parameter in the SpotifyStrategy. I'm reopening this issue to address it.


Unable to Start micro Under PuTTY Set For 256-Color Mode

Description of the problem or steps to reproduce

Set PuTTY to use putty-256color as its Terminal-type string, under Connection > Data (in Terminal Details)
Connect to a system via SSH with PuTTY,
Run micro with or without any file path.

Specifications
Commit hash: 1856891 (1.4.1)
OS: Ubuntu 18.04 (under WSL or as the main OS)
Terminal: PuTTY, using putty-256color as its Terminal-type string.

What output do you get when trying to start micro? I can't reproduce the issue.

I just got my longstanding terminal problem resolved by using the latest nightly build 1.4.2-dev 29. You could try that.

Sorry, it's returning:
terminal entry not found
Fatal: Micro could not initialize a screen.

18 months later I have this same issue with the latest 2.07 installed tonight on a headless server I use through Putty.

Maybe Putty doesn't report the TERM correctly? I have found KiTTY works better (it's a fork of Putty). Also, you can try setting the option xterm to true. This will make micro believe that your terminal is "normal" despite what it might be reporting. You can run micro -xterm true, and then set the option globally once micro is running.

In KiTTY shift+arrow selection doesnt highlight text, even when

micro -xterm true
putty-256color
xterm

KiTTY works great with micro.
Could we make micro -xterm true  default or auto detect?
It  makes font more readable.
Home directory config file is cumbersome, I have to set it up for all users.


Setting mode in conf.json is ignored

Are you submitting a bug report or a feature request?
Bug report.
What is the current behavior?
Changing the mode from page-only to page-same-domain as described in the manual wont change the search behavior.
{
"use": "puppeteer",
"headless": true,
"script": "./userFns.js",
"mode": "page-same-domain",
"depth": 5,
"seeds": [
"...."
],
"warc": {
"naming": "url",
"append": "true"
},
"connect": {
"launch": true,
"host": "localhost",
"port": 9222
},
"crawlControl": {
"globalWait": 60000,
"inflightIdle": 1000,
"numInflight": 2,
"navWait": 8000
}
}
What is the expected behavior?
The search mode should change.
How to fix.
If I write the search mode under crawlControl it does change.
{
"use": "puppeteer",
"headless": true,
"script": "./userFns.js",
"seeds": [
"....."
],
"warc": {
"naming": "url",
"append": "true"
},
"connect": {
"launch": true,
"host": "localhost",
"port": 9222
},
"crawlControl": {
"globalWait": 60000,
"inflightIdle": 1000,
"numInflight": 2,
"navWait": 8000,
"mode": "page-same-domain",
"depth": 5
}
}
In the file config.yml the mode is also listed under crawlControl but its not in the manual.

This seems to be a documentation error rather than a bug.


Vy goes to line under instead of beginning of line

This appears fixed?  0.200.0 and 0.48.0 work as described.

As stated in the README, this package is no longer maintained and is deprecated. We recommend that people use the vim-mode-plus package instead. Because of this, we are archiving this repository and closing all issues and pull requests. Thanks very much for your support and contributions!


Initial MLJ Interface

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@9cab2d6). Click here to learn what that means.
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main       #1   +/-   ##
=======================================
  Coverage        ?   76.03%
=======================================
  Files           ?        6
  Lines           ?      121
  Branches        ?        0
=======================================
  Hits            ?       92
  Misses          ?       29
  Partials        ?        0

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Fixing minor style/linting issues last minute

Checklist

[ ] Your branch has no merge conflicts with master
[ ] All related commits are squashed together

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 91.931%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
1390

Relevant Lines:
1512

💛  - Coveralls


Environmental Variables

Config options are passed in as environmental variables like -e "cluster.name=mynewclustername" but this causes issues with Kubernetes and many other places as they don't accept environmental variables with . in the name.  This should be changed to match standards and use _ instead.
As far as I can tell the only thing that accepts environmental variables with . in the name is docker.

Thank you for the feedback!
We will be consolidating the way to pass config options via docker env vars so that it's consistent across all our docker images, so stay tuned.
FYI if you haven't seen this issue seems that k8s may get the same functionality as docker and as per the POSIX spec be tolerant for those.

This is now supported in Kubernetes 1.8
Should we close this issue?

Agreed @joan38 . Kubernetes 1.8 supports this and if stuck at an earlier version, you can use configuration option D. in the docs.

Agreed.  Thanks.


Feature/secure ingress cognito

Issue #, if available:
Description of changes:
Amazon EKS customers that use Application Load Balancer (ALB) can use Amazon Cognito to handle user registration and authentication without writing code to handle routine tasks such as user sign-up, sign-in, sign-out, and so on. This is because Application Load Balancer has built-in support for user authentication. In addition to Amazon Cognito, ALB natively integrates with any OpenID Connect protocol compliant identity provider (IdP), providing secure authentication and a single sign-on experience across your applications.
In this pattern, we will be demonstrating the process to setup Kubecost on Amazon EKS and authentication users to Kubecost on Amazon EKS using CDK EKS Blueprints patterns.  The Kubecost dashboard does not provide native support for authentication. It requires an external authentication mechanism. This pattern will help customers secure their application's ingress using Amazon Cognito authentication.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

thanks @shapirov103 !! updated all the review comments and pushed the PR.

removed ts-ignore since lint throwing errors and updated the code.

updated the code and read me file based on previous comments and pushed.

@elamaran11 please review your comments and merge once you approve this.


Try to onboard package(s) of FAS user salimma for Fedora downstream automation

Followup of #2227

[ ] check whether the maintainer already uses Packit, if yes, contact them and ask about the feedback, offer help with setting up Packit for their other packages

If no:

[x] contact the maintainer, introduce Packit downstream automation and ask if you could create a PR with Packit config for one of their packages (you can ask whether they have access to the upstream repos or would be interested in having the config only in dist-git)

use the mail template (adjust it if needed)

After an agreement:

[ ] check this spreadsheet for the list of packages and choose one (ideally with pending release to rebase, having Git upstream, easy to configure),

the spreadsheet should be updated accordingly, make sure that the package was not onboarded already (there is overlap of the packages since they can have multiple maintainers)

[ ] create a Packit configuration setting up the Fedora downstream automation (for syncing start with one branch to not spam)
[ ] optionally test the syncing locally (see comment)
[ ] create a PR, try to do a test run (/packit pull-from-upstream --with-pr-config) and communicate further with the maintainer the follow-up steps (e.g. create issues if some functionality is missing, setup on more of their packages)

Part of #2204 epic

I sent an email to Michel today.

Michel asked to create PR for python-damo. Done:
https://src.fedoraproject.org/rpms/python-damo/pull-request/1#

Michal retrigger packit and Packit opened a PR for him. Merged.
https://src.fedoraproject.org/rpms/python-damo/c/68c22eb01ce4ccc64aeba5e56e7be133b5fd73b1?branch=rawhide


remove platform abstraction layer

Took an attempt at #28

removed win32 platform support
renamed blah_platform_sdl2.cpp to blah_platform.cpp

All tests passing but want to make sure it actually works. Tested working on my Windows 10 computer and my Mac M1. Don't have a Linux computer to test on, so would really appreciate if anybody could try build + running the branch!

Worked for me on Linux in my personal projects! I like what you've done here so far. I think long-term the platform source file could get completely removed, and instead rely on SDL inside things like blah_app.cpp and so on, just to cut out the additional files. I might try messing around with that in the future!