Protect mutations on field using @connection based on ownerField in source object

Which Category is your question related to?
GraphQL API
Amplify CLI Version
4.50.0
What AWS Services are you utilizing?
AppSync
Provide additional details e.g. code snippets
Assuming I have this schema:
type Organiser
  @model
  @auth(rules: [{ allow: owner }, { allow: owner, ownerField: "admins" }]) {
  id: ID!
  admins: [ID]
  name: String!
  events: [Event] @connection(name: "OrganiserEvents")
}

type Event
  @model
  @auth(rules: [{ allow: public, operations: [read] }]) {
  id: ID!
  name: String!
  organiser: Organiser @connection(name: "OrganiserEvents")
}

How might I prevent users from creating/updating/deleting an Event unless they belong to the owner or admins field in Organiser?
The closest example I've found is around field-level authorization, for example in the section Protect mutations such that certain fields can have different access rules than the parent model on this page https://docs.amplify.aws/cli/graphql-transformer/auth#field-level-authorization but this of course would not work for a field with a @connection resolver.
Many thanks!
EDIT:
I also require public read access to Events directly rather than going through Organiser.

@jroebu14 I don't know if that was clear from the docs or now, but the key is to disable the queries on the child model Event since that way you can only access Events through the parent Organiser so ownership based protection will be enforced in the generated resolvers.
I see that you require public read access to Events directly, is that something you require or going through Organiser would also work to get those records?

@attilah thank you for getting back to me.

I don't know if that was clear from the docs or now, but the key is to disable the queries on the child model Event

Oh ok. Tbh I read that as an optional thing that you could do rather than something that is required for ownership based protection to be enforced in the generated resolvers. That's very cool. Thanks!

I see that you require public read access to Events directly, is that something you require or going through Organiser would also work to get those records?

Going through the Organiser wouldn't be ideal in my case. Is there a way to also enable public read access to Events directly?

@attilah while I waited on an answer to my question I got things working by disabling mutations on the child model Event and adding a createEvent mutation type with a custom lambda resolver that checks the admins field on Organiser.
e.g.
type Mutation {
  createEvent(
    id: ID!
    name: String!
    eventOrganiserID: ID!
  ): Event @function(name: "events-${env}")
}

Using @function is always a good escape hatch / solution since you get the full control which has its pros/cons of course, if that is the preferred solution it will fully work for you.
Regarding querying Events directly, you can add a named @key directive, which will generated a query for you and you can use the referenced key arguments to do filtering/sorting.

Regarding querying Events directly, you can add a named @key directive, which will generated a query for you and you can use the referenced key arguments to do filtering/sorting.

@attilah makes sense. Thanks very much that's really useful. I'll give this a try tomorrow 🙂
I think I'd end up with something like this then:
type Organiser
  @model
  @auth(rules: [{ allow: owner }, { allow: owner, ownerField: "admins" }]) {
  id: ID!
  admins: [ID]
  name: String!
  events: [Event]
    @connection(name: "OrganiserEvents")
    @auth(rules: [{ allow: owner, ownerField: "admins" }])
}

type Event
  @model(queries: null)
  @key(
    name: "byStartDate"
    fields: ["queryName", "startDate"]
    queryField: "eventsByStartDate"
  )
  @auth(rules: [{ allow: public, operations: [read] }]) {
  id: ID!
  queryName: String!
  name: String!
  organiser: Organiser @connection(name: "OrganiserEvents")
}

One last question on this issue I have is around having the same ownership based protection from Organiser enforced on child models of Event.
For example, see the child model of Event called Things:
type Organiser
  @model
  @auth(rules: [{ allow: owner }, { allow: owner, ownerField: "admins" }]) {
  id: ID!
  admins: [ID]
  name: String!
  events: [Event]
    @connection(name: "OrganiserEvents")
    @auth(rules: [{ allow: owner, ownerField: "admins" }])
}

type Event
  @model(queries: null)
  @key(
    name: "byStartDate"
    fields: ["queryName", "startDate"]
    queryField: "eventsByStartDate"
  )
  @auth(rules: [{ allow: public, operations: [read] }]) {
  id: ID!
  queryName: String!
  name: String!
  organiser: Organiser @connection(name: "OrganiserEvents")
  things: [Thing] @connection(name: "EventThings") # I would like this protected by the ownerField "admins" in Organiser
}

How would this be possible? Would I also have to add the child model of Event to Organiser with the @auth directive?

Regarding querying Events directly, you can add a named @key directive, which will generated a query for you and you can use the referenced key arguments to do filtering/sorting.

@attilah makes sense. Thanks very much that's really useful. I'll give this a try tomorrow 🙂
I think I'd end up with something like this then:
type Organiser
  @model
  @auth(rules: [{ allow: owner }, { allow: owner, ownerField: "admins" }]) {
  id: ID!
  admins: [ID]
  name: String!
  events: [Event]
    @connection(name: "OrganiserEvents")
    @auth(rules: [{ allow: owner, ownerField: "admins" }])
}

type Event
  @model(queries: null)
  @key(
    name: "byStartDate"
    fields: ["queryName", "startDate"]
    queryField: "eventsByStartDate"
  )
  @auth(rules: [{ allow: public, operations: [read] }]) {
  id: ID!
  queryName: String!
  name: String!
  startDate: String!
  organiser: Organiser @connection(name: "OrganiserEvents")
}

I tried this out but unfortunately I get an error Not Authorized to access createEvent on type Mutation.

I don't see why you need 2 owner rules for Organiser and also no need for the @auth on the field as fields are inheriting that from the type level even for connections IIRC. Breaking down the root issue: Event does not have an owner field, so that is like missing data to enforce ownership. Another approach would be to manage the two entities separately.
First I'd make ownership working correctly and then enhance the schema with modifications for @key and read only public access.
type Organiser
  @model
  @auth(rules: [{ allow: owner, ownerField: "admins" }]) {
  id: ID!
  admins: [ID]
  name: String!
  events: [Event]
    @connection(name: "OrganiserEvents")
}

type Event
  @model(queries: null)
  id: ID!
  queryName: String!
  name: String!
  startDate: String!
  organiser: Organiser @connection(name: "OrganiserEvents")
}

Check if this would work for your use case.

Thanks for your example schema @attilah
Unfortunately I don't think CreateEvent mutations are protected though. This is how I tested after making the schema changes and pushing:

I go to the AWS Console in AppSync queries UI
I log in with Cognito User Pools (account A)
I create an Organiser and then create an Event with the generated eventOrganiserId
I query with listOrganisers and can see 1 event in the events field
I logout of account A and login with a different account (account B)
I am able to create an Event using the same eventOrganiserId
I query with listOrganisers and the events field on Organiser is empty
I logout of account B and login with account A
I query with listOrganisers and can see 2 events in the events field

I would expect not to be able to create an Event with account B using the eventOrganiserId that was generated by creating an Organiser with account A and to then see this event when logged in with account A
I may be completely misunderstanding something though.


Update list.txt (bridge_data_v2)

It seems that the content of list.txt does not match the current directory structure of bridge_data_v2.

Hello, thanks for your contributions @dhkim0225 ! I noticed the term "first_date_in_folder" is mentioned in list.txt (bridge_data), but I’m unsure whether it refers to the newest or oldest date in the folder.
Additionally, I couldn’t find specific instructions about the number of frames, video resolution, or other settings for evaluation. Should we just follow the approach in preprocessing_script.py for these parameters?


Update split.js

just add ending ";" to stop error when min and pack with other js files

Thanks @cenfun! New release added with the changes.


Narrow subtype-reduction-prone unions to their narrowest constituent

Bug Report
Type narrowing doesn't seem to take into account an assignment I made to ensure the variable has the right type.
Maybe related? https://github.com/microsoft/TypeScript/issues/43584#issuecomment-816932485

🔎 Search Terms
type narrowing assignment
🕗 Version & Regression Information
4.5.4

This is the behavior in every version I tried, and I reviewed the FAQ for entries about "type narrowing"

⏯ Playground Link

Playground Link
💻 Code

declare let a: object | any[] | undefined

if (a === undefined) {
    a = [] // I expect this line to have TS understand that a is any[] from now on
} else if (!Array.isArray(a)) {
    throw new Error()
}
[...a] // complains here because a is object | any[]

🙁 Actual behavior
a has type object | any[]
🙂 Expected behavior
a to have type any[]

This is expected; arrays are assignable to object.

@fatcerberus while it might be the case, I don't see how that makes it any less unexpected?
Or am I wrong to expect that since I explicitly pass an array the typings should narrow to that?
I tried a = [] as const or a = [] as any[] and still get the same issue, it really feels counter-intuitive.

[] is both a valid any[] and a valid object.  Therefore TS can't narrow away the object.  You're mistakenly assuming object means "any non-array object" but it actually means "any object at all".  In fact, because object is a supertype of any[], the compiler is well within its rights to completely forget about the any[] part of the union, which it will do in certain cases (called subtype reduction):

In general, having overlapping types in a union is going to give you a bad time.

You could write
declare let a: { push?: never } | any[] | undefined

if (a === undefined) {
    a = [] // I expect this line to have TS understand that a is any[] from now on
} else if (!Array.isArray(a)) {
    throw new Error()
}

Subtype-reducing unions aren't great but it seems like we could fix the narrowing-on-assignment logic to do a subtype reduction on any resulting union, since that's assured to be sound.

You're mistakenly assuming object means "any non-array object" but it actually means "any object at all".

@fatcerberus I very much understand this, hence why we can do the following:
const b: any[] = []
const c: object = b

What I think isn't ergonomic is not narrow the type to what's being assigned explicitly:
let d: object | any[] | undefined
d = []
takeArray(d) // should work, currently doesn't

But @RyanCavanaugh's suggestion works!
let d: { push?: never } | any[] | undefined
d = []
takeArray(d) // works

@fatcerberus thank you for explaining how TypeScript currently sees this scenario but no matter what it does, the point of my issue is that maybe there would be something to change so that it is more ergonomical.

the point of my issue is that maybe there would be something to change so that it is more ergonomical

Indeed, and I agree this is less than ergonomic.  Note @RyanCavanaugh's renaming of the issue which is one way this could be solved.  It's just that you posted this as a bug report while the observed behavior actually falls out naturally from the rules of the type system, so it seemed like a misunderstanding that I was trying to clear up (because fixing this adds yet another ad-hoc rule to type inference/narrowing that's not based purely on assignability, and IMO type inference in TS is way too ad-hoc as it is).  Apparently Ryan agrees with you that it's a bug though so... yeah 😛


Thoughts on "HTML Signing Profile"?

https://www.w3.org/2007/11/h6n/
I'm not a fan of the entire thing, but, it does seem like it could possibly be safer:
at the moment, there is 3 separate parsers all working on the same file: the minifier parser (to be removed once chrome is fixed though), the browser parser, and the parser to find the signature. If there is a mismatch for any of those, then that's an opportunity for something to potentially be snuck through
for something based on HTMLSP, the process would instead be: the HTML page has a link to a file providing proof of the integrity of the document, the file signing the document explicitly states the URL(s) and their hashes, and then that list of urls and hashes gets signed.
As a result, only 1 parser is doing work (The browser's parser can be used to find the link, without executing javascript or fetching resources via DOMParser, however this might cause other issues), downsides of this are that it can cause slowdown (probably too much slowdown without http2 / server-push)
Another thought would be to try and embed a signature into the HTTP headers, though there might not be enough space
obviously I wouldn't suggest such suffering as using XMLDSIG as they suggest, if JSON were to be picked instead, making a canonical version of the SigningInfo block would be a whole lot easier.
And it would obviously complicate the implementation a lot

I guess https://www.w3.org/2007/11/h6n/ would be implemented in browsers, making this add-on obsolete though.

@rugk, it doesn't look like it ever will. It's been over a decade. This plugin "solves" adoption by bypassing the browser committees altogether. Let's first get widespread adoption and then make a standard. :)
@Summertime, I agree with your comment regarding the 3 parsers. As you said, the first one will be dropped once Chrome implements the needed API. I'm even considering making it into 2 signatures one with the minifier and one without (for browsers that support this API) so at least Firefox users are safer. It shouldn't be too much work and while I was initially against two code paths, I think the benefits outweigh the costs. Additionally, if you take a look at #18, you'll see that moving the signature to a meta tag is planned (which also involve changing to the browser's parser) which solves your other concern. Making all of the chain to use the save parser.
I'm very much against having any external files due to performance and complexity. We have to block page load when checking the signature, so depending on another network request would be problematic.
I'm against HTTP headers because it means deployment is much more difficult, or in some cases (e.g. Github pages) impossible. At the moment you can just serve a simple HTML file and get signature checks. This is not the case with HTTP headers.
In summary, I don't really have thoughts on the standard, but I'm against external files, using headers and etc. With that being said, many of your concerns are valid, though are already addressed in other tickets/PRs. I'm therefore closing this issue, as I think I answered your questions and I don't think there's anything more to add. Please reopen if you feel like this is not the case.
Thanks!


redpanda frame read errors with early eof

rskafka fails to read frames when talking to the latest redpanda release (v22.2.1). It is unclear if this is a redpanda bug, or rskafka - I can't see any reports in the redpanda issue tracker, and rskafka doesn't progress at all, so I suspect it is us as redpanda would quickly have issues filed if it didn't work at all!
Log snippet from the IOx tests where I discovered the problem:
2022-08-19T15:49:53.188690Z  INFO rskafka::connection: Establishing new connection url="<IP_ADDRESS>:52575"
2022-08-19T15:49:53.194054Z  WARN rskafka::connection: Failed to connect to broker e=cannot sync versions: Request error: Connection is poisoned: Cannot read framed message: Cannot read data: early eof
2022-08-19T15:49:53.194124Z  INFO rskafka::backoff: request encountered non-fatal error - backing off e=Failed to connect to any broker, backing off request_name="broker_connect" backoff_secs=0
2022-08-19T15:49:53.296358Z  INFO rskafka::connection: Establishing new connection url="<IP_ADDRESS>:52575"
2022-08-19T15:49:53.300379Z  WARN rskafka::connection: Failed to connect to broker e=cannot sync versions: Request error: Connection is poisoned: Cannot read framed message: Cannot read data: early eof
2022-08-19T15:49:53.300421Z  INFO rskafka::backoff: request encountered non-fatal error - backing off e=Failed to connect to any broker, backing off request_name="broker_connect" backoff_secs=0
2022-08-19T15:49:53.489981Z  INFO rskafka::connection: Establishing new connection url="<IP_ADDRESS>:52575"
2022-08-19T15:49:53.499777Z  WARN rskafka::connection: Failed to connect to broker e=cannot sync versions: Request error: Connection is poisoned: Cannot read framed message: Cannot read data: early eof
2022-08-19T15:49:53.499963Z  INFO rskafka::backoff: request encountered non-fatal error - backing off e=Failed to connect to any broker, backing off request_name="broker_connect" backoff_secs=0
2022-08-19T15:49:53.631317Z  INFO rskafka::connection: Establishing new connection url="<IP_ADDRESS>:52575"
2022-08-19T15:49:53.642401Z  WARN rskafka::connection: Failed to connect to broker e=cannot sync versions: Request error: Connection is poisoned: Cannot read framed message: Cannot read data: early eof
2022-08-19T15:49:53.642451Z  INFO rskafka::backoff: request encountered non-fatal error - backing off e=Failed to connect to any broker, backing off request_name="broker_connect" backoff_secs=0
2022-08-19T15:49:54.026461Z  INFO rskafka::connection: Establishing new connection url="<IP_ADDRESS>:52575"
2022-08-19T15:49:54.037168Z  WARN rskafka::connection: Failed to connect to broker e=cannot sync versions: Request error: Connection is poisoned: Cannot read framed message: Cannot read data: early eof
2022-08-19T15:49:54.037317Z  INFO rskafka::backoff: request encountered non-fatal error - backing off e=Failed to connect to any broker, backing off request_name="broker_connect" backoff_secs=0
2022-08-19T15:49:54.372955Z  INFO rskafka::connection: Establishing new connection url="<IP_ADDRESS>:52575"
2022-08-19T15:49:54.383209Z  WARN rskafka::connection: Failed to connect to broker e=cannot sync versions: Request error: Connection is poisoned: Cannot read framed message: Cannot read data: early eof
2022-08-19T15:49:54.383369Z  INFO rskafka::backoff: request encountered non-fatal error - backing off e=Failed to connect to any broker, backing off request_name="broker_connect" backoff_secs=0
2022-08-19T15:49:54.570851Z  INFO rskafka::connection: Establishing new connection url="<IP_ADDRESS>:52575"
2022-08-19T15:49:54.584100Z  WARN rskafka::connection: Failed to connect to broker e=cannot sync versions: Request error: Connection is poisoned: Cannot read framed message: Cannot read data: early eof
2022-08-19T15:49:54.584243Z  INFO rskafka::backoff: request encountered non-fatal error - backing off e=Failed to connect to any broker, backing off request_name="broker_connect" backoff_secs=0
2022-08-19T15:49:54.726602Z  INFO rskafka::connection: Establishing new connection url="<IP_ADDRESS>:52575"
2022-08-19T15:49:54.740463Z  WARN rskafka::connection: Failed to connect to broker e=cannot sync versions: Request error: Connection is poisoned: Cannot read framed message: Cannot read data: early eof
2022-08-19T15:49:54.740640Z  INFO rskafka::backoff: request encountered non-fatal error - backing off e=Failed to connect to any broker, backing off request_name="broker_connect" backoff_secs=0
2022-08-19T15:49:55.092203Z  INFO rskafka::connection: Establishing new connection url="<IP_ADDRESS>:52575"
2022-08-19T15:49:55.113559Z  WARN rskafka::connection: Failed to connect to broker e=cannot sync versions: Request error: Connection is poisoned: Cannot read framed message: Cannot read data: early eof
2022-08-19T15:49:55.113719Z  INFO rskafka::backoff: request encountered non-fatal error - backing off e=Failed to connect to any broker, backing off request_name="broker_connect" backoff_secs=0
2022-08-19T15:49:55.822818Z  INFO rskafka::connection: Establishing new connection url="<IP_ADDRESS>:52575"
2022-08-19T15:49:55.836358Z  WARN rskafka::connection: Failed to connect to broker e=cannot sync versions: Request error: Connection is poisoned: Cannot read framed message: Cannot read data: early eof
2022-08-19T15:49:55.836520Z  INFO rskafka::backoff: request encountered non-fatal error - backing off e=Failed to connect to any broker, backing off request_name="broker_connect" backoff_secs=0
2022-08-19T15:49:56.760850Z  INFO rskafka::connection: Establishing new connection url="<IP_ADDRESS>:52575"
2022-08-19T15:49:56.770216Z  WARN rskafka::connection: Failed to connect to broker e=cannot sync versions: Request error: Connection is poisoned: Cannot read framed message: Cannot read data: early eof
2022-08-19T15:49:56.770301Z  INFO rskafka::backoff: request encountered non-fatal error - backing off e=Failed to connect to any broker, backing off request_name="broker_connect" backoff_secs=2

See #168.

I captured this handshake in wireshark while I was trying to figure out what was going on:

You can see rskafka send over what looks like a valid ApiVersions request (wireshark can decode it, which suggests it is legit) but then the server ACKs and immediately tears down the connection.

https://github.com/redpanda-data/redpanda/pull/4513 looks like it might be related

@domodwyer could you attach the Wireshark dump to this ticket? (you may need to put it into a zip file, otherwise GitHub doesn't accept it)


Lowercase lot updates

Rename and update frameworks component with new lot depends
Show full lot name in service list tables
Instead of showing slug abbreviation display the full lot name
in service lists. This is a temporary solution before services
are split between different lot pages.
Get lot question directly from loader for G7 submission page
G7 draft creation requires the lot question form field to be rendered,
since lot was removed from the service summary sections in the last
framework update the question needs to be loaded separately.

Looks good - the service listing page still works for both old and new API, so given that no-one is creating drafts this should be good to merge I think :+1:

I'm getting a few template errors on the following pages:

/suppliers/frameworks/g-cloud-7/submissions/create
/suppliers/frameworks/g-cloud-7/services

They're to do with the framework_slug argument not being passed to some routes by the url_for helper.
I found adding the argument to the following lines fixed it:

https://github.com/alphagov/digitalmarketplace-supplier-frontend/blob/master/app/templates/frameworks/services.html#L139
https://github.com/alphagov/digitalmarketplace-supplier-frontend/blob/master/app/templates/services/service_submission.html#L32

Think it was left out when we made the framework less hard-coded.


Disable auto run

https://github.com/axonops/axonops-workbench-cassandra/releases/tag/0.1.1-internal-20240912-10
This needs to be successful before we merge it

I found an issue with the latest electron-builder, closing for now!


Improve to install windows binary

Currently, users manually download windows binary from GitHub releases, because sh.poac.pm can't install it.

I do not support Windows currently.


Add write permissions for issues

Attempts to fix #30995

@BillWagner This fixed the problem. See the following issue, which was closed. Yay!
https://github.com/dotnet/docs/issues/29928


add example 09_ssbo

Description
Add another example for compute shader.
 Advancing and bouncing ball calculations are done with compute shader using ssbo.
List of changes

added ...
example 09_compute_shader_ssbo

Thank you!


Running virtual examples with React 18 createRoot causes rendering lag

Describe the bug
I have tested the examples/react/fixed example with React 18, so changed the init code to use the new createRoot / render API:
ReactDOM.render(   , document.getElementById('root'))
=>
ReactDOM.createRoot( document.getElementById('root')).render(   )
Before: the scrolling is super smooth,
After: you can notice an important lag ( white flickering) while scrolling through rows or grid.
Is this caused by the concurrent rendering of React 18?
Your minimal, reproducible example
https://react-ts-mfeisb.stackblitz.io
Steps to reproduce

Run the example in dev mode

Expected behavior
Smooth scrolling
How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform
Windows 10 + Chrome 113
tanstack-virtual version
3.0.0-beta.54
TypeScript version
4.4.2
Additional context
No response
Terms & Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I understand that if my bug cannot be reliable reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.

@bwamsellem kinda looks ok for me, can you create small clip showing the issue.

Is this caused by the concurrent rendering of React 18?

no, i don't think so.

Thanks. Do you reproduce the issue ?

Yes, I will do.

Here are two video clips showing the normal behavior (old React API) , and the slow one ( new React 18 API).
https://github.com/TanStack/virtual/assets/114481349/0bb6e1fb-f09d-411f-b22c-f87d7d60d9a5
https://github.com/TanStack/virtual/assets/114481349/8d06248b-4265-4202-81e6-0e32ef4375cc

Having same lag issue, table looks like it's not virtualized at all.

I faced that problem months ago. My project makes intensive use of virtualization to create Excel-like spreadsheets and I switched from react-virtualized to @tanstack/virtual, and I had to make some adaptations to avoid unnecessary renders.
Anyway, for the problem you mention, my solution involves using a modified version of @tanstack/react-virtual (it's just a file without relative references):
Source code is here:
Instead of
import { useVirtualizer } from '@tanstack/react-virtual';

I use
import { useVirtualizer } from './react-virtual.custom';

And I only make a small change to invoke rerender from react-dom's flushSync:
Original:
const resolvedOptions: VirtualizerOptions<TScrollElement, TItemElement> = {
  ...options,
  onChange: (instance) => {
    rerender()
    options.onChange?.(instance)
  },
}

Modified:
import { flushSync } from 'react-dom'

const resolvedOptions: VirtualizerOptions<TScrollElement, TItemElement> = {
  ...options,
  onChange: (instance) => {
    queueMicrotask(() => {
      flushSync(() => {
        rerender()
      })
    })
    options.onChange?.(instance)
  },
}

I believe that the entire onChange callback or the rerender call should be overridable by the user. I am not an expert in Typescript and I am not clear about the best approach, but I will create a pull request in case any maintainer finds the change interesting to add.

I faced that problem months ago. My project makes intensive use of virtualization to create Excel-like spreadsheets and I switched from react-virtualized to @tanstack/virtual, and I had to make some adaptations to avoid unnecessary renders.
Anyway, for the problem you mention, my solution involves using a modified version of @tanstack/react-virtual (it's just a file without relative references):
Source code is here:
Instead of
import { useVirtualizer } from '@tanstack/react-virtual';

I use
import { useVirtualizer } from './react-virtual.custom';

And I only make a small change to invoke rerender from react-dom's flushSync:
Original:
const resolvedOptions: VirtualizerOptions<TScrollElement, TItemElement> = {
  ...options,
  onChange: (instance) => {
    rerender()
    options.onChange?.(instance)
  },
}

Modified:
import { flushSync } from 'react-dom'

const resolvedOptions: VirtualizerOptions<TScrollElement, TItemElement> = {
  ...options,
  onChange: (instance) => {
    queueMicrotask(() => {
      flushSync(() => {
        rerender()
      })
    })
    options.onChange?.(instance)
  },
}

I believe that the entire onChange callback or the rerender call should be overridable by the user. I am not an expert in Typescript and I am not clear about the best approach, but I will create a pull request in case any maintainer finds the change interesting to add.

It doesn't work with useWindowVirtualizer, and I still experience white flickering when scrolling the screen

If this is still an issue for you, please comment here and tag me and I'll reopen the issue and work on it. Thanks!

@tannerlinsley Will you fix it in the future updates?
Current tanstack-virtual examples use React 17, and this issue still present for React 18 as shown on 2 clips by bwamsellem
So the current solution for React 18 is use deprecated render method or make custom changes in package as suggested above

@tannerlinsley Will you fix it in the future updates? Current tanstack-virtual examples use React 17, and this issue still present for React 18 as shown on 2 clips by bwamsellem So the current solution for React 18 is use deprecated render method or make custom changes in package as suggested above

This is interesting issue, like dynamic examples is using react 18 and works correct https://tanstack.com/virtual/v3/docs/examples/react/dynamic
let see, planing to update other examples and simplify them a bit.

@1MaTo as mention before this is tricky issue, there are many reasons why it's happening

like browse internal implementation ( noticed that currently Firefox doing best job here )
interesting caveats with chrome, for dynamic case when we use resize observer to watch items sizes the scroll handle lag behind #421
hardware performance, when running low on battery seeing more white space as browser can't keep up with rendering

Going back to react 18, as @manelio noticed we can use flushSync, but let's use it only when scrolling, checkout #608
Overall it's pretty hard to test, any help would be greatly appreciated.

Source code is here:

Thanks for sharing but this link has expired. Any chance you could point future readers to the example? Thank you very much!


Expense-Tracker

Expense Tracker #68
Briefly explain your program logic -

Use the Chart.js library to create interactive and visually appealing charts to display expense data.
Use a speech recognition system to convert voice input into text.

Screenshots -

https://github.com/SarthakKeshari/calc_for_everything/assets/122152312/9f6dfc62-9ac7-4c3d-b0a6-c418b157dba8

By raising this PR I affirm that -

[x] My code follows the guidelines of this project.

[x] I have performed a self-review of my own code.

[x] I have commented my code.

[x] My code gives the correct output.

[x] I affirm that I strictly follow contributing guidelines and code of conduct.

Considering the efforts, you have put in, upgrading issue status from medium -> hard 📈

Hey @capsy14,
Kindly attach package.json and package-lock.json too for this PR.


draw window should be saved globally and not to profile

when implementing profiles the draw window settings were moved into the profile accidentially. these settings should be on the global config level instead.

fixed in https://github.com/aulus-asina/resonant/commit/69968f45e80d5c5e5c3bae06da6eea5fff5b8931


MINOR: Correct Connect docs on connector/task states

The DESTROYED state is represented internally as a tombstone record when running in distributed mode ([1]) and by the removal of the connector/task from the in-memory status map when running in standalone mode ([2], [3]). As a result, it will never appear to users of the REST API, and we should remove mention of it from our docs so that developers creating tooling against the REST API don't write unnecessary logic to account for that state.
[1] - https://github.com/apache/kafka/blob/3dacdc5694da5db283524889d2270695defebbaa/connect/runtime/src/main/java/org/apache/kafka/connect/storage/KafkaStatusBackingStore.java#L318
[2] - https://github.com/apache/kafka/blob/3dacdc5694da5db283524889d2270695defebbaa/connect/runtime/src/main/java/org/apache/kafka/connect/storage/MemoryStatusBackingStore.java#L64-L65
[3] - https://github.com/apache/kafka/blob/3dacdc5694da5db283524889d2270695defebbaa/connect/runtime/src/main/java/org/apache/kafka/connect/storage/MemoryStatusBackingStore.java#L77-L78
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@mimaison do you have time for this quick change?

We should also update the Connect metrics section that mentions DESTROYED as a possible state.

Good point, I've removed mention of the DESTROYED state from that section as well.
I've also updated both to include the newly-introduced RESTARTING state since it was missing.
We could go further and remove the connector-destroyed-task-count JMX metric, but that might be overboard since (even though it's never going to be anything except 0 in practice) it is technically public interface and may require a KIP or at least a ping on the dev mailing list to get rid of.
We could possibly add a note to the docs stating that this metric is currently never updated to be anything except 0. Thoughts?


Cannot create backup via webhook

Hi there,
thanks for the great plugin.
I am trying to call janitor's backup command via a webhook, but it throws an error. When I just insert the url in the browser, I get this:

The setup with the secret generally seems to work (if I mistype the secret, I get a 401 error) and I can also create the backup via panel button, but via webhook it gives me this error. Any idea what I could do? Thanks!

fixed in https://github.com/bnomei/kirby3-janitor/commit/e141704c1600856f5cec6d50f2b31f449a3c71a4

Thanks, this fixed it indeed.
My plan was to use wget or curl to actually download the resulting backupzip file, I missed that using the webhook just generates it. Could you let me know if janitor also allows to download this file after generation? If so, how could I go about this?


Update line number of allowed dialyzer error

Running make check after make debug gives an error due to the
following:
make: [dialyzer_warnings] Error 2 (ignored)
--- dialyzer_reference  2015-05-11 17:21:38.000000000 -0400
+++ dialyzer_warnings   2015-05-11 17:31:42.000000000 -0400
@@ -3 +3 @@
-rebar_utils.erl:198: Call to missing or unexported function
escript:foldl/3
+rebar_utils.erl:222: Call to missing or unexported function
escript:foldl/3

Indeed that call to escript:foldl/3 changed from line 198 to 222 via
https://github.com/rebar/rebar/commit/a04530124ffa16c50205695d35f9274107e2fa42
This update makes the corresponding change to the line number in
dialyzer_reference.
This was noticed while working on
https://github.com/rebar/rebar/pull/336

+1


[NuGet] Add NuGetUpdater Discover command

This command will return the information needed to replace the NuGet file_parser.rb. It also provides additional information which can inform how the update_checker and file_updater. In particular it returns the set of TFMs each project uses and dependency information per project.
TODO:

[ ] Update Ruby side

[x] Invoke from file_parser
[x] Remove ruby classes that will no longer be needed
[x] Use the discovery results to supplement update_checker and file_updater
[ ] Update tests as necessary (dependency return order won't be the same)
[ ] If there is verbose logging, should we log the discovery.json

[ ] Port tests from Ruby side

Smoke tests are failing due to new, more correct behavior. Previously, we would look at dependency nuspec files to determine the transitive dependencies, but did not take into account the TFM of the projects themselves. Dependencies in the smoke tests are built for netstandard1.6 and are pulling in the NETStandard.Library 1.6.x. However, the projects themselves are netstandard2.0 which means when MSBuild/NuGet evaluate them they bring in NETStandard.Library 2.x, which has many fewer sub-dependencies.


[docker-compose] Use diem submodule validator testnet docker-compose

Now that the docker-compose in the diem repo is tested, lets use it as the source of truth

should we copy over instead of direct reference it?

my concern with copying is that it'll get out of sync again over time, i.e a change to validator or faucet could require finding and changing everywhere it's used
alternatively, what do you think about just removing the docker compose from this repo and not having one?

my concern with copying is that it'll get out of sync again over time, i.e a change to validator or faucet could require finding and changing everywhere it's used
alternatively, what do you think about just removing the docker compose from this repo and not having one?

The copy over can be adding copy file into current make gen task
When a new change happened in diem, and causes the compose file copied does not work anymore, then update diem submodule and run the gen task to copy new one.
From this codebase maintainer's point view, keep things stable and easy to start up development is better.
Thus, I think the best result probably is having these sharable docker-compose files in a small codebase, so that anyone can submodule it.
Submodule diem is not ideal, I did it for sdk codebase for making sure code generation works out of box (because it requires code from diem codebase).


Starship not building

Trying to run starship, and I'm getting an access denied error when trying to hit that URL.
sanch@Sanchits-MBP ~ % starship
resolving package graph
error: http (spilt-tea-500)
403: https://dist.tea.xyz/starship.rs/darwin/aarch64/versions.txt
sanch@Sanchits-MBP ~ % tea +starship.rs
resolving package graph
error: http (spilt-tea-500)
403: https://dist.tea.xyz/starship.rs/darwin/aarch64/versions.txt

https://github.com/teaxyz/pantry.core/actions/runs/3961998437


Add option to copy as JSX as well as HTML

Could be nice to have a "Copy as JSX" button alongside a "Copy as HTML" button.
https://github.com/mertJF/tailblocks/blob/2c321175c6cc03f741cb146779c4bdfd5f916aee/src/App.js#L301-L315
Happy to work on a PR if you're open to it.

Hi @brandonpittman, I think this is a good idea. But I don't plan to work on this for now.


STEP Multipart Import with colours and names

Multi-part STEP import introduced in #71
However, names & colours are lost in the process.
Target Outcome:
When importing a step file, retain:

[ ] object name
[ ] object material properties (just colour?)

This would be a great addition.

Agreed @Rayfoundry , I have grand plans for this.
I've noticed that most (if not all) STEP importers will pull in all geometry before you have a chance to see the hierarchy, or to choose exactly which sub-assembly you actually want to use.
When cqparts can do this, it will instantiate an import Assembly instance with a cursory scan of the file, and allow you to pick and choose what geometry you want to import.
I'm looking forward to implementing this one!

@fragmuffin Great! cqparts with it's glTF support and planned transition to python-occ (cadquery) will be a really great and versatile tool. We've recently tested some STEP files with the current freecad backend, but it didn't manage to process more complex larger files. python-occ on the other side works flawless with large complex files. Is there any build we can check out that's running on the python-occ backend already?

cqparts is a wrapper around cadquery, and before this issue is closed, cqparts doesn't offer much in addition to cadquery's STEP import.
@adam-urbanczyk has done excellent work in porting cadquery to pythonocc in their fork:
https://github.com/adam-urbanczyk/cadquery , instructions are there on how to get started.
However, cadquery doesn't support export to glTF... so if you're after a hedless import of STEP, and export to glTF, then you'll want to watch:

cqparts PythonOCC milestone, &/or
#49 : Port glTF exporter to cadquery (will be limited to exports of single meshes)

I had a quick look at https://www.rayfoundry.de/ , what you're doing looks fascinating!
Are you considering using cqparts for your application? I'd like to know how I can help :+1:

@Rayfoundry

Is there any build we can check out that's running on the python-occ backend already?

There are instructions for setting up a CadQuery Anaconda environment that I think is Python-OCC only in the CQ-editor installation instructions. I've been using that environment some, but I'm not sure exactly how @adam-urbanczyk built it. cqparts is not supported yet though. I think that will have to wait on #98 to be resolved.

@Rayfoundry  @jmwright  this env is based on the cq-occ conda package:
https://anaconda.org/CadQuery/cadquery-occ
Simplest way for now is indeed to use the env spec from here: https://github.com/CadQuery/CQ-editor/blob/master/cqgui_env.yml
Or just run this (for pure cq-occ w/o GUI):
conda create -n test_cq -c pythonocc -c oce -c conda-forge -c dlr-sc pythonocc-core=0.18 pyparsing mock;

I think BTW that  @CapableRobot did some experiments with cq/cqparts based on pythonocc
https://github.com/CapableRobot/cadquery
https://github.com/CapableRobot/cqparts

As I write this, I'm waiting minutes for a 60MB .step to import to FreeCAD.
The import locks up the entire UI while running (I'm running an i7 with 8G RAM)
I think we can do better.
Example use-case:
import a large multi-part .step file as a cqparts.Assembly, then export it as .gltf.
from cqparts import Assembly

my_thingy = Assembly.importer('step')('big_file.step')
my_thingy.exporter('gltf')('thingy.gltf')

# or in 1 line
Assembly \
    .importer('step')('big_file.step') \
    .exporter('gltf')('thingy.gltf')

Simplistic Solution

Import everything in the .step, create the geometry, and load it into RAM.
Recursively iterate through each cqparts.Component and export it to .gltf buffers (and, of course, the .gltf index file itself)

Smart Solution

Skim-read the .step and remember:

data: "sections" of importable geometry (save as start/end seek points in the .step file)
metadata: names, hierarchies, material data, etc.

Recursively iterate through each cqparts.Component to create the .gltf index file (if buffers aren't embedded into the .gltf file)
Recursively iterate through each cqparts.Component, populate a thread stack where each process:

creates a stream object that can be:

saved to file, or
tunnelled through http (or whatever else

stream is populated via a pipeline:

.step section import to geometry, which is passed as
geometry to generate .gltf buffer data.

Benefits

Much faster

response-time to begin exporting, or displaying on a web-app
overall

Less RAM
Error resistant : if there's an error in the .step file, that part geometry could be ignored, and an exception caught.
Could be used to service parallel network requests (1 thread per request)

This should happen after porting to OCC

Hmm... there's one problem with that...
The .gltf buffer references have min/max ranges for each axis (x/y/z). So in order to get those ranges, the entire geometry would need to be known.
I haven't looked in detail at the .step format, perhaps we'll get lucky and those ranges will be metadata.

There may be another problem with the "smart solution"

Skim-read the .step and remember:

data: "sections" of importable geometry (save as start/end seek points in the .step file)

The .step format is a sort of link-list of indexed vertices, edges, splines, faces (and so on).
Usually the indexed geometry for a single part is confined to a seekable range within the .step file, but this is a common byproduct of creating the file.
From what I understand, a .step file's content separated into lines, could (almost) be randomised and re-written, and still import the same shapes.
Alternative that may still be possible
A Skim-read could cache:

an index list: [(<step index>, <file seek>, {<referenced indexes>, ...}), ... ]
map parts to a dict: {<part uid>: <step-index>, ...}

Then to import a single part, the .step file could be fragmented; separated by tracing all referenced lines relating to that part, then "import" the fragmented .step file as a single Part.
Tasks / Questions to answer

Feasibility study:

[ ] is this plausible? can the .step be fragmented like this?
[ ] different .step version support - this will require a partial "parsing" of the .step file, how susceptible to change is the .step format?, has it's indexing & core metadata structure always been the same?

Performance test(s)

[ ] is this "smart" way going to be just as slow as a standard "import everything" approach?


PaginatedDataTable2 auto rowsPerPage based on widget height

Hello,
Does your PaginatedDataTable2 widget allow the number of rowsPerPage to be automatic based on the height of the widget (fit: FlexFit.tight) on the page?
If it doesn't allow it, this functionality would be very interesting since when making the web page or desktop app bigger (height), PaginateDataTable2 would automatically show more or fewer lines without the need for the user to change them manually.
Thank you very much for adding all these new features to the PaginatedTableView, they were very necessary.  💯 🥇
Regards,
Jose

Hi, there's no such feature at the moment, need to think of the implementation..

Many thanks Maxim.

+1
Yeah this is an actual issue on web and desktop platforms where window can be resized. When the window is resized to small size, some rows get invisible and a user cannot even scroll to them. Needing to scale back to the larger window size.

Just published 2.1.0 to pub.dev. Now there's autoRowsToHeight property on PaginatedDataTable2, an example is also provided/updated (https://maxim-saplin.github.io/data_table_2/)

Marvelous. I love.
However, there is a serious problem that needs to be corrected, since in my case it causes me to not be able to use the new autoRowsToHeight property.
Changing the number of rows does not raise the onRowsPerPageChanged event.
I use it to fetch records from a nodejs server.
It would also be very interesting if the execution of onRowsPerPageChanged could be debounced, that is, that the onRowsPerPageChanged event does not execute for each change of rowsPerPage in the case of several property changes very quickly.
Check out the following video: https://recordit.co/JT0UWm2y6x
If you have any questions about what I have told you, tell me.
Thank you very much for your hard work.
Regards,
Jose


Support recording via browser proxying or an existing proxy stub

Currently when starting recording it's necessary to provide a target URL (otherwise the API will throw a validation error). However, it's often desirable to record using an existing proxy stub or via browser proxying (where the target is determined by the originating request).
The validation rule should be removed and a note added to record page indicating that it's possible to leave the target blank provided you've made other arrangements.

@tomakehurst I can take this up and work on the same. You can assign this to me.


fix search service - [closed]

In GitLab by @luotian-github on Sep 20, 2017, 02:15
Merges devs -> dev
fix search service

In GitLab by @wknet123 on Nov 13, 2019, 10:00
closed


Update transformers for auto-gptq support, drop CUDA deps when unused

Before removing from draft:

[ ] Smoketest the various playground targets on Linux
[ ] Smoketest the various playground targets on Mac
[ ] Test for regressions on MacOS
[ ] Test whether libc code is needed on MacOS; make a noop otherwise

On further testing, this hits a bug already fixed in #198. Probably saner to fold the llama.cpp version bump into here so there's only one PR to merge.

[ ] Address regression on Linux: torch.cuda.is_available() is False even in the -all configuration.

Apologies about the amount of time this was sitting in draft; I quite forgot that it wasn't finished earlier.

Awesome, thanks.


Bug in executemany when trying to insert NULL value into a column defined as an INT

There seems to be a bug in the executemany function when trying to insert NULL value into column defined as an INT.
For example, if i have a table with 3 columns (col A: int, col B:string, col C: double) and I am trying to insert 'NULL,"Hello World",2,35' using COPY FROM, the executemany throws an exception.
When I try to omit NULL and use the empty string instead of the NULL, (Example: ',"Hello World",2,35'), the code works.

I'm not sure if I understand your example right, but in both cases there seem to be several issues with your query to start with.  2,35 is not standard notation for a double in python, this should be 2.35.  As far as I am aware, there is no mapping from NULL to anything. I can only speak from the psycopg2 side of this problem, but for this mapping an empty string or the python None object is usually used.

I believe this issue is a duplicate of #181.


[WPF] UserControl doesn't fill the DeskBand

Hey,
I really like this project, especially its WPF-Example. When I set the MinWidth, I get DeskBand with the Size I need.
But there's a problem: The UserControl isn't correctly sized to the bounds of its parent. Is there a way to achieve this? I already tried to modify the CSDeskBand.cs, but that didn't do anything:
public IntPtr Handle
{
    get
    {
        if (_rootVisual.Child == null)
        {
            _rootVisual.Child = UIElement;
            _rootVisual.Child.ClipToBounds = true;
            _rootVisual.ClipToBounds = true;
        }

        return HwndSource.Handle;
    }
}

Do you have any other ideas?

Okay, I think I found a way by myself. The answer https://github.com/dsafa/CSDeskBand/issues/25#issuecomment-536347051 was helping me here. I think by using the overrides, it should crash at the next restart.
`
protected override void OnGotFocus(RoutedEventArgs e)
{
base.OnGotFocus(e);
SetHeightTo100Percent();
}
    protected override void OnInitialized(EventArgs e)
    {
        base.OnInitialized(e);
        SetHeightTo100Percent();
    }

    private void SetHeightTo100Percent()
    {
        Height = SystemParameters.PrimaryScreenHeight - SystemParameters.WorkArea.Height;
    }`

In my opinion a better fix is described in #46 which fixes this for vertical and horizontal taskbars.


Kotlin: 39. Combination Sum

File(s) Modified: 39-Combination-Sum.kt
Language(s) Used: Kotlin.
Submission URL: _https://leetcode.com/submissions/detail/803099071/_

@Ahmad-A0 please, take a look

Thanks, @MaratKhakim!

Are you interested in becoming a collaborator for this repo?


Add rspec matcher descriptions rebase on master

@arronmabrey I rebased your branch on master, after merging some spec fixes into master. I want to see if CI is all passing while I review, which I am doing now.

Sounds good. Let me know if there are any issues. :-)


Incorrect ble_addr_t type of scanned advertisements (NimBLE) (IDFGH-12413)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.2.1 (originally perceived on v5.1.1)
Espressif SoC revision.
ESP32-S3 (QFN56) (revision v0.2)
Operating System used.
Linux
How did you build your project?
idf.py
Development Kit.
ESP32-S3-DevKitC-1
Power Supply used.
USB
What is the expected behavior?
My application connects 2 esp32s3's together over BLE. One acts as a central, the other as a peripheral. I use the NimBLE host.
After a bond has been established, the central will only connect with an advertiser that is in the stored bonds list. This is done by comparing the advertiser address with the addresses in the bond list.
Central and peripheral device should always reconnect automatically after disconnecting/rebooting.
What is the actual behavior?
I noticed the address check sometimes fails because the ble_addr_t MAC matches, but the type does not.
After initial pairing, the scanned advertisement packets show the correct type even after connecting/disconnecting multiple times.
Address type = 0 (BLE_ADDR_PUBLIC)
If the central reboots, the scanned advertisement packets show the correct type until a disconnect occurs. From that moment on, a different type is shown instead and my application refuses to connect to the advertiser.
Address type = 2 (BLE_ADDR_PUBLIC_ID)
A reboot of the central fixes the issue (until another disconnect happens).
I did a test where I put esp32s3 central devices in scanning mode, 1 with a stored bond to the peripheral, 1 without. Both receive the same advertisement packet but report a different address type.
So it seems that address type gets filled in incorrectly for old bonds.
I cannot reproduce the issue on the esp32, so it seems related to esp32s3 only.
Weirdly enough, if I replace any of the two devices (central or peripheral) with an esp32, I cannot reproduce the issue either. Seems to only be an issue between two esp32s3 devices.
Steps to reproduce.

Pair 2 esp32s3 devices
Reboot the central device
Reconnect the devices
Disconnect the devices
If you log the scanned packets, the central will now start showing a different address type of the scanned peripheral advertisement packets

Debug Logs.
No response
More Information.
No response

Hi @robin96c ,  can you please confirm if random address is being used ?. Can you please share the sdkconfig you using .
I tried with existing bleprph / blecent example to reproduce the issue, but didn't observe the issue.
So , can you also please some sample application that can assist in reproducing this issue ?

Hi @rahult-github
Thanks for looking into this! I'm advertising with a public address. To better reproduce the issue, I've modified the bleprph / blecent example code. The two most notable changes I had to make to trigger the issue are the following:

The connection should be "authenticated", and not just "bonded" (else the issue apparently isn't triggered). By enabling "DISPLAY YESNO" IO capabilities on both devices, an authenticated bond is made.
My sm key config differs from the example:
ble_hs_cfg.sm_our_key_dist = BLE_SM_PAIR_KEY_DIST_ENC | BLE_SM_PAIR_KEY_DIST_ID;
ble_hs_cfg.sm_their_key_dist = BLE_SM_PAIR_KEY_DIST_ENC | BLE_SM_PAIR_KEY_DIST_ID;

Afterwards the issue can be reproduced by following the steps in my original issue description. I did need to disconnect the peripheral (by power cycling it) one extra time between steps 4 and 5 before seeing the address type change. Make sure to start from devices that don't have a bond yet (erase-flash), and to test with 2 ESP32-S3 devices.
I tested this on idf v5.2.1, but in the meantime I've also tested on idf v5.3 and the issue still persists.
The modified examples, as well as the logs while running my test:
blecent-bleprph-IDFGH-12413.zip
blecent_output.txt
bleprph_output.txt


Add tooling to recompute functionSelector

functionSelector is an optional field in FunctionDefinition. In fact, it was only added in solidity 0.6.0. This is a useful entry to have, and it could be helpful to have a
getFunctionSelector(node: FunctionDefinition): string)
to help dealing with AST produced by solc 0.4 & 0.5
Given that FunctionDefinition includes the function name and function arguments, this should be too complex. It still, however, require recursive formatting of the parameters and adds a keccak256 dependency :/

It turns out that functionSelector is optional because not all kinds of functions have one. It's true that prior to 0.6 the field wasn't available, but this library is only compatible with >=0.6.
function getFunctionSelector(fnDef: FunctionDefinition): string {
  assert(fnDef.kind === 'function' && ['external', 'public'].includes(fnDef.visibility));
  return fnDef.functionSelector!;
}


Feature request - option in utf8tolatex to maintain capitalisation for BibTeX

It would be great to have an option to keep custom capitalisation for bibtex.
For example
TCP: The Capitalisation Example

would be encoded as
{TCP}: The Capitalisation Example

For now, I am using code borrowed from https://openreview-py.readthedocs.io/en/latest/_modules/tools.html#get_bibtex in combination with utf8encode:
def capitalize_title(title):
    capitalization_regex = re.compile('[A-Z]{2,}')
    words = re.split('(\W)', title)
    for idx, word in enumerate(words):
        m = capitalization_regex.search(word)
        if m:
            new_word = '{' + word[m.start():m.end()] + '}'
            words[idx] = words[idx].replace(word[m.start():m.end()], new_word)
    return ''.join(words)

bibtex_title = capitalize_title(utf8tolatex(orig_title))

Hi,
I don't understand your point.  You want an option to surround/protect some parts by braces?  My understanding is that the BibTeX entry itself should be protected...

Sorry if this wasn't completely clear. I am trying to create bibtex files programatically. Depending on the bibliography style, bibtex may generate titles in "titlecaps" or "sentence case" irrespective of the capitalisation used in the bibtex file. To avoid interfering with mandatory capitalisation (e.g. acronyms), mandatorily capitalised title parts (e.g. acronyms) should be protected by braces in bibtex files.
Let's consider this example title
AET: An exposé of titles

in the bibliography as compiled in a latex documents, this might get displayed as
AET: An Exposé of Titles

The corresponding part of the bibtex file should be
title={{AET}: An expos{\'e} of titles}

Note that using double braces would prevent bibtex from using the title capitalisation from the bibliography style and is thus not wanted.
title={{AET: An expos{\'e} of titles}}

would lead to AET: An exposé of titles in the pdf rather than AET: An Exposé of Titles
Below is a small python code to ease looking at this question:
#!/usr/bin/env python3

## Import statements
import sys
import re
from pylatexenc.latexencode import utf8tolatex

## Function to surround accronyms with braces
def capitalize_title(title):
    capitalization_regex = re.compile('[A-Z]{2,}')
    words = re.split('(\W)', title)
    for idx, word in enumerate(words):
        m = capitalization_regex.search(word)
        if m:
            new_word = '{' + word[m.start():m.end()] + '}'
            words[idx] = words[idx].replace(word[m.start():m.end()], new_word)
    return ''.join(words)

def utf8tobibtex_title(title):
    return capitalize_title(utf8tolatex(orig_title))

orig_titles = [ "AET: An Exposé of Titles", "AET: An exposé of titles" ]

for cmd_line_arg in sys.argv[1:]:
    orig_titles.append(cmd_line_arg)

for orig_title in orig_titles:
    print("===")
    print("orig_title\n" + orig_title + "\n")
    print("utf8tolatex(orig_title)\n" + utf8tolatex(orig_title) + "\n")
    print("utf8tobibtex_title(orig_title)\n" + utf8tobibtex_title(orig_title) + "\n")

    print("Title in bibtex context")
    print("title={" + utf8tobibtex_title(orig_title) + "},\n")

Thanks for your feedback. My impression is that the functionality that you're suggesting is a bit orthogonal to the purpose of pylatexenc.latexencode, which is meant to provide a lightweight and straightforward conversion of non-ascii chars into corresponding LaTeX encoding sequences. It sounds like your suggestion would only target a rather specific use case, namely the protection of acronyms in the generation of BibTeX entries.
However, I've been meaning to improve utf8tolatex() to allow to extend it to perform some smarter encodings, like transforming "..." (three dots) into "\ldots". The idea would be to have a way to specify custom rules, in the same spirit as the MacroDef's in pylatexenc.latex2text. I think this would be a good way to resolve your problem: You could specify a rule where a word with two or more capital letters get output with surrounding protective braces.
Hopefully I'll be able to get to this soon.

OK thanks. As this is not on the roadmap, I will close this ticket.
As an off-topic side note as well, I also tried pylatex.utils.escape_latex and saw that it encoded line breaks as \newline which was not what I wanted this time but is probably something useful in some contexts.

Hi again. I'm working on a pylatexenc 2.0 release that would allow you to do what you were suggesting. Could you test the new version and see if it meets your needs? I'm happy to hear your feedback.
u = UnicodeToLatexEncoder(
    conversion_rules=[
        latexencode.UnicodeToLatexConversionRule(
            latexencode.RULE_REGEX,
            [ (re.compile(r'([{}])'), r'\1'), # keep existing braces
              (re.compile(r'\b([A-Z]{2,}\w*)\b'), r'{\1}'), ]
        ),
    ] + latexencode.get_builtin_conversion_rules('defaults')
)
result = u.unicode_to_latex(input_string)

See updated doc: https://pylatexenc.readthedocs.io/en/latest/latexencode/
To install the development version, clone the git repo, then in the cloned directory run the commands:
python setup.py sdist
pip install dist/pylatexenc-2.0b0.tar.gz


Pan&Zoom is really laggy for me.

Completely random. Sometimes it gets stuck after zoom sometimes it zooms out after.Cant scroll if zoomed in.

it may help to make sure that your render image function only loads the image when selected


Test suite failing with citgm

Seems to be something to do with the way you use node-gyp. Doesn't seem to matter which version of node or npm... but I haven't dug in too much yet
to repro
npm i -g citgm
citgm -v verbose mocha

Hey @MylesBorins, can you submit the verbose log in here?

In my machine, it looks fine.
info:    passing module(s)   |
info:    module name:        | mocha
info:    version:            | 5.0.0
info:    done                | The smoke test has passed.
info:    duration            | test duration: 175293ms

5.0.1 is now passing locally for me. It was possible failures were due to workign on a pre-releasae version of node
Still having issues in CI
20:36:37 error:                     | CI mode disabled

https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker-nobuild/238/MACHINE=ubuntu1604-64/console

@MylesBorins is this still happening? can you guide me on how to reproduce this so i can debug it?


[Crash] Strange crash during the creation of a new world (possibly related to C2ME?)

After installing Armorful, i got this weird crash when trying to generate a new world. At first seems to be related to C2ME, but since in the crash it states that it could be related to another mod and there is some references to Armorful on the classes affected, i posted this here as well to be safe.
Crash report: GIST

Armorful doesn't do anything with feature placements. This is a CM2E issue

Meanwhile @ishland said on the other thread: "This is caused by Armorful attempting to generate loot tables for drowned during structure spawning on worldgen threads and this should be avoided."

This is done anyways by vanilla already?

This is done anyways by vanilla already?

Vanilla doesn't use loot tables on entity creation and loots for chests are generated only when they are first opened.

Happening a lot on a server i manage, not even related to C2ME, since i uninstalled. It just takes someone trying to generate a chunk with an ocean ruin on it and it happens (because of the drowned)
crash-2023-09-12_19.40.39-server.txt

Strange how @mineblock11 closed #14 telling to update C2ME even after @ishland already stated that this is caused by bad practices on mineblock's side.
I just removed Armorful from my pack until this issue is properly fixed.

I currently dont have time to fix this. I have been unable to reproduce this with the latest C2ME versions.

This is still an issue
https://hastebin.com/share/lalobolate.yaml


Make progress indicators accessible

We could map these to live regions/updates frequently - this is the example use case for both flags.

Looking at the platform implementation for these, they are not accessible by default (and in fact, it's kind of a pain to make them accessible - see for example https://stackoverflow.com/questions/16021624/how-can-i-get-talkback-to-read-the-android-progressbar-progress.
I think we should wrap these in semantics that are disabled by default and just have a few convenience properties on the main widget(s).  It would boil down to something like this:
Semantics(
  enabled: semanticsEnabled, // defaults to false
  label: semanticsLabel,
  liveRegion: true,
  value: semanticsValue,
  child: theProgressWidget,
);

It might be worth asking some internal teams what they do for progress indicators, to see if we can give a better default


Not working anymore

Hello, today 15.04.2022 ariston did an update on web interface and I think something is related to that update. I hope everything will be back as was. Because this integration was just perfect!
I'll update this in few days. I hope it's just a thing from their side and nothing serious otherwise I don't know who will change the code to work again anyway I will keep you update.

I've missed the latest update, sorry. No issue.


fix: Client::has_pending_recoveries

earlier it returned true if client_recovery_progress_receiver returned empty btreemap

Nice catch! Out of curiosity, how'd you find this? I don't see any usages of has_pending_recoveries in this repo.

we are using it in fedi


100% cpu usage

Hello,
Just discovering beaupy, nice useful project!
However, even a simplistic code like
from beaupy import select

item_options = [
    "o1",
    "o2",
    "o3",
]
items = select(item_options)

uses 100% of my cpu.
Python 3.11.5 on Linux, beaupy 3.6.0 installed in a venv via pip.
Any idea what is happening?

Never had this happen. I will try to reproduce this today.

Yeah, I just noticed this comes from yakh. Closing here, opening there!


Cannot set breakpoints in TypeScript version of this project in Visual Studio even though you could in the JavaScript version

[Enter feedback here]

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

ID: b888399c-fe96-0934-00ce-86db8fa8cf5b
Version Independent ID: 2c5d24e8-5639-42b1-4d12-119f89591550
Content: Convert an Office Add-in project in Visual Studio to TypeScript - Office Add-ins
Content Source: docs/develop/convert-javascript-to-typescript.md
Product: non-product-specific
Technology: add-ins
GitHub Login: @o365devx
Microsoft Alias: o365devx

Thank you for reporting this @dheine777.
@davidchesnut, could you please investigate?

Yes I can repo this behavior. This article needs a refresh. I'll start working on that.

Thanks!
Sent from my iPad

On Feb 10, 2023, at 3:58 PM, David Chesnut @.***> wrote:

Yes I can repo this behavior. This article needs a refresh. I'll start working on that.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.

Hi @dheine777,
Okay looks like the missing piece is you need to add a tsconfig.json file to the root of the "Web" project folder. Here are values I used:
{
  "compileOnSave": true,
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5"
  },
  "include": [
    "scripts/**/*",
    "**/*"
  ]
}

The important thing is that your project folder is listed in the "include" section "**/*". Then when you build, look to see that .js files and .js.map files were generated for debug (use file explorer to check as they probably won't appear in the VS IDE). They should be in the same location as their .ts counterparts.
I tried this on a new Excel project from VS, and it worked. So hope this works for you too!
Cheers,
David


fix: Add ASE channel validation

Fixes #6719
C# PR #6718
Description
To resolve the connection issue between DL_ASE and bot, we built DL_ASE v2.0. In v2.0, we used WebSocket/HTTPS instead of named pipe to connect between DL_ASE and bot.
Therefore, we need to add a special header validation for AseChannel.
Specific Changes
Add AseChannel channelId check in ConfigurationBotFrameworkAuthentication.
Testing
Adding unit tests in JwtTokenValidationTests.
Test locally with plulic/usgove singletenant/multitenant/umsi

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

62 of 90 (68.89%)  changed or added relevant lines in 13 files are covered.
82 unchanged lines in 5 files lost coverage.
Overall coverage decreased (-0.4%) to 84.183%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

libraries/botframework-connector/src/auth/jwtTokenValidation.ts
3
4
75.0%

libraries/botframework-connector/src/auth/msalServiceClientCredentialsFactory.ts
0
1
0.0%

libraries/botframework-connector/src/auth/parameterizedBotFrameworkAuthentication.ts
1
3
33.33%

libraries/botframework-connector/src/auth/aseChannelValidation.ts
27
51
52.94%

Files with Coverage Reduction
New Missed Lines
%

libraries/botbuilder-lg/src/templateExtensions.ts
1
84.48%

libraries/botframework-streaming/src/utilities/createNodeServer.ts
1
78.57%

libraries/botframework-streaming/src/namedPipe/namedPipeServer.ts
12
50.68%

libraries/botframework-streaming/src/namedPipe/namedPipeClient.ts
17
34.09%

libraries/botframework-streaming/src/namedPipe/namedPipeTransport.ts
51
3.92%

Totals

Change from base Build<PHONE_NUMBER>:
-0.4%

Covered Lines:
20334

Relevant Lines:
22873

💛  - Coveralls


install   kimera-VIO-ROS1  dev_tools/linter'  failed

Description:
install   dev_tools/linter'  failed
Command:

wstool update

Console output:

WARNING [vcstools] Command failed: 'git submodule update --init --recursive'
 run at: '/home/lzw/resplendent_code/kimera_ros1_ws/src/Kimera-VIO'
 errcode: 1:
submoudle 'dev_tools/linter'（https://github.com/ToniRV/linter.git）isnot register for path'dev_tools/linter'
cloning to '/home/lzw/resplendent_code/kimera_ros1_ws/src/Kimera-VIO/dev_tools/linter'...
fatal: unable to access 'https://github.com/ToniRV/linter.git/': Failed to receive SOCKS4 connect request ack.
fatal: cant clone 'https://github.com/ToniRV/linter.git'
to submodule path '/home/lzw/resplendent_code/kimera_ros1_ws/src/Kimera-VIO/dev_tools/linter'
clone 'dev_tools/linter' failed。plan to retry
cloning '/home/lzw/resplendent_code/kimera_ros1_ws/src/Kimera-VIO/dev_tools/linter'...
fatal: unable to access 'https://github.com/ToniRV/linter.git/': Failed to receive SOCKS4 connect request ack.
fatal:cant clone 'https://github.com/ToniRV/linter.git' to  '/home/lzw/resplendent_code/kimera_ros1_ws/src/Kimera-VIO/dev_tools/linter'
secondly try to clone 'dev_tools/linter' failed，out
[/vcstools]
[Kimera-VIO-ROS] Updating /home/lzw/resplendent_code/kimera_ros1_ws/src/Kimera-VIO-ROS
[Kimera-VIO-ROS] Done.

SECOND OUTPUT 2:
```Exception caught during install: Error processing 'Kimera-VIO' : [Kimera-VIO] Checkout of git@github.com:MIT-SPARK/Kimera-VIO.git version master into /home/lzw/resplendent_code/kimera_ros1_ws/src/Kimera-VIO failed.

ERROR in config: Error processing 'Kimera-VIO' : [Kimera-VIO] Checkout of git@github.com:MIT-SPARK/Kimera-VIO.git version master into /home/lzw/resplendent_code/kimera_ros1_ws/src/Kimera-VIO failed.

* Operating system and version (e.g. Ubuntu 16.04 or Windows 10): Ubuntu18.04
* Did you change the source code? (yes / no): no change

I haven't tested the linter in a ROS workspace, but it seems to me that there might be a problem with ssh vs https when git cloning.
It looks like for some reason git is rejecting your connection. Have you tried these steps?
https://help.github.com/articles/error-permission-denied-publickey/

thanks you  very much！when  I  let  my  PC  connect  to  the Internet provided  by  my mobile phone ，it success！ nevertheless ，thanks a  lot------------------ 原始邮件 ------------------
发件人: "Toni<EMAIL_ADDRESS>发送时间: 2020年3月11日(星期三) 上午10:33
收件人<EMAIL_ADDRESS>抄送: "resplendent-star"485434977<EMAIL_ADDRESS>主题: Re: [MIT-SPARK/Kimera-VIO-ROS] install   kimera-VIO-ROS1 dev_tools/linter'  failed (#48)
I haven't tested the linter in a ROS workspace, but it seems to me that there might be a problem with ssh vs https when git cloning.
It looks like for some reason git is rejecting your connection. Have you tried these steps?
https://help.github.com/articles/error-permission-denied-publickey/
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thank you!


Add nuget.config to the .gitignore

We probably want more here, but I wanted to add this entry as I upgraded.

@BillWagner, just a heads-up, we'll be moving the Try .NET source code into this repo at some point and the current contents will be restructured at that time. There will be a NuGet.config folder in the root.

@jonsequitur  That makes sense.
I just noticed that we'd mistakenly checked in a number of build artifacts
See Beginners and ExploreCSharp8
Do you want me to add that task to this PR, or make a separate one?

Either way is fine.

@jonsequitur
I updated this PR:

remove the files that should have been ignored
updated the .gitignore to the github recommend Visual Studio version, and include the nuget.config file as well


HBASE-23373 Log RetriesExhaustedException context with full time precision (#903)

Signed-off-by: Lijin Bin<EMAIL_ADDRESS>

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
3m 47s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  1s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

-0 :warning:
test4tests
0m  0s
The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.

_ branch-2.1 Compile Tests _

+1 :green_heart:
mvninstall
5m 34s
branch-2.1 passed

+1 :green_heart:
compile
0m 25s
branch-2.1 passed

+1 :green_heart:
checkstyle
0m 39s
branch-2.1 passed

+1 :green_heart:
shadedjars
4m 22s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 25s
branch-2.1 passed

+0 :ok:
spotbugs
1m 16s
Used deprecated FindBugs config; considering switching to SpotBugs.

+1 :green_heart:
findbugs
1m 15s
branch-2.1 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
5m 12s
the patch passed

+1 :green_heart:
compile
0m 26s
the patch passed

+1 :green_heart:
javac
0m 26s
the patch passed

+1 :green_heart:
checkstyle
0m 39s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
shadedjars
4m 19s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
hadoopcheck
22m  1s
Patch does not cause any errors with Hadoop 2.7.7 2.8.5 or 3.0.3 3.1.2.

+1 :green_heart:
javadoc
0m 25s
the patch passed

+1 :green_heart:
findbugs
1m 25s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
3m 30s
hbase-client in the patch passed.

+1 :green_heart:
asflicense
0m 12s
The patch does not generate ASF License warnings.

61m 16s

Subsystem
Report/Notes

Docker
Client=19.03.5 Server=19.03.5 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-918/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/918

Optional Tests
dupname asflicense javac javadoc unit spotbugs findbugs shadedjars hadoopcheck hbaseanti checkstyle compile

uname
Linux 833dc1e76c7b 4.15.0-70-generic #79-Ubuntu SMP Tue Nov 12 10:36:11 UTC 2019 x86_64 GNU/Linux

Build tool
maven

Personality
/home/jenkins/jenkins-slave/workspace/HBase-PreCommit-GitHub-PR_PR-918/out/precommit/personality/provided.sh

git revision
branch-2.1 / 75de675573

Default Java
1.8.0_181

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-918/1/testReport/

Max. process+thread count
258 (vs. ulimit of 10000)

modules
C: hbase-client U: hbase-client

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-918/1/console

versions
git=2.11.0 maven=2018-06-17T18:33:14Z) findbugs=3.1.11

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.


Upgrade tantivy to 0.20

Changelog: https://github.com/quickwit-oss/tantivy/blob/main/CHANGELOG.md#tantivy-020-unreleased
PhrasePrefixSearch might be a useful replacement of regexp search
Search is faster in general

Found an issue when upgrading, so lets wait until it's resolved https://github.com/quickwit-oss/tantivy/issues/2112 or there is a workaround.


test two levels deep

sometimes when using both a media query and a pseudo-selector, it may be important to change the styles with the pseudo selector within a media query.
For this, it is important to support styles that are nested more that one level deep.

You're right. Something like:
const palm = '@media screen and (max-width:600px)';

const styles = StyleSheet.create({
  container: {
    color: 'red',
    ':hover': {
      color: 'blue'
    },
    [palm]: {
      ':hover': 'green'
    }
  }
});

Yes. Exactly

Any update on this?? really looking forward to having this last thing fixed.
In the mean time, I've been working on a browserify transform called 'inlinify' (for now at least). It is relatively general, but it is super useful with stilr.
The transform eseentially, takes certain files and inlines there output.
So let's say I have a file called styles.js that looks like this:
var StyleSheet = require('stilr')

module.exports = StyleSheet.create({
  container: {...},
  item: {...}
})

the Inlinify transform transforms that to:
module.exports = {"container":"_3We8gK","item":"_3GQ4pe"}

Therefore, you can get rid of all the extra bytes that come with using Stilr.
You can use a strategy to create a single CSS file in your build step from all the style files, use inlinify to get rid of the tool completely from your client-side code. You can go back to simply including a style tag in you html file.
Inlinify works by taking a simple glob to filter by file name, so it works as long as you keep a consistent naming scheme for all your style files. ( e.g. : style.js or something.styles.js)
I'm working on a second tool that will walk down your dependency tree create a single CSS file from all the style files by requiring them directly. (I'm looking into a way to fold the two things into a single package, but haven't made much progress there yet)

Ahh, yes. I'm actually going to take a look at it right now! :)
That browserify transform sounds really cool. I would love to take a look at that when you have something working! I've been planning on doing something like it for Webpack, but man,  webpack really isn't as straight forward to work with as browserify...

Implemented.
Closed in 8b3d8b50a58ce4b4fb63aa1331f1dd3bdbf390da

Sorry to bug you here, but the module-inlinify transform is published.
It's useful for when using stilr in production. As long as you keep all your style code in separate files with  consistent names, you can remove stilr from your js bundle completely, and replace the style files with simple objects that map your keys to the generated classNames.
https://github.com/nmn/module-inlinify

I'm working on some modules more specific to stilr as well.
I will do a fork of module-inlinify, that outputs the CSS string to a file path that you define. This would mean, all stilr specific code needs to be in separate files. stilr should never be required in your js files directly.

That's awesome!
We have bunch of helper style files were I could see that come in handy.
But, we usually stick with having everything together in one react component. We've found that the colocation benefits of having the styling and presentation together in one small component is really powerfull. I also experienced that it prevents you from building too large components, or rather you notice that you're building a too large and complex component faster, because the Styling is growing with it and so I see myself rethinking and refactoring more often
So having a tranformer that could strip out the StylsSheet.create directly from our components would be even better ;)

@chriskjaer I'm actually considering an AST based transformer that rips out StyleSheet.create calls etc. The problems is that it is much harder to support any dynamic behaviour within the styles. By relying on a separate file, I can pretty much allow any dynamic code that you need (synchronous for now)
I think variables and extentions are at least very important while writing CSS.

Indeed, variables and extensions are a key part of doing all this in javascript. Without it, we might as well do plain old css. If you find anything interesting, keep me updated!

I did some more research for transforming StyleSheet.create calls within a module itself. It probably possible to compile that part, but it wouldn't remove the require calls to other modules that are only needed for the styles. In theory it should be possible, but I'm not an AST expert that I can actually deal with it. :(
For now I need module boundaries to make this stuff work.
Instead I'm working on three other modules that extend inlinify:

Add an output file path, and the transform will create a CSS file at the path automatically on every browserify bundle.
Using some existing CSS parsers making it possible to write your CSS in CSS syntax, but using it like it was written with Stilr and javascript. (This would have some downsides because of requires etc.)
Using the Stylus compiler, to do something similar, while also making it possible to import files etc.


explore autotuning metaspace

stemmed from https://github.com/openshift/jenkins/issues/311
quote from @bparees:  the right answer is probably "min of 100m or X% of total memory, whichever is larger" (unless the user explicitly overrides it, of course).

Per discussion in https://github.com/openshift/jenkins/pull/396 we are going to remove the explicit setting of metaspace via changes from that PR
The JDK appears to be at the point now where it can adjust the metaspace appropriately, even when cgroups are in play.


Time cost and memory cost of FastMETRO

@FastMETRO
Hello! FastMETRO is a nice work. I want to know the memory and time cost of FastMETRO of two versions when training.
Under the setting of per_gpu_train_batch_size 16 and mixed datasets, how long to train FastMETRO of two versions for one epoch on your cards, and how much GPU memory do you cost on one single card?

Hello,
We conduct single-node distributed training using a machine with 4 NVIDIA V100 GPUs (16GB RAM). We set --per_gpu_train_batch_size as 16 and --num_workers as 4.

The time and memory cost for the training on the mixed datasets in our environment:
[ FastMETRO-S-R50 ]

Training time for each epoch: ~ 0.6 hours
Memory used in each GPU: ~ 5 GB

[ FastMETRO-L-H64 ]

Training time for each epoch: ~ 1.5 hours
Memory used in each GPU: ~ 14 GB

Thanks for your interest in our work!!

Please reopen this issue if you need more help regarding this.


Add expiration to MongoSession to autodelete

Provide ability to automatically delete MongoSession documents.
Per Christoph: "You’d use Index#expire(long, TimeUnit) when creating the index manually via IndexOperations#ensureIndex(IndexDefinition."

I believe this option exists. The problem is with the #53

Resolved via https://github.com/spring-projects/spring-session-data-mongodb/commit/82cf365ba702d569013ce83940a6000933cfd3b6.


fix: correct artifact url with missed index and custom target directory

When index is absent and custom target directory is used, the artifact url for the chart contains duplicated target dir, e.g. instead of https://stefanprodan.github.com/helm-gh-pages/charts/chart-v1.2.3.tgz -> https://stefanprodan.github.com/helm-gh-pages/charts/charts/chart-v1.2.3.tgz. This PR fixes this.

@stefanprodan any chance for review?


youtube.com: this video is unavailable

Checklist

[x] I'm reporting a broken site support
[x] I've verified that I'm running youtube-dl version 2019.09.01
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar issues including closed ones

Verbose log

❯ youtube-dl -v 'https://www.youtube.com/watch?v=pdMnTiO__ss'
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-vvv', 'https://www.youtube.com/watch?v=pdMnTiO__ss']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.09.01
[debug] Python version 3.6.9 (CPython) - Linux-5.2.13_1-x86_64-with-glibc2.3.4
[debug] exe versions: ffmpeg 4.2.1, ffprobe 4.2.1
[debug] Proxy map: {}
[youtube] pdMnTiO__ss: Downloading webpage
[youtube] pdMnTiO__ss: Downloading video info webpage
ERROR: This video is unavailable.
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/youtube_dl/YoutubeDL.py", line 796, in extract_info
    ie_result = ie.extract(url)
  File "/usr/lib/python3.6/site-packages/youtube_dl/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/usr/lib/python3.6/site-packages/youtube_dl/extractor/youtube.py", line 2115, in _real_extract
    raise ExtractorError(error_message, expected=True)
youtube_dl.utils.ExtractorError: This video is unavailable.

Description

All youtube videos I've tried to download with youtube-dl today error with "ERROR: This video is unavailable."

JDownloader2 doesnt recognize videos so i guess they changed something.

i am also suffering the same issue with this URL: https://www.youtube.com/watch?v=lJOLb1GSvws

I can also confirm this. Many (possibly all) URLs.


SBTI pydantic error

hi, i developed an app around SBTi temperature score logic, using WATS.
it works perfectly when i run locally, but after deploying the app, it gives the following error:
An error occurred: 2 validation errors for PortfolioCompany company_id Input should be a valid string [type=string_type, input_value=1, input_type=int] For further information visit https://errors.pydantic.dev/2.10/v/string_type user_fields Field required [type=missing, input_value={'company_name': 'Sterlin...y_isin': 'NGSTERLNBNK7'}, input_type=dict] For further information visit https://errors.pydantic.dev/2.10/v/missing
and when i upload the datasets with sting values, it gives the following error message:
An error occurred: 1 validation error for PortfolioCompany user_fields Field required [type=missing, input_value={'company_name': 'Sterlin...y_isin': 'NGSTERLNBNK7'}, input_type=dict] For further information visit https://errors.pydantic.dev/2.10/v/missing

Perhaps there is a conflict between versions of Pydantic. The SBTi-finance-tool was developed using Pydantic 1.x while your error messages suggest that you have Pydantic 2.x installed in your environment. There were several breaking changes in Pydantic v2, so that will produce some errors when running the tool.

This was so helpful, thank you so much. it works perfectly now.


RefreshToken listener not getting called [iOS]

So getFCMToken() is 'undefined' on first open as expected, however my RefreshToken listener, which should solve the undefined issue, is not getting called. I've also tried replacing the FCMEvent parameter with the string in the comment, as per some issue that stated the string is the correct usage. Neither way worked.
Any ideas?
Tested on:
iPad iOS v11.3.1
react-native: 0.52.2
react-native-fcm: 14.1.3
Here is my component:
import React, { Component } from 'react';
import { AppState }         from 'react-native';
import FCM, { FCMEvent }    from 'react-native-fcm';

import { setCookie } from '../functions/set-cookie.js';

export default class PushNotification extends Component {
  componentDidMount() {
    FCM.requestPermissions(); // for iOS
    FCM.getFCMToken().then(token => {
      console.log("TOKEN (getFCMToken)", token);
      setCookie(token);
    });

    FCM.getInitialNotification().then(notif => {
      // console.log("INITIAL NOTIFICATION", notif);
      if(notif.path) { // if you want to redirect to a page
        this.props.updatePath(notif.path);
      }
    });

    this.notificationSubscribe = FCM.on(FCMEvent.Notification, notif => { // 'FCMNotificationReceived' is new api?
      // console.log("notification: ", notif);
      if (notif && notif.local_notification) return;
      if (AppState.currentState === 'active') { // if app is in foreground
          // TODO: add local notifications
          console.log('active and got notification');
      }
      else if(notif.path) { // if you want to redirect to a page
        this.props.updatePath(notif.path);
      }
      this.sendRemote(notif);
    });
    // this method call when FCM token is update(FCM token update any time so will get updated token from this method)
    this.tokenRefreshed = FCM.on(FCMEvent.RefreshToken, token => { // 'FCMTokenRefreshed' is new api?
      console.log("TOKEN (tokenRefreshed)", token);
      setCookie(token);
    });
  }

  // This method display the notification on mobile screen.
  sendRemote(notif) {
    console.log('send remote notification');
    FCM.presentLocalNotification({
      title: notif.title,
      body: notif.body,
      priority: "high",
      click_action: notif.click_action,
      show_in_foreground: true,
      local: true
    });
  }

  componentWillUnmount() {
    this.notificationSubscribe.remove();
    this.tokenRefreshed.remove();
  }

  render() {
    return null;
  }
}

I would also like to note that this was confirmed to work yesterday, but today I experienced these issues.
I also found a dirty workaround for the time being, by checking again for the token if it's undefined initially:
FCM.getFCMToken().then(token => {
      if(!token) {
        setTimeout(() => {
          FCM.getFCMToken().then(token => {
            console.log("TOKEN (getFCMToken)", token);
            setCookie(token);
          });
        }, 3000);
      } else {
        console.log("TOKEN (getFCMToken)", token);
        setCookie(token);
      }
    });

this might be caused by event firing before JS is getting bootstrapped.
I have this fix for the notification event
https://github.com/evollu/react-native-fcm/blob/master/ios/RNFIRMessaging.m#L247
you can try to do a PR for this https://github.com/evollu/react-native-fcm/blob/master/ios/RNFIRMessaging.m#L452

fixed in v14.2.0

Couldn't it be that the reason why the RefreshToken listener is not called is because RNFIRMessaging implements
messaging:didRefreshRegistrationToken:
https://github.com/evollu/react-native-fcm/blob/v14.2.1/ios/RNFIRMessaging.m#L458-L461
but,  looking at the latest Firebase docs, it seems it should implement
-messaging:didReceiveRegistrationToken:
instead?
https://firebase.google.com/docs/reference/ios/firebasemessaging/api/reference/Protocols/FIRMessagingDelegate
(I can't find any reference to messaging:didRefreshRegistrationToken callback in Firebase docs.)

I can reproduce this on 15.0.2, with Firebase SDK 15. getFCMToken() returns undefined on first launch,  RefreshToken never fires and killing/reopening the app delivers the token through getFCMToken()


Magento 2.2.1: Customer Grid Empty

I tried your module and faced lot of issues on Magento 2.2.1
First customer grid in backofice display 0 customer when I got lot of customers in database.
Secondly when I reindex I got: Customer Grid index is locked by another reindex process. Skipping.

Hi @LSERRE
A "lot of issues" is not enough to help you.

Which version of MG2 are you using ? EE or CE?
Have you other modules related to the customers installed and activated on your Magento instance?

I have not tried the last version of the module on 2.2.1, so this is what I suggest:

1:  As blocked indexers is a common issue in MG2, please read this link to try to reindex: here
2: If you are still experiencing issues: downgrade the module to the 1.3.2 version

Keep us in touch. If you still have the problem we will try on our side.

Hi,
Thanks for your answer.
I installed 1.3.2 version and Customer grid is working now. Thanks

So at the beginning you were using 1.4.1 ?

Yes, the master branch.
I still got the issue when I try to reindex:
PHP Fatal error:  Uncaught Error: Call to undefined method Magento\Customer\Model\Indexer\Source::addAttributeToSelect() in /home/104764-79551.cloudwaysapps.com/xgyghcmfxk/public_html/vendor/magento/framework/Indexer/Handler/AttributeHandler.php:38

Ok.
So if I sum-up:

1.3.2 is fine
1.4.1 is buggy.

I reinstalled 1.4.1 and still got empty customer grid.
I will check your code. If I found the problem I will do a pull request.

OK thanks!

The grid is still empty and now I get:
Customer Grid index is locked by another reindex process. Skipping.
When trying to reindex even when i disable the module.
So I guess the problem comes from InstallData.php or UpgradeData.php

We are going to check this issue.
However your comment is not very suited: this module can't "break" anything as it:

doesn't create any table
doesn't modify any core table
doesn't modify any core data not related to it.

A I told you in my first message, a blocked indexer (just look a the link...) is not a rare issue in Magento 2.
By the way, I disabled the >= 1.4.0 release from packagist.

Having same problem with v1.4.1 in M2 2.2.1 CE
On install:
Customer Grid index is locked by another reindex process. Skipping.
While using:
Empty customer grid.  On attempt to reindex:
[@]# php bin/magento indexer:reindex
Design Config Grid index has been rebuilt successfully in 00:00:02
PHP Fatal error:  Uncaught Error: Call to undefined method Magento\Customer\Model\Indexer\Source::addAttributeToSelect() in /var/www/html/PFB/inventory/vendor/magento/framework/Indexer/Handler/AttributeHandler.php:38
Stack trace:
#0 /var/www/html/PFB/inventory/vendor/magento/framework/Indexer/Action/Base.php(310): Magento\Framework\Indexer\Handler\AttributeHandler->prepareSql(Object(Magento\Customer\Model\Indexer\Source), 'e', Array)
#1 /var/www/html/PFB/inventory/vendor/magento/framework/Indexer/Action/Entity.php(26): Magento\Framework\Indexer\Action\Base->createResultCollection()
#2 /var/www/html/PFB/inventory/vendor/magento/framework/Indexer/Action/Base.php(179): Magento\Framework\Indexer\Action\Entity->prepareDataSource(Array)
#3 /var/www/html/PFB/inventory/vendor/magento/framework/Indexer/Action/Base.php(189): Magento\Framework\Indexer\Action\Base->execute()
#4 /var/www/html/PFB/inventory/vendor/magento/module-indexer/Model/Indexer.php(412): Magento\Framework\Indexer\Action\Base->executeFull()
#5 /var/www/html/PFB/invento in /var/www/html/PFB/inventory/vendor/magento/framework/Indexer/Handler/AttributeHandler.php on line 38

Hi mjrmurray.
We are correcting this Bug.
However, before the release of the fix, please use the 1.3.2 version.

Thanks, unfortunately I installed v. 1.4.1 first.  That action must have added something to the DB because even after installing v.1.3.2 after uninstall, it still will not index the customer grid.  I'll simply wait for the update, or re-deploy a backup.  Thanks.

To deblock the indexer, please read the link above in this topic.

You misunderstand.  Indexer is not blocked.  It's throwing an exception when attempting to index.
PHP Fatal error: Uncaught Error: Call to undefined method Magento\Customer\Model\Indexer\Source::addAttributeToSelect() in /var/www/html/PFB/inventory/vendor/magento/framework/Indexer/Handler/AttributeHandler.php:38
unblocking the indexer and re-indexing fails every time.

Ok then just make a save of your db and then edit the is-active attribute to set it no usable and not visible on the customer grid.

Worked.  You da man.  Thanks.

Is a Magento issue:  https://github.com/magento/magento2/issues/10838
Try to adapt the module.

As you can see, it is not related to our module, but to Magento itself.
On a fresh install of Magento 2.2.4-dev, I still have the issue.
So we are waiting for a correction on their side to see what to do.

I did a mistake and installed your module on production. Now my customer grid is empty. I tried to set is-active attribute to not usable and not visible in grid in db, my customer grid is still empty in backoffice. Then I tried to delete both attributes added in your module in eav_attributes, customer_eav_attributes and my grid still empty. Could you please help me? Thanks.

This is what I would do:

disable the module
delete the entry in setup_modules
delete the module files
set the is active attribute to zero for is visible in grid and is usable in grid
reindex

It doesn't work neither.

Do you have any filter set in the customer grid?
Did the reindexation worked without error?
Did you clean the cache?
Do you have others third party module linked to the customer?
Thats very weird. First time I see that.
This also could be something not related with the module. I saw this kind of issue on Magento 1. A SQL error because a request was too long to execute for example...
A quick look on Google give some hints.

For those still following this issue: the Magento Team didn't fix the problem yet.
However you could easily and quickly create a temporary fix, as explained here.
Reminder: create your own module to make this fix, never edit the core code directly.

It seems that some are stil facing the issue because of Magento...
So we implemented the fix directly in the 1.4.2 to be released this week.

@enrico69 I'm looking forward to trying it

Fix is done. The 1.4.2 version will also include another fix (still related to the version 2.2.x de Magento which has a lot of side effects). The release will be available this week-end or next monday.

Fixed in 1.4.2.


adding an example for run and rerun command

[ ] update "Running an Experiment" in the "Workflows" docs
[ ] link to the correct command line commands and include how to list experiments (datmo ls)

merged into #287


Added changes for samples to run in MetaOS hubs.

@Prithvi-MSFT - Please run build pipeline for this.

Build status - All builds passed
https://github.com/OfficeDev/Microsoft-Teams-Samples/actions/runs/5179746157


Automatic merge of upstream envoy release branch failed

Automatic merge of release/v1.17 into release-1.9 failed. @istio/wg-networking-maintainers

Nice automation, but 1.9 is EOL, so do we need to fix this?


Add support for additional fields for log4j, JUL, and JBoss Log Manager

closes #113

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Build Cause: Pull request #116 opened

Start Time: 2020-11-27T12:28:24.897+0000

Duration: 8 min 41 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
144

Skipped
4

Total
148


Integrate command line options

Description
We need to integrate a group of command line options to allow some configurations

scrapper name
strategy

Pull Requests
#8

Merged into master