Copy and update dict

Sometimes we mess with stuff in getstate, e.g. to avoid reflexive relationships between nodes and channels, but getting the state should never modify the current state, so always make a fresh dictionary. Similarly, the returned state might possibly not have all the content our current state does, so use update instead of overwriting.

Oops, forgot to branch first. Will force-push the original branch


Relationship between MediaType and MediaTypeBuf

I tried to think of MediaType and MediaTypeBuf as analogous to Path and PathBuf or &str and String, but they don't seen to interact in the same way.
Notably, I can write a function that takes either &str or String:
fn func<S: AsRef<str>>(string: S) {
    println!("{}", string.as_ref());
}

Or a function that takes Path and PathBuf
fn func2<P: AsRef<Path>>(path: P) {
    println!("{:?}", path.as_ref());
}

But I don't quite see the relationship between MediaType and MediaTypeBuf. There don't seem to
be any methods to cast between one to the other. MediaType also doesn't have a to_str() or
similar function.
I'm trying to write a function where a mime type needs to be passed as parameter. Currently it
takes mime_type: MimeType, where MimeType: AsRef<[u8]>.
Do you have any insight for me on this case? Do you think that mediatype is a good fit here, or am I trying to fix square peg into round hole?

Looking closer at the implementation, I see that MediaType does actually have any reference to a string (or bytes) with the mime type; only separate bits which are non-continuous.
So I guess that there's no way to get a &str or &[u8] without more expensive shuffling.

OTOH, MediaTypeBuf cannot be constructed in a const context, so one can't have a few const variables for the commonly used types in a crate.
So using MediaTypeBuf is flexible with consumers for the unusual case, but more expensive for the common case.
I guess the real tricky part is the inability to cast between the two. Are they mostly incompatible implementations?

@WhyNotHugo MediaTypeBuf and MediaType have very different inner structures so I could not implement AsRef. You can convert MediaTypeBuf to MediaType using MediaTypeBuf::to_ref.

I made the two separate types for different situations because it is impossible to accomplish both const-constructibility and owned-type in a single type. You can cast between MediaTypeBuf and MediaType but it's not same as str and String.
let text_plain = MediaType::parse("text/plain; charset=UTF-8").unwrap();
let text_plain: MediaTypeBuf = text_plain.into();
let text_plain_ref: MediaType = text_plain.to_ref();
let text_plain_ref: MediaType = (&text_plain).into();

I'm trying to write a function where a mime type needs to be passed as parameter. Currently it
takes mime_type: MimeType, where MimeType: AsRef<[u8]>.

Do you have any insight for me on this case? Do you think that mediatype is a good fit here, or am I trying to fix square peg into round hole?

For the function parameter, I recommend to use MediaType. You can construct it from an arbitrary string using MediaType::parse.


Write document for options on building mamba/conda integration for bundled app

🧰 Task
This task will provide a document summarizing the steps needed to provide initial support for conda/mamba on briefcase. This will also define the posible options on including this in the bundle.
Topics to detail and coves

napari installation in user space
Plugin installation in user space
micromamba vs mamba vs conda
Briefcase work to allow
Autoupdates
App store
Other app stores

I am drafting a first version of this document!

I think we can close this for now


Feature requests and use cases

Here are some features and use cases that @cscherrer brought up on Slack.

Inlining data in a model
But not forcing that - data can also be external
Online modeling, e.g. Kalman filtering
Pyro-style approach, passing model and guide
Refactoring, e.g. change to non-centered parameterization
Composability - models as distributions, etc
Easily switch between prior, posterior, likelihood
Posterior predictive checks

Thanks, @cscherrer. These are very nice features to have in a PPL like Turing/Soss. I think Julia provide an excellent platform for implementing these features, which is also why we picked Julia as the working language for Turing. Some features are already on Turing's TODO list (e.g. composability, easy switch between prior, posterior, likelihood). Other features might require changes on the compiler side (e.g. inlining data), or adding new inference algorithm support (e.g variational inference, Kalman filtering), or utility functions (e.g. posterior predictive checks). It would be nice to collaborate so that we can build a powerful PPL library in Julia.

About inlining data, I am not sure this is always a good idea. Inlining means that the code size scales up with the amount of data, so the compilation time also scales up the same way. For small datasets, it may give a decent speedup but for large-ish datasets, I am skeptical of the benefits.
Either way, I can think of 2 ways to (ideally) get this inlining behaviour in Julia without any changes on Turing's side:

Use a Tuple data, and trust Julia's constant propagation.
Encode the data in the type system. For example:

struct InlinedData{D} end
Base.getindex(::InlinedData{D}, i...) where D = D[i...]

Then we can define and sample from the model using:
@model gdemo(x) = begin
         s ~ InverseGamma(2, 3)
         m ~ Normal(0, sqrt(s))
         x[1] ~ Normal(m, sqrt(s))
         x[2] ~ Normal(m, sqrt(s))
         return s, m
end
data = (1.5, 2.0)
inlined_data = InlinedData{data}()
model = gdemo(inlined_data)
sample(model, HMC(1000, 0.1, 5))

While the above code should work right now in Turing, I am not sure if it performs as expected or not. I can look into it later.

Another feature brought up in https://discourse.julialang.org/t/probabilistic-programming-repositories/19125/6 is custom transformations. IIUC, correctly this should be possible with a callback. So we can have the option of the users specifying the kind of transformation function they want to use which they can define themselves. Even further, the callback can accept the current state of the model, e.g. the already sampled parameters and the data as inputs, so the advanced user can condition the choice of the transformation on the data or other random variables. @tpapp

Can you give a mock example with the callback syntax? FWIW, I would just allow a function.

Yes, it will be a function. So something like:
@model logpdf_with_trans model_generator(x) = begin
   ....
end

where logpdf_with_trans is a function that does:
function logpdf_with_trans(dist, x, data)
    ....
end

dist is the distribution, x is the random variable, and data will be a named tuple of the input data. This is the rough idea. There may also be better syntax for this.

That's another option I guess, and any data dependence can be sorted out outside the model definition. A MWE would help us make the best call.

Just to clarify: with custom transformations, in my experience the costly and nontrivial part of the computation is the log Jacobian adjustment. You can use AD, but it is easy to run into type stability issues unless you are careful configuring ForwardDiff, and even then it can be very slow.
The best route I have found for complex models is to have the user code both the transformation and the log abs det of the Jacobian, and provide a function to verify this using ForwardDiff.

@tpapp Have you had a look at https://github.com/TuringLang/Bijectors.jl which I think does what you are concerned about but currently doesn't provide an interface to easily extend the transformations with custom transformations. @yebai and @willtebbutt have more experience on this.

Moving away from AD, and making it the default, is an option but it may require some significant redesign of Turing and Bijectors internals.

@trappmartin: yes, I have, it seems to contain manually coded Jacobians.
Also, for some fairly complicated transformations, intermediate results can also be useful for inference, so it is difficult to separate transformation and likelihood.

Also, for some fairly complicated transformations, intermediate results can also be useful for inference, so it is difficult to separate transformation and likelihood.

May you give an example?

Have you all seen the design of edward 2? https://arxiv.org/pdf/1811.02091.pdf
@cscherrer


Add Frozen-Flask support

Add support for Frozen-Flask to generate static webpages.

Note: Not currently compatible with Flask 3.0

https://github.com/Frozen-Flask/Frozen-Flask/issues/129
https://github.com/Frozen-Flask/Frozen-Flask/issues/131

Support for Flask 3.0 seems to have been resolved here

https://github.com/Frozen-Flask/Frozen-Flask/pull/132

TODO

[ ] Integrate latest release and verify compatibility with the project


tf2.11 tf.profiler.experimental  doesn't generate trace.json.gz and other files compared with tf2.10

Click to expand!
Issue Type
Bug
Source
binary
Tensorflow Version
tf 2.11
Custom Code
No
OS Platform and Distribution
Linux Ubuntu 20.04
Mobile device
Linux Ubuntu 20.04
Python version
3.10
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
In tf2.10, when use the tf.profiler.experimental.start(logdir) and tf.profiler.experimental.stop(). It will generate many files as bellow in logdir folder.
.
├── events.out.tfevents.XXXX.profile-empty
└── plugins
    └── profile
        └── 2022_11_29_08_25_43
            ├── XXXX.input_pipeline.pb
            ├── XXXX.kernel_stats.pb
            ├── XXXX.memory_profile.json.gz
            ├── XXXX.overview_page.pb
            ├── XXXX.tensorflow_stats.pb
            ├── XXXX.trace.json
            └── XXXX.xplane.pb

But in tf2.11, it only generate these files.
.
├── events.out.tfevents.XXXX.profile-empty
└── plugins
    └── profile
        ├── 2022_11_29_08_32_10
        │   └── XXXX.xplane.pb

I think the tf2.11 outputs files should be the same as the tf2.10.
Is this a bug? If not, can you tell me an alternative solution to get them in tf2.11?

Standalone code to reproduce the issue
import random
import tensorflow as tf
options = tf.profiler.experimental.ProfilerOptions(host_tracer_level = 3,
                                                   python_tracer_level = 1,
                                                   device_tracer_level = 1)
tf.profiler.experimental.start("logdir_simple_tf211(1)", options=options)

""" Simple training model """
def Y(a, x):
    return a*(x**2 + 4)

""" Target model """
def Z(a):
    return a*(4**2 + 4)

lr = 0.01
x = tf.Variable(1.1,name = 'var')
optimizer = tf.keras.optimizers.Adam(lr=0.01)

for _ in range(10000):
    input = random.randint(1,255)
    target = Z(input)
    with tf.GradientTape() as tape:
        pre = Y(input, x)
        loss = abs(pre - target)

    gradient = tape.gradient(loss,x)
    optimizer.apply_gradients([(gradient, x)])

    if _ % 100 == 0:
        print("loss:", loss.numpy())

print("x: ", x.numpy())
tf.profiler.experimental.stop(save=True)

Relevant log output
No response

@LIONEFAN,
I tried to execute the mentioned code and was able to fetch the similar output in both tensorflow versions 2.10 and 2.11. Kindly find the gist of it here and the images for the reference.

Thank you!

@LIONEFAN, I tried to execute the mentioned code and was able to fetch the similar output in both tensorflow versions 2.10 and 2.11. Kindly find the gist of it here and the images for the reference.  Thank you!

Hi @tilakrayal,
I also test it in gist here, but my results are different with you.

I think you maybe run them all in tf2.11.
I suggest you manually run the tf2.10 pip install and code firstly. Then run the tf2.11 pip install and restart the runtime in order to use newly installed versions. And then run the code in tf2.11.
Thanks.

Hi @tilakrayal, can you reproduce this problem?

Hi, we have same issue with 2.11 release. @cliveverghese Is there anything equalivant for trace.json. Is the data moved to ip-xxx.xplane.pb file?

Hi,
This behavior was updated as part of commit https://github.com/tensorflow/tensorflow/commit/52992fc29f00fc743e07e16067f6418af6c489ff to only save the xplane.pb file as the other files are derived from this. The results are now computed when viewing the analysis results on Tensorboard.
You can view the trace and other tool results on Tensorboard with the tensorboard-plugin-profile[1].
Would you like to access the trace.json.gz directly? We would like to know more about your use case.
1 : Profiling on colab

We just try to figure out the changes for these trace data. Thanks for the reply

@cliveverghese
Thanks for your reply. Now I can view the trace by using Tensorboard on tf 2.11.
But is there a way to directly generate the trace.json.gz on tf 2.11? Because in some case, I only want to focus on the timeline. And then I can load it in chrome://tracing directly.

@LIONEFAN , as per the commit mentioned here  https://github.com/tensorflow/tensorflow/commit/52992fc29f00fc743e07e16067f6418af6c489ff, I don't think there is any workaround to generate trace.json.gz file other than the solution mentioned above.
Even the Test cases has been moved out in the above change.

Thanks, I don't have any questions.


Can't undo actions of ItemList editor

Godot version:
3.2 alpha3
Steps to reproduce:

Create a scene
Add ItemList
Open the elements editor

Add something
Close the window
Ctrl + Z
Nope, doesn't work

Probably applies to other Control nodes with similar editors too.

Hi KeBeWi,
I am going to take this issue with some friends if it is not already being worked on.

Sure, you can take this issue.

Hello @zcxalt, I see you are currently working on this issue. Meanwhile, I also found a solution to this. If don't mind, can I make a PR for this issue? ( ╹ω╹ )


updates golang for CVE patches and general improvements

@ygoyal18 - let's delay this to 2.4 release.

@x85446 @ygoyal18  - please rebase, verify and then merge in.

Commit shoudl explain why
export CGO_ENABLED_riscv64 = ""
Is needed, it doesn't make sense since we're dong Arm/Arm64/x64 targets?

rm-goupdate is newer and uses native golang from gatesgrath


Intermediate PHPCR generic nodes issue

Assume the following situation.
cmf_routing_auto.yml as follows:
AppBundle\Document\News:
    uri_schema: /news/{title}
    token_providers:
        title: [content_method, { method: getTitle }]
    conflict_resolver: auto_increment
    defunct_route_handler: leave_redirect

AppBundle\Document\Page:
    uri_schema: /{title}
    token_providers:
        title: [content_method, { method: getTitle }]
    conflict_resolver: auto_increment
    defunct_route_handler: leave_redirect

Assume that with this configuration I first create a "News" document whose title is "My News". Assuming also that the routes base path is /cms/routes I have the following PHPCR nodes:

/cms/routes/news: this is a node whose phpcr:class is Doctrine\ODM\PHPCR\Document\Generic
/cms/routes/news/my-news: this is the AutoRoute node which points to "My News" content document

Now if I want to create a Page whose title is "News" I'll get the following error:
[1/2] ContextErrorException: Catchable Fatal Error: Argument 1 passed to Symfony\Cmf\Bundle\RoutingAutoBundle\Adapter\PhpcrOdmAdapter::compareAutoRouteContent() must implement interface Symfony\Cmf\Component\RoutingAuto\Model\AutoRouteInterface, instance of Doctrine\ODM\PHPCR\Document\Generic given ...

This is because the schema configuration for a Page document whose title is "News" will end in the PHPCR node path /cms/routes/news and this node already exists and is an instance of Doctrine\ODM\PHPCR\Document\Generic.
I think that the RoutingAuto component should treat a Doctrine\ODM\PHPCR\Document\Generic node as a "free" route and should replace the generic node with an AutoRoute node that point to the proper content document.
What do you think about this? Can I work on a PR on this issue?

I agree with what you suggest.
Assuming that we will only ever have instances of Route and Generic in the route tree, then we could safely assume that Generic nodes can be replaced by Route nodes and throw an exception if any other node type were found.
One problem we will encounter is how to "replace" the Generic node, as we are also concerned with its children.

We could move the child nodes to a temporary location, remove the Generic node, create the AutoRoute node and move the children back.
We could rename the Generic node (e.g. <node-name>.tmp, create the AutoRoute node, then migrate the children, then remove the <node-name>.tmp
Other suggestions? // @dbu @lsmith77

This work could be done in the AutoRouteManager https://github.com/symfony-cmf/RoutingAuto/blob/1.0.1/AutoRouteManager.php#L60
So, please feel free to have a go at this :)

Hi Daniel,
Yes you're right, this is a PHPCR adapter issue because in an ORM adatpter we probably wouldn't have this problem. So I think I opened the issue in the wrong place, sorry...
Anyway I think that we have not to change the AutoRouteManager implementation nor the AdapterInterface. I think it's sufficent to change the implementation of two methods in the PHPCR adapter:

the findRouteForUri should return null if the node found in that path is a generic node
the createAutoRoute should do the "replace" work if for the requested uri there is a generic node

What do you think?

Yes, that sounds good :) If we use this solution then we should remember to document this new responsiblities in the AdapterInterface in this library.

@ I don't think it's a new responsibility. It's just a new implementation of the current responsibilities for the PHPCR ODM adapter.

I agree with @WouterJ. I don't see it as a new responsibility of the Adapter.
Anyway I'll work on it and I'll come back with a PR (I hope).

@dantleech @WouterJ PR submitted. Let me know what do you think. Thank you!


New example post layout parameterization and new property edb.board_size

@Samuelopez-ansys @maxcapodi78 it looks like something's wrong in Icepak.


PROPOSAL: Autogenerated Documentation

I'm thinking of two possibilities or simultaneous:
MINI (Just update a section of a markdown readme doc)
Allow Justfile to search though an existing markdown (or html document) and locate specific 'justfile' tag that allows just to do a replace operation on it. The replaced section is similar to when calling just --list but in a more detailed manner (e.g. expected arguments and examples)

recipes
description

build
build stuff

test
test stuff

Plus you could have each [build](JUSTDOC.md#build) recipes point to a JUSTDOC.md (if full documentation is enabled)
FULL (Create an entire autogenerated documentation page with all the recipes and how to use it)
Full autogenerated markdown documentation of every command that can be invoked by the user (Maybe with categories like, maintainers, developers, user etc...) based on the comments
- This would also provide the opportunity to creating a visual graph of dependencies of each recipes, so readers can at a glance see what each recipes will also trigger... (e.g. build will call 'environment_setup' and 'compile' and 'package'). (You might want to allow allow for marking some form of hashtag, so that we show only the most relevant connections. e.g. #buildsystem should not show the logger module, only connection to compile and other relevant recipes)
- Maybe clicking on a dependency module would also jump to that relevant recipes in the doc
graph TD;
    build-->environment_setup;
    build-->compile-->test;
    build-->package;

Discussed in https://github.com/casey/just/discussions/2030

Originally posted by mofosyne May 14, 2024
Maybe have <!-- just doc start --> start and end tags and replace it with an autogenerated document of all available commands?

@casey stance on this proposal

Generating a markdown document with all the commands would be super easy, so I wouldn't be opposed to it, but I would want to get some feedback that this was something that multiple users wanted. Could you create an issue? It's likely to get more comments as an issue, I think.

Not intending to implement this yet, so others are free to take the mantle of responsibility here.

There is a just --dump --dump-format=json | jq that outputs some json describing the Justfile. I'd suggest separating the concerns: a markdown documentation should be a separate tooling that consumes that json.
And I'd be rather curious to see a toy example of this experimented upon. I've got a similar situation: rustdoc generates json, and no text based (markdown or otherwise) for rust code documentation has been implemented, as far as I know. Being a terminal fundamentalist, whatever is done to generate markdown doc from that kind of json would interest me.
But I'd rather have that as a separate tooling from just. Some justdoc tool that would consume the json would fit my taste more than having that kind of code in just itself.

Yeah. I think the issue is that the Json format is not quite stable. Also a bit hard for me to interpret how I would format the content.
Could you write a hypothetical snippet markdown document of what would be useful? I think ideally we would have a quick reference table then sub section covering each command and what you can do with it or something.
It's clear we can't just show name but maybe we need to provide command examples or something.

@mofosyne Naively, I believe you should use jq to preprocess the json and leave it only a format that could fed to some kind of tera templating engine. I do not see the tera crate providing any kind of cli, but I believe a minimalistic piece of code that can be fed json from stdin and piped to an executable that puts it in some markdown template could perhaps hack the job away.
Pseudo-shell-code:
just --dump --dump-format=json | jq -r cat preprocess.jq | tera-executable markdown-template
Wrapping that up in some executable script.
My 2 cents.
But I'm not working on that at the moment.

If you're experimenting, you might look into writing a simple Pandoc "reader" in Lua. Here's an example.
A more direct approach JSON-formatted Pandoc AST directly, e.g. with this crate. If this were added to just it might look like this:
just --dump --dump-format=pandoc | pandoc --from=json --to=markdown > doc.md

I'd advise jless to dive into the json. Whether that be for just json output or (in my case, rustdoc json output).
https://github.com/PaulJuliusMartinez/jless

I've managed to make a justfile that reorders the json and outputs roff and texinfo using a tera cli crate for templating. Trying to make it a bit more self-contained, and it may help out.

Did someone say "quick and dirty"?  This shows the graph of dependencies, which I realized I really wanted, even though my justfile is fairly simple.
The subprocess.run(["open"... is specific to MacOS, but the rest should be portable.
(@mofosyne asked to see this)
import json
import subprocess
import tempfile

def main():
    json_output = subprocess.run(
        ["just", "--dump", "--dump-format", "json"],
        check=True,
        capture_output=True,
    ).stdout

    with tempfile.NamedTemporaryFile(suffix=".svg") as tmpfile:
        reader_proc = subprocess.Popen(["dot", "-Tsvg"], stdin=subprocess.PIPE, stdout=tmpfile)

        reader_proc.stdin.write(b"digraph G {")

        data = json.loads(json_output)
        recipes = data["recipes"]

        for recipe_name, stuff in recipes.items():
            dependencies = [d["recipe"] for d in stuff["dependencies"]]
            for d in dependencies:
                reader_proc.stdin.write(f'"{recipe_name}" -> "{d}"'.encode())

        reader_proc.stdin.write(b"}")

        reader_proc.stdin.close()
        reader_proc.wait()

        subprocess.run(["open", "--wait-apps", tmpfile.name])

Output from the above:

@offby1 attempted to replicate, but had to adjust it a bit
#!/usr/bin/env python3
# python3 dotgen.py | dot -Tsvg >> justfile.svg
import json
import subprocess

json_output = subprocess.run(
    ["just", "--dump", "--dump-format", "json", "--unstable"],
    check=True,
    capture_output=True,
).stdout

print("digraph G {")
data = json.loads(json_output)
recipes = data["recipes"]
for recipe_name, stuff in recipes.items():
    dependencies = [d["recipe"] for d in stuff["dependencies"]]
    for d in dependencies:
        print(f'"{recipe_name}" -> "{d}"')
print("}")

Rendered against, this just repo's justfile for extra example of how it looks like

Might need to think it though a bit more before using this, as it's not obvious how useful a graph would be in documentation context.

@offby1
Oh, but it works well with mermaid so that's a plus
#!/usr/bin/env python3
# python3 mermaidgen.py | mmdc -i - -o /tmp/output.png ; xdg-open /tmp/output.png
import json
import subprocess

json_output = subprocess.run(
    ["just", "--dump", "--dump-format", "json", "--unstable"],
    check=True,
    capture_output=True,
).stdout

print("graph TD")
data = json.loads(json_output)
recipes = data["recipes"]
for recipe_name, stuff in recipes.items():
    dependencies = [d["recipe"] for d in stuff["dependencies"]]
    for d in dependencies:
        print(f'    {recipe_name} --> {d}')

graph TD
    check --> fmt
    check --> clippy
    check --> test
    check --> forbid
    ci --> build-book
    polyglot --> _python
    polyglot --> _js
    polyglot --> _perl
    polyglot --> _sh
    polyglot --> _ruby
    pr --> push
    push --> check
    view-man --> man

#!/usr/bin/env python3
# python3 mermaidgen.py | mmdc -i - -o /tmp/output.png ; xdg-open /tmp/output.png
import json
import subprocess

json_output = subprocess.run(
    ["just", "--dump", "--dump-format", "json", "--unstable"],
    check=True,
    capture_output=True,
).stdout

data = json.loads(json_output)
recipes = data["recipes"]

print("# justfile autogenerated documentation")

print("## recipe list")
print("")

for recipe_name, stuff in recipes.items():
    if stuff["doc"] is not None:
        print(f"- `{recipe_name}`: {stuff['doc']}")
    else:
        print(f"- `{recipe_name}`")

print("")
print("## not simple recipes")

for recipe_name, stuff in recipes.items():
    if stuff["doc"] is None and len(stuff["parameters"]) <= 0 and len(stuff["dependencies"]) <= 0:
        continue

    print("")
    print("---")
    print("")

    recipe_name_sig = recipe_name
    if len(stuff["parameters"]) > 0:
        recipe_name_sig += "("
        for parameter_entry in stuff["parameters"]:
            recipe_name_sig += " " + parameter_entry["name"]
        recipe_name_sig += " )"

    print(f"## <a id=\"{recipe_name}\"> {recipe_name_sig} </a>")

    if stuff["doc"] is not None:
        print(stuff.get("doc", ""))

    if len(stuff["parameters"]) > 0:
        print("")
        print("### Parameters")
        print("")
        for parameter_entry in stuff["parameters"]:
            var_type = ""
            if parameter_entry["kind"] == "plus":
                var_type = " (one or more arguments)"
            elif parameter_entry["kind"] == "star":
                var_type = " (zero or more arguments)"
            default_value = ""
            if parameter_entry["default"] is not None:
                default_value = f' = {parameter_entry["default"]}'
            print(f'* {parameter_entry["name"]}{var_type}{default_value}')

    if len(stuff["dependencies"]) > 0:
        print("")
        print("### Call Graph")
        print("")
        print("```mermaid")
        print("graph LR")

        def call_graph_gen(recipe_name):
            if recipe_name not in recipes:
                return
            stuff = recipes.get(recipe_name)
            dependencies = [d["recipe"] for d in stuff["dependencies"]]
            for d in dependencies:
                print(f'    {recipe_name} --> {d}')
                print(f'    click {d} "#{d}"')
                call_graph_gen(d)

        call_graph_gen(recipe_name)
        print("```")

    print("")

Okay put in more effort to try and make a proof of concept justfile autodoc creator in this gist https://gist.github.com/mofosyne/fd6a43116c9e1e224ff1bd8f7068c662 . It should be usable now.
But I still hope we can integrate this into justfile so it's something that will always be available.
One thing I do notice, is we don't really provide a method to explain the meaning of each arguments.


Uninstalling (via CLI) an unused and disabled node leaves it visible in palette manager.

Current Behavior
If an unused node module, which is disabled in palette manager, is uninstalled using npm command line, and node-red restarted, then the node is still shown as installed in the palette manager.
Expected Behavior
It should disappear from the palette manager installed nodes.
Steps To Reproduce

Install a node using the palette manager
Disable the node using the palette manager
Uninstall the node using npm from the command line
Restart node-red
Refresh the browser page
Look in palette manager where the node is still shown as installed and disabled
Attempting to remove it in the palette manager fails (module not found)

The situation can be recovered by installing it again using the command line, restarting node-red, and removing it using palette manager.
Example flow
No response
Environment

Node-RED version: 3.0.2, and 3.1.0-beta.4
Node.js version: 18 and 20
npm version:
Platform/OS: Windows 11 and Ubuntu 22.04
Browser: Edge

This is a long-standing issue. If a node is disabled, the runtime doesn't 'look' for it when starting up - which means it doesn't realise it has been deleted. This has been the case ever since we introduced the ability to enable/disable individual nodes.


CAMEL-18341 - Upgrade from Codehaus Groovy 3.0.12 to Apache Groovy 4.0.4

might worth merging at same time than https://github.com/apache/camel/pull/8102

I do not understand why it complains about uncommited files.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   poms/bom/src/main/generated/flattened-full-pom.xml
	modified:   poms/bom/src/main/generated/flattened-reduced-pom.xml
	modified:   poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml

the mentioned files have a lot of modifications. i tried to run the build locally again and I do not have other changes

Attached a diff of the changes that I see when running the build.
Not sure what Maven version you are running, but try to run the build with the mvnw script if you have not already done so. That may help.
diff.txt

ah when i see the diff, i think it is because we need to merge first https://github.com/apache/camel/pull/8102

outdated.
Note that Camel Core has migrated to Apache groovy 4 https://github.com/apache/camel/pull/9487


chore: Move scalar compatibility instance for ℤ and ℕ on rings to their own files

Part of #9411.
Also corrects some instance names in the docstrings.

bors merge


Viki login fix (Windows+Ubuntu) -> 1080p download is working again.

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[ ] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
Windows 10 (pyinstaller) with python 3.6.5:

youtube-dlv -F https://www.viki.com/videos/1042511v-doctor-stranger-episode-18 -u "USER" -p "SECRET" --verbose
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-F', 'https://www.viki.com/videos/1042511v-doctor-stranger-episode-18', '-u', 'PRIVATE', '-p', 'PRIVATE', '--verbose']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2020.07.28
[debug] Python version 3.6.5 (CPython) - Windows-10-10.0.19041
[debug] exe versions: ffmpeg 4.2.1, ffprobe 4.2.1
[debug] Proxy map: {}
[viki] Logging in
[viki] 1042511v: Downloading video JSON
[viki] 1042511v: Downloading video streams JSON
[info] Available formats for 1042511v:
format code  extension  resolution note
mpd-http     mpd        unknown
360p-https   mp4        360p
480p-https   mp4        480p
720p-https   mp4        720p
1080p-https  mp4        1080p      (best)

Ubuntu (Win10 WSL ~ make) with python 3.5.2:

./youtube-dl -F https://www.viki.com/videos/1042511v-doctor-stranger-episode-18 -u "USER" --verbose
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-F', 'https://www.viki.com/videos/1042511v-doctor-stranger-episode-18', '-u', 'PRIVATE', '--verbose']
Type account password and press [Return]:
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2020.07.28
[debug] Python version 3.7.8 (CPython) - Linux-4.4.0-19041-Microsoft-x86_64-with-Ubuntu-16.04-xenial
[debug] exe versions: ffmpeg 2.8.17, ffprobe 2.8.17
[debug] Proxy map: {}
[viki] Logging in
[viki] 1042511v: Downloading video JSON
[viki] 1042511v: Downloading video streams JSON
[info] Available formats for 1042511v:
format code  extension  resolution note
mpd-http     mpd        unknown
360p-https   mp4        360p
480p-https   mp4        480p
720p-https   mp4        720p
1080p-https  mp4        1080p      (best)

What I noticed using -p and having a '!' in your password even when inside "" will do something else and the supplied password will be wrong then. But that's just a side note.
There were workaround using --add-header on command line. Those do work on Windows but apparently not on Ubuntu.
I still don't know why there is a difference when using Windows 10 and Ubuntu. But I found the problem when using Ubuntu and could fix it. The Api for some reasons behave differently depending on OS. It can happen that even if you get a 400 or 404 on Ubuntu that it still contains a json with the wanted data. Under Windows it will simply return with 200. Don't ask me why it's 400 or 404 for Ubuntu, honestly no clue.
Some related issues/PR:
#25534, #26320, #26246, #25752, #25374, #25268, #25127, #25106
Let me know if everything works for you.
Also leave some upvote/attention for my other PR #26265 for soundcloud which no one bothered to merge/review :(

no one wants your commit from two years ago...

@blackjack4494  could you also apply this to python?
I just noticed when I download english subtitle it captured and download the first subtitle which is not sync to the video.
Here's my code for that fix so that It can find the right subtitle that synchronize with the video
    public static async Task<string> GetSubtitle(string title, string id)         {             string final = string.Empty;             string api = $"https://www.viki.com/player5_fragment/{title}.{id}??id={title}&autofocus=false";             var result = await Task.Run(() => GetWebSource(api));             var reg = new Regex(@"var parsedStreamSubtitles = ([\s\S]*:false}]})").Match(result).Groups[1].Value;             JObject obj = JObject.Parse(reg);             var r = getJson(obj, "dash", "src", "en.vtt");             return obj.ToString();         }         private static string getJson(JObject obj, string main, string input, string contains)         {             return obj[main].Where(x => x.ToString().Contains(contains)).FirstOrDefault()?[input].ToString();         }
Here's the difference from the downloaded subtitle: from this link: https://www.viki.com/videos/91001v-dream-high-episode-1
from my code:
WEBVTT
1
00:00:00.824 --> 00:00:04.803
Right now, fans are in attendance at the L.A. Staples Center
from youtube-dl:
WEBVTT
1
00:00:07.034 --> 00:00:11.013
Right now, fans are in attendance at the L.A. Staples Center

@zackmark29 that is odd. I had no problems on some other videos I tried. While inspecting this is what you will get when you use your browser
https://api.viki.io/v4/videos/91001v/subtitles/de.vtt?stream_id=94944601&app=100000a&t=1597845542&sig=
however this is the one generated by youtube-dl with wrong timestamps
https://api.viki.io/v4/videos/91001v/subtitles/en.vtt?app=100005a&t=1597846838&site=www.viki.com&sig=
there is a stream_id added to the query and the app is different. It's not that easy like copy&paste to add the stream_id when requesting subtitles since you have to generate a signature from the whole query. So simply adding it to the query without modifying the signature will give you an error with wrong signature. That all assumes the missing stream_id is indeed the missing piece. Or if the problem is the app or even both.

@zackmark29 that is odd. I had no problems on some other videos I tried. While inspecting this is what you will get when you use your browser
https://api.viki.io/v4/videos/91001v/subtitles/de.vtt?stream_id=94944601&app=100000a&t=1597845542&sig=
however this is the one generated by youtube-dl with wrong timestamps
https://api.viki.io/v4/videos/91001v/subtitles/en.vtt?app=100005a&t=1597846838&site=www.viki.com&sig=
there is a stream_id added to the query and the app is different. It's not that easy like copy&paste to add the stream_id when requesting subtitles since you have to generate a signature from the whole query. So simply adding it to the query without modifying the signature will give you an error with wrong signature. That all assumes the missing stream_id is indeed the missing piece. Or if the problem is the app or even both.
But the wrong timestamp in subtitles will be another/new issue. You could open one so that it can be referenced when opening a PR.

Thank you for the information. I think not all videos has the wrong timestamp if generated by youtube-dl.
I'm gonna try later the API method for getting the subtitle. I'll see if I can grab also the correct subtitle for this url "https://www.viki.com/videos/91001v-dream-high-episode-1".
by the way, so it means the subtitle link is depends on the APP ID? I'll try later to use 100005

how can i download from viki?

how can i download from viki?

get this error
[viki] Logging in
ERROR: Unable to download JSON metadata: HTTP Error 404: Not Found (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Superseded by b92bb0e02a09930cad3c4f6a406eb503c941af61.


Resubmission and Error Feedback

Is the only feedback mechanism for errors during submission the Error response after the $import completes with details?   Are there any additional channels (letter, email, etc...) that this information is communicated back to involved providers?
What I'm trying to establish here is whether we have a single mechanism post-UDS+ or if providers will continue to receive the notifications that they've previously received while submitting for UDS along the avenues they're familiar with.

This will be addressed by HRSA on other channels such as the UTC meetings and On-boarding discussions and Office Hours. The IG will not be able to specify the mechanisms beyond what is already specified.
Please bring it up in the other forums that exist for UDS+ for a discussion on the ticket.


Mac Native M1 (arm64) support?

What is the status of Mac Native M1 (arm64) CPU support?

I've had success with Fiji, by downloading with no JRE and using a native JRE (e.g. Azul).
Works very well, nice speed up ~40% on a CPU computational task.
Some plugins that use compiled libs, etc. may need tweaks.
For example getting native CLIJ working resulted in an 8-fold speedup over Rosetta.
You can see some of my experience in this twitter thread:
https://twitter.com/psobolewskiPhD/status/1342494593082920960?s=20

@psobolewskiPhD JogAmp 2.4.0 (JOGL, JOCL, JOAL, Gluegen) was released earlier this month, and the release includes builds for mac-arm64. I should have new releases of imagej2 and fiji by the end of the week that include this release. This will be a big step toward ImageJ2 and Fiji supporting Mac M1 more comprehensively.

Cool, @ctrueden I'm happy to help test, though I'm not sure I've used those elements much previously (as I've been using Fiji with native arm64 JRE for a long time now)

@psobolewskiPhD I'm guessing that your current Fiji setup cannot use the 3D Viewer plugin. One easy way to test that is to do:

File > Open Samples > T1 Head
Image > Type > 8-bit
Plugins > 3D Viewer

And see what happens.
My hope is that with the new JOGL 2.4.0, this will either begin working automatically, or else maybe with some small tweak somewhere.

@psobolewskiPhD I'm guessing that your current Fiji setup cannot use the 3D Viewer plugin. One easy way to test that is to do:

File > Open Samples > T1 Head
Image > Type > 8-bit
Plugins > 3D Viewer

And see what happens.

Correct:
(Fiji Is Just) ImageJ 2.9.0/1.53t; Java 11.0.11 [64-bit]; Mac OS X 13.1; 170MB of 10840MB (1%)

java.lang.UnsatisfiedLinkError: /private/var/folders/sy/y3_x27j14cxg3_vhycs6cr_h0000gn/T/jogamp_0000/file_cache/jln11471013896064159920/jln8880740635522233983/natives/macosx-universal/libgluegen_rt.dylib: dlopen(/private/var/folders/sy/y3_x27j14cxg3_vhycs6cr_h0000gn/T/jogamp_0000/file_cache/jln11471013896064159920/jln8880740635522233983/natives/macosx-universal/libgluegen_rt.dylib, 0x0001): tried: '/private/var/folders/sy/y3_x27j14cxg3_vhycs6cr_h0000gn/T/jogamp_0000/file_cache/jln11471013896064159920/jln8880740635522233983/natives/macosx-universal/libgluegen_rt.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/private/var/folders/sy/y3_x27j14cxg3_vhycs6cr_h0000gn/T/jogamp_0000/file_cache/jln11471013896064159920/jln8880740635522233983/natives/macosx-universal/libgluegen_rt.dylib' (no such file), '/private/var/folders/sy/y3_x27j14cxg3_vhycs6cr_h0000gn/T/jogamp_0000/file_cache/jln11471013896064159920/jln8880740635522233983/natives/macosx-universal/libgluegen_rt.dylib
	at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
	at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
	at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
	at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
	at java.base/java.lang.Runtime.load0(Runtime.java:768)
	at java.base/java.lang.System.load(System.java:1837)
	at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:604)
	at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:64)
	at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:107)
	at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:488)
	at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:427)
	at com.jogamp.common.os.Platform$1.run(Platform.java:321)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at com.jogamp.common.os.Platform.<clinit>(Platform.java:290)
	at com.jogamp.opengl.GLProfile.<clinit>(GLProfile.java:154)
	at jogamp.opengl.ThreadingImpl$1.run(ThreadingImpl.java:83)
	at jogamp.opengl.ThreadingImpl$1.run(ThreadingImpl.java:66)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at jogamp.opengl.ThreadingImpl.<clinit>(ThreadingImpl.java:66)
	at com.jogamp.opengl.Threading.disableSingleThreading(Threading.java:164)
	at org.scijava.java3d.JoglPipeline.initialize(JoglPipeline.java:130)
	at org.scijava.java3d.Pipeline.createPipeline(Pipeline.java:92)
	at org.scijava.java3d.MasterControl.loadLibraries(MasterControl.java:837)
	at org.scijava.java3d.VirtualUniverse.<clinit>(VirtualUniverse.java:274)
	at ij3d.ImageJ3DViewer.run(ImageJ3DViewer.java:60)
	at ij3d.ImageJ_3D_Viewer.run(ImageJ_3D_Viewer.java:37)
	at ij.IJ.runUserPlugIn(IJ.java:237)
	at ij.IJ.runPlugIn(IJ.java:203)
	at ij.Executer.runCommand(Executer.java:152)
	at ij.Executer.run(Executer.java:70)
	at java.base/java.lang.Thread.run(Thread.java:829)

My hope is that with the new JOGL 2.4.0, this will either begin working automatically, or else maybe with some small tweak somewhere.

Sounds good!


Ghostscript should be available

Otherwise TYPO3 can't read/write pdf and ai files.

just until fixed
ct docker:root
apt-get update && apt-get install ghostscript -y
exit

Another temporary workaround which survives a rebuild of your app container:
Add the following to provision/roles/boilerplate-deployment/tasks/main.yml:
- name: Update repositories cache and install "ghostscript" package
  apt:
    name: ghostscript
    update_cache: yes

@georgringer could you please test ghostscript? it should be installed by default. Just be sure to pull your webdevops/php-apache-dev:whateverversion-12.34 with docker pull and rebuild your app container if you started your boilerplate before.

They should be available for all images which uses hhvm, php5, php7. You find the commits here


java.lang.LinkageError with Spring boot 3.1.x

Hello,
I am having an issue starting up my Spring boot 3 application with netflix conductor.
Getting the following exceptions on startup.
...Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.netflix.conductor.client.http.WorkflowClient]: Factory method 'getWorkflowClient' threw exception with message: ClassCastException: attempting to castjar:file:/Users/user/.gradle/caches/modules-2/files-2.1/javax.ws.rs/javax.ws.rs-api/2.1.1/d3466bc9321fe84f268a1adb3b90373fc14b0eb5/javax.ws.rs-api-2.1.1.jar!/javax/ws/rs/ext/RuntimeDelegate.class to jar:file:/Users/user/.gradle/caches/modules-2/files-2.1/javax.ws.rs/javax.ws.rs-api/2.1.1/d3466bc9321fe84f268a1adb3b90373fc14b0eb5/javax.ws.rs-api-2.1.1.jar!/javax/ws/rs/ext/RuntimeDelegate.class 	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:171) ~[spring-beans-6.0.9.jar:6.0.9] SimpleInstantiationStrategy.java:171 	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:655) ~[spring-beans-6.0.9.jar:6.0.9] ConstructorResolver.java:655 	... 124 common frames omitted Caused by: java.lang.LinkageError: ClassCastException: attempting to castjar:file:/Users/user/.gradle/caches/modules-2/files-2.1/javax.ws.rs/javax.ws.rs-api/2.1.1/d3466bc9321fe84f268a1adb3b90373fc14b0eb5/javax.ws.rs-api-2.1.1.jar!/javax/ws/rs/ext/RuntimeDelegate.class to jar:file:/Users/user/.gradle/caches/modules-2/files-2.1/javax.ws.rs/javax.ws.rs-api/2.1.1/d3466bc9321fe84f268a1adb3b90373fc14b0eb5/javax.ws.rs-api-2.1.1.jar!/javax/ws/rs/ext/RuntimeDelegate.class 	at javax.ws.rs.ext.RuntimeDelegate.findDelegate(RuntimeDelegate.java:125) ~[javax.ws.rs-api-2.1.1.jar:2.1.1] RuntimeDelegate.java:125 	at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:97) ~[javax.ws.rs-api-2.1.1.jar:2.1.1]
It seems the reason for this is because of an old version of the jersey-core:1.19.4 being used which I have tried to upgrade still that didn't work.
Here is my bean:
@Bean
@ConditionalOnMissingBean
public WorkflowClient getWorkflowClient() {
    WorkflowClient workflowClient = new WorkflowClient();
    workflowClient.setRootURI(env.getConductorServerUri());
    return workflowClient;
}

@Bean
@ConditionalOnMissingBean
public TaskClient getTaskClient() {

    TaskClient taskClient = new TaskClient();
    taskClient.setRootURI(env.getConductorServerUri());

    return taskClient;
}
...

And have the following in my implementing class
@Autowired
private WorkflowClient wfClient;

Is there a workaround to avoid this LinkageError?
Thanks

Any update regarding this one? We are considering conductor as a workflow engine for our future project built on spring boot 3 and this is a blocker. Thank you

Hi, @novotnymiro @exelon-admin  I ran into this error like you did. I figured out a workaround to bypass this error, which is using the gRPC client instead of HTTP client.
Here are steps you need to do

Enable gRPC server in your Conductor server by adding conductor.grpc-server.enabled=true in your Conductor server's application.properties file.

Use the conductor-grpc-client dependency instead of the  conductor-client. This package provides constructors like TaskClient(String address, int port) and the same APIs as those you probably will use in conductor-client.

I want to thank my co-worker, LJ ,for having inspired me to come up with this workaround

Hi everyone,
From my investigations, it seems like the issue stems from the fact that in spring boot 3 javax  namespace was moved to jarkata
This issue should be fixed by changing all dependencies from javax -> jarkata
If you still want to use the HTTP client a workaround would be to add these 2 dependencies
implementation("org.glassfish.jersey.core:jersey-common:2.34")
implementation("javax.ws.rs:javax.ws.rs-api:2.1.1")


Updated Interactive Scrollbars

Description
Originally from https://github.com/flutter/flutter/pull/71181
Started to split up into multiple changes starting with https://github.com/flutter/flutter/pull/71242
Splitting this up did not make review easier, so I have applied the feedback that has been received so far into this new PR.
Design doc: flutter.dev/go/update-scrollbars
This is the first of several changes planned for https://github.com/flutter/flutter/issues/70866
This change will refactor the Scrollbar and CupertinoScrollbar widgets to use RawScrollbar as a base class.
I wanted to complete this refactoring first since these widgets have so many common lines of code.
The RawScrollbar widget will provide the basic fade in-out scrollbar thumb the framework currently provides, with the option to customize and add additional behavior by extending the class.
RawScrollbar will enable dragging on the thumb for RawScrollbar, Scrollbar, and CupertinoScrollbar since everyone is sharing. (Previously only CupertinoScrollbar supported dragging the thumb). It will also enable tapping on the scrollbar track to page the scroll view.
This will also remove the adaptive nature of the Scrollbar widget. I want to separate the CupertinoScrollbar from Scrollbar since as we expand on these widgets and look forward to additional platforms, having special handling in Scrollbar for CupertinoScrollbar was going to get even more complicated. Adaptive widgets like these do not scale well, and are easier to maintain and debug when separated. The new Material Design Scrollbar is very similar to the CupertinoScrollbar, so I am hoping the change will have a minimal effect.
Planned Changes for Scrollbars
(Order may change as these are reviewed and land)
1. Refactor to RawScrollbar
2. Update Scrollbar to match Material Design spec
3. Add track gestures
4. Add code samples, etc.
5. Add ScrollbarTheme
6. Create Scrollbars by default for relevant scrollables on desktop and web
7. ++ There will be more iterations and other bugs/behaviors people have been sending my way. We'll get to these, the above listed items are the primary focus for now. :)
Related Issues
Part of https://github.com/flutter/flutter/issues/70866
Fixes https://github.com/flutter/flutter/issues/70105
Tests
Existing tests pass after refactoring. :)
Added tests for

gestures, dragging and tapping scrollbar.
new material behavior and styles

drag color
hover animation
track shown with hover + thickness change

Checklist
Before you create this PR, confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change

[x] No existing tests have failed including google testing

I am very happy to experience the new material scrollbar probably as the first customer. It is more beautiful and powerful. 👍
I also test the behaviors when scrollbars nested and wrote some comments above.

I have tested the Android native APP behavior, It will also come out stacked bars(but not support interactive actions):

I agree with the documentation that stacked the scrollbars is not recommended, and it is easy for developers to stagger their positions through padding or margin.
Additional, the chrome browser will automatic layout bars side by side:


Investigate capability to read radar fields.

As a developers of IMPROVER we want access to Radar data so that we can begin to develop nowcasting
Related issues: #84
It was decided that this was better as the approach isn't agreed yet.
Acceptance criteria:

Spend no longer than 3 days investigating the functionality required in #84 : Capability to read radar fields for nowcasting
Write up findings on this ticket to cover work completed and flag up any problems

https://exxreldocs:8099/display/TEPPV/MetDB+Radar+data
The above page shows the result of extrating and plotting gridded radar data from the MetDB (the code is linked from there too).
The upshot is that the 5km resolution radar data available from the MetDB are not sufficient for running a UK nowcast on a 2km standard grid.

Ok. After looking at your script for pulling back data from MetDB, I can understand that the data isn't on a sufficient resolution. Thanks for posting the code on the wiki page, although just to point out I assume that the script that you ran is a little different from the script on the wiki page, as I wouldn't have thought the datashape variable had been defined. Please update the issue when any progress is made. Thanks!

Code corrected - you were right. datashape was being defined, but I had posted the code lines in the wrong order.

Choices. We can ask for the data we need to be made available through MetDB or we can wait to see how the Service Hub will deliver these data. The latter is the preferred T&E method. If we need to demonstrate any Nowcast capability this year using a non-Service-Hub approach, we might as well use the simpler work-around of ingesting the current operational data used by the UK Nowcast.
Therefore, no further work is required on this ticket. It has absorbed about 1.5 days of effort. A slide has been added to the sprint demo presentation.

This looks fine. I'm happy for this issue to be closed.

Closing as no more work to be done right now.


Update flyway-core to 7.13.0

Updates org.flywaydb:flyway-core from 7.5.4 to 7.13.0.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.flywaydb", artifactId = "flyway-core" } ]

labels: library-update, semver-minor

Superseded by #174.


a remote code execution vulnerability.

Hi @Awilum,
I have found a remote code execution vulnerability.can you guide me how to disclose them. Should I create a new issue or should I email the details?

I reported to the cve platform, they let me use CVE-2018-9037, you can contact them for details

Vulnerability description
Monstra CMS 3.0.4 allows remote attackers to delete files via an
admin/index.php?id=filesmanager&delete_dir=./&path=uploads/ request.
Vulnerability Type
Command Execution Vulnerability
Steps to Reproduce
1、Log in as a user with page editing permissions
2、Request url:
http://your_site/admin/index.php?id=filesmanager&delete_dir=./&path=uploads
Possible Solutions
Strictly filter the delete_dir parameter and replace '../' with '_/'


To make the commit message part a bit more clear

Description
The part of 'commit message format' part can be a bit confusing for new contributors as most people try to do it with github rather than git.
Implementation
Would like to make a small change in the CONTRIBUTING.md file, adding the steps they need to follow for the commit message before pushing the changes

Can I do it? It's like a very small change

@sayantani11 go for it!

@rnjudge Can we close this issue now?


ssl: Don't access non-existent encrypt_then_mac field

When MBEDTLS_SSL_ENCRYPT_THEN_MAC is enabled, but not
MBEDTLS_SSL_SOME_MODES_USE_MAC, mbedtls_ssl_derive_keys() and
build_transforms() will attempt to use a non-existent encrypt_then_mac
field in the ssl_transform.
    Compile [ 93.7%]: ssl_tls.c
    [Error] ssl_tls.c@865,14: 'mbedtls_ssl_transform {aka struct mbedtls_ssl_transform}' ha
s no member named 'encrypt_then_mac'
    [ERROR] ./mbed-os/features/mbedtls/src/ssl_tls.c: In function 'mbedtls_ssl_derive_keys'
:
    ./mbed-os/features/mbedtls/src/ssl_tls.c:865:14: error: 'mbedtls_ssl_transform {aka str
uct mbedtls_ssl_transform}' has no member named 'encrypt_then_mac'
         transform->encrypt_then_mac = session->encrypt_then_mac;
                  ^~

Change mbedtls_ssl_derive_keys() and build_transforms() to only access
encrypt_then_mac if encrypt_then_mac is actually present.
Add a regression test to detect when we have regressions with
configurations that do not include any MAC ciphersuites.
Fixes d56ed2491be9 ("Reduce size of ssl_transform if no MAC ciphersuite is enabled")
Status
READY
Requires Backporting
NO. This is a regression present only in the development branch.
Migrations
NO
Todos

[X] Tests
~[ ] Documentation~
~[ ] Changelog updated~
~[ ] Backported~

Steps to test or reproduce
Outline the steps to test or reproduce the PR here.

Rebased to add ssl-opt.sh test.

Looks like the chacha20 and chacha20poly1305 tests don't work without AES CBC. I'm working on a fix, to be raised in a separate PR (since that PR will need backports).

This PR depends on https://github.com/ARMmbed/mbedtls/pull/2679

https://github.com/ARMmbed/mbedtls/pull/2679 has been merged.
Added a commit to update the crypto submodule to a version that includes the changes from https://github.com/ARMmbed/mbedtls/pull/2679


Documentation:  Create a Standardized Roxygen Template for Developer Vignette

Please select a category the issue is focused on?
Developer Guides
Let us know where something needs a refresh or put your idea here!
It has been observed that our roxygen headers are not standardized across the admiral code-base.  For example, some function headers have @author or @return in different places from other function headers.
In order to standardized all of our headers, we first need to create a Standard Template that shows the order of the tags and what should go in each tag.  This template will live in the Developer Guide-Programming Strategy .  An existing example and guidance already exists and can be updated once agreed upon structure is met.

Standardizing the headers also means a consistent structure across the Reference Tab on the packagedown site.
This might be good as a check in the PR checklist that the roxygen headers follow the standard template?

Proposed Structure (Updated based on Stefan's feedback)
#' Title
#'
#' Short Description (If the description consists of more than one paragraph, use the `@description` tag.)
#'
#' @param dataset Descriptive Text (order of @param tags should be order as they appear in function)
#'
.
.
#' @param an_input Descriptive Text
#'
#' @details (Deep dive of purpose, recommend workflow, documentation/links)
#'
#' @return (What is returned by this function)
#'
#' @author (original and updating authors)
#'
#' @keywords (This is helpful for our packagedown site to organize the reference page)
#'  If possible, use keywords which are used in `_pgkdown.yml`.
#'  If a new keyword is required, a corresponding section needs to be added to `_pgkdown.yml`.
#'  All keywords must be lower case.
#'
#' @seealso [related_function()] (This tag is optional. It should be used to refer to related functions.)
#'
#' @export
#'
#' @examples (Use `library(pkg_name)` rather than `pgk_name::function()`)

@pharmaverse/admiral Hi all.  Is this sufficient for standardizing the Roxygen templates?

I would use the following
#' Title
#'
#' Short Description (If the description consists of more than one paragraph, use the `@description` tag.)
#'
#' @param dataset Descriptive Text (order of @param tags should be order as they appear in function)
#'
.
.
#' @param an_input Descriptive Text
#'
#' @details (Deep dive of purpose, recommend workflow, documentation/links)
#'
#' @return (What is returned by this function)
#'
#' @author (original and updating authors)
#'
#' @keywords (This is helpful for our packagedown site to organize the reference page)
#'  If possible, use keywords which are used in `_pgkdown.yml`.
#'  If a new keyword is required, a corresponding section needs to be added to `_pgkdown.yml`.
#'  All keywords must be lower case.
#'
#' @seealso [related_function()] (This tag is optional. It should be used to refer to related functions.)
#'
#' @export
#'
#' @examples (Use `library(pkg_name)` rather than `pgk_name::function()`)

I have updated the short description and the @keywords tag. I have added the @seealso tag and moved the @return tag.

It would be super cool if we could turn this into an RStudio addin .

It would be super cool if we could turn this into an RStudio addin .

So we have a addin for logrx package and it kills our test coverage.  Maybe this admiral roxygen header and logrx addin could live together?  I would imagine there will be more as we go!!

I like the idea of having a separate addin package. Maybe we could make it customizable. So if a template file is placed somewhere in the project, it is used to generate the roxygen header.
More ideas:

We could implement a function which extracts the keywords from _pkgdown.yml. The result could be displayed for the @keywords tag.
We could add an addin which comments the selected code using #'.

If we decide to create {admiraldev} then I would put this function there.

For standardisation, should I delete the "warn.conflicts=F" param from library loading. It seems to be used for dplyr, but not in all cases? Very rarely used for other packages

From an overly-cautious, frightened programmer: An RStudio add-in? That sounds like it is changing my development environment. Would it only change the environment for that single, current project or would it change globally? Are we going to test it on multiple configurations of RStudio to ensure it will work for everyone: RStudio Server v x.xx, RStudo Desktop v y.yy, different versions of R, etc.? Will it be as easy to remove it as it is to install and with no lasting effects?

From an overly-cautious, frightened programmer: An RStudio add-in? That sounds like it is changing my development environment. Would it only change the environment for that single, current project or would it change globally? Are we going to test it on multiple configurations of RStudio to ensure it will work for everyone: RStudio Server v x.xx, RStudo Desktop v y.yy, different versions of R, etc.? Will it be as easy to remove it as it is to install and with no lasting effects?

I would imagine it would load just like the styler package loads in and makes an Addin for you.  All the checks we currently do would cover this for base R.  I'm not really aware of workflows that check RStudio builds, but I'm sure they exists.
Honestly, I think this is more of reason to create the admiraldev package and move stuff like this into it.  So we don't have any trepidations about addins causing issues for users.

For standardisation, should I delete the "warn.conflicts=F" param from library loading. It seems to be used for dplyr, but not in all cases? Very rarely used for other packages

@mbytc1 I'm unsure what you are referring to?

@mbytc1 We have the warn.conflicts = FALSE call when loading {dplyr} in examples because otherwise a warning is printed about naming conflicts which looks bad on our website. We don't have that issue with other packages so we don't bother to specify this argument there.

Do I need to update the NEWS.md file for this wehn putting in a pull request?
NB in the edits I have not added @family tag or changed @keywords; ive only rearranged everything to the order provided in the oriringal issue

This does not need a news entry as it isn't user-facing.  I think this will be brought over to admiraldev
I updated outline with @family


⚠ GitLab Server has degraded performance

In 1829949, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 11721 ms

Resolved: GitLab Server performance has improved in 96bfb0e.


Build Error: Ros Humble + Gazebo Fortress

Environment

OS Version: Ubuntu 22.04
Gazebo Fortress

Description

Expected behavior: Using colcon build --cmake-args -DBUILD_TESTING=ON should build without errors
Actual behavior: CMake file in ros_gz_example_gazebo looks for gz-cmake3 which is included only in gazebo Garden, but there is no branch for Fortress as template. In the CMake other packages from Garden are required. The actual suggested combination of ROS and Gazebo are Humble + Garden, so why should this template use only Garden? What should I use as template for Gazebo Fortress?

Steps to reproduce

Install gazebo for ROS humble (https://gazebosim.org/docs/fortress/ros_installation):
sudo apt-get install ros-humble-ros-gz

Clone this repository under the source folder of a workspace (following https://gazebosim.org/docs/fortress/ros_gz_project_template_guide)

colcon build --cmake-args -DBUILD_TESTING=ON

Output
Latitude-5590:~/project_ws$ colcon build --cmake-args -DBUILD_TESTING=ON
Starting >>> ros_gz_interfaces
Starting >>> ros_gz_sim
Starting >>> sdformat_test_files
Starting >>> ros_gz_example_application
Starting >>> ros_gz_example_bringup
Starting >>> ros_gz_example_description
Starting >>> ros_gz_example_gazebo
--- stderr: sdformat_test_files
CMake Warning:
  Manually-specified variables were not used by the project:

    BUILD_TESTING

---
Finished <<< sdformat_test_files [1.59s]
Starting >>> sdformat_urdf
Finished <<< ros_gz_example_application [1.73s]
--- stderr: ros_gz_example_gazebo
CMake Error at CMakeLists.txt:17 (find_package):
  By not providing "Findgz-sim7.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "gz-sim7", but
  CMake did not find one.

  Could not find a package configuration file provided by "gz-sim7" with any
  of the following names:

    gz-sim7Config.cmake
    gz-sim7-config.cmake

  Add the installation prefix of "gz-sim7" to CMAKE_PREFIX_PATH or set
  "gz-sim7_DIR" to a directory containing one of the above files.  If
  "gz-sim7" provides a separate development package or SDK, be sure it has
  been installed.

---
Failed   <<< ros_gz_example_gazebo [1.68s, exited with code 1]
Finished <<< ros_gz_example_bringup [1.85s]
Aborted  <<< sdformat_urdf [0.29s]
Aborted  <<< ros_gz_example_description [1.80s]
Aborted  <<< ros_gz_interfaces [3.07s]
Aborted  <<< ros_gz_sim [3.29s]

Summary: 3 packages finished [4.54s]
  1 package failed: ros_gz_example_gazebo
  4 packages aborted: ros_gz_example_description ros_gz_interfaces ros_gz_sim sdformat_urdf
  2 packages had stderr output: ros_gz_example_gazebo sdformat_test_files
  10 packages not processed

why should this template use only Garden

This is an example repository. Imo it aims at documenting the concepts rather than trying to provide an exact copy-paste solution for each and every version or ROS / Gazebo combination.

What should I use as template for Gazebo Fortress?

You have to adapt the CMakeLists.txt to correspond to the package releases for Fortress.
They are listed in the collection-fortress.yaml file.
E.g. you will have to replace
find_package(gz-cmake3 REQUIRED)
find_package(gz-plugin2 REQUIRED COMPONENTS register)
set(GZ_PLUGIN_VER ${gz-plugin2_VERSION_MAJOR})
find_package(gz-common5 REQUIRED COMPONENTS profiler)
set(GZ_COMMON_VER ${gz-common5_VERSION_MAJOR})
find_package(gz-sim7 REQUIRED)
set(GZ_SIM_VER ${gz-sim7_VERSION_MAJOR})
[...]

by:
find_package(ign-cmake2 REQUIRED)
find_package(ign-plugin1 REQUIRED COMPONENTS register)
set(IGN_PLUGIN_VER ${ign-plugin1_VERSION_MAJOR})
find_package(ign-common4 REQUIRED COMPONENTS profiler)
set(IGN_COMMON_VER ${ign-common4_VERSION_MAJOR})
find_package(ign-gazebo6 REQUIRED)
set(IGN_GAZEBO_VER ${ign-gazebo6_VERSION_MAJOR})
[...]

Obviously not just this section, but throughout the remainder of all CMakeList.txt files.
Mind also that from Fortress to Garden there has been a rename from "Ignition Gazebo" to "Gazebo Sim" due to trademark issues on the 'Ignition' name. That's e.g. why in above code snippet gz-sim7 for Garden is replaced by ign-gazebo6 for Fortress (as opposed to gz-sim6).
Also in the code you will have to change many references of gz and sim into ign and gazebo. For further documentation see the gazebosim.org site.
Anyway, I would not spend the time to try and make this particular repository compile for Fortress. instead, just use it as an example and implement your own code for your project. E.g. start with the system plugin documentation for Fortress, try and get that to compile.
The code for that example is in the gz-sim repository (ign-gazebo6 branch), see here.
See also this post on the community forum for more pointers to info on writing Gazebo system plugins.
There is also this upcoming talk at ROSCon2023: Simulate your World: A deeper look at extending Gazebo.
If you have further questions, ask them at the Robotics Stack Exchange instead of here.

Thanks a lot! Really complete answer. I will dig into it better with your pointers

Hi @DavideLanzoniSacmi,
I happened to experience the same error. How are you able to solve all the errors? I try to read the above hints provided but not really sure what to change in the CMakeLists.
Thank you.

I met the same error. Will update if the answer here helps.
I see it happens to a lot of people who use this project, There should be some comment about this in the CMake.

@EyalBrilling
Yeah, changing to ignition seems to solve most of the package issues. But I have another error arise regarding BasicSystem.hh and FullSystem.hh. Did it also happened to you?

@EyalBrilling
Yes, it seems the correct name is ignition-cmake2 instead of ign-cmake2.
The yaml file is correct though, as it contains the github repository name and branch:

The CMakeLists.txt file seems to need rather the corresponding project names, as defined e.g. here.
Anyway, given there appears to be a Fortress branch to this repository now (this thread pre-dates it), the obvious choice is to use that branch, instead of redoing the work.
@AlfonGio same remark: try with the Fortress branch instead.


Fix clippy warnings and the compile-time error caused by runtime-fmt

The error message: https://travis-ci.org/Fantom-foundation/libvm-rs/jobs/566970665
There has been an attempt at #1 but it changes the output. There has to be another solution that keeps the output the same.
Additionally there are clippy warnings like
warning: trait objects without an explicit `dyn` are deprecated
   --> libvm-rs/src/instruction.rs:288:30
    |
288 |     fn parse_fd(stream: &mut Iterator<Item = u8>) -> Result<Instruction, Error> {
    |                              ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Iterator<Item = u8>`
    |
    = note: `#[warn(bare_trait_objects)]` on by default

which should all be fixed.

Let's use the branch of this PR: https://github.com/SpaceManiac/runtime-fmt/pull/8 and monitor its acceptance in the main runtime-fmt repo, and the consequent publication of this fix to crates.io.


Add option to include server output in console view

It would be useful to include the "database server output" in the console view, so that those server messages are collated with the rowset data.
This could be toggled via a config setting:

Consider a (MSSQL) script like this (from comment on #667):
print 'Explanation for data set 1';
select ... from ...;

print `Explanation for data set 2`;
select ... from ...;

. . . etc . . .

Behavior as of <IP_ADDRESS>207091909 puts printed messages only in the server output window.

Desired output (query text removed for clarity):
Explanation for data set 1

| # | v |
+---+---+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |

3 row(s) fetched.

Explanation for data set 2

| # | v |
+---+---+
| 1 | a |
| 2 | b |
| 3 | c |

3 row(s) fetched.

See #17014 for discussion on including query text in the console view

Hello, @jetzerb. Thank you for feature request.

Hello Everyone,
In DBeaver 24.3.0 I cannot find "Console View" settings in Preferences ... I am looking for the same, to have a single text output (like in MS), so I can execute a script file with multiple queries and the result will be a single output (and can save/export as some report file)
Any help is appreciated. Thank you!


feat: Added image file viewer

ticket: https://sendbird.atlassian.net/browse/AC-2608
discussion: https://sendbird.slack.com/archives/C0585965FFA/p1719296345153639
uikit change: https://github.com/sendbird/sendbird-uikit-react/pull/1150
Changelog

Added file viewer feature for image file message

After
4 sprints - Client JS - Agile Board - Jira (2).webm

@bang9 Im not sure why below type error happens in run-build step. Any idea why and how to fix this issue?


Sign up

Created an approved users and unapproved users list on the admin dashboard. Admin can go to the unapproved users list and approve users. Does not send an email to the admin currently b/c redis doesn't like windows computers :(

LGTM!


importError: cannot import name Module

when using flask-uploads, the following is occurred.
(for security problem, I removed folder names of my project with xxxx)
Also, I am using Flask 0.11.dev.
Could you please investigate this issue ?  Maybe... "Module" could be removed or not ?
  File "/Users/xxxx/venv/xxxx/lib/python2.7/site-packages/flask/exthook.py", line 81, in load_module
    reraise(exc_type, exc_value, tb.tb_next)
  File "/Users/xxxx/venv/xxxx/lib/python2.7/site-packages/flask_uploads.py", line 24, in <module>
    from flask import current_app, Module, send_from_directory, abort, url_for
ImportError: cannot import name Module

I also encountered this problem with Flask 0.11, it does not happen in version  0.10.1

Same for me using Flask 0.11.1, Flask-Uploads 0.2.0 and Python3
  Traceback (most recent call last):
    File "manage.py", line 4, in <module>
      from app import create_app, db
    File "/home/xxx/app/__init__.py", line 5, in <module>
      from flask.ext.uploads import UploadSet, IMAGES, configure_uploads, \
    File "/home/xxx/venv/lib/python3.4/site-packages/flask/exthook.py", line 96, in load_module
      reraise(exc_type, exc_value, tb.tb_next)
    File "/home/xxx/venv/lib/python3.4/site-packages/flask/_compat.py", line 32, in reraise
      raise value.with_traceback(tb)
    File "/home/xxx/venv/lib/python3.4/site-packages/flask_uploads.py", line 24, in <module>
      from flask import current_app, Module, send_from_directory, abort, url_for
  ImportError: cannot import name 'Module

Yep this is fixed on master. We just need to do a release. Hang tight.

I am currently running Flask-Uploads 0.8.0 and Flask 0.11.1 and still getting this error;
ImportError: cannot import name Module
Any suggestions?

Did you use the Version from PyPi? Then try to clone the github repository and install it.

I used the following to fix it:
sudo sed -i 's/app, Module,/app,/' /usr/local/lib/python2.7/dist-packages/flask_uploads.py
Any schedule for when the new release will be available on PyPi?


community: refactor opensearch query constructor to use wildcard instead of match in the contain comparator

Description: Changed the comparator to use a wildcard query instead of match. This modification allows for partial text matching on analyzed fields, which improves the flexibility of the search by performing full-text searches that aren't limited to exact matches.
Issue: The previous implementation used a match query, which performs exact matches on analyzed fields. This approach limited the search capabilities by requiring the query terms to align with the indexed text. The modification to use a wildcard query instead addresses this limitation. The wildcard query allows for partial text matching, which means the search can return results even if only a portion of the term matches the text. This makes the search more flexible and suitable for use cases where exact matches aren't necessary or expected, enabling broader full-text searches across analyzed fields.
In short, the problem was that match queries were too restrictive, and the change to wildcard queries enhances the ability to perform partial matches.
Dependencies: none
Twitter handle: @Andre_Q_Pereira

@eyurtsev can you review this merge request please. Thank you.

@eyurtsev eyurtsev or @ccurme ccurme can you review this merge request please. Thank you.


The issue of development

Hi. I would like to ask if the project will be further developed? I need something like this as many players on my server play from different versions.
And will it be on Velocity (a better analogue of Bungeecord)?

See #64 #59 for more info.
As for Velocity I guess one will be able to run it separately like so: Player on EE --> Reversion --> Geyser --> Velocity
But don't quote me on that

Yeah... So I'll have to mess around with floodgate and LimboAUTH to make it work properly.

Glad you're planning on suppporting LimboAuth!


Suggestion: Have "Icon" suffix on @material-ui/icons icon exports.

Summary
Default imports of icons from the @material-ui/icons package can be confusing because the name does not have an Icon suffix. Renaming imports is not desired because IDE can allow quick auto import features with uniquely named imports.

[x] This is not a v0.x issue.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Expected Behavior 🤔

import { TitleIcon, MenuIcon } from "@material-ui/icons";
import { Menu } from "@material-ui/core";
import Title from "my-components/Title";

💭 Building my component, I type <Menu prop1="..."/> and then auto-import Menu. I then type <MenuIcon/> and auto-import MenuIcon. Done. 😎
Current Behavior 😯

import { Title as TitleIcon, Menu as MenuIcon } from "@material-ui/icons";
import { Menu } from "@material-ui/core";
import Title from "my-components/Title";

💭 Building my component, I type <Menu prop1="..."/> and then auto-import Menu. I then want a menu icon. I type <Menu/>, but shoot, I imported Menu already in this component and it's the real menu component. I got away with it another file though because it didn't need a real menu Menu.  After staring at my current import names for a little, I manually type import { Menu as MenuIcon } from "@material-ui/icons", go back to the component code, and type <MenuIcon/>. Done... 😫 Time for a break. Come back later. Oh... Menu in this file is the icon, but in the other one, it's the Menu component. 😕
Examples 🌈

N/A
Context 🔦

Benefits of expected behavior:

IDE auto import makes this quick. Having Icon as a suffix to names facilitates search.
Less chance of naming conflicts, especially for common names like Menu.
IMO, it's more intuitive to have "primary" components (e.g. Menu) have a short succinct name, and have "secondary" components more specific. (e.g. MenuIcon instead of Menu). Without looking at exports and without having to rename them, it's clearer to me what <MenuIcon/> is compared to <Menu/>... is it an icon or an actual menu?

import { TitleIcon, MenuIcon } from "@material-ui/icons";
This is quite redundant. The suffix is already implied from the import. import { Title as TitleIcon } from "@material-ui/icons"; or import TitleIcon from "@material-ui/icons/Title"; would work just as well, no?

I think that we should encourage the following imports:
import { Menu } from "@material-ui/core";
import TitleIcon from "@material-ui/icons/Title";
import MenuIcon from "@material-ui/icons/Menu";

The core imports are using the barrel as it reduces the boilerplate. The imports of the icons is nested as it prevents name collision and improves the dev performances.

I guess we should update our demos...

@mbrookes Not until we agree on a common convention :)

As a developer, I don't mind that type of redundancy if it helps my productivity. I attached a video below of a productivity comparison between my own Sample and SampleIcon component and Menu from core & icons. At the end, just typing Icon gives all available components, imported or not, with "Icon" in them. It would be potentially useful to have that palette in the editor, though typically I'd be looking at a docs site anyway.
Video: https://vimeo.com/337038695

Not until we agree on a common convention

https://github.com/mui-org/material-ui/pull/15739 somewhat sets out our position, but perhaps it's too soon to assume that devs are using bundlers that support tree shaking?

@mbrookes I believe that the main problem is regarding how people can import XxxProps TypeScript type with this approach.

Not until we agree on a common convention

#15739 somewhat sets out our position, but perhaps it's too soon to assume that devs are using bundlers that support tree shaking?

I'm unfamiliar with the situation outside of webpack but webpack supports it starting with 2.x. I don't think that's too soon.
Also remember that renaming the exports would be a breaking change. I would hope that you might be able to configure autocomplete in code to give you the preferred icon with aliasing.

I completely agree with @kalbert312’s arguments about suboptimal DX here.
We have a codebase that has been using @mui/icons-material for quite some time. It has developed a mix of import styles for this package:
import { Foo, Bar } from "@mui/icons-material";
import { Foo as FooIcon, Bar as BarIcon } from "@mui/icons-material";

import Foo from "@mui/icons-material/Foo";
import Bar from "@mui/icons-material/Bar";

import FooIcon from "@mui/icons-material/Foo";
import BarIcon from "@mui/icons-material/Bar";

The first option is compact, consistent and robust. It works best with autocompletion. However, there are a few cases when the name of an icon is shadowed by the name of the component we want to declare (e.g. <Settings /> inside export const Settings: FunctionComponent). Figuring that <Foo /> is actually an icon requires a bit of thinking.
Other three options are worse because they require manual tweaks in the imports and are also error-prone:
import { Foo as BarIcon, Bar as FooIcon } from "@mui/icons-material";

import BarIcon from "@mui/icons-material/Foo";
import FooIcon from "@mui/icons-material/Bar";

import Fo from "@mui/icons-material/Foo";
import Baricon from "@mui/icons-material/Bar";

The best option for us would using named imports with suffixes:
import { FooIcon, BarIcon } from "@mui/icons-material";

This leaves no ambiguity about the contents of FooIcon and BarIcon variables.
I know that changing the current package structure would be quite hard, but maybe this problem can be solved with a new package?
import { FooIcon, BarIcon } from "@mui/icons-material-suffixed";

This package would work as a facade to the current @mui/icons-material, but provide developers with a better DX. I know that it’s possible to create a custom package like this, but it would be great to have it as an official solution.
What do you think?

👋 folks, any thoughts on the above? I used lucide-react in a side project recently and quite liked their did with exports:
<EMAIL_ADDRESS>export { default as Accessibility, default as AccessibilityIcon, default as LucideAccessibility } from './icons/accessibility.js';
export { default as ActivitySquare, default as ActivitySquareIcon, default as LucideActivitySquare } from './icons/activity-square.js';
// ... and so on

This allows me to use
import { AccessibilityIcon, ActivitySquareIcon } from "lucide-react";

and completely avoid ambiguous import names:
import { Accessibility, ActivitySquare } from "lucide-react";

It’d be great to see something like that in @mui/icons-material too! Alternatively, being able to use
import { FooIcon, BarIcon } from "@mui/icons-material-suffixed";

would be also awesome. Generic (unsuffixed) component names like <Dataset />, <Search />,  <Close /> make it somewhat difficult to follow the app’s logic.

<Search />

//   ↑ has someone added an icon here or is it a full-blown search component with all bells and whistles?

Thanks for adding https://github.com/mui/material-ui/labels/waiting for 👍 @oliviertassinari. WDYT of marking the issue as open so that it had higher chances of getting upvotes?


[Type checker] Tolerate missing generic environments better.

Before matching witnesses, ensure that we have a valid signature, and be
more tolerant of null generic environments by using the
mapTypeIntoContext entry point meant to handle null.
We haven't managed to get a decent reproducer for this, but it's
happening often enough, and this change hardens the affected code
paths.
Should fix rdar://problem/37255982.

@swift-ci please smoke test and merge

@swift-ci please smoke test Linux


HELP - I have half a dozen virtual devices - were working no problem - hallway for example....

All just stopped yesterday or today and apparently my account has no virtual devices according to node-red - any ideas? Raspberry Pi 4 Node-Red - just upgraaded the lot to Node-RED 3 and nodejs18 in the last few days - I'm gutted... updated all nodes to latest. I can control the lot the old fashioned way so my eral devices are fine...

EAI_AGAIN means your DNS is screwed, it can't resolve googlehome.hardill.me.uk.
Fix that first

Hi
Well, strange you mention that - I'd seen some issues on my RPI ersolving addresses when doing ap update... SO (years ago I set up a fixed IP on the Pi - so long ago I don;t remember what I did).
sudo nano /etc/dhcpcd.conf
No dhcpcd.conf - no idea why - so I simpl created one and added at the end...
static domain_name_servers=<IP_ADDRESS> <IP_ADDRESS>
and if I (at ssh terminal) do this - ping googlehome.hardill.me.uk
I get:
pi@mainpi:~:17:18[0]> ping googlehome.hardill.me.uk
PING googlehome.hardill.me.uk (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from ec2-34-241-226-122.eu-west-1.compute.amazonaws.com (<IP_ADDRESS>): icmp_seq=1 ttl=46 time=83.6 ms
64 bytes from ec2-34-241-226-122.eu-west-1.compute.amazonaws.com (<IP_ADDRESS>): icmp_seq=2 ttl=46 time=81.6 ms
64 bytes from ec2-34-241-226-122.eu-west-1.compute.amazonaws.com (<IP_ADDRESS>): icmp_seq=3 ttl=46 time=80.5 ms
64 bytes from ec2-34-241-226-122.eu-west-1.compute.amazonaws.com (<IP_ADDRESS>): icmp_seq=4 ttl=46 time=77.4 ms
64 bytes from ec2-34-241-226-122.eu-west-1.compute.amazonaws.com (<IP_ADDRESS>): icmp_seq=5 ttl=46 time=77.1 ms
64 bytes from ec2-34-241-226-122.eu-west-1.compute.amazonaws.com (<IP_ADDRESS>): icmp_seq=6 ttl=46 time=76.0 ms
64 bytes from ec2-34-241-226-122.eu-west-1.compute.amazonaws.com (<IP_ADDRESS>): icmp_seq=7 ttl=46 time=83.8 ms
Is that as it should be?
 Done
Building dependency tree
Reading state information... Done
All packages are up to date.

Ah but then "hey google mancave on" just worked so maybe I did do some good.   minutes later I tried the apt update again and everrything except grafana worked - but there's a known issue with that now...


Cannot push to gitlab

If you're using the integrated terminal in vscode, it automaticly always authenticates for you, but when you don't want to push into github, but gitlab it will still auto authenticate and will fill the password field with the github token, a nice feature would be auto checking if the remote is a github link and only auto authenticate when it is one

@ignxcy, that does not seem right as the github extension should only be providing the user name and password for a repository that is being hosted on GitHub. Would you be able to provide a recording (https://gifcap.dev) so that I better understand the issue? Thank you!

nevermind, you're right


Fixing links to wiki articles

Summary
Fixing links to wiki articles

Hopefully all set now @nishanil

:shipit:

Thanks, @ardalis. I'll merge your PR now.

Sorry, @ardalis., @nishanil still has to approve.


Fix FF not reloading after whitelisting

Reviewer: @andrey-p / @dharb

Description:
Closing the window before reloading the tab somehow breaks reloading on FF.
Inverting the order (like it was before #158) fixes the issue.
Steps to test this PR:

Build and reload extension in FF
Go on a site and click on the toggle button to whitelist it. You should see a CSS transition on the toggle:
"Added to whitelist" text moves down by 16px while transitioning from 0 to 1 opacity
"Site Privacy Protection" text also moves down by 16px, transitioning from 1 to 0 opacity
Popup remains visible for 2.5 seconds before reloading the page
Tab should reload and the popup should show the regular whitelisted UI
Clicking again on the toggle to remove from whitelist should reload the tab immediately

Automated tests:

[ ] Unit tests
[ ] Integration tests

Reviewer Checklist:

[ ] Ensure the PR solves the problem
[ ] Review every line of code
[ ] Ensure the PR does no harm by testing the changes thoroughly
[ ] Get help if you're uncomfortable with any of the above!
[ ] Determine if there are any quick wins that improve the implementation

PR Author Checklist:

[ ] Get advice or leverage existing code
[ ] Agree on technical approach with reviewer (if the changes are nuanced)
[ ] Ensure that there is a testing strategy (and documented non-automated tests)
[ ] Ensure there is a documented monitoring strategy (if necessary)
[ ] Consider systems implications

This looks good! :+1:


Transfer Funds Feature

its not taking care when your amount is less than the amount you wanna transfer. Pls check that and im happy to give full points

Sure I will look into it

I have made my changes please look into it

!bounty 400

!bounty @Lohithsurya 400

!bounty @Lohithsurya 300

!bounty @Lohithsurya 300

!bounty 300

!bounty 399

!bounty 400


Add QueryProfilerInterface

This defines the new QueryProfileInterface.

This is what I did in the last 2 weeks. We can have a session to go through the ui changes and the code structure to help you build on top of my changes. In the meantime I am going back to K8s team.

I also have a confluence page.

This can be merged to master and we can move forward


Add Windows support

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

Closes #34

This request adds windows installation support for the post-install script. The script extracts the contents of the cuda executable as described in the installation guide.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

Selectors are suggested to take a <two spaces>#<one space>[<expression>] form. See lines [14, 15, 22, 23, 24, 31, 32, 33]

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Hi! This is the friendly automated conda-forge-linting service.
I wanted to let you know that I linted all conda-recipes in your PR (recipe) and found some lint.
Here's what I've got...
For recipe:

Failed to even lint the recipe, probably because of a conda-smithy bug :cry:. This likely indicates a problem in your meta.yaml, though. To get a traceback to help figure out what's going on, install conda-smithy and run conda smithy recipe-lint . from the recipe directory.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I was trying to look for recipes to lint for you, but it appears we have a merge conflict.
Please try to merge or rebase with the base branch to resolve this conflict.
Please ping the 'conda-forge/core' team (using the @ notation in a comment) if you believe this is a bug.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@kidfisch do you want to add yourself as a maintainer here?

@kidfisch do you want to add yourself as a maintainer here?

Yes, would be my pleasure to.

thanks @kidfisch ! and feel free to open a new PR to add yourself as a maintainer! thanks!


Cannot setDescription while creating class schema

OrientDB Version: 3.0.13
Java Version: java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
OS: Ubuntu 18.04.1 LTS
Expected behavior
Trying to set  the description I obtain the following exception
com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error parsing query:
alter class `MyClass` description ?
    ^
Encountered " <ALTER> "alter "" at line 1, column 1.

Steps to reproduce
OClass oClass = orientGraphNoTx.createVertexType("MyClass");
oClass.setDescription("My Description");
This bug was solved in 2.2.x see #7065

Any news about this?
I'm still experiencing it. I'm using OrientDB 3.1.2

Sorry, @laa
you have closed all the tickets I open in the past even they are still valid.
Regarding #7354 I have limited my application to avoid using  EMBEDDEDSET or EMBEDDEDLIST and I don't have any test about the new versions.
Regarding this ticket is still valid with version 3.0.38.


Update check box styles for ActionList to match the rest of Primer

What are you trying to accomplish?

This PR updates the check box styles for ActionList to match the rest of Primer in order to fix a rendering issue on non-retina screens. See the associated issue for more information.
Screenshots

Before
After

Integration

No changes necessary in production.
List the issues that this change affects.

Fixes https://github.com/github/primer/issues/4450
Closes # (type the GitHub issue number after #)
Risk Assessment

[x] Low risk the change is small, highly observable, and easily rolled back.
[ ] Medium risk changes that are isolated, reduced in scope or could impact few users. The change will not impact library availability.
[ ] High risk changes are those that could impact customers and SLOs, low or no test coverage, low observability, or slow to rollback.

What approach did you choose and why?

As recommended in Slack, I copy/pasted the check box styles from the Checkbox component. Unfortunately I couldn't re-use them because the markup is different between ActionLists and Checkboxes.
Accessibility

No new axe scan violation - This change does not introduce any new axe scan violations.

Merge checklist
~- [ ] Added/updated tests~
~- [ ] Added/updated documentation~
~- [ ] Added/updated previews (Lookbook)~

[x] Tested in Chrome
[ ] Tested in Firefox
[ ] Tested in Safari
[ ] Tested in Edge

Did a search in dotcom for these classes. It appears they are not used 🎉


NumberOfTapsRequired greater than 2 does not work on Android

Hi,
using a number greater than 2 for NumberOfTapsRequired does not work on Android.
See the following GitHub Issue: https://github.com/xamarin/Xamarin.Forms/issues/6976 .
Having a Important, Note or Platform Differences Element on the Page which describes this behaviour would be really great.
cheers

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

ID: 1e56a604-3af6-80e9-b9df-382e3102a098
Version Independent ID: 29cc319e-2736-013c-7934-b4335eb8242d
Content: Add a tap gesture recognizer - Xamarin
Content Source: docs/xamarin-forms/app-fundamentals/gestures/tap.md
Product: xamarin
Technology: xamarin-forms
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Microsoft support for Xamarin will end on May 1, 2024 for all Xamarin SDKs including Xamarin.Forms. In preparation for this, all issues and PRs in this repository are being closed.
.NET MAUI is the replacement for Xamarin.Forms, and it's documentation can be found here.


Update ParallelClientSynchronizer.java

Has to do with this issue https://github.com/apollo-rsps/apollo/issues/107

Kek Cheap hax since scu/cube complain like little bitches and need it fixed apparently

This won't build, and this isn't even a real fix. If this actually solves the problem then the issue is that players are being removed during the update procedure, instead of before/after.

@Major- i will try and look further into this issue when i have time


[language] Clean up of transaction argument tests

Made them more explicit and with some comment.
Also changed the name of SignatureToken::is_constant to SigantureToken::is_valid_for_constant

I wanted to add some tricky ones with bogus values but it's not easy to build a bogus value. So I left the test as they are with the minor corrections reported.
Considering this is only called internally from the adapter it seems ok.
Let me know if you spot tests you'd like to see added

Let me know if you spot tests you'd like to see added

Nothing really jumped to mind.  Otherwise should be good

@bors-libra r=tnowacki

:pushpin: Commit b197ef5 has been approved by tnowacki

:hourglass: Testing commit b197ef520d41f9cc1120a0824a84cc2dd9be0323 with merge fb1b8546765234389d8ec2c867ffbc1aac2cef5e...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: tnowacki
Pushing fb1b8546765234389d8ec2c867ffbc1aac2cef5e to master...


TTL - copy settings from normal to bus lights

I'd love to see an enhancement for timed traffic lights.
If I put a TTL on an intersection, then upgrade a street to one with a bus lane,
i get a separate set of traffic lights for the bus lane.
By default these a now red for every TTL step.
Would it be possible that by default, these get the same configuration as the normal traffic lights?

awesome, thx a lot.