Evenly distribute stretched Nodes in BoxContainer

Add any leftover fractional pixels to an error accumulator. When the accumulator is greater or equal to one, add one pixel to the current Node's size and subtract one from the accumulator.
Closes #36522
Before:

My proposed implementation:

(This is a bit different than my comment in #36522. I think this method is simpler but I am open to suggestions.)

The code looks mostly good, but we don't use the standard library in godot. You should use the fmod function Godot provides in core/math.

The code looks mostly good, but we don't use the standard library in godot. You should use the fmod function Godot provides in core/math.

Thank you for the suggestion, though I realized I could achieve the same thing with a simple cast, so I did that.

Last thing, have you tested what happen to the last pixel?
I may be wrong but I have the feeling that the last child might lack a pixel or have one more. We need to make sure the sum of pixels is always perfectly correct in the end, even if it means unbalancing of one pixel on the last child.

Last thing, have you tested what happen to the last pixel?
I may be wrong but I have the feeling that the last child might lack a pixel or have one more. We need to make sure the sum of pixels is always perfectly correct in the end, even if it means unbalancing of one pixel on the last child.

Sorry I'm not sure I understand. Do you mean the sum should always equal stretch_avail? When you say the last child might be one pixel smaller or bigger, smaller or bigger than what? For example in the old scheme, every child has the same size except for the last one because of integer division. So if stretch_avail is 100 pixels and there are 40 children ignoring separation, 39 children would be 100 / 40 = 2 pixels and the last child would be 100 - 39 * 2 = 22 pixels. But in my code error is incremented by the fractional part of 100.0 / 40.0 = 2.5, that is, 0.5, so every other child will be 3 pixels instead of 2. So both 2 and 3 pixels are valid sizes for a child and "unbalanced" doesn't make sense in the context of my changes.
If you're wondering if the last child might not stretch to the end of the container, the existing code already ensures the last child covers the last pixel (around line 194).

What I mean is that whatever system we use, we have to make sure the sum on all children width (or height) should fill the entire container exactly, whatever the configuration. We should not have one pixel less or more.
If the current implementation ensures this it's ok, otherwise we might have to correct the last child's width (or height) to fix that.

What I mean is that whatever system we use, we have to make sure the sum on all children width (or height) should fill the entire container exactly, whatever the configuration. We should not have one pixel less or more.
If the current implementation ensures this it's ok, otherwise we might have to correct the last child's width (or height) to fix that.

Oh, are you saying that the last child should not overshoot the boundaries of the container or undershoot and leave a blank space at the edge? The code around line 194 (pasted below for convenience) should make sure the furthest edge of the last child is exactly aligned with the furthest edge of the container.
if (msc.will_stretch && idx == children_count - 1) {
    //adjust so the last one always fits perfect
    //compensating for numerical imprecision

    to = vertical ? new_size.height : new_size.width;
}

Oh yes you are right! Perfect, good to merge to me then :)

Thanks!

Cherry-picked for 3.2.3.


Offload all possible errors to cairo

Which components does the task require to be changed? (think hard pls)
snforge
Description
All runner errors should be replaced with errors on cairo-level (result or panic)
Rust panic should occur only when we have done something wrong (implementation-wise)
@piotmag769 please provide a broader description 🙏

After doing this task we shouldn't throw any errors from our implementations of HintProcessor (our runtimes), especially in execute_cheatcode_hint function, we should instead write the result to the cairo memory and then panic in cairo or change some signatures and let user handle the result.
Things may get tricky for hints we don't handle by ourselves i.e. these that are handled by StarknetRuntime (the lowest layer that uses blockifier's SyscallHintProcesor to handle the hints), since we don't control the errors thrown there. I don't think there is a clear solution for that so we will still have to catch those errors here
https://github.com/foundry-rs/starknet-foundry/blob/b458b753e9e6e2f69703da0aafc917230c2b237a/crates/forge-runner/src/running.rs#L302


Rework README.md

Changed ~/go/bin/hola-proxy to ./hola-proxy
Slight improvement of grammar, rewrote some sentences
Reworked the help output to an arguments table
Removed the -country de arg in the residential IP example, since this would find no available tunnel (both lum/pool and DE). This may have changed since the last update (1.4.5), but I didn't test it yet.
^ Update: It didn't. :(

BTW, changes in v1.4.5 doesn't introduce any new behavior, they are focused on availability in case of state DNS filtering.

BTW, changes in v1.4.5 don't introduce any new behavior, they are focused on availability in case of state DNS filtering.

Got you. Interesting nevertheless!

@aarivex Thank you for the contribution!


Two-way SMS implementation

Broken off from https://github.com/govflow/govflow/issues/66
Original in #66 we wrote:

When a Service Request is made via SMS, and, when a Service Request is submitted with Phone Number information, allow two-way communication around the Service Request with the Submitter.
Still deciding: Issue a dedicated Phone Number per Service Request - provides identical UX and data management flows to the current email integration, OR, have a "single" Phone Number, and a (more complex) disambiguation process to ensure two way communication is routed correctly to a given existing Service Request (will write about this a bit further below)

We since decided to implement a happy path where a Jurisdiction has a single Phone Number for Service Requests, and GovFlow manages a disambiguation flow to ensure incoming messages are understood correctly. Even if multiple phone numbers are in use for a Jurisdiction, via the creation of InboundMap instances, we still run this disambiguation process (within the context of the matching InboundMap for a Number).
So, that disambiguation process is:

GovFlow sees an incoming message

The incoming message is automatically associated with a Jurisdiction due to a matching InboundMap, and optionally with deeper context (eg, a department) based on the InboundMap configuration

If the submitter has no OPEN requests for this InboundMap context, then, create a new Service Request (we disambiguated the incoming message without user involvement)
If the submitter has a SINGLE open request for this InboundMap context, then, create a new comment on the existing Service Request (we disambiguated the incoming message without user involvement)

This is maybe too prone to error, if we have a submitter who submits many tickets, in which case, maybe in this case we should change to manual disambiguation like with the next case

Otherwise, we disambiguate the new message by asking the user in response:

case/ user has multiple tickets: ask her to select from an incremented number list, where each entry is an existing service request (# and snippet of text), and the last entry is "This is a new request"
case/ user has one tickets: ask her to select from an incremented number list, where one entry is an existing service request (# and snippet of text), and the other entry is "This is a new request"

To support the manual disambiguation flow, we need a new model, let's call it a MessageDisambiguation. Here, we persist user messages and system responses, and probably references to existing objects like Service Requests, until the message from the user has been disambiguated. When it is disambiguated, we take the data in the MessageDisambiguation object and create either a new Service Request or a new Service Request comment from it.

This is now done in #70 but #70 is staying open to merge some other work and keep off main


[ZEPPELIN-975] Move download data button outside the paragraph settings

What is this PR for?
Following the PR #714 and its comments, we are moving the download data outside the paragraph settings. Which would allow a possible drop down to choose backend data download in the future.
What type of PR is it?
Improvement
What is the Jira issue?
https://issues.apache.org/jira/browse/ZEPPELIN-975
How should this be tested?
Show a %Table type of result (you can use below code in a paragraph for that).
You should see the icon, click on it to download the data.
print(s"""%table
name\tsize
sun\t127.6
moon\t0.6458
gerard\t45.234856803""")

Screenshots (if appropriate)

Questions:

Does the licenses files need update? No
Is there breaking changes for older versions? No
Does this needs documentation? No, but maybe feature announcement during release

CI fail not related:
Failed tests:
  SparkParagraphIT.testSqlSpark:162 Paragraph from SparkParagraphIT of testSqlSpark status:
Expected: "FINISHED"
     but: was "ERROR"
  SparkParagraphIT.testSqlSpark:169 Paragraph from SparkParagraphIT of testSqlSpark result:
Expected: "age\njob\nmarital\neducation\nbalance\n30 unemployed married primary 1,787\nage\njob\nmarital\neducation\nbalance"
     but: was "Table not found: bank; line 1 pos 14\nset zeppelin.spark.sql.stacktrace = true to see full stacktrace"

Merging if there is no more discussion


File not found during #include statement in non-parallel cmake build on MacOS.

While running the cmake build on MacOS I get the following error:
[ 80%] Building CXX object build_tools/third_party/tensorflow/tensorflow/compiler/mlir/xla/CMakeFiles/tensorflow_mlir_xla.dir/__/__/__/__/__/__/__/third_party/tensorflow/tensorflow/compiler/mlir/xla/transforms/xla_legalize_to_linalg.cc.o
In file included from /Users/phoenix/iree/third_party/tensorflow/tensorflow/compiler/mlir/xla/transforms/xla_legalize_to_linalg.cc:20:
In file included from /Users/phoenix/iree/third_party/llvm-project/mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h:12:
In file included from /Users/phoenix/iree/third_party/llvm-project/mlir/include/mlir/Dialect/Linalg/IR/LinalgTraits.h:12:
/Users/phoenix/iree/third_party/llvm-project/mlir/include/mlir/Dialect/Linalg/IR/LinalgTypes.h:24:10: fatal error: 'mlir/Dialect/Linalg/IR/LinalgOpsDialect.h.inc' file not found
#include "mlir/Dialect/Linalg/IR/LinalgOpsDialect.h.inc"
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [build_tools/third_party/tensorflow/tensorflow/compiler/mlir/xla/CMakeFiles/tensorflow_mlir_xla.dir/__/__/__/__/__/__/__/third_party/tensorflow/tensorflow/compiler/mlir/xla/transforms/xla_legalize_to_linalg.cc.o] Error 1
make[1]: *** [build_tools/third_party/tensorflow/tensorflow/compiler/mlir/xla/CMakeFiles/tensorflow_mlir_xla.dir/all] Error 2

Here is that line in the code, and the corresponding CMakeLists.txt file. I talked with Geoffrey, and it looks like the Bazel build generates this file here, however there's no corresponding line in the CMakeLists.txt file.
This doesn't happen when I run cmake in parallel, so it seems to be generated somewhere, but I don't know how to diagnose this problem. It appears to be working when I build it in parallel now after pulling from the repo today.

Assuming this is obsolete since lei was building on mac between march and today.


Proposal: Allow onInit/afterViewInit/afterContentInit to return observables

It would be great if formly would support observables on the hooks onInit afterViewInit and afterContentInit. If an observable is returned from one of the hooks, Formly would automatically subscribe to that observable until the field is destroyed. This would free users from subscribing to the observable and handling the onDestroy-hook themselves.
Example usage:
fields = [{
   ...
   hooks: {
      // Patch value of some other form control every time this value changes
      // subscription and unsubscribe is handled by formly
      onInit: field => field.formControl.valueChanges.pipe(
                    tap(value => field.form.patchValue({someOtherField: value})
                 )
   }
 },
...
];

This issue has been fixed and released as part of v5.7 release.
Please let us know, in case you are still encountering a similar issue/problem.
Thank you!


The testing result csv is not showing the mean rank ratio

should show all the available metric in the library at least.

fixed


go-test: ignore cmd/container-disk-v2alpha which is not go

What this PR does / why we need it:
Without this fix, make go-test fails with:
package kubevirt.io/kubevirt/cmd/container-disk-v2alpha: C source files not allowed when not using cgo or SWIG: main.c
make: *** [Makefile:72: go-test] Error 1

Release note:

NONE

/cc @stu-gott


cross-compiling minesweeper-rs within xwin from linux gave error Path not ending in ;

I followed your blog article about xwin to the best of my abilities:
https://jake-shadle.github.io/xwin/
Ok so I used this Dockerfile you made on Debian unstable
https://gist.github.com/omac777/1f231073f4b313e20376c386f48c6dc3
and ran the following:
docker build --network host -t playxwinimg .

Here is the build output for that docker image:
https://gist.github.com/omac777/dbf1547c47ffbb24453f4aafa2e567e2
git clone https://github.com/robmikh/minesweeper-rs.git
sudo chmod -R 777 minesweeper-rs
docker run --rm --network host -v /home/loongson/tryredox/playxwin/minesweeper-rs:/srv/minesweeper-rs -i -t playxwinimg:latest /bin/bash
cd /srv/minesweeper-rs
cargo build --target x86_64-pc-windows-msvc --release

I get a "Path not ending in ;" error.
I also attempted to cross-compile dua-cli in the same fashion and got a different "missing windows.rs" error for that.
Any hints pointers for these?  Thank you.

That "Path not ending in ;" issue has been resolved, you just need to update to the 0.19 version to get the fixed. Unfortunately it also looks like the windows crate links all libraries in SCREAMING case for some reason which I don't currently generate symlinks for, so I'll add a fix for that (though really, IMO this is a bug in windows-rs)


Add intersection controller lit-labs/observers example

Context
View here: https://pr977-a6a87b1---lit-dev-5ftespv5na-uc.a.run.app/playground/#sample=examples/observers-intersection-controller
Add a lit-labs/observers intersection controller example.
This sample focusses on observing multiple child elements, and also showing off the core logic that IntersectionController gives you. Essentially we use the intersection controller just to toggle a class on an element when it is in view. Everything else is CSS.
Testing
Tested manually. Note that this sample is hidden and will be made public in a future PR once all the observers samples are ready.
Thank you!

Decided that this demo should only be merged once we have declarative directive API for the Intersection controller.
This demo doesn't add anything more that an imperative API could already manage. Revisit this demo once a directive based API exists.


Gradle should support single sign on enterprise proxy with kerberos / activedirectory /NTLM

Reopening #5454
Gradle output spammed with:
NEGOTIATE authentication error: No valid credentials provided (Mechanism level: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt))
KERBEROS authentication error: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)

It failed with Kerberos but it seems succeeded with NTLM
Gradle shouldn't need the users proxy username/password when the Windows SSPI interface is available.

Duplicate of #5454. I'm reopening that one.


API reference is 404

Is there an existing issue for this?

[X] I have searched the existing issues.

Library version
Yes, from GitHub's "master" branch.
Bug description
The link to the API reference in main doc is 404.
Compiler output
No response

I also am having this issue 😢 I wanted to learn how to use this library for my project but cannot access the documentation

Use this URL.
https://vasilkalchev.github.io/LiquidMenu/annotated.html


Unable to get header values while using UploadRequest to upload file.

I am unable to get response headers when using UploadRequest to upload files.
As per documentation of UploadRequest there is no way of reading response headers.
Can we add this feature?

created pull request for same
https://github.com/ConstructionJobs/upload/pull/35


Testing narrow appinsights update

Fixes #6408
Description
Component governance triggered on Microsoft.ApplicationInsights.AspNetCore dependency.
Specific Changes
Upgrade Microsoft.ApplicationInsights to 4.20 in Microsoft.Bot.Builder.Dialogs.Adaptive.Runtime and Microsoft.Bot.Builder.Integration.ApplicationInsights.Core

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Integration.ApplicationInsights.Core.dll


[bug 1116523] Add respons ID to session

I added a test as for the new code in fjord/feedback/views.py as well.

I deleted the line that Mike pointed out and also wrapped the docstring on a single line.

One minor nit, but everything else looks good!

I fixed the nit!

Awesome! Can you squash these into one commit? Then it'll be ready to go.

Commits have been squashed!

Landed in 28ad328 [bug 1116523] Add response ID to session
Good job!


How do you think about custom matrix&vector type?

We can fix mtl::mat::dense2D as default conversion type from TensorData, but if we are implementing any custom matrix rather than MTL, It might be better to define some custom matrix type and custom functions that can convert custom matrix type into MTL types.
This is required since data alignment of custom implementation can be different from alignment that MTL is using.
Also, since hpr-blas implementation of non-posit type matrix multiplication requires operators such as * or + , our custom matrix&vector type should support them.
How do you guys think about it? should we fix MTL types as our default matrix type? or should we define our own and add some custom implementations?

let me try to catch up with your discovery....
The fundamental 'purpose' of MTL is to abstract away the details of the matrix so that matrix algorithms can be made uniform and independent of the underlying matrix structure. The value of the abstraction is that applications can pick different matrix structures to optimize their performance without having to restructure their codes. Typical examples are progressions from dense to banded to sparse. Or the CSR to CRS and back if you have matrix compositions or transposes.
So, if you have found a matrix structure that isn't supported in MTL, then MTL has failed and we really should think about adding it to MTL.
However, tensors represented by matrices inject 'structure' into the matrix that we do need to take advantage of for efficient execution. Ok, at this point I realize that I need to see an example of your observation that there is a data alignment problem.

@Ravenwater
I wonder if there's a way to add custom implementations in operators such as ' +, - , *, /' using MTL.
If we can, There might be no reason to make custom matrix&vector types.
I haven't figured out a way to do so yet.
I proposed custom type to support custom implementations of those operators alongside with MTL.
I thought expressing matrix operations by operators would look simpler rather than passing them as parameters.
I also mentioned about alignment because there can be lots of ways to store multidimensional matrices in sequentially aligned memory space. To make it cache oblivious, data can be stored in different ways.
For example, if we call  C= A*B when C,A,B is MTL matrix types, What kind of data alignment does MTL assume?
If MTL doesn't support custom operators, We can make a wrapper class that contains MTL internally, and implement operators inside it. But It would be great if MTL can support adding custom implementations.

MTL can be extended with new matrix types. However, doing so requires deep metaprogramming expertise. I am going to propose this to the principals of MTL as I know they are working on MTL5 which will have tensors and lots of optimizations that are common in the tensor composition environment as meta-programming tricks.
Can you do me a favor? Can you give me the example of the matrix and tensor operator that you encountered for which you need special support? I will take that to the MTL developers and see if they can add your use case to MTL4.


What IAM roles are needed for sagemaker-run-notebook?

I am attempting to use sagemaker-run-notebook and I keep getting errors.  Some of the issues have been resolved, but the admins at my company would like to know what IAM roles are expected for this package?

Are there any other roles that need to be set up beyond what is discussed in https://github.com/aws-samples/sagemaker-run-notebook/blob/master/QuickStart.md#2-create-roles-policies-and-the-lambda-function?


File.READ_WRITE only reads OR writes

Godot 3.1 alpha 3
Windows 10 x64
In the documentation for the File.READ_WRITE mode, it says "Opens the file for read and write operations." However, it only appears to work for read or write, depending on which operation happens first.
For example, consider the following read operation::
#read operation
var testString = file.get_line()

and write operation:
#write operation
file.store_string("this is fun text")

Only one of those lines will work, specifically the one that happens first. If you reverse the order, then the other one will work.
I'm not sure if this is intended behavior, but it makes me wonder what's the point of having a File.READ_WRITE, if it is not much different than just opening the file with File.READ and File.WRITE separately.

Can't reproduce. Both lines worked.

Might be Windows-specific, does it allow read+write file handles?

godot_file_READ_WRITE_issue.zip
I attached a minimal project showcasing the issue.
To be more verbose, consider two snippets of code:
In this snippet, the get_line operation works, but not the get_line
var file = File.new()
file.open("res://testfile.txt", File.READ_WRITE)

var testString = file.get_line()
print(testString)

file.store_string("this is fun text")

However, if you reverse the order, as shown below, the store_string operation works, but not the get_line operation.
var file = File.new()
file.open("res://testfile.txt", File.READ_WRITE)

file.store_string("this is fun text")

var testString = file.get_line()
print(testString)

Can reproduce with the given project. On Linux it works as expected (the second line is overwritten):
This is text
this is fun textxt is fun or something

On Windows, the write operation fails silently. (unless seek is called before writitng)


[Q] using sdt plugin to change service_name or provider_name

Hi,
I was trying to change service_name and/or provider_name in a certain MPEGTS stream.
But it seems when using spaces, plugin failes to load well.
..and complain /w :  Error: sdt: no parameter allowed, use options only
Command used in bash:
tsp  --debug=4 --verbose -I http http://<some url> [-P ...] -P sdt --increment-version --service-id 1 --name "NPO 1" --provider "TEST-Lijntje" -O ip <IP_ADDRESS>:1234

Decoded by TSP as:
* Error: sdt: no parameter allowed, use options only
* Debug: sdt: ====> tsp -P sdt --increment-version --service-id 1 --name '"NPO' '1"' --provider '"TEST-Lijntje"'
* Debug: error when initializing the plugins

In above sample putting a space in service_name failes, but also for provider_name it failes.
By removing any space, command seems succesfully executed.
Also I tried adding escape () before the space, does not help.
Double quotes (") vs single (') quotes, does no help
Do you have any suggestion how to add spaces ?

Hi @dutchboontje
You don't run that command from a shell window or script, do you? If run from a bash prompt, any other Unix shell or even the infamous DOS prompt, the command is perfectly correct and the space is correctly embedded in the parameter.
On my side, when I try your command, I get this:
* Debug: sdt: ====> tsp -P sdt --increment-version --service-id 1 --name 'NPO 1' --provider TEST-Lijntje

You probably launch that tsp command from some environment where the command line parsing rules are different, or with several levels of encapsulation (in which case the special characters must be escaped several times). In all cases, this is not a TSDuck issue, this is a problem from your command launching environment.

Hi Thierry,
Thank you, for checking.
I am parsing the argument and starting a tsp-process via sudo.
I will look at that again, again thnx..

HI,
Just, to let you know.
I dropped all sudo/bash scripts and migrated to the python-bindings.
It works creat, now.
Thanks, again.. for this super tool and all of your time you put into this whole project.


Broken links to doc.scalatest.org in documentation

E.g. here: https://www.scalatest.org/user_guide/generator_driven_property_checks

+1


Optimize vertical usage in Mapping Details panel

If we collapse the document id into just an icon (where tooltip will reveal the doc name), then add the field name, index number (if applicable) and trash can onto a single line then we can more effectively show more info in the mappings detail panel.
ref - old format:

current format:

Orig:

New:

wdyt???  @igarashitm

:+1: saved lot of pixels :-D


[Serialization] Handle llvm::Error in member deserialization recovery

Cherry-pick of #16957 to the 4.2 branch to fix an asserts-only issue. Reviewed by @graydon.
rdar://problem/40738521

@swift-ci Please test


link to binding validating

Overview
Fixes broken link.
What this PR does / why we need it
Current link is 404.
Does this PR introduce a user-facing change?
No.

Thank you!


Fixing segment prefetching

https://www.pivotaltracker.com/story/show/128218277
Passing manifest url to dash.js player after playback is requested(play event is captured on video element).

🐑 👊

Can you just give me to clarify what I commented?
Otherwise, this is good to go for me 🚀


Use spawn-rx consistently through the codebase

We currently use a combination of spawn from child_process and spawn from spawn-rx.  We should be consistent and use spawn-rx everywhere.

Linking this comment thread so it isn't lost: https://github.com/electron-userland/electron-forge/pull/75#discussion_r96114524

We're now using cross-spawn-promise instead of spawn-rx.


[Edit][Yomiroll] Yomiroll currently not working (No Connection / Connection Timeout)

Source information
Yomiroll
Source language
All
Steps to reproduce

No Connection (Try to Search on Source)

Expected behavior
Loading Anime
Actual behavior
Connection Time out
Aniyomi version
Preview r6151
Android version
Android 10
Other details
Edit - App is not Crashing it was loading the Local Token Setting but could not Connect
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have updated the app to version <IP_ADDRESS>.
[X] I have updated all installed extensions.
[X] I have tried the troubleshooting guide.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

The crash happens when the proxy goes down, most phones handle this case correctly and show timeout. Chinese phones sometimes have weird behavior with Yomiroll's settings.
If it's just timeout just connect to a US vpn (to get all the catalogs) and turn on use local token. Please try this and close this issue if it works

The crash happens when the proxy goes down, most phones handle this case correctly and show timeout. Chinese phones sometimes have weird behavior with Yomiroll's settings.
If it's just timeout just connect to a US vpn (to get all the catalogs) and turn on use local token. Please try this and close this issue if it works

Yeah i checked it and it took just longer to load the Settings. i already edited the Post ^^

If it's just timeout just connect to a US vpn (to get all the catalogs) and turn on use local token. Please try this and close this issue if it works

Then try this when the proxy stops working.

If it's just timeout just connect to a US vpn (to get all the catalogs) and turn on use local token. Please try this and close this issue if it works

Then try this when the proxy stops working.

VPN and Local Token Changed now it works ^^ Thx! do i need to disable it again? ^^

No as the token will only last 5 mins you'll need the option and the VPN on to continue using the extension. Disable them when the proxy is back up.
Closing as the issue is resolved


Remove link under cursor when no text is selected

Is your feature request related to a problem? Please describe.
Using the menu bubble component, I am trying to build a UI for editing/remove links similar to Google Docs. The desired behaviour is that when you place the cursor inside a link, the menu bubble shows with the link's URL, and controls to edit/remove the link.

I can get halfway there.
First, I overrode the Link extension to remove the ProseMirror plugin that causes the URL to open when you click on a link mark (I think that is not a great choice for the default behaviour, at the very least it should be configurable, or maybe require a modifier key like Ctrl to be pressed).
Second, rather than using menu.isActive to show or hide the menu bubble, if I just use isActive.link() I can get the menu bubble to display when the cursor is inside a link, even without a text selection:
<editor-menu-bubble :editor="editor" v-slot="{ commands, isActive, getMarkAttrs, menu }">
  <div
    class="tooltip richtext-link"
    :class="{ 'is-active': isActive.link() }"
    :style="{ left: `${menu.left}px`, bottom: `${menu.bottom}px` }"
  >
    <a :href="getMarkAttrs('link').href" target="_blank">{{ getMarkAttrs('link').href }}</a>
    <button type="button" class="button tooltip-button" @click="commands.link({})">Remove</button>
  </div>
</editor-menu-bubble>

However, clicking the Remove button without a text selection, it does nothing.
Describe the solution you'd like
If the link command is executed with { attr: null } without a text selection, I would like any link marks that the cursor is within to be removed.

+1

First, I overrode the Link extension to remove the ProseMirror plugin that causes the URL to open when you click on a link mark (I think that is not a great choice for the default behaviour, at the very least it should be configurable, or maybe require a modifier key like Ctrl to be pressed).

Can you explain how you did this part of your work?

@pkkid
import { Link as BaseLink } from 'tiptap-extensions';

export default class Link extends BaseLink {
  /**
   * Remove the default plugin so that clicking on a link does not open it.
   */
  get plugins() {
    return [];
  }
}

Cool thanks. Being new to Vue and Typescript, I keep forgetting we have classes that can be inherited.

There is a new setting for links:
new Link({
  openOnClick: false,
})

I've also changed how updating marks work now, so you'll be able to update links for empty selections.

Both changes are working great for me, thanks!


Hi. Thank you very much for this great add-on. Could you add cpu mode, please?

I tried to run it on igpu AMD Radeon Graphics Vega 7 but no text was generated.

Hi, actually, the current build v0.3 runs on cpu mode since vulkan is not working because of an upstream bug. Can you elaborate more on the problem? Like just create a simple node and run
func _ready():
    var gdllama = GDLlama.new()
    gdllama.model_path = "./models/Meta-Llama-3-8B-Instruct.Q5_K_M.gguf" ##Your model path
    gdllama.n_predict = 20
    var generated_text = gdllama.generate_text_simple("Hello")
    print(hello)

And copy-paste the printed message here?
If you know how to launch Godot in terminal, can you also run the program and copy-paste the output from the terminal here?

Since godot-llm is in CPU-mode since 0.3, I think this issue could be closed

v0.4 now has both cpu build and vulkan build available, let me know if you run into any issue

v0.4 now has both cpu build and vulkan build available, let me know if you run into any issue

Sorry for not answering during long time. I was ill. Also I'm new to Godot and sometimes i just can't explain what causes the error because all things in Godot seem rather difficult for me. I will describe my issue with your engine when i recover a little bit from bad health condition.


added expedi(spoj) problem solution

Expedi is considered one of the best problem based on greedy technique. It's very tricky to solve. Thought to add it's solution here.

 I will make a new pull request.


Disable mpp until LND race condition is resolved

I'm running non-MPP for 48h on my main node and it's working fine.
This proposed change intends to reduce the number of HTLC shards LNDg fires to rebalance.

mitigates the risk for this LND bug: https://github.com/lightningnetwork/lnd/issues/7657
additional benefit might be a reduction in base-fees

Up for review, thanks

Ideally it should be linked to a settings with default = allow mpp. This way it is non breaking and allows user to disable MPP if they desire.


Internal error when used with PHPStan 1.8.x

Greetings.
Having PHPStan 1.8.4 installed beforehand, I gave this extension a try. It threw the following internal error:
     Internal error: Internal error: PHPStan\Analyser\FileAnalyser::analyseFile(): Argument #4 ($collectorRegistry) must be of type PHPStan\Collectors\Registry, null given, called in /var/www/project/vendor/canvural/phpstan-blade-rule/src/Rules/ViewRuleHelper.php on line 94 in file
     /var/www/project/app/Http/Controllers/NegocioController.php
     Run PHPStan with -v option and post the stack trace to:
     https://github.com/phpstan/phpstan/issues/new?template=Bug_report.md
     Child process error (exit code 1):

It turns out PHPStan 1.8.0 introduced a breaking change in its signature for method  analyseFile , which now reads:
	public function analyseFile(
		string $file,
		array $analysedFiles,
		RuleRegistry $ruleRegistry,
		CollectorRegistry $collectorRegistry,
		?callable $outerNodeCallback,
	): FileAnalyserResult

whereas, up to version 1.7.15, the same method used to have the signature:
	public function analyseFile(
		string $file,
		array $analysedFiles,
		Registry $registry,
		?callable $outerNodeCallback,
	): FileAnalyserResult

For the time being I have resorted to downgrading and pinning PHPStan, but since I didn't see the issue reported elsewhere, I thought you might want to be given the heads up.
Thanks!

Hi,
Thank you for the report!
Yes it seems this library is not compatible with 1.8.x
Ill try to fix it in a few weeks.

Hi,
Thank you for the report!
Yes it seems this library is not compatible with 1.8.x
Ill try to fix it in a few weeks.

Another issue with 1.8 compatibility - https://github.com/phpstan/phpstan/issues/8167#issuecomment-1279392488

Need any help with this, is there a wip branch?


Sprite Region Editor doesn't save states between sessions.

If you have a scene for a sprite setup, the sprite region editor always starts at a default state, (no grid, no snap, grid steps every 10px, zoom 1). So you need to set up the editor every time.

maybe it is duplicated issue with #3197

yes it is.

Archiving this as duplicate of #3197. Thanks for spotting, @volzhs.

This is not a duplicate, because i never setted the region editor to save the previous config (was waiting until someone complains :P ) anyway, #3197 must be fixed before this can be archieved

Usually we archive duplicates even when the bug they duplicate has not been fixed yet ("archived" means either "duplicate", "won't fix" or "invalid"). But here since it will still be valid when #3197, I reopen it.

It should save this state in the scene, but not in the global settings.
@MarianoGnu  I fixed the code that saves the config and opens it again (hopefully) so feel free to give this a try

great to know


export: Add support for Info, Stateset and gaugehistogram, metrics (new OM metric types).

Prometheus supports OM metric types (passed in metadata) since 2018. From a quick glance export returns error when OM is used with new types, which is emits debug log message.
AC:

Export supports Info, Stateset and gaugehistogram (?) metric types

Alternatively we could instrument that error with the metric to know the scale of the problem.

is there any update on this? Would like to see my metrics (StateSet, exposed by kube-state-metrics) in Google Metrics Explorer.


ANMS_FUN_DAP_004 (Message Groups)

Multiple agents were selected in the Agents option and a time-based rule was created to produce multiple bp agent full reports, but the rule did not execute. The test case was run with only single requests for bp agent full reports.  The single bp agent full report was reflected in the Message Groups per Minute display, but only one of the multiple agents selected was associated with the report.  Supplying the optional receiving managers parameter seemed to resolve the issue.

test step instruction


Inconsistent JSON Tag Generation for Required Boolean Fields in Structs

I've encountered an issue with genqlient's code generation, particularly regarding how JSON tags are generated for required boolean fields within input structs. The issue arises in the context of a GraphQL schema where certain input fields are non-nullable (Boolean!), but the corresponding Go struct fields are sometimes generated with the omitempty JSON tag option, which is not expected for required fields.
Given a simplified GraphQL schema with a structure akin to the following:
input MyInputType {
  requiredField: Boolean!
}

And a mutation that utilizes this input:
mutation myMutation($input: MyInputType!) {
  myOperation(input: $input) {
    # response fields
  }
}

I would expect genqlient to generate a Go struct for MyInputType with a requiredField that does not include the omitempty option in its JSON tag, because the field is non-nullable in the GraphQL schema.
Expected
type MyInputType struct {
  RequiredField bool `json:"requiredField"`
}

Actual
type MyInputType struct {
  RequiredField bool `json:"requiredField,omitempty"`
}

Steps to Reproduce

Define a GraphQL schema with a non-nullable boolean field in an input type.
Generate Go client code using genqlient.
Observe the JSON tag for the non-nullable field in the generated Go struct.

Impact
This inconsistency can lead to runtime errors when executing mutations, as the GraphQL server may reject requests missing required fields. It also requires manual intervention to correct the generated code, which is not ideal for a code generation tool.
I hope this report helps to clarify the issue. I'm looking forward to any suggestions or workarounds, and I'm happy to provide further details if needed.

This sounds plausibly like a bug! But can you provide a full repro? (A repo with the queries that we can look at, or just upload your schema, queries, and generated.go.) That will make it a lot easier to look into. If I recall correctly, we never add omitempty unless you told us to somewhere, so probably you did specify it somewhere and it's having effects in an unintended place.

@benjaminjkraft this is a small example of the schema
schema {
  mutation: Mutation
}

directive @oneOf on FIELD_DEFINITION | INPUT_OBJECT

scalar NonEmptyString

type Mutation {
  user: UserMutations!
}

type UserMutations {
  create(input: CreateUserInput!): CreateUserResponse!
}

input CreateUserInput @oneOf {
  admin: CreateUserAdminInput
  editor: CreateUserEditorInput
}

input CreateUserEditorInput {
  active: Boolean!
  name: NonEmptyString!
}

input CreateUserAdminInput {
  name: NonEmptyString!
  active: Boolean!
}

type CreateUserResponse {
  result: CreateUserResult!
}

union CreateUserResult = UserAdmin | UserEditor

type UserAdmin implements User & Node {
  id: ID!
}

type UserEditor implements User & Node {
  id: ID!
}

interface User implements Node {
  id: ID!
}

interface Node {
  id: ID!
}

after run go run github.com/Khan/genqlient we can see
type CreateUserEditorInput struct {
	Active bool   `json:"active"`
	Name   string `json:"name"`
}

having this is a small operation.graphql
mutation create_user($admin: CreateUserAdminInput, $editor: CreateUserEditorInput) {
  user {
    create(input: { admin: $admin, editor: $editor }) {
      result {
        ... on UserAdmin {
          id
        }
        ... on UserEditor {
          id
        }
      }
    }
  }
}

since the create accepts @oneOf there is no need to send both user bodies, but then we can receive a graphql error like
Exactly one key must be specified for input type "CreateUserInput"

if we add
# @genqlient(omitempty: true)

on the top of the mutation to avoid this graphql error, then the operations.go auto generated file will result with this struct
type CreateUserEditorInput struct {
	Active bool   `json:"active,omitempty"`
	Name   string `json:"name,omitempty"`
}

When the active is still required, the only optional should be the whole body not a single component.

Ah, I think this is just #151. You want
# @genqlient(omitempty: true)
mutation create_user(
  $admin: CreateUserAdminInput,
  $editor: CreateUserEditorInput,
) ...

(and yes that's super confusing, the issue has more discussion of what we could/should change)


cleanup tests

[x] removed fixtures that were horrible (tech debt)
[x] added Mixin to make testing a lot neater
[x] updated existing tests

@smn ready for review

:+1: nice cleanup!


Interface with mscs

What else do we need from mscs?
My local branch is currently using ls and the new query command.

I think the query command could use a format we can parse with JavaScript like json so it would be easier to use the output. Or maybe make another perl script that will convert the output to json.

Why don't we add an option to the query command, say query json, that returns the same query data in json format.  I imagine the conversion code would be fairly minimal.

I have something working I think:
$ mscs query-json alpha
{"motd":"Thisisamultiple\nlineMOTD","gametype":"SMP","gameid":"MINECRAFT","version":"1.9","plugins":"","map":"alpha","numplayers":0,"maxplayers":20,"hostport":"25567","hostip":"<IP_ADDRESS>","players":""}

Is that what you were thinking of?  Do I need to add whitespace?  I could convert players to an array, but I don't have a second account to play with and don't know if it is comma separated or what

White space is not needed and is more efficient without it. Arrays or objects would be preferred for multi value elements.

zanix, since you are around, could you login to my minecraft server at empiresheep.org?

Connecting soonish

Commit 772116caff575ee228fd1caba8d3a7a7fa9c9711 added the query-json command.

Commit MinecraftServerControl/mscs@ecf61a3e894ccb8930e119f86fb218c69ab57954 added the `status-json command to mscs.


GnuTLS failures in compat.sh on Travis

In compat.sh cases using GnuTLS, we started to see failures on multiple Travis runs in multiple PRs recently which don't seem to be related to the PR being tested, but more likely to a change on the Travis platform. All the failures are for cases using GnuTLS, but not all cases using GnuTLS fail.
Example of failing jobs:

https://travis-ci.org/github/ARMmbed/mbedtls/jobs/711464150
https://travis-ci.com/github/mpg/mbedtls/jobs/364562033

My first thought was perhaps they updated their GnuTLS and the new version removed support for some old things (this happened in the past), but looking at what fails and what passe doesn't seem consistent with that hypothesis, for example:
m->G tls1_2,yes TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA ..................... PASS
m->G tls1_2,yes TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA ..................... PASS
m->G tls1_2,yes TLS-RSA-PSK-WITH-AES-256-CBC-SHA ....................... PASS
m->G tls1_2,yes TLS-RSA-PSK-WITH-AES-128-CBC-SHA ....................... PASS
m->G tls1_2,yes TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384 .................. FAIL
  ! outputs saved to c-srv-1503.log, c-cli-1503.log

TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA passes but not the same ciphersuite with just SHA-384 instead of SHA-1...

On Slack, @gilles wrote:

and it isn't an expired certificate or clock skew since PSK is randomly failing as well

@AndrzejKurek wrote:

I can see that there are problems with the certificate - according to gnutls it uses an insecure algorithm

- subject `C=NL,O=PolarSSL,CN=localhost', issuer `C=NL,O=PolarSSL,CN=PolarSSL Test CA', RSA key 2048 bits, signed using RSA-SHA1 (broken!), activated `2019-02-10 14:44:06 UTC', expires `2029-02-10 14:44:06 UTC', SHA-1 fingerprint `7d2245a4d39839d696df0566100cb3043ad53634'
[...]
 Status: The certificate is NOT trusted. The certificate chain uses insecure algorithm.

@gilles-peskine-arm wrote:

The travis image was updated on Wednesday. Jobs started failing when
Build image provisioning date and time
Mon Mar 25 16:43:24 UTC 2019
changed to
Build image provisioning date and time
Wed Jun 24 13:36:52 UTC 2020

Poking further, I noticed that while the version of gnutls-bin is 3.4.10-4ubuntu1.8 both on Travis and on my machine, the version of libgnutls30 is 3.4.10-4ubuntu1.7. The discrepancy on Travis is because we install gnutls-bin explicitly (it's in the default image now, but it didn't used to be).

But I tried to upgrade libgnutls30. And this job https://travis-ci.org/github/ARMmbed/mbedtls/builds/711538485 with an up-to-date libgnutls30 still fails.

I tried upgrading everything (https://travis-ci.org/github/ARMmbed/mbedtls/builds/711554498), and it's no better.

@gilles-peskine-arm also wrote an awk script to check which suites fail always, never, etc. Here's a slightly reformatted version, wrapped in a shell loop to iterate over multiple log files:
#!/bin/sh

for i in travis-*-log.txt; do
    printf "\n*** %s ***\n" $i
    < $i \
    awk '$1 != "m->G" && $1 != "G->m" {next} \
        {pass = /PASS/; p[$3] = p[$3] pass} \
        END {for (c in p) {print p[c], c}}' |
        awk '$1~/01/ {++c01} \
            $1~/10/ {++c10} \
            $1~/^0+$/ {++c11}
            $1~/^1+$/ {++c00} {++c} \
            END {print "Total: " c; \
                 print "Always fail: " c00; \
                 print "Always pass: " c11; \
                 print "Fail after passing: " c10; \
                 print "Pass after failing: " c01}'
done

Output of running that script over a couple of logs:

*** travis-364562033-log.txt ***
Total: 200
Always fail: 86
Always pass: 32
Fail after passing: 82
Pass after failing:

*** travis-711464150-log.txt ***
Total: 200
Always fail: 86
Always pass: 32
Fail after passing: 82
Pass after failing:

*** travis-711538485-log.txt ***
Total: 200
Always fail: 168
Always pass: 32
Fail after passing:
Pass after failing:

*** travis-711554498-log.txt ***
Total: 200
Always fail: 168
Always pass: 32
Fail after passing:
Pass after failing:

*** travis-71210599-log.txt ***
Total: 200
Always fail: 86
Always pass: 32
Fail after passing: 82
Pass after failing:

As Gilles observes, the number of "always pass" is constant, and the number of "pass after failing" is always zero.
However it looks like updating libgnutls30 did change something, as the two corresponding logs (711538485 and 711554498) also have "Fail after passing" equal to zero, which is perhaps a bit more sensible.

However it looks like updating libgnutls30 did change something

Aha, I hadn't noticed that! So there must be two issues. In chat you wrote

it seems upgrading libgnutls does make things a bit better, in the sense that after the upgrade, each ciphersuite either always fails or always passes.

which makes sense given the changelog for the upgrade of libgnutls30 (3.4.10-4ubuntu1.7 to 3.4.10-4ubuntu1.8):
  * d/p/50_Update-session_ticket.c-to-add-support-for-zero-leng.patch:
    - add support for zero length  session tickets returned from the server,
      thanks Rod for the backport and testing! (lp: #1876286)

So whatever issue there is on Travis is compounded with 3.4.10-4ubuntu1.7 by a bug with session tickets whose effect is that once a server has failed, it tries to use a session ticket and fails again.

Nope, sorry I don't think that's it: I failed to notice that compat.sh is just not called the same way in those logs: tests/compat.sh -m tls1_2 -p GnuTLS -V NO vs the usual from all.sh... So it doesn't make sense to compare those logs with the others.
Back to square one.


XD-3534 Add HDFS Dataset sink module

Ported existing Spring XD hdfs-dataset sink module

I have some issues with idleTimeout and fsUri:
Running local hdfs://localhost:8020 and I simply build the module locally and registered module with:
module register --coordinates org.springframework.cloud.stream.module:hdfs-dataset-sink:jar:exec:1.0.0.BUILD-SNAPSHOT --name hdfs-dataset-sink --type sink

idleTimeout defaults to 0 so it seems that every single write creates a new dataset so I'm getting new avro file every 2 seconds. Being honest I don't remember if XD dataset sink behaves like this. I'd expect idleTimeout=0 to disable flushing and thus simply falling back to batchSize when new avro file is created.
stream create --name "ticktock" --definition "time --fixedDelay=2|hdfs-dataset" --deploy

drwxr-xr-x   - root supergroup          0 2015-11-05 07:42 /tmp/hdfs-dataset-sink/data
drwxr-xr-x   - root supergroup          0 2015-11-05 07:43 /tmp/hdfs-dataset-sink/data/string
drwxr-xr-x   - root supergroup          0 2015-11-05 07:42 /tmp/hdfs-dataset-sink/data/string/.metadata
-rw-r--r--   3 root supergroup        173 2015-11-05 07:42 /tmp/hdfs-dataset-sink/data/string/.metadata/descriptor.properties
-rw-r--r--   3 root supergroup          8 2015-11-05 07:42 /tmp/hdfs-dataset-sink/data/string/.metadata/schema.avsc
drwxr-xr-x   - root supergroup          0 2015-11-05 07:42 /tmp/hdfs-dataset-sink/data/string/.metadata/schemas
-rw-r--r--   3 root supergroup          8 2015-11-05 07:42 /tmp/hdfs-dataset-sink/data/string/.metadata/schemas/1.avsc
-rw-r--r--   3 root supergroup        105 2015-11-05 07:42 /tmp/hdfs-dataset-sink/data/string/0142625d-86f4-4034-be0a-a223ca78fdba.avro
-rw-r--r--   3 root supergroup        105 2015-11-05 07:42 /tmp/hdfs-dataset-sink/data/string/040ce3e4-46c0-4602-a8a7-f8c2f48fb6ea.avro
-rw-r--r--   3 root supergroup        105 2015-11-05 07:42 /tmp/hdfs-dataset-sink/data/string/041535af-c176-438f-8744-ad53c15a9c00.avro
-rw-r--r--   3 root supergroup        116 2015-11-05 07:42 /tmp/hdfs-dataset-sink/data/string/1c38c57d-ac86-4140-819d-0f648f9dc84c.avro
-rw-r--r--   3 root supergroup        105 2015-11-05 07:42 /tmp/hdfs-dataset-sink/data/string/294c5fa0-ebb5-403d-96aa-2a76cf0f01a5.avro
-rw-r--r--   3 root supergroup        105 2015-11-05 07:42 /tmp/hdfs-dataset-sink/data/string/2c0dbc08-e98e-4286-bc37-67d67017e038.avro

Tried to use 20sec idleTimeout but then it waits default batchSize 10000 so didn't get any writes. Expected and didn't want to wait batch to reach its size.
stream create --name "ticktock" --definition "time --fixedDelay=2|hdfs-dataset --idleTimeout=20000" --deploy

With batchSize=10 I get 3 avro files per minute which is expected if idleTimeout is more that 2 sec.
stream create --name "ticktock" --definition "time --fixedDelay=2|hdfs-dataset --idleTimeout=20000 --batchSize=10" --deploy

I don't see fsUri used anywhere in DatasetSinkConfiguration. It seem to use auto-config for Configuration which defaults to hdfs://localhost:8020. So expected stream writes to fail if giving spoofed fsUri. Files were still written under custom location.
stream create --name "ticktock" --definition "time --fixedDelay=2|hdfs-dataset --fsUri=hdfs://localhost:12345 --directory=/tmp/hdfs-dataset-sink-custom" --deploy

root@neo:/usr/local/hadoops# hadoop/bin/hdfs dfs -ls /tmp
Found 2 items
drwxrwxrwx   - root supergroup          0 2015-09-02 08:36 /tmp/hadoop-yarn
drwxr-xr-x   - root supergroup          0 2015-11-05 08:11 /tmp/hdfs-dataset-sink-custom
root@neo:/usr/local/hadoops# hadoop/bin/hdfs dfs -ls -R /tmp/hdfs-dataset-sink-custom
drwxr-xr-x   - root supergroup          0 2015-11-05 08:11 /tmp/hdfs-dataset-sink-custom/data
drwxr-xr-x   - root supergroup          0 2015-11-05 08:11 /tmp/hdfs-dataset-sink-custom/data/string
drwxr-xr-x   - root supergroup          0 2015-11-05 08:11 /tmp/hdfs-dataset-sink-custom/data/string/.metadata
-rw-r--r--   3 root supergroup        180 2015-11-05 08:11 /tmp/hdfs-dataset-sink-custom/data/string/.metadata/descriptor.properties
-rw-r--r--   3 root supergroup          8 2015-11-05 08:11 /tmp/hdfs-dataset-sink-custom/data/string/.metadata/schema.avsc
drwxr-xr-x   - root supergroup          0 2015-11-05 08:11 /tmp/hdfs-dataset-sink-custom/data/string/.metadata/schemas
-rw-r--r--   3 root supergroup          8 2015-11-05 08:11 /tmp/hdfs-dataset-sink-custom/data/string/.metadata/schemas/1.avsc
-rw-r--r--   3 root supergroup        110 2015-11-05 08:11 /tmp/hdfs-dataset-sink-custom/data/string/0274cc54-572b-4809-b11f-ab8e18ceafa6.avro
-rw-r--r--   3 root supergroup        105 2015-11-05 08:11 /tmp/hdfs-dataset-sink-custom/data/string/033fc459-21ff-4763-84a0-2b48f8e27980.avro

Yes, I'm seeing same java.io.IOException: Filesystem closed error. Trying to figure out where it's coming from, in case it's not caused by shutdown hook.

Interesting, it seems that I don't get Filesystem closed error if I do:
stream create --name "ticktock" --definition "time|hdfs-dataset --batchSize=20" --deploy

and wait first file to be written.
If I do:
stream create --name "ticktock" --definition "time|hdfs-dataset" --deploy

there's no files written(if I don't wait full default batch size) and I get error.
It's worth to check if we get this error only if no data is flushed, thus no interaction with kite, thus there would not be any existing open hadoop FileSystem's.

damn, I take it back. This error doesn't happen every stream undeploy.

Right, it has to be FileSystem autoclose which is i.e. called from shutdown hook. I don't see errors if I disable autoclose with:
stream create --name "ticktock" --definition "time|hdfs-dataset --spring.hadoop.config.fs.automatic.close=false" --deploy

Rebased

squashed and merged per https://github.com/spring-cloud/spring-cloud-stream-modules/commit/3181e73a8e3e737844e9f249bcdd76043cf03eba


Login issues after enabling 'enable higher security uploads'

Describe the bug
After enabling this option in settings, adding  STORAGE_TYPE=local_secure to the .env file and moving all my images and sub-directories to the storage/ uploads/images directory with no other changes to ANY configuration in BookStack or Apache, I have log in issues
Steps To Reproduce
Steps to reproduce the behavior:

Clost the local browser
Make the changes above
Restart the Apache service in the OS
Access the BookStack instance in local browser
Log in as normal
The browser displays the app icon instead of the normal default home screen - it appears that the user is actually logged in, but isn't being directed to the default home screen

Expected behavior
After enteing log in credentials I would expect to arrive at the default home page
Your Configuration (please complete the following information):

Exact BookStack Version (Found in settings): BookStack v21.05.3
PHP Version: 8.0.8
Hosting Method (Nginx/Apache/Docker): Apache 2

Additional context
This issue appears to be browser independent. _ have run the Cleanup Images option in Maintenance, but does not seem to have any bearing.
I will reboot the server after I have posted this and then update accordingly.....
OK after a server reboot, the problem persists. Here is that happens after logging in:

...it directs to a page showing the app icon. If I edit the url to the base URL I can access CMS - either I have screwed something up big time or I am missing something somewhere....anyone?

Hi @techauthoruk,
I think this is related to the latter part of question 7 within #2866.
Have you done the step to re-upload the app logo image in the settings area after changing over to local_secure images?
What you're experiencing is often caused by the app logo being requested through the app but blocked by the secure image system, which BookStack detects as the last attempted access so it takes that URL as the user's original location intent.


New registration form: fixes

No need for the labels, just show name, description, and then show "Registration open from {date} to {date} (inclusive)."

Implemented as part of #93, commit a40cc1a.


Smart constructor for Name

The quest to remove TODOs never ends. Although this removes one, it makes another.
Builds on https://github.com/jml/graphql-api/pull/24, so review & merge that before reviewing this (or just review https://github.com/jml/graphql-api/pull/26/commits/ddbd8afbb4723f15236a039618a09a925cec0946).
Was going to do QuickCheck instances in this as per #23 but this turned out to be more complicated than expected and also now I really have to go.
Smart constructor for Name
Name is restricted in value, so when we have something that accepts a Name as a parameter, it should be able to trust that it's valid.
Stopped exporting Name constructor and now export two constructors:

makeName
unsafeMakeName

They do what they say on the tin.
There are three use-cases for unsafeMakeName:

In tests, where we are passing a literal.
In Definitions, because we cannot get GHC to enforce a restricted set of values for a Symbol.
In TypeApi, because we're operating on Data.GraphQL.AST directly when we should be operating on a pre-restricted type. Noted as a TODO comment.

I tried adding a HasName type class to Definitions, but couldn't figure it out in the ten minutes I gave myself.
Misc cleanups

Dropped superfluous parens

Looking at commits looks fine but would prefer to see rebase on other branch if you have time.

It has been rebased?
On Sat, 17 Dec 2016 at 16:28, teh<EMAIL_ADDRESS>wrote:

Looking at commits looks fine but would prefer to see rebase on other
branch if you have time.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jml/graphql-api/pull/26#issuecomment-267771727, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAHq6pjraEaNl3hcj4dDyRtciBsggoziks5rJA2ogaJpZM4LP6m2
.

Or I guess approve #24 and I can rebate on master after merging.
On Sat, 17 Dec 2016 at 17:58, Jonathan Lange<EMAIL_ADDRESS>wrote:

It has been rebased?
On Sat, 17 Dec 2016 at 16:28, teh<EMAIL_ADDRESS>wrote:

Looking at commits looks fine but would prefer to see rebase on other
branch if you have time.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jml/graphql-api/pull/26#issuecomment-267771727, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAHq6pjraEaNl3hcj4dDyRtciBsggoziks5rJA2ogaJpZM4LP6m2
.

Sorry about rebase. Had a brain fart. Done now.
Also removed the IsString instance from Name, as it was allowing constructing invalid names. We could re-introduce it and have it panic, which wouldn't be so bad as it would only ever be called on literals. I thought about that and thought that probably it would be less surprising for users if they had to be explicit about it.


findspam.py: Update link inside nested blockquotes

Experimentation reveals six nested blockquotes or more are all TP.  Add the requirement to have a link alone inside the blockquotes.
This updates the rule introduced in PR#377 and tweaked in PR#416.
I have updated the rule description, I hope that's acceptable.  This no longer looks merely for nested blockquotes, so the old description would be misleading (but I'm wondering whether this will make Metasmoke regard this as a new heuristic).

For the record, yes, this created a new reason #113 which currently has a modest but accurate 16/16 TP score. https://metasmoke.erwaysoftware.com/reason/113


CurveRange does not clamp values inside range

When using this:
[CurveRange(0, 0, 1, 1)]
public AnimationCurve Curve;

It allows you to set values outside the range [0-1] which shouldn't be allowed.
I was using another implementation similar to this one and it was working perfectly. Thought it would have the same results, but sadly not.

I've tested and it seems to not work correctly with [AllowNesting]. When I removed it, it worked as expected.


Negation on operators not working

Hi,
iam tried to use negation on operator eg. !@ipmatch, but not work.
If i use this rule
SecRule REMOTE_ADDR "!@ipmatch <IP_ADDRESS>" \       "msg:'DENY TEST',\       id:1,\       t:none,\       deny"
but in debug log operator starting without !
[4] (Rule: 1) Executing operator "@ipmatch" with param "<IP_ADDRESS>" against REMOTE_ADDR.
And question is, negation is not implemented?

Hi @masterdead,
Sorry for the delay. In fact, the `negation' variation was not enabled to the ipmatch operator. Recent change s on the libModSecurity code (SpiderLabs/ModSecurity@8757840bc3c2231060c2af1853a83d258f0129ed) enables the negation variation to all the operators.


[PORT] Slack sets timestamp as unix time in seconds

Port this change from botbuilder-dotnet/master branch:
https://github.com/microsoft/botbuilder-dotnet/pull/3937

If the server validates that the timestamp is recent to prevent replay attacks, then it would fail.
This PR changes the integration test to simulate what Slack would do.

N/A


[SQL-DS-CACHE-67][POAE7-967] Agg native support for int/long type

What changes were proposed in this pull request?
Add agg native support for int/long type
How was this patch tested?
manual tests

Hi @xieqi @jikunshang ,
I'm not very clear that why we need to convert all data types into decimal in APE?  Can we compute agg on the original data?
In my understanding, the result data need to be converted back to the requested data types.

Hi @xieqi @jikunshang ,
I'm not very clear that why we need to convert all data types into decimal in APE? Can we compute agg on the original data?
In my understanding, the result data need to be converted back to the requested data types.

Yes, you're right, for float and double type, it will convert to decimal type, do comupte and convert back which may have some perfomance overhead. But I think this is more friendly to aggregation compute model.
Otherwise, we need to maintain more template comute class(lile 'Sum', 'Add' and others) to handle type issue. For example, we may have Sum<Decimal>, Sum<Float>, Sum<double>, and we need some common APIs and getResult  method will be much more complex.  Of course we can have a try to implement the way you suggest.

Hi @xieqi @jikunshang ,
I'm not very clear that why we need to convert all data types into decimal in APE? Can we compute agg on the original data?
In my understanding, the result data need to be converted back to the requested data types.

Yes, you're right, for float and double type, it will convert to decimal type, do comupte and convert back which may have some perfomance overhead. But I think this is more friendly to aggregation compute model.
Otherwise, we need to maintain more template comute class(lile 'Sum', 'Add' and others) to handle type issue. For example, we may have Sum<Decimal>, Sum<Float>, Sum<double>, and we need some common APIs and getResult  method will be much more complex. Of course we can have a try to implement the way you suggest.

OK. Thanks for the reply.  Approved this pr.


Class Based Components (CBC)

Current Situation
React has the ability to define class based components while we don't. In some situations, components look a lot cleaner when organized in this fashion. Additionally, it allows for developers to use inheritance.
Proposed Actions
See if creating a class based component implementation within IDOM is feasible. If it doesn't significantly improve readability, then there isn't any point.
See this PR for our first-stab at CBC.

#518

Closing this as it dirties ReactPy's interface. We should instead focus on a JSX alternative.
Additionally, it appears that ReactJS is steadily gutting all of their class based components, so developing an equivalent seems like a dead-end.


Replace all time.sleep() functions with Explicit Waits or similar

fixed by commit - https://github.com/thefirans/AutoMeet/commit/b06f04aae5aeb53e6727c563625bcbfd5caac23a


[FEATURE] Add type hints

Is your feature request related to a problem? Please describe.
Type hints are useful
Describe the solution you'd like
Add type hints

What type hints? Please elaborate

What type hints? Please elaborate

https://docs.python.org/3/library/typing.html

I guess most of the functions have typing defined except one or two. I will send the PR for same.

done


Fix overflow in reduction kernel

Fix #1494

I manually confirmed that the current cupy does not pass test_shape5, and this patch correctly fix the bug. LGTM.

Ah I have one comment. In the current implementation block_size in the reduction kernel is always fixed, i.e., 512.
If you currently consider that this value should not be changed depending on the situation, this PR looks good. Otherwise, I think it is better to explicitly declare block_size in simple_reduction_function as a class variable, and reuse it in test_shape5.

Great! Then I would like to merge it. Thank you!


Document workflow for adding localization key and updating localization

Since this project has four languages, I could not maintain singer languages. Therefore, I have to define workflow for adding partially localized texts or others.

Shouldn't translation keys that are missing in a language fallback to English?

I think missing keys should be fallback to English instead of localization key and it's already implemented.

A channel to communicate new or changed keys to language maintainers would be neat.

I think github discussions can be used and I can make workflow to list-up missing keys.
Any suggestions are welcome.

Sounds good to me.
I just need to know whenever there is a new/changed key to translate/adjust, and where that key is.

I have created action and tracking discussion for Japanese language #855.
I'm going to create similar discussion thread for other languages.
@JustBuddy @lonelyicer Could you check the Japanese version and could you let me know any ideas?

Looks good, when I subscribe to that I should be notified whenever I need to do something.

Looks good, when I subscribe to that I should be notified whenever I need to do something.

Thank you. I've created discussion for German #860

I have created action and tracking discussion for Japanese language #855.
I'm going to create similar discussion thread for other languages.
@JustBuddy @lonelyicer Could you check the Japanese version and could you let me know any ideas?

Sounds great.

Sounds great.

Thank you. I've created discussion for Simplified Chinese #888

I've created discussion page for each localization and I've wrote the notes for adding localization keys and adding new languages so It's complete!

Request "English Localization" forum too.

As English is the fundamental language, there are no missing keys, but it is better to have a channel to discuss the better localisation.


knife ssh should support gssapi/kerberos

I am repeating #3378 , because that issue was closed and locked without explanation.
knife ssh does not support kerberos/gssapi auth.  I can use a kerberos ticket to log in to a node with openssh, but not knife ssh:
[birdsnest ~][I]% kinit *****@*****
Password for *****@*****:
[birdsnest ~][I]% ssh underling03.*****
Last login: Wed Aug 21 15:00:50 2019 from birdsnest.*****
[hendrenj@underling03 ~]$ exit
logout
Connection to underling03.***** closed.
[birdsnest ~][I]% knife ssh underling03.*****
<EMAIL_ADDRESS>password:

We aren't going to patch knife ssh to support gssapi in its current form.  The only path towards getting that support would be both converting knife ssh to use train instead of net-ssh directly, and then getting gssapi support into train.  Patching gssapi support into knife ssh as it is now would only create a technical barrier into getting knife ssh onto train.
That means that this issue goes well beyond a bugfix or simple feature request but becomes dependent upon a major refactor of the whole knife ssh codebase, which makes tracking it in a GH issue poor.  It doesn't help us prioritize anything and it will get lost in the other 400+ issues and won't be useful for communication and will likely be left open until long after it ever gets fixed.  If you've got a paid support contract then you should contact us through those channels in order to actually make prioritization happen.
As it is now knife ssh is built on a bankrupt codebase and we can't accept major features landing in it until it gets cleaned up.  It isn't even a case of "PRs accepted" since nothing major and new should go into it right now.


Front end for Home page

Replace the 'main' tab with a "Home" page to provide context for how the web tool works and provide tutorials.

Refer to the VISS_Draft text for Streamlit App to add the following content (it may not have copy/pasted here correctly)
Welcome to Seq2Dx!
The following tools can be used independently or as a pipeline for analyzing sequence data for diagnostic targeting.
Sequence to Diagnostic Pipeline
Step 1: Generate sequence data for target and off-target species
Sequence Search can be used to search for publicly available sequences
Step 1B: Optional - Clean up sequence data and characterize sequence variability
Use a sequence visualization and alignment software to screen the sequences for errors or low quality
Sequence Haplotypes can be used to collapse sequences into groups based on patterns of variability
Step 2: Compare target and off-target sequences to identify top candidates for designing primers
Find Assay Target Area can identify sections of the sequence data where target sequences are most similar to each other, but most different from off-target sequences.
Step 2B: Optional - Characterize inter and intra-species or strain variation to inform primer site locations
Sequence Variability can be used to generate a table that lists all positions where variation exists across sequences
Step 3: Design primers using the target area candidates
Sequence Input
This tool integrates with GenBank and can search for sequences from the nucleotide database (more databases coming soon). Search terms can be general (e.g. cougar mitochondrial) or can be more specific using the NCBI Search field descriptions.
This tool goes one step further by allowing the search results to be filtered in multiple layers, unlocking the ability to refine and clean up the sequence list before downloading. There is also the option of downloading the
Sequence Haplotypes
This tool analyzes aligned multiple sequence fasta files and collapses them into groups of variability. In cases where sequences have varying length, a base or reference sequence can be used to fill in sequence gaps and reduce the number of outliers that have to be collapsed manually.
Sequence Variability
This tool analyzes aligned multiple sequence fasta files to generate a variability table of base pair composition along all positions. A threshold can be set to only show positions where variability is below a certain percentage - for example a threshold of 99 would exclude all positions where there is a 100% consensus across all sequences. Gaps are not scored as differences and are ignored by the algorithm.
Find Assay Target Area
This tool analyzes a set of sequences labeled as Target (sequences that the diagnostic assay should detect) against a set of sequences labeled as Off-Target (sequences that the diagnostic assay should NOT detect) to identify areas where targets are conserved but dissimilar to the off-targets. This comparison is done along the entire length of the reference target sequence by splitting up the pairwise comparison into smaller windows that slide along the sequences. Further details on this algorithm can be found here.
Download Locally
Instructions
Example files
coming soon
Powered by Conservation X Labs and the University of Washington Scientific Software Engineering Center at the eSciences Institute.

The first section is not showing up correctly on the Home page. Looks like some of the sentences are running together instead of separated as a new line. I would also like the names of each tab (Sequence Search, Sequence haplotypes, Find Assay Target Area, Sequence Variability) highlighted in this section with bold and italics.
Sequence to Diagnostic Pipeline
Step 1: Generate sequence data for target and off-target species.
Sequence Search can be used to search for publicly available sequences.
Step 1B: Optional - Clean up sequence data and characterize sequence variability.
Use a sequence visualization and alignment software to screen the sequences for errors or low quality.
Sequence Haplotypes can be used to collapse sequences into groups based on patterns of variability.
Step 2: Compare target and off-target sequences to identify top candidates for designing primers.
Find Assay Target Area can identify sections of the sequence data where target sequences are most similar to each other, but most different from off-target sequences.
Step 2B: Optional - Characterize inter and intra-species or strain variation to inform primer site locations.
Sequence Variability can be used to generate a table that lists all positions where variation exists across sequences.
Step 3: Design primers using the target area candidates

Changes are done!


Queue#seek takes a really long time on longer videos/songs

Please describe your problem in as much detail as possible:
Is there any way I can speed up the Queue#seek function? On longer videos/songs (1 hr or more) seeking seems to take forever :/
Further information:

DisTube version: 3.0.0-beta.36
discord.js version: 13.1.0
Node.js version: 16.8.0
Operating system: Windows 10 (or Linux when bot is being hosted)

Because now it seeks the output instead of the input stream. Should be fixed in the next version.

Fixed on beta.37


Application has not been registered

System:
OS: macOS High Sierra 10.13.6
CPU: (4) x64 Intel(R) Core(TM) i5-4258U CPU @ 2.40GHz
Memory: 31.35 MB / 8.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.6.0 - ~/.nvm/versions/node/v10.6.0/bin/node
Yarn: 1.7.0 - /usr/local/bin/yarn
npm: 6.1.0 - ~/.nvm/versions/node/v10.6.0/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
Android SDK:
API Levels: 23, 25, 26, 27, 28, 29
Build Tools: 23.0.1, 25.0.0, 25.0.2, 26.0.1, 26.0.2, 26.0.3, 27.0.2, 27.0.3, 28.0.0, 28.0.1, 28.0.2, 28.0.3
System Images: a...google_apis | Google APIs Intel x86 Atom Sys...
IDEs:
Android Studio: 3.5 AI-191.8<IP_ADDRESS>91312
Xcode: 10.1/10B61 - /usr/bin/xcodebuild
npmPackages:
react: 16.9.0 => 16.9.0
react-native: 0.60.0 => 0.60.0
I have this issue after upgrading react-native to 60.0.0, but I have my index.js in my project's root folder and its
import { AppRegistry } from 'react-native';
import InTow from './App';
AppRegistry.registerComponent('InTow', () => InTow);
and my app.json is
{
"name": "InTow",
"displayName": "InTow"
}
Not sure why is this happen. Anyone could help?
Thanks!!!

Did you change your app name?

Please check your index.android.bundle.and replace with your project name AppRegistry.registerComponent('PROJECTNAME',function(){return o.default})}

Closing this as there is no feedback.


Timezone support

Hi! I notice that all dates in the calendar uses UTC timezone, even today's date is calculated based on this default timezone, is there any chance that the calendar's timezone can be set?

@ghvg1313 This was fixed in Tag 2.3.3 but apparently I've forgotten to merge it into master. I just use cherry pick to update master from the tag.


RN 0.14-0.17) Documentation on Image is in two different places, and it is super confusing

Hey,
I'm using RN 0.17, there are two documentation pages:
https://facebook.github.io/react-native/docs/image.html#content
https://facebook.github.io/react-native/docs/images.html#content (note how this link is plural Images)
Only one of these links is shown in the left sidebar of the documentation.
Furthermore, since RN 17, I can't require an image anymore that is in a relative file path (per the documentation suggestion).  For example, I can't have <Image source={{ uri: '../img/logo.png', isStatic: true }}/> - as it doesn't even look in ../img/ folder from wherever this was executed from.
Can someone please specify how to make a folder in your react native project called /img and then put the images in there (with @2x and @3x supported versions, namely PNG's) and document how to use them?  Apparently according to the docs we don't need/want Image.xassets anymore...?

Both links so up on the sidebar, one under guides and one under Components. I agree that it might be confusing.
As per the documentation, to require a local image, you can use the following syntax,
<Image source={require('./my-icon.png')} />

Refer: https://facebook.github.io/react-native/docs/images.html#static-image-resources
Use the uri syntax incase of network images or images you've manually bundled into the app.

require doesn't work, since I don't have an "appropriate loader" and I'm using webpack - any advice there? @satya164

ERROR in ./src/components/splash.js
Module not found: Error: Cannot resolve 'file' or 'directory' ../img/logo.png in /Users/nexus/Public/test/project/src/components
 @ ./src/components/splash.js 337:22-48

@niftylettuce You should file a bug report on the webpack server's repo that you're using, since it's the proper way to include the image. AFAIK know, that project is no longer maintained though. And with React Native packager getting the ability to do HMR, it won't be necessary to use anything else.

I'm not using RNWS (the project you mentioned) - I'm purely using Babel 6 and RN 0.17.  Here's my webpack.config.js

/**
 * React Native Webpack Starter Kit
 * https://github.com/jhabdas/react-native-webpack-starter-kit
 * https://gist.github.com/alexesDev/071f8935c82ca87a5b46
 * https://github.com/roman01la/react-native-babel/blob/master/webpack.config.js
 */
(function() {
  'use strict';

  var path = require('path');
  var webpack = require('webpack');
  var staticImageTransform = require('./static-image-transform');

  var reactNativeExternalsPromise = (function () {
    var reactNativeRoot = path.dirname(require.resolve('react-native/package'));
    var blacklist = require('react-native/packager/blacklist');
    var ReactPackager = require('react-native/packager/react-packager');
    const rnEntryPoint = require.resolve('react-native');

    return ReactPackager.getDependencies({
      assetRoots: [__dirname],
      blacklistRE: blacklist(false),
      projectRoots: [__dirname],
      transformModulePath: require.resolve('react-native/packager/transformer'),
    }, {
      entryFile: rnEntryPoint,
      dev: true,
      platform: 'ios',
    })
      .then(function (dependencies) {
        return dependencies.filter(function (dependency) {
          return !dependency.isPolyfill;
        });
      })
      .then(function (dependencies) {
        return dependencies.map(function (dependency) {
          return dependency.id;
        });
      });
  }());

  module.exports = {
    debug: true,
    watch: true,
    devtool: 'source-map',
    entry: {
      'index.ios': ['./src/main.ios.js'],
      'index.android': ['./src/main.android.js'],
    },
    output: {
      path: path.resolve(__dirname),
      filename: '[name].js',
      libraryTarget: 'commonjs'
    },
    module: {
      preLoaders: [
        {
          test: /\.(js|jsx|es6)$/,
          include: path.resolve(__dirname, 'src'),
          loader: 'eslint-loader',
        }
      ],
      loaders: [
        {
          test: /\.js$/,
          loader: 'babel',
          include: [
            path.resolve(__dirname, 'src'),
            path.resolve(__dirname, 'node_modules/react-native/Libraries/react-native'),
            path.resolve(__dirname, 'node_modules/react-native-button'),
            path.resolve(__dirname, 'node_modules/react-native-form'),
            path.resolve(__dirname, 'node_modules/react-native-navbar'),
            path.resolve(__dirname, 'node_modules/react-native-gifted-spinner'),
            path.resolve(__dirname, 'node_modules/react-native-contacts'),
            path.resolve(__dirname, 'node_modules/react-native-side-menu'),
            path.resolve(__dirname, 'node_modules/react-native-refreshable-listview'),
            path.resolve(__dirname, 'node_modules/react-native-facebook-login'),
            path.resolve(__dirname, 'node_modules/react-native-gifted-messenger'),
            path.resolve(__dirname, 'node_modules/react-native-invertible-scroll-view'),
            path.resolve(__dirname, 'node_modules/react-native-parsed-text'),
            path.resolve(__dirname, 'node_modules/react-native-scrollable-mixin'),
            path.resolve(__dirname, 'node_modules/react-native-clone-referenced-element')
          ],
          query: {
            plugins: ['transform-decorators-legacy'],
            presets: ['es2015', 'react', 'stage-0']
          }
        }
      ],
      /*
      loaders: [
        {
          test: /\.js$/,
          include: [
            path.resolve(__dirname, 'src'),
            path.resolve(__dirname, 'node_modules/react-native'),
            //path.resolve(__dirname, 'node_modules/react-native/Libraries/react-native'),
            path.resolve(__dirname, 'node_modules/react-native-button'),
            path.resolve(__dirname, 'node_modules/react-native-form'),
            path.resolve(__dirname, 'node_modules/react-native-navbar'),
            path.resolve(__dirname, 'node_modules/react-native-gifted-spinner'),
            path.resolve(__dirname, 'node_modules/react-native-contacts'),
            path.resolve(__dirname, 'node_modules/react-native-side-menu'),
            path.resolve(__dirname, 'node_modules/react-native-refreshable-listview'),
            path.resolve(__dirname, 'node_modules/react-native-facebook-login'),
            path.resolve(__dirname, 'node_modules/react-native-gifted-messenger'),
            path.resolve(__dirname, 'node_modules/react-native-invertible-scroll-view'),
            path.resolve(__dirname, 'node_modules/react-native-parsed-text'),
            path.resolve(__dirname, 'node_modules/react-native-scrollable-mixin'),
            path.resolve(__dirname, 'node_modules/react-native-clone-referenced-element')
          ],
          loader: 'babel',
          query: {
            cacheDirectory: true,
            // <https://babeljs.io/docs/plugins/transform-decorators/>
            //plugins: ['transform-decorators'],
            // <http://stackoverflow.com/a/34210231>
            plugins: ['transform-decorators-legacy'],
            presets: ['es2015', 'stage-0', 'react']
          }
        }
      ]
      */
    },
    plugins: [
      // TODO: what does this even do?
      new webpack.NoErrorsPlugin(),
      // not sure why we need this?
      new webpack.DefinePlugin({
        __DEV__: true
      })
    ],
    // <https://github.com/roman01la/react-native-babel/blob/master/webpack.config.js#L19>
    /*
    externals: function(context, request, cb) {
      cb(null, request.indexOf('image!') > -1 || context && context.indexOf('node_modules/react-native/') > -1);
    },
    */
    // <https://github.com/mjohnston/react-native-webpack-server/blob/1eb962f93c50fe497f9c0d96dfd2f1df54b48240/lib/Server.js#L323-L327>
    externals: [
      // NOTE: we're not using the same as react-native-webpack-server
      // because their version uses Promises and we need this to be synchronous
      //reactNativeExternals,
      function reactNativeExternals(context, request, cb) {
        reactNativeExternalsPromise.then(function (reactNativeExternals) {
          //if (['react-native'].concat(reactNativeExternals).indexOf(request) !== -1 || request.indexOf('image!') === 0) {
          //  cb(null, request);
          //} else {
          //  cb();
          //}
          if (['react-native'].concat(reactNativeExternals).indexOf(request) != -1) {
            cb(null, request);
          } else{
            cb();
          }
        });
      },
      //staticImageTransform
    ],
    // TODO: why do we need resolve here?
    resolve: {
      extensions: [
        '', // <-- why a blank extension?
        '.js',
        '.jsx'
      ]
    }
  };
}());

@niftylettuce Ah. Then you'd have to write a small server which serves the images when requested, and a loader which will replace the requires with the uri syntax.

@satya164  I'm guessing I'd need something like this?

// <https://github.com/mjohnston/react-native-webpack-server/blob/1eb962f93c50fe497f9c0d96dfd2f1df54b48240/lib/Server.js#L23-L31>

module.exports = staticImageTransform;

function staticImageTransform(context, request, callback) {
  if (/^image!/.test(request)) {
    return callback(null, JSON.stringify({
      uri: request.replace('image!', ''),
      isStatic: true,
    }));
  }
  callback();
}

It's uncommented in my code.  So basically I'd have to rewrite that URI to serve it up from a webserver like express or something?  And then how would this work for production?  Does the bundler automatically request all assets, bundle them in memory or something?

According to the docs, the images MUST be relative if they use uri, correct?  So we DEFINITELY have to use some webserver with an http:// path for example?

Interesting. I seemed to have it working with this:

// <https://github.com/mjohnston/react-native-webpack-server/blob/1eb962f93c50fe497f9c0d96dfd2f1df54b48240/lib/Server.js#L23-L31>

module.exports = staticImageTransform;

function staticImageTransform(context, request, callback) {
  if (/^image!/.test(request)) {
    /*
    return callback(null, JSON.stringify({
      uri: request.replace('image!', ''),
      isStatic: true,
    }));
    */
   return callback(null, request.replace('image!', ''));
  }
  callback();
}

            <Image
              style={{
                width: 260,
                height: 50
              }}
              source={require('image!./src/img/logo.png')}/>

@satya164 Will this "hack" affect @2x and @3x support?

@niftylettuce Don't use the image! syntax. It's not supported anymore. So if you ever switch to RN's packager it'll be difficult. Better to check if the file extension is .jpg, .png, .gif etc.
Also, I just checked a generated bundle, and require("../assets/image.jpg") becomes something like require("AwesomeProject/assets/image.jpg"). The require is still there. Probably the RN packager includes a require function which handles this.
IMO use the RN packager directly. It's not worth the trouble using a custom webpack config.

@satya164 I want one directory for all images, what happens if I want my logo image in two different components/views?  Is symlink what we need to do?  This could get ugly...

@niftylettuce Relative paths work with RN's packager. You don't need a symlink.


Problem when training with FULL FP32 model

hello , I am try to fine tune a 7B Language model with huggingface transformers and deepspeed (stage 3 , 4 gpus).
By setting the log_level to "info", I can get deepspeed logging result.
When I set the --fp16 True \ for the transformers arguments and do a normal mixed precision training, the deepspeed logging info is
[2024-02-02 08:55:15,983] [INFO] [logging.py:96:log_dist] [Rank 0] DeepSpeed info: version=0.12.3, git-hash=unknown, git-branch=unknown`
[2024-02-02 08:55:15,988] [INFO] [logging.py:96:log_dist] [Rank 0] DeepSpeed Flops Profiler Enabled: True
[2024-02-02 08:55:15,989] [INFO] [logging.py:96:log_dist] [Rank 0] Using client Optimizer as basic optimizer
[2024-02-02 08:55:15,989] [INFO] [logging.py:96:log_dist] [Rank 0] Removing param_group that has no 'params' in the basic Optimizer
[2024-02-02 08:55:15,996] [INFO] [logging.py:96:log_dist] [Rank 0] DeepSpeed Basic Optimizer = AdamW
[2024-02-02 08:55:15,996] [INFO] [utils.py:56:is_zero_supported_optimizer] Checking ZeRO support for optimizer=AdamW type=<class 'torch.optim.adamw.AdamW'>
[2024-02-02 08:55:15,996] [INFO] [logging.py:96:log_dist] [Rank 0] Creating fp16 ZeRO stage 3 optimizer, MiCS is enabled False, Hierarchical params gather False
[2024-02-02 08:55:15,996] [INFO] [logging.py:96:log_dist] [Rank 0] Creating torch.float16 ZeRO stage 3 optimizer
[2024-02-02 08:55:16,069] [INFO] [utils.py:802:see_memory_usage] Stage 3 initialize beginning
[2024-02-02 08:55:16,069] [INFO] [utils.py:803:see_memory_usage] MA 3.63 GB         Max_MA 6.26 GB         CA 5.45 GB         Max_CA 7 GB
[2024-02-02 08:55:16,070] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.05 GB, percent = 10.6%
[2024-02-02 08:55:16,071] [INFO] [stage3.py:127:__init__] Reduce bucket size 500,000,000
[2024-02-02 08:55:16,071] [INFO] [stage3.py:128:__init__] Prefetch bucket size 50,000,000
[2024-02-02 08:55:16,135] [INFO] [utils.py:802:see_memory_usage] DeepSpeedZeRoOffload initialize [begin]
[2024-02-02 08:55:16,135] [INFO] [utils.py:803:see_memory_usage] MA 3.63 GB         Max_MA 3.63 GB         CA 5.45 GB         Max_CA 5 GB
[2024-02-02 08:55:16,136] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.06 GB, percent = 10.6%
Parameter Offload: Total persistent parameters: 266240 in 65 params
[2024-02-02 08:55:16,215] [INFO] [utils.py:802:see_memory_usage] DeepSpeedZeRoOffload initialize [end]
[2024-02-02 08:55:16,216] [INFO] [utils.py:803:see_memory_usage] MA 3.63 GB         Max_MA 3.63 GB         CA 5.45 GB         Max_CA 5 GB
[2024-02-02 08:55:16,216] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.13 GB, percent = 10.6%
[2024-02-02 08:55:16,289] [INFO] [utils.py:802:see_memory_usage] Before creating fp16 partitions
[2024-02-02 08:55:16,290] [INFO] [utils.py:803:see_memory_usage] MA 3.63 GB         Max_MA 3.63 GB         CA 5.45 GB         Max_CA 5 GB
[2024-02-02 08:55:16,290] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.1 GB, percent = 10.6%
[2024-02-02 08:55:20,338] [INFO] [utils.py:802:see_memory_usage] After creating fp16 partitions: 2
[2024-02-02 08:55:20,339] [INFO] [utils.py:803:see_memory_usage] MA 3.63 GB         Max_MA 3.63 GB         CA 6.75 GB         Max_CA 7 GB
[2024-02-02 08:55:20,339] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.03 GB, percent = 10.6%
[2024-02-02 08:55:20,401] [INFO] [utils.py:802:see_memory_usage] Before creating fp32 partitions
[2024-02-02 08:55:20,402] [INFO] [utils.py:803:see_memory_usage] MA 3.63 GB         Max_MA 3.63 GB         CA 6.75 GB         Max_CA 7 GB
[2024-02-02 08:55:20,402] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.11 GB, percent = 10.6%
[2024-02-02 08:55:20,508] [INFO] [utils.py:802:see_memory_usage] After creating fp32 partitions
[2024-02-02 08:55:20,508] [INFO] [utils.py:803:see_memory_usage] MA 10.62 GB         Max_MA 12.25 GB         CA 15.61 GB         Max_CA 16 GB
[2024-02-02 08:55:20,509] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.09 GB, percent = 10.6%
[2024-02-02 08:55:20,571] [INFO] [utils.py:802:see_memory_usage] Before initializing optimizer states
[2024-02-02 08:55:20,572] [INFO] [utils.py:803:see_memory_usage] MA 10.62 GB         Max_MA 10.62 GB         CA 15.61 GB         Max_CA 16 GB
[2024-02-02 08:55:20,572] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.16 GB, percent = 10.6%
[2024-02-02 08:55:20,737] [INFO] [logging.py:96:log_dist] [Rank 0] time (ms) | init_optimizer_state: 156.79
[2024-02-02 08:55:20,816] [INFO] [utils.py:802:see_memory_usage] After initializing optimizer states
[2024-02-02 08:55:20,817] [INFO] [utils.py:803:see_memory_usage] MA 24.6 GB         Max_MA 31.59 GB         CA 37.06 GB         Max_CA 37 GB
[2024-02-02 08:55:20,817] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 102.98 GB, percent = 10.6%
[2024-02-02 08:55:20,818] [INFO] [stage3.py:482:_setup_for_real_optimizer] optimizer state initialized
[2024-02-02 08:55:21,164] [INFO] [utils.py:802:see_memory_usage] After initializing ZeRO optimizer
[2024-02-02 08:55:21,164] [INFO] [utils.py:803:see_memory_usage] MA 29.02 GB         Max_MA 30.94 GB         CA 37.06 GB         Max_CA 37 GB
[2024-02-02 08:55:21,165] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.1 GB, percent = 10.6%
[2024-02-02 08:55:21,165] [INFO] [logging.py:96:log_dist] [Rank 0] DeepSpeed Final Optimizer = AdamW
[2024-02-02 08:55:21,165] [INFO] [logging.py:96:log_dist] [Rank 0] DeepSpeed using client LR scheduler
[2024-02-02 08:55:21,165] [INFO] [logging.py:96:log_dist] [Rank 0] DeepSpeed LR Scheduler = None
[2024-02-02 08:55:21,165] [INFO] [logging.py:96:log_dist] [Rank 0] step=0, skipped=0, lr=[0.0], mom=[(0.9, 0.98)]

and everything looks well,
then when I test with full fp32 model by setting --fp16 False \ , the log info is
[2024-02-02 08:24:53,133] [INFO] [utils.py:802:see_memory_usage] Stage 3 initialize beginning
[2024-02-02 08:24:53,133] [INFO] [utils.py:803:see_memory_usage] MA 7.18 GB         Max_MA 11.01 GB         CA 7.2 GB         Max_CA 11 GB
[2024-02-02 08:24:53,134] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.15 GB, percent = 10.6%
[2024-02-02 08:24:53,135] [INFO] [stage3.py:127:__init__] Reduce bucket size 500,000,000
[2024-02-02 08:24:53,135] [INFO] [stage3.py:128:__init__] Prefetch bucket size 50,000,000
[2024-02-02 08:24:53,212] [INFO] [utils.py:802:see_memory_usage] DeepSpeedZeRoOffload initialize [begin]
[2024-02-02 08:24:53,212] [INFO] [utils.py:803:see_memory_usage] MA 7.18 GB         Max_MA 7.18 GB         CA 7.2 GB         Max_CA 7 GB
[2024-02-02 08:24:53,212] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.16 GB, percent = 10.6%
Parameter Offload: Total persistent parameters: 266240 in 65 params
[2024-02-02 08:24:53,302] [INFO] [utils.py:802:see_memory_usage] DeepSpeedZeRoOffload initialize [end]
[2024-02-02 08:24:53,303] [INFO] [utils.py:803:see_memory_usage] MA 7.18 GB         Max_MA 7.18 GB         CA 7.2 GB         Max_CA 7 GB
[2024-02-02 08:24:53,303] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.26 GB, percent = 10.6%
[2024-02-02 08:24:53,385] [INFO] [utils.py:802:see_memory_usage] Before creating fp16 partitions
[2024-02-02 08:24:53,386] [INFO] [utils.py:803:see_memory_usage] MA 7.18 GB         Max_MA 7.18 GB         CA 7.2 GB         Max_CA 7 GB
[2024-02-02 08:24:53,386] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.23 GB, percent = 10.6%
[2024-02-02 08:24:58,336] [INFO] [utils.py:802:see_memory_usage] After creating fp16 partitions: 2
[2024-02-02 08:24:58,337] [INFO] [utils.py:803:see_memory_usage] MA 7.12 GB         Max_MA 7.18 GB         CA 10.15 GB         Max_CA 10 GB
[2024-02-02 08:24:58,337] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 110.13 GB, percent = 11.3%
[2024-02-02 08:24:58,409] [INFO] [utils.py:802:see_memory_usage] Before creating fp32 partitions
[2024-02-02 08:24:58,410] [INFO] [utils.py:803:see_memory_usage] MA 7.12 GB         Max_MA 7.12 GB         CA 10.15 GB         Max_CA 10 GB
[2024-02-02 08:24:58,410] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 110.12 GB, percent = 11.3%
[2024-02-02 08:24:58,515] [INFO] [utils.py:802:see_memory_usage] After creating fp32 partitions
[2024-02-02 08:24:58,516] [INFO] [utils.py:803:see_memory_usage] MA 14.11 GB         Max_MA 14.11 GB         CA 17.14 GB         Max_CA 17 GB
[2024-02-02 08:24:58,516] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 110.15 GB, percent = 11.3%
[2024-02-02 08:25:02,335] [INFO] [utils.py:802:see_memory_usage] Before initializing optimizer states
[2024-02-02 08:25:02,336] [INFO] [utils.py:803:see_memory_usage] MA 14.11 GB         Max_MA 14.11 GB         CA 17.14 GB         Max_CA 17 GB
[2024-02-02 08:25:02,336] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.19 GB, percent = 10.6%
[2024-02-02 08:25:02,494] [INFO] [logging.py:96:log_dist] [Rank 0] time (ms) | init_optimizer_state: 149.28
[2024-02-02 08:25:02,579] [INFO] [utils.py:802:see_memory_usage] After initializing optimizer states
[2024-02-02 08:25:02,579] [INFO] [utils.py:803:see_memory_usage] MA 28.09 GB         Max_MA 35.09 GB         CA 38.59 GB         Max_CA 39 GB
[2024-02-02 08:25:02,580] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.26 GB, percent = 10.6%
[2024-02-02 08:25:02,580] [INFO] [stage3.py:482:_setup_for_real_optimizer] optimizer state initialized
[2024-02-02 08:25:03,116] [INFO] [utils.py:802:see_memory_usage] After initializing ZeRO optimizer
[2024-02-02 08:25:03,117] [INFO] [utils.py:803:see_memory_usage] MA 36.95 GB         Max_MA 40.78 GB         CA 47.5 GB         Max_CA 48 GB
[2024-02-02 08:25:03,117] [INFO] [utils.py:810:see_memory_usage] CPU Virtual Memory:  used = 103.16 GB, percent = 10.6%
[2024-02-02 08:25:03,117] [INFO] [logging.py:96:log_dist] [Rank 0] DeepSpeed Final Optimizer = AdamW
[2024-02-02 08:25:03,117] [INFO] [logging.py:96:log_dist] [Rank 0] DeepSpeed using client LR scheduler
[2024-02-02 08:25:03,117] [INFO] [logging.py:96:log_dist] [Rank 0] DeepSpeed LR Scheduler = None
[2024-02-02 08:25:03,117] [INFO] [logging.py:96:log_dist] [Rank 0] step=0, skipped=0, lr=[0.0], mom=[(0.9, 0.98)]

In Stage 3 initialize beginning, we already have the fp32 part for each GPU ( 7GB * 4 =28 GB almost the size with a 7B model) , while during creating fp32 partitions, the memory cost is doubled, is it created again here?
And I do not see any problem with mixed precision mode above, where we have the fp16 part for each GPU at initialize beginning, GPU memory cost dose not change after creating fp16 partitions.
So is this a BUG or have I misunderstood something?

@jomayeri Thanks for your answer

@jomayeri  Sorry, it looks that I have missed something. I think if using a fp32 training instead mixed precision training, then the weight for parameter in optimizer and the weight of the model for computing the gradient should be the same. which means in my second situation, the memory allocated after initializing optimizer states should be around 3 * 7GB instead of 4 * 7 GB .


[cleanstr] Add CSAM scanning

Linda to figure out the regs and the product specs for this.

we do not need to do this work, we only need to give people the option to report it.


Support custom schemas for Special Route Publishing

Allows a custom schema to be passed in when publishing a special route.

When does a special route not match the special route schema? (I'm assuming that is why the schema name needs to be different in this use case?)

This change is specifically to support the homepage https://github.com/alphagov/govuk-content-schemas/pull/610
Seems to me that the SpecialRoutePublisher is fundamentally more about maintaining these special pages than it is about policing the use of the special_route schema.