[FEATURE] Auto SaveSession on VimExit if there are more than one visible window/tab with supported file types

Is your feature request related to a problem? Please describe.
Sometimes you're not planning to continue previous session and just wanna quickly edit single file… but in process it turns out there are more files involved in current editing task and you end up temporary exiting vim with a lot of open files with intention to continue this editing session later.
Right now in this use case you'll have to manually run SaveSession before exiting.
But since you are already get used to sessions working automatically, you always forget to do this!
Describe the solution you'd like
I'd like to add extra logic on VimExit: if auto-session wasn't enabled on start (e.g. nvim was started without args) and there are more than one visible window/tab with supported (by auto-sessions) file types then call SaveSession (overwriting previous session, if there was one).
Describe alternatives you've considered
It doesn't looks like current API provide enough information to make it possible to implement such a logic in user's autocmd. Probably it's possible to add something trivial like "call SaveSession if there are more than one open window/tab" but there are significant shortcomings: it'll hurt performance by doing duplicate save in case auto-session was already enabled, it will overwrite previous session when it's not needed (e.g. if we've just one user file opened plus several help windows).
Additional context
This feature was implemented in https://github.com/powerman/vim-plugin-autosess and I miss it! :smile:

#303 is a potentially related feature request. If there was an option to load a session (if it exists) when launching with an argument, would that work for your use case?

No, I don't think so. My use case is:

Start vim to quickly edit one file instead of restoring previous session for cwd. This is often happens to "oh, let me glance at that file…", often by pressing F4 in Midnight Commander, without any intention to continue work on previous large session saved for cwd.
If everything goes as planned then this quick editing session won't became complicated, even if more files will be temporary opened they will be quickly closed, thus and at the end (VimExit) we won't have more than one file opened. In this case old session for cwd shouldn't be modified (if it exists).
If current editing session turns out to be more complicated and I'll have more than one opened (visible in tab/window) files at VimExit then I want to save current session (overwriting old one for cwd if it exists).

The main idea is: session with more than one opened (visible) file is valuable and must be automatically saved in any case. (And session with just one visible file is not worth saving because Vim/Neovim is able to restore single file view/state without plugins.) If I don't have current session (because I started Neovim with args) and don't want to overwrite existing previous session for cwd then I'll bother to close all files but one before exiting Neovim.
Even in case I wanna quickly check a couple of files and run nvim file1 file2 but I don't want to overwrite previous session I'll bother to close one of these files before exiting. And if I won't close one of them then session should be saved/overwritten.

Ok, that's a clear and helpful explanation of what you're looking for. I want to think about the other use cases a bit to figure out how they could all fit together.

@powerman I have some WIP code for handling sessions with args. Are you up for testing it to see if it works for your use case?

Cool! Sure, I'm ready. Quick hint how to setup Lazy to switch a plugin to some branch would be useful if you remember it of top of your head, otherwise I'll check the docs.

ok, you'll need to change your config as follows:
  -- 'rmagatti/auto-session',
  'cameronr/auto-session',
  branch = 'args-testing',

and add this parameter to your call to auto-session setup:
      args_handling = 'replace_session_only_if_multiple_buffers',

restart nvim, then bring up Lazy and find auto-session and update it (it should show up at the top saying there's an origin mismatch). then quit nvim.
now try going to a directory that has a session and if you run nvim somefile (or files) it will check and see if there is more than one loaded/visible buffer on exit and use that as the new session if so.
let me know how that works for you. thanks!

WORK: Opening existing session (i.e. these changes probably don't broke them :sweat_smile:).
WORK: nvim file1 then :qa

EXPECTED: does not create/replace existing session, if any

WORK: nvim file1 then :tabnew then :qa

EXPECTED: does not create/replace existing session, if any

WORK: nvim file1 file2 then :qa

EXPECTED: does not create/replace existing session, if any

WORK: nvim -p file1 file2 then :qa

EXPECTED: create/replace session

WORK: nvim file1 then :tabedit file2 then :qa

EXPECTED: create/replace session

WORK:  nvim file1 then :tabedit file2 then :bd then :qa

EXPECTED: does not create/replace existing session, if any

DOES NOT WORK: nvim file1 then :tabedit file2 then :q then :qa

EXPECTED: does not create/replace existing session, if any
ACTUAL: creates/replaces existing session
NOTE: file2 was still in a buffer (listed by :ls), but it wasn't visible in any window/tab

There are some corner cases where I'm not sure about expected behaviour:

nvim file1 then :split then :qa

EXPECTED: ???
ACTUAL: does not create/replace session, if any
NOTE: same behaviour for :tabedit file1 instead of :split

@cameronr Almost done! :smile:

Thanks for the testing! I currently have the code counting loaded, file backed buffers (as opposed to visible ones):
function Lib.count_supported_buffers()
  local supported = 0

  local buffers = vim.api.nvim_list_bufs()

  for _, buf in ipairs(buffers) do
    -- Check if the buffer is valid and loaded
    if vim.api.nvim_buf_is_valid(buf) and vim.api.nvim_buf_is_loaded(buf) then
      local file_name = vim.api.nvim_buf_get_name(buf)
      if Lib.is_readable(file_name) then
        supported = supported + 1
        Lib.logger.debug("is supported: " .. file_name .. " count: " .. vim.inspect(supported))
      end
    end
  end

  return supported
end

to count visible windows, it would be something like this:
  local supported = 0

  local tabpages = vim.api.nvim_list_tabpages()
  for _, tabpage in ipairs(tabpages) do
    local windows = vim.api.nvim_tabpage_list_wins(tabpage)
    for _, window in ipairs(windows) do
      local buffer = vim.api.nvim_win_get_buf(window)
      local file_name = vim.api.nvim_buf_get_name(buffer)
      if Lib.is_readable(file_name) then
        supported = supported + 1
      end
    end
  end

  return supported

For me personally, I tend to use few windows and more buffers and having multiple buffers open (even if not visible) is one of the things I really like about autosaving sessions. That said, I can know the other workflow where visibility and buffers are tied together is common. Another option would be to just have the replace_session option and then also allow a callback to be passed in for auto_save_enabled so someone could define their own function and then we could give the two examples in the documentation.

@rmagatti I'd like to get your thoughts on args handling based on what i have so far
args_allow_single_directory: if nvim is launched with a single directory, load the session from that directory. handles nvim . (#303) as well as nvim some/dir. i don't see much (any?) downside to this option so could potentially be a default true option
args_handling: with possible values of replace_session (don't load a session but replace it on exit) or replace_session_only_if_multiple_buffers (don't load a session but replace it on exit if there at least two file backed buffers loaded).
So questions are:

How do you feel about supporting a single directory argument?
For file arguments, what do you think about having some kind of args_handling config that allows replacing the session in various scenarios?
For those scenarios, would you rather they be specified by autosession (e.g. replace_session, replace_session_only_if_multiple_buffers, etc) or to allow a callback of some kind (e.g. should_save_session_with_args) and then cover some possibilities in the documentation?

FWIW, If it were just up to me, i'd allow single directory by default (after sufficient testing) and then have an enable_file_args option that's false by default but when enabled would replace the session if there was more than one loaded, file backed buffer. I'd let that function be overridden with a should_save_session_with_args callback and include the windows based one discussed above in the documentation.

@cameronr thanks for all the thought put into this. I'll strive to give this a good look over this weekend. Cheers!

I tend to use few windows and more buffers and having multiple buffers open (even if not visible)

Well, my point isn't about one workflow vs another, it's about predictable UX. If user sees multiple windows/tabs when it exits vim it's easy for him to be sure "this session will be restored next time I run vi without args", and if we doesn't like to overwrite (possible - he may not even be sure it is exists) previous session he can just close all-but-one windows/tabs before exiting vim. If there are some hidden buffers and just one windows - how he can be sure is this session will be saved or not (i.e. is his previous session for cwd will be overwritten)?
To me your use case with valuable hidden buffers sounds like you always wanna save current session, no matter what. This is valid use case and it requires much less code to implement. :smile: Probably no code - I believe it's easy to setup current rmagatti/auto-session this way. Of course I may be wrong about it, especially if you always do :ls before exiting vim to know for sure or there are some other tricks for buffer-oriented workflow I don't know about (maybe always show amount of buffers in statusline etc.). But in any case I believe there should be some UI sign which let user know is this session will be saved (possibly overwriting existing one) or not.

someone could define their own function and then we could give the two examples in the documentation.

Probably for discussed common use cases it's better to provide predefined functions to make it easier to setup one of them.

I still think this is a workflow difference and a version of the classic buffers vs tabs debate.
for those that use tabs, a tab and a buffer are tightly coupled and this is the common GUI editor pattern.
for those that are buffer oriented, there isn't a direct a connection between where a file is being viewed and it being open, although some
folks use the "tabline" at the top to list open buffers. Telescope has made it even easier to see and manage which buffers are open.
I understand what you're saying about not wanting to be surprised about a session being saved. for tab folks, the tab tells them there are two files and that a session would be saved. for buffer folks, they're checking the buffer list all the time for switching anyway (or they know there are multiple files open when using jumps) so that's how they'd know that a session would be saved.
i don't think one workflow is "more correct" than the other which is why i suggested a way for the user to configure it to work how they'd like.

I have a better picture of this now.

So questions are:

How do you feel about supporting a single directory argument?
For file arguments, what do you think about having some kind of args_handling config that allows replacing the session in various scenarios?
For those scenarios, would you rather they be specified by autosession (e.g. replace_session, replace_session_only_if_multiple_buffers, etc) or to allow a callback of some kind (e.g. should_save_session_with_args) and then cover some possibilities in the documentation?

Sounds good by me. No real downside, you're right. 👍
& 3. I actually think we should keep things simple. The behaviour being asked for would add a pretty arbitrary rule (more than one buffer visible, why not more than 2,3,4,10?). That said, adding a new kind of hook that can influence auto-session's decision to save a session for a matching cwd in cases where it didn't load a session in the first place is an acceptable solution to this. It would keep auto-session simple, but allow its behaviour to be extended by users like @powerman for their own workflow. This way, any user can just do their own checks and decide whether they want to save a session that wasn't going to be automatically saved by auto-session otherwise with their own self-defined rules.

Testing results for v2.4.1:

WORK: Opening existing session.
WORK: nvim file1 then :qa

EXPECTED: does not create/replace existing session, if any

WORK: nvim file1 then :tabnew then :qa

EXPECTED: does not create/replace existing session, if any

WORK: nvim file1 file2 then :qa

EXPECTED: does not create/replace existing session, if any

WORK: nvim -p file1 file2 then :qa

EXPECTED: create/replace session

WORK: nvim file1 then :tabedit file2 then :qa

EXPECTED: create/replace session

WORK:  nvim file1 then :tabedit file2 then :bd then :qa

EXPECTED: does not create/replace existing session, if any

WORK: nvim file1 then :tabedit file2 then :q then :qa

EXPECTED: does not create/replace existing session, if any

WORK: nvim file1 then :split then :qa

EXPECTED: create/replace session

The only issue is a bug in a README example (probably in both examples, but I've tested only one with tabs/windows):
-if vim.fn.filereadable(file_name) then supported = supported + 1 end
+if file_name ~= '' and vim.fn.filereadable(file_name) then supported = supported + 1 end

Thanks!

Good catch! I think the underlying issue is that 'vim.fn.filereadable()' returns 0 (FALSE) if the file isn't readable or 1 (TRUE) if it does but 0 is still true in lua. I'll fix the docs


fix(iroh-net): reconfirm best addr when receiving data on it

Closes #2169

nit, the description should probably describe what this fixes and why it fixes it instead of just relying on the issue link

nit, the description should probably describe what this fixes and why it fixes it instead of just relying on the issue link

added more details to the description


Aligning initial input image with produced mesh

Hello! Let me first say congrats and thanks for all your work, InstantMesh is absolutely amazing!
I am wondering about the possibility of aligning the initial input image with the produced mesh, specifically extracting the camera pose of the input image which could then be applied to the mesh such that it "looks the same". I know that One-2-3-45 has this capability (code here), and one of their multi-view diffusion-created images is a recreated version of the initial image at a guessed pose. I also believe that One-2-3-45 builds their poses relative to this initial image's pose calculation.
It seems like Zero123++ (which InstantMesh uses as the multi-view diffusion model) utilizes only the content of the initial image and doesn't bother figuring out a decent "absolute" pose of the initial image, but I haven't looked too closely into the Zero123++ code quite yet.
If InstantMesh doesn't immediately have this capability, could you point me in the general direction of a solution? Use the "elevation_estimate" as seen in One-2-3-45, with 0 degree azimuth (it looks like the 6 poses produced here are assuming initial azimuth being 0 degrees?)
Thanks for any help!

Same request here :)

Same request here :) would assume 0 degrees azimuth but not sure what the elevation actually is. I would have assumed 0 since the poses generated by zero123++ should be relative to the input image?

Hello, Have you solved the problem?  whats the elevation and azimuth should the input image is?

Same request here :) would assume 0 degrees azimuth but not sure what the elevation actually is. I would have assumed 0 since the poses generated by zero123++ should be relative to the input image?

Hello, Have you solved the problem? whats the elevation and azimuth should the input image is?

Sorry, I have not solved this problem. I have generally moved on from that project as well, so I probably will never need an answer. However image-to-3D object is moving so fast that there might be something better than InstantMesh already out there that has this capability? But yeah, for all future creators of related projects, it would be really nice to very easily and obviously automatically align the input image(s) with the output mesh.


add Technologies to project section

need to add a technologies paragraph (emphasized with span) for each project.
Just add it to one for testing the design

Somewhere below the paragraph of kzilla.xyz like  TECH STACK: HTML, CSS, SVELTE, NODEJS

hello sir ,
I would like to work on this :>
it'll be really kind of u .... if u can assign this to me :)

Here you go! @Ironheartcoder

Hi, I'd like to contribute to this issue, if it still there I would like to work on it?

Hey @Ironheartcoder are you working on it? Please confirm else I need to assign it to someone else.
Thanks!

@harshgoel05 Can work on this if no one is working


Feature/better json usage

This is concerned more with this change
        /// <summary>
        /// Serializes a localized content <see cref="IDictionary{TKey,TValue}"/> to JSON.
        /// </summary>
        public string Serialize(IDictionary<string, string> content)
        {
            using (var sw = new StringWriter())
            using (var jw = new JsonTextWriter(sw))
            {
                jw.WriteStartObject();
                foreach (var languageCode in SupportedLanguages)
                {
                    if (content.TryGetValue(languageCode, out var value))
                    {
                        jw.WritePropertyName(languageCode);
                        jw.WriteValue(value);
                    }
                }

                jw.WriteEndObject();
                return sw.ToString();
            }
        }

and this
        /// <summary>
        /// Deserializes JSON localized content to <see cref="IDictionary{TKey,TValue}"/>.
        /// </summary>
        public IDictionary<string, string> Deserialize(string json)
        {
            var item = JsonConvert.DeserializeObject<IDictionary<string, string>>(json);

            foreach (var key in item.Keys)
            {
                if (!SupportedLanguages.Contains(key))
                {
                    item.Remove(key);
                }
            }

            return item;
        }

Practically eliminating the usage of JObject, further more this opens the option of having a SerializeAsync since JsonTextWriter supports write async methods.
While some part also modified the localize property to add initial support for Shallow and OneLevel localization. Deep is not complete yet. That being said, all unit tests are passing and it's safe to merge and use this. Deep is treat as OneLevel at the moment.
I will probably add unit tests to the Depths once Deep is implemented.

I never really got why we got an error when merging. The file in question IObjectLocalizer looked fine to me.


Trying to write an instrumentation library, can't eagerly create a meter/instruments but can eagerly get a tracer

[x] This only affects the JavaScript OpenTelemetry library

I'm trying to integrate OpenTelemetry into our library, which provides a client for the Cerbos gRPC/HTTP API.
We successfully incorporated tracing and span context propagation. Now I am trying to add metrics, and have run into difficulty.
Our approach so far has been to provide a CerbosInstrumentation class that implements the Instrumentation interface. Rather than patching require/imports, its enable method installs a hook into our client classes that allows us to instrument the gRPC/HTTP calls.
Our instrumentation class has a tracer field that is set to trace.getTracer() in the constructor. This works fine.
If I try to do the same with a meter field set to metrics.getMeter(), it doesn't work at all, which is really confusing.
On investigation, it seems that

we construct the instrumentation instance before setting up the SDK with the tracer and meter providers; then
trace.getTracer() gives us a proxy tracer that gets updated with the real instance once the NodeSDK sets the global tracer provider; but
metrics.getMeter() gives us a no-op meter that doesn't get updated once the NodeSDK sets the global meter provider.

I don't really understand how our instrumentation class is supposed to use the global meter provider given this behaviour. I'll probably try lazily initialisation so that we only create the histograms we need at the time we first want to record a metric, but this is a bit of a pain to implement compared to the tracer, and will only work if we assume the global meter provider doesn't change after the first time we attempt to record a metric (which is probably a reasonable assumption in the case of our library, but I don't know that it would be true for all libraries).
Would it make sense for @opentelemetry/api to provide a proxy meter implementation that behaves the same as the tracer one? If not, how should we handle this as library authors?

I agree that this should be clearer.
Unfortunately, introducing a proxy meter would introduce a lot of complexity. For Metrics, multiple levels need to be proxied (MeterProvider, Meter, Instruments, batch observable Callbacks), whereas for tracing, only two need to be proxied (TracerProvider and Tracer). See also #3622
You can, however, re-create the instruments that you're using by overriding and implementing the _updateMetricInstruments() methods of the instrumentation (see the code from the http instrumentation). This is called when a new MeterProvider is set, which happens automatically when instrumentation is registered (via registerInstrumentations(), this has to be called after the SDK is initialized, though).


Add groups support

For now bot can't join groups, so it is impossible to raffle prizes in group chat. I should make another way to connect the bot.

If it is a channel, bot is already an admin, and I can link channel to all admins
If it is a group, there is two ways:

promote bot to admin, so channel will be linked to all admins.
Type /connect_prizebot

This issue closes #55


queue-depth to be added

Some implementation(s) do(es) not configure the queue-depth at the ethernet-container-configuration/queue-behavior-list/queue-depth, but at the qos-profile.
Adding the same attribute here would allow configuring those devices, too.

Fixed with QosProfile_1.0.0-tsp.220405.1620.


ManytoMany: ContentItems<=>Organisations

Trello card
Description
The import fails when a content item appears to belong to more than one
organisations.
This commit seeks to re-defines the association between ContenItems and the
respective Organisations to a ManytoMany association.
This allows for content items to be associated with the relevant
organisations (i.e more than one organisation).
As a result of this re-definition of association some tests have failed,
requiring the updates to factory girl’s definition of organisation and
also similar updates to some tests and concrete code.
I have updated factory girl organisation_with_content_items. This has been
done to fix failing tests and provide insight on the nature of the relationship
between content item and organisation from a factory girl point.
This references [1].
[1] http://www.rubydoc.info/gems/factory_girl/file/GETTING_STARTED.md#Associations

Thank you for addressing all comments. LGTM


Drive allocation chart and allocation key do not reflect system accent color

Describe the bug
When viewing the properties dialog of a drive, the chart showing allocated space do not reflect the system accent color and instead remain a fixed blue.
To Reproduce
Steps to reproduce the behavior:

Select any drive from the sidebar.
Right click it and open it's properties dialog.

Expected behavior
Chart key and fill color should reflect the system accent color.
Screenshots

Desktop (please complete the following information):

OS Version: Windows 10 20H2
App version: <IP_ADDRESS>

Additional context
None
Log file
not relevant

Might I suggest you put a border around those colour key rectangles, to ensure they are not confused for CheckBoxes

Might I suggest you put a border around those colour key rectangles, to ensure they are not confused for CheckBoxes

There possible color contrast problem, if you select dark gray color in Windows settings.

There possible color contrast problem, if you select dark gray color in Windows settings.

There possible color contrast problem, if you select dark gray color in Windows settings.
UPD:

To be fair, it is a silly choice to make, when the Accent Colour is functional as well as an aesthetic one.
You can't expect every app to "correct" a mistake made by the user.

There possible color contrast problem, if you select dark gray color in Windows settings.
UPD:

To be fair, it is a silly choice to make, when the Accent Colour is functional as well as an aesthetic one.
You can't expect every app to "correct" a mistake made by the user.

@mdtauk There are lots of things that users don't expect developers to go through the trouble of, but we try to do them anyways since details matter.

@mdtauk There are lots of things that users don't expect developers to go through the trouble of, but we try to do them anyways since details matter.

@Tropix126 This issue should be resolved with #3161.

@Tropix126 This issue should be resolved with #3161.


[Memorystore/Redis & AppEngine] across projects

I'm currently having different projects using App Engine and Memorystore/Redis.
Is there any chance to access also redis from another project which is in the same zone?
I'm running App Engine flex with php5.6 and PHP Redis extension. Accessing redis from the same project is not an issue at all, but i can't get any connection from another project using IP 10.0.0.X.

Per the following documentation, it doesn't appear this would be possible.

To connect to a Cloud Memorystore for Redis instance, clients must be in the same GCP project, region, and VPC network.

It may be worth posing your question in the Memorystore google group to see if anyone there can expand further on this restriction for you.


Improve documentation for publishedService and IP options

What does this PR do?
Makes it more clear what the kubernetes-ingress options actually do. like ip and publishedService.

Motivation
Hackaeton and the long-lasting issue #8406.
Fixes #8406
More

[x] Added/updated documentation

Hi @kevinpollet. I'm little sad that you modified the issue description to add the "fixes" as this doesn't in reality fix the underlying bug which is in using Endpoints instead of EndpointSlices. The bug itself is still in the code.

Hello @samip5, and sorry for that, I missed something.
Could you please open a detailed issue, describing the bug with a reproduction case?

Hello @samip5, and sorry for that, I missed something. Could you please open a detailed issue, describing the bug with a reproduction case?

It's right there https://github.com/traefik/traefik/issues/8406.

Hello @samip5,
If I am not mistaken, issue #8406 was about copying the LoadBalancer service IPs to the Ingress status. This is working as expected by using the publishedService option and confirmed in the following comment (https://github.com/traefik/traefik/issues/8406#issuecomment-1253675004). This is why I closed the issue, after the clarification you made in the documentation.
The following comment https://github.com/traefik/traefik/issues/8406#issuecomment-907221953 is about the IPs used for load balancing, which seems to contain only one IP Family. If there is an issue with IPv6 or dual stack clusters, it would be easier to open a new issue to be able to address it properly.
Could you please open this new issue describing the problem?

Hello @samip5,
If I am not mistaken, issue #8406 was about copying the LoadBalancer service IPs to the Ingress status. This is working as expected by using the publishedService option and confirmed in the following comment (#8406 (comment)). This is why I closed the issue, after the clarification you made in the documentation.
The following comment #8406 (comment) is about the IPs used for load balancing, which seems to contain only one IP Family. If there is an issue with IPv6 or dual stack clusters, it would be easier to open a new issue to be able to address it properly.
Could you please open this new issue describing the problem?

You're unfortunately mistaken, as the original one was also about EndpointSlices, not just copying the status.

Hi @samip5
I propose that you open a specific issue to explain your problem.
Thank you

Hi @samip5 I propose that you open a specific issue to explain your problem. Thank you

It already has been explained (multiple times, mind you, even in the Hackathon), but no matter how I try to explain it, it seems maintainers will not understand my point, so I will rather just not use Traefik.

I'm sorry, but that's how most open source project works: to report problems through issues.
This is the only way to avoid confusion and understand your use case (which is not the case today).
Don't hesitate to come back later if you want to contribute.


For CMake based project, "Debug your Linux project" section isn't useful

I can't follow the instructions in this section, because there is no place called "Debugging property page" for CMake based project.

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

ID: 001834ce-31d2-e768-1df1-4a776aa9ef65
Version Independent ID: 45f15fc0-e5c7-34a1-2469-f38d304ef5bd
Content: Deploy, run, and debug your C++ Linux project in Visual Studio
Content Source: docs/linux/deploy-run-and-debug-your-linux-project.md
Product: visual-cpp
Technology: cpp-linux
GitHub Login: @TylerMSFT
Microsoft Alias: twhitney

@DovahYol
I understand your confusion. This page is not meant for Linux CMake projects. It's part of a series of three pages for MSBuild-based (.vcxproj) Linux projects:

Create a new Linux project
Configure a Linux project
Deploy, run, and debug your Linux project

For CMake Linux projects, all three steps are all covered in:

Create and configure a Linux CMake project

I don't think our TOC is helping here. I'll take a look at rearranging it.

Thank you for your patience as we work through our backlog. We have received more issues than we can manage at this time. We are closing issues based on their severity, how broadly applicable they are, and whether there is enough information provided to act on the issue. If you believe that this issue should not have been closed, please add a comment explaining why by 3/8/2024. We appreciate your contribution and encourage you to propose changes using public PRs, or submit feedback through our updated control at the top of the page, as we phase out Git Issues for this repo. For more information on our feedback systems, see https://aka.ms/ContentUserFeedback.


Survey Json deserializer reports a failed error on loading a json with PanelDynamic question

The following code reports the error:
    var json = { questions: [
            {type: "paneldynamic", name: "q", panelCount: 3, templateElements: [{type: "text", name: "q1"}, {type: "text", name: "q2"}]
        }]};
    var survey = new SurveyModel(json);

survey.jsonErrors array is not empty. It contains information about an error. That is wrong.

Failed bug, everything work as expected.


Allow pytorch model to customize collate_fn to be used in torch DataLoader

All the official pytorch object detections model expect the input as a list of tensors List[torch.Tensor[3, H, W]], while the classification models expect a mini-batch of stacked tensors torch.Tensor[N, 3, H, W].
Object detections model then can do resize in GPU and tolerate different size / channels of images.
We could probably expect that the none-official models will have a wide range of expectations from collate_fn.  Rikai should be flexible about that.

By default, Torch DataLoader will throw error with SSD + the full coco dataset even we apply Resize(300, 300) to the images.

Closed via #643


x/net/http2: http client closes stream prematurely if used concurrently

What version of Go are you using (go version)?
go version devel +3c4d3bd Wed May 30 22:54:22 2018 +0000 linux/amd64

Does this issue reproduce with the latest release?
I'm using go from tip. The go1.10.2 is affected too.
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/ernado/.cache/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/go"
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build180192421=/tmp/go-build -gno-record-gcc-switches"

What did you do?
Put a simple http server behind nginx and tried to send http2 requests concurrently.
Sample client and server:
package main

import (
	"bytes"
	"flag"
	"fmt"
	"io"
	"io/ioutil"
	"log"
	"net"
	"net/http"
	"runtime"
	"sync"
	"time"
)

var (
	client     = flag.Bool("client", false, "client")
	addr       = flag.String("addr", "localhost:8544", "addr")
	url        = flag.String("url", "https://hostname", "url")
	concurrent = flag.Bool("concurrent", true, "concurrent")
)

func main() {
	flag.Parse()
	if !*client {
		fmt.Println("listening on", *addr)
		http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) {
			io.Copy(ioutil.Discard, request.Body)
			request.Body.Close()
			writer.WriteHeader(http.StatusOK)
		})
		http.ListenAndServe(*addr, nil)
		return
	}
	fmt.Println("client to", *url)
	wg := new(sync.WaitGroup)
	var cDialer = &net.Dialer{
		Timeout: 10 * time.Second,
	}
	var cNetTransport = &http.Transport{
		DialContext:         cDialer.DialContext,
		TLSHandshakeTimeout: 10 * time.Second,
		MaxIdleConns:        20,
		MaxIdleConnsPerHost: 10,
		IdleConnTimeout:     60 * time.Second,
	}
	var cNetClient = &http.Client{
		Timeout:   time.Second * 30,
		Transport: cNetTransport,
	}
	for i := 0; i < runtime.GOMAXPROCS(-1); i++ {
		wg.Add(1)
		go func(id int) {
			// Constructing a client per goroutine.
			var dialer = &net.Dialer{
				Timeout: 10 * time.Second,
			}
			var netTransport = &http.Transport{
				DialContext:         dialer.DialContext,
				TLSHandshakeTimeout: 10 * time.Second,
				MaxIdleConns:        20,
				MaxIdleConnsPerHost: 10,
				IdleConnTimeout:     60 * time.Second,
			}
			var netClient = &http.Client{
				Timeout:   time.Second * 30,
				Transport: netTransport,
			}
			if *concurrent {
				// Using concurrent client instead.
				netClient = cNetClient
			}
			for {
				buf := make([]byte, 10000)
				req, err := http.NewRequest(http.MethodPost, *url+fmt.Sprintf("/%d", id), bytes.NewReader(buf))
				if err != nil {
					log.Fatal(err)
				}
				res, err := netClient.Do(req)
				if err != nil {
					fmt.Println("err", err)
					continue
				}
				// Ensuring connection reuse.
				io.Copy(ioutil.Discard, res.Body)
				res.Body.Close()

				if res.StatusCode != http.StatusOK {
					fmt.Println(res.Status)
				}
			}
		}(i)
	}
	wg.Wait()
}

Nginc config:
server {
        listen 443 ssl http2;
        location / {
                proxy_pass_request_headers on;
                proxy_pass http://localhost:8544;
        }

        server_name hostname;
        ssl_certificate     /home/ernado/.lego/certificates/hostname.crt;
        ssl_certificate_key /home/ernado/.lego/certificates/hostname.key;
}

$ nginx -v
nginx version: nginx/1.13.12

I was running client like that:
$ http2-test --client

What did you expect to see?
No errors in nginx log and client stdout.
What did you see instead?
In nginx error log:
2018/05/31 03:23:57 [info] 32265#32265: *40872 client prematurely closed stream: only 0 out of 10000 bytes of request body received while sending request to upstream, client: <IP_ADDRESS>, server: HOST, request: "POST /1 HTTP/2.0", upstream: "http://<IP_ADDRESS>:8544/1", host: "HOST"

In client stdout:
400 Bad Request
400 Bad Request
400 Bad Request
400 Bad Request
400 Bad Request
400 Bad Request
400 Bad Request
400 Bad Request
400 Bad Request
400 Bad Request
400 Bad Request
400 Bad Request
400 Bad Request
400 Bad Request
400 Bad Request

If each spawned goroutine got a separate http client, there are no errors:
$ http2-test --client --concurrent=false

Also there are no errors in stdout if http2 is disabled
$ export GODEBUG=http2client=0
$ http2-test --client

However, there are a lot of entries like this in nginx error log:
client <IP_ADDRESS> closed keepalive connection
client closed connection while waiting for request, client: <IP_ADDRESS>, server: <IP_ADDRESS>:443

But those entries disappear with --concurrent=false.
I'm not sure about the cause of that issue and will be happy if someone reproduce it too.

cc: @bradfitz

Duplicate of #25009. Please check that issue and close this if you think that is the same issue.

Yes, seems like a duplicate, thank you


instuctor button should be "After triggering Elemental Reaction"

Dupe of #937, thank you though!


Problem loading custom context

Hi! I am having an error trying to load custom contexts. I am using this library through https://github.com/danubetech/verifiable-credentials-java
I tried publishing them in different several ways with no luck (http, https, with localhost, domain, etc).
In the log I see the following warning:
2022-11-21 10:43:57,544 WARNING [fou.ide.jso.ConfigurableDocumentLoader] (executor-thread-0) Cannot load context:
originated in this line: https://github.com/decentralized-identity/jsonld-common-java/blob/632c989ab0698433dfa27c87ec13440df4aef0a1/src/main/java/foundation/identity/jsonld/ConfigurableDocumentLoader.java#L113
After that, I get  Imported context is null.: foundation.identity.jsonld.JsonLDException: Imported context is null.
You can reproduce this issue with the following context: https://w3id.org/dcc/v1
List<URI> uris = new ArrayList<>();
uris.add(new URI("https://w3id.org/dcc/v1"));

com.danubetech.verifiablecredentials.VerifiableCredential.Builder builder = VerifiableCredential.builder()
       .contexts(uris)
       .type(credentialType)
       .id(new URI(credentialId))
       .issuer(new URI(issuerDID))
       .issuanceDate(new Date())
       .credentialSubject(credentialSubject);

What is really weird is that it works ok with https://www.w3.org/2018/credentials/v1 (may be it is cached?), but if I publish the same context in my localhost, it does not work.
Any hints? Thanks!

Hello, thanks for the detailed problem report!
You need a document loader that knows how to load your custom context. If you create a VerifiableCredential (which is a subclass of JsonLDObject), then a default context loader is used, which has several contexts already cached locally. This explains why https://www.w3.org/2018/credentials/v1 is working fine.
To enable loading of your custom context, you have two options:

Turn on loading contexts via http/https (quick&easy, but this has security risks and is therefore disabled by default):

VerifiableCredential vc = builder.build();
((ConfigurableDocumentLoader) vc.getDocumentLoader()).setEnableHttp(true);
((ConfigurableDocumentLoader) vc.getDocumentLoader()).setEnableHttps(true);

Add your custom context to the local cache (better):

VerifiableCredential vc = builder.build();
((ConfigurableDocumentLoader) vc.getDocumentLoader()).getLocalCache().put(URI.create("https://w3id.org/dcc/v1"), JsonDocument.of(MediaType.JSON_LD, ... yourcontextfile ...));

Let me know if this works or if you still have problems.

Thanks for the fast response! Both options worked perfectly.
I have one last question: why do we need to load the context when signing the VC?

The context is needed for canonicalizing the VC into a list of RDF quads, which then get signed. See the following resources for some more technical information. Both specs are under active development, perhaps it would be interesting for you to contribute!
https://w3c.github.io/rdf-canon/spec/
https://w3c.github.io/vc-data-integrity/


Async Mysql fail only in this repo :/

Using the old repo ngx_php7 it's working OK.
It's very strange, but I tested also in local and fail.
Check: https://github.com/TechEmpower/FrameworkBenchmarks/pull/8109

Also check the tests: https://github.com/rryqszq4/ngx-php/actions/runs/4591218566/jobs/8107235962#step:10:89


chore(deps): update vcpkg to v2023.01.09

This version the changes to google-cloud-cpp that remove ExperimentalTag{} from bi-directional streaming RPCs.

I am hoping the robots will close it themselves (with a small nudge)


Process 2 consecutive lines at a time in each thread

Process two consecutive lines lines at time, use better hash.
Some extra jvm args, and don't return index from temperature parsing.
Check List:

[X] You have run ./mvnw verify and the project builds successfully
[X] Tests pass (./test.sh <username> shows no differences between expected and actual outputs)
[X] All formatting changes by the build are committed
[X] Your launch script is named calculate_average_<username>.sh (make sure to match casing of your GH user name) and is executable
[X] Output matches that of calculate_average_baseline.sh
[X] For new entries, or after substantial changes: When implementing custom hash structures, please point to where you deal with hash collisions (line number)

Execution time: 12.0s (2.5s faster on 4 core i7)
Execution time of reference implementation: 288s

00:04.886 now.


perf: reduce size

This reduces the bundle size (wasm + js) from 19.1kB minified, 12.2kB brotli to 18.6kB minified, 12.0kB brotli
it should also speed up lookup time since I removed the unnecessary conversion to string, but I haven't checked that

Don't get addicted to this otherwise we will lose you forever 😂

I truly believe there's no more golfing to be done here no worries 😂


get_binance_balance changing method get to post

Hello,
The request has to be sent as a post request not as a get request : https://binance-docs.github.io/apidocs/spot/en/#user-asset-user_data

Thanks @ThomasHoutrique


Enhance the Documentation Template

Related Issue : #298
Description
Enhance the documentation for better clarity and usability, especially for new users setting up the project. This improvement aims to simplify the setup process by providing clear instructions and examples.
Type of PR

[ ] Bug fix
[ ] Feature enhancement
[x] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
N/A
Checklist:

[x] I have performed a self-review of my code
[x] I have read and followed the Contribution Guidelines.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[x] I have commented my code, particularly in hard-to-understand areas.

Additional context:
This enhancement includes updates to the README and other relevant documentation files to provide new users with a more intuitive and user-friendly setup experience. Clear examples and step-by-step instructions will aid in reducing setup time and confusion.

@sanjay-kv  THE TASK HAS BEEN COMPLETED.

@sanjay-kv kindly merge it and close it


implemented dark_light theme toggle button

@pekkaklarck This implements a theme toggle butten at top left of log and report.
By default the system setting is used.
If toggle is clicked, it is stored in localStorage.
Additionally it is possible to add ?theme=dark or ?theme=light to the url and you directly get the requested theme.
maybe this can still be tried out in RC1 ?

We have a custom storage functionality for accessing localStorage available for HTML outputs and report already uses it (see storage.init(), storage.get() and storage.set(). The same solution should be used when accessing localStorage to get the theme for consistency reasons and also because the code handles code like localStorage not being available.
It would be nice, but not mandatory, if Libdoc would also get a toggle for selecting the theme. It then needed to play together with the --theme option Libdoc has. If this gets at all complicated, it's better to wait for RF 7.1.
I'll merge this now to get the functionality into the rc. Accessing localStorage should still be changed. Let's discuss on Slack who does it and should it be done before the rc.


Opening Multi-window on Windows raises TargetInvocationException when calling DisplayActionSheet()

[After opening multiple window on Windows as instructed in the documentation, call DisplayActionSheet() raises Excepion:
System.Reflection.TargetInvocationException: 'Exception has been thrown by the target of an invocation.']

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

ID: c7dc34b7-8355-cff9-6754-c9fdefade29a
Version Independent ID: c7dc34b7-8355-cff9-6754-c9fdefade29a
Content: .NET MAUI windows - .NET MAUI
Content Source: docs/fundamentals/windows.md
Product: dotnet-mobile
Technology: dotnet-maui
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Hi @SunshineSpring666
Afraid that this is an issue best raised in the engineering repo. Thanks!

Sorry, I didn't notice that. I'll post this issue in MAUI repo.
Best Regards


Move TOC to the left to not overlap with 'chat always on screen'

The TOC left/right needs to be an option or a select or so.  Please :)

Ok, I'll take a look at that, but not this week, since I'm absurdely busy...


GroundingDINO Python Package

Hi, thanks for the great work! Is there a plan for the official pypi release?

Hi, thanks for the great work! Is there a plan for the official pypi release?

Sure, for more convenient usage, we will try to update a pypi version for the users

Would like to have this available in PyPI as well for easy installation

I have added the package to PyPI. Will try to get it on conda-forge as well. I would be happy add maintainers to the package if anyone is interested.
PyPI: https://pypi.org/project/groundingdino-py
GitHub: https://github.com/giswqs/GroundingDINO
pip install groundingdino-py

PS: There are some other packages on PyPI with the name groundingdino in it, so I had to use an alternative package name groundingdino-py as PyPI does not allow the groundingdino name.
I wanted to add groundingdino to PyPI for the downstream package segment-geospatial
https://github.com/opengeos/segment-geospatial/issues/62#issuecomment-1557617029

I have added the package to PyPI. Will try to get it on conda-forge as well. I would be happy add maintainers to the package if anyone is interested.

@giswqs - looks like that strips out the CUDA stuff so only runs on CPU (but with no warning); is that correct?

@yeldarby I think it can still utilize GPU. The GPU installation is handled by torch-gpu, so GroundingDINO does not have to handle it.
I learned it from @darshats at https://github.com/IDEA-Research/GroundingDINO/issues/8?utm_source=pocket_saves#issuecomment-1555930299 and his repo https://github.com/IDEA-Research/GroundingDINO/compare/main...darshats:GroundingDINO:main
I have been using GroundingDINO with the samgeo-geospatial package. It seems working fine. https://samgeo.gishub.org/examples/text_prompts/

The GPU installation is handled by torch-gpu, so GroundingDINO does not have to handle it.

GroundingDINO has these custom C++ and CUDA files: https://github.com/IDEA-Research/GroundingDINO/tree/main/groundingdino/models/GroundingDINO/csrc
Are the compiled versions of those not needed to run with GPU?

It failed to compile on my Linux machine with the latest cuda, and that's why I had to remove those cuda stuff from GroundingDINO. After that, the installation went smoothly, and I was able to use it with SAM. It is pretty fast. See the example below. However, I am not sure it GroundingDINO uses GPU or not in this case as I am not a GroundingDINO expert. It would be great if GroundingDINO can make the installation a bit more smooth. There are many installation related issues reported here, and I spent hours trying to install it.
https://github.com/IDEA-Research/GroundingDINO/assets/5016453/25f6766d-312e-47cd-820f-28f9af8ba6b6

It would be great if GroundingDINO can make the installation a bit more smooth. There are many installation related issues reported here, and I spent hours trying to install it.

Definitely agree! I've been trying to get generic wheels to build linked to various versions of PyTorch and CUDA with torch-extension-builder, but haven't quite been able to get it working.
I posted a bounty on Replit as a bit of an incentive if anyone wants to make the install more robust! https://replit.com/bounties/@roboflow/package-open-source

As a followup, I ran a benchmark:

Installing via cloning the repo (A100 on Colab): 100 inferences in 19.1 seconds (5.2 fps)
Installing via cloning the repo (CPU on Colab): 100 inferences in 1709 seconds (0.06 fps)
Installing via @qiswqs' groundingdino-py fork from PyPi (A100 on Colab): 100 inferences in 22.1 seconds (4.5 fps)

So the GPU acceleration definitely makes a big difference (& the fork appears to be running mostly on GPU). That's probably good enough for my purposes!
Do users have to supply their own config/GroundingDINO_SwinT_OGC.py to use your package from pip? Or is there an easy way to use the bundled one?

@yeldarby Thanks for sharing the benchmark. It is great to know the pip package does run on GPU.
The pip package already includes the config files. The package only removes the cuda stuff to make the installation easier. All other files remain the same as the original GroundingDINO repo. See https://github.com/giswqs/GroundingDINO/tree/main/groundingdino/config

Thanks a lot for providing the pip package @giswqs. Even I faced a lot of issues while trying to compile/install this package on my remote machine. This pip package seems to work properly. Can the authors @rentainhe @SlongLiu update this pip installation in the README?

I would like to update on this pip package @giswqs @rentainhe
Yesterday I did not try running inference while using the installation from the pip package, I had just imported the module and it was loading fine so I thought it should be working fine.
However, today I was trying to run inference on the model on GPU after installing this library using the pypi package provided by @giswqs, the moment I import the library
from groundingdino.util.inference import load_model, load_image, predict, annotate
I get following warning that it has failed to load custom C++ ops.
[/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/ms_deform_attn.py:31](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/ms_deform_attn.py:31): UserWarning: Failed to load custom C++ ops. Running on CPU mode Only!
  warnings.warn("Failed to load custom C++ ops. Running on CPU mode Only!")

Further when trying to run inference by passing some images to the model on GPU, i'm getting the following error and the code is not working:
with NameError: name '_C' is not defined
complete logs:
8 with torch.no_grad():
----> 9     output = model(image, captions = TEXT_PROMPT_LIST)
     11 prediction_logits = output["pred_logits"].cpu().sigmoid()  # prediction_logits.shape = (batch, nq, 256)
     12 prediction_boxes = output["pred_boxes"].cpu() # prediction_boxes.shape = (batch, nq, 4)

File [~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/nn/modules/module.py:1102](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/nn/modules/module.py:1102), in Module._call_impl(self, *input, **kwargs)
   1098 # If we don't have any hooks, we want to skip the rest of the logic in
   1099 # this function, and just call forward.
   1100 if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
   1101         or _global_forward_hooks or _global_forward_pre_hooks):
-> 1102     return forward_call(*input, **kwargs)
   1103 # Do not call functions when jit is used
   1104 full_backward_hooks, non_full_backward_hooks = [], []

File [~/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/groundingdino.py:313](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/groundingdino.py:313), in GroundingDINO.forward(self, samples, targets, **kw)
    310         poss.append(pos_l)
    312 input_query_bbox = input_query_label = attn_mask = dn_meta = None
--> 313 hs, reference, hs_enc, ref_enc, init_box_proposal = self.transformer(
    314     srcs, masks, input_query_bbox, poss, input_query_label, attn_mask, text_dict
    315 )
    317 # deformable-detr-like anchor update
    318 outputs_coord_list = []

File [~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/nn/modules/module.py:1102](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/nn/modules/module.py:1102), in Module._call_impl(self, *input, **kwargs)
   1098 # If we don't have any hooks, we want to skip the rest of the logic in
   1099 # this function, and just call forward.
   1100 if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
   1101         or _global_forward_hooks or _global_forward_pre_hooks):
-> 1102     return forward_call(*input, **kwargs)
   1103 # Do not call functions when jit is used
   1104 full_backward_hooks, non_full_backward_hooks = [], []

File [~/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/transformer.py:258](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/transformer.py:258), in Transformer.forward(self, srcs, masks, refpoint_embed, pos_embeds, tgt, attn_mask, text_dict)
    253 enc_topk_proposals = enc_refpoint_embed = None
    255 #########################################################
    256 # Begin Encoder
    257 #########################################################
--> 258 memory, memory_text = self.encoder(
    259     src_flatten,
    260     pos=lvl_pos_embed_flatten,
    261     level_start_index=level_start_index,
    262     spatial_shapes=spatial_shapes,
    263     valid_ratios=valid_ratios,
    264     key_padding_mask=mask_flatten,
    265     memory_text=text_dict["encoded_text"],
    266     text_attention_mask=~text_dict["text_token_mask"],
    267     # we ~ the mask . False means use the token; True means pad the token
    268     position_ids=text_dict["position_ids"],
    269     text_self_attention_masks=text_dict["text_self_attention_masks"],
    270 )
    271 #########################################################
    272 # End Encoder
    273 # - memory: bs, \sum{hw}, c
   (...)
    277 # - enc_intermediate_refpoints: None or (nenc+1, bs, nq, c) or (nenc, bs, nq, c)
    278 #########################################################
    279 text_dict["encoded_text"] = memory_text

File [~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/nn/modules/module.py:1102](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/nn/modules/module.py:1102), in Module._call_impl(self, *input, **kwargs)
   1098 # If we don't have any hooks, we want to skip the rest of the logic in
   1099 # this function, and just call forward.
   1100 if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
   1101         or _global_forward_hooks or _global_forward_pre_hooks):
-> 1102     return forward_call(*input, **kwargs)
   1103 # Do not call functions when jit is used
   1104 full_backward_hooks, non_full_backward_hooks = [], []

File [~/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/transformer.py:576](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/transformer.py:576), in TransformerEncoder.forward(self, src, pos, spatial_shapes, level_start_index, valid_ratios, key_padding_mask, memory_text, text_attention_mask, pos_text, text_self_attention_masks, position_ids)
    574 # main process
    575 if self.use_transformer_ckpt:
--> 576     output = checkpoint.checkpoint(
    577         layer,
    578         output,
    579         pos,
    580         reference_points,
    581         spatial_shapes,
    582         level_start_index,
    583         key_padding_mask,
    584     )
    585 else:
    586     output = layer(
    587         src=output,
    588         pos=pos,
   (...)
    592         key_padding_mask=key_padding_mask,
    593     )

File [~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/utils/checkpoint.py:211](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/utils/checkpoint.py:211), in checkpoint(function, *args, **kwargs)
    208 if kwargs:
    209     raise ValueError("Unexpected keyword arguments: " + ",".join(arg for arg in kwargs))
--> 211 return CheckpointFunction.apply(function, preserve, *args)

File [~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/utils/checkpoint.py:90](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/utils/checkpoint.py:90), in CheckpointFunction.forward(ctx, run_function, preserve_rng_state, *args)
     87 ctx.save_for_backward(*tensor_inputs)
     89 with torch.no_grad():
---> 90     outputs = run_function(*args)
     91 return outputs

File [~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/nn/modules/module.py:1102](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/nn/modules/module.py:1102), in Module._call_impl(self, *input, **kwargs)
   1098 # If we don't have any hooks, we want to skip the rest of the logic in
   1099 # this function, and just call forward.
   1100 if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
   1101         or _global_forward_hooks or _global_forward_pre_hooks):
-> 1102     return forward_call(*input, **kwargs)
   1103 # Do not call functions when jit is used
   1104 full_backward_hooks, non_full_backward_hooks = [], []

File [~/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/transformer.py:785](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/transformer.py:785), in DeformableTransformerEncoderLayer.forward(self, src, pos, reference_points, spatial_shapes, level_start_index, key_padding_mask)
    780 def forward(
    781     self, src, pos, reference_points, spatial_shapes, level_start_index, key_padding_mask=None
    782 ):
    783     # self attention
    784     # import ipdb; ipdb.set_trace()
--> 785     src2 = self.self_attn(
    786         query=self.with_pos_embed(src, pos),
    787         reference_points=reference_points,
    788         value=src,
    789         spatial_shapes=spatial_shapes,
    790         level_start_index=level_start_index,
    791         key_padding_mask=key_padding_mask,
    792     )
    793     src = src + self.dropout1(src2)
    794     src = self.norm1(src)

File [~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/nn/modules/module.py:1102](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/.conda/envs/RNCDL/lib/python3.8/site-packages/torch/nn/modules/module.py:1102), in Module._call_impl(self, *input, **kwargs)
   1098 # If we don't have any hooks, we want to skip the rest of the logic in
   1099 # this function, and just call forward.
   1100 if not (self._backward_hooks or self._forward_hooks or self._forward_pre_hooks or _global_backward_hooks
   1101         or _global_forward_hooks or _global_forward_pre_hooks):
-> 1102     return forward_call(*input, **kwargs)
   1103 # Do not call functions when jit is used
   1104 full_backward_hooks, non_full_backward_hooks = [], []

File [~/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/ms_deform_attn.py:338](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/ms_deform_attn.py:338), in MultiScaleDeformableAttention.forward(self, query, key, value, query_pos, key_padding_mask, reference_points, spatial_shapes, level_start_index, **kwargs)
    335     sampling_locations = sampling_locations.float()
    336     attention_weights = attention_weights.float()
--> 338 output = MultiScaleDeformableAttnFunction.apply(
    339     value,
    340     spatial_shapes,
    341     level_start_index,
    342     sampling_locations,
    343     attention_weights,
    344     self.im2col_step,
    345 )
    347 if halffloat:
    348     output = output.half()

File [~/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/ms_deform_attn.py:53](https://vscode-remote+ssh-002dremote-002b10-002e127-002e30-002e125.vscode-resource.vscode-cdn.net/home/rohit.bharadwaj/Documents/Projects/GroundingDINO/~/Documents/Projects/GroundingDINO/groundingdino/models/GroundingDINO/ms_deform_attn.py:53), in MultiScaleDeformableAttnFunction.forward(ctx, value, value_spatial_shapes, value_level_start_index, sampling_locations, attention_weights, im2col_step)
     42 @staticmethod
     43 def forward(
     44     ctx,
   (...)
     50     im2col_step,
     51 ):
     52     ctx.im2col_step = im2col_step
---> 53     output = _C.ms_deform_attn_forward(
     54         value,
     55         value_spatial_shapes,
     56         value_level_start_index,
     57         sampling_locations,
     58         attention_weights,
     59         ctx.im2col_step,
     60     )
     61     ctx.save_for_backward(
     62         value,
     63         value_spatial_shapes,
   (...)
     66         attention_weights,
     67     )
     68     return output

NameError: name '_C' is not defined

Perhaps this is because some of the CUDA related files was removed while compiling the pypi package @giswqs ?
Is it possible for someone to provide an updated pypi package by compiling with these CUDA files as well?

Sorry for the above comment and confusion..., I verified with inference and it seems to be working fine.
I was running the code from wrong directory so it was trying to get the modules not from the pypi package but from the current directory instead.
So to confirm, the above pypi package seems to work even with GPU. Thank you again @giswqs

I have added groundingdino to conda-forge. It can be easily installed with conda. Let me know if anyone is interested in becoming a maintainer of the conda-forge package.
mamba install -c conda-forge groundingdino-py

https://anaconda.org/conda-forge/groundingdino-py
https://github.com/conda-forge/groundingdino-py-feedstock

I have added the package to PyPI. Will try to get it on conda-forge as well. I would be happy add maintainers to the package if anyone is interested.
PyPI: https://pypi.org/project/groundingdino-py GitHub: https://github.com/giswqs/GroundingDINO
pip install groundingdino-py

PS: There are some other packages on PyPI with the name groundingdino in it, so I had to use an alternative package name groundingdino-py as PyPI does not allow the groundingdino name.
I wanted to add groundingdino to PyPI for the downstream package segment-geospatial opengeos/segment-geospatial#62 (comment)

this saved me, thank u

Hi and thanks for providing Grounding Dino as a pip package @giswqs !
I compared the inference output of the original repo with the output of the package, and it doesn't seem to be the same. For label inference both the original repo and the pip package give the same result, nevertheless the pip package seems to have issues with sentence prompts.
Does anyone else encountered this issue?
Cheers,
M

Hi and thanks for providing Grounding Dino as a pip package @giswqs !
I compared the inference output of the original repo with the output of the package, and it doesn't seem to be the same. For label inference both the original repo and the pip package give the same result, nevertheless the pip package seems to have issues with sentence prompts.
Does anyone else encountered this issue?
Cheers,
M

Can you provide some specific examples for better analysis?

how to install or use on arm64？


TensorRT ValueError Input 1 of node StatefulPartitionedCall was passed float from unknown:0 incompatible with expected resource

faild to use trt_convert to convert tensorflow .pb file to tensorrt
model code:
inputs = keras.Input(shape=(200,), dtype="int32")
# Embed each integer in a 128-dimensional vector
x = layers.Embedding(max_features, 256)(inputs)
# Add 2 bidirectional LSTMs
# x = layers.Bidirectional(layers.LSTM(64, return_sequences=True))(x)
# x = layers.Bidirectional(layers.LSTM(64))(x)
x = layers.LSTM(64)(x)
# Add a classifier
outputs = layers.Dense(1, activation="sigmoid")(x)
model = keras.Model(inputs, outputs)

convter pb to trt code
model_dir = '/data/danlu/tensorrt/resnet/lstm'
opt_model_dir = '/data/danlu/tensorrt/resnet/lstm_trt'

precision = "FP32"
max_workspace_size_bytes =<PHONE_NUMBER>
conversion_params = tf_trt.DEFAULT_TRT_CONVERSION_PARAMS._replace(precision_mode=precision,
                                                                  max_workspace_size_bytes=max_workspace_size_bytes,
                                                                  maximum_cached_engines=100)
converter = tf_trt.TrtGraphConverterV2(input_saved_model_dir=model_dir, conversion_params=conversion_params)
converter.convert()

def build_fn():
    Inp1 = np.random.randint(1, 200, (1, 200), dtype=np.int32)
    yield Inp1

converter.build(input_fn=build_fn)
converter.save(opt_model_dir)

pb file
https://drive.google.com/file/d/1M4TEB3t1SDpBFj-RS7WL8AuWybZaP1YZ/view?usp=sharing
env:
os: ubutun 16.04
python: 3.8.3
tensorflow: 2.6.0
TensorRT: <IP_ADDRESS>
cuda: 10.2
gpu: v100:32g
error log
Traceback (most recent call last):
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/framework/importer.py", line 496, in _import_graph_def_internal
    results = c_api.TF_GraphImportGraphDefWithResults(
tensorflow.python.framework.errors_impl.InvalidArgumentError: Input 1 of node StatefulPartitionedCall was passed float from unknown:0 incompatible with expected resource.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "trt_transfer.py", line 21, in <module>
    converter.convert()
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/compiler/tensorrt/trt_convert.py", line 1087, in convert
    frozen_func = convert_to_constants.convert_variables_to_constants_v2(func)
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/framework/convert_to_constants.py", line 1074, in convert_variables_to_constants_v2
    return _construct_concrete_function(func, output_graph_def,
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/framework/convert_to_constants.py", line 999, in _construct_concrete_function
    new_func = wrap_function.function_from_graph_def(output_graph_def,
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/wrap_function.py", line 650, in function_from_graph_def
    wrapped_import = wrap_function(_imports_graph_def, [])
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/wrap_function.py", line 621, in wrap_function
    func_graph.func_graph_from_py_func(
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/framework/func_graph.py", line 986, in func_graph_from_py_func
    func_outputs = python_func(*func_args, **func_kwargs)
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/wrap_function.py", line 87, in __call__
    return self.call_with_variable_creator_scope(self._fn)(*args, **kwargs)
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/wrap_function.py", line 93, in wrapped
    return fn(*args, **kwargs)
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/eager/wrap_function.py", line 648, in _imports_graph_def
    importer.import_graph_def(graph_def, name="")
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/util/deprecation.py", line 507, in new_func
    return func(*args, **kwargs)
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/framework/importer.py", line 400, in import_graph_def
    return _import_graph_def_internal(
  File "/root/anaconda3/lib/python3.8/site-packages/tensorflow/python/framework/importer.py", line 501, in _import_graph_def_internal
    raise ValueError(str(e))
ValueError: Input 1 of node StatefulPartitionedCall was passed float from unknown:0 incompatible with expected resource.

Hi @hotpeppeper ! Could you look at these threads for answer ? Link1,Link2,Link3 . Thanks!

Hi @hotpeppeper ! Could you look at these threads for answer ? Link1,Link2,Link3 . Thanks!

This may not have any help, I still don't know how to resolve my problem

Hi @GuoGuiRong ! Could you please check this gist  and let us know after configuring TensorRT?


should figures.json have dwi as datatype?

In figures.json, should there be dwi option in default_paths? Currently only looks like anatomical and functional images are supported.

Addressed with #507


Rebuild image

Changelog category (leave one):

Improvement

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
...

Rebuild of image for arm64 specially

Documentation entry for user-facing changes

[ ] Documentation is written (mandatory for new features)

Information about CI checks: https://clickhouse.com/docs/en/development/continuous-integration/

This is an automated comment for commit 83f7f8f34606e81355b38e86a25aa2c4feb29d4e with description of existing statuses. It's updated for the latest CI running
The full report is available here
The overall status of the commit is 🔴 failure
Check nameDescriptionStatus
Push to DockerhubThe check for building and pushing the CI related docker images to docker hub🔴 failure


Import asdf-dprint repository

@SnO2WMaN Once you have moved the repository, please comment here. I will merge this and import the repository into Terraform appropriately.

ok I moved it (https://github.com/asdf-community/asdf-dprint) Thanks

All set! Everything should have been done right just now.


Reorder duk_create_heap() arguments, userdata should be last

Now that the fatal error handler accepts a (heap) userdata argument, the userdata argument should be last in duk_create_heap(). This follows the prevailing convention that when callbacks are registered userdata follows the relevant callback(s) (and when the callbacks are called, userdata is first).
Related issues:

duk_create_heap_default() doesn't have a fatal error handler which is not ideal because the default fatal error handler gets used. This in turn leads to user confusion about segfaults (which is intentional behavior).
Should fatal error handler be a mandatory argument to minimize the chances of user code relying on the built-in default handler?
Rewrite website fatal error parts
Add a portability checklist or getting started checklist? That could include a fatal error note.

This may be better implemented by hiding some of the initialization variables into struct(s), with a macro to initialize a struct to a default state (ensuring portability for initializing NULLs). This makes the API more easily versionable. So, assigning off 2.0.0.


test(button-harness): add performance tests for buttons using the pro…

…tractor harness env

The main thing we are looking at here is not the button's performance. Instead we are looking at
the performance overhead of using the protractor harness env.

@devversion Sorry, I should have left a comment. I pushed these changes out so that Miles could take a look. None of these changes are concrete right now

@wagnermaciel Oh. I got requested for review and looked since I didn't want people to be blocked on me 😛 Let me know if you want me to have a full look.

@devversion Ok, ready for review. My bad earlier, I should have let you know. And thanks for being so fast to review! I really value & appreciate your feedback!


Determine need for line width dynamic state based on topology reaching rasterizer, not input topology

Squashed down so we won't preserve my missteps forever.


Fall through everything, nothing is ground.

My version is 2019.4, ground doesnt come up as an optuin in what is ground, so i fall through everything.

Who are u bro . I did not understand anything.
24 Kas 2020 Sal 22:05 tarihinde TheMaster6417<EMAIL_ADDRESS>şunu yazdı:

My version is 2019.4, ground doesnt come up as an optuin in what is
ground, so i fall through everything.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/DaniDevy/FPS_Movement_Rigidbody/issues/27, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ARZJLTFIMLOX77UNP3AEQH3SRP7WBANCNFSM4UBJHPFA
.

Dude you need to make a layer callled ground for the player.


Incorrect background image url for raycast-magic-link email template

Describe the Bug

The url of the image should be /static/raycast-bg.png instead of /assets/raycast-bg.png
Which package is affected (leave empty if unsure)
demo
Link to the code that reproduces this issue
https://demo.react.email/preview/magic-links/raycast-magic-link
To Reproduce
Check the demo template here
Expected Behavior
The raycast background should be able to display correctly
What's your node version? (if relevant)
No response

Just fixed it, thanks for letting us know!


Tiles Image loader utils

Consider a Coil image utility for Tiles
Example https://github.com/android/wear-os-samples/blob/65b0468db06427fdd07c5697ba97afe7c4d5f082/WearTilesKotlin/app/src/main/java/com/example/wear/tiles/messaging/images.kt

cc @ataulm

https://github.com/google/horologist/pull/217/files


Dsyms upload ignores configuration

Describe what happened
Setting configuration to the following:
{
    "expo": {
        "plugins": [
            [
                "expo-datadog",
                {
                    "errorTracking": {
                        "iosDsyms": false
                    }
                }
            ]
        ]
    }
}

Still results in dsyms being uploaded to datadog when running expo run:ios to build the ios application.
Steps to reproduce the issue:

Add above configuration to app.json
Run a local ios build: expo run:ios
Observe dsyms uploaded to datadog, or an error with an incorrect api key.

Describe what you expected:
Dsyms not uploaded to datadog
Additional context

Version of the Expo SDK
Versions of expo-datadog and @datadog/mobile-react-native
app.json
eas.json if relevant
package.json
Podfile and Podfile.lock
android/build.gradle and android/app/build.gradle

Hi @Nicktho, thanks for reaching out and apologies for the delay.
One possible explanation for your issue: when the iOS app is built, we upload 2 mapping files:

native dsyms
javascript sourcemaps

If you only disable dsyms, you will still attempt to upload the javascript sourcemaps. To disable all uploads in iOS builds you should use:
{
    "expo": {
        "plugins": [
            [
                "expo-datadog",
                {
                    "errorTracking": {
                        "iosDsyms": false,
                        "iosSourcemaps": false
                    }
                }
            ]
        ]
    }
}

If you are still experiencing the issue, could you upload your iOS log to help us troubleshoot?
Thanks a lot!


Separate unsupported geolocation logic

Also configure for minification.

Hi @RumataEstor
Can you make sure that all the tests pass, and add a new test(s) to illustrate your addition?
Thanks


Rework Dex placeholder objects

Context: https://github.com/Zarel/Pokemon-Showdown/pull/5475#discussion_r281000445

This should probably throw instead of creating a placeholder.

Originally posted by @Zarel in https://github.com/Zarel/Pokemon-Showdown/pull/5475
The simple way to check this is to change this to throw and run a bunch of smoke tests to see what happens.
However, I don't know that we can make getEffectByID throw if not found - its called by getEffect, which seems like its supposed to be able to handle arbitrary input? At least, thats the reason you gave on #5194 for not allowing me to skip the hasOwnProperty call.

I thought getEffect would manually create an Effect object if not found, rather than delegating to getEffectByID.

I thought getEffect would manually create an Effect object if not found, rather than delegating to getEffectByID.

For that to happen, we'd want there to be a third, private method which is called internally by getEffect and getEffectByID and returns null/undefined/sentinel such that getEffect can then construct a placeholder and getEffectByID can throw, but this seems unnecessary (adding a catch to getEffect to avoid the third method is a nonstarter).

The biggest reason we don't just return undefined is because https://github.com/tc39/proposal-optional-chaining is still Stage 1 after approximately eight years of literally everyone asking for it.

Originally posted by @Zarel in https://github.com/Zarel/Pokemon-Showdown/pull/5475
If we want optionals, I'd prefer an Optional wrapper class with Optional.of(effect) or Optional.empty() because then you only new up a small object instead of the whole shebang, but I guess that defeats your purpose of the placeholder object making it so you dont need to care the object doesnt exist. With Typescript as a null or undefined checker though, you basically get all the same benefits of @NonNull/@Nullable checking, which makes returning undefined safe AFAICT (just less convenient, because without chaining the compiler will force you to handle missing values differently).
Though can we just return nullObject instead of a named {exists: false} placeholder?  The only downside is that obviously the name wont match - how much does that matter here? Really, my main concern with this 'placeholder pattern' is that it is substantially less efficient than the traditional null object pattern you were going for given how relatively expensive it is to make the placeholder.

I'm fine with a single cached placeholder as a stopgap. But we might want to actually fix it.
throwing might be appropriate for all getEffect calls? The only one is when it's used by stuff like /data, which we might want to manually wrap in a try-catch?


Remote assets disappear once page is cached

Potentially related to previous issues #101 and #770, and branching from #2216, remote assets are(in some cases) only output upon the first page load after a cache clear, completely absent from any subsequent refreshes.
On a clean install of 1.6.3 (plus admin & gantry, also verified before installing gantry), I tested adding FA5 CSS via twig to a single page ({% do assets.addCss('https://use.fontawesome.com/releases/v5.8.1/css/all.css') %}) and via Gantry > Page Settings > Assets to the whole site with different pipelining options selected, the results of which are summarised here:

Pipelining...
Twig
Gantry 5

off
<link> present in first load only
<link> always present

on, include externals off
<link> present in first load only
<link> present in first load only

on, include externals on
resource present in pipeline for first load only
resource always present in pipeline

i'm aware of this particular issue, and will look at it shortly.

Ok, please test the fix.

Works perfectly now when adding via Gantry, however nothing seems to have changed from my table above when doing it via twig. Just to check what I'm doing there: in the Admin panel, I've been enabling twig processing for the target page, then adding the above twig to the top of the page.

I'm not sure you tested with all the changes, because i've tested this (outside of Gantry) and it works perfect in all combinations.  here's:
cache:
  enabled: true
  check:
    method: file
assets:
  css_pipeline: true
  css_pipeline_include_externals: false
  css_pipeline_before_excludes: false
  css_minify: true

After several reloads with cache on...

btw my Twig:
{% block stylesheets %}
    {% do assets.addCss('https://use.fontawesome.com/releases/v5.8.1/css/all.css') %}
    {% do assets.addCss('theme://css-compiled/spectre'~compress) %}
    {% if theme_var('spectre.exp') %}{% do assets.addCss('theme://css-compiled/spectre-exp'~compress)  %}{% endif %}
    {% if theme_var('spectre.icons') %}{%  do assets.addCss('theme://css-compiled/spectre-icons'~compress) %}{% endif %}
    {% do assets.addCss('theme://css-compiled/theme'~compress) %}
    {% do assets.addCss('theme://css/custom.css') %}
    {% do assets.addCss('theme://css/line-awesome.min.css') %}
{% endblock %}

I'm still seeing it, here's exactly what I'm doing in an empty folder on my server:
git clone https://github.com/getgrav/grav.git .
bin/grav install
bin/gpm install admin
Then in admin, turn on debugger and edit default home page so it is as follows:
---
title: Home
body_classes: 'title-center title-h1h2'
process:
    markdown: true
    twig: true
---

{% do assets.addCss('https://use.fontawesome.com/releases/v5.8.1/css/all.css') %}

<i class="fab fa-keybase"></i>

# Say Hello to Grav!
...

Then the initial load:

And subsequently:

Sorry if I'm doing something wrong, I'd normally just do it through gantry, but thought a theme-non-dependent test would be useful.

Ok, well there's your problem.  You are adding the asset in your content, and the content get's cached and the Twig will get lost.  If you want to do it that way you need to set:
never_cache_twig: true

In your frontmatter.

Ah, thanks, I don't often use twig so I forgot!


VsTable doesn't display data from ajax call - (solution)

When data is fetched with a ajax call as opposed to being there from the start, it isn't displayed until either page is changed or something is typed into search box, which causes a call to loadData().
This function should also be called in the data watcher but it is commented out.
File: vsTable.vue
Commented line: 217

I have the same problem

I have this problem as well. Any news?

@fergardi @Overx @Kobrowsky Can you please check this with latest release. If it's solved please close this issue.


INI File errors

Describe the problem
Can't seem to read an INI file.
Steps to reproduce the problem
[Main]
job = saddle_search
temperature = 300
random_seed = 706253457

[Potential]
potential = ams

With the code:
require 'tty-config'
config = TTY::Config.new
config.read("#{Dir.pwd}/config.ini", format: :ini)

Actual behaviour
Output:
Traceback (most recent call last):
	4: from $HOME/Git/Github/CPP/EONgit/tools/gprdimer/eonc.rb:49:in `<main>'
	3: from $HOME/.asdf/installs/ruby/2.7.3/lib/ruby/gems/2.7.0/gems/tty-config-0.5.0/lib/tty/config.rb:470:in `read'
	2: from $HOME/.asdf/installs/ruby/2.7.3/lib/ruby/gems/2.7.0/gems/tty-config-0.5.0/lib/tty/config.rb:830:in `unmarshal'
	1: from $HOME/.asdf/installs/ruby/2.7.3/lib/ruby/gems/2.7.0/gems/tty-config-0.5.0/lib/tty/config/marshallers/ini_marshaller.rb:26:in `unmarshal'
$HOME/.asdf/installs/ruby/2.7.3/lib/ruby/gems/2.7.0/gems/tty-config-0.5.0/lib/tty/config/marshallers/ini_marshaller.rb:26:in `merge!': no implicit conversion of nil into Hash (TypeError)

Expected behaviour
What did you expect to happen?
Describe your environment

OS version: MacOS (but also tested on Linux)
Ruby version: 2.7.3
TTY::Config version: tty-config (0.5.0)

Hi Rohit,
Thanks for reporting this issue and providing steps to reproduce this bug.
As it turned out the INI file marshaller didn't account for configuration without global properties.
Would you have time to check this fix? I'll make a release shortly.

@HaoZeke Released v0.5.1 with the fix.

@piotrmurach thanks so much, sorry I wasn't able to respond earlier.


Refactor app.layout to maximize use of dbc component library

dbc.Form and layout components could be used to reduce need to specify margins / padding.

wrap everything in a dbc.Container (?)

Closing as not planned for now in favour of more impactful developer-side or user-facing improvements (dash bootstrap components are already in use in most places in app).


Forcing FP32 in Attention

Hi, I wonder why you manually disable autocast to fp16 in your Attention implementation:
https://github.com/LTH14/mage/blob/1becb14475354fc40df35ba7c7c7bf418a137cd3/models_mage.py#L34-L35
Did you observe any instabilities when you were training with fp16? I am not aware of this issue on a scale of ViT-B and ViT-L, at least in MAE.
Thanks.

Hi -- I observed NaN when training ViT-L without such modification. ViT-B works fine.


Fix some places where python2 packages fail to evaluate.

I unfortunately still depend on some python2 packages. It appears
that these two packages fail to evaluate, in a way that tryEval
doesn't catch. This changes them to be explicitly disabled there.

Motivation for this change
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

It is only disabled on py2, but the py2 set of packages inherits from the
py3 set, so we need to override the inherited packages to disable them.
On Sat., Dec. 4, 2021, 18:07 Sandro, @.***> wrote:

@.**** commented on this pull request.
In pkgs/top-level/python2-packages.nix
https://github.com/NixOS/nixpkgs/pull/148328#discussion_r762496441:

@@ -12,7 +12,7 @@ with self; with super; {
inherit (pkgs) antlr4;
};

appleseed = toPythonModule (pkgs.appleseed.override { inherit (self) python; });

appleseed = disabled super.appleseed;

If it is always disabled we can also remove it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/pull/148328#pullrequestreview-823340359,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACFJKFKGPUAJRKW5ZPH2G3UPK3LNANCNFSM5JIDYCEQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.


Whisper prompting support

Using a prompt, the OpenAI Whisper models can be conditioned on the text that appeared in the previous ~30 seconds of audio. One of the possible applications of Whisper prompting is to inform the model to become more likely to output certain jargon that may be use-case specific. As so, this feature can be very helpful.

Is there a way to support prompts in the Whisper models optimized using Olive? This feature is already supported in HuggingFace Transformers (https://github.com/huggingface/transformers/issues/22395).-

The following are some useful links concerning Whisper prompting:

https://platform.openai.com/docs/guides/speech-to-text
https://github.com/openai/whisper/discussions/963
https://github.com/openai/whisper/discussions/117

@cfasana thank you for bringing this up and for your experiment with the existing model.
I also spent some time looking how the changes the transformers library made to add this feature but didn't get around to trying it with our model.
The beam search op is created and maintained by a separate team from onnxruntime https://github.com/microsoft/onnxruntime/tree/main so we have to talk with the developers about this feature request and see if it can be added. We will keep you posted after discussing this with them.

@jambayk thank you for your feedback.
I had the possibility to do a couple more experiments and noticed that if the prompt is too long (i.e., the prompt tokens are too many), then an error is raised stating that the input exceeds max_length (200).
I think that this can be related to what I stated before concerning the maximum number of new tokens.
Do you know whether, at the moment, it is possible to modify the max_length parameter? Right now it seems to be set when loading the model configuration from HuggingFace.
I'll wait for any update.

max_length is an input to the model so you can control it yourself. In out example, it is set to 200 here https://github.com/microsoft/Olive/blob/main/examples/whisper/code/whisper_dataset.py#L48.

@cfasana thank you for bringing this up and for your experiment with the existing model.
I also spent some time looking how the changes the transformers library made to add this feature but didn't get around to trying it with our model. The beam search op is created and maintained by a separate team from onnxruntime https://github.com/microsoft/onnxruntime/tree/main so we have to talk with the developers about this feature request and see if it can be added. We will keep you posted after discussing this with them.

@jambayk any news on that?

Hi @cfasana, sorry for the delayed response. I talked with the developers of the beam search operator and they told me the limit of 448 tokens is limited by the model so the prompt will always count towards it.
As it stands, concatenating the prompt and the normal start ids is the way to go.

Hi @cfasana, sorry for the delayed response. I talked with the developers of the beam search operator and they told me the limit of 448 tokens is limited by the model so the prompt will always count towards it.
As it stands, concatenating the prompt and the normal start ids is the way to go.

@jambayk  Thanks for the feedback. I ran several experiments with this approach in the past months and it works pretty well. I am happy to now have a double-check on the fact that the approach I used was the correct one.

Hi @cfasana, sorry for the delayed response. I talked with the developers of the beam search operator and they told me the limit of 448 tokens is limited by the model so the prompt will always count towards it.
As it stands, concatenating the prompt and the normal start ids is the way to go.

@jambayk  Thanks for the feedback. I ran several experiments with this approach in the past months and it works pretty well. I am happy to now have a double-check on the fact that the approach I used was the correct one.
Thanks, I will close the issue.


Update docs gitignore

Update .gitignore on gh-pages branch. After this pull request is merged, master and gh-pages will have identical .gitignore files. Previously files that were ignored on master (and branches from it) would show up as changed when switching to gh-pages (and branches from it). This pull request should stop this.

@chengzhuzhang I noticed on #331 that many files that should have been ignored were included. Turns out the .gitignore on gh-pages was much smaller than the one on master.
Is there any reason we should ignore/no ignore different file groups on master and gh-pages? If not, I will merge this.

Ryan, please go ahead and merge. Thanks for noticing it.

@chengzhuzhang and @forsyth2, typically, your gh-pages branch wouldn't include the code itself, so the .gitignore wouldn't need to be as complicated.  Here are some examples from our repos:
https://github.com/MPAS-Dev/MPAS-Analysis/tree/gh-pages
https://github.com/MPAS-Dev/MPAS-Tools/tree/gh-pages
https://github.com/MPAS-Dev/MPAS-Model/tree/gh-pages
Is there a reason you include the code on your gh-pages branch, too?

@xylar I agree. It would be cleaner not to include codes. @forsyth2 maybe instead of having a long .gitignore, we should follow the examples Xylar provided?

@chengzhuzhang The second commit removes unnecessary files. I will combine the commits before merging.
ls now gives:
Makefile            e3sm_diags.egg-info source
docs                index.html

I'm not sure if e3sm_diags.egg-info needs to be there. The other files/directories I think all need to be present.
I'm not entirely sure which lines I can remove from the .gitignore though. For example, the new .gitignore includes build/ and dist/, which I removed in the second commit. I created another branch remove-unncessary-files with just the second commit (i.e., no .gitignore changes), ran the tests on master and changed to the remove-unncessary-files branch. That caused tests/ to show up in git status. Turns out that directory has __pycache__ in it, which implies the .gitignore needs to at least have __pycache__/ in it.

Hi Ryan,  I can't seem to find the remove-unncessary-files branch. Would you push the branch? With __pycache__/ included in .gitignore will work fine I think.

@chengzhuzhang I didn't push the remove-unnecessary-files branch to GitHub -- it just had the second commit of this PR (it did not include any changes to the .gitignore). I suppose I can update the .gitignore only with __pycache__. If it turns out later we should have included more in the .gitignore, then we can just add them then.

@chengzhuzhang Ok, I updated the .gitignore just to add __pycache__/. Everything else in the PR is deleting files we don't need. I think this should be good to merge then.

This should be good to merge. We can add more files to the .gitignore later, if needed. This PR deletes temporary files (ending in ~), acme_diags, build, dist, e3sm_diags_env_dev.yml,  and tests. It also includes changes resulting from running make html.


Still generate signatures in SkipContextSensitive mode just to match on return types

(during inference).
Fixes #13118
I've kept it minimal - we only dive into the return type if there's a contextual return type whose contextual checking could fix a type parameter before the second, context-sensitive pass. It's worth noting that this has inherited our current slightly flawed definition of a context sensitive function return - namely that only arrow return expressions can be context sensitive (return statements cannot). That TODO is probably worth fixing at some point.

@typescript-bot test this

@typescript-bot test this now that RWC is clean and I've merged master 🤦♂


Please add the actual details of what permissions are required to add a user

Please add the actual permissions required to submit U-SQL jobs rather then just stating "Use the Wizard."  Being told to run a black box is not actually useful in knowing what is required.

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

ID: a99913e8-6da8-cb09-4472-8f92f8a1be70
Version Independent ID: cbd7ead3-b2c4-f299-3cd5-c4116f4ea76f
Content: Add users to an Azure Data Lake Analytics account
Content Source: articles/data-lake-analytics/data-lake-analytics-add-users.md
Service: data-lake-analytics
GitHub Login: @saveenr
Microsoft Alias: saveenr

@helloyesthisisdave
On Azure Data Lake Storage Gen1:  If a user or a security group needs to submit jobs, they also need permission on the store account like (Owner or contributor).
The Owner and Contributor role provide access to a variety of administration functions on the data lake account. For users who will interact with data in the data lake but still need to view account management information, you can add them to the Reader role. The scope of these roles is limited to the management operations related to the Data Lake Storage Gen1 account.
For more information, see Secure data stored in Data Lake Store.
On Azure Data Lake Analytics: Data Lake Analytics Developer. This role has the minimum set of permissions required to submit/monitor/manage U-SQL jobs. Assign to this role if the group is not intended for managing Azure services.

Hope this helps.

@helloyesthisisdave  We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.


HOTFIX - Use HTTPS_PROXY when querying proxy

These changes update the endpoint the aws script uses to check the reachability of the proxy with to include the port, which is necessary in some cases.

/lgtm