Benchmarking against other proxies

A benchmark against other proxies (Umbrella, Tyk...) is required before launch along with a blogpost probably.

In regard to benchmarking, I think it would make sense to have a distributed multi-client benchmarking tool that we can start also for benchmarking the performance between critical code changes, something like http://www.process-one.net/en/tsung/

Distributed: the load can be distributed on a cluster of client machines (http://www.process-one.net/docs/tsung/user_manual.pdf)

There's a SAAS for that.

https://www.blitz.io/
http://blazemeter.com/
https://loader.io/
http://loadimpact.com/

SAAS services could be an option, but they are very expensive with many concurrent requests so we need to evaluate that.

I'm not sure why we need a "distributed multi-client benchmarking tool". Why can't we just run something like siege on a large ec2 instance and use a lot of threads? We only have to benchmark one instance of kong. As long as the instance used to run siege has more threads than the one running kong I don't see why that wouldn't be fine.

Benchmarking the interaction between Kong and Cassandra requires lots of incoming requests.
siege will work for benchmarking a single nginx server on one machine, but it wouldn't work when we want to simulate a bigger load on Cassandra that requires multiple nginx servers.
We can start with siege (and an easy way to launch it and retrieve benchmarking information), but keep in mind that for deeper benchmarking we would need more than one client (and more than one nginx server to simulate lots of incoming connections on Cassandra).

Besides Tsung there is also http://locust.io

Sounds good, can we set something up @mschurenko @ataner ?

@mschurenko @ataner Can we get Kong running on AWS? This would serve for both benchmarking and learning more about how different settings (OS, nginx, kong, cassandra) and architectures (cassandra on the same box vs external vs clusters) effect performance.
When we have that we need to benchmark the following scenarios:

Kong vs Nginx vs Tyk proxies
Kong Proxy vs Direct API

So that means we also need to set up an AWS instance for raw nginx and tyk using the same instance type and applicable configurations.

+1 we need to know where we're at now. Also Umbrella
We should talk about setups (docker and cassandra)

So are those finished? Published? Please update the issue @SGrondin

I'm still waiting on your Tyk instructions to remove all rate limiting. I couldn't figure it out whatsoever. By default it has some rate limiting and the docs are unclear about wheter it's even possible.

My Tyk instructions? For 2 weeks? I don't have such thing lol. i never removed the rate limiting from Tyk.

@thibaultcha any updates? what's the results of kong vs tyk?

updates on this? very crucial for decision making


BlockBasedChunkMeta wrong exception type

Code Location:
https://github.com/CivMC/CivModCore/blob/a71661ef833e938969c975c174e1bed4c28b00a5/paper/src/main/java/vg/civcraft/mc/civmodcore/world/locations/chunkmeta/block/BlockBasedChunkMeta.java#L50
https://github.com/CivMC/CivModCore/blob/a71661ef833e938969c975c174e1bed4c28b00a5/paper/src/main/java/vg/civcraft/mc/civmodcore/world/locations/chunkmeta/block/BlockBasedChunkMeta.java#L82
https://github.com/CivMC/CivModCore/blob/a71661ef833e938969c975c174e1bed4c28b00a5/paper/src/main/java/vg/civcraft/mc/civmodcore/world/locations/chunkmeta/block/BlockBasedChunkMeta.java#L194
https://github.com/CivMC/CivModCore/blob/a71661ef833e938969c975c174e1bed4c28b00a5/paper/src/main/java/vg/civcraft/mc/civmodcore/world/locations/chunkmeta/block/BlockBasedChunkMeta.java#L228

Problem:
IllegalArgumentException is not the proper exception to throw on nullable references.

Solution:
Use Objects.requireNonNull where appropriate.

I'm closing this out as something that we won't fix. It could be revisited in the future, but it's not within our capacity to work on right now.


Illegal instruction core dumped error

HI
I have recently started using scrublet. Thanks for making it availabel for scientific community. Scrublet worked fine for me for some of the snRNA-seq samples but recently it started giving me error. Even I am unable to run PBMC example on your github. scrub_doublets code run till Embedding transcriptome using PCA step but gives core dumped at Calculating doublet scores. I am not an expert in python but tried increased RAM and ulimit based on google serch for core dumped error. Nothing helped.
Your help will be greatly appreciated
Thanks
Priyanka
doublet_scores, predicted_doublets = scrub.scrub_doublets(min_counts=2,
...                                                           min_cells=3,
...                                                           min_gene_variability_pctl=85,
...                                                           n_prin_comps=30)
Preprocessing...
Simulating doublets...
Embedding transcriptomes using PCA...
Calculating doublet scores...
Illegal instruction (core dumped)

@PDhingra2016 this problem is most surely not a problem of scrublet but of the used Annoy library. See e.g. https://github.com/spotify/annoy/issues/506, https://github.com/spotify/annoy/issues/513 and https://github.com/openpipelines-bio/openpipeline/issues/265. I had to back as far as annoy 1.15.2 to run the example code w/o crash on certain hardware platforms. YMMV
@karlacat1 I've already answered you inhouse 😄


Create a Cross Compiler for a Bare Bones Freestanding Program (Bootloader/OS)

Issue description
Hey @Ericson2314 I've been following your work on lib.systems, and I looked up the http://wiki.osdev.org/GCC_Cross-Compiler tutorial, and I found that the basic target of i686-elf or i686-pc-none-elf doesn't seem supported by NixOS at the moment.
The error message is simply: error: Unknown ABI: elf.
The main issue here is that lib.systems.elaborate cannot parse the bare bones target. And from looking at the nix expressions for gcc and binutils, it appears that bare bones target hasn't been considered.
What are your thoughts on this?

Ah that osdev tutorial. Is elf really an ABI? Or is it just something just something thrown in the name? It's a bit confusing that sometimes those names are actually parsed, and sometimes they're just black-box names. Regardless, elf can be added in lib.systems.elaborate if we want.
stdenvNoCC along with gccCrossStageStatic can get you a wrapped toolchain without libc (CC @cleverca22), but I'd like to see something better as per https://github.com/NixOS/nixpkgs/issues/26004

Also, not sure if you saw the comment in lib/systems/parse.nix, but I try to make the parsing follow http://llvm.org/doxygen/Triple_8cpp_source.html somewhat. I guess there is an elf there, interesting.

@Ericson2314 I'm not sure if elf is really an ABI. But since you're using the LLVM parsing system, I want to point out that the equivalent target specification for i686-elf on gcc for llvm is in fact i686-pc-none-elf. Where did I get this? Here:

--target=i686-pc-none-elf -march=i686
http://wiki.osdev.org/LLVM_Cross-Compiler#Usage

So if LLVM supports such a target flag, then perhaps /lib/systems/parse.nix should as well?
I did have a skim over the llvm source, but I'm not familiar with LLVM's codebase, so I don't have a comment there. But where did you mean when you said "I guess there is an elf there, interesting."?
The other issue is that there is no --target configure flag set for binutils expression atm at master. While the osdev tutorial says that there needs a target flag setting. Also you even have a comment about this: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/misc/binutils/default.nix#L93-L99 I'm not sure if this is relevant as well.
One more question. How does crossSystem translate to buildPlatform, hostPlatform and targetPlatform? Because I'm running on x86_64-unknown-linux-gnu. And so I expect that buildPlatform and hostPlatform to be both x86_64-unknown-linux-gnu, because I am building the compiler and running the compiler on the same system, but I'm targeting code to a freestanding i686-elf.

@Ericson2314 is there some documentation regarding the usage of stdenvNoCC and gccCrossStageStatic?

But where did you mean when you said "I guess there is an elf there, interesting."?

http://llvm.org/doxygen/classllvm_1_1Triple.html#a83e907e55fa50e093caa96a0aff96201a456b64e26b8bcdbd8294689615d8a055 is the enum variant or whatever, parseFormat is the function in the source I linked originally. The use of this startsWith and endsWith implies to me that LLVM would recognize a name like i686-pc-linux-gnu-elf, and so i686-pc-none-elf is actually skipping the 4th component.

--target configure flag set for binutils

https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/misc/binutils/default.nix#L94 means we do pass it when it differs from --host. That comment is saying I'd like to always pass it, but that means always having prefixed binaries---a good idea but a big breaking change I rather save for 18.03.

How does crossSystem translate to buildPlatform, hostPlatform and targetPlatform?

See https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/cross/default.nix. This adds two additional bootstrapping stages, The first of which changes just the target platform, and the second of which also changes the host platform.

If you have any suggestions on how I could make the docs clearer, I'd love to hear them!

Examples for common use cases would be good. Kind of like. If I want to build on A, run on B, targeting C, how would I write a shell.nix/default.nix to do such a thing. Cross system specifications basically. Currently I only learned about the format of crossSystem when looking into lib/systems/default.nix.
I would like the simple specification of i686-pc-none-elf to work. Is the main issue right now just the parsing of this specification? If I were to look into fixing this, would there be other incompatibilities such as the current way gcc/binutils.. etc are specified that would prevent me from creating a freestanding executable?

Examples for common use cases would be good. Kind of like. If I want to build on A, run on B, targeting C, how would I write a shell.nix/default.nix to do such a thing.

Ok, I'll keep that in mind.

Cross system specifications basically. Currently I only learned about the format of crossSystem when looking into lib/systems/default.nix.

Did you see lib/systems/examples.nix? I think that's in the manual, but it could be emphasized more in conjunction with the above.

Is the main issue right now just the parsing of this specification?

Well, the parser needs to understand it, not merely accept it. Based on the LLVM, understanding would be adding a new field in thinggy.parsed.

Is there no use case for building on A, running on B and targeting C?

Correct. It would be cool if individual packages worked in that case, but I don't see why such a bootstrapping stage would be necessary. It might seem like it would save work, but as it stands, compilers like gcc are built with their own runtime for emitted programs, so a A->B->C gcc would require an A->A->C gcc anyways. What's' the point of B when one can just use that?

cross binutils worked great, cross gcc failed

This is A->A->B, not A->B->B? If we need to do it for any set of platforms, we should probably just unset CPP across the board for gcc.

I did finally build the gcc cross compiler but outside of the nixpkgs infrastructure. This required using sources of its dependencies gmp mpfr libmpc that was brought in from the the ./contrib/download_prerequisites script inside gcc source. I was hoping to be able to just use the nixpkgs provided gmp, mpfr, and libmpc, however it appears I was missing some flags that is meant to go to the configure script, either that or I don't understand nix-build vs nix-shell well enough (for example, what would $out be used inside nix-shell!?) My experiments are happening here: https://github.com/MatrixAI/Kernel-Experiments

sorry by "thingy" I meant any of buildPlatform hostPlatform targetPlatform localSystem or crossSystem, as they all share the same structure.

#26805 has been merged the documentation is very thin and seems to focus on nix-build. Can some one on help me understand how to create a default.nix which results in a nix-shell that contains i686-elf-{gcc,ldd,...}? Cheers, Jon

Yeah https://github.com/NixOS/nixpkgs/pull/48286/commits/52dbd3380e0e9328d69c4abaae2d28b3e7e76bce should fix this. Let me know if there are issues using it.

We don't precompile the i686-pc-elf target yet though. You can add it by adding it to examples.nix.


support for secure_gateway

I'm fairly sure we have something similar w/ whitelist, but we should explicitly support this.

rippled actually allows ips in secure_gateway to pass a different ip in the header, which then rippled uses for rate limiting. The use case is something like xrplcluster.com redirects to s2, and s2 needs to rate limit not xrplcluster.com, but the original client that connected to xrplcluster.com

I think the software should just accept a field in any request called client_ip, and if the request is coming from an ip on the whitelist (list of ips specified in the config), charge the specified ip. Otherwise, ignore it.

... Isn't this covered by:
    "dos_guard":
    {
        "whitelist":["<IP_ADDRESS>"]
    },

.... then to offload rate limiting to a reverse proxy?

Isn't that what the dos_guard (whitelist) + rate limiting on the reverse proxy could do?
    "dos_guard":
    {
        "whitelist":["<IP_ADDRESS>"]
    },

.... then to offload rate limiting to a reverse proxy?

Mostly. There's just the part where rippled allows an IP listed as a secure gateway to pass a different ip in the header, and rippled rate limits that ip instead. Clio doesn't support the header part.

With resource based 'billing' not mattering as much when things are served from a backend where things should be stored efficiently and pre-computed, I think it makes sense to leave rate limiting fully up to a reverse proxy: that would also allow for much more fine grained rate limiting. Keeping Clio simple/light indeed.

Looks like the general agreement here is not to implement it. Closing for now - reopen if needed.


[Docs] Simplify Example: Loading Stripe.js asynchronously

This targets the Stripe.js script tag using document.querySelector('script[src="https://js.stripe.com/v3/]"'), instead of adding an id to the tag.
I think this is preferable because it is more precise (and possibly more secure?). It also avoids adding an id to the global namespace.
A downside of this could be that when updating the script (eg v3 -> v4) one would have to update the URL in multiple places.

Been open for a while, will close this.


transformItems function has issue with the key name "type"

🐛 Bug description
The transformItems function fails silently when using the key type.  It also appears to prevent any other transforms from happening.
🔍 Bug reproduction
Steps to reproduce the behavior:

Set up the transformItems function as below:

transformItems(items) {
  return items.map(item => ({
    ...item,
    type: item.name.toUpperCase(),
  }));
}

or
transformItems(items) {
  return items.map(item => ({
    ...item,
    type: "Custom Type",
  }));
}

Create a template using hit.type as a value.
In the screenshot below I used the search phrase "District of Columbia Imposes Significant Restrictions on the Hospitality". If you need more results you can use "Background check requirements" as a search term. I've linked a sandbox for testing below.

My workaround was to change the key type to custom_content_type_key both in the transformItems function and in the result template.

Live reproduction:
https://codesandbox.io/s/elated-banach-02mqd?file=/src/app.js
💭 Expected behavior

That using  type as a key in tranformItems would either transform the item or fail with an error.
🖥 Screenshots

The screenshot above is with the type parameter replaced with custom_content_type_key.

The screenshot above uses the type parameter. Notice the News & Analysis label (type) is missing from the left of the title. Also the date is missing to the left of the description.
Environment

OS: macOS
Browser: Chrome
Version: 92.0.4515.131

Additional context
Note:
I'm using a Drupal module the passes along the content type of a record with the key type.

Hi there, thanks for reaching out.
I've tried your code example and I can't get the behaviour you're describing. https://codesandbox.io/s/zen-yonath-xtouu?file=/src/app.js
I've looked at the codesandbox you provided. I see the issue and for me, it's not quite what you've described.
It's related to the fact the new value of type is based on its previous value (see my screenshot).
This is because transformItems writes to the state and can receive already transformed items (this is a known problem tracked by https://github.com/algolia/instantsearch.js/issues/4819).
From what I see on your codesandbox, it's not failing silently, it's just that the templating engine (Hogan) can manage undefined values (by showing nothing).
The workaround you have is the one I would go for in the meantime.

Closing this as a duplicate of #4819

Thanks I didn't recognize that.


[WIP] :add jest

closes #2

In my current implementation, it works on local, but for some unknown reason, it failed on CI.

CI should pass now 🤞


As a grid operator I want to be able to change the capacity details of a metering point

Benefit hypothesis
As a grid company
We want to be able to update the  capacity details of a metering point
So that we can ensure that the data is always up to date
Description
It must be possible for a grid company to update metering point master data after a metering point has been created. So once a metering point has been created it should be possible immediately after to update metering point master data. The things in scope for this story is the request from the grid company, validation of the message and accept/reject the request. The information to current and future balance supplier is treated in a separate story.
This story enables the grid company to update the  capacity details for a metering point
Acceptance criteria

[ ] It must be possible for a grid company to send in a request for update metering point master data with business reason update metering point master data

[ ] If the request is rejected an reject message is generated and sent to the grid company.

[ ] If the request is approved an accept message is generated and sent to the grid company.

DoD

[ ] All tasks have been completed
[ ] All acceptance criteria have been completed
[ ] Unit test performed
[ ] Integration test performed
[ ] Tested
[ ] Accepted by business
[ ] Solution is deployed to test environment

Is solved in #299.


Improve the way variants are rendered and selected

It might be worth restricting variants to the following:

Light (Default)
Dark
Interactive

And then have buttons to switch between light and dark, then a separate one to enable interactivity through Alpine JS.
This would mean moving the variants that don't match these criteria to new components... I'm not against that.


Peer-to-peer code review (12/11/2021)

Your project is great! I can't find anything to suggest. Nice job 👏 👏 👏
✅  Your code is clean
✅  Perfect documentation on README
✅  Amazing styling

@IbrohimRasulov 👋 thank you for your kind feedback.


New case design

I am interested in the design of a new, smaller case.
Some notes:

goal is to replace the GPS hat with a USB GPS reciever (i.e., the coaxial cable hole on top needs to be USB sized).. removing this hat will also allow a real RTC to be mounted, and for all the other wiring to use jumper cables directly on the RPi GPIO pins.
remove coral holes on the case - mounts and usb-c hole... (coral can be mounted on a baseplate)
remove trigger hole
i really like the peg connection for the tent, and the camera setup, no need to change that.
I like the handles (and i even like the specific handles we have), but i woudl be fine with just one, or handle(s) on other sides, or smaller handles, etc..
The 7 inch touchscreen is big, but it is nice, works super well, is easy to setup, and is made by RPi (which makes me think it might have a longer production life). we could find a smaller screen, but it would be nice to work with this size if at all possible...
The Polycase WQ series, with the hinges are very nice. Would WQ-48 or WQ-50 work? I am also ok if we move to a case w/o hinges, like a WC or WP... (i want to stick with polycase b/c of the CNCing service.

The WQ-50 case is what I have already designed and measured. If I remember correctly this is the smallest case I could find that fits everything.

If you remove the handles, can it get smaller (ie, a WP case, which has more size options)?

i guess for the sake of latches, the WQ case is the best...

Note: 48 is 2mm to small for the screen, but could be a future option with a different screen size

This issue is done, needs to be closed once stp/step files are sent off and approved


Unknown error Files

Description
Hi
Once I asked to save a file in Word in a Cloud drive (OneDrive personal), a messagge appeared of an unexpected error.  There is no more description on it.
Steps To Reproduce

Write a document in Word
Save in a OneDrive folder
The message appears

Expected behavior
No message error
Files Version
<IP_ADDRESS>
Windows Version
Windows 11 Home 21h2
Relevant Assets/Logs
?

You will need to upload the logs files directly to github. You can get them in files settings > about > open log folder (the two ".log" files).


fix: Empty links in Contentful News

In the last squidex-contentful migration, the news with id 77d9e32d-ce79-492b-8a9e-7bf4e6b3fe0b (https://github.com/yldio/asap-hub/actions/runs/4354930475/jobs/7612848718#step:6:660) was not published with an error of invalid url

I saw in Squidex that if I type something in link and then erase it, link value becomes "" and this empty string is not valid.

So this PR makes link to be null when it is an empty string in squidex

It seems like the better fix here would be to modify the validation regex to accept an empty string.
The pattern you describe of someone removing a value from the text input field in the UI seems like something that should be able to happen without an error.


Using raw mouse event coordinates for calculating positions

fixes #30
Removing the subtraction of containerRef.getParentBoundingClientRect().left and containerRef.getParentBoundingClientRect().top when calculating coordinates solved #30 for us and seems to support more use-cases than previously.
Perhaps I don't completely understand the purpose of subtracting the containerRef's coordinates, however, I've run the tests which all passes and created a example codesandbox with a similar dom structure as in the linked issue.
https://codesandbox.io/s/small-monad-4opz3s?file=/src/App.tsx
Let me know if you have any feedback.

Thanks for the PR! Unfortunately I see that rectangle position is not correct when I scroll down the page

Thanks for reviewing and catching that.
We got the scroll working with this change. I'll take another look at this and let you know what I find.

@dsod any updates here?

@SimonPlace can you update this?

I'm excited for this. Any timescales for getting it in?

The issue turned out to be due to initial scroll position not being accounted for when calculating the selectable elements coordinates (which was only done once on first render, according to the examples). Simply adding the scroll offset to the calculation solved it:
Array.from(elementsContainerRef.current.children).forEach((item) => {
  const { left, top, width, height } = item.getBoundingClientRect();
  selectableItems.current.push({
    left: left + window.scrollX,
    top: top + window.scrollY,
    width,
    height,
  });
});

For me, this was about where the box is drawn. It was consistently drawn ~170px above where my mouse is even though there is no page scroll.
I moved <DragSelection /> a few elements up the DOM tree to solve it.


sparse textures (when applied to a quad) are fragmented when they exceed 1x1 tile size.

Does anyone else see this in the example?? i changed the FOV so i could see the small rectangles zoomed in, and noticed that the texture looks incorrectly applied to the quad. I verified this in my own code. I'm on ubuntu so maybe it is a linux issue.

I just verified the exact same behavior from 331 linux driver and 346 linux driver, on an GT 750M and a K5000

Found the issue, Before glTexSubImage is called, one must commit the texture storage. I can try a PR but if the example code doesnt handle physical texture w/h vs content w/h (to match the dimensions of the texture with the dimensions of the tiles) then i might have to wait till i fullt fix my own renderer.

Thanks for catching this. I'll fix it over the weekend.

No problem! thanks for making this code public! it's super helpful.

I just looked at the apitest code again and found that commit IS actually called right before the subimage call, not sure how i missed that. Still need to verify that the width and height is correct though. Maybe just reviewing the steps and then closing this if you find nothing wrong is the way to go.


Miscellaneous repairs

Fixed some of setup.py for the message defs
Also cleaned up the README a tad
Also modified constants in parser.py to be more idomatic.

+1


Shortcut key combination with shift+option key is not working.

Hi,
I am using VS code Version 1.10.2 (1.10.2). Whenever I am trying to use shortcut key in combination with shift+option+F key that's not working instead leaving a special character " ̰  " on screen.

VSCode Version: 1.10.2 (1.10.2)
OS Version: macOS Sierra v10.12.4 (16E195)

Steps to Reproduce:

Open any JS file.
Try to format is using  "option+shift+F"

@harishekhar This milestone we have changed how keybinding dispatching works on OSX to use e.code (See #17521).
Can you please try in the Insiders Build that contains all these changes?

Closing after a number of days without a response.

Tried the Insiders build today. I'm still seeing this issue.

macOS 10.12.4

@skotturi What keyboard layout do you use? What type of physical keyboard do you use: ANSI, ISO or JIS?

@alexandrudima I wasn't sure so I went into Sys Pref > Keyboard > Input Sources. My keyboard was set to "ABC Extended". I changed this to "ABC" and the issue is gone. No idea how that changed, vscode seemed to be the only place where the keybinding difference showed up.

I have just investigated this issue using the ABC - Extended keyboard layout.
When pressing shift+option+F , we receive a compositionstart event and enter composition mode. This is similar e.g. to how composition acts when inputting CJK languages. Our handling of this case is IMHO correct.


Add ascii/no-color progressbar

Hi
I wanted a pytest-sugar without utf8 nor color, and the pytest --color=no was ignored by pytest-sugar. I ran into the same issue than #91
Even if themes can be created via the conf file, having an upstream one that match --color=no is usefull.
it looks like:
test_sugar.py sx...                    55% [=====   ]
test_sugar.py sx........s             100% [========]

Another thing added (that can be separated from this commit)
is the option --show-count to display the current tests-count/test-taken
 /test/test_api_usage.py ........................... 48% [=====     ][1072/2226]
                         ........................... 49% [=====     ][1099/2226]
                         ........................... 51% [======    ][1126/2226]
                         ........................... 52% [======    ][1153/2226]

Current coverage is 68.20% (diff: 44.44%)

Merging #101 into master will decrease coverage by 0.67%

@@             master       #101   diff @@
==========================================
  Files             4          4
  Lines           376        390    +14
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            259        266     +7
- Misses          117        124     +7
  Partials          0          0

Powered by Codecov. Last update 43a5523...d6b4a00

Please rebase it on master, which uses pytest 3.0 now.

it's rebased

@blueyed I removed the version changes. it should be good now

Thank you for your contribution.
However, at this point I am focusing on:

improving code quality (the current code base is frankly a mess. It is not surprising since this project started as a hack and pytest code is frankly quite hard to understand)
improving our test coverage (how ironic for py.test plugin)
making things work (lots of issues!)

so this PR shall wait until then.

@Frozenball / @blueyed I would expect small project to be more open to contribution, especially when issue/feature request have been reported several times.
I close this, I'm good with using my fork.
thanks

@ant31
No need to close it out of frustration.
btw: I am a contributor only myself.

I am sorry if you feel ignored. I have very little time for personal
projects nowadays and I don't like to spend that little time with stuff
that doesn't bring joy to me. Maintaining code,  checking pull requests and
doing releases is work and is not as simple as pressing a button if you
want to do it right.
If your fork works, great! Pytest API has been pretty stable for a long
time so there really isn't any urgency to get it upstream I think.
On Oct 23, 2017 14:31, "Daniel Hahler"<EMAIL_ADDRESS>wrote:
@ant31 https://github.com/ant31
No need to close it out of frustration.
btw: I am a contributor only myself.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Frozenball/pytest-sugar/pull/101#issuecomment-338630003,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AADQMmnzMW-WoD-X-GU642IhKZpC4sRQks5svHkVgaJpZM4K8Ak0
.

I understand.
But still leave if open for others to pick it up, and maintainers to merge it eventually.
Are you trying to get PR zero?  For me https://github.com/pulls shows 208 open PRs currently, but you do not have to check that page.
Let it rot and getting some attention even after years I would say.
It's different from maintainers wanting to get the queue down, where I can understand it better to close PRs.
Anyway, let's not waste our precious time in this discussion.


Display animations in asset editor, UI/UX fixes

Stack of small asset editor changes! They are split out by commit:
https://github.com/microsoft/pxt/commit/214b9f9f051b050e49609c52502cd2b220444767 - Display animations along with other assets, open animation editor on "Edit"
https://github.com/microsoft/pxt/commit/a42c4bda509312e450b890466da0eb8636711879 - Adjust asset editor height for editor toolbar (fixes https://github.com/microsoft/pxt-arcade/issues/2500) and add font-weight + margin to asset name (fixes https://github.com/microsoft/pxt-arcade/issues/2487)
https://github.com/microsoft/pxt/commit/548367c2fe746003ba5d2cea2af64cbd8d8a535b - Switch to "My Assets" view any time an asset is duplicated, edited, or deleted (fixes https://github.com/microsoft/pxt-arcade/issues/2485)
https://github.com/microsoft/pxt/commit/0c7b372dad85e12dfe0bf4d4f79fde324a173db3 - X instead of "Cancel" in modals (fixes https://github.com/microsoft/pxt-arcade/issues/2476)
https://github.com/microsoft/pxt/commit/c305506b602c98959c7de054cd36c8ae7393726f - Display "Temporary name" instead of shortID to indicate that an asset is unnamed (fixes https://github.com/microsoft/pxt-arcade/issues/2497)
https://github.com/microsoft/pxt/commit/28db67595d049453675fccdce0d268c78efe504a - Readonly assets.json (fixes https://github.com/microsoft/pxt-arcade/issues/2480)
https://github.com/microsoft/pxt/commit/45ccb65dd9ab4f24d7707059a3f6916ab4e031fc - Hide file explorer in asset editor view (fixes https://github.com/microsoft/pxt-arcade/issues/2496)

Awesome!


Support NVIDIA H100 GPU in DDA mode

Add VM SKUs for NVIDIA H100:

VM SKU
CPU
Memory (GB)
GPU

Standard_NC24_H100
24
220
1

Standard_NC48_H100
48
440
2

Standard_NC80_H100
80
900
8

Standard_NC96_H100
96
1900
8

/azp run

This PR looks good. We will also need to update dda.go in moc-pkg repo to discover H100 devices: https://github.com/microsoft/moc-pkg/blob/master/pkg/gpu/dda.go

Yes. It's in another PR, waiting for lab hardware ready and test.


Previous Test Run not cleaned up if either Run or Debug is clicked during an existing Run

Leaves queued items hanging

Fixed in v2023.6.3 Partially


Website updates

Improves #685 by re-instating the mobile navigation
Components 'namespaces' are sorted
The 'Introduction' namespace is no longer special-cased

... and I'm going to stop messing around with the website build and do some real work after this ;-)
This PR basically moves to how I want to the static site generator to work, where you solve problems of structuring your metadata in code, rather than battling with templating engines.

and I'm going to stop messing around with the website build and do some real work after this

I lied, one last one ;-) https://github.com/ScottLogic/d3fc/commit/9412d091fb202ed8e03932312a4cad984e1b6045

A few comments but nothing that would block a merge

A few comments but nothing that would block a merge

Thanks @chrisprice - I'll take a look at the 'catch' issue before morning. That could make the build a little unpredictable. I've not heard of bluebird before, I'll take a look.

I've added catch (and tested it works), and addressed a few of your other comments - thanks for the review.


Signature extraction failed

Here the ERROR:
youtube-dl --verbose https://www.youtube.com/watch?v=Wf6JNYHEp6Q
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['--verbose', 'https://www.youtube.com/watch?v=Wf6JNYHEp6Q']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2014.08.05
[debug] Python version 2.7.9 - Linux-4.0.0-kali1-amd64-x86_64-with-Kali-2.0-sana
[debug] Proxy map: {}
[youtube] Setting language
[youtube] Wf6JNYHEp6Q: Downloading webpage
[youtube] Wf6JNYHEp6Q: Downloading video info webpage
[youtube] Wf6JNYHEp6Q: Extracting video information
[youtube] Wf6JNYHEp6Q: Encrypted signatures detected.
WARNING: unable to extract html5 player; please report this issue on http://yt-dl.org/bug
[youtube] {22} signature length 41.43, html5 player None
ERROR: Signature extraction failed: Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 479, in _decrypt_signature
video_id, player_url, s
File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 356, in _extract_signature_function
raise ExtractorError('Cannot identify player %r' % player_url)
ExtractorError: Cannot identify player u'https://s.ytimg.com/yts/jsbin/player-en_US-vflra1XvP/base.js'; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 479, in _decrypt_signature
video_id, player_url, s
File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 356, in _extract_signature_function
raise ExtractorError('Cannot identify player %r' % player_url)
ExtractorError: Cannot identify player u'https://s.ytimg.com/yts/jsbin/player-en_US-vflra1XvP/base.js'; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 516, in extract_info
ie_result = ie.extract(url)
File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 170, in extract
return self._real_extract(url)
File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 860, in _real_extract
encrypted_sig, video_id, player_url, age_gate)
File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 489, in _decrypt_signature
u'Signature extraction failed: ' + tb, cause=e)
ExtractorError: Signature extraction failed: Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 479, in _decrypt_signature
video_id, player_url, s
File "/usr/lib/python2.7/dist-packages/youtube_dl/extractor/youtube.py", line 356, in _extract_signature_function
raise ExtractorError('Cannot identify player %r' % player_url)
ExtractorError: Cannot identify player u'https://s.ytimg.com/yts/jsbin/player-en_US-vflra1XvP/base.js'; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.
; please report this issue on https://yt-dl.org/bug . Be sure to call youtube-dl with the --verbose flag and include its complete output. Make sure you are using the latest version; type  youtube-dl -U  to update.

I've checked some more Videos but all the time the same error !

Your version of youtube-dl is ancient, easily 300 versions older than the current one. Update to the current one (2016.01.09 as of writing). See our FAQ if you need help updating.

Well thanks but i installed it via dpkg so i think i'll reinstall it in the normal way :D


Unknown EA error, please report on GitHub

Unknown EA error, please report on GitHub - Code: 200, Reason: expired session

probably the boot has been inactive for too long or you linked to your account in another environment (console, companion etc.)

It is another Expired session with differnet code.


Fix compatibility on Windows OS

Creating directories if needed in resolveExtensionFolder function
Adding registry keys for Windows in deployDevMode function
Change log_progress to log_error for catch error

@Merkur39 thank you very much, this was much needed !!


statement pool super -> super()

Is this supposed to work with rails 4 as well as rails 5? The specs would lead me to believe that it doesn't.

This does not work with rails 4, so this should be noted somewhere in the gemspec, for this version.

Other than that, LGTM.

yeah this version should only work with 5 - Pei and I were just discussing where to put the comment. thanks guys!

Shouldn't you change the actual gemspec/gemfile?

to rails 5?

Yeah, I think it makes sense to change the rails/active* constraints to the rails 5 versions since they don't work with previous versions.


Improve typings for strawberry.enum

Description
Adds typing for decorating Enum classes with kwargs.
Ex:
@strawberry.enum(name="...")
Types of Changes

Type annotations
Tests for mypy

Issues Fixed or Closed by This PR

Checklist

[x ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] I have tested the changes and verified that they work and don't break anything (as well as I can manage).

Hi, thanks for contributing to Strawberry 🍓!
We noticed that this PR is missing a RELEASE.md file. We use that to automatically do releases here on GitHub and, most importantly, to PyPI!
So as soon as this PR is merged, a release will be made 🚀.
Here's an example of RELEASE.md:
Release type: patch

Description of the changes, ideally with some examples, if adding a new feature.

Release type can be one of patch, minor or major. We use semver,so make sure to pick the appropriate type. If in doubt feel free to ask :)

Hi, thanks for contributing to Strawberry 🍓!
We noticed that this PR is missing a RELEASE.md file. We use that to automatically do releases here on GitHub and, most importantly, to PyPI!
So as soon as this PR is merged, a release will be made 🚀.
Here's an example of RELEASE.md:
Release type: patch

Description of the changes, ideally with some examples, if adding a new feature.

Release type can be one of patch, minor or major. We use semver,so make sure to pick the appropriate type. If in doubt feel free to ask :)

@peniqliotuv oh, feel free to fill this form if you want a sticker https://forms.gle/cMPQ8byNWU9ur2kj8

@peniqliotuv oh, feel free to fill this form if you want a sticker https://forms.gle/cMPQ8byNWU9ur2kj8

@patrick91  <3

@patrick91  <3


Prevent createdA being updated on upsert (updateOrCreate) call

Solves https://github.com/clarkbw/loopback-ds-timestamp-mixin/issues/11

Coverage remained the same at 100.0% when pulling d1b0bb88d83b384e44af3eecc6504b1ef7c7321e on kno:master into 9051e93f631a0f190468ab6886f6eb64388a69df on clarkbw:master.

Coverage remained the same at 100.0% when pulling 2eccf0122e6ac07dbe585414cf476f6942a3493b on kno:master into 9051e93f631a0f190468ab6886f6eb64388a69df on clarkbw:master.

Coverage remained the same at 100.0% when pulling c568aea525cf54433e6e85941ec4534ee55298c5 on kno:master into 9051e93f631a0f190468ab6886f6eb64388a69df on clarkbw:master.

Coverage remained the same at 100.0% when pulling ddcb1ee068f3ce0adccf7231f4c82250252ef14f on kno:master into 9051e93f631a0f190468ab6886f6eb64388a69df on clarkbw:master.

Coverage remained the same at 100.0% when pulling<PHONE_NUMBER>ca65c0d0687b337ba6fecedae001dc on kno:master into 9051e93f631a0f190468ab6886f6eb64388a69df on clarkbw:master.

Coverage remained the same at 100.0% when pulling 3c051f0baca4afe8d2118b9d6e664dfd46747324 on kno:master into 9051e93f631a0f190468ab6886f6eb64388a69df on clarkbw:master.


Cookie/JavaScript toggle in permissions

When clicking in the lock icon, permissions is shown, it shows sound and ads options. It would be good to have cookie/JavaScript toggle.

There is a cookie/js toogle in setting/site setting/
...

That's available in all chromium browsers. Brave/Bromite enable to directly toggle JavaScript/cookie from the brave icon and from permissions on clicking security lock icon in URL bar respectively.


Error in makedatabase step

Hi,
Upon recommendation from another group (Dr. Pamer's group at UChicago) I was interested in using MGEfinder to detect MGEs for a family of microbes. However, I ran into a couple of issues that I don't really know how to fix/where to start and I was hoping that you might be able to advise.
I started by running the tutorial to get a feel for the software and make sure it was running smoothly, and I was able to run the tutorial without any major problems. However, when I tried to run the program with my own files, I ran into some trouble.
I think that the main problem might be that I am trying to analyze pre-assembled reads that are already in .fna format.
Below are the steps I followed, and where I ran into problems:

Since I was working with pre-assembled contigs, I began with the alignment step and ran the following commands. (My pre-assembled contig file was named MSK_4_13_contigs.fna and the reference genome was GCF_00373885.fna (Blautia producta downloaded from NCBI)

% bwa index GCF_00373885.fna
% bwa mem GCF_000373885.fna MSK_4_13_contigs.fna > MSK_4_13_contigs.GCF_000373885.sam

Following the tutorial process, I then entered the mgefinder environment and ran

% mgefinder formatbam MSK_4_13_contigs.GCF_000373885.sam MSK_4_13_contigs.GCF_000373885.bam --single-end

Using the --single-end command since I wasn't using paired reads. And I received the output:
Removing secondary alignments...
Successfully removed secondary alignments...

Sorting the BAM file by chromosomal location...
BAM file successfully sorted...

Index the sorted BAM file...
BAM file successfully indexed...

I then assembled my working directory as follows:

test_workdir0/
    ├── 00.assembly/
    │   ├── MSK_4_13_contigs.fna
    ├── 00.bam/
    │   ├── MSK_4_13_contigs.GCF_000373885.bam
    │   ├── MSK_4_13_contigs.GCF_000373885.bam.bai
    └── 00.genome/
        └── GCF_000373885.fna

I then tried to run the workflow command in the mgefinder environment as follows

% mgefinder workflow --cores 4 --memory 50000 test_workdir0/

And at the makedatabase step, the following message appears:
#### CHECKING DEPENDENCIES ####
Current version of snakemake: 3.13.3
Expected version of snakemake: 3.13.3
Current version of einverted: EMBOSS:<IP_ADDRESS>
Expected version of einverted: EMBOSS:<IP_ADDRESS>
Current version of bowtie2: 2.3.5
Expected version of bowtie2: 2.3.5
Current version of samtools: 1.9
Expected version of samtools: 1.9
Current version of cd-hit: 4.8.1
Expected version of cd-hit: 4.8.1
###############################
#### PARAMETERS ####
command: makedatabase
inferseqfiles: ('test_workdir2/01.mgefinder/GCF_000373885/GCF_000373885.all_inferseq.txt',)
minimum_size: 30
maximum_size: 200000
threads: 1
memory: 16000
force: True
output_dir: test_workdir2/02.database/GCF_000373885
prefix: GCF_000373885.database
####################
Parsing inferseq files
Combining the inferseq files...
Loading file 1/3: test_workdir2/01.mgefinder/GCF_000373885/MSK_4_13_contigs/03.inferseq_assembly.MSK_4_13_contigs.GCF_000373885.tsv
Loading file 2/3: test_workdir2/01.mgefinder/GCF_000373885/MSK_4_13_contigs/03.inferseq_reference.MSK_4_13_contigs.GCF_000373885.tsv
Loading file 3/3: test_workdir2/01.mgefinder/GCF_000373885/MSK_4_13_contigs/03.inferseq_overlap.MSK_4_13_contigs.GCF_000373885.tsv
Deleting old database directory...
No termini found in the input file...
Waiting at most 5 seconds for missing files.
Error in job make_database while creating output files test_workdir2/02.database/GCF_000373885/GCF_000373885.database.fna, test_workdir2/02.database/GCF_000373885/GCF_000373885.database.fna.1.bt2.
MissingOutputException in line 186 of /Users/arnoldj/opt/anaconda3/envs/mgefinder/lib/python3.6/site-packages/mgefinder/workflow/Snakefile:
Missing files after 5 seconds:
test_workdir2/02.database/GCF_000373885/GCF_000373885.database.fna
test_workdir2/02.database/GCF_000373885/GCF_000373885.database.fna.1.bt2
This might be due to filesystem latency. If that is the case, consider to increase the wait time with --latency-wait.
Will exit after finishing currently running jobs.
Exiting because a job execution failed. Look above for error message
Traceback (most recent call last):
  File "/Users/arnoldj/opt/anaconda3/envs/mgefinder/bin/mgefinder", line 8, in <module>
    sys.exit(cli())
  File "/Users/arnoldj/opt/anaconda3/envs/mgefinder/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/Users/arnoldj/opt/anaconda3/envs/mgefinder/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/Users/arnoldj/opt/anaconda3/envs/mgefinder/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/arnoldj/opt/anaconda3/envs/mgefinder/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/arnoldj/opt/anaconda3/envs/mgefinder/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/Users/arnoldj/opt/anaconda3/envs/mgefinder/lib/python3.6/site-packages/mgefinder/main.py", line 50, in workflow
    _workflow(workdir, snakefile, configfile, cores, memory, unlock, rerun_incomplete, keep_going)
  File "/Users/arnoldj/opt/anaconda3/envs/mgefinder/lib/python3.6/site-packages/mgefinder/workflow.py", line 26, in _workflow
    shell(cmd)
  File "/Users/arnoldj/opt/anaconda3/envs/mgefinder/lib/python3.6/site-packages/snakemake/shell.py", line 88, in __new__
    raise sp.CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command 'snakemake -s /Users/arnoldj/opt/anaconda3/envs/mgefinder/lib/python3.6/site-packages/mgefinder/workflow/Snakefile --config wd=test_workdir2 memory=16000 --cores 1 --configfile /Users/arnoldj/opt/anaconda3/envs/mgefinder/lib/python3.6/site-packages/mgefinder/workflow/config.yml' returned non-zero exit status 1.

When I try to open the files in 01.mgefinder/<genome>/ all the .tsv files are empty
Is there something that I am doing incorrectly, or is there another process that I should follow since my contigs are already pre-assembled?
I would love to be able to use MGEfinder, so any help would be very much appreciated! Thank you in advance!
Best regards,
Jack

Hi Jack, thanks for trying out MGEfinder. MGEfinder is intended to combine information from both raw (unassembled) sequencing reads and draft assemblies to increase the sensitivity of detection for large and repetitive insertions. Excluding raw reads from the analysis will severely limit how useful MGEfinder will be relative to other tools intended to identify structural variants, such as Mauve.
It is possible to create a workflow that skips this step using MGEfinder, but it won't be as sensitive as if you use raw reads. Do you have the raw reads available?

Hi! Thanks for your quick response! I was originally using Mauve but compared to MGEfinder it seemed much more limited in terms of finding specifically MGEs for a larger set of organisms.
Unfortunately I do not have the raw reads available, just a database of pre-assembled contigs from a collaborator. How would I go about creating a workflow to circumvent the raw reads?
Thanks!

I can get this ready for you and I'll have it back to you soon.

Thank you so much! I appreciate all of you help! Would you like me to send you any example files?

I don't think that will be necessary, but if it is I'll let you know.

Sounds great, thanks!

Ok, here are the Snakefile and the config file you can use with the mgefinder workflow command.
workflow_noreads_config.yml.txt
workflow_noreads.Snakefile.txt
You can delete your 00.bam directory, it doesn't need that. It only needs 00.assembly and 00.genome.
You can then analyze your working directory with the command mgefinder workflow --snakefile workflow_noreads.Snakefile.txt --configfile workflow_noreads_config.yml.txt workdir.
As I mentioned before, this approach will dramatically reduce sensitivity. When I run it on the tutorial dataset, I only identify 65% as many insertions as when I include the raw reads. I also am not sure what the precision would be, it could be identifying more false positives. I would be careful when interpreting your results.
Let me know if you have any issues or questions going forward.

Thank you so much! This workflow worked great and did exactly what I needed it to do, which is basically identifying potential MGEs so that I have targets to look at more closely from a larger dataset (as a starting point for a more in depth analysis - so 65% of the insertions should be plenty, even if some of them are also false positives).
Thank you again for all of your help, MGEfinder is a great tool and I'll let you know if I run into any more questions while using it!
Best,
Jack

Happy to help! Can I ask what institution you are working at?

Of course! I'm at the University of Chicago, working jointly in the Mimee and the Nagler groups.


Creating_pretrainingdata is getting killed with bookcorpus dataset

The dataset I am using is Book Corpus having 18000 books
The system i am training on is having 64GB of RAM
When I am trying to generate the pretraining data using create_pretraining_data.py it is getting killed in between and also only a single core is getting used.
Please give me a solution to this.

Please update this


fpgad: add systemd integration

Coverage increased (+0.06%) to 80.8% when pulling 209afd5b8e2774f33ab6a211c0c5902758b2f44f on tswhison/fpgad_sysd into b4164e8c8bac30be46e79fd3f9964dd80f79de1e on master.


Fix HTML5 build warning

The warning about<PHONE_NUMBER> begin too large for a signed integer is back. By using a hexadecimal literal, it's treated as an unsigned integer.
Also removed the LL suffix in DEFAULT_SEED since it's C++11 syntax and unnecessary here.
Finally, moved video_driver_index to the other private fields in OS_JavaScript.

Now that Godot 3.1 has been released, we don't plan to cherry-pick new features and enhancements to the 3.0 branch, unless there is very strong support in favor of it. Removing cherrypick label for 3.0.


Feature/branded icons

This PR includes a script, build_icons.sh, which builds icons from a user-supplied icon/logo.
It does successfully build a Codex.icns file, but then in the final build the newly build Codex.icns is not in the built package (at least on Mac/darwin).
We might need to adjust something in the build script so that the output of build_icons.sh becomes the Codex.icns file in the built package. Currently there is a Codex.icns file in the build package, but it has the wrong icon.
Icon set that currently winds up in build

Icon set that we create but which does not end up in the build as we want

Closing as these changes are baked into another forthcoming pr


Support complex-valued dwidenoising

Closes #677. I still need to patch the dwi_phase data through the relevant workflows.
We can probably use ds004666 for testing/validation.
Changes proposed in this pull request

In collect_data, select "part-mag" or no part entity for "dwi" data.

This will ensure that regular DWI processing doesn't accidentally collect phase files.

Add steps to perform complex-valued dwidenoise when possible.
Add phase option to --ignore to explicitly disable complex-valued denoising when phase data are available.

It seems like the "combining" step (not denoise_before_combining) involves processing (b0_threshold and not no_b0_harmonization) that would mess up the relationship between the magnitude and phase data, so we might need to limit complex dwidenoise to workflows with denoising before combining.
I also don't know what merging_distortion_groups really does. Does it just create a cross-run template, or does it do some initial processing to the DWI data before the denoising workflow?

So what I ended up doing is passing along the BIDSLayout to init_merge_and_denoise_wf. Now it will try to find a phase file for each individual DWI file as it loops through the DWI files. Complex-valued denoising will only be allowed if denoise_before_combining is True, since I'm not sure if the extra steps from combining (e.g., the B0 harmonization) would mess up the relationship between the magnitude and phase data. Also not sure that we can assume that complementary magnitude runs will all have phase data.

Tested on the 0p9mm session of ds004666, and it failed on MergeDWIs:
ValueError: MergeDWIs requires a value for input 'bval_files'. For a list of required inputs, see MergeDWIs.help()


doc: messy table format for Linux capability options in run reference

https://docs.docker.com/reference/run/
The table format is messy after the paragraph shown as below.

In addition to --privileged, the operator can have fine grain control over the capabilities using --cap-add and --cap-drop. By default, Docker has a default list of capabilities that are kept. The following table lists the Linux capability options which can be added or dropped.
I have checked other tables in run reference - markdown issue - has been converted to html format.

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

ping @thaJeztah
add a screenshot here:

Oh, that is messy, looks like the new tooling either doesn't support Markdown tables at all (which is an extension to Markdown), or this particular type of tables.
I'm still travelling at the moment after DockerCon, and don't have access to my computer right now, so I'll need to check further.
@moxiegirl is this a known issue, and something you're working on already?

@thaJeztah See https://github.com/docker/distribution/pull/659, it's just that blackfriday (used by Hugo, used for the docs) is not working the same as rdiscount use by github for example. I started to look at this in the documentation on docker/distribution. It's not that bad to fix (just alignement) but we probably should do a pass on all the docs to fix it.

@vdemeester I'll address that today and cherry pick it forward. Thank you for filing the issue.

Appeared to be fixed now:

So this issue can be closed?

Oh, thanks @charleswhchan, yes, this looks to be resolved since.


Fix byte count value on response page

[x] This contribution adheres to CONTRIBUTING.md.

What does this Pull Request accomplish?
Adds a U32 Control for the Byte Count Wait Type.
Why should this Pull Request be merged?
In order to allow the users to enter only Positive Integer values for the Byte Count Wait Type.
What testing has been done?
Configuration Release was built and deployed locally. Manual test for the behavior and values was performed in VeriStand System Explorer.

If I understand correctly, you'd like the value put into byte count value to "translate" into wait value, when the selection is changed (and viceversa). But if you put a non-integer value into wait value, then it will get coerced when changing selection. The way I see it, it would make more sense to either 1. reset when selection changes, or 2. keep the previous value from when the same selection was active (persist them separately). I'd like to hear your opinion on this and why you chose the current implementation, maybe I'm missing something?

I choose this implementation because it seemed more user friendly to me and to give the impression to the user that it's only one button on the page, and not two.
By persisting them separately we may confuse the user and we also need to make sure the correct value is written in the response parameters.
Probably I would prefer to reset the value when changing the wait time type.

Let's go with resetting the value, then.


Add anti-affinity and tolerations to OLM bundle

Signed-off-by: Nico Schieder<EMAIL_ADDRESS>

/lgtm

/test operator-e2e


Fix #514

this PR:

add a conditional to Terraform users apply step
this fix the issue that the Terraform user apply was applying for GitHub only

closes #514

Reorganizing  functions places, makes harder to track changes, increase chances of something to be lost. As we are not enforcing order rules, maybe we could avoid to "re-org" the code on simple function internals changes PRs, but anyway, what is done is done. Just maybe, we should try to avoid too much churn in the code to make easier on the fellow reviewer.

Reorganizing functions places, makes harder to track changes, increase chances of something to be lost. As we are not enforcing order rules, maybe we could avoid to "re-org" the code on simple function internals changes PRs, but anyway, what is done is done. Just maybe, we should try to avoid too much churn in the code to make easier on the fellow reviewer.

I agree, that was my bad, I moved it to the bottom while resolving a merge conflict.

comments addressed here https://github.com/kubefirst/kubefirst/pull/545


[docs-only] Create README for settings service

The just moves over the contents from  docs/services/settings/_index.md.

@kobergj Am I right to assume that the dev docs index page for settings (https://owncloud.dev/services/settings/) will be regenerated from this PR once it is merged?

assume that the dev docs index page for settings will be regenerated from this PR

Just locally tested and as expected it gets regenerated 😃

@rhafer yes. Doc pages will be created automatically from the README.md

There are issues with the mermaid image:

Though you can fix the codacy complains by defining this block as mermaid, it will then no longer be rendered as such in hugo. This needs a different approach.
The mermaid content itself is wrong as it still uses the accounts service which was removed last year.

The cache definition text is imho wrong. On top you write about SETTINGS_CACHE_STORE but below in item 4 you define STORAGE_USERS_STAT_CACHE_STORE_NODES and
STORAGE_USERS_FILEMETADATA_CACHE_STORE_NODES. Beside the envvars used here (storage vs settings) if you have two items in redis-sentinel, you also must provide two on top. This is a 1:1 match.

Though you can fix the codacy complains by defining this block as mermaid, it will then no longer be rendered as such in hugo. This needs a different approach
The mermaid diagram would still be rendered correctly. hugo know abouth the ```mermaid syntax. But I have commented out the  diagram for now. It's outdated, as you already mentioned. And I can't make much sense of it anyway.

I've tried to update the contents to the best of my knowledge and fixed the copy'n paste error  for the variable names.

I would like to ask @EParzefall for a language review as this is needed in the admin docs anyways.


Update documentation and update the "based" statement

I don't know if I'm misunderstanding this, but the readme file says that this library is "based" on boost::signal2... it's not. Based means that it uses C++ to Rust bindings to the job. I think it's better to say that the "idea" is based on boost::signal2. People hate using libraries that have bindings in general, and this library doesn't seem to have that, but gives that impression in its readme file.

Maybe I should say "inspired by" instead?


merge release/v1.9.0-pre-rc to master

关联的Issues (Related Issues)

close
改动 (Proposed Changes)

附注 (Additional Info)

自查清单 (Checklist)
在你认为本 PR 满足被审阅的标准之前，需要确保 / Before you mark the PR ready for review, please make sure that:

[ ] 符合Venus项目管理规范中关于PR的相关标准 / The PR follows the PR standards set out in the Venus project management guidelines
[ ] 具有清晰明确的commit message / All commits have a clear commit message.
[ ] 包含相关的的测试用例或者不需要新增测试用例 / This PR has tests for new functionality or change in behaviour or not need to add new tests.
[ ] 包含相关的的指南以及文档或者不需要新增文档 / This PR has updated usage guidelines and documentation or not need
[ ] 通过必要的检查项 / All checks are green

Codecov Report

Merging #120 (a2f2129) into master (c134386) will increase coverage by 3.76%.
The diff coverage is 45.37%.

Additional details and impacted files

@@            Coverage Diff             @@
##           master     #120      +/-   ##
==========================================
+ Coverage   41.65%   45.42%   +3.76%
==========================================
  Files          32       35       +3
  Lines        3063     3813     +750
==========================================
+ Hits         1276     1732     +456
- Misses       1602     1868     +266
- Partials      185      213      +28

Flag
Coverage Δ

unittests
45.42% <45.37%> (+3.76%)
:arrow_up:

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

Impacted Files
Coverage Δ

cli/miner.go
0.00% <0.00%> (ø)

cli/run.go
0.00% <ø> (ø)

cli/signer.go
0.00% <0.00%> (ø)

cli/user.go
0.00% <0.00%> (ø)

cli/user_miner.go
0.00% <0.00%> (ø)

cli/user_signer.go
0.00% <0.00%> (ø)

cmd/server/main.go
0.00% <ø> (ø)

config/config.go
50.00% <0.00%> (ø)

core/const.go
48.64% <ø> (+2.70%)
:arrow_up:

jwtclient/auth_mux.go
5.37% <0.00%> (ø)

... and 21 more


numpy warning when using plt.plot() in JupyterLab

"FutureWarning: Conversion of the second argument of issubdtype from str to str is deprecated."
Appears to have been introduced in numpy v1.14
This happens when I call plt.plot() in a Jupyter Lab notebook.
bqplot==0.10.3
ipykernel==4.8.1
ipython==6.2.1
ipywidgets==7.1.2
jupyter==1.0.0
jupyter-client==5.2.2
jupyter-console==5.2.0
jupyter-core==4.4.0
jupyterhub==0.8.1
jupyterlab==0.31.8
jupyterlab-launcher==0.10.4
notebook==5.4.0
numpy==1.14.0

I cannot reproduce this warning anymore. I suppose we can close this.

I cannot reproduce this warning anymore. I suppose we can close this.


InternshipEngagementListItemCard

Similar to #152

No ROD, Products, Population
Waiting more info

@CarsonF below is what is needed on the Intern card

Intern Name
Country of Origin
Status
Position
ESAD/MOU End Date


Failed Install and Traceback Issue with utils.py

I noticed that the node was failing to install and throwing the following error so I fixed it.
Traceback (most recent call last):
  File "F:\ComfyUI_Windows_portable\ComfyUI\nodes.py", line 2073, in load_custom_node
    module_spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "F:\ComfyUI_Windows_portable\ComfyUI\custom_nodes\ComfyUI-IF_AI_tools\__init__.py", line 10, in <module>
    from .IFImagePromptNode import IFImagePrompt
  File "F:\ComfyUI_Windows_portable\ComfyUI\custom_nodes\ComfyUI-IF_AI_tools\IFImagePromptNode.py", line 14, in <module>
    from .utils import (
ImportError: cannot import name 'save_combo_settings' from 'ComfyUI-IF_AI_tools.utils' (F:\ComfyUI_Windows_portable\ComfyUI\custom_nodes\ComfyUI-IF_AI_tools\utils.py)

Cannot import F:\ComfyUI_Windows_portable\ComfyUI\custom_nodes\ComfyUI-IF_AI_tools module for custom nodes: cannot import name 'save_combo_settings' from 'ComfyUI-IF_AI_tools.utils' (F:\ComfyUI_Windows_portable\ComfyUI\custom_nodes\ComfyUI-IF_AI_tools\utils.py)

I fix it by adding the following code to utils.py

def save_combo_settings(settings, directory):
    """
    Save combo settings to a JSON file in the specified directory.

    Args:
        settings (dict): The settings to save.
        directory (str): The directory where the settings file will be saved.

    Returns:
        str: The path to the saved settings file.
    """
    try:
        if not os.path.exists(directory):
            os.makedirs(directory)

        settings_file_path = os.path.join(directory, 'combo_settings.json')
        with open(settings_file_path, 'w') as f:
            json.dump(settings, f, indent=4)  # Save with pretty formatting

        logger.info(f"Settings saved to {settings_file_path}")
        return settings_file_path
    except Exception as e:
        logger.error(f"Error saving combo settings: {str(e)}")
        return None

def load_combo_settings(directory):
    """
    Load combo settings from a JSON file in the specified directory.

    Args:
        directory (str): The directory where the settings file is located.

    Returns:
        dict: The loaded settings or an empty dict if the file does not exist.
    """
    settings_file_path = os.path.join(directory, 'combo_settings.json')
    if not os.path.exists(settings_file_path):
        logger.warning(f"No settings file found at {settings_file_path}")
        return {}  # Return an empty dict if the file does not exist

    try:
        with open(settings_file_path, 'r') as f:
            settings = json.load(f)
        logger.info(f"Settings loaded from {settings_file_path}")
        return settings
    except Exception as e:
        logger.error(f"Error loading combo settings: {str(e)}")
        return {}

def create_settings_from_ui_IFImagePromptNode(data):
    """
    Create settings from the UI input data.

    Args:
        data (dict): The input data from the UI.

    Returns:
        dict: The created settings.
    """
    settings = {
        "llm_provider": data.get("llm_provider", ""),
        "llm_model": data.get("llm_model", ""),
        "base_ip": data.get("base_ip", "localhost"),
        "port": data.get("port", "11434"),
        "user_prompt": data.get("user_prompt", ""),
        "strategy": data.get("strategy", "normal"),
        "max_tokens": data.get("max_tokens", 2048),
        "temperature": data.get("temperature", 0.7),
        "top_k": data.get("top_k", 40),
        "top_p": data.get("top_p", 0.9),
        "repeat_penalty": data.get("repeat_penalty", 1.1),
        "seed": data.get("seed", 0),
        "aspect_ratio": data.get("aspect_ratio", "1:1"),
        # Add other settings as needed
    }
    logger.info("Settings created from UI input")
    return settings

thx


UrlsMixin plugin update custom urls on load

For pure UrlsMixin plugin, invalidate the url to be able to trigger the update
should solve : https://github.com/inventree/InvenTree/issues/4052
why : For pure Custom UrlsMixinPlugin, the url seems not being loaded.
This (dirty ?) patch invalidate plugin parameters to force urls update (to trigger plugin.registry._update_urls => plugin.urls.get_plugin_urls)
That's explain why with an another AppPlugin everything works fine!
[edit] I've forgotten precommit tests... I will run them asap

@matmair does this make sense to you?

I mean this is one way to do it. I would prefer a separate activation method for UrlMixin TBH but this works technically. It would just be cleaner from a call structure perspective.

Would prefer a separate method with it's own loop on plugin or manage a specific flag for URL invalidation in the same loop in this 'app' specific method?

@Bbillyben you suggested a change in the activation sequence for plugin_app - you could place it just below named something like activate_plugin_url - it needs also be placed in the activation caller below here: https://github.com/inventree/InvenTree/blob/2ca0e2eab472bb3951009ed79bd9174494dd008d/InvenTree/plugin/registry.py#L463

Is that something like that you have suggested?

@SchrodingersGat should be good to merge

Thanks for the contribution @Bbillyben


Remove duplicated for loop in lr_monitor.py

What does this PR do?
Removes a duplicated for loop in the LRMonitor callback.
Before submitting

[x] Have you read the contributor guidelines?
[ ] Is this change a documentation change or typo fix? If so, skip the rest of this checklist.
[ ] Was this change discussed/approved in a GitHub issue first? It is much more likely to be merged if so.
[x] Did you update any related docs and document your change?
[x] Did you update any related tests and add any new tests related to your change? (see testing)
[x] Did you run the tests locally to make sure they pass?
[x] Did you run pre-commit on your change? (see the pre-commit section of prerequisites)

@mvpatel2000 @eracah any change I can get a review here?
Currently LRMonitor logs repeated information due to a duplication of the for loop.

Thanks @mvpatel2000


Fold "Borrowing data" page into the "Deserializer lifetimes" page

The deserializer lifetimes page should explain everything there is to know about lifetimes. The borrowing data page is out of place under Examples.

Moved in https://github.com/serde-rs/serde-rs.github.io/commit/123b3998bc4c3c4038b8426b1addc18e8cbe5077 with a redirect set up from the original URL.


About how  to alias  a nodejs version

ask for a help,friends,I'm a beginner of NVM.there is a touble bothering me,which is about how to create a name for any nodejs version.I have read some articles,it is said it can use the command "nvm alias  ".I have tried it,while,it is not effective.doesn't the latest version of NVM support it？or,I uesd a wrong command,need a help sincerely！
My Environment
Windows 7
I'm using NVM4W version:
latest 1.1.7
###my code
nvm alias LTS 12.14.1

NVM4W doesn't currently support aliases. That's a feature of nvm for Linux.

NVM4W doesn't currently support aliases. That's a feature of nvm for Linux.

Is there a plan to add it?

For anyone arriving via search, please note that generic aliases are supported (such as nvm install latest), but they aren't necessarily the same as those in nvm-sh. NVM4W does not support custom aliases. There is no plan to add it to NVM4W, but they are already on the roadmap for Runtime (the successor tool we're building).

NVM4W does not support custom aliases. There is no plan to add it to NVM4W, but they are already on the roadmap for Runtime (the successor tool we're building).

Nice I did not know about that project!
Yes I meant to add another answer but actually forgot sorry.
My need was for IDEs to pick it up and most guides I've seen mention using nvm alias default <version>, I somehow assumed it was needed from this, but it's not and "use" is enough in the windows version.
Thanks


Some problems with baseline PPO1

Hi everyone. I'm trying to use the baseline PPO1 and am training it on my own environment. Here is the issue that I am facing. Everything seems to be going fine and it seems to be learning the behavior that I want it to learn but when it gets the the optimizing phase before iteration 3 something typically happens. Here is a screenshot of what I mean.

Secondly, I mean to say its not always the same error every time. Maybe another time I try running it and it gives me the following for the first error:
d:\sys\openai_baselines\baselines\common\mpi_adam.py:33: RuntimeWarning: overflow encountered in multiply. self.v = self.beta2*self.v + (1 - self.beta2)*(globalg*globalg)
Regardless of what happens, after the warnings, all my values become Nan, and my policy just because a constant value with no changes. Does anyone know what could be causing this? Thanks!

Hi @zamlz ! Did you check for NaNs that your env produces? Did you see NaNs with any env that I have on my computer (something from gym?).

It was definitely something with my Env, but not sure what. But I managed to get it fixed by changed the way the logits variable in cnn_policy worked. It gets its value from the network, which is something that mlp_policy does not do. I changed it be similar to mlp_policy and everything works again.

OK let's close this.

So I think I've figured whats happening more or less. I came across the same error in another environment. The environment was never producing any NaNs but only accumulated negative reward. It hadn't reached the condition for positive reward yet. The reward function is a continuous function and based on the agent's actions it either increases or decreases. It also starts in state which gives it negative reward. I believe that because of a lack of positive rewards (due to it being sparse), there is too much negative loss and it causes it to overflow somehow. I verified this by trying a different reward function that was more progressive in giving out positive reward. This didn't cause any stability problems, although the new reward function produces undesirable behavior.
Is this the intended behavior? I was under the impression that as long as the reward function has a well defined gradient and rewards values themselves at each time-step were small, it should be able to find a policy to maximize it. Is this a problem with PPO or is it the implementation?

I am having the same issue and also using the tanh. Did you ever find a workaround?


DOCS-1722: Fixes outdated docs links in calicoctl README

Description

Small docs link fix for calicoctl README.
Related issues/PRs

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

TBD

Reminder for the reviewer
Make sure that this PR has the correct labels and milestone set.
Every PR needs one docs-* label.

docs-pr-required: This change requires a change to the documentation that has not been completed yet.
docs-completed: This change has all necessary documentation completed.
docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

release-note-required: This PR has user-facing changes. Most PRs should have this label.
release-note-not-required: This PR has no user-facing changes.

Other optional labels:

cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

@lwr20 Would you mind forcing a merge on this one?


ci: introduce ci/docker/env.sh

Problem
context: https://discord.com/channels/428295358100013066/560503042458517505/1310571536221995068
it's time to update our ci to ubuntu 22
Summary of Changes

move all docker related env into ci/docker/env.sh
use a new tag format for our ci docker image.

CI_DOCKER_IMAGE="anzaxyz/ci:${SANITIZED_BASE_IMAGE}_rust-${RUST_VERSION}_${RUST_NIGHTLY_VERSION}_${ci_docker_hash}"`

:scream: New commits were pushed while the automerge label was present.


报错 Error [ERR_REQUIRE_ESM]: require() of ES Module Instead change the require of

Describe the bug
require('unplugin-turbo-console/webpack').default({
extendedPathFileNames: ['index']
}), 这样写报错 Error [ERR_REQUIRE_ESM]: require() of ES Module Instead change the require of
定位到是 h3包依赖的 crossws升级导致的不兼容 commonjs，临时解决锁定版本<EMAIL_ADDRESS>Reproduction
tt
System Info
System:
    OS: Windows 11 10.0.26100
    CPU: (16) x64 AMD Ryzen 7 PRO 4750U with Radeon Graphics
    Memory: 23.85 GB / 47.33 GB
  Binaries:
    Node: 18.20.0 - D:\dev\nodejs\node.EXE
    Yarn: 1.22.19 - D:\dev\nvm\node_global\yarn.CMD
    npm: 10.5.0 - D:\dev\nodejs\npm.CMD
    pnpm: 8.15.5 - D:\dev\nvm\node_global\pnpm.CMD
  Browsers:
    Edge: Chromium (125.0.2535.67)
    Internet Explorer: 11.0.26100.1

Used Package Manager
yarn
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

相同的问题

Thanks for your report, this bug had fixed on v1.10.6


Crash in android while using frameProcessor❓

Question
I am unable to use frame processor api. The app crashes if i use frame processor and works properly if i comment it down.
Versions :
"react-native": "0.64.2",
"react-native-reanimated": "2.2.2",
"react-native-vision-camera": "^2.8.3"
What I tried
I tried using various versions of react native and reanimated but it still crashes.
VisionCamera Version
2.8.3
Additional information

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

i have no information to diagnose this issue.


Lexus NX300h 2018

I've installed comma two on my lexus but i've two error: first: dashcam mode for unsupported car, and second: CAN ERROR: CHECK CONNECTION
All cables are correctly connected and i've checked all installation.
Anyone have same issue?
Thanks in avance
Riccardo

Can you provide your dongle ID? in Settings -> Device -> Dongle ID. Most likely needs its firmware versions added.


fixed noncompliant test code on IncrementalChangeFeedProcessorTest.java

Description
fixed noncompliant test code
https://rules.sonarsource.com/java/tag/assertj/RSPEC-5833
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[ ] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[x] Pull request includes test coverage for the included changes.

@abbytec not sure if this is a compliant issue on our end, since our spot bugs and check style analysis haven't caught it. I am curious to know why is this an issue for you?

@abbytec not sure if this is a compliant issue on our end, since our spot bugs and check style analysis haven't caught it. I am curious to know why is this an issue for you?

Following the assertj documentation
Describing an assertion must be done before calling the assertion otherwise it is ignored as a failing assertion breaks will prevent the call to as().


Implement visit_seq() for deserialization visitors

This enables the use of non-self-describing encodings like bincode.

@kigawas does it solves #60 ?

I'll add bincode test in #61 after this gets merged

(This will also be effectively unusable for me until dependencies in rust-paillier and zk-paillier are updated.)

@djc how come ? what dependencies ?

Okay, for this one I have the option of taking on duplicate dependencies I guess, but that's not a great solution; my zk-paillier dependency will pull in old curv.

I will make do a proper update later today.

Thanks!

(Test failure is one of the intermittent ones.)

If you don't mind - can you update the tag in cargo.toml to v0.2.2? (after merge I will actually tag it)

Done!


Add support for OCSP requests by GET method

This adds support of OCSP requests by GET method. Requests by GET method enables caching their responses.
If proxy.config.ssl.ocsp.request_mode is set to 1, ATS uses GET method for OCSP requests if possible. If the encoded URL is going to be too long, it fallbacks to POST method. The setting is 0 by default (no behavior change).

[approve ci autest]
[approve ci rocky]

Looks good. Thanks for working on the OCSP fetch.


fix: creating app without vaults FF

Description
Fixes an issue preventing dust app creation without the Vaults feature flag enabled
Risk

Deploy Plan

LGTM 👍


Fatal error due to symfony change

Because of getName() checking if the application name is not set, the setName(getName() ?: 'init') code does no longer work, but crash with an exception:
PHP Fatal error:  Uncaught Symfony\Component\Console\Exception\LogicException: The command defined in "Phinx\Console\Command\Init" cannot have an empty name.

Resolved with https://github.com/cakephp/phinx/pull/1588


setValue(0) does not seem to work

Hi,
I have a select with the following options (simplified example)  :
var options = [
  { label: 'Options 1', value: 0 },
  { label: 'Options 2', value: 1 },
  { label: 'Options 3', value: 2 },
];

select.setValue(0) does nothing : no option is selected, the combo remains empty
select.setValue(1) or select.setValue(2) works fine of course  as expected

I belive the 0 is considered the "null" value, ie. the value corresponding to the scenario where no selection was made yet.
Have you tested this together with the property "emptyValue"? Not sure if it would work since I didn't had time to test it.
cc: @sa-si-dev


add to purpose for Dry::Monads::Try

This is mostly what I am personally interested in using. Hopefully it has a place within the dry-monads gem. I'm not entirely certain if the fmap method is correct for Dry::Monads::Try::Success - it passes specs but maybe there is a better way of implementing that method without the extra proc.

Thanks @ttdonovan. I'd love to hear how you'd expect to be using Try in realistic scenarios. Swallowing all kinds of exceptions seems a little dangerous to me...

@timriley I like to use result monads is service class. The service class itself may chain a bunch of operations together (remote HTTP call, db save, ect) and is responsible for exception messaging, but it's up to the caller to determine how to handle the result. In this case I would like the service class to return a Dry::Monads::Try. I've used this gem in the past  https://gitlab.com/zachdaniel/result-monad but would love get this kind of support in the dry-ruby ecosystem.

http://www.codethatgrows.com/lessons-learned-from-rust-the-result-monad
https://gitlab.com/zachdaniel/result-monad

Let me know if you need a more detailed example - unfortunately right now most of the code where I'm using Capture from result-monad is private, but I could maybe put together a fake example if it help demonstrate my use case.

Thanks for the explanation! This seems like a pretty reasonable thing to have. I'll wait now for any other people's thoughts before we think about merging.
In the meantime, what are your thoughts about whether Try.lift just returning an Either instead of a specific Try subclass (Success or Failure)? The only difference seems that the Success#bind and Success#fmap do the exception rescuing automatically. Is this actually desirable? Or would we prefer to have our users explicitly use Try { } whenever they want to rescue from exceptions?

@timriley It's a bit unclear to me how the Try.lift would know if the call was successful or not using an Either without the use of Success#bind. Maybe I'm missing something in your question. The implementation was mostly influenced by Kleisli::Try.
https://github.com/txus/kleisli/blob/master/lib/kleisli/try.rb
I could be convinced that dry-rb users would have to explicitly use Try { } when needing to rescue from exceptions if it's believed to be best practice from the dry community. In that case would the Try.lift change to the following?
def self.lift(f)
  Dry::Monads::Right(f.call)
rescue => e
  Dry::Monads::Left(e)
end

Example if I had three methods calls #get_http_response, #parse_json, and #save_to_db. It might look like the following?
Try { get_http_response } >> -> (response) { Try { parse_json(response) } >> -> (obj) { Try { save_to_db(obj) } } }

@ttdonovan Sorry if I was unclear! Anyway, you captured my thoughts perfectly in this:
def self.lift(f)
  Dry::Monads::Right(f.call)
rescue => e
  Dry::Monads::Left(e)
end

That's exactly what I was thinking.
Now, as for whether this is a better or easier-to-recommend practice, that's a much broader question, and I'd welcome some input here.
In my head, I really like this explicitness of your example:
Try { get_http_response } >> -> (response) { Try { parse_json(response) } >> -> (obj) { Try { save_to_db(obj) } } }

In this code, it's very clear which particular actions you care about rescuing exceptions from. And in this case, it's all of them, because they're all potentially fail-able due to conditions outside of your control.
The reason I thought that making the Try { } a required explicit call is because if I were to mix in another step into this chain, one which was entirely within my own app's control, I wouldn't want exceptions to be swallowed up due to programming errors or other things that I should be fixing – in these cases I'd rather be notified about them so I could just correct the bug. What do you think?

OK I think that all makes sense. If I get a chance later I'll try to make
the changes else feel free to make the edits yourself.
On Tuesday, April 26, 2016, Tim Riley<EMAIL_ADDRESS>wrote:

@ttdonovan https://github.com/ttdonovan Sorry if I was unclear! Anyway,
you captured my thoughts perfectly in this:
def self.lift(f)
Dry::Monads::Right(f.call)rescue => e
Dry::Monads::Left(e)end
That's exactly what I was thinking.
Now, as for whether this is a better or easier-to-recommend practice,
that's a much broader question, and I'd welcome some input here.
In my head, I really like this explicitness of your example:
Try { get_http_response } >> -> (response) { Try { parse_json(response) } >> -> (obj) { Try { save_to_db(obj) } } }
In this code, it's very clear which particular actions you care about
rescuing exceptions from. And in this case, it's all of them, because
they're all potentially fail-able due to conditions outside of your control.
The reason I thought that making the Try { } a required explicit call is
because if I were to mix in another step into this chain, one which was
entirely within my own app's control, I wouldn't want exceptions to be
swallowed up due to programming errors or other things that I should be
fixing – in these cases I'd rather be notified about them so I could just
correct the bug. What do you think?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/dry-rb/dry-monads/pull/4#issuecomment-214928584

@timriley I've gone ahead and made the changes that we had discussed. Usage would be something like this.
> Dry::Monads::Try.lift(-> { 10 / 1 }).fmap { |x| x }.or(Dry::Monads::Right(-1)).fmap { |y| y + 2 }
=> Right(12)

> Dry::Monads::Try.lift(-> { 10 / 0 }).fmap { |x| x }.or(Dry::Monads::Right(-1)).fmap { |y| y + 2 }
 => Right(1)

You're fast, @ttdonovan! I'll leave this here for the our dry-european friends to check out when they get a chance.

@timriley I've made another change to the Try { }. Below demonstrates the thought behind the use case. This should be my last change until I receive further feedback. If you have an alternative point of view on how this should be written I am open to suggestions.
class Service
  extend Dry::Monads::Try::Mixin

  def self.call
    # code I have limited control over
    try = Try { 10 / 0 }
    (block_given?) ? yield(try) : try
  end
end

res = Service.call
puts "SUCCESS" if res.success?
res.exception if res.failure? # bubble up the exception

Service.call do |res|
  if res.success?
    puts "SUCCESS"
  else
    res.exception # bubble up the exception
  end
end

@ttdonovan Thanks. I like the friendliness of #success? and #failure? (and as a heavy user of Either monads myself, I kind of wish we had similar there).
I've been thinking this over some more, and I think perhaps I was too quick to suggest that Try returns an Either just to avoid the ongoing catching of errors in chained #bind or #fmap calls. Also, given that Try (or Try-like things) exist in a few places, like Rust and Scala, I think it probably makes sense for dry-monads to provide a version with similar behaviour. Any user of Try who doesn't want this behaviour can always use #to_either to break out of the exception catching, anyway.
I'm sorry about the back and forth here. This is super early days for this project and it's taking a little while for it to clarify in my head. The approach that feels most comfortable to me is that it should offer faithful representa
So: my feeling is that it'd be good to roll back to your initial commit here, and keep the #success? and #failure? methods you've most recently introduced.
Thanks for hearing me out :)

@ttdonovan Thanks. I like the friendliness of #success? and #failure? (and as a heavy user of Either monads myself, I kind of wish we had similar there).
I've been thinking this over some more, and I think perhaps I was too quick to suggest that Try returns an Either just to avoid the ongoing catching of errors in chained #bind or #fmap calls. Also, given that Try (or Try-like things) exist in a few places, like Rust and Scala, I think it probably makes sense for dry-monads to provide a version with similar behaviour. Any user of Try who doesn't want this behaviour can always use #to_either to break out of the exception catching, anyway.
I'm sorry about the back and forth here. This is super early days for this project and it's taking a little while for it to clarify in my head. The approach that feels most comfortable to me is that it should offer faithful Ruby representations of the common monads, and not try to be too opinionated about how they are then used.
So: my feeling is that it'd be good to roll back to your initial commit here, and keep the #success? and #failure? methods you've most recently introduced.
Thanks for hearing me out :)

Interesting. Actually Try from my point of view makes sense but it is quite dangerous :) You should use it only when you know for sure that your code can raise an error, you should keep wrapped block as small as possible, and you should catch only certain exceptions, not all (if you can). That's why I think it is better to add support of passing list of exception classes to follow the concerns:
DBErrors = [UniqueConstraintViolated, ParentKeyNotFound]
Try(DBErrors) { run_update } ->> (r) { Try(NetTimeout) { make_request } }

Also @timriley has excellent point to prevent automatic chaining Try with Either. I see it like this:
Try(DBErrors) { run_update }.bind(NetTimeout) { |r| make_request }.to_either.bind { success }

I wonder if we could allow an exception list to be passed as an optional argument to Try()?

@timriley I've reverted some of my changes but kept the #success? and #failure?. I'm open to the idea of passing in an optional list of exceptions but am uncertain exactly what the implementation would look like. If I had to guess it would be something like Rust's match in https://doc.rust-lang.org/std/macro.try!.html - if the exception was not defined in the collection is would raise. So fare I believe this Try {} interface matches closest to Scala http://www.scala-lang.org/api/2.9.3/scala/util/Try.html - with the use of #success? and #failure?.

@ttdonovan should be able to do something like:
module Dry
  module Monads
    class Try
      attr_reader :exception, :value

      def self.lift(exceptions, f)
        Success.new(f.call)
      rescue *exceptions => e
        Failure.new(e)
      end
    end

    module Mixin
      Try = Try

      def Try(*exceptions, &f)
        catchable = exceptions.any? ? exceptions.flatten : [StandardError]
        Try.lift(catchable, f)
      end
  end
end

@AMHOL thank's I've added an optional catchable exceptions list to Try {} and updated the specs.

@ttdonovan, nice, looks good to me, best to wait and see what @timriley thinks though

Thanks everyone! This is looking good to me, @ttdonovan, I reckon it's ready to go. Would you mind setting up a new PR to target master (perhaps also squishing down the commits, since we've done a bit of back and forth here)? Then I can merge it in 😄

A new pull request has been created #5


feat(client): Add WebSocket Provider Integration Tests and Enhance WebSocket Initialization

Background
I use hono/client and wanted to reconnect websockets. However, the $ws method in hono/client internally creates a new WebSocket, so in order to use a websocket client with reconnection, it was necessary to define the url directly. This would lose the type safety of Hono RPC.
This change allows the use of clients that conform to WebSocket interfaces with reconnection, such as reconnecting-websocket, internally.
example usage
import ReconnectingWebSocket from 'reconnecting-websocket';

const client = hc<AppType>(url, {
  webSocket(url, options) {
    return new ReconnectingWebSocket(url, options)
  },
})
client.index.$ws({ query })

import ReconnectingWebSocket from 'reconnecting-websocket';

const client = hc<AppType>(url)
client.index.$ws(
  undefiend,
  {
    webSocket(url, options) {
      return new ReconnectingWebSocket(url, options)
    },
  }
)

What was done

Added new test cases for WebSocket provider integration to ensure correct initialization and handling of query parameters.
Enhanced WebSocket initialization logic to support custom WebSocket implementations via client options.
Updated hc function to use establishWebSocket method for flexible WebSocket creation.
Modified ClientRequestOptions to include webSocket for custom WebSocket handling.

How to Test

Run the new and existing test suite to verify functionality and integration.
Verify the correct inclusion and handling of query parameters in WebSocket URLs.

The author should do the following, if applicable

[X] Add tests
[X] Run tests
[X] bun run format:fix && bun run lint:fix to format the code
[X] Add TSDoc/JSDoc to document the code

Hi @naporin0624 ! Thank you for the PR.

Enhanced WebSocket initialization logic to support custom WebSocket implementations via client options.

Before I review the details, I would like to know the real-world use case of this option. Can you share it?

@yusukebe
I didn't explain the background. I apologize.
I use hono/client and wanted to reconnect websockets. However, the $ws method in hono/client internally creates a new WebSocket, so in order to use a websocket client with reconnection, it was necessary to define the url directly. This would lose the type safety of Hono RPC.
This change allows the use of clients that conform to WebSocket interfaces with reconnection, such as reconnecting-websocket, internally.

@naporin0624
That makes sense. Thanks! I'll review this.

Hi @naporin0624
One thing I want to consider. You've added an option for webSocket in two places:
// 1
const client = hc<AppType>(url, {
  webSocket() {}, // <==
})

// 2
const client = hc<AppType>(url)
client.index.$ws(
  undefiend,
  {
    webSocket() {}, // <==
  }
)

It's good, but in my opinion, it's better to have one than two, a few changes as possible. This is because it is easy to add options but difficult to delete existing ones.
If your needs can be satisfied with 1, using only 1 is best. This would simplify the argument checking. What do you think?

hi @yusukebe
Thank you for your review.
I specified two types in the same way as fetch, but I think it's not too late to add the implementation of 2 once the need arises. Given the nature of OSS, I understand that it is difficult to delete an API once it has been added, so I will change it to only implement 1, which is necessary this time.
This review has been a very valuable conversation for me. Thank you.

Hi @naporin0624, I think it's a nice idea. You have to import WebSocket from ws module if you use old Node.js version, so it's helpful for that.
Then, what do you think about receiving a class, not a function?
const client = hc<AppType>(url, {
  WebSocket: ReconnectingWebSocket
})

Because WebSocket is just class, and ReconnectingWebSocket has an API compatible with WebSocket. I think it more intuitive for WebSocket to receive WebSocket compatible APIs just as fetch receives fetch compatible functions.

@nakasyou
Thank you for your review. I also considered taking the class as an option and creating a new one at runtime, but I wanted to avoid limiting the options to classes, so I made it a function-based interface.
I'm also thinking about making it so that it can accept retry like retry(new WebSocket()).

@naporin0624 I agree. As you said you can easily change options.

@naporin0624
Thank you for changing it. This is simpler and looks good. I'll merge it later. This is actually a feat change but is not a so big feature for users, so we can release it in a patch release. Thanks!

@yusukebe Okay! Looking forward to the release!

Hi @naporin0624
I'll merge this into the main and release a new patch version!


retry on jobComplete == false

Found a solution to my issue!!!
Retry on result['jobComplete'] == false
PR for issue#22
Bill

Hi @vanetten , thanks!
I like this solution , I will merge it as soon as possible.
best!