Contribution Section for Sunbird Website

Hello Team,
We need to put up the contribution section for sunbird website .
Put comments and suggestions if any.
cc:
@Sunitashelar
@kochhar
@deepshikha2k5
@Basreena
@vrayulu

@kochhar , kindly suggest the point of contact for contribution section .
Also once you had said that we have some wiki or some doc related to it , can you provide the link .

Issue moved to project-sunbird/project-sunbird.github.io #25 via ZenHub


Make page hierarchy accessible in the UI

Add hierarchical_title (e.g. Products: Sexy Garbage Man Costume)
ensure has_ancestry plugin is added to pages model (currently pages are not responding to ancestry helpers, like .children)

@hungrymedia: I've thought about this a bit. I'm thinking the default indication of depth could be determined by a page_path attribute, which could take into account its parents.
I don't mind adding this presenter method on pages, but might be more useful to surface the page path in the admin.


Update the Enterprise PRT supported browsers

Update the Enterprise PRT supported browsers

Hi @amotta01. Suggest the following updates to your note to meet Microsoft publishing guidelines:

[!NOTE]
For Windows 10 Enterprise PRT, only Internet Explorer and Windows WebViews are supported. Firefox and Chromium-based browsers are not supported.

Thank you for submitting this issue.  Unfortunately, due to high volumes I was unable to respond to this in a timely manner.  At this point, I am going to close this due to it's age and the possibility that it may have been addressed.  If this is still a problem, please consider submitting a new issue.  Thank you.
#please-close


The width of some events seems miscaculated

Hello, I'm very impressed your amazing scheduler.
I'm asking because an issue I haven't resolved myself.
I put 'vue-cal' scheduler on bootstrap-vue modal.
As you can see, the width of some events looks not proper.

07:31-07:36 apple, banana, berry should have 33% width each

07:53-07:55 apple, banana, berry should have 33% width each
This is my code for vue-cal.
<vue-cal small active-view="day" :disable-views="['years', 'year', 'month', 'week']" hide-weekends overlaps-per-time-step style="height: 640px" :events="events" :on-event-click="onEventClick" :time-from="2 * 60" :time-to="12 * 60" :time-step="1" />
If I delete 'overlaps-per-time-step' option, the width looks more complex like below.

Can you give me any hint to make it better?

vue : 2.5.2
vue-cal : 3.8.1

Hi @hannory, thanks for your feedback.
Can you provide the events definition or ideally a reproduction link please.
That will allow me see the problem and investigate if needed.
Thanks!

HI @antoniandre, thanks for your concern.
I can reproduce the issue only with 3 events.
I tried to upload a whole test project on a repository, but failed with unknown reason.
But I think you can reproduce with this codes.
html
<vue-cal id="vuecal" small active-view="day" :disable-views="['years', 'year', 'month', 'week']" hide-weekends style="height: 640px" :events="events" :on-event-click="clickOnEvent" :time-from="8 * 60" :time-to="23 * 60" :time-step="1" @view-change="logEvents('view-change', $event)" :time-cell-height="timeCellHeight" @ready="scrollToCurrentTime"/>
script - export default - data - return
selectedEvent: {},       events: [           {               start: '2020-11-06 14:20',               end: '2020-11-06 14:29',               title: 'apple',               class: 'apple'           },           {               start: '2020-11-06 14:20',               end: '2020-11-06 14:22',               title: 'banana',               class: 'banana'           },           {               start: '2020-11-06 14:27',               end: '2020-11-06 14:33',               title: 'berry',               class: 'berry'           }       ]
script - methods
logEvents: function(message, event) {     },     scrollToCurrentTime: function () {     }
style
    .vuecal__event {         cursor: pointer;     }     .vuecal__event-title {         font-weight: 600;     }     .vuecal__event-time {         font-size: 0.75em;     }     .vuecal__event.apple {background-color: rgba(164,230,210,.8);border: 1px solid rgb(72, 216, 173);color: #666666;overflow: visible;}     .vuecal__event.banana {background-color: rgba(255,179,0,.6     );border: 1px solid rgba(255,179,0);color: #666666;overflow: visible;}     .vuecal__event.berry {background-color: hsla(0,100%,70%,.70);border: 1px solid hsla(0,100%,70%);color: #666666;overflow: visible;}
capture

Could you please examine it?

I see what you re talking about.
This is a known imperfection let's say. Here is the thread about it:
https://github.com/antoniandre/vue-cal/issues/150#issuecomment-517541340
So even if it looks obvious while looking where to best position the events (in this case berry should be on the left under banana and all the events should be 50% width for the best render), I haven't found a better algorithm.
I am quite concerned about performance, I don't want to overkill the display, but if you want have an idea and want to try your luck on refactoring this part of the calendar that would be awesome!
Let me know if you want to contribute, we can get in touch via email (my email is in the package.json file), otherwise I will close this issue. :)

Thank you for your reply and efforts about this project.
I understood. Currently, I don't have a better idea about the algorithm. If I come up with a good idea, I will contact you.

Sounds good, I'll let you know also if I find a better way.
Closing the issue now!


Check if filepath is really a file, not a directory.

Due to OpenShift filesystem[1] with a .env directory, decouple must check if .env is a file. Otherwise it will fail because .env is a directory in OpenShift Containers.
[1] https://developers.openshift.com/en/managing-filesystem.html#env

Tks!


September Issue: txt2al issue

I have successfully exported object from Dynamics NAV database into the new format using...
Export-NAVApplicationObject -DatabaseName FinancialsUS -Path c:\demo\test.txt -DatabaseServer localhost\SQLEXPRESS -LogPath c:\demo\log -Force -ExportToNewSyntax -Username sa -Password mypassword
The following command was executed from both the Container Command Prompt, and standard Command Prompt running as administrator with the same error results below.
"C:\Program Files (x86)\Microsoft Dynamics NAV\110\RoleTailored Client\txt2al" --source="c:\demo\test.txt" --target="C:\demo\AL" --rename
Unhandled Exception: System.ArgumentException: Illegal characters in path.
at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
at System.IO.Path.GetFullPathInternal(String path)
at Txt2Al.CommandLineOptionsExtensions.Sanitize(AlExporterCommandLineOptions options)
at Txt2Al.Program.Main(String[] args)
The Txt2Al tool worked in previous developer release.  Please advise how to address the error.

Can you try with source="c:\demo" i.e. don't specify the file name?

I moved the exported NAV object file (new format) to a dedicated folder 'c:\codetest' and successfully executed the following command from the Command prompt (no ending slashes):
"C:\Program Files (x86)\Microsoft Dynamics NAV\110\RoleTailored Client\txt2al" --source='c:\codetest' --target='C:\codetest\AL' --rename
FYI, the new folder was not accessible from the Container Command Prompt.
I also successfully tested the following command from the Container Command Prompt:
"C:\Program Files (x86)\Microsoft Dynamics NAV\110\RoleTailored Client\txt2al" --source="c:\demo\NAVObjects" --target="C:\demo\NAVObjects\AL" --rename


Doc: Option, alt method

Thanks for all the patience! I'm gonna remember all these on my next PR 😅


Add support for __LD:__compact_unwind and __DATA:__mod_init_func.

This commit adds the following seg:sect to the list of supported segments
and sections:

__LD:__compact_unwind
SectionKind::Text
> Unwind info is the information necessary to unwind the stack when an exception is thrown/raised.see compact_unwind_encoding.h

__DATA:__mod_init_func
SectionKind::TlsVariables
> Module initialization functions. The C++ compiler places static constructors here.see https://github.com/aidansteele/osx-abi-macho-file-format-reference#section

Just so I have a better understanding, what are you using the object crate for that requires these to be set?
The reason I ask is because these section kinds don't seem correct to me. __LD:__compact_unwind is more likely to be SectionKind::ReadOnlyData (the same as other unwind info such as __eh_frame), and __DATA:__mod_init_func is nothing to do with TLS from what I can see.

SectionKind::UninitializedData isn't correct either. I don't think we have anything that is appropriate, and I'm reluctant to add something without a clear need. Where do you run into problems if it is left as Unknown? The idea that you should be able to use SectionFlags::MachO for writing unknown section kinds.

Ah I see. I think that check is too restrictive. I think it would be safe to at least accept symbols that have SymbolFlags::MachO even if the symbol kind is Unknown. This would be comparable to how we handle SymbolKind for other file formats. That way this should work even if you encounter more unknown sections in the future.


Building LSTM networks

When we run
model = Sequential()
model.add(LSTM(5))

Does this generate 5 LSTM cells chained to each other (such that each cell emits one output) or a single LSTM cell emitting 5 outputs?

I think it is a LSTM layer with 5 cells.

by default, the LSTM will return the final state, not every timesteps
so in your code, it will return a 2D tensor of shape (batch_size, 5)
if you want to return each timesteps, you should specify in LSTM return_sequences=True.

okay, thank you


install: type error when using extends

When activating the extends key on defineNuxtConfig I get the following type error:
Error TS2345

TS2345: Argument of type '{ extends: string[]; modules: string[]; app: { head: { htmlAttrs: { lang: string; }; }; }; content: {}; vite { plugins: Plugin_2[]; }; }' is not assignable to parameter of type 'NuxtConfig'.   Object literal may only specify known properties, and 'extends' does not exist in type 'NuxtConfig'.

Sample config
export default defineNuxtConfig({
  extends: ["@shuriken-ui/nuxt"],
  modules: [
    "@nuxtjs/tailwindcss",
    "@pinia/nuxt",
    "@nuxt/content",
    "@nuxtjs/supabase"
  ],
  app: {
    head: {
      htmlAttrs: {
        lang: "en"
      }
    }
  },
  content: {},
  vite: {
    plugins: [
      ViteSvgLoader({
        svgo: false
      })
    ]
  }
})

Hello @prescience-data
Did you run nuxt? Types will be generated on first run in .nuxt folder (or using npx nuxt prepare, often run on postinstall/prepare npm lifecycle)
Here is a simple reproduction:
https://stackblitz.com/edit/nuxt-starter-brl3sh?file=nuxt.config.ts,app.vue
Note that you do not need to include @nuxtjs/tailwindcss in your modules as it already injected by shuriken-ui!


Feature |  fix: Multiple provider_urls not working with iam-assumable-role-with-oidc

What?
Upgrade terraform iam role module for our k8s implementation in order to allow multiple OIDCs within assumable role (https://github.com/terraform-aws-modules/terraform-aws-iam/pull/115)

Why?

Possible use case when you have multiple clusters (could be in the same or different AWS accounts)

This should be fixed on the newer versions of the Terraform module.


Pass additional parameters to subcomponents

Currently, the Scripting API can only instantiate components without passing parameters. Sometimes sub-components need additional information to execute correctly.
This leads to the workaround that a method within the sub-component is abused as a constructor and it sets the desired initial state just after instantiation. As long as this initial status is not yet set by this method, all lifecycle events of the component must terminate, since the component was not yet correctly initialized at that time. This workaround makes the onStart method of Flamework obsolete and replaces it with its own onStart method.
Example:
Parent component:
const components = Dependency<Components>(); const item = components.addComponent<Item>(itemClone); item.construct(this.attributes.Owner, spawnPosition);
In the item component
interface ItemAttributes {
	IsConstructed: boolean;
	Owner: number;
	SpawnPosition: Vector3;
}
interface ItemInstance extends Part {}

@Component({
	tag: "Item",
})
export class Item extends BaseComponent<ItemAttributes, ItemInstance> implements OnTick {
	constructor() {
		super();
	}

	construct(owner: number, spawnPosition: Vector3) {
		this.attributes.Owner = owner;
		this.attributes.SpawnPosition = spawnPosition;
		this.attributes.IsConstructed = true;

		this.onStart();
	}

	onStart() { // Is not a lifecycle method (implementation of the interface is missing!)
		// Add my cool Item behavior
		this.instance.Position = this.attributes.SpawnPosition;
		this.instance.Anchored = false;
	}

	onTick(dt: number) {
		if (!this.attributes.IsConstructed) {
			// Don't start tick-based Item behavior while it is not full constructed
			return;
		}
		// My cool Item behavior
	}
}

In some cases it would be sufficient to be able to access the attributes of the parent component with little effort. This would be the case for the Owner attribute. For the SpawnPosition attribute, however, this solution would not be sufficient.

I'd recommend passing the attributes from your parent component to the child component,. You can also add components from the parent component, if you don't want the components running prior to the attributes getting added or updated.
It isn't very feasible to allow users to pass values through to the constructor as Flamework needs to be able to create components automatically as well as inject dependencies.
I'm going to close this, feel free to reopen it if you have a reason why that solution is unoptimal.


Consider using go modules versioning

I had an issue importing osmosis in a project we are working on while adding the dependency.
go get<EMAIL_ADDRESS>
go get<EMAIL_ADDRESS>invalid version: module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v4

Had to manually specify the commit hash in order to work since semver is being followed only on github releases but not in go modules.
Example:
// go.mod

module github.com/osmosis-labs/osmosis/v4

This might be an overkill tho since all import paths must change, but not sure if there is some tooling out there that might benefit from multiple version imports.
import "github.com/osmosis-labs/osmosis/v4/x/gamm/keeper

we're working on tooling that could benefit from that, too.
I'll try and get this set tomorrow.

Getting this in would be huge. Sorry its been on the backlog for > 1 month since cosmosstation pointed it out, but never gotten to.
Would be very grateful for someone submitting a PR for this 🙏

@ValarDragon I guess that fully, this is five PR's, one for each version?
wdyt?


query parameter caught by substring query parameters

What version of Elysia.JS is running?
0.8.17
What platform is your computer?
Darwin 23.2.0 arm64 arm
What steps can reproduce the bug?
Hitting this endpoint /what?xxltee=on with this code reproduces the problem
import { Elysia, t } from "elysia";
import { html } from "@elysiajs/html";
import { swagger } from "@elysiajs/swagger";
import * as Html from "@kitajs/html";

const app = new Elysia()
  .use(html())
  .use(swagger())
  .get(
    "/what",
    ({ query }) => {
      console.log("query", query);
      return
hi
;
    },
    {
      query: t.Object({
        stee: t.Optional(t.Literal("on")),
        mtee: t.Optional(t.Literal("on")),
        ltee: t.Optional(t.Literal("on")),
        xltee: t.Optional(t.Literal("on")),
        xxltee: t.Optional(t.Literal("on")),
        xxxltee: t.Optional(t.Literal("on")),
      }),
    }
  )
  .listen(3000);

console.log(
  `🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`
);

What is the expected behavior?
I would expect  the following output when hitting the route /what?xxltee=on:
query {
  stee: undefined,
  mtee: undefined,
  ltee: undefined,
  xltee: undefined,
  xxltee: "on",
  xxxltee: undefined,
}

What do you see instead?
Instead, I see the following output when hitting the route /what?xxltee=on:
query {
  stee: undefined,
  mtee: undefined,
  ltee: "on",
  xltee: "on",
  xxltee: "on",
  xxxltee: undefined,
}

where ltee and xltee are also "on"
Additional information
No response

Fixed in 711925a under 1.0.0-beta.14.
If resolved, please leave the issue open until release on next stable release.

Should be fixed in 1.0.0
Feels free to reopen if issue still persists.


Tool layout fixes

This is a really great package, thanks for making it, I'll probably be submitting a few bug fixes but this is really powerful out of the box 👏
The button layout was looking a bit janky for me:

I've tidied it up like so, moved the list/grid button over to the left to match the modal, made the select multiple button thinner, and the filter/search smaller:

@InfinetyEs @Krato 👀

Great @stevelacey


Question regarding bootfiles/overlays

Description
Hi,
I'm struggling to understand how to append additional overlay files into the image build for my application.
Specifically, I have a device with an Audioinjector Ultra and a Waveshare 5" HDMI touchscreen.
I have all the lines I need added to config.txt, but the required devicetree overlay files are not included by default in the build.
These overlay files are available in https://github.com/raspberrypi/firmware, but only a subset of these get included in the build.
They seem to be selected via the RPI_KERNEL_DEVICETREE_OVERLAYS variable.
I understand that perhaps not all files are included for size/space efficiency.
I'd like to extend this variable to add the files that I required. I cannot find any working examples or documentation for how to do this.
My application layer image config is here: https://bitbucket.org/doughammond/meta-rpi-guitar-pedal/src/1a510e86e62cc43a3e68087f06e8121aac7d709c
There's not a lot in there yet, as I'm still trying to get the basics correct before adding the actual apps on top.
Could you please advise?
Thanks,
Doug.
Steps to reproduce the issue:

build core-image-minimal for any rpi machine

Describe the results you received:
observe that not all overlays available in raspberrypi/firmware are not included in the final sd image files
Describe the results you expected:
Either:

All overlay files include
OR
Configuration available to select which overlays to include in the build

Additional information you deem important (e.g. issue happens only occasionally):
None.
Additional details (revisions used, host distro, etc.):
distro: poky
version: dunfell

Is the overlay currently built by all the kernel versions we have in the layer now? If yes, we could enable it by default. Otherwise you can just append it to RPI_KERNEL_DEVICETREE_OVERLAYS as part of your local.conf for example.

I'm on thud.
I'm appending to RPI_KERNEL_DEVICETREE_OVERLAYS using:
RPI_KERNEL_DEVICETREE_OVERLAYS += " \
    overlays/uart1.dtbo \
	"

But now my overlays folder only contains the uart1 file, not the rest of the set.
To me it seems conf/machine/include/rpi-base.inc should set RPI_KERNEL_DEVICETREE_OVERLAYS using the += operator to make appending (like you suggest) working?

use RPI_KERNEL_DEVICETREE_OVERLAYS_append = " overlays/uart1.dtbo"

Thanks. Not sure how I missed that.


Field Work Jan - Mar 2021

goal 1: improve & check sapflow insulation

[ ] update tree covers with improved design
[ ] new labeling and putty on insulation covers
[ ] power is on at each loggerbox, but would like to check individual sensors
[x] talk to Roy about battery in the fresh plot

goal 2: troubleshoot continuous licor power issue

[ ] remove IRGAs from field
[ ] check fuses
[ ] test on line power
[ ] talk to licor about power draw of IRGA + multiplexer in context of current power usage in the plots

goal 3: getting litter under control

[ ] develop a plan for sorting litter
[ ] talk to Nate and others about what is important to capture and at what time scale

goal 4: new instrument learning

[ ] read 2200C manual
[ ] test out instrument and be able to understand general usage

@bpbond can you grab a power supply cable from 1207 for the AC to DC power adapter? See specs below...

Part Number 9981-140 Power Supply Cable
4 pin (F-F) 2m

My guess is it's either yellow like the photo below or grey.
From the manual:

The AC to DC power supply includes a 2 m power cord that connects the power supply to the LI-8150 Multiplexer (part number 9981-140). Connect the power cord between the power supply and multiplexer before plugging the power supply into a power outlet.

@bpbond can you grab a power supply cable from 1207 for the AC to DC power adapter? See specs below...

Part Number 9981-140 Power Supply Cable
4 pin (F-F) 2m

My guess is it's either yellow like the photo below or grey.
From the manual:

The AC to DC power supply includes a 2 m power cord that connects the power supply to the LI-8150 Multiplexer (part number 9981-140). Connect the power cord between the power supply and multiplexer before plugging the power supply into a power outlet.

Note to talk to licor about: When I pulled out a longterm chamber from the salt plot, the inside of the chamber was covered in sandy soil sensors included. I assume the LT chambers are built for extended outdoor use... but I'm concerned it could be harmful to the measurement.

Note to talk to licor about: When I pulled out a longterm chamber from the salt plot, the inside of the chamber was covered in sandy soil sensors included. I assume the LT chambers are built for extended outdoor use... but I'm concerned it could be harmful to the measurement.

Ok, Norbert is started for test. It's measuring every two hours, started 1:05 PM today, logging to internal flash ￼(almost no free space on either flash card).

Ok, Norbert is started for test. It's measuring every two hours, started 1:05 PM today, logging to internal flash ￼(almost no free space on either flash card).


Do not quote arguments to ST_EstimatedExtent

Fixes #252

@rafatower  @ethervoid  please take a look

:+1:

Seems good to me


Simulation data loading error

Hello! When I run your program, MATLAB will report the following error:

I found it was because of the problem with the simulation data you uploaded.

I have  the same question, have you solved this?

@startqiu

Can you upload simulation data again?@UditBhaskar19

That's really strange, It is working for me. Can you share a screen-shot of the issue.

The matlab should be install Automated Driving Toolbox, if not, the drivingCoordinateFrameType is not exist and then error occured.


Users are unable to save changes made to an existing view

@JS-BC things seem to be working fine now, please retest and close this if you can't reproduce anymore

Confirmed things are working now


Returning native datetime objects for Bucket/Blob time properties.

Note this was almost in #793 but dropped due to RFC3339 questions.
@craigcitro @thobrla can you vet an assumption for me? Will timestamps returned conform to
_GOOGLE_TIMESTAMP_FORMAT = '%Y-%m-%dT%H:%M:%S.%fZ'
# For example
TIME_DELETED = '2014-11-05T20:34:37.000Z'

I ask because '2014-11-05T20:34:37Z' is also totally valid according to RFC3339 and I'm wondering if we can get away with using datetime alone (and not having to use the strict-rfc3339 library for the full generality of RFC3339).

Changes Unknown when pulling 9f7d6fcbc6b9843162e25d5cbf9038375c3dd6f1 on dhermes:use-native-datetime into ** on GoogleCloudPlatform:master**.

I think this is true, but it is an implementation detail so it could break in the future; the discovery document only claims this is in RFC3339 format.
That being said, apitools just uses protorpc, which uses datetime exclusively.  @craigcitro may be able to comment further; looking at the code we treat the timestamps as DateTimeFields, https://github.com/google/protorpc/blob/master/protorpc/message_types.py#L52, but these are in millisecond format, not RFC3339 and I can't find where it does the string conversion.

@thobrla The conversion happens in apitools

Ah; the responsible code is actually in [protorpc] (https://github.com/google/protorpc/blob/master/protorpc/util.py#L441), and that handles both kinds of string formats (using text search and strptime).  That seems like a reasonable approach.

Yes, I'm cool doing that (only because we will end up requiring protorpc via apitools anyhow).

one more heads-up about timestamps: some newer APIs (eg pubsub) may return you timestamps with even more precision. i.e. down to the nanosecond. (see source here)

@craigcitro WAT? datetime doesn't support nanoseconds, so I suppose I should hold off. Oh Google, le sigh.

well, your fix is still good for storage. we can cross the next bridge when we come to it.

@craigcitro You mean this PR is good or the suggestion to use protorpc.util.decode_datetime?
As it were, I can confirm that the timezone support and the option of not having milliseconds (the only extra features) are not necessary.
From the discovery type documentation:

Type value
Format value
Meaning

string
date-time
An RFC3339 timestamp in UTC time. This is formatted as YYYY-MM-DDThh:mm:ss.fffZ. The milliseconds portion (".fff") is optional. Defined in the JSON Schema spec.

@tseaver I made an update to the unit tests and also made a slight tweak to the use of mtime in Blob.download_to_filename (was some repeated code).

Changes Unknown when pulling 2645e1df69663d9f415b2904ee28f3516e2b0756 on dhermes:use-native-datetime into ** on GoogleCloudPlatform:master**.

LGTM


Why ES6's Template literals not support by Standard?

Hi i'm new to standard, and i love its simple and powerful.
But i have a question
i have write code like
const ms = new Date() - start
ctx.set('X-Response-Time', '${ms}ms')

but i got the warning on first line: " 'ms' is defined but never used at xx col xx ";
I wonder why this warning happen? i think it should be now take as a warning ( in Eslint it is not);
and it's there have a way to ignore this kind of warning?
Best wishes.

Your code will set the header to the string "${ms}ms", you need to use backticks (`) in order to use template strings.
e.g.
const ms = new Date() - start
ctx.set('X-Response-Time', `${ms}ms`)

ok，thanks


geom_bar: aes 'fill' and trans 'log10' break y scale

Example:
n = 1000
np.random.seed(42)
data = {
    "x": np.random.choice(["a", "b", "c"], p=[.49, .49, .02], size=n),
    "g": np.random.choice(["X", "Y"], size=n),
}
ggplot(data, aes(x="x", fill="g")) + geom_bar() + scale_y_continuous(trans='log10')

Output:

Label values on y axis are much greater than expected. There is no such trouble if fill="g" or trans='log10' will be removed.

@ASmirnov-HORIS is this still the observed behavior in 4.3.0 ?

Yes. Now only powers of 10 are left on the y-axis, but the values are still larger than they should be.

The thing is, in case of 'stack' position adj. we sum transformed values. And if the transform is 'log' transform we have:
log(256) + log(236) ~= 4.78  (and "unlog": 10^4.78 ~= 60255)
instead of expected:
log(256 + 236) ~= 2.69


GH-3798 Prepare the FunctionCall and And operators.

GitHub issue resolved: #3798
Briefly describe the changes proposed in this PR:
Start precompiling the binary operators. Taking into account constant propagation.

PR Author Checklist (see the contributor guidelines for more details):

[x] my pull request is self-contained
[ ] I've added tests for the changes I made
[x] I've applied code formatting (you can use mvn process-resources to format from the command line)
[ ] I've squashed my commits where necessary
[X] every commit message starts with the issue number (GH-xxxx) followed by a meaningful description of the change

This is a draft pull request, as I want to do one commit per operator and probably want to move some code out of the very large StrictEvaluationStrategy.

@JervenBolleman is this PR ready to merge?

I need to double check the merge but otherwise this was ready to go.

@JervenBolleman this has been sitting for a while now - is all that's needed a rebase before it's ready to merge?

I rebased it and I think it is ready for a merge.

@JervenBolleman I'm sorry that we have to keep doing this, but it seems we missed the window to merge this, and it now has several conflicts again. Do you think you have time to try and resolve this? Would be ace if we could get this merged before a 4.3 release...

@abrokenjester no, problem :) I had actually done the work last night. Just had to check that mvn verify had passed this morning.


Delete all leveldb key-values, while the disk usage doesn't reduce [JIRA: RIAK-1800]

I have a 14Gb data of leveldb files, I have delete it whole  with eleveldb:iterator_move/2 and eleveldb:delete/3. When I'm going to fetch the first key in DB, it really took me to much time, 5min or longer, and the result showed the DB didn't have any keys anymore. But my disk usage remains 14Gb, I think leveldb didn't automatically compaction those keys. How could it be possible for me to show up it starting automatically compaction or not?

See https://github.com/basho/leveldb/wiki/mv-aggressive-delete, especially the section about "April 6 Update".
Google's original leveldb implementation does not attempt to purge deleted data.  It waits until the delete marker moves all the way to the highest level through normal compactions.  Basho added "aggressive delete" to initiate additional compactions when delete markers are present.  The initial implementation however caused a heavy performance hit in some typical usage patterns.  The current implementation, as discussed in the "April 6 Update" section, only schedules compactions for delete markers found in levels 2 and above.  This can result in up to 4.2G of storage per Riak vnode remaining used.

Thanks @matthewvon  I'll watch it later


Name

Should we retain the ReactiveSocket name or find another?
Want to give a chance for broader debate and better ideas before we have production releases and are stuck with it.
Reasoning behind ReactiveSocket is:

This library is directly related to several projects where "Reactive" is an important part of their name and architectural pattern. Thus the choice was made to retain this relationship in the name. Specifically:

Reactive Streams
Reactive Streams IO - proposed network protocol conforming to the Reactive Streams semantics
Reactive Extensions with RxJava and RxJS in particular
Reactive Manifesto - particularly the "Message Driven" aspect

ReactiveSocket implements, uses, or follows the principles in these projects and libraries, thus the name.

Potential problems with the name are:

use of "Reactive" which has become buzzwordy, and I could see people arguing that this is diluting the word
use of "Socket" which people may subjectively argue against
multiple syllables
could be trendy and thus dismissed

Benefits of the name:

aligns with the "reactive" principles and projects as shown above
descriptive

Please weigh in with your thoughts and alternatives if you have them.
If we do change the name, I'd want:

the Github repo
Twitter handle
.io domain name

I am fine with ReactiveSocket. But I am also not wedded to it if a better alternative arises.

No one has provided a strong reason to not use ReactiveSocket offline or here, so closing out.
If anyone has a better alternative, comment here and we'll reopen to discuss. We would need to make that change in the next several weeks though if it were to happen.


[MS Teams Windows Desktop and Android Mobile Clients][Adaptive Cards/Channel URL Redirects] [Adaptive card inconsistent behavior across platforms on channel URL redirect]

Platform
MS Teams
What platform is your issue or question related to? (Delete other platforms).

Android
maybe iOS?
UWP

Author or host
Are you an author (like sending something to Outlook), or a host that is rendering your own cards? Author sending cards to a channel
Version of SDK
Graph API v1.0 & beta
Details
Links to channels where a user is not a member of the team behave differently on the Windows Desktop client than they do on the Android mobile client.  Further, the same links do not invoke the "join team" workflow when posted within an Adaptive card using the Action.OpenUrl action in a button.  When posting the URL directly, users are redirected to their default web browser  outside of the Windows Desktop client.  The expected behavior when a user clicks these links from any platform when the channel lives within a public team should be redirecting the users to the "join team" workflow OR simply add them automatically instead of making them click the button.  I'm looking for a workaround here.  Our use case is business critical and needs to be consistent.  If a user clicks the link, they should go directly to the channel.  This bug report is actually a re-post of what I reported here https://github.com/microsoft/AdaptiveCards/issues/3338.  Since issue 3338 is somewhat old, I wasn't sure it would get the level of visibility I am looking for.  Hoping you all can help out.  Oh, I also posted on StackOverflow to see if anyone else in the community can help out.
I'm also reporting this as a bug because the mobile app seemed to have been redirecting me to the "join team" workflow just two nights ago when we were doing some testing.  I'm not sure what changed but it's strange that it now tells me "you are no longer a member of this team."  Please let me know if I can provide any additional information!

@ChristopherP1221 many thanks for reporting this afresh and apologies for the lack of follow up on #3338. @VikrantSingh01 / @siduppal would you be able to help a bit with firstpass on this one? I am not sure I understand how/why this is an AdaptiveCards issue or the end-end flow.. In the past I believe @matthidinger  has believed this to be an issue in Flow?

@shalinijoshi19 I expect this is a Teams client issue, not a Flow issue. The customer confirmed on the previous thread that the same behavior occurs when using Graph APIs directly to post a cards.

@ChristopherP1221 Could you please provide some screenshots capturing the difference in Desktop vs Mobile behaviour?


Instagram Embed Issue - No Image

Issue Summary
Instagram Embed does not show image, only image description.
To Reproduce

Create New Post
Either paste an instagram URL or click add then instagram then paste image URL.

Any other info e.g. Why do you consider this to be a bug? What did you expect to happen instead?
Image should display on page.
It appears that Ghost adds the instagram URL in front of the embed URL. Looking at the network traffic when loading the post, a request is made to https://www.instagram.com//www.instagram.com/static/bundles/es6/EmbedSDK.js/47c7ec92d91e.js (as you see instagram.com is displayed twice). I cannot actually find where this is done in the code, so am unsure how to fix myself, however I believe this is the point where it fails.
Technical details:

Ghost Version: 2.31.1
Node Version: 10.16.3
Browser/OS: Chrome
Database: MySQL

@mchlbowyer I'm not able to reproduce this, it's possible that Instagram had a bug in their embed code when you tried. Could you try again (you may need to delete then re-create the embed) and let me know if it's working now?

@kevinansfield have tried again and still the same. The dev output shows:
(index):201 GET https://www.instagram.com//www.instagram.com/static/bundles/es6/EmbedSDK.js/2fe3a16f6aeb.js net::ERR_ABORTED 404

@mchlbowyer did you delete the embed card and re-paste the original link to create a new one? When embed cards are created the html code is fetched from the source - we don't have any control over it. If the embed code Instagram is returning is buggy then that buggy code will be saved, it won't start or start working unless it's deleted and re-created with Instagram responding with non-buggy code.
If you inspect the response from /ghost/api/v2/admin/oembed/ when creating the embed card then you'll be able to see the code that Instagram has provided.

@kevinansfield so I think I may have found the issue - Ghost presumably calls 'https://www.instagram.com/embed.js' to get the embed Javascript, however calling that URL redirects to 'https://www.instagram.com//www.instagram.com/static/bundles/es6/EmbedSDK.js/2fe3a16f6aeb.js' which I think is causing the issue with the image not displaying (this also seems to be a common issue as even the Instagram embed documentation shows an embedded post without an image, although I can't for the life of me find a way to report this to Instagram).


Reduce duplication in finders

This PR contains the following commits, which are necessary to reduce specificity in Finder Frontend:

Specify if a value should be returned as metadata - This commit allows us to define on a per-facet basis if we want that facet returned as document metadata.
Add labels for certain facets - Certain facets,  (such as date_issued) don't just use the name of the Filter for the metadata label. This commit defines it for all existing instances of this.
Allow summary definition in metadata - This commits sets the summaries flag for certain formats and send that to the content store as part of the details hash.

The rest of the work in Finder Frontend to use these changes will come later.

Added a couple of comments, haven't managed to review it all yet. To be continued…

:+1: This looks good.
If this is merged and deployed will both finder-frontend and specialist-frontend continue to work without any changes?

Ie are these changes backwards compatible? If not, are there changes ready for the affected apps which make them backwards compatible?


[LiveComponent] Property does not exist exception when a LiveProp object has a virtual method?

My object is set as a LiveProp inside a Live component. It's a plain DTO with a method added, a virtual one, named getDiscountedUnitPrice:
<?php

namespace App\Model;

class Product
{
    use ModelFromArrayTrait;

    public ?string $id = null;
    public ?string $name = null;
    public ?bool $enabled = null;
    public ?bool $discountable = null;
    public ?DiscountInterface $discount = null;

    public function getDiscountedUnitPrice(): ?float
    {
        return $this->discount?->calculate($this->unitPrice) ?? $this->unitPrice;
    }
}

As soon as my DTO become a LiveProp, I get the following error:

Property App\Model\Product::$discountedUnitPrice does not exist

If you name the method discountedUnitPrice it works like a charm. I think this is a bug to be addressed.

Could you show us how you call this method from your template ?

You may need to show more code, because i see nowhere where is the $discountedUnitPrice call mentionned in your error.
At least you should give a bit more details concerning this exception, where it is raised, etc.

Here is a screenshot, if it may help. I'm not using product in my template, in fact the error is related to the hydration process.

So we can close this issue, as it's replaced by https://github.com/symfony/ux/issues/1590 right ?

There are two different issues, just naming are similar, a bit confusing Indeed...

@smnandre to be clear: I get that error for any "virtual" property of my DTO.
It may be related to the hydration problem explained here, because Symfony doesn't know how to set back the value when the hydrate occurs (and indeed it looks for a property named discountedUnitPrice, which doesn't exists).
It would be a nice idea to allow to exclude those "virtual properties". What If I only need getDiscountedUnitPrice on the server and not on the client?
For example "Do not try to dehydrate/hydrate this property":
#[LiveIgnore]
public function getDiscountedUnitPrice(): ?float
{
    return $this->discount?->calculate($this->unitPrice) ?? $this->unitPrice;
}

I think isn't resolved yet.

Could you please create a small reproducer (the minimal app possible to reproduce / observe / investigate the bug) ?
It really is the best method, so we can pull some repository and immediately work on it :)

Yes @smnandre it's ok to provide a container for running the example or you do by your own?

A small repository with minimal install would be ideal :)
See

https://symfonycasts.com/blog/symfony-reproducer
https://symfony.com/doc/current/contributing/code/reproducer.html

Repo: https://github.com/gremo/github-issue-1589

User 1 has a virtual method that starts with "get" and live hydrator get confused (I think)
User 2 has a virtual method but it doesn't start with "get" and all works fine

If you have time to suggest a fix we'll look at it, but we're reworking this part currently and this is such a weird case... did you try with custom hydration ?


Automatically generate a keypair when the module is enabled the first time.

It is handy to generate the public/private keypair when the module is started the first time.

When the module is started and there is no keypair available, it is automatically created.


PageRank angorithm running on top of graph interface

The idea is to have an underlying graph interface which can be implemented by multiple possible datastructures e.g. CSR graph or HAMT graph or simple map based graph.
The algorithm therefore should only use the pre-defined functions(functionalities) under the graph interface to run the PageRank algorithm.

This can be a starting point. Although it will require major changes. The key insight is:

If a package is calling a lot of other packages vs if a package is being called by lot of other packages. Both are important. Not sure if equally important. This will need to be figured out by experimentation.


Use logging version of jquery-migrate

Fixes #1194
Simply use the logging version of jquery migrate.
We expect to remove jquery-migrate before it hits production - but to be safe I'll add a note to the release page to cover backing this out if we don't get it done in time.

thanks! r+


Add ExecutionScopes unit tests

TITLE
Description
Description of the pull request changes and motivation.
Checklist

[ ] Linked to Github Issue
[ ] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

Codecov Report

Merging #543 (0821217) into main (9f11d2f) will increase coverage by 0.82%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #543      +/-   ##
==========================================
+ Coverage   92.22%   93.04%   +0.82%
==========================================
  Files          57       57
  Lines        3471     3480       +9
==========================================
+ Hits         3201     3238      +37
+ Misses        270      242      -28

Impacted Files
Coverage Δ

src/types/exec_scope.rs
94.16% <ø> (+23.33%)
:arrow_up:

src/vm/vm_core.rs
92.06% <0.00%> (+0.05%)
:arrow_up:

src/vm/vm_memory/memory.rs
95.57% <0.00%> (+0.29%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Document infrastructure & software

Will be revisited from a k8s-based perspective if needed (see #35)


Issue 2: HasMany now paginate-able

Codecov Report

Merging #9 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##             master     #9   +/-   ##
=======================================
  Coverage       100%   100%
+ Complexity       63     62    -1
=======================================
  Files             5      5
  Lines           183    182    -1
=======================================
- Hits            183    182    -1

Impacted Files
Coverage Δ
Complexity Δ

src/AbstractRestfulController.php
100% <100%> (ø)
37 <0> (ø)
:arrow_down:

src/Traits/HasLinksTrait.php
100% <100%> (ø)
13 <0> (-1)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d652974...b7e891e. Read the comment docs.


Exclude sprint_test temporarily

Exclude sprint_test temporarily
Related Issue: https://github.com/adoptium/aqa-tests/issues/3540

Signed-off-by: Longyu Zhang<EMAIL_ADDRESS>

Test Links on hyc_jenkins:

hotspot: 23136
openj9: 23134


chore: Release 0.17.0

:robot: I have created a release beep boop
root: 0.17.0
0.17.0 (2023-06-14)
⚠ BREAKING CHANGES

shiny new breaking feature

Features

shiny new breaking feature (7cc09cf)

acir: 0.17.0
0.17.0 (2023-06-14)
Miscellaneous Chores

acir: Synchronize acvm versions

Dependencies

The following workspace dependencies were updated

dependencies

brillig_vm bumped from 0.16.0 to 0.17.0

acir_field: 0.17.0
0.17.0 (2023-06-14)
Miscellaneous Chores

acir_field: Synchronize acvm versions

acvm: 0.17.0
0.17.0 (2023-06-14)
Miscellaneous Chores

acvm: Synchronize acvm versions

acvm_stdlib: 0.17.0
0.17.0 (2023-06-14)
Miscellaneous Chores

acvm_stdlib: Synchronize acvm versions

brillig_vm: 0.17.0
0.17.0 (2023-06-14)
Miscellaneous Chores

brillig_vm: Synchronize acvm versions

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/TomAFrench/test-repo/releases/tag/root-v0.17.0 :sunflower:

:robot: Release is at https://github.com/TomAFrench/test-repo/releases/tag/acir-v0.17.0 :sunflower:

:robot: Release is at https://github.com/TomAFrench/test-repo/releases/tag/acir_field-v0.17.0 :sunflower:

:robot: Release is at https://github.com/TomAFrench/test-repo/releases/tag/acvm-v0.17.0 :sunflower:

:robot: Release is at https://github.com/TomAFrench/test-repo/releases/tag/brillig_vm-v0.17.0 :sunflower:

:robot: Release is at https://github.com/TomAFrench/test-repo/releases/tag/acvm_stdlib-v0.17.0 :sunflower:


Error deploying from Github - "\MSBuild\14.0\Bin\MSBuild.exe was unexpected at this time."

I've been deploying to my Azure website with Kudu for 4 months now with no issues. I deployed today at 11:35am CST and it completed successfully. I then did another deploy at around 2:35pm CST and started getting the error "\MSBuild\14.0\Bin\MSBuild.exe was unexpected at this time.". The deployment log contains the following:
Command: deploy.cmd
\MSBuild\14.0\Bin\MSBuild.exe was unexpected at this time.
Handling .NET Web Application deployment.
I added an echo statement to the deploy.cmd to see what the %MSBUILD_PATH% variable was set to and it is outputting:
D:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
Anything happen today sometime after 11:35am CST that would have caused this error? Nothing has changed in my deploy.cmd file for the past 4 months.

we changed the default msbuild used, the one we set in MSBUILD_PATH to MSBuild 14.0 in 6eb4ac9d65b4293d820f2c5a13d8c0117ab38553 and I think it went to production yesterday at some point. If your kudu site was already running before that then it's possible you were still using older kudu at 11:35am and switched to the newer one later today. You can verify from the deployment logs for the deployment you did on 11:35.
That's said, you should be able to easily work around that issue by surrounding  %MSBUILD_PATH% with double quotes. Sorry about breaking your deployment script!

Thanks for the response! Helped point me in the right direction.
I had tried that prior to posting but it was still throwing the error. After your response I went back and double checked that I didn't miss a spot where I wasn't surrounding the build path with double quotes. After further inspection I realized I was using MSBuild on another project where I wasn't preceding the line with call :ExecuteCmd. After adding that to the line that was missing it my error went away. I'm guessing whatever change was made now requires that when calling into MSBuild?

Related issue: http://stackoverflow.com/questions/32497991/azure-git-deployment-failure

@natedahl32 I'm not very sure how the call :ExecuteCmd part relates to this change, but maybe it does in a subtle way.
Anyway, closing here as it is hopefully clear how to fix this for anyone with this issue.


Automatically book focus meetings could be set to be tentative

When using the auto-book focus time feature (which is very nice!) I would prefer to have meeting set as tentative, this way it's easier for my colleagues to book anyways if required and ask me if it's ok. Rather than have a hard time to find a spot and push a meeting to next week for nothing.
Thanks!

@sebastienricher - Thanks for your feedback. I'll pass your great suggestion on to the team.


Test entity interface implementations

This PR moves shared tests among Entity implementations into a single file.
It also implements a different, more manageable solution to tests implementations, where we check the outputs of the functions, instead of the implementation. This means we should start checking for what behavior is expected from a function's output given an input, instead of spying on function calls inside the function of interest.
Closes #356.

It looks PERFECT!
Suggestions for test_entities/utils.py:

I think generate_<entity> should go to somewhere in the mocks folder.
About structuring the functions in this file: three suggestions
a. We can define each entity's setup in its specific test file (e.g. move setup_benchmark_fs and setup_benchmark_comms to test_benchmark.py. test_entity.py would then import these setups. The only thing I see is that we have no test_result.py. What do you think about creating a test_result.py containing only the setups associated with the result entity?
b. split the utils into two files: one for setup fs functions and one for setup comms functions.
c. Keep it as it is now :)

A tiny suggestion about the generate_<entity> functions: can you use something like the style used below instead of kwargs.get?
https://github.com/mlcommons/medperf/blob/fdb4cd222ddf5f033b84684e7b1cedb9cbf23854/cli/medperf/tests/mocks/requests.py#L136-L154

It looks PERFECT!
Suggestions for test_entities/utils.py:

I think generate_<entity> should go to somewhere in the mocks folder.
About structuring the functions in this file: three suggestions
a. We can define each entity's setup in its specific test file (e.g. move setup_benchmark_fs and setup_benchmark_comms to test_benchmark.py. test_entity.py would then import these setups. The only thing I see is that we have no test_result.py. What do you think about creating a test_result.py containing only the setups associated with the result entity?
b. split the utils into two files: one for setup fs functions and one for setup comms functions.
c. Keep it as it is now :)

A tiny suggestion about the generate_<entity> functions: can you use something like the style used below instead of kwargs.get?
https://github.com/mlcommons/medperf/blob/fdb4cd222ddf5f033b84684e7b1cedb9cbf23854/cli/medperf/tests/mocks/requests.py#L136-L154

Great suggestions! I'll move the generators to the mocks folder. For now I'll keep the setup in the utils file as before, since I'm not sure if this setup can be reused outside the entities tests. But if we see they can be used outside we could also move them to the mocks folder


Proposal: GetTemplateChild should have strongly typed equivelent

Proposal: GetTemplateChild should have a strongly typed equivalent
Summary
When writing custom templated controls, we use the TemplatePart attribute to specify which components we expect to find in the XAML template. This attribute also specifies a strong type to be associated with the name for VS to help with validation. In the majority of cases, the component author is casting to this type and only expects elements of that type (and ignores anything else).
Rationale

Promote Type Safety: The GetTemplateChild method is generalized and only returns object and therefore casting needs to occur always. It'd be great if a generic type method could also be provided to make things more type safe by default.
Reduce code, this will better promote best practices without needing extra code or forgetting to do checks.

Important Notes
For example, this is what would be nice to have:
        /// <summary>
        /// Retrieves the named element in the instantiated ControlTemplate visual tree.
        /// </summary>
        /// <param name="childName">The name of the element to find.</param>
        /// <param name="isRequired">Whether the element is required and will throw an exception if missing.</param>
        /// <returns>The template child matching the given name and type.</returns>
        protected T GetTemplateChild<T>(string childName, bool isRequired = false)
            where T : DependencyObject
        {
            T child = this.GetTemplateChild(childName) as T;
            if ((child == null) && isRequired)
            {
                ThrowHelper.ThrowArgumentNullException(childName);
            }

            return child;
        }

We also can't make this an extension method as the existing GetTemplateChild is a protected method. Commented on this in the Extension Everything proposal for C# here.

@michael-hawker in Winui2 we use this helper method we wrote ourselves to achieve this: https://github.com/microsoft/microsoft-ui-xaml/blob/607b6de45ac355b4bf7d1db102c35430d3da54e9/dev/inc/CppWinRTHelpers.h#L137

The way this looks is going to be different depending on language. In C# it'd be a genericized method like you've called out. In C++ there'd probably be a templated header you can pull in. But there wouldn't be a single language-independent way of filling this in. Which is fine... it's still useful! It just means we need a place to plug in helpers like this that improve the experience on different languages. Which is a great way to improve the developer experience. Good suggestion!

Hacky method to have this functionality at the moment ...
internal static class ControlExtensions
{
    // todo uses reflection... should be replaced in future releases of the AppSDK

    /// <summary>
    /// Retrieves the named element in the instantiated ControlTemplate visual tree.
    /// </summary>
    /// <param name="childName">The name of the element to find.</param>
    /// <param name="isRequired">Whether the element is required and will throw an exception if missing.</param>
    /// <returns>The template child matching the given name and type.</returns>
    public static T GetTemplateChild<T>(this Control control, string childName, bool isRequired = true)
        where T : DependencyObject
    {
        MethodInfo protectedControlMethod = typeof(Control).GetMethod("GetTemplateChild", BindingFlags.NonPublic | BindingFlags.Instance);

        if (protectedControlMethod is null)
            throw new ArgumentException("Failed to get protected method \"GetTemplateChild\"");

        T child = protectedControlMethod.Invoke(control, new object[] { childName }) as T;
        if ((child == null) && isRequired)
            throw new ArgumentNullException(childName);

        return child;
    }
}


Rename target: TestingUtils to Toolbox

Renames the target, as talked some months ago, to better convey identity.

@flypaper0 same issue here of CI not resolving the package graph, do you know how to solve?

@flypaper0 same issue here of CI not resolving the package graph, do you know how to solve?

Check this commit in CacaoSigner PR https://github.com/WalletConnect/WalletConnectSwiftV2/pull/405/commits/b1f3b5ed5fb20248786d81c31060377662cc3f6f. But in your case another run could help


[Bug]: act import is deprecated.

Package version
v3.0.0
node-versions
v18
npm-versions
No response
Description
With an update to react dom test utils, the following warning is now given:
console.error
    Warning: `ReactDOMTestUtils.act` is deprecated in favor of `React.act`. Import `act` from `react` instead of `react-dom/test-utils`. See https://react.dev/warnings/react-dom-test-utils for more info.

      16 |     expectToBeTruthy(button);
      17 |     act(() => {
    > 18 |       button.click();
         |              ^
      19 |     });
      20 |     expect(container).toBeTruthy();
      21 |   });

      at printWarning (node_modules/react-dom/cjs/react-dom-test-utils.development.js:71:30)
      at error (node_modules/react-dom/cjs/react-dom-test-utils.development.js:45:7)
      at actWithWarning (node_modules/react-dom/cjs/react-dom-test-utils.development.js:1736:7)
      at ButtonWrapper.AbstractWrapper.fireEvent (node_modules/@amzn/awsui-test-utils-core/dist/dom.js:71:29)
      at ButtonWrapper.fireEvent [as click] (node_modules/@amzn/awsui-test-utils-core/dist/dom.js:55:14)
      at test/components/SearchButtonReset.test.tsx:18:14
      at node_modules/@testing-library/react/dist/act-compat.js:48:24
      at act (node_modules/react/cjs/react.development.js:2512:16)
      at node_modules/@testing-library/react/dist/act-compat.js:47:25
      ...

Looking at the source code, I can confirm that the deprecated import is here: https://github.com/cloudscape-design/test-utils/blob/74a10452b48d64902fe3a9b4044cf727b99c7caa/src/core/dom.ts#L4
Making a one line change as described in the URL referenced in the error log should fix this.
This doesn't break any of our tests yet, but it is adding a lot of error logs to our build and will eventually cause issues in the future.
Source code
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate problems

Hello, thank you for opening the issue. We have fixed in https://github.com/cloudscape-design/test-utils/pull/55.


Remove extension phases and standardize usage of provides/requires

This is related to #121. I will work on a PR ASAP.

This was done by #475 right? Can be closed?

yes, can be closed.


fix(ui): make the whole card on package list clickable

📑 Description

I noticed that only the texts and buttons on the package list are actual links. With this PR, the entire card surface becomes clickable.
✅ Checks

[ ] My code requires changes to the documentation
[ ] I have updated the documentation as required

ℹ Additional Information

When clicking "Install" now the dialog opens and in the background the page changes to the package detail page. Not sure if this is wanted, also debatable whether correct or not.
Same for the Open button, it does the opening operation, but also redirects you to the detail page.

interesting, I'll check again


TypeError: opts.connector is not a function

I was including two objects of enoa-client in the application which was running single process that gave me below given error.
/home/usr/rep/server/node_modules/enoa-client/lib/enoaclient.js:17
  opts.connector = new opts.connector(opts);
                   ^

TypeError: opts.connector is not a function
    at new enoaClient (/home/usr/rep/server/node_modules/enoa-client/lib/enoaclient.js:17:20)
    at Object.<anonymous> (/home/usr/rep/server/dist/controllers/index.js:1:1359)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at module.exports (/home/usr/rep/server/dist/r/index.js:1:154)
    at /home/usr/rep/server/dist/server.js:1:847
    at nextTask (/home/usr/rep/server/node_modules/async/dist/async.js:6627:18)
    at /home/usr/rep/server/node_modules/async/dist/async.js:6621:17
    at /home/usr/rep/server/node_modules/async/dist/async.js:339:31
    at /home/usr/rep/server/node_modules/async/dist/async.js:840:20
    at /home/usr/rep/server/dist/server.js:1:811
    at nextTask (/home/usr/rep/server/node_modules/async/dist/async.js:6627:18)
    at /home/usr/rep/server/node_modules/async/dist/async.js:6621:17
    at /home/usr/rep/server/node_modules/async/dist/async.js:339:31
    at /home/usr/rep/server/node_modules/async/dist/async.js:840:20
    at /home/usr/rep/server/node_modules/waterline/lib/waterline.js:211:7
    at /home/usr/rep/server/node_modules/waterline/node_modules/async/lib/async.js:52:16
    at /home/usr/rep/server/node_modules/waterline/node_modules/async/lib/async.js:269:32
    at /home/usr/rep/server/node_modules/waterline/node_modules/async/lib/async.js:44:16
    at /home/usr/rep/server/node_modules/waterline/lib/waterline/query/index.js:69:7
    at module.exports [as migrateSafe] (/home/usr/rep/server/node_modules/waterline/lib/waterline/adapter/sync/strategies/safe.js:14:3)
    at Query.sync (/home/usr/rep/server/node_modules/waterline/lib/waterline/query/index.js:67:37)
    at /home/usr/rep/server/node_modules/waterline/lib/waterline.js:280:16
    at /home/usr/rep/server/node_modules/waterline/node_modules/async/lib/async.js:181:20
    at Immediate.iterate [as _onImmediate] (/home/usr/rep/server/node_modules/waterline/node_modules/async/lib/async.js:262:13)
    at processImmediate [as _immediateCallback] (timers.js:383:17)

Please send your configuration code as well.

var conf = {
   appId:'app_id', apiKey:'apiKey'
   , collections:{
	   zlog:{
           appId:'_id', apiKey:'_key',
		   adapter:require('zlogjs-adapter'),
		   host:'localhost', port:'9000' ,
		   mode:"central"
	   }
   }
};

Thank you. This issue is resolved now. Please reopen this issue if you still have this problem.


Replace all MSDN links in 4.x ASP.NET repo

All doc's in https://github.com/dotnet/AspNetDocs
Run CI job per this comment
Start with 100 links, then try 1000

Update:  There have been several issues with these set of scripts running on the pipeline.   Trying to work them out with the doc publishing engineering team.  I ran two successful ones, but then started receiving either timeouts, or no timeout but failed runs with various script errors, or runs that executed completely without error but did not generate an actual branch and commit.  There were check-in on the scripts between the time we had successful runs and when they started acting up, so those provide a lead.


Line spacing with Minecraftia Font is off between first and second line in RichtextLabel

Godot version:
3.2.3 stable and 3.3rc6
OS/device including version:
Windows 10
Issue description:
The line spacing between the first and second line is less than the other line spacing after that when using Mincraftia Font (https://www.dafont.com/de/minecraftia.font)
Steps to reproduce:
Create richtextlabel, use font and make a text atleast 3 lines long (without new line, just use autowrap) (font size 8)
Minimal reproduction project:
ExampleProject.zip

As we checked this on the discord server, here are a couple of screenshots:
Here on 3.3rc6 the error still occours (only between 1st and 2nd line tho)

Setting the Font's Extra Spacing's "Bottom" to 1 fixed it in 3.3rc6, but still broken on 3.2.3-stable.

Other fonts do work, it's something about this font specifically, so maybe something on the font is broken, but I don't really know what to look for here - so if someone got an idea, please let us know!

This font has an unusual positive descender (i.e. above the baseline). Therefore the calculated line height (ascender - descender) will be smaller than ascender.
I think maybe it's the first line's Y position is calculated wrong, and something like MAX(a,b) kept the rendered line's Y position at 0 (or something in the opposite way).


Silence spring stop errors

This was happening when checking out branches outside of the check-in repo:

:ship


Status of useMutation not shared across usages/components with custom hook (like useQuery does)

Describe the bug
Imagine creating a custom hook (let's name it useTodos) which is used in multiple components and uses useQuery and useMutation inside.
When using useQuery, its status (and the helpers isLoading, isError, ...) are shared across multiple usages of useTodos.
For useMutation, this is not true. Every usage of useTodos will have its own mutation status.
To Reproduce
Here's a CodeSandbox that shows the behavior.
It shows two components that both use useTodos.
For GET requests (via useQuery), the status is shared across the components.
For POST requests (via useMutation), the status is different for both components. Only the component who executes the mutation will have the status "error".

Expected behavior
I understand that useQuery has one precise query key to identify "the same hook". Mutations are not like that.
In my case, I had a list that showed items (like "Todos") and a child component that was supposed to create a new item (like "Todo"). Naturally, I used useTodos in both components and wanted to show an error in the List component. The problem is isError was never true, only the child component's one was.
function TodoList() {
  // this "isError" here will never be true, only the <Todo> component's "isError" will
  const { todos, isError } = useTodos();

  return (

Todos:

      {isError &&
Error!
}

        {todos.map((todo) => (
          <Todo todo={todo} />
        ))}

  );
}

function Todo({ todo }: { todo: Todo | null }) {
  const { createTodo } = useTodos();

  return (

      {todo ? (

{todo.title}

      ) : (

          <button onClick={() => createTodo(...)}>Create</button>
          <input ... />
           ...

      )}

  );
}

I'm using React Query for a while now and being used to useQuery having a shared status, I wasted time checking my mutation implementation ("Why is the error not thrown?" etc.), but in reality useQuery and useMutation just behave differently and differently than expected.
I would really like to let useMutations share their status across all components.
There's already a mutationKey, which could maybe used for this exact use case.

Yes, I was also surprised by this, but mutationKey is not required, unlike the queryKey, so we can't really create a subscription like for useQuery. Mutations are also imperative so it just doesn't happen very often I guess. What we do have is the useIsMutating hook, similar to the useIsFetching hook, so that you know when a mutation is in-flight, and you can filter these by mutationKey. With that, you can e.g. disable all buttons that would trigger the same mutation. Not sure how that would fix the error situation though - but you can take a look how to create a subscription to the mutationCache by looking at the impl of useIsMutating:
https://github.com/tannerlinsley/react-query/blob/master/src/react/useIsMutating.ts

@TkDodo Thanks for the feedback and possible workaround.
I could also create my own React context and save isError or ' isLoading` there, so all components have the same status - I just thought it'd be nice to let React Query provide this out of the box.
Could you move this issue to the discussions, so we keep it there as a "feature request"?

I have similar "Idea" under the discussions section - https://github.com/tannerlinsley/react-query/discussions/2294

Feel free to move this issue to the discussions, so we keep it there as a "feature request".

let's keep here, I'd like to analyze how hard it would be to actually use the mutationKey to achieve that functionality, or if that would be a breaking change.

I always attach mutationKey and then got to the part where i needed to share if it ever succeeded or failed count and same thing. Thanks for bringing up this topic, it was first hit on search engine. I should have searched first rather then assume.

I was very surprised to find this out today when my mutation hook wasn't working as expected. I've also run into issues like the one described here as well as #2294. Losing transient mutation state like isLoading or error when your component changes contexts is unfortunate.
It made me start to wonder why there's such a strong conceptual distinction between queries and mutations, when at the end of the day they're both just abstractions around some promise that returns data, generally an HTTP request.
You could almost use useQuery in place of useMutation today if it exposed the imperative functions like mutate and mutateAsync and if it had a callback like onMutate. The key difference between the two hooks seems to come down to configuration, e.g. queries execute on lifecycle events by default, mutations do not retry by default, etc. I could imagine both of these hooks being thin wrappers around some other hook that provides all the common functionality, such as useRequest. This could even simplify some of the internals for RQ - one cache instead of separate query and mutation cache.
I could easily be overlooking some important details or underestimating the complexity, but I do agree that the state behavior of useMutation is not intuitive and inconsistent with useQuery.

@stefan-toubia it is something that is on my mind for quite some time. What it mutations were conceptually "just" disabled queries, where mutate or mutateAsync just calls refetch() 🤔 .
Not only would that get rid of a ton of internal code (MutationCache, Mutation, MutationObserver, ...), it would also, at the same time, add a lot of features for mutations, like sharing data, select and other options.
Of course, we could still turn off some of the options and / or set different default values for useMutation.
However, when I went down that road, there is one thing that works inherently different from queries:
useQuery instantly creates an observer, but useMutation only does it after .mutate is called. Further, if you call .mutate multiple times, the previous observer is unsubscribed automatically. That is necessary so that callbacks of .mutate are only called once. However, callbacks on useMutation itself are actually cache level callbacks, which will execute any time the mutation succeeds / fails, even if the observer has already unmounted. That is important, and something that doesn't exist on the query cache itself.
Feel free to take a look at the implementation (best on v4 directly, alpha branch), the road would need to be a merging of the two slightly different functionalities. Would love to have it but I don't have enough time to look into it right now :)

Just thought to provide code for another workaround for this issue, which doesn't require manually keeping state but still allows different components to share the same mutation object. As mentioned, just wrap a react context around the custom hook and the desired functionality will be achieved.
https://codesandbox.io/s/silent-frost-mjxlrf?file=/src/App.js
const CustomMutationProvider = ({ children }) => {
  const mutation = useMutation({
    mutationKey: "UpdateData",
    mutationFn: async () => {
      // Fake api call
      await new Promise((resolve, reject) => setTimeout(reject, 2000));
    }
  });
  return (
    <CustomMutationContext.Provider value={mutation}>
      {children}
    </CustomMutationContext.Provider>
  );
};
const CustomMutationContext = React.createContext();
const useCustomMutation = () => React.useContext(CustomMutationContext);

And use like so:

export default function App() {
  return (

      <QueryClientProvider client={queryClient}>
        <CustomMutationProvider>
          <ComponentA />
          <ComponentB />
        </CustomMutationProvider>
      </QueryClientProvider>

  );
}
const ComponentA = () => {
  const { mutate, status } = useCustomMutation();
  return (

Component A

      Status: {status}

      <button onClick={mutate}>Update</button>

  );
};
const ComponentB = () => {
  const { mutate, status } = useCustomMutation();
  return (

Component B

      Status: {status}

      <button onClick={mutate}>Update</button>

  );
};

If I understood the reason correctly, the following worked for me:
  // workaround for https://github.com/TanStack/query/issues/2304   // instead of useIsMutating   const [isMutating, setIsMutating] = useState(false);   useEffect(() => {     return queryClient.getMutationCache().subscribe(({ type, mutation }) => {       if (         type === 'updated' &&         mutation.options.mutationKey?.[0] === 'KEY' // your predicate here       ) {         setIsMutating(mutation.state.status === 'loading');       }     });   }, []);

I got into this today. My current workaround is
const address = useAppSelector(selectAddress);
const queryKey = ["getShippingZone", address.zipCode];
const result = useQuery(queryKey, getShippingZone, {
  meta: address as IndexSignature<typeof address>,
});

async function getShippingZone({ meta }: QueryFunctionContext<...>) {
  const address = meta as unknown as Address;
  ...
}

type IndexSignature<O extends object> = {
  [P in keyof O]: O[P] extends object ? IndexSignature<O[P]> : O[P];
};

where you need to pass variables through meta option. (which is very vulnerable in typing, and not really recommended as other developers wouldn't think that's what meta should be used for). But for this case where I anyway save address in a global state, I think it's worth to do.

Based on @TkDodo answers https://github.com/TanStack/query/issues/2304#issuecomment-1013139242, I've implemented my useCustomMutation that uses useQuery to share data between components.
My first use-case that requires that useMutation share data across components was a multi-step form in react-native (ps: in react-native, the stack navigation doesn't unmount the previous screen) where at the first page, we need to get an AuthToken, we do it onPress of a button by the user, so it makes sense to be a mutation at this point, but I faced that if I need to get the token on subsequent screens, it will not be there, so that's why of the implementation.
The useCustomMutation follows the exactly same API of useMutation
export const useCustomMutation = <TData = unknown, TError = unknown, TVariables = unknown, TContext = unknown>(
  mutationKey: MutationKey,
  mutationFn: MutationFunction<TData, TVariables>,
  options?: Omit<UseMutationOptions<TData, TError, TVariables, TContext>, 'mutationKey' | 'mutationFn'>
): UseMutationResult<TData, TError, TVariables, TContext> => {
  const query = useQuery<TData, TError>(
    ['CustomMutation', mutationKey],
    async () => await Promise.resolve(false as unknown as TData),
    { retry: false, cacheTime: Infinity, staleTime: Infinity }
  )
  const queryError = useQuery<TError, TData>(
    ['CustomMutationError', mutationKey],
    async () => await Promise.resolve(false as unknown as TError),
    { retry: false, cacheTime: Infinity, staleTime: Infinity }
  )
  const mutation = useMutation<TData, TError, TVariables, TContext>(
    mutationKey,
    async (...params) => {
      queryClient.setQueryData(['CustomMutationError', mutationKey], false)
      return await mutationFn(...params)
    },
    {
      ...options,
      onSuccess: (data, variables, context) => {
        queryClient.setQueryData(['CustomMutation', mutationKey], data)
        if (options?.onSuccess) options.onSuccess(data, variables, context)
      },
      onError: (err, variables, context) => {
        queryClient.setQueryData(['CustomMutationError', mutationKey], err)
        if (options?.onError) options.onError(err, variables, context)
      },
    }
  )
  const isLoading = useIsMutating(mutationKey)

  // We need typecasting here due the ADT about the mutation result, and as we're using a data not related to the mutation result
  // The typescript can't infer the type correctly.
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
  return {
    ...mutation,
    data: query.data,
    isLoading: !!isLoading,
    error: queryError.data,
    isError: !!queryError.data,
  } as UseMutationResult<TData, TError, TVariables, TContext>
}

You can find it also on a gist: https://gist.github.com/antoniel/1f8d59f7e3f73487e5ba02a293fb39ec

TGhanks @antoniel for sharing, I think that onSuccess etc will only fire if the component remains mounted. I think you'll have to move the success/error into the queryFn.

Any updates? Using the context API is solves the problem but it is still a bad solution.

@antoniel 's solution worked for me as well. I used the useQueryClient hook to get the queryClient.

Are there any updates?

Any updates?

Updates ?

So I don't waste any more time on this, can someone tell me if this is possible, please?
I want to extract all the queries and mutations for a particular API endpoint into their own file so I can import them where needed
e.g. get (query), get_all (query), create (mutation), update (mutation) and delete (mutation) for say the user's endpoint are grouped together in their own file.
This works fine for queries and I can query endpoints anywhere in my code by importing a wrapped anonymous function that returns a useQuery function:
// ./api/UserData.tsx

...

export const getAllUsers = () => {
  const authHeader = useAuthHeader();

  return useQuery<UserModel[], Error>({
    queryKey: ['users'],
    queryFn: async () => {
      const response = await fetch("http://localhost:8000/users", {
        method: 'GET',
        headers: {
          "Content-Type": "application/json",
          "Authorization": authHeader()
        }
      });

      const data = await response.json();

      if (!response.ok) {
        throw new Error(`Network response was not ok - ${response.status}: ${data.detail}`);
      }

      return data;
    },
    onError: async (error:Error) => {
      console.log(error);
    }
  });
}

...

// ./api/index.ts

import { getAllUsers, ... } from "./UserData";

export {
    getAllUsers,
    ...
};

and then I just import the function in the file I need it in
// ./folder/file.tsx

import { getAllUsers } from "~/api"
...
const userData = getAllUsers();
...

but I'm struggling to do the same with mutations as it doesn't seem to import properly as the mutate function doesn't exist when I import the createUser function:
export const createUser = () => {
  const authHeader = useAuthHeader();
  const queryClient = useQueryClient();

  return useMutation({
    mutationFn: async (newUser:UserModel) => {
      const response = await fetch("http://localhost:8000/users", {
        method: 'POST',
        headers: {
          "Content-Type": "application/json",
          "Authorization": authHeader()
        },
        body: JSON.stringify(newUser)
      });

      const returnedData = await response.json();

      if (! response.ok) {
        throw new Error(`Network response was not ok - ${response.status}: ${returnedData.detail}`);
      }

      return returnedData;
    },
    onSuccess: (data:UserModel) => {
      console.log(data)
      queryClient.invalidateQueries(["users"]);
    },
    onError: async (error:Error) => {
      console.log(error)
    }
  });
}

I get:
Property 'mutate' does not exist on type '() => void'
when I do:
createUser.mutate(formData);

After reading through this issue I'm guessing this isn't currently possible, am I correct?
thanks in advance

Any updates?

Well, yes. There will likely be something in v5, but it will not mean that useMutation will share state, because every invocation of useMutation.mutate creates a new, completely separate mutation entry. It's fundamentally different from useQuery.
Instead, we will likely have a new hook useMutationState() where you can pass in filters and potentially a selector. It's like useIsMutating (which in fact is now implemented with useMutationState) but for arbitrary fields of the mutation, like data or error or something derived. It will always return an array, because unlike queries, there can be multiples even for the exact same mutationKey by just calling mutate twice on the same "instance".
changes are somewhere in this PR if you're interested:

https://github.com/TanStack/query/pull/4814

@Chunkford I don't think your problem has anything to do with this issue. Please just open a separate discussion (discussion, not issue 😉)

v5 PR was merged


zoom is broken in master

Issue description
Zoom crashes on startup:
$ zoom-us
sh: /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libc.so.6: version `GLIBC_2.27' not found (required by /nix/store/fycm4swi722vz4l5ckpqrd4nfzj6av79-v4l-utils-1.12.3/lib/libv4l2.so.0)
zoom started.
Could not initialize GLX
Aborted

glxgears does work.
glxinfo  | grep dir.*render
direct rendering: Yes

Steps to reproduce
Install zoom from master.
Technical details

system: "x86_64-linux"
host os: Linux 4.15.18, NixOS, 18.03.git.ee80654 (Impala)
multi-user?: yes
sandbox: no
version: nix-env (Nix) 2.0.1
channels(root): "nixos-17.09.2182.7f6f0c49f0"
channels(coretemp): "nixos-18.03.132192.ce0d9d638de"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs

CC: @srhb (because you touched it last, but it might be that it was already broken before that).

It works for me via nix build -f . zoom-us && ./result/bin/zoom-us. I'm using nvidia and also get this on startup:
sh: /nix/store/2kcrj1ksd2a14bm5sky182fv2xwfhfap-glibc-2.26-131/lib/libc.so.6: version `GLIBC_2.27' not found (required by /nix/store/fycm4swi722vz4l5ckpqrd4nfzj6av79-v4l-utils-1.12.3/lib/libv4l2.so.0)
zoom started.
[CZPClientLogMgr::LogClientEnvironment] [MacAddr: D8:50:E4:DC:C2:52][client: Linux][OS: NixOS 18.03.132336.ef74cafd3e5 (Impala)][Hardware: CPU Core:8 Frenquency:3.5 G Memory size:32047MB CPU Brand:Intel(R) Core(TM) i7-4771 CPU @ 3.50GHz GPU Brand:][Req ID: ]
Linux Client Version is 2.0.123200.0405
QSG_RENDER_LOOP is
XDG_CURRENT_DESKTOP = ;   GDMSESSION =
Graphics Card Info::
Zoom package arch is 64bit, runing OS arch is x86_64
AppIconMgr::systemDesktopName log Desktop Name:
qrc:/qml/PreMeeting.qml:117: TypeError: Cannot read property of null
qrc:/qml/PreMeeting.qml:128: TypeError: Cannot read property of null
qrc:/qml/PreMeeting.qml:117: TypeError: Cannot read property of null
qrc:/qml/PreMeeting.qml:128: TypeError: Cannot read property of null
Error: Send error, 22 Invalid argument
Error: Send error, 22 Invalid argument
Error: Send error, 22 Invalid argument

If I caused that error, I'm afraid I have no idea how. I'll try a master build tomorrow. I tested it on unstable just this morning and everything looked fine to me. :(

@coretemp Oh, I just noticed your system is on an 18.03 commit. I don't think you can mix and match like that because of the libglvnd changes in master. Either use zoom from 18.03 or change your system to master as well, and everything should be fine.

(Alternatively, if someone knows how to make it backwards compatible, that could work too.)

One argument for fixing it in NixOS is that I can imagine the first thing Zoom support will say when there is an issue is: "Do you run the latest version?".
It depends on what other Linux distributions do, too.
I don't know what the right answer here is either.

You can "emulate" install zoom_latest with the following
$ nix-env -i $(nix-build -E 'with import <nixpkgs> {}; zoom-us.overrideAttrs (sup: { src = (import (builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/master.tar.gz") {}).zoom-us.src;})')

In most cases it will work.
@srhb maybe you know what is the source of impurity? It looks like V4L tries to communicate to system libc. But why should it, if it has own libc in closure?

Based on @danbst's suggestion the following should allow everyone on Linux to run the latest Zoom on 18.03 (and presumably future versions) without any modifications.
#!/bin/sh
# save in a file called zoom in e.g. ~/bin

# possibly change of remove these next three lines depending on your system
driver=uvcvideo
sudo rmmod "$driver"
sudo modprobe "$driver" &&

nix-env -i $(nix-build -E 'let pkgs = (import <nixpkgs> {config = {allowUnfree = true;};}); in with pkgs; zoom-us.overrideAttrs (sup: { src = (import (builtins.fetchTarball "https://github.com/NixOS/nixpkgs/archive/master.tar.gz") {}).zoom-us.src;})') &&
"${HOME}"/.nix-profile/bin/zoom-us


connect node script

@ranjithamca  Have reviewed, Good job, its getting close.

@ranjithamca  Good Job.


set min PL as 1.7

What does this PR do?
Reaction to #910
Before submitting

[x] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
[ ] Did you make sure to update the documentation with your changes?
[ ] Did you write any new necessary tests? [not needed for typos/docs]
[ ] Did you verify new and existing tests pass locally with your changes?
[ ] If you made a notable change (that affects users), did you update the CHANGELOG?

PR review

[x] Is this pull request ready for review? (if not, please submit in draft mode)

Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

@otaj, the py3.10 is failing with TV, see:
https://github.com/Lightning-AI/lightning-bolts/actions/runs/3376424612/jobs/5604130908

Seems there is some issue with py3.10 and onnx

I'm on it

sparseml is forcing old onnx version, which would require compilation from source on 3.10 in the CI. We won't be doing that, so for now CI runs on 3.7 and 3.9 :sadpanda:


Conditional to avoid error message

In some moment, parent returns undefined on load view

Have we determined under what circumstances this may occur ? It would be preferrable to address the root cause (instead of working around the symptom).

We need more information to consider merging this, such as the scenario where this happens and a test to show it. Feel free to reopen this issue in that case.


Can not change max_input_len of Encoder while building engine in Encoder-Decoder model (T5)

I built the engines for T5 model with the following scripts for the latest version of TensorRT-LLM:
export MODEL_DIR="path_to_t5_model" # or "flan-t5-small"
export MODEL_NAME="t5model"
export MODEL_TYPE="t5"
export INFERENCE_PRECISION="float16"
export TP_SIZE=1
export PP_SIZE=1
export WORLD_SIZE=1
export MAX_BEAM_WIDTH=1
export OUTPUT_DIR="triton_model_repos/${MODEL_NAME}/tensorrt_llm/1"

trtllm-build --checkpoint_dir "${MODEL_DIR}/trt_models/${INFERENCE_PRECISION}/tp${TP_SIZE}/pp${PP_SIZE}/encoder" \
                --output_dir "${OUTPUT_DIR}/${WORLD_SIZE}-gpu/${INFERENCE_PRECISION}/tp${TP_SIZE}/encoder" \
                --paged_kv_cache enable \
                --moe_plugin disable \
                --enable_xqa disable \
                --use_custom_all_reduce disable \
                --max_beam_width ${MAX_BEAM_WIDTH} \
                --max_batch_size 8 \
                --max_input_len 4096 \
                --max_encoder_input_len 4096 \
                --max_output_len 4096 \
                --gemm_plugin ${INFERENCE_PRECISION} \
                --bert_attention_plugin ${INFERENCE_PRECISION} \
                --gpt_attention_plugin ${INFERENCE_PRECISION} \
                --remove_input_padding disable \
                --context_fmha disable

# For decoder, refer to the above content and set --max_input_len correctly
trtllm-build --checkpoint_dir "${MODEL_DIR}/trt_models/${INFERENCE_PRECISION}/tp${TP_SIZE}/pp${PP_SIZE}/decoder" \
                --output_dir "${OUTPUT_DIR}/${WORLD_SIZE}-gpu/${INFERENCE_PRECISION}/tp${TP_SIZE}/decoder" \
                --paged_kv_cache enable \
                --moe_plugin disable \
                --enable_xqa disable \
                --use_custom_all_reduce disable \
                --max_beam_width ${MAX_BEAM_WIDTH} \
                --max_batch_size 8 \
                --max_output_len 4096 \
                --max_encoder_input_len 4096 \
                --gemm_plugin ${INFERENCE_PRECISION} \
                --bert_attention_plugin ${INFERENCE_PRECISION} \
                --gpt_attention_plugin ${INFERENCE_PRECISION} \
                --remove_input_padding disable \
                --context_fmha disable \
                --max_input_len 1

Then I run inference with the built engines, it only works with input with the length <= 1024 although I built with --max_input_len=4096 and max_encoder_input_len=4096. When I run with the inputs (length > 1024), it raises the following error in the triton server log:
[05/16/2024-08:43:31] [TRT] [E] 3: [executionContext.cpp::setInputShape::2068] Error Code 3: API Usage Error (Parameter check failed at: runtime/api/executionContext.cpp::setInputShape::2068, condition: satisfyProfile Runtime dimension does not satisfy any optimization profile.)

I also edit some bug in line https://github.com/NVIDIA/TensorRT-LLM/blob/bf0a5afc92f4b2b3191e9e55073953c1f600cf2d/tensorrt_llm/runtime/session.py#L170 (f"engine supports [min, opt, max] = {self.engine.get_profile_shape(context.active_optimization_profile, name)}" -> f"engine supports [min, opt, max] = {self.engine.get_tensor_profile_shape(name, context.active_optimization_profile)}") to show the error:
I0516 07:36:03.073916 35685 pb_stub.cc:715] Failed to process the request(s) for model 'tensorrt_llm_0_0', message: ValueError: Couldn't assign input_ids with shape torch.Size([1, 1398]), engine supports [min, opt, max] = [(1, 1), (4, 512), (8, 1024)]

It seems like max_input_len 1024 set somewhere in the code?

I'm trying to reproduce your error but did not see this in the latest commit: 5d8ca2faf74c494f220c8f71130340b513eea9a9
Steps:

Follow the installation steps on building from source.

git clone https://github.com/NVIDIA/TensorRT-LLM.git
cd TensorRT-LLM
git submodule update --init --recursive
git lfs pull
docker build --pull  \
            --target devel \
            --file docker/Dockerfile.multi \
            --tag tensorrt_llm/devel:latest \
            .
docker run --rm -it \
        --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 --gpus=all \
        --volume ${PWD}:/code/tensorrt_llm \
        --workdir /code/tensorrt_llm \
        tensorrt_llm/devel:latest
python3 ./scripts/build_wheel.py --trt_root /usr/local/tensorrt
pip install ./build/tensorrt_llm*.whl

Build the model as your script above.  This triggers when --remove_input_padding disable and --paged_kv_cache enable are set together. I'm working on a quick fix right now, if you're in a hurry, you can move tensorrt_llm/models/enc_dec/model.py#L1666~L1670 to L1584, then replace the file to the one binded to tensorrt_llm package like so:
cp tensorrt_llm/models/enc_dec/model.py /home/dev_user/.local/lib/python3.10/site-packages/tensorrt_llm/models/enc_dec/

Re-run the script and you should get the model that can take 4096 input.

Use your own input in run.py. I'm seeing the engine behave as intended. Ran with no problem when input lengths:  tensor([4095]) but failed with > 4096 with the same error you find, which is intended.

Other than that, I'm suspecting that you're using tritonserver, which may not be the latest version of TensorRT-LLM. You can find the version when you run any TRTLLM related script as shown below. It'll be very helpful for me to investigate.
[TensorRT-LLM] TensorRT-LLM version: 0.11.0.dev2024052100

Thanks!!.

Thank @jtchen0528 for your response!
I am using TensorRT-LLM version 0.10.0.dev2024050700. I rebuilt triton backend with TensorRT-LLM in commit e239adcfbf8e72bf1eefaa166781343f41770d70. I found the bug in both RTX2080Ti and RTX4090 hardware.

Hi @thanhlt998,
I tracked down tensorrtllm_backend at commit e239adcfbf8e72bf1eefaa166781343f41770d70, which has the submodule TensorRT-LLM commit 89ba1b1a67d570e41b03da87e5518eaff0d31fbf. I then built the container with building from source on an RTX 4090, built the engine with your script. Ran the engine with a length 4095 input. I still did not see the error.
I'm now suspecting your engine does not get copied to the correct folder. Triton server takes a specific engine folder listed in this file in your triton server config.

Hi @jtchen0528 ,
I have just tried again with t5-small, the built engine ran successfully with a length 4095. The T5 model I tried has ~1.5B parameters, it is larger than t5-small. So I tried to re-build the engine with --max_batch_size 2 --max_input_len 4096 --max_encoder_input_len 4096 --max_output_len 4096 instead of --max_batch_size 8, I can run the engine with a length 4095 input.
But when I built the engine with --max_batch_size 8, it was successful without any errors. It only raises the error engine supports [min, opt, max] = [(1, 1), (4, 512), (8, 1024)] when run the built engine with the input_length > 1024.
The above experiment I ran with 2080Ti GPU hardware and the above source code commits.
So it need to raise error in the building step instead of running step???

Would you mind sharing which T5 model you're running, and the steps to run the built engine so that I can see your error?
As I shared in the comment, I can build a 8 batch engine and run without problem.

 I'm trying to reproduce your error but did not see this in the latest commit: 5d8ca2faf74c494f220c8f71130340b513eea9a9
Steps:

Follow the installation steps on building from source.

git clone https://github.com/NVIDIA/TensorRT-LLM.git
cd TensorRT-LLM
git submodule update --init --recursive
git lfs pull
docker build --pull  \
            --target devel \
            --file docker/Dockerfile.multi \
            --tag tensorrt_llm/devel:latest \
            .
docker run --rm -it \
        --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 --gpus=all \
        --volume ${PWD}:/code/tensorrt_llm \
        --workdir /code/tensorrt_llm \
        tensorrt_llm/devel:latest
python3 ./scripts/build_wheel.py --trt_root /usr/local/tensorrt
pip install ./build/tensorrt_llm*.whl

Build the model as your script above.  This triggers when --remove_input_padding disable and --paged_kv_cache enable are set together. I'm working on a quick fix right now, if you're in a hurry, you can move tensorrt_llm/models/enc_dec/model.py#L1666~L1670 to L1584, then replace the file to the one binded to tensorrt_llm package like so:
cp tensorrt_llm/models/enc_dec/model.py /home/dev_user/.local/lib/python3.10/site-packages/tensorrt_llm/models/enc_dec/

Re-run the script and you should get the model that can take 4096 input.

Use your own input in run.py. I'm seeing the engine behave as intended. Ran with no problem when input lengths:  tensor([4095]) but failed with > 4096 with the same error you find, which is intended.

Other than that, I'm suspecting that you're using tritonserver, which may not be the latest version of TensorRT-LLM. You can find the version when you run any TRTLLM related script as shown below. It'll be very helpful for me to investigate.
[TensorRT-LLM] TensorRT-LLM version: 0.11.0.dev2024052100

Thanks!!.

@jtchen0528 , I run my pretrained T5 model with the following config:
{
  "architectures": [
    "T5ForConditionalGeneration"
  ],
  "classifier_dropout": 0.0,
  "d_ff": 3840,
  "d_kv": 64,
  "d_model": 1536,
  "decoder_start_token_id": 0,
  "dense_act_fn": "silu",
  "dropout_rate": 0.1,
  "eos_token_id": 1,
  "extra_ids": 256,
  "feed_forward_proj": "gated-silu",
  "initializer_factor": 1.0,
  "is_encoder_decoder": true,
  "is_gated_act": true,
  "layer_norm_epsilon": 1e-06,
  "model_type": "t5",
  "n_positions": 2048,
  "num_decoder_layers": 24,
  "num_heads": 24,
  "num_layers": 24,
  "output_past": true,
  "pad_token_id": 0,
  "relative_attention_max_distance": 128,
  "relative_attention_num_buckets": 32,
  "tie_word_embeddings": false,
  "torch_dtype": "float32",
  "transformers_version": "4.39.1",
  "use_cache": true,
  "vocab_size": 65664
}

To see the errors I just follow run.py of the enc-dec example code and increase the length of the samples to have input length > 1024

@thanhlt998 Is the config same as any T5 family on HuggingFace?

@jtchen0528 I customized the config based on my demand, you can try the google/flan-t5-xl (~3B parameters) to reproduce the errors.

@thanhlt998 I need more detailed reproduction steps. I just tried with flan-t5-xl without problem. I ran on H100 for this because a 4090 cannot hold a flan-t5-xl but I don't think the hardware matters with this bug.
The exact same script is provided above, just change the model to google/flan-t5-xl on huggingface.
I'm also attaching the script I run here. test.txt

Maybe I figured out my issue, the building encoder engine progress raises the OOM errors so the engine is not overwrited the engine built with the max_input_len=1024. It is my fault.
Thank you for your support! @jtchen0528


Put frozen columns in place of the first data column

Fixes #308

Tests are failing, and I think for a valid reason.

The issue this is trying to fix is behaves same way as before. But this change breaks tests. So DO NOT marge this.

Actually it fixes the defined columns, but now basic columns are broken if you repeat same steps. Not sure if basic columns worked before, need to try.

Nope, basic was also broken before. But the tests failing is sign that something is wrong with this change.


translate 'community' page into ko_KR

Please rebase merge if possible. that would make the commit history cleaner.


Included list of topics at the top and bottom of each provision

added list of topics linking to their respective guides at the top of each provision.
Added related guides to the bottom
closed #31

The link at the top must ultimately go just under the heading. We'll ultimately do exactly the same for the full constitution view -- inserting the links for every section in the text. Rather than treat this as a special case, let's work out how to inject a React Ionic component into a DOM tree (which is how we insert the AKN document).
If this was Vue, I'd create the component and mount it, and then insert the resulting element into the appropriate place in the inserted AKN document tree. I'm not sure if that's possible with React. There is this description of React Portals which may work.

Nice, looking good.
Any idea why clicking on the link reloads the whole app?


rsync is missing in 20.04 image

Hi, this week I started with phyLinux and followed the hardknott guide. bitbake fails at recipe linux-imx because rsync is missing.
It works if I create a local image with rsync. Please consider adding rsync to your image(s).
Best Regards
Dennis

Hi Dennis, sorry missed the notification on that issue. I agree and issue is fixed in #10


Pdi 18555

:white_check_mark: Build finished in 35m 22s
Build command:
mvn clean verify -B -e -Daudit -amd -pl core,engine

:ok_hand: All tests passed!
Tests run: 4765, Failures: 0, Skipped: 7    Test Results

:information_source:  This is an automatic message

:white_check_mark: Build finished in 36m 9s
Build command:
mvn clean verify -B -e -Daudit -amd -pl core,engine

:ok_hand: All tests passed!
Tests run: 4765, Failures: 0, Skipped: 7    Test Results

:information_source:  This is an automatic message

:white_check_mark: Build finished in 36m 33s
Build command:
mvn clean verify -B -e -Daudit -amd -pl core,engine

:ok_hand: All tests passed!
Tests run: 4766, Failures: 0, Skipped: 7    Test Results

:information_source:  This is an automatic message


Cannot change url after component initialization

Hi,
I'm trying to get an uploader to work. However in my API the URL for the file upload is dependent on the parent object ID. I've added a property that contains the ID and when the upload happens the options object contains the correct URL, but the actual upload does not.
How can I set the upload url at the time the upload starts?

https://github.com/jkuri/ng2-uploader/pull/84