VeRA doesn't work with lower-precision models

System Info
python 3.10.14
accelerate 0.31.0
peft 0.11.2.dev0 (current main)
transformers  4.41.2
Who can help?
No response
Information

[ ] The official example scripts
[X] My own modified scripts

Tasks

[X] An officially supported task in the examples folder
[ ] My own task or dataset (give details below)

Reproduction
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel, VeraConfig

device = "cuda"
dtype = torch.bfloat16 # or torch.float16

vera_config = VeraConfig(
    r=8,
    vera_dropout=0.05,
    target_modules=["q_proj", "v_proj"],
)

model = AutoModelForCausalLM.from_pretrained(
    "mistralai/Mistral-7B-v0.1", torch_dtype=dtype, device_map=device
)
model = PeftModel(model, vera_config)
model.set_adapter("default")

tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-v0.1")

model.eval()
tokenizer.padding_side = "left"
tokenizer.pad_token = tokenizer.eos_token

prompts = ["My mother", "My favourite", "I like to eat"]
model_inputs = tokenizer(prompts, return_tensors="pt", padding=True).to(device)

generated_ids = model.generate(**model_inputs, max_new_tokens=100, do_sample=True)

Error msg:
File "[REDACTED]/peft/tuners/vera/layer.py", line 267, in forward
    result = result + lambda_b * F.linear(lambda_d * F.linear(dropout(x), sliced_A), sliced_B)
RuntimeError: expected mat1 and mat2 to have the same dtype, but got: float != c10::Half

The error happens with either torch.bfloat16 or torch.float16
Changing device to torch.float32 doesn't have this problem.
A small patch in peft/tuners/vera/layer.py, casting sliced_A and sliced_B to the same dtype as lambda_d (float32) does workaround this problem:
    def forward(self, x: torch.Tensor, *args, **kwargs) -> torch.Tensor:
        previous_dtype = x.dtype

        if self.disable_adapters:
            if self.merged:
                self.unmerge()
            result = self.base_layer(x, *args, **kwargs)
        elif self.merged:
            result = self.base_layer(x, *args, **kwargs)
        else:
            result = self.base_layer(x, *args, **kwargs)
            for active_adapter in self.active_adapters:
                if active_adapter not in self.vera_lambda_d.keys():
                    continue

                lambda_d = self.vera_lambda_d[active_adapter]
                lambda_b = self.vera_lambda_b[active_adapter]

                vera_A = self.vera_A[active_adapter]
                vera_B = self.vera_B[active_adapter]

                # As adapted layers may have different shapes and VeRA contains a single shared pair of A and B matrices,
                # we initialize these matrices with the largest required size for each dimension.
                # During the forward pass, required submatrices are sliced out from the shared vera_A and vera_B.
                sliced_A = vera_A[:, : self.in_features]
                sliced_B = vera_B[: self.out_features, :]

                dropout = self.vera_dropout[active_adapter]
                x = x.to(lambda_d.dtype)
                sliced_A = sliced_A.to(lambda_d.dtype)
                sliced_B = sliced_B.to(lambda_d.dtype)
                result = result + lambda_b * F.linear(lambda_d * F.linear(dropout(x), sliced_A), sliced_B)

        result = result.to(previous_dtype)
        return result

Expected behavior
It shouldn't break when using lower-precision models, though I only tested with mistralai/Mistral-7B-v0.1.
I'm not sure why vera_A and vera_B are casted to bfloat16 to begin with, they are initialized as float32. I dug around but can't find where they are casted to bfloat16.
Also, the patch is probably suboptimal since if we have to cast them to float32 in every forward pass instead of setting them as float32 and keep it that way.

Thanks for reporting this issue. As you correctly stated, VeRA should work even if the model is loaded in float16 or bfloat16.
I assume you're working with the latest main branch of PEFT. In that case, the casting to float32 happens because we want to keep the learnable parameters at high precision, as otherwise we might see training instability (see #1706 for more context).
To check this, try loading the model with autocast_adapter_dtype=False:
- model = PeftModel(model, vera_config)
+ model = get_peft_model(model, vera_config, autocast_adapter_dtype=False)

Since this is desired behavior, we should cast the adapter parameters to the correct dtype during forward as your snippet suggests. Are you interested in creating a PR to fix this?

Thank you for a quick response @BenjaminBossan.
I suppose what's happening here is that vera_d and vera_b are being casted "down" somewhere else rather than being cased up to float32. The patch I proposed casts them up from a lower precision to float32 as both lambdas are already in float32.
I think main issue is that vera_d and vera_b are initialized as float32 but being casted down somewhere after init. I didn't dig to the base model implementation but my guess is that vera_A and vera_b are not being casted to float32 despite autocast_adapter_dtype=True.

@51616 I created a PR that should fix this issue: #1874. If you have time, it would be great if you could check if this solves your particular problem.


Determine code coverage and make a plan

coverage is 1/1 test completion, but there is very little actually built, so current statement/branch/etc stats are irrelevant

Coverage completed and at 100%


Name our collection of solution ideas separately from our problem definition?

It's sometimes getting a bit confusing that the term "Federated Bookkeeping" describes both a problem and our solution attempts for it.
Maybe we can:

define "Federated Bookkeeping" as the problem (i.e. "we want our computer systems to be connected but sovereign"),
discuss linked data and blockchain as possible solution frameworks for that problem
propose "the club" or some other name for it, as our solution

I think "Federated Systems" are not the problem, but our solution to a problem of like "Centralized Systems" or "Vassal Systems", where systems lose sovereignty in order to be connected.
This is really important for presenting a better perspective into the issue and also explain the similarities and differences between those systems and federated systems.
I might be missing something here but isn't "the club" the same as "federation".

I think "Federated Systems" are not the problem, but our solution to a problem of like "Centralized Systems" or "Vassal Systems", where systems lose sovereignty in order to be connected.

Hm, we could define our problem as "the mediocrity of existing computer systems" but I think that leads to a focus on negativity, of what is wrong with other people's work. Instead, "creating better computer system for the same tasks" is a more positive phrasing of the same thing, and then the computer system is a (good or mediocre) solution and the real-world task is the problem.

isn't "the club" the same as "federation".

Yes. But if we choose to make "federated" part of the problem description then it's a tautology to also include it in the solution description.
I'm not sure whether linked data and blockchain are also "federation" or not.

Hm, we could define our problem as "the mediocrity of existing computer systems" but I think that leads to a focus on negativity, of what is wrong with other people's work. Instead, "creating better computer system for the same tasks" is a more positive phrasing of the same thing, and then the computer system is a (good or mediocre) solution and the real-world task is the problem.

I'd say something like "we are not satisfied by the current computer systems as solutions for (task X)" and explain why, but this sounds more of a marketing issue.

I'm not sure whether linked data and blockchain are also "federation" or not.

It will depend on the definition of federation, but at the very least they are precursors.

we are not satisfied by the current computer systems as solutions for (task X)

Yes, or a little more broadly, we are not satisfied by the work flows. Because copy-paste, pdf email attachments, and whole AP/AR departments tasked with aligning books between companies are so low-tech they don't even deserve the label "computer systems" :)

I think you convinced me! I'm OK with "we are not satisfied by some of the current work flows as solutions for (task X)" as the problem statement. That makes sense, and this will resonate because everybody knows these work flows; we can describe task X and the existing human work flows for it in one sentence.
Then the problem statement is how can we make the human work easier by building good computer systems
And then the candidate solutions could be:

monolith systems
linked data
blockchain
federated bookkeeping

So I've been reading Gregor Hohpe's and Bobby Woolf's Enterprise Integration Patterns, and despite having been written nearly 20 years ago, there is an enormous amount of useful material in that book that will help us minimise the reinvention of wheels in this area.  One of the points they make in the preface is that almost all software is written in isolation, without the explicit expectation of sharing data with other systems downstream.  This indicates that those systems are by nature sovereign in themselves, but that there is a distinction between the systems themselves and the data within them.

Thanks for the link! I read through https://www.enterpriseintegrationpatterns.com/patterns/messaging/toc.html and downloaded a PDF I found of the book. Its focus on messaging ties in well with the work @mlesmenio is doing in https://github.com/pondersource/CYB/tree/main/Design Information#logic-description where we concluded that webhooks are CYB's preferred way to read from a neighbouring system.

I would suggest that the most appropriate way to exchange data between federated systems will be context-specific.  Webhooks have merit, in that the receiving system gets a notification telling it that information is available and what URL to use to retrieve that information.  This helps maintain access control, in that the identity used to request the information from that URL is one that needs to be authorised to retrieve it.  However, additional patterns (such as the Aggregator) may be necessary to bring data together from multiple source systems to compose an e-invoice, for example.

the most appropriate way to exchange data between federated systems will be context-specific

Yes! Since all nodes in the network are sovereign anyway, all we really know is that we know nothing. :)
We don't even know if we should consider it one network.

The CYB link above mentions a set of mandatory common fields expected to be present in all participating systems

Yes, this was an interesting conclusion, I thought we would end up with more a union format, but we concluded that to do any meaningful form of sync we did need to be quite precise.
Regarding the spectrum from problem to solution and how we describe that on the website, see also https://gitter.im/federatedbookkeeping/community?at=63c55a4a0cd40c2e89dae415


Fix BaselineAlignment

What does the pull request do?

This PR adds support for all BaselineAlignment variants. Previously not all of them where handled.
This also fixes the baseline alignment for mixed typefaces that are layout in one line.
What is the current behavior?

What is the updated/expected behavior with this PR?

How was the solution implemented (if it's not obvious)?

Checklist

[ ] Added unit tests (if possible)?
[ ] Added XML documentation to any related classes?
[ ] Consider submitting a PR to https://github.com/AvaloniaUI/avalonia-docs with user documentation

Breaking changes

Obsoletions / Deprecations

Fixed issues

This fixes my repro in https://github.com/AvaloniaUI/Avalonia/issues/15984#issuecomment-2179174485 - thanks.


Image Save node error after update

Hi. The image save node worked perfectly and after updating WAS nodes this morning it now gives me the following error "   - Required input is missing: filename_number_start", there is no input for file number and before the update, it would just save into the folder and continue from the last file number. any help to resolve this would be appreciated. thanks

think I resolved it be reloading the node. thanks

Yeah I was updated with a new feature via PR. ComfyUI is totally not graceful about node field order changes


storage: prevent tag overwrites controlled via configuration

Once an image is uploaded with a tag, don't allow overwrites for that same tag.
Default should be to prevent the overwrites:
"allowOverwrites" set to true explicitly.

Laurentiu will look into this.

Suggestion:

Let's have the allowOverwrites flag under http.
In case of attempt to overwrite return error code 405 - Method Not Allowed.

https://github.com/project-zot/zot/pull/445
^ addresses this issue. However, do we need to make a distinction between any tag and a semver tag?


Refactor Actor's transaction awaiting scheme

See https://github.com/nspcc-dev/neo-go/pull/2804#discussion_r1024070006. To await transaction with the event-based waiter we probably need to subscribe for executions firstly and send the transaction to the network afterwards. This will allow to omit rollback to a poll-based waiter in case of failure.

In fact we can just request AER once after the subscription, if it's there --- OK, we're done, if it's not --- OK, we're waiting as usual.


Allow widgets to not always pull up

So we have a month old version of Gridster where we gutted fn.on_stop_overlapping_row and just have a return statement and also removed this.can_go_player_up from fn.set_player  (commit was :https://github.com/ericop/gridster.js/commit/c331dfc8bec46728cfeb138743bc6c50eeb4bafa) .  This allowed for placing widgets anywhere, and having rows of white space so that "anti-gravity" didn't force them to slide up after they're placed. In the current version (0.6.8) this little trick doesn't work - widgets aren't even draggable actually after i tried a merge - but do you know of an official way we could "turn off" the anti-gravity with a options.autoup: false , etc. ? Thoughts?
I really appreciate your take this project over. It's super fun and "has good bones". I'd love to see it kept alive and strong for a long time to come!

@dsmorse not sure how interested you are in adding some features for pay. We'd obviously give you more clear acceptance criteria, and you could merge these features back into the open source repo. We are just a small shop and and trying to get what we want for usability out of Gridster is spreading us a little thin. Shoot me an email if you're interested in some sort of arrangement along these lines. We love sponsoring good open-source!
Two main features we're looking at:

Allow widgets to be placed anywhere and have them not slide upwards, but stay put
Only have widget collision move the widget underneath after mouseup (i.e., not have cards move from collision while dragging, but only the widget your player's placeholder is over over when you're done.)

http://recordit.co/H9kFmk9tOy displays the features I'm talking about, but they are in the month old version of Gridster and we'd love to have them as toggle options and have the auto-scroll and some of the other newness working for us, from your current build.

I'm not opposed to such an arrangement and I could see those as good features.. but it would depend on your timelines, as I've got my deliveries to coordinate too.  Since it looks like you have it working in an older code base it shouldn't be that difficult to get it on the latest.

I am CCing George, on of the guys in charge over hear who was the
originator of this good idea. He can hopefully weigh in on the time line
and financial aspects.
wait_for_mouseup is the option I added in the old one to avoid updating
widgets every collision as seen in this commit
https://github.com/ericop/gridster.js/commit/b544741a7c6a8cfeb4b475f39f3fd99d71d737ba
. One known issue is that since the widgets aren't updating on_drag, when
the active player being dragged overlaps part of his original position when
you're done with the drag, it snaps back to its original location from
before the drag.
Eric Johnson<PHONE_NUMBER>
On May 16, 2015 5:13 PM, "dsmorse"<EMAIL_ADDRESS>wrote:

I'm not opposed to such an arrangement and I could see those as good
features.. but it would depend on your timelines, as I've got my deliveries
to coordinate too. Since it looks like you have it working in an older code
base it shouldn't be that difficult to get it on the latest.
—
Reply to this email directly or view it on GitHub
https://github.com/dsmorse/gridster.js/issues/6#issuecomment-102698420.

Also just for pin-point clarity, the goal is just to move the last widget that you drop the player on, not to retroactively move all the widgets you hovered or dragged over in the process.

We would like to have the change done by June 1st.  Is that possible?
Give me a call at my cell number below and we can discuss cost, timing, and the change.
George
cell<PHONE_NUMBER>
office<PHONE_NUMBER>
fax<PHONE_NUMBER>
website: www.eFlexSystems.com http://www.eflexassembly.com/
Linkedin:  www.linkedin.com/in/georgejewell/

On May 16, 2015, at 7:33 PM, EOP Johnson<EMAIL_ADDRESS>wrote:
I am CCing George, on of the guys in charge over hear who was the originator of this good idea. He can hopefully weigh in on the time line and financial aspects.
wait_for_mouseup is the option I added in the old one to avoid updating widgets every collision as seen in this commit https://github.com/ericop/gridster.js/commit/b544741a7c6a8cfeb4b475f39f3fd99d71d737ba https://github.com/ericop/gridster.js/commit/b544741a7c6a8cfeb4b475f39f3fd99d71d737ba . One known issue is that since the widgets aren't updating on_drag, when the active player being dragged overlaps part of his original position when you're done with the drag, it snaps back to its original location from before the drag.
Eric Johnson<PHONE_NUMBER>
On May 16, 2015 5:13 PM, "dsmorse"<EMAIL_ADDRESS><EMAIL_ADDRESS>wrote:
I'm not opposed to such an arrangement and I could see those as good features.. but it would depend on your timelines, as I've got my deliveries to coordinate too. Since it looks like you have it working in an older code base it shouldn't be that difficult to get it on the latest.
—
Reply to this email directly or view it on GitHub https://github.com/dsmorse/gridster.js/issues/6#issuecomment-102698420.

Due to conflicts with my own release schedule, I won't be able to commit to that deadline:  but I took some time to look at your changes, check out the beta demo:  http://dsmorse.github.io/gridster.js/demos/sticky-postion.html

Also our settings are as follows if you want to test under the same conditions.
// Build Gridster
  _loadGridster: function() {
    var gridster, ref;
    return gridster = (ref = this.$(".task-card-list")) != null ? ref.gridster({
      max_cols: 10,
      max_rows: 10,
      autogrow_cols: true,
      autogrow_rows: true,
      widget_base_dimensions: this.get('widgetBaseDimensions'),
      resize: {
        enabled: true,
        axes: ['y'],
        handle_append_to: '.task-card',
        handle_class: 'task-resize-handle',
        stop: Em.run.bind(this, '_findAllCoordsData')
      },
      draggable: {
        stop: Em.run.bind(this, '_findAllCoordsData')
      },
      collision: {
        wait_for_mouseup: true
      }
    }) : void 0;
  },

// We toggle the base dimensions for an “overview mode"
  widgetBaseDimensions: (function() {
    if (this.get('isCollapsed')) {
      return [250, 87];
    } else {
      return [250, 230];
    }
  }).property('isCollapsed').readOnly(),

  _resizeBaseDimGridster: function() {
    return this.get('gridster').resize_widget_dimensions({
      widget_base_dimensions: this.get('widgetBaseDimensions')
    });
  },

// These are examples of what we need (col, row & sizeY for each widget) for
//   callbacks after drag and resize  `stop`
  _findAllCoordsData: function() {
    var ref;
    if ((ref = this.$('.task-card-holder')) != null) {
      ref.each((function(_this) {
        return function(i, elem) {
          return _this._updateTaskCoordinates($(elem));
        };
      })(this));
    }

  },
  _updateTaskCoordinates: function(elem) {
    var column, row, sizeY, subtask;
    subtask = Ember.View.views[elem.attr('id')].get('subtask');
    column = parseInt(elem.attr('data-col'));
    row = parseInt(elem.attr('data-row'));
    sizeY = parseInt(elem.attr('data-sizey'));
    subtask({
      column: column,
      row: row,
      sizeY: sizeY
    });
    return console.log('col=' + subtask.column + ', row=' + subtask.row + ', sizeY=' + subtask.sizeY);
  }
});

Eric D. Johnson
eFlex Systems
cell:<PHONE_NUMBER>
On May 18, 2015 at 10:15:30 AM, George Jewell<EMAIL_ADDRESS>wrote:
We would like to have the change done by June 1st.  Is that possible?
Give me a call at my cell number below and we can discuss cost, timing, and the change.
George
cell<PHONE_NUMBER>
office<PHONE_NUMBER>
fax<PHONE_NUMBER>
website: www.eFlexSystems.com
Linkedin:  www.linkedin.com/in/georgejewell/
On May 16, 2015, at 7:33 PM, EOP Johnson<EMAIL_ADDRESS>wrote:
I am CCing George, on of the guys in charge over hear who was the originator of this good idea. He can hopefully weigh in on the time line and financial aspects.
wait_for_mouseup is the option I added in the old one to avoid updating widgets every collision as seen in this commit https://github.com/ericop/gridster.js/commit/b544741a7c6a8cfeb4b475f39f3fd99d71d737ba . One known issue is that since the widgets aren't updating on_drag, when the active player being dragged overlaps part of his original position when you're done with the drag, it snaps back to its original location from before the drag.
Eric Johnson<PHONE_NUMBER>
On May 16, 2015 5:13 PM, "dsmorse"<EMAIL_ADDRESS>wrote:
I'm not opposed to such an arrangement and I could see those as good features.. but it would depend on your timelines, as I've got my deliveries to coordinate too. Since it looks like you have it working in an older code base it shouldn't be that difficult to get it on the latest.
—
Reply to this email directly or view it on GitHub.

@dsmorse So for widget "8" on http://jsbin.com/zunuqiwefe/1/edit?html,console,output I've notived that he isn't initialized to his spot properly. I'll look at it too, but if you know where we need to modify the initialize logic I'd welcome it.

Yeah, I did say beta (right?)  I've also noticed in this config an error with the larger component not pushing enough space if there is an opening.... The things stay where you put them works well, the things move is clearly buggy.  And it appears that the init logicstill has some 'push to the top' logic in register_widget which is why 8 is sliding to row 3 vs row 4 where we told him to go.

Totally understandable. I'm with you on "a step at a time", just wanted to show you in case you didn't try it out and your speedy weekend beta work.

a better beta is available.. but I'm not sure I'll have more time to firm it up.  http://dsmorse.github.io/gridster.js/demos/sticky-postion.html

Cool man, that is better.
On May 21, 2015 12:11 AM, "dsmorse"<EMAIL_ADDRESS>wrote:

a better beta is available.. but I'm not sure I'll have more time to firm
it up. http://dsmorse.github.io/gridster.js/demos/sticky-postion.html
—
Reply to this email directly or view it on GitHub
https://github.com/dsmorse/gridster.js/issues/6#issuecomment-104127019.

@dsmorse
That's working great for me.
And thanks for keeping this project alive!


relocate list and pages de-serialization functions

relocate list and pages de-serialization functions
Does this PR need a docs update or release note?

[x] :no_entry: No

Type of change

[x] :broom: Tech Debt/Cleanup

Issue(s)
#4754
Test Plan

[x] :muscle: Manual
[x] :zap: Unit test
[x] :green_heart: E2E

@HiteshRepo I assume this is only code movement, and contains no changes to the code itself.  But it's difficult to know for sure, because the number of line additions and deletions is substantially different: 329 lines added, 283 removed.  Can you please confirm whether you made any changes as part of moving the code?
What's helpful for PRs like this is if you can write something in the description to state whether reviewers need to look for additional changes.  Something like: "No changes to logic in this PR; I only moved/renamed code."  That'll give us extra confidence that the changes are simple and we don't need to investigate every line that was moved for comparison.

e this is only code movement, and contains no changes to the code itself. But it's difficult to know for sure, because the number of line additions and deletions is substantially different: 329 lines added, 283 removed. Can you please confirm whether you made any changes as part of moving the code?

There is no code changes @ryanfkeepers in this PR. I separated the code changes in subsequent PRs branching out for this branch.
But here is the breakup:

187 lines removed from api/serialization.go

171 lines added to api/lists.go
13 lines added to api/pages.go

102 lines removed from api/serialization_test.go

50 lines added to api/lists_test.go
72 lines added to api/pages_test.go
20 extra lines added because of setting up suite individually for pages and list

rest are just renaming of functions from 'CreatePageFromBytes' to 'BytesToSitePageable' & 'CreateListFromBytes' to 'BytesToListable'

I think the 20-23 extra lines that got added that gets doubled and makes it a 46 gap b/w added and removed.

thank you for the explanation!


Release new Helm Chart version

Hey there,
Can a new version be released of the Helm Chart so that the recent additions (6b3f146788ba711972650fcc15fd7590b518a107 and 15d0899bb4ccaf4327ab3cac68d058d7d159b39e) can be included?
Thanks

Hi @encron. Planning to put out a new build once this PR gets merged in.


Connection with SAS key is not working

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Storage Explorer Version
1.26.1
Regression From
No response
Architecture
i86
Storage Explorer Build Number
20221018.5
Platform
Windows
OS Version
Windows 10
Bug Description
Access the Azure Storage table with valid SAS key is not working and throws an error. Same SAS key based connection has been working until few days ago
Attached is error log from storage explorer
StorageExplorer-Error.txt
Steps to Reproduce

Open Storage Explorer
Connect with the SAS key
Try to open the storage account that you added and you get the error

Actual Experience
Error while accessing the storage account that was added with a valid SAS key
Expected Experience
No response
Additional Context
No response

@nidewa For clarity, it looks like you're using a storage account SAS. Is this correct? I assume you selected "Storage account" when you opened the Connect dialog? Do you know where you got your SAS token from? Are you able to reconnect with a new SAS?

Closing due to lack of response. If you are still encountering this problem and need help, we recommend opening an Azure support ticket via the Azure portal.


Document Development Process

@vltansky Can you write up how to develop this? I'm going to try to enlist some help testing it since I just ran into some issues testing it myself and if people decide they want to help fix stuff I'd like to be able to point them in the right direction. We can add a new section to the Readme.

Not sure what to write.
Generally there are two main files. cli.js and tests/test.js.
And index.js that just imports and run cli.js.

How do you set up your environment so that you can develop locally. Simply that. Make a PR with the steps to be able to run and test this locally and I'll help polish it if anything is unclear (I'll end up testing it myself)


fix: binary path matching in acceptance tests

before the tests failed when more then one binary was available.

Please fix the golangci-lint comment. Other than that, it looks ok.


Type of g.kg^−1 BW.day^−1

What would you say the type of g.kg^−1 BW.day^−1 is? I annotated the following but I'm not sure:
below the recommended intake levels (<measure type="interval"><num atLeast="10">10
</num>–<num atMost="12">12</num> <measure type="FREQUENCY"
unit="g.kg^-1.day^-1">g · body weight (BW) · day -1</measure></measure>)

Related:  "l.day^-1", "ml.kcal^-1.day^-1":

The mean liquid intake was 2.7 ± 1.0 l · day −1 (slightly above recommendations, 1 ml · kcal −1 · day −1 in daily life, 2.4 l · day −1 )

To sum up:

g.kg^−1 BW.day^−1= gram per kg of body weight per day
I understand what it is but can't find the right name for it...
ml.kcal^-1.day^-1
I don't understand, why is it ml by kcal?
l.day^-1= ** liter by day**
daily fluid intake... what would be its type?

As discussed with @lfoppiano, these units are note added as is in the units.json file, we annotate them with the type UNKNOWN.


error: torch.isnan(scales).sum() == 0

Thank you for the awesome repo. I have successfully run and tried it on the LLama model.
The problem occurs when I try to run the MPT model (7B), here are some issues, I hope u can help me with this:

With the model including bias, this line will report the mismatch between bias and scales -> I play around with it and fixed it
With the first one fixed, I can run the MPT model with small layers (I tested with 2 layers), but when testing with full 32 layers, I got the nan error in this line and it from this line
Thank you a lot for the awesome repo.

I just pushed a fix for MPT models in #206. Other than that, I am not sure what the issue is here?

Thank you for your reply, I fixed it by changing the proper dataset. I will close the issues

Hi @casper-hansen, thank you a lot for your repo. I learned a lot. I tried to apply awq to llama.cpp, here is my PR. If you have time, please give me your comment on it.
PR


[Chat] Add a Narrator announcement when a message is deleted

What

Added an announcement when a message is deleted
Why

How Tested

Chat sample app
Process & policy checklist

[x] I have updated the project documentation to reflect my changes if necessary.
[x] I have read the CONTRIBUTING documentation.

Is this a breaking change?

[ ] This change causes current functionality to break.

Tested and looks good!
Just curious, do we have an accessibility bug having a similar announcement on a message being edited?

I don't htink we have one under the Accessibility group


Tables from different schemas are not colorized in ERD

System information:

Operating system (distribution) and version Win10
DBeaver version 21.0

Steps to reproduce, if exist:

Open ERD
Dnd a table from another schema to the erd

Expected: the table is colorized by another color
Actual result: the table is not colorized

Side effect of this fix.

Fixed

verified


Reworked installation instructions

Overview: What does this pull request change?
This cleans up the installation instructions and tries to make them less confusing.

Links to added or changed documentation pages

https://manimce--1949.org.readthedocs.build/en/1949/installation.html
Further Information and Comments

Work in progress.

Reviewer Checklist

[ ] The PR title is descriptive enough for the changelog, and the PR is labeled correctly
[ ] If applicable: newly added non-private functions and classes have a docstring including a short summary and a PARAMETERS section
[ ] If applicable: newly added functions and classes are tested

Alright, I've tried to put some effort into this: basically, I've completely rewritten our installation instructions to make them (hopefully) a bit less scattered, more concise and easier to follow. In doing so, I've removed only a little bit of content (detailed LaTeX installation instructions for Linux are gone), but added a lot of clarifications (and while I was at it, I also ported over the instructions for using the Docker image.
This is now ready for review. I'll specifically need Windows people to check whether the instructions still make sense to them / work (although I believe that the current scoop instructions were incomplete).

Does it make sense to classify LaTeX as an optional dependency? While it's technically optional, graphing + other classes rely on it for labels/text. iirc manimgl made it as optional as it switched to using pango for the major classes.

Does it make sense to classify LaTeX as an optional dependency? While it's technically optional, graphing + other classes rely on it for labels/text.

I think yes. While it is deeply rooted in many parts of the library, you can work around it for simple applications. It's not on the same level as ffmpeg.
Also, you can always decide to install LaTeX later.

I like the changes! There's still the one small thing about the admonition on the main installation page. I think it would be better if it were visible before the sections:

Agreed, changed via ae904632.
Thanks for the reviews!


NETWORK_ONLY cache policy is still caching data?

When I execute a  NETWORK_ONLY  query, and after that I execute the same query with CACHE_ONLY cache policy I get data from cache. This is correct? It's not supposed to return an error because no data is cached?
I am using http cache, not normalized one. Is there a way to prevent data from being cached for a query?

We have com.apollographql.apollo.cache.ApolloCacheHeaders#DO_NOT_STORE but this header works only for normalized cache. I think what we need to make it work for HttpCache as well.


Doesn't work with Git worktrees

Error: Command failed: git log --pretty="format:{#/dquotes/id#/dquotes/: #/dquotes/%H#/dquotes/, #/dquotes/authorName#/dquotes/: #/dquotes/%an#/dquotes/, #/dquotes/relativeDate#/dquotes/: #/dquotes/%cr#/dquotes/, #/dquotes/authorDate#/dquotes/: %at, #/dquotes/message#/dquotes/: #/dquotes/%s#/dquotes/, #/dquotes/body#/dquotes/: #/dquotes/%b#/dquotes/, #/dquotes/hash#/dquotes/: #/dquotes/%h#/dquotes/}" --topo-order --date=local --numstat /Users/kriomant/Devel/some-proj/src/main.cc fatal: Not a git repository: /Users/kriomant/Devel/.someproj-bare/worktrees/some-proj

Can I ask a noob question,  what are worktrees?

I found the answers here more useful than the docs for understanding what this feature is for: http://stackoverflow.com/questions/31935776/what-would-i-use-git-worktree-for


Prevent classes.default from being mutated

Introduced lodash/cloneDeep to make sure classes.default are not mutated inside mergeClasses().

Nice! Can you run npm run lib on this and I can then merge it in

Great! There was no lib script in the package.json, but I assume you meant the gulp js:dist task. I ran that, added it as the lib script in package.json and rebased the branch. Let me know if you need anything else to get this merged.

Ah, I just made a PR/test to fix this and saw you did it already. Thanks for doing this!

Perfect!


Restore compatibility with Cordova Android 4.0+

Fixes #17 and #13.  The WebView object is now accessed via a getView() method call on CordovaWebView objects.

Thanks @ajyong!


added support for paging map with keys as string for put_paging/2

Coverage increased (+0.2%) to 78.906% when pulling 57101249e8be4dbcebf6bd011a9e556228490062 on paging_with_keys_as_map into fdf660f4db45077b531aa2a6af6f1721cfdecb7b on master.


Store Level Scenes in scenes folder

Standard level scene save could be moved to a folder assets/scenes

I'll push this back to 0.4, as it needs to be extended to an arbitrarily customizable default scene storage path. And to release 0.3 this weekend.

It was done


Python bindings - missing interfaces?

Dear all,
I am using python bindings to control the iCub but I am having some issues:

How do I enable "Compliant" interaction mode?
I would expect being able to do the following, similar to what it is done in C++:

options = yarp.Property()
options.put("device", "remote_controlboard")
options.put("local", "/test/client/right_arm")
options.put("remote", "/"+robotName+"/right_arm")
driver = yarp.PolyDriver(options)
iint = driver.viewIInteractionMode()
iint.setInteractionMode(0, VOCAB_IM_COMPLIANT)

However, driver has no method viewIInteractionMode and I didn't find an alternative way to access it.
I've tried using the control interface ( driver.viewIControlMode() and  driver.viewIControlMode2()) but when I use ictrl.setImpedancePositionMode(0) in the motor gui I see that the joint goes idle in an "unknown" state.

Some "get" methods that rely in C++ on passing a pointer with a variable to be filled do not seem to work in Python. For example:

ipos.checkMotionDone(0, answer) #to check if axis 0 has completed movement
NotImplementedError: Wrong number or type of arguments for overloaded function 'IPositionControl_checkMotionDone'.
  Possible C/C++ prototypes are:
    yarp::dev::IPositionControl::checkMotionDone(int,bool *)
    yarp::dev::IPositionControl::checkMotionDone(bool *)
    yarp::dev::IPositionControl::checkMotionDone()
    yarp::dev::IPositionControl::checkMotionDone(std::vector< bool,std::allocator< bool > > &)
    yarp::dev::IPositionControl::checkMotionDone(int,std::vector< bool,std::allocator< bool > > &)

iimp.getImpedance(0,stiff,damp)
TypeError: in method 'IImpedanceControl_getImpedance', argument 3 of type 'double *'

I cannot find the constants such as "VOCAB_CM_POSITION" or "VOCAB_CM_POSITION_DIRECT", so to switch from one to the following I have to use this:
iCtrl.setControlMode(j, yarp.Vocab_encode('pos'))
and
iCtrl.setControlMode(j, yarp.Vocab_encode('posd'))

This does work, so it isn't a real issue, but I was a bit perplexed on having to resort to this instead of using something like:
iCtrl.setControlMode(j, yarp.VOCAB_CM_POSITION)
Any suggestions? :)

Hi @emilio-cartoni !
Regarding 1), I think the viewIInteractionMode method is missing at all in the bindings.
See https://github.com/robotology/yarp/blob/master/bindings/yarp.i#L797 for an example on how to add viewInterface method .

@emilio-cartoni Regarding (3) iCtrl.setControlMode(j, yarp.VOCAB_CM_POSITION), it's what we recently addressed at https://github.com/robotology/yarp/pull/1696
Unfortunatley, it only works for SWIG >= 3.0.11 (careful, there are some variants of 3.0.11, so maybe even better 3.0.12 or 4 to play it safe), so you might have to include some code as mentioned here for production code.

Thanks, @traversaro , @jgvictores
Ok, I have added a few lines to yarp.i to enable viewInteractionMode:
%include <yarp/dev/IInteractionMode.h>
+    yarp::dev::IInteractionMode *viewIInteractionMode() {
+        yarp::dev::IInteractionMode *result;
+        self->view(result);
+        return result;
+    }

I have also tried to solve issue (2) for one of the methods in IInteractionMode by copying similar code used for getControlMode of IControlMode.
%extend yarp::dev::IInteractionMode {
    yarp::dev::InteractionModeEnum getInteractionMode2(int axis) {
	yarp::dev::InteractionModeEnum mode;
	bool ok = self->getInteractionMode(axis, &mode);
        return mode;
    }
}

(A bit ugly as I don't know what will happen if ok is False and mode isn't filled by some values...)
As for issue (3), SWIG 3.0.08 is the latest on our Ubuntu systems, so we'll keep using Vocab.decode for a while.
Are there any plans to put IInteractionMode officially in the bindings?
Should I make a pull request with the code we will add to yarp.i?

Should I make a pull request with the code we will add to yarp.i?

Great idea, thanks!

@emilio-cartoni Yes a PR (Pull Request) is the way to go! : )
BTW, you should have the three InteractionModeEnum (VOCAB_IM_COMPLIANT, etc) for any version of SWIG, because they are defined within an enum and treated differently (fixed at previous PR https://github.com/robotology/yarp/pull/1655).

Closed by robotology/yarp#1757


Feature/workflow container (part 2)

Added

workflow execution stored in vuex
workflow pending tasks data (used in future PR for pending tab)

Changed

workflow execution now polled while workflow is running

Looks fine to me, does vuex use just ajax to poll for the wf info? In the future, we may consider to push from the Cadence server via websockets on updates(if any), to optimize.

Vuex is just a store for data returned by the API. Currently the application is using ajax to poll and will then store in the vuex store. websockets could work in the future when the API supports it.


Rutefig/feedback improvements

I'd recommend responding to chiro's comment on reputation system letting him know that 'upon investigation we realised that the reputation system work will consume more man hours and will be unrealistic to time box in this grant. Therefore, we chose to take it out and intend to submit as a proposal in a later round, though we have the algorithm hashed out.'

@rutefig Will merge. Please ping me when @ronykris comments have been incorporated. Thank you for all your hardwork


oauthdoctor: command not found

used git clone to fetch the binaries but it won't let me run them wether I try from the existing folder structure or if I copy to /usr/bin. All I get is:
"oauthdoctor: command not found"

Hi hfrid,
Thanks for reporting. Is the executable permission enabled to the file? What exactly is your command that you ran?


Support Accept/Reject/Next/Prev chat edit actions in notebooks

@jrieken Making minimal changes in chat edits, i.e. trying to limit changes before we start baking in full (native) support for notebooks in chat edits. However I believe these changes are still valid
Merging into a separate branch for now so you can just see the changes specific to chat edits area.


On Bitmapdata.copy if the source texture has trimming and scaling app…

This PR changes:

Nothing, it's a bug fix

On Bitmapdata.copy if the source texture has trimming and scaling applied to it, the trim values were previously not being scaled relative to the texture.
By reversing the order of these scale and translate calls, translations correctly account for scaling.

Thank you for your PR! Today I released Phaser CE (Community Edition). This is my way of opening up Phaser 2 to the community, allowing you to control features and updates directly. Please see the README in the v2-community folder of the repo for more details about this change.
If you could please re-submit your PR against the new Phaser CE version then I will merge it immediately :) Note that PRs now go against the master branch, and don't forget to add your change to the README too!


i18n(ja): Update frontmatter.md

Description

Update frontmatter.md.

diff

https://github.com/withastro/starlight/pull/1613
https://github.com/withastro/starlight/pull/1530
https://github.com/withastro/starlight/pull/1784

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

Locale
File
Note

ja
reference/frontmatter.md
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


HDDS-5020. Bump ratis version to 2.0.0

JIRA: https://issues.apache.org/jira/browse/HDDS-5020
What changes were proposed in this pull request?
Bump Apache Ratis version to the latest stable 2.0.0 version
How was this patch tested?
Full CI test.

Thanks for the review @adoroszlai. Merging it both to master and 1.1.0-rc0 (cc @prashantpogde )

thanks @elek and @adoroszlai


Boc quest

2 new lines need to be added:

Purchase a piece of armor that can be altered from Enia at the Roundtable Hold.
Select the "I'm sorry..." dialogue option.

They need to be added before this one:

Give the Gold Sewing Needle to Boc at any of the previous places you talked to him at.

EDIT:
I've just realized this option exists: "Buy an armor piece from Finger Reader Enia at the Roundtable Hold."
I checked it after buying some gloves or something like that, not realizing that the armor piece must be able to be altered. Maybe this line needs to be changed to mention that the armor piece should be alterable, just like the first line I suggest adding.

I'm not sure where this is at

Select the "I'm sorry..." dialogue option.

Do you have anymore detail about where this dialogue takes place?
From what I've read, most of this questline isn't exactly required. I feels more like it's just here so that you can get free clothes alternations and where to find him in game. I've read that to get the good ending, all you need to do is use the "you're beautiful" prattling pate after step 2 and you will insure the good ending.

Changing the line to read

Buy an alterable boss armor piece from Finger Reader Enia at the Roundtable Hold.

Adding warning to warn players about giving him a larval tear.

Talk to Boc but do not give him the larval tear unless you are going for the bad ending.

Changes added in 559a6cc


Top Scroll updated

Title and Issue number

Title :  Scroll up button too large
Issue No. : #122
Close #122

Screnshots
Additional context(if any)
Are you contributing under any Open-source programme?

Apertre

@Souvik34 can you make it a little bit small?
And can you use a Ballon D'Or trophy there in spite of using ball?

Ok, I will do the changes

ya try to do it by tonight or by tomorrow!
On Tue, Jan 16, 2024 at 5:47 PM Souvik @.***> wrote:

Ok, I will do the changes
—
Reply to this email directly, view it on GitHub
https://github.com/Soumyajit2825/MESSI_MANIA/pull/136#issuecomment-1893628927,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AX6426Z74VBURIRGNNYDKGTYOZVT5AVCNFSM6AAAAABB4UYH7CVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJTGYZDQOJSG4
.
You are receiving this because you commented.Message ID:
@.***>


feat(generator): add nojekyll option

Types of changes

[x] New feature (a non-breaking change which adds functionality)

Description

Resolves: #8812
add generate.nojekyll option. default is true (original).
If set false, It will not generate .nojekyll file.
Checklist:

[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly. (PR: https://github.com/nuxt/nuxtjs.org/pull/1280 )
[ ] I have added tests to cover my changes (if not applicable, please state why)
[ ] All new and existing tests are passing.

I'm not sure about testing, I would appreciate it if you could help me.

Can you please update unit test  ?


WIP - 110 Change board name

Tackle issue #110. Add functionality to change the name of the board.

[x] Add functionality to change the name of the board.
[x] Add a test for the above functionality.
[x] Add pencil icon on hover.
[ ] Change layout to project maintainers' liking.

Any feedback @Roshanjossey ?

@RikTheunis:Great job. Lemme try this locally. I'll give you my feedback in within 2 hours.

@RikTheunis: I'm happy with the feature.
One nice to have addition would be to show an edit icon (pencil icon) on hover.
@glauberramos Could you take a look at it?

@RikTheunis, Just tried out your change. Looks wonderful.
We'll wait for @glauberramos to share his thoughts about this. I'm super happy with your changes

@Roshanjossey Thanks! I appreciate the quick responses!

@Roshanjossey, @RikTheunis  Hey guys just got back from vacation, I will look into this later today. :D thanks for the good work

Hey @RikTheunis I really liked the feature, it is working perfectly. I just have some minor feedbacks on the interface.
The cancel link should be aligned vertically, the save button as well, and also give "margin-right: 5px" to the save button, should look like this:

Also I am not sure we need to pencil on hover, it makes it not consistent with the column name, because column name does not have the pencil on hover. I think we can remove it for now.
Thanks for the great work!

Thanks, @glauberramos. I totally agree about the layout, I  will work on that. Though I personally think we should have pencils on hover for both the name and the columns, because it improves the usability, but I will remove it for now.

@RikTheunis I can add an issue and then you can work on that next, what do you think? Or do you prefer doing it all here?

@glauberramos: Just wanna make sure we're on the same page here.
The new issue to be created is about edit-pencil in all the places that needs similar editing right?
If that is the case, Lets keep the pencils in board name and add more pencils later.

Ok, I think we can keep the pencil, but we need to fix an issue with it, right now when you click to edit, it is doing a flickering thing, the pencil shows on the left and then dessapears. @RikTheunis can we fix it?
Check the pencil showing on the left:

@glauberramos I will fix it! Thanks for the feedback guys!

Hey @Roshanjossey and @glauberramos, I changed the layout (see picture below) and fixed the flickering pencil. Please let me know if you have any feedback!

I am happy with the changes, merging now :dagger:
Thanks everybody


Update to labs 01-10

Module:
Lab/Demo: 01-10
Fixes #207 .
Changes proposed in this pull request:

Updated labs 01-10 to reflect changes in Power BI Desktop's UI

Merged


Auto corrected by following Lint Ruby MagicComment

Auto corrected by following Lint Ruby MagicComment
Click here to configure it on awesomecode.io

Coverage decreased (-59.7%) to 37.46% when pulling eef2f682dde2d1cd63e0f7403486fc4aacbfb95c on awesomecode-lint-ruby-magiccomment-40248 into 749e1b74098cbcb0bf3a9ded0f02862aceddd764 on master.


Table cells swapped in Boot screen components

In the "Boot screen components" article, there is a table that looks like this:

BGRT
Firmware update display capsule
Reason

Pointer to Bitmap
Embedding the bitmap allows the capsule to be saved and restored in a single operation.
0

Does not contain video mode
Contains video mode
Done to avoid requiring the firmware to query video mode during UpdateCapsule call.

Contain a Status field
Does not contain a Status field
The Status field of the BGRT describes whether the image is currently displayed on the screen. This is not applicable to the firmware update display capsule.

The number 0 in the "Reason" column does not make sense. I first thought that the table cells have been accidentally swapped, and that the table should be like this:

BGRT
Firmware update display capsule
Reason

Pointer to Bitmap
0
Embedding the bitmap allows the capsule to be saved and restored in a single operation.

Does not contain video mode
Contains video mode
Done to avoid requiring the firmware to query video mode during UpdateCapsule call.

Contain a Status field
Does not contain a Status field
The Status field of the BGRT describes whether the image is currently displayed on the screen. This is not applicable to the firmware update display capsule.

However, this would give the impression that Firmware update display capsule has a Pointer to Bitmap field whose value must be zero. AFAICT, Firmware update display capsule  does not have such a pointer field. I presume "Pointer to Bitmap" means the 64-bit "Image Address" field that is defined in ACPI Specification 6.5 §5.2.23 Boot Graphics Resource Table (BGRT). The "Reserved" field in Firmware update display capsule is only 8-bit and thus seems unlikely to be intended for possible future use as a pointer. Therefore, I think the table should say something like this:

BGRT
Firmware update display capsule
Reason

Pointer to Bitmap
Embedded bitmap
Embedding the bitmap allows the capsule to be saved and restored in a single operation.

Does not contain video mode
Contains video mode
Done to avoid requiring the firmware to query video mode during UpdateCapsule call.

Contain a Status field
Does not contain a Status field
The Status field of the BGRT describes whether the image is currently displayed on the screen. This is not applicable to the firmware update display capsule.

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

ID: ca2c956b-1682-7c06-d68c-7c94da37007d
Version Independent ID: 27245878-59d9-9018-3aee-327b5bc2abdd
Content: Boot screen components - Windows drivers
Content Source: windows-driver-docs-pr/bringup/boot-screen-components.md
Product: windows-hardware
Technology: bringup
GitHub Login: @barrygolden
Microsoft Alias: bagold

@KalleOlaviNiemitalo, thanks for submitting a correction for the contents of the table. The topic has been updated per your recommended text.


Support drag and drop on Favorites sidebar

What's the Problem?
Currently, if you want to rearrange the Favorites folders, you have to click options like "move one up", "move one down" on the context menu, which is highly inefficient if you want to arrange multiple folders or you have a long Favorites list.
Solution/Idea
The vanilla Windows explorer's way to deal with pinned folders is good: you can drag and drop any folder to any location you want. Files could also use this way to arrange pinned folders.
Alternatives
None.
Priorities

Capability
Priority

Add drag and drop support on Favorites section
Must

Files Version
v<IP_ADDRESS>
Windows Version
Windows 11 21H2 22000.346
Additional comment
No response

@myfix16 the code for this was already implemented but we're held back by an issue with WinUI, can you upvote/comment on their repo? https://github.com/microsoft/microsoft-ui-xaml/issues/3290

Acknowledged. I upvoted that issue😅


First commit for 3EKEibJLx62pmJy4MW9QCghggyutRQwPmTxLx685vRX7 (Soulan…

…ium)

Please note: This repository is being rebuilt to accept the new volume of token additions and modifications. PR merges will be delayed.

I agree to not ping anybody on Discord/Twitter/email about this pull request. Instead I will inquire by posting a new comment in the pull request if needed.

PRs are reviewed in bulk and and can take up to two weeks to be merged.
This repository is managed using an auto merge action. Please ensure your PR has no deleted lines, and it will be merged.
Please provide the following information for your token.
Please include change to the src/tokens/solana.tokenlist.json file in the PR.
DON'T modify any other token on the list.
At minimum each entry should have

Token Address:
Token Name:
Token Symbol:
Logo: (logo should be uploaded under assets/mainnet//*.<png/svg>)
Link to the official homepage of token:
Coingecko ID if available (https://www.coingecko.com/api/documentations/v3#/coins/get_coins__id_):

Auto merge requirements
Your pull request will be automatically merged if the following conditions are met:

Your pull request only adds new tokens to the list. Any modification to existing
tokens will require manual review to prevent unwanted modifications.

Your pull request does not touch unrelated code. In particular, reformatting changes to unrelated
code will cause the auto merge to reject your PR.

Any asset files added correspond to the token address you are adding. Asset files
must be PNG, JPG or SVG files.

Your change is valid JSON and conforms to the schema. If your change failed validation,
read the error message carefully and update your PR accordingly.

No other tokens shares the same name, symbol or address.

For example, this change would be rejected due to unrelated changes:

The bot runs every 60 minutes and bulk-merges all open pull requests to prevent conflicts.
This means that you need to wait up to 60 minutes for your pull request to be merged or reprocessed.

Hi Everyone!
Understand that you guys have a ton of requests and are probably really busy but i'm just curious if this will take 2 weeks or if there's a rough timeline for this to be cleared? I hope there's no issue with my code but please let me know and i'll make changes immediately!
Thanks!


Please a gradio demo with all optimizations and paper features

Like cpu offloading, BF16, FP8 if possible or int4 quants, xformers, and such
Thank you so much

We're working toward it. Thanks for your patience.

awesome waiting


fixed toggle section bug where content was not showing on desktop

https://trello.com/c/I6BU4CSb/435-spelregels-op-planindienpagina-weergeven-in-accordeon-bovenaan

PR made to amsterdam


Double quotes

Some strings are enclose between double quotes but it shouldn't be so (reference: https://www.sqlite.org/lang_select.html)
https://github.com/x2bool/kuery/blob/master/sqlite/src/com/nivabit/kuery/sqlite/SQLiteDialect.kt#L480
https://github.com/x2bool/kuery/blob/master/sqlite/src/com/nivabit/kuery/sqlite/SQLiteDialect.kt#L484
https://github.com/x2bool/kuery/blob/master/sqlite/src/com/nivabit/kuery/sqlite/SQLiteDialect.kt#L488
https://github.com/x2bool/kuery/blob/master/sqlite/src/com/nivabit/kuery/sqlite/SQLiteDialect.kt#L53
There isn't a problem if you want me to make a PR about this.

Hi! Double quotes are used for table and column names.
https://www.sqlite.org/lang_keywords.html

If you want to use a keyword as a name, you need to quote it.

That is the main reason. What kind of problems do you have with double quotes? Does the library produce invalid SQL?

There they talk about using "SQL keywords" as table or column name (doing that is a little weird...)
Actually it works but I'm used to see SQL statements without that double quotes :)

Yeah! I think it would be wise to leave quotes just in case someone accidentally uses a keyword as a table name.

You're right :)
But, what do you think about put Strings between single quotes?
I mean, currently I have to use this extension on Strings types:
private fun String.toQuoted() = "\"${this}\""
from(Table).where { (it.api eq api.toQuoted()) } ...

Treating strings literally was a mistake. The right way probably is to put strings into single quotes.
That said there are few things to consider:

Single quotes within the string itself should be escaped in some way
Strings are not sanitized at the moment of building a query. I should document that and make it really clear that using a string in a statement could be dangerous
There should be a way to pass literal values like "?" (and maybe other expressions???)

Otherwise I am up for PRs and changes )


New Workflow - Update DataZone business data catalog with Glue Data quality results

To submit a workflow to the Step Functions Workflows Collection, submit an issue with the following information.
To learn more about submitting a workflow, read the publishing guidelines page.

Use the model template located at https://github.com/aws-samples/step-functions-workflows-collection/tree/main/_workflow_model to set up a README, template and any associated code.

All the information below must be provided in the "example-workflow.json" file cloned from the model **

Note the following information for the model:

Description (introBox.text) should be a 300-500 word explanation of how the pattern works.
Simplicity: 2 -  Pattern
Diagram: To be created (This must link to an Exported PNG of the workflow that shows any service integrations, you can export this from Workflow studio.)
Type: Standard (Must be one of (Standard, Express))
Resources should link to AWS documentation and AWS blogs related to the post (1-5 maximum).
Framework: CDK (currently, we support SAM or CDK.)
Author bio: TBD ( may include a LinkedIn and/or Twitter reference and a 1-sentence bio.)

You must ensure that the sections of the model README.md are completed in full.

The workflow is currently work-in-progress

merged


Monaco: Replace url-loader with asset modules

URL Loader is deprecated and no longer supported: https://github.com/webpack-contrib/url-loader
They recommend switching to Assert Modules: https://webpack.js.org/guides/asset-modules/
cc @blutorange

Taking a look at our webpack.config, doesn't look like we're even using that loader. Might be a relic from when I set it up initially. Seems to build fine without it, let me do some testing in the showcase.


Recalculate "more" with ResizeObserver

The problem was that in month view "+n more" button didn't recalculate, when calendar's size changed, only on date navigation.
Updated that it recalculates using ResizeObserver
Fixes #828
Also removed dummy rows for measurements. Using only real rows if one exist, so eventWrapper with a different event height should calculate "more" correctly, though assuming that the "more" is the same height as event rows

Think you're on the right track, but seeing a big difference right now, just from the landing page of the documentation
Before

After

Updated that finds first week with an event. Also disables oberve when showAllEvents is enabled


The FIRAnalytics(Consent) category is not part of the umbrella header in 7.2.0

[REQUIRED] Step 1: Describe your environment

Xcode version: 12.2
Firebase SDK version: 7.2.0
Installation method: Swift Package Manager
Firebase Component: Analytics

[REQUIRED] Step 2: Describe the problem
I'm trying to set the consent mode in the latest FirebaseAnalytics using the setConsent(_:) method as documented here. Xcode complains, that the method cannot be found. It worked in 7.1.0.
Looking inside the FirebaseAnalytics.xcframework, I can see that the header file declaring the method is there. But it is not included in the umbrella header. Because of that it cannot be used from swift, by just importing FirebaseAnalytics.
Steps to reproduce:

Integrate FirebaseAnalytics 7.2.0
Try to use the setConsent method.
Try to build your app

Xcode will now complain that:

Type 'Analytics' has no member 'setConsent'

Relevant Code:
import FirebaseAnalytics

...

Analytics.setConsent([.adStorage: .denied, .analyticsStorage: .denied])

Sorry for the issues and thanks for the report. Our ZipBuilder tool uses CocoaPods under the hood and it looks like the bug with a missing -ObjC flag may be hit, causing this. I'll see if we can publish a new patch with the fix soon.
In the meantime, @MapaX discovered a workaround: if you add the #import "FIRAnalytics+Consent.h" to Headers/FirebaseAnalytics.h it should work for now. (from https://github.com/firebase/firebase-ios-sdk/issues/7117#issue-758457404)

The recently added FIRAnalytics+Consent.h is missing from the FirebaseAnalytics.h umbrella headers.
Googlers, see the fix at cl/345499702

Fixed in today's 7.3.0 release.


Improve isSameDay function and add tests

Right now, isSameDay will fail if comparing two dates from a different timezone. Eg.
new Date('01 Jan 2018 00:00:00 GMT') and new Date('01 Jan 2018 23:59:59 GMT') will not be on the same day, because we are on EST, so new Date('01 Jan 2018 00:00:00 GMT') will actually be Dec 31

Actually does not make sense.


@genType.as broken on Variants in BS 8.2

This is the output from the following Reason code when running genType v3.30.0 and bs-platform v8.2.0:
// .re

[@genType "Course"]
type t =
  |<EMAIL_ADDRESS>"main"] Main
  |<EMAIL_ADDRESS>"starter"] Starter
  |<EMAIL_ADDRESS>"dessert"] Dessert
  |<EMAIL_ADDRESS>"side"] Side;

[@genType]
let displayOrderCourses: array(t) = [|Starter, Main, Side, Dessert|];

// .bs.js

var displayOrderCourses = [
  /* Starter */1,
  /* Main */0,
  /* Side */3,
  /* Dessert */2
];

// .gen.js

export const displayOrderCourses: Array<t> = CoursesBS.displayOrderCourses.map(function _element(ArrayItem: $any) { return ArrayItem});

Previously, the output was:
// .gen.js

const $$toJS344541656 = {"0": "main", "1": "starter", "2": "dessert", "3": "side"};

export const displayOrderCourses: Array<t> = CoursesBS.displayOrderCourses.map(function _element(ArrayItem: $any) { return $$toJS344541656[ArrayItem]});

Hopefully it's clear what the issue is, but basically genType is no longer generating a conversion function to turn the Variants (encoded as ints) back into strings.

Thanks I’ll check when I’m back next week.
Sure it’s ordinary Variants and not ’polymorphic ones?

Actually I think it's happening with polymorphic ones too:
[@genType]
type clearButtonMode = [
  | `always
  | `never
  |<EMAIL_ADDRESS>"unless-editing"] `unlessEditing
  |<EMAIL_ADDRESS>"while-editing"] `whileEditing
];

is now compiled to:
export type clearButtonMode =
    "always"
  | "never"
  | "unlessEditing"
  | "whileEditing";

whereas before it was:
export type clearButtonMode =
    "always"
  | "never"
  | "unless-editing"
  | "while-editing";

Just an update, I tried switching to @bs.as to get the old genType behavior in BuckleScript natively, but that's actually not supported currently – BS cannot represent polymorphic variants as string literals with hyphens in them: https://github.com/BuckleScript/bucklescript/issues/4595

@benadamstyles this is fixed in BuckleScript/bucklescript#4595.
Notice conversion for poly variants is not supported yet for bucklescript 8.2. The reason is that renaming with @genType.as would be the only case in which runtime conversion is still required. I was wondering whether it is actually used, before even deprecating it.

That's brilliant, thanks.
I use @genType.as for poly variants extensively throughout my codebase, and as the issue you linked to mentions, any user of reason react native is likely to, until bucklescript supports "string literal" renaming.

genType.as will stay to guarantee compatibility, and will eventually become unnecessary

In release 3.31.

Incredible 😃
Thank you so much!


Extension storage too large for Firefox Sync

Firefox shows this message every time it tries to sync:

This is the error message in the log:

1525049350766   Sync.Engine.Extension-Storage   ERROR   Syncing {ada26ae8-41ec-4460-936a-790afc2d85c9}: request failed: Error: HTTP 507 Insufficient Storage: Resource access is forbidden for this user (Maximum bytes per object exceeded (18727 > 16384 Bytes.) (resource://services-common/kinto-http-client.js:2340:5) JS Stack trace: ServerResponse@kinto-http-client.js:2340:5

Apparently that's the id of this extension.

Hey, thanks for the report! There have been some major changes in how the storage works that hasn't been released yet, and it may take a while until that happens due to Reddits recent UI redesign. In the meantime, if you're not using the redesign, go to the settings and reset the cache for the extension to work again, for a while anyway...
I'll get back to you when the storage updates are released.

With the next release (v2.0.0), the extension will be aware of storage errors and truncate the data if necessary.
https://github.com/aesy/reddit-comment-highlights/blob/e8605f71a9fb400963f99cfbca9d07050a15e8fa/src/storage/ThreadHistory.ts#L158-L161
Reopen this issue if this is still a problem.

@aesy why these changes were not pushed to add-on stores?

@gwarser They were planned for 2.0 which would include support the reddit redesign, but I kinda lost interest in finishing it as I use the old design exclusively. The currently released version will still truncate the storage based on the storage limits, but not on errors. Did you experience this issue? I could make a new release prior to 2.0 that includes the fix.

The currently released version will still truncate the storage based on the storage limits, but not on errors. Did you experience this issue?

Ah, sorry - I've had this issue before, but what I experience now, seems to be different. I don't see sync errors this time, but looks like storage is incorrectly truncated or no longer updated - after few days new threads highlighting is not applied and old thread seems to be stuck on older date. I can create new issue if you like.

after few days new threads highlighting is not applied and old thread seems to be stuck on older date. I can create new issue if you like.

Please do! Add as many details on the issue as possible as I haven't had that issue myself

Sorry for creating more noise in this thread. Turns out my issue is probably caused by browser (Firefox) or Reddit itself - I see these incorrectly highlighted threads in sub I moderate, and this does not require this add-on to work.

No worries, thanks for letting me know!


Should make mention that database level throughput is minimum 400RU and 100RU for each container after 4

It wasn't clear from the documentation of the following statement:
After the first four containers, each additional container requires a minimum of 100 RU/s.
Upon creating a new database the minimum was set to 1300RU and changes in the portal had no indication of why this couldn't/wouldn't be set lower. It wasn't until I found the above link that explained why (since I had 13 containers in total)

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

ID: 0f2b93a5-28b8-db4a-ab64-6342d3aafc63
Version Independent ID: 245586f2-63e1-1e78-a5dd-21e8fa2cc5d3
Content: Provision throughput for Azure Cosmos DB
Content Source: articles/cosmos-db/set-throughput.md
Service: cosmos-db
GitHub Login: @aliuy
Microsoft Alias: andrl

@wahyuen Thank you for the detailed feedback. We are actively investigating and will get back to you soon.

@wahyuen Thanks for your comments, I have added information about "After the first four containers, each additional container requires a minimum of 100 RU/s" in this doc: https://docs.microsoft.com/en-us/azure/cosmos-db/set-throughput#comparison-of-models. Hope this helps.
The changes should be live sometime tomorrow.

@wahyuen 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.


Show Postgres notices when running migrations

Environment
Elixir version
Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [hipe] [kernel-poll:false]
Elixir 1.6.3 (compiled with OTP 19
Database and version (PostgreSQL 9.4, MongoDB 3.2, etc.):
postgres (PostgreSQL) 10.1
Ecto version (mix deps):
ecto 2.1.6
Database adapter and version (mix deps):
postgrex 0.13.5 (Hex package) (mix)
Operating system:
MacOs 10.12.6
Current behavior
Postgres just silently truncate very long index name to 63 bytes:
https://til.hashrocket.com/posts/8f87c65a0a-postgresqls-max-identifier-length-is-63-bytes
Also, because of this the unique_constraint() validation suggest the full index name, while in DB the index name is truncated.
Expected behavior
Ecto.Migration.Runner should show the notice from postgres, or just exit with error, like it is done in ActiveRecord (but it may break old ecto migrations)
I didn't check how it is working with table names, column names, etc... But should have the same silent truncating behavior

Thanks. I have moved this issue here: https://github.com/elixir-ecto/postgrex/issues/346

What do we need to do in this issue besides what was already done in postgrex?

We need to take them out of the struct and print them.
José Valimwww.plataformatec.com.br
http://www.plataformatec.com.br/Founder and Director of R&D

I have changed the adapter contract to support this in the future.

I could grab this issue if no one has taken. Guidances would be very appreciated though since I'm not super familiar with postgrex interface 😃.

@qcam i am not sure quite how this looks like but if you look at execute_ddl, you will see that we make multiple queries. For postgres, it returns a Postgrex.Result struct that should have something like :notices inside of it. Then we need to figure out a contract to return it and print them from the migration runner.

@josevalim thanks for the guide, I think I could come up with a PR later today or tomorrow. As you suggested, I will wrap them (Mariaex.Result and Postgrex.Result) into something like DDLResult, then print them in the migration runner.

I don't think we need a DDL result. I think we can ask adapters to return a list of [{status, message}] and that should be enough. :)

Closing in favor of #2720.


[Issue] Broken Relative paths

These files / heading references no longer exist on the repo.
Need to reference correct files

File Full Path
Issues

./docs/productionizing.md
1. ../README.md#enabling-authentication

./docs/deploy_features.md
1. ../README.md#deploying

./docs/login_and_acl.md
1. ./app/backend/core/authentication.py  2. ./scripts/adlsgen2setup.ps1  3. ./scripts/sampleacls.json  4. ./scripts/sampleacls.json  5. ./scripts/sampleacls.json  6. ./scripts/sampleacls.json  7. ./scripts/prepdocs.py  8. ./scripts/manageacl.ps1  9. ./scripts/manageacl.ps1  10. ./scripts/manageacl.sh

./docs/azd.md
1. ../README.md#deploying-from-scratch

./docs/deploy_existing.md
1. ../README.md#deploying

./docs/deploy_lowcost.md
1. ../README.md#deploying  2. ../README.md#existing-azure-ai-search-resource  3. ../README.md#deploying-from-scratch

./docs/localdev.md
1. ../README.md#azure-deployment

./.github/PULL_REQUEST_TEMPLATE.md
1. ../CONTRIBUTING.md#submit-pr

Originally posted by @github-actions[bot] in https://github.com/Azure-Samples/azure-search-openai-demo/issues/1386#issuecomment-1992538667

I'll fix those up now, thanks!

@pamelafox there is a bug, I have dealt with links that have # at the end of them.
please ignore these errors. I will release a fix now to stop these errors.

I noticed that they weren't all actually broken. I did decide to change all those to absolute URLs, seems more robust for the future anyway?

Yeah, It is.
I also removed the # from the cached URL.
releasing it to Pypi now.

I didn't realize that's what you meant by absolute URLs.
The Script won't catch these URLs now..
It needs the relative path to either start with ./ or ../ to be able to evaluate it.

Ohh interesting. It cant see URLs starting with "/" and know that they're repo links?

I'm skipping if it doesn't have a . or .. in front of the URL.
But even If I don't skip (which will produce other problems)
The script won't be able to evaluate the URL as it won't know which folder is parent to it.
It won't know how to access it.
How it works is that It takes the current path + relative path AND evaluates them and tries to access the generated path if it doesn't exist it will be flagged as broken.
If we don't provide the relative path either . or .. it won't be able to evaluate suff


Accept a top-level prefix for a reverse-proxy situation

Would you please consider modifying the application to pull (mainly image) assets from a manually-configured top-level prefix, e.g., "/seven-wonders/"? I shared an Apache httpd config that demonstrates a reverse-proxy for "www.example.com/seven-wonders/" and I had to rewrite the image requests where the client requests just "/images/cards/altar.png."
If the app could consume an http header of "X-Forwarded-Prefix" or at least be manually configurable at server run-time, it would make a reverse-proxy one step easier!

Hi, thanks for opening this issue. Do I understand correctly that you would like the images root path to be configurable? That should indeed be possible. Currently the images are all under the same root path (albeit not configurable). I'm not sure I understand the end game. Is the goal to configure only assets or also the websocket endpoint and things like this?

Ah I think I understand your problem. The app currently generates URLs to assets using hardcoded paths that don't respect X-Forwarded-Prefix, and thus if you configure a reverse-proxy serving seven-wonders under some path, every image URL will be broken from outside. I will try to solve this once I'm done with the frontend migration to the new Kotlin/React

I only know how to configure Apache to r-p the websocket with the separate statement, so that won't go away as far as I can guess. Just if the app could emit prefixed asset paths, that would facilitate serving the app through a reverse-proxy and would eliminate the need of the RewriteRule. So basically just the images need to be set either with a setting (at the docker container run time) or maybe by consuming the prefix header.


IdentityServer4.AccessTokenValidation with Authority in the same project

Is your feature request related to a problem? Please describe.
One goal for our system is to make deployments to new production servers as simple a process as humanly possible.
Describe the solution you'd like
We want to embed an instance of IdentityServer4 in the same project as the API we wish to protect. In this setup the "Authority" URI for access token validation is the same URI as the API itself by default. How can we configure this automatically in Startup.cs without requiring that whoever is deploying the system should also manually specify the host URI in a configuration variable?
Describe alternatives you've considered
I looked into ways of programmatically retrieving the host URI inside Startup.cs (in order to configure it as the Authority for access token validation), but so far I couldn't find a reliable way to do that.
Help is greatly appreciated,
Yours,

@blowdart
I hope I am not sounding pushy, but do you now have a rough/order-of-magnitude estimate on when this will be released? Just to help us plan that's all.
We appreciate all your good work

We will that built–in in 2.4
It’s already on the dev branch.
@blowdart maybe you want to use that — less code for you to maintain

@leastprivilege looking forward to it! We cooked up something due to time constraints, the relevant code is all below. We managed to wire everything with 0-configuration except for one last piece (which is highlighted):
(1) IClientStore implementation at IdentityServer level that works with 0-config if the client is hosted in the same domain as IdentityServer:
`    ///
/// This client store implementation authorizes one client which is - by default - hosted in the same domain as IdentityServer
///
public class DefaultsToSameOriginClientStore : IClientStore
{
private readonly IHttpContextAccessor _accessor;
private readonly ClientStoreConfiguration _config;
    public DefaultsToSameOriginClientStore(IHttpContextAccessor accessor, IOptions<ClientStoreConfiguration> options)
    {
        _accessor = accessor;
        _config = options.Value;
    }

    // Implementation of IClientStore
    public Task<Client> FindClientByIdAsync(string clientId)
    {
        if(clientId != "MyClient"){
            return Task.FromResult<Client>(null);
        }

        // Determine the client app's URI from configuration
        var uri = _config.WebClientUri;
        if (string.IsNullOrWhiteSpace(uri))
        {
            // **IF it is not in configuration, assume it is hosted in the SAME domain as IdentityServer**
            var request = _accessor?.HttpContext?.Request;
            uri = $"https://{request?.Host}/{request?.PathBase}";
        }

        var client = new Client
        {
            ClientId = "MyClient",
            AllowedGrantTypes = GrantTypes.Implicit,
            AllowAccessTokensViaBrowser = true,
            RedirectUris = { $"{uri}sign-in-callback", $"{uri}assets/silent-refresh-callback.html" },
            PostLogoutRedirectUris = { $"{uri}welcome" },
            AllowedCorsOrigins = { uri },
            RequireConsent = false,
            AllowedScopes =
                {
                    IdentityServerConstants.StandardScopes.OpenId,
                    IdentityServerConstants.StandardScopes.Profile,
                    IdentityServerConstants.StandardScopes.Email,
                    "MyAPI"
                },
        };

        return Task.FromResult(client));
    }
}

}`
(2) Access token validation at the API level, with 0-config if the API is in the same domain as IdentityServer:
`
var authorityUri = config["ApiAuthentication:AuthorityUri"];
if (string.IsNullOrWhiteSpace(authorityUri))
{
// IF Authority is not specified in config assume IdentityServer is in the same domain as the API
authorityUri = "https://localhost:44339"; // TODO: Make this work!!
}
        // Add the default scheme for the embedded IdentityServer
        services.AddAuthentication()

            // Add access token validation for the API
            .AddIdentityServerAuthentication(JwtBearerDefaults.AuthenticationScheme, options =>
            {
                options.Authority = authorityUri;
                options.ApiName = "MyAPI";
            });

`

Here is what we will put in.
https://github.com/IdentityServer/IdentityServer4/commit/29f2c4c6a5f7dcb9a3ef98d5cc547ba161396cc3


Added movie urls for any sessions which videos are currently available on YouTube

Corresponding issue: Added movie urls for any sessions which videos are currently available on YouTube.
Done
I thought we have to just wait until videos for all sessions are available, but thought "screw it!"; I just decided to fill out currently available ones and make PR for it if that's possible.
Added movie urls for any sessions which videos are currently available on YouTube.
Sessions with empty movie_url

[ ] 史上最速のAndroid
[ ] Androidの最新動向
[ ] What's the difference between JavaScript and Java?
[ ] Android CI: 2016 edition
[ ] 5年続く「はてなブックマーク」アプリを継続開発する技術
[ ] Fireside chat

Nice!

Great work...!

I'm sorry... If you have time, could you add movie urls to sessions_ko.json ?

I'm sorry... If you have time, could you add movie urls to sessions_ko.json ?

oh sorry i totally missed that json file.. of course I will! Thank you for letting me know!

Thanks!! LGTM!


spriv-cross no longer generates "vertex void" calls for vertex shaders with no outputs.

This is a spirv-cross issue. The older version (6/20) did the correct transpile to "vertex void".  The new version always generats "vertex vsmain_out".  vsmain_out contains a gl_Position, but that is never initialized, and then just return from the vertex shader.   Then that's enough to freak out Metal trying to run this with rasterization disabled. We have a VS with no PS, and set Metal's RasterizationEnabled to false.
This is the error returned by Metal.
Assert error: Renderer Crash, Failed to create render pipeline for shader Test: RasterizationEnabled is false but the vertex shader's return type is not void

I'd reported this here, but then found this thread. Is there something we can set to get this behavior back like in the old spriv-cross.
https://github.com/KhronosGroup/SPIRV-Tools/issues/5525
The correct test for this is a shader that never uses gl_Position in the GLSL body, and so should not generate any output. We write directly into the SSBO buffer. The code above is not the correct test case, since it has a VS and PS and is using gl_Position. Hopefully this is enough to demonstrate a shader without using rasterization and gl_position.
Test.vert.glsl, we're using 450core as the source version type.
layout( binding = 0, set = DescriptorSet ) restrict buffer OcclusionResult {
	uint o_isOccluded[];
};

void main()
{
   o_isOccluded[0] = 1;
}

My workaround for now, is to use new glslc and new spriv-opt, and the old spirv-cross for MSL codegen.  But I'd like to use a spirv-cross newer than 6/20.

I'm trying to isolate all this, bug we also have this.   This isn't referenced in the code, and the old spriv-cross detected this wasn't used, and kept the "vertex void".  The new one adds this in, and then produces an uninitialized gl_Position.
So I'm going to add a define to strip this code, but seems like this should be detected as unused and not change the VS signature.
        out gl_PerVertex
	{
		// Need pos to be same for FPZ and occlusion, avoid reordering math
		invariant float4 gl_Position;
		float gl_PointSize; // always square
	};

Do you have a concrete SPIR-V reproducer? I tried compiling that GLSL (added #version 450 and replaced DescriptorSet to 0), got
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 11
; Bound: 16
; Schema: 0
               OpCapability Shader
          %1 = OpExtInstImport "GLSL.std.450"
               OpMemoryModel Logical GLSL450
               OpEntryPoint Vertex %main "main"
               OpSource GLSL 450
               OpName %main "main"
               OpName %OcclusionResult "OcclusionResult"
               OpMemberName %OcclusionResult 0 "o_isOccluded"
               OpName %_ ""
               OpDecorate %_runtimearr_uint ArrayStride 4
               OpMemberDecorate %OcclusionResult 0 Restrict
               OpMemberDecorate %OcclusionResult 0 Offset 0
               OpDecorate %OcclusionResult BufferBlock
               OpDecorate %_ DescriptorSet 0
               OpDecorate %_ Binding 0
       %void = OpTypeVoid
          %3 = OpTypeFunction %void
       %uint = OpTypeInt 32 0
%_runtimearr_uint = OpTypeRuntimeArray %uint
%OcclusionResult = OpTypeStruct %_runtimearr_uint
%_ptr_Uniform_OcclusionResult = OpTypePointer Uniform %OcclusionResult
          %_ = OpVariable %_ptr_Uniform_OcclusionResult Uniform
        %int = OpTypeInt 32 1
      %int_0 = OpConstant %int 0
     %uint_1 = OpConstant %uint 1
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
       %main = OpFunction %void None %3
          %5 = OpLabel
         %15 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %int_0
               OpStore %15 %uint_1
               OpReturn
               OpFunctionEnd

./spirv-cross --msl /tmp/test.spv
#include <metal_stdlib>
#include <simd/simd.h>

using namespace metal;

struct OcclusionResult
{
    uint o_isOccluded[1];
};

vertex void main0(device OcclusionResult& _10 [[buffer(0)]])
{
    _10.o_isOccluded[0] = 1u;
}

I will try to isolate this code and send a repro.  But it may be a few weeks.   We did have code setting point size, that that was in the same struct.   But #ifdef'ing out the struct fixed our return values.


On SimplCommerce.Module.Cms replaced all manual mappings

Hi,
on SimplCommerce.Module.Cms replaced all manual mappings using AutoMapper

@YuriiPovkh Adding automapper is a great idea! Thank you.

@MaherJendoubi
Thanks for your great opinion,
I will replace all manual mappings on my feature pull requests.

@YuriiPovkh , @MaherJendoubi
I am struggling whether using AutoMapper is good or not in our project. Although it help reduce the number lines of code, however it introduces more magic, the code become harder to read, and we will loose the compiler type checking. We have to leverage the unit test to check the mapping. Normally our classes don't have much properties.

@jbogard We need your feedback for this discussion. Thanks.

@thiennn
I think something like
var model = _mapper.Map<WidgetInstance, CarouselWidgetForm>(widgetInstance);

better than
var model = new CarouselWidgetForm
{
    Id = widgetInstance.Id,
    Name = widgetInstance.Name,
    WidgetZoneId = widgetInstance.WidgetZoneId,
    PublishStart = widgetInstance.PublishStart,
    PublishEnd = widgetInstance.PublishEnd,
    Items = JsonConvert.DeserializeObject<IList<CarouselWidgetItemForm>>(widgetInstance.Data)
};

I think that such manual mappings for us is very bad. AutoMapper is very simple to understending and use.  For me automapper make code more readable, and easier, we have many duplication on simple controller right now.

@YuriiPovkh , Yes, with AutoMapper the code looks cleaner. However
cs var model = _mapper.Map<WidgetInstance, CarouselWidgetForm>(widgetInstance);
The information is hidden, you don't know which properties the CarouselWidgetForm are populated without checking AutoMapper configuration. It might take sometime for people to find out where the mapping configuration is located. And if you rename a properties, the compiler cannot help.
Still hesitating ...

@MaherJendoubi sure, what feedback are you looking for?
Just some code feedback - you need a test that does AssertConfigurationIsValid. That's what checks to make sure all the properties are mapped and you haven't misspelled (or renamed) anything. I'd get rid of all those tests with one call to AssertConfigurationIsValid.
Second, your test initializes twice. You just need to call Mapper.Initialize once and if you want a mapper instance, you can pass through Mapper.Instance or create a new mapper like new Mapper(Mapper.Configuration).
As for "is AutoMapper right for this project", that's really up to you. Lots of these tools can be seen as "magic" (DI, ORMs, JSON serializers etc.) so it's a comfort thing. I also don't know how big this project is/will be, so there's a conceptual cost for introducing these things on a smaller project.

@jbogard Thanks a lot for this great feedback. @thiennn I understand that AutoMapper is useful for mapping complex objects. At this state of the project, the objects are simple but as soon as more and more features will be added to the project, these objects will more complex. I also understand that mapping manually the properties makes the project more debugguable but we can ensure the correctness of the mapping through unit tests.

Thank you @jbogard, @YuriiPovkh , @MaherJendoubi
In my opinion, I think AutoMapper is great if the objects have many properties to map.
In SimplCommerce, normally the classes don't have such a big number of properties. And to keep everything simple, I prefer manual mapping:

It's explicit
We don't need to write unit test for the mapping if we do it manually. The compiler will help us in case the properties is removed or changed. Manual mapping code < auto mapping code + custom mapping code + unit test code for mapping?
No extra configuration needed. like

_mapper.Map(model, widgetInstanceForModification, op => op.BeforeMap((fModel, tWidgetInstanceForModification) =>
     {
         fModel.Id = tWidgetInstanceForModification.Id;
     }));

CreateMap<CarouselWidgetForm, WidgetInstance>()
     .ForMember(w => w.Data, f => f.MapFrom(src => JsonConvert.SerializeObject(src.Items)));

And finnally, we don't have to make change on the code base. Save effort for other things

I assume that if you do manual mapping, you DO have to write tests for every individual map. Compiler won't tell you if you forgot a property, which is far more often in my experience than renames/misspellings. AutoMapper makes sure you don't miss anything with AssertConfigurationIsValid but we looked at it as "do I do manual mapping and 100s of tests, or auto-mapping and 1 test". If it's just a few properties, a few types and it's super obvious, then there's not much to gain. I look at AutoMapper when we have dozens or hundreds of "maps".
Also, the Before/AfterMap thing is something I try suuuuuuuuper hard to avoid. In fact, I don't think I have a single project that uses it. That definitely gets into the land of magic.

Thank you for the effort. We might consider this later, but for now we would like to keep the current implementation.


No support for create_global_cluster and describe_global_clusters

Currently using moto "version": "==4.1.7.dev7"
Trying to use moto to mock the following calls but noticed they don't seem to be fully implemented

create_global_cluster
describe_global_clusters

At the moment I can create the global cluster but it wont be populated with cluster members, and I can't seem to add any cluster members on them.

Hi @kevho48, thanks for raising this!
Just to make sure we're on the same page, I had a quick look at the documentation, and based on my understanding, this is how AWS behaves (and how Moto should behave):
WHEN create_global_cluster is called
AND create_db_cluster is called with GlobalClusterIdentifier set to the global cluster ARN
THEN describe_global_cluster shows the second cluster as part of the GlobalClusterMembers
AND describe_db_clusters shows the cluster as normal
WHEN create_db_cluster is called
AND create_global_cluster is called with SourceDBClusterIdentifier set as the earlier created db cluster
THEN that db cluster is elevated to a global cluster
AND it no longer shows up when calling describe_db_clusters
WHEN create_db_cluster is called
AND create_db_cluster is called again with ReplicationSourceIdentifier set to the first cluster
THEN promote_read_replica_db_cluster can be called on the second cluster, elevating it to a read/write cluster
Is that the behaviour that you had in mind? And/or are there other scenarios?

Hi @bblommers  thanks for looking at this.
When describe_db_clusters is called on a cluster that is part of a global cluster, it will still show up.
Everything else seems good.

This functionality (and everything from #6175) is now part of moto >= 4.1.7.dev38. Please let us know if you run into any issues!


vdk-control-cli: Added a generic exception to address token expiry and re-login

Fix for: https://github.com/vmware/versatile-data-kit/issues/3030
Added check for handing exception and logging in information, in scenarios where token is expired or corrupted.

Dear @*antoniivanov: When the issue was reproduced : the call is
entering the decorated method : and the following debug sentence does get
logged : *
Call function
vdk.internal.control.command_groups.job.secrets.update_secrets
Printing of this log is very evident of the API throwing an error:
Predominantly an authentication error (as in this case). given that the
refresh token is passed to the rest API :  Hence having a generic Exception
becomes fairly pertinent.
Thanks again !
Vivek -
On Fri, Feb 23, 2024 at 7:58 AM Antoni Ivanov @.***>
wrote:

@.**** commented on this pull request.
In
projects/vdk-control-cli/src/vdk/internal/control/rest_lib/rest_client_errors.py
https://github.com/vmware/versatile-data-kit/pull/3154#discussion_r1500865998
:

@@ -87,5 +87,18 @@ def decorated(*args, **kwargs):
"and points to the correct host.",
)
raise vdk_ex from ex

       except Exception as ex:

           log.debug(

               f"An gemeral Exception occurred in {fn.__module__}.{fn.__name__}",

               f"The Exception class was: {ex}",

           )

           vdk_ex = VDKException(

We are only wrapping the original exception. Is there any benefit to do
that?
We want to avoid wrapping exceptions unless needed because that leads to a
bigger logs (since now we have the original and he previous expcetion),
user cannot handle it as easily (catch it).
Also assuming all exceptions are authentication-related is certainly not
correct. There might be other exceptions - bugs or the command may fail for
other reason. Also they may already be hanled and formatted appropriately
This decorator was created to catch rest API-specific exceptions and make
the errors more user friendly to the user.
—
Reply to this email directly, view it on GitHub
https://github.com/vmware/versatile-data-kit/pull/3154#pullrequestreview-1898440456,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASOHGYH4YFPZSWUT7BO5DTDYVC4C5AVCNFSM6AAAAABDUHJIBGVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTQOJYGQ2DANBVGY
.
You are receiving this because you authored the thread.Message ID:
@.***>

Closing due to inactivity

the code has been provided and needs to be reviewed and closed : @antoniivanov .

Kindly approve the MR !

Addred the request as suggested by @DeltaMichael


IVS-165 dont raise on earlier errors

Nice. Using our new JSON formatter, I've added some modifications to also display the correct scenario, last step and instance id to our gherkin console output (there was a similar issue here).
From (display last scenario rather than scenario for which the error occured)

To (correct scenario, last step and instance_id)


suspend SIGTSTP

suspending a running ptpython somehow messed up the newline for the terminal: when shell input reaches the end of the line the subsequent output si written in the same line.
if I recover ptpython and exit the terminal works as expected.
probably there is some sort of cleanup and recover need to be done in SIGSTP/SIGCONT.

Hi @FxIII,
Thanks for pointing out! This is a bug indeed. I'll try to fix it - shouldn't be too hard.


POI Sorting

While there are currently some guard rails to prevent out of order predictions, each adjustment needs to explicitly ensure out of order predictions cannot occur.
Ideas:
1). Pass previously predicted point as a left bound using POI 6 as a global right bound to prevent out-of-order or obviously incorrect predictions.

Issue has been resolved with POI 5 adjustements


Flake in Cortex tests

8:58PM INFO  actions.test._exec | panic: listen tcp <IP_ADDRESS>:37415: bind: address already in use
8:58PM INFO  actions.test._exec | #25 1261.5
8:58PM INFO  actions.test._exec | #25 1261.5 goroutine 2051 [running]:
8:58PM INFO  actions.test._exec | #25 1261.5 github.com/rancher/opni/pkg/test.(*Environment).StartAgentDisconnectServer.func2.1()
8:58PM INFO  actions.test._exec | #25 1261.5 	/src/pkg/test/environment.go:1230 +0xa5
8:58PM INFO  actions.test._exec | #25 1261.5 created by github.com/rancher/opni/pkg/test.(*Environment).StartAgentDisconnectServer.func2
8:58PM INFO  actions.test._exec | #25 1261.5 	/src/pkg/test/environment.go:1227 +0xaf
8:58PM INFO  actions.test._exec | #25 1261.6 ginkgo run failed
8:58PM INFO  actions.test._exec | #25 1261.6   could not finalize profiles:
8:58PM INFO  actions.test._exec | #25 1261.6   Unable to read coverage file /src/test/integration/gateway/cover-integration.out:
8:58PM INFO  actions.test._exec | #25 1261.6   open /src/test/integration/gateway/cover-integration.out: no such file or directory
8:58PM INFO  actions.test._exec | #25 1261.6 exit status 1

There's a port conflict that should be investigated

I think this is closed by https://github.com/rancher/opni/pull/1165