[WIP]: Working with typescript

Resolve #728

I'm having a hard time with this one.
useKeyPress.ts Doesn't seem like this is actually in use, should probably be deleted?
useCombinedRefs.ts I was trying this approach but it gives a lot of errors in the component using this function along with eslint complaining on any
setReactInputValue  🙈  This use private React stuffs....
useOutsideClick I think this one is OK 😓

Would this work for useCombinedRefs ?
import { useRef, useEffect } from 'react'
type Ref = React.MutableRefObject<HTMLElement>
type useCombinedRefsProps<T> = T | ((a: HTMLElement) => T)
export const useCombinedRefs = (...refs: useCombinedRefsProps<Ref>[]): Ref => {
  const targetRef = useRef<HTMLElement>(null)
  useEffect(() => {
    refs.forEach((ref) => {
      if (!ref) return
      if (typeof ref === 'function') {
        ref(targetRef.current)
      } else {
        ref.current = targetRef.current
      }
    })
  }, [refs])
  return targetRef
}

Let's try!

Tried and there's no issues with the useCombinedRefs file itself. But the same problems in TabList and Menu remain.
[!] (plugin rpt2) Error: /Users/wenche/Documents/prosjekter/equinor/migrate-common/libraries/core-react/src/Tabs/TabList.tsx(73,27): semantic error TS2345: Argument of type 'LegacyRef<HTMLButtonElement>' is not assignable to parameter of type 'Ref<HTMLElement>'.
  Type 'string' is not assignable to type 'Ref<HTMLElement>'.

I don't know what the LegacyRef is 🤔  Have to google that
[!] (plugin rpt2) Error: /Users/wenche/Documents/prosjekter/equinor/migrate-common/libraries/core-react/src/Menu/MenuItem.tsx(124,9): semantic error TS2769: No overload matches this call.
  Overload 1 of 2, '(props: Pick<Pick<Pick<DetailedHTMLProps<LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "slot" | "style" | ... 253 more ... | "value"> & { ...; } & StyleProps, "active" | ... 257 more ... | "value"> & Partial<...>, "active" | ... 257 more ... | "value"> & { ...; } & { ...; }): ReactElement<...>', gave the following error.
    Type 'Ref' is not assignable to type 'Ref<HTMLLIElement>'.
      Type 'MutableRefObject<HTMLElement>' is not assignable to type 'RefObject<HTMLLIElement>'.
        Types of property 'current' are incompatible.
          Type 'HTMLElement' is missing the following properties from type 'HTMLLIElement': type, value
  Overload 2 of 2, '(props: StyledComponentPropsWithAs<"li", any, StyleProps, never>): ReactElement<StyledComponentPropsWithAs<"li", any, StyleProps, never>, string | ... 1 more ... | (new (props: any) => Component<...>)>', gave the following error.
    Type 'Ref' is not assignable to type 'Ref<HTMLLIElement>'.
      Type 'MutableRefObject<HTMLElement>' is not assignable to type 'RefObject<HTMLLIElement>'.

It is what it is, a hack. React does not provide internal types (that I could find) so we have to make it work with just faking it.
Suggestion:
// Workaround
// React ignores 'dispathEvent' on input/textarea, see https://github.com/facebook/react/issues/10135
type ReactInternalHack = { _valueTracker?: { setValue: (a: string) => void } }

export const setReactInputValue = (
  input: HTMLInputElement & ReactInternalHack,
  value: string,
): void => {
  const previousValue = input.value

  input.value = value

  const tracker = input._valueTracker

  if (typeof tracker !== 'undefined') {
    tracker.setValue(previousValue)
  }

  //'change' instead of 'input', see https://github.com/facebook/react/issues/11488#issuecomment-381590324
  input.dispatchEvent(new Event('change', { bubbles: true }))
}

You will also need to cast the input on line 217, in <Search /> to HTMLInputElement for now...

I had a second look at useCombinedRefs as we got a the wrong type in return when using it in for example Search.
New suggested useCombinedRefs
import { useRef, useEffect, MutableRefObject } from 'react'

type Ref<T> = MutableRefObject<T>
type Props<T, P> = T | ((a: P) => void)

export const useCombinedRefs = <T extends HTMLElement>(
  ...refs: Props<Ref<T>, T>[]
): Ref<T> => {
  const targetRef = useRef<T>(null)
  useEffect(() => {
    refs.forEach((ref) => {
      if (!ref) return
      if (typeof ref === 'function') {
        ref(targetRef.current)
      } else {
        ref.current = targetRef.current
      }
    })
  }, [refs])
  return targetRef
}

I'm not sure about this one
type TabChild = ButtonHTMLAttributes<HTMLButtonElement> &
  RefAttributes<HTMLButtonElement> &
  ReactElement

but it did remove the ts errors 🤷♀

I'm not sure about this one
type TabChild = ButtonHTMLAttributes<HTMLButtonElement> &
  RefAttributes<HTMLButtonElement> &
  ReactElement

but it did remove the ts errors 🤷♀

The tabs are ButtonElement so why not 🙈  Lets test 🙂

@mimarz  What do you suggest for this error?


ENH: Dockerfile for scipy development

This is a Dockerfile that can be used for containerised scipy development (see #8340).
It is based on an Ubuntu:bionic image. The docker build is available on dockerhub from the scipy/scipy-dev repository.
The idea is that people can use it to get started quickly, without having to install development tools (although they will need to install docker and get docker working).

I created the scipy organisation on Dockerhub. Any core-dev that would like admin rights on there then please ask me. I think you need a Docker account to be added.

@rgommers you wrote in gh-10688:

Using a non-default Python install outside of conda seems unhealthy.

Does this mean that there should not be both python3.6 and python3.7 in the image produced by this Dockerfile?

In the Dockerfile I created the OS is ubuntu:bionic. python3.6 is installed by default, python3.7 is installed using apt-get. pip3.6 and pip3.7 are setup using get-pip.py.

@rgommers, do you mind if we merge this now? It's likely that the dockerfile will need further updates as and when it's usage becomes clearer. It's pretty well formed and not half-baked.

go for it!


Updated least privileged role

Updated least privileged role

https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso-quick-start#step-2-enable-the-feature

GitHub Issue: https://github.com/MicrosoftDocs/azure-docs/issues/90335
cc: @rolyon

@JamesTran-MSFT : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Thanks @JamesTran-MSFT
Sent to team to review

#label:"aq-pr-triaged"

Hi @JamesTran-MSFT
Leaving doc as is for now. Will update if team decides to update.
thanks

#please-close


[CommandNotFound] - breaks powershell when internet is disconnected

Microsoft PowerToys version
0.81.0
Installation method
Other (please specify in "Steps to Reproduce")
Running as admin
Yes
Area(s) with issue?
Command not found
Steps to reproduce
install command not found module
disconnect the internet
Start powershell
Powershell throws this error

✔ Expected Behavior
Powershell should work without throwing an error
❌ Actual Behavior
Powershell refuses to start up and crashes every time its opened
Other Software
Windows 10 version 22H2 (OS Build 19045.4412)

Related issues https://github.com/microsoft/PowerToys/issues/33061 https://github.com/microsoft/winget-command-not-found/issues/7

/dup #33061


Threads test causes problems on graphics card AMD R5 340x

I got a problem, the function glClear cannot perfom well while resizing one of the three windows on microsoft windows.
It is OK on Nvidia and Intel graphics card, but not OK on AMD R5 340x...
It may be the AMD R5 340x ‘s bug, but how to solve it?

Talk to AMD and see what they say.


SnapshotCollector Uploader crashes on IIS shutdown

Using SnapshotCollector with .NET Core 3.1 hosted in IIS. Upon shutting down the app pool (whether using iisreset or app_offline.htm), it looks like the uploader crashes. This is logged in the event log:
Application: w3wp.exe
CoreCLR Version: 4.700.20.26901
.NET Core Version: 3.1.6
Description: The process was terminated due to an unhandled exception.
Exception Info: System.AggregateException: One or more errors occurred. (The semaphore has been disposed.)
---> System.ObjectDisposedException: The semaphore has been disposed.
at System.Threading.SemaphoreSlim.CheckDispose()
at System.Threading.SemaphoreSlim.Release(Int32 releaseCount)
at Microsoft.ApplicationInsights.SnapshotCollector.Pipeline.ProducerConsumerQueue`1.Produce(T workItem)
at Microsoft.ApplicationInsights.SnapshotCollector.Uploader.EnqueueRequest(Request request)
at Microsoft.ApplicationInsights.SnapshotCollector.Uploader.Shutdown()
at System.Threading.CancellationToken.<>c.<.cctor>b__26_0(Object obj)
at System.Threading.CancellationTokenSource.CallbackNode.<>c.b__9_0(Object s)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(Boolean throwOnFirstException)
--- End of inner exception stack trace ---
at System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(Boolean throwOnFirstException)
at Microsoft.ApplicationInsights.SnapshotCollector.ApplicationLifetimeManager.Stop()
at Microsoft.ApplicationInsights.SnapshotCollector.AssemblyLoadContextLifetimeManager.OnUnloading(Object sender)
at System.Runtime.Loader.AssemblyLoadContext.RaiseUnloadEvent()
at System.Runtime.Loader.AssemblyLoadContext.OnProcessExit()
at System.AppContext.OnProcessExit()
This becomes an issue because Windows Error Reporting kicks in, but seems to hold on to the w3wp process, which prevents us from doing a successful automated deployment to the server; someone has to kill werfault.exe in order for w3wp to fully die, and release any file handles it has.
Any ideas what I might be doing wrong? My startup.cs is pretty simple for this:
services.AddSnapshotCollector((config) =>
            {
                if (!string.IsNullOrEmpty(_configuration.GetValue<string>("ProxyServer")))
                    config.UploaderProxy = $"{_configuration.GetValue<string>("ProxyServer")}:{_configuration.GetValue<string>("ProxyPort")}";
            });

Thanks for the bug report. The ObjectDisposedException is something I knew about, but I didn't know it caused problems with deployment. Sorry about that.
Unfortunately, I can't think of a workaround at the moment. I'll try to get a fix into the next release of Snapshot Collector.

A fix has been added to 1.4.0-pre-010.2302

A fix has been added to 1.4.0-pre-010.2302

(Preliminary) testing shows that this fixes my issue. Thanks very much for your prompt response! I think it's safe for me to close this ticket out.

@pharring Is there already a released (non-pre) version with this fix included?

Not yet.
Is that a blocker for you?
Release notes are here: https://docs.microsoft.com/azure/azure-monitor/app/snapshot-collector-release-notes

Not really, but we are currently receiving alerts for the abovementioned exceptions during recycles and re-deployments of our services...
A backport of the fix to a 1.3.x release would, therefore, be greatly appreciated. Unless the 1.4 release is coming soon, of course.
I'd contribute the backport myself, but I couldn't find the relevant source code here (assuming its closed-source?).

@tkp1n <IP_ADDRESS> has been released with the fix backported. This is the only change from <IP_ADDRESS>

@pharring What a service, thank you!

This issue is currently happening for me.  Do you have any other notes or help on it? I've even gone as far as removing the snapshot collector reference from my project.

We are currently seeing this error. Looks related?

1026
1
0
Keywords

277402015
Application
RD0003FF2BD0FF

Application: w3wp.exe CoreCLR Version: 5.0.421.11614 .NET Version: 5.0.4 Description: The process was terminated due to an unhandled exception. Exception Info: System.AggregateException: One or more errors occurred. (The semaphore has been disposed.) ---> System.ObjectDisposedException: The semaphore has been disposed. at System.Threading.SemaphoreSlim.CheckDispose() at System.Threading.SemaphoreSlim.Release(Int32 releaseCount) at System.Threading.SemaphoreSlim.Release() at Microsoft.ApplicationInsights.SnapshotCollector.Pipeline.ProducerConsumerQueue`1.Produce(T workItem) at Microsoft.ApplicationInsights.SnapshotCollector.Uploader.EnqueueRequest(Request request) at Microsoft.ApplicationInsights.SnapshotCollector.Uploader.Shutdown() at System.Threading.CancellationToken.<>c.<.cctor>b__26_0(Object obj) at System.Threading.CancellationTokenSource.CallbackNode.<>c.b__9_0(Object s) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from previous location --- at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.CancellationTokenSource.CallbackNode.ExecuteCallback() at System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(Boolean throwOnFirstException) --- End of inner exception stack trace --- at System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(Boolean throwOnFirstException) at System.Threading.CancellationTokenSource.NotifyCancellation(Boolean throwOnFirstException) at System.Threading.CancellationTokenSource.Cancel() at Microsoft.ApplicationInsights.SnapshotCollector.ApplicationLifetimeManager.Stop() at Microsoft.ApplicationInsights.SnapshotCollector.AssemblyLoadContextLifetimeManager.OnUnloading(Object sender) at System.Runtime.Loader.AssemblyLoadContext.OnProcessExit() at System.AppContext.OnProcessExit()


Fix branch list include commit id

Fix #1216

Codecov Report

Merging #1219 (6759519) into master (8558324) will increase coverage by 0.00%.
The diff coverage is 95.00%.

@@           Coverage Diff           @@
##           master    #1219   +/-   ##
=======================================
  Coverage   47.17%   47.18%
=======================================
  Files         199      199
  Lines       15183    15192    +9
=======================================
+ Hits         7163     7168    +5
- Misses       7089     7091    +2
- Partials      931      933    +2

Impacted Files
Coverage Δ

api/client.go
3.22% <ø> (ø)

catalog/mvcc/cataloger_list_branches.go
87.50% <92.85%> (+3.50%)
:arrow_up:

api/api_controller.go
39.66% <100.00%> (+0.07%)
:arrow_up:

catalog/rocks/cataloger.go
24.77% <100.00%> (ø)

catalog/mvcc/cataloger_create_repository.go
59.25% <0.00%> (-3.71%)
:arrow_down:

catalog/mvcc/cataloger_create_branch.go
81.53% <0.00%> (-3.08%)
:arrow_down:

Continue to review full report at Codecov.

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

Codecov Report

Merging #1219 (6759519) into master (8558324) will increase coverage by 0.00%.
The diff coverage is 95.00%.

@@           Coverage Diff           @@
##           master    #1219   +/-   ##
=======================================
  Coverage   47.17%   47.18%
=======================================
  Files         199      199
  Lines       15183    15192    +9
=======================================
+ Hits         7163     7168    +5
- Misses       7089     7091    +2
- Partials      931      933    +2

Impacted Files
Coverage Δ

api/client.go
3.22% <ø> (ø)

catalog/mvcc/cataloger_list_branches.go
87.50% <92.85%> (+3.50%)
:arrow_up:

api/api_controller.go
39.66% <100.00%> (+0.07%)
:arrow_up:

catalog/rocks/cataloger.go
24.77% <100.00%> (ø)

catalog/mvcc/cataloger_create_repository.go
59.25% <0.00%> (-3.71%)
:arrow_down:

catalog/mvcc/cataloger_create_branch.go
81.53% <0.00%> (-3.08%)
:arrow_down:

Continue to review full report at Codecov.

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


threads! (+ some fixes)

ok, this is kind of a big PR so let me briefly explain each commit.
da007da: I noticed that sometimes media attachment URLs had a superfluous / and couldn't be displayed because of that → fixed!
a7b8c0b: when you quoted a message that has inline emoji, the client looked for the images in the quoter's portal (not the quotee's) → fixed!
372f75a: this introduces rendering of quote-threads! if there is more than one quote (as in, the quote has a quote, etc.), a "expand n quotes" message appears. clicking it will validate expand:name-ref, and the thread will be shown. clicking "collapse quotes" on an expanded thread will validate collapse:name-ref, and the thread is hidden once more. threads → implemented!
5180280: this re-fixes the issue that you would lose your scroll position when you typed in the operator input field, but with pure CSS. the hacky JS solution I made before had introduced some ugly flickering → fixed!

Seeding as 0.2.0! This is such a big update. It works amazingly.
Thanks @eelfroth


CheckStartStateBounds does not support REVOLUTE and NOT Continuous type joints

Description
CheckStartStateBounds does not support REVOLUTE and NOT Continuous type joints
Your environment

ROS Distro: Jazzy
OS Version: e.g. Ubuntu 24.04
Binary build 2.10.0

Steps to reproduce

Set the initial posture of the actual robot to a position beyond the urdf limit.
Press “plan” button in rviz to plan the trajectory.

Expected behaviour
CheckStartStateBounds is not SUCCESS. And fixed to joint limit in case fix_start_state is true.
Actual behaviour
CheckStartStateBounds is SUCCESS.
Details
In https://github.com/moveit/moveit2/pull/2429, CheckStartStateBounds is refactored.
The logic has also been changed so that the check is skipped for non-infinite rotation joints, which are used in most arm joints.
https://github.com/moveit/moveit2/blob/a7fe0df4c565db15710581bdcba1d33d70aa0ddb/moveit_ros/planning/planning_request_adapter_plugins/src/check_start_state_bounds.cpp#L105-L120

Looking at the code - yup, this is definitely an issue - the switch statement logic will basically never hit the default case

Does this just involve moving the break; in that block up one indentation level?

The original logic was:

for each joint model:

if REVOLUTE & continuous, call enforceBounds() [OK]
else

if PLANAR - normalizeRotation [OK]
else FLOATING - normalizeRotation [OK]

read parameters
for each joint model:

apply the satisfiesBounds logic

I think we actually just need to pull the "default" case outside the switch statement and do it for all joints?


Implement "Required Asterisk Icon" next to Label of required fields.

Or
*

.required{
      color:red;
}

There is better solution to remove the red start after each radiolist items - just filter it in selector
div.required label.control-label:after {
    content: " *";
    color: red;
}

div.required label:after {
content: " *";
color: green;
}

Hi cebe,
div.required label:after {
content: " *";
color: red;
}
is a good solution but it is not working in hosted server


Calendar component

Is your feature request related to a problem? Please describe.
Why isn't calendar built in as a native input type?! Also, I haven't seen any date range pickers.
Describe the solution you'd like
I want a clean, extensible, responsive web-component calendar. It could be used to select single dates or date ranges. It could also be used to simply display information, but maybe that's getting too far into specific use-cases.
Describe alternatives you've considered
There are too many to name!
Additional context
Add any other context or screenshots about the feature request here.

Hi @positlabs!
First of all, sorry for the late response, but thank you very much for your request :D
You are right, the Datepicker is an important feature that is missing in the current version, but there are good news: it will be part of an upcomming version.
We can not exactly tell when this will be released, but it's on the way - so stay tuned ;)
If there is anything else we can do for you, do not hesitate to contact us.
Thanks again!


Implement in Fragment

Hi,
I would like to implement this in library in fragment. How can I do that? Also, I need to add scanner overlay to the first object that was detected. Please help.

You can embed BarcodeCaptureFragment inside another fragment. If you use the SINGLE_AUTO mode then the library highlights only the first item.


unit tests for vesting smart contract #337

fix critical bug in vesting smart contract
fix unit tests

Please, merge all commits into one with the task number in the commit header.


Convert SN76489 to AY8910 to retain the noise channel

The noise channel conversion has been supported at 0.8.4. Note: conversions are done on best-effort basis;  due to the architectural difference between SN76489 and AY8910, a complete conversion is not possible in principle.


Add contributor report workflow

Having a regular report on the contributors to our Project can be helpful to identify new contributors (to reach out to them as suggested in #17, or to help finding new approvers, maintainers, etc.)
(Note: This is an almost 1:1 copy from a workflow @lelia created for the Cisco OSPO)

FYI, challenge is the amount of contributions + amount of repos we have, a trial run was getting into some rate limiting issues: https://github.com/svrnm/sig-contributor-experience/actions/runs/10160147333/job/28095877056

Could we use CNCF devstats for this?

Could we use CNCF devstats for this?

I didn't find a way to identify first time contributors with CNCF DevStats, but I need to double check on that

There's a list of new contributors here: https://opentelemetry.devstats.cncf.io/d/52/new-contributors-table?orgId=1

There's a list of new contributors here: opentelemetry.devstats.cncf.io/d/52/new-contributors-table?orgId=1

I totally missed that one, thank you!


Just curious: doesn't this reveal your API secret on the Sanity bundle?

If you put your token directly on the config, it will get bundled into the client bundle, and can be access even if the person is not logged in, by going to dev tools.
Any workaround for this?
Thanks!

I'm curious about this too. I tried to use environment variables but Sanity didn't recognize them during the build process and Studio threw errors.

@srizvi did you use SANITY_STUDIO_ prefix for the vars? https://vitejs.dev/guide/env-and-mode.html#env-variables-and-modes

@srizvi did you use SANITY_STUDIO_ prefix for the vars? https://vitejs.dev/guide/env-and-mode.html#env-variables-and-modes

Of course not @filipesmedeiros! Thanks. I'll try again.


Feature request: did-enter-viewport and did-exit-viewport element modifiers

Would be awesome to be able to do things like:
<div
  {{did-enter-viewport enterCallback}}
  {{did-exit-viewport exitCallback}}
>
  Foo
</div>

Where enterCallback and exitCallback are functions or actions that receive the element as a parameter.

Interesting idea and thx for putting up an issue.  So you are referring to this RFC I'm guessing? https://github.com/emberjs/rfcs/pull/353/files
Since these functions are called once I believe, what exactly would these modifiers do?  What happens when they elements they are bound to are not in viewport, but are still only called once (ie. not watchign the DOM)

@gmurphey Is this something you would want to work on?  Otherwise, I'll see about getting it done on our side!

I'm starting work on this.  There is quite a bit to do, including ensuring we have a shared cache that can be referenced across boundaries (mixin / modifier)

@gmurphy #179. Seems pretty simple and would require installing https://github.com/emberjs/ember-render-modifiers and using the ‘did-insert’ hook.  What do you think?


Resend domain objects

Decouple messaging from domain objects - specific for ResendRequest and ResendResponse.

Codecov Report

Merging #1104 into master will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##             master    #1104   +/-   ##
=========================================
  Coverage     99.36%   99.36%
  Complexity     2309     2309
=========================================
  Files           355      357    +2
  Lines          6431     6466   +35
  Branches        372      373    +1
=========================================
+ Hits           6390     6425   +35
  Misses            5        5
  Partials         36       36

Flag
Coverage Δ
Complexity Δ

#unittests
99.36% <100.00%> (+<0.01%)
2309.00 <5.00> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ
Complexity Δ

.../com/quorum/tessera/transaction/ResendRequest.java
100.00% <100.00%> (ø)
0.00 <0.00> (?)

...com/quorum/tessera/transaction/ResendResponse.java
100.00% <100.00%> (ø)
0.00 <0.00> (?)

...um/tessera/transaction/TransactionManagerImpl.java
100.00% <100.00%> (ø)
38.00 <4.00> (ø)

...main/java/com/quorum/tessera/util/Base64Codec.java
100.00% <100.00%> (ø)
3.00 <1.00> (?)

...va/com/quorum/tessera/p2p/TransactionResource.java
100.00% <100.00%> (ø)
5.00 <0.00> (ø)

Continue to review full report at Codecov.

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


Presence of overload causes overload resolution to fail

When a method has an overload with the same number of parameters, some otherwise valid expressions may no longer be inferred correctly and overload resolution may fail.
In the code below, we have two methods: count1 and count2. Both methods have an overload that takes a single IList<Base> argument. When calling this method with arrays containing various mixtures of instances of base and derived types, overload resolution succeeds always for count1 but only in 1 out of 4 cases for count2.
The presence of an overload with the same number of parameters seems to be the trigger for the failure. Adding additional parameters to all overloads gives identical results.
type Base(x : int) =
    member self.X = x
    static member count1(x : System.Collections.Generic.IList<Base>) = 0
    static member count1() = 0
    static member count1(x : int, y : int) = 0
    static member count2(x : System.Collections.Generic.IList<Base>) = 0
    static member count2(x : int) = 0
type Derived(x : int) = inherit Base(x)
let a = Base(1)
let b = Derived(1)

let c1 = Base.count1([| a; a |]) // OK
let c2 = Base.count1([| a; b |]) // OK
let c3 = Base.count1([| b; a |]) // OK
let c4 = Base.count1([| b; b |]) // OK

let d1 = Base.count2([| a; a |]) // OK
let d2 = Base.count2([| a; b |]) // b expected to have type Base
let d3 = Base.count2([| b; a |]) // No overloads match
let d4 = Base.count2([| b; b |]) // No overloads match

I can confirm this behavior for VS2015, F# 4.0.

remove the last count2 and it behaves normally
add an extra param to the last count2 and it behaves normally
change the last count2 to count2() and it behaves normally
the same behavior can be observed when you change the IList<Base> type to seq<Base>
a slightly different behavior can be observed when you change it to seq<_> (you cannot mix the types then, i.e. [|a; b |] and [|b; a\] then both fail, but that's perhaps by design/expected)
another behavior can be observed with static member count2<'a when 'a :> Base>(_ : seq<'a>), which I would take as an alternative syntax for the OP. Incidentally, it succeeds more lines, but it fails for the same reasons as the previous point. It accepts Derived and it accepts Base, but no mix. Again, I'm not sure if this is a co/contra variance restriction or part of this bug.

This is by design. It happens when you combine the use of arrays of elements of different types with overload resolution.
F# has a rule where an array literal [| ... |] can have elements of different types when the array type is "known" before the array literal is checked.  The array type becomes known to type inference through the rules in the F# language spec.  One way that types become known is through the use of method overloads eagerly resolved according to the number of arguments. This means that adding new overloads can affect the set of known types.
F# uses rules like this (where known types permit further coercions when processing literals) very sparingly - array/list literals are one of the only such places.
A common workaround is to cast the elements of the array in the array literal [| (a :> A); (b :> A) |]


Added support for comment(s) for column definitions in CREATE TABLE s…

Added support for comment(s) for column definitions in CREATE TABLE statements.

CREATE TABLE table_name (id bigint (20) NOT NULL AUTO_INCREMENT, another_column_id bigint (20) NOT NULL COMMENT 'column id as sent by SYSTEM', PRIMARY KEY (id), UNIQUE KEY uk_another_column_id (another_column_id))

This should fix 742

Coverage decreased (-0.2%) to 82.786% when pulling 3a85e2400d971b5cdc054887d8230995ae99b716 on PraTrick:742 into cb0e0b79564258aaa56984035733136091ddb71d on JSQLParser:master.


Add an HTTP protocol versions sandbox

description
it would be great to have a sandbox that demonstrated http3/quic - it would also be quite handy to have a sandbox that demonstrated proxying between protocol versions - ie

3 backend servers each providing one of http 1/2/3
3 frontend servers also fixed to 1/2/3 but proxying to the backends

we probs also want it to proxy to upstream https - which would hopefully catch issues like #17105

I would like to pick this one. If I understand the issue correctly then - we would like to have the following configs

Three listeners - one each for HTTP/1, HTTP/2 and HTTP/3(QUIC)
Three backend clusters - one each for HTTP/1, HTTP/2 and HTTP/3(QUIC)
Three routes per listener (or HTTP connection manager filter) - each one leading to HTTP1/2/3 cluster.

This demonstrates - HTTP1/2/3 from the original client translated to HTTP1/2/3 for upstream traffic. Correct? On HTTPS - QUIC anyways need TLS configuration. So we can have TLS for all. What do you think?

For HTTP->HTTPS proxying : Isn't it covered by https://github.com/envoyproxy/envoy/blob/main/examples/tls/docker-compose.yaml?


Non-ISO format used in NPM download

The version downloaded from NPM uses a non-ISO date (YYYY/MM/DD) at
https://github.com/c-trimm/moment-recur/blob/master/moment-recur.js#L737
This causes the moment warning: "Deprecation warning: value provided is not in a recognized ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.
Arguments"
master has the correct format of YYYY-MM-DD.

I've published the latest version to NPM, so this should now be fixed. Thanks!

This bug is back :(


113-add-opentelemetry-tracing

Added 2 new HTTP middleware to support traced request context with span
Update readme with installation instructions

As next steps, we should think about exploring log support via otel, but it is still in beta stage for Go
Closes #113

Codecov Report
Attention: Patch coverage is 95.34884% with 2 lines in your changes missing coverage. Please review.

Project coverage is 92.79%. Comparing base (9694fba) to head (cdd52be).

Files
Patch %
Lines

middleware/http/tracer.go
93.75%
1 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #114      +/-   ##
==========================================
+ Coverage   92.68%   92.79%   +0.10%
==========================================
  Files          27       29       +2
  Lines        1012     1055      +43
==========================================
+ Hits          938      979      +41
- Misses         53       54       +1
- Partials       21       22       +1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

ready for review


Add postgres to the Dockerfile

:wave:
Hi Miguel! Thank you for writing this great tutorial on Flask. I come back to it every so often to keep my python and flask skills up to date.
I noticed in the Dockerfile that postgres doesn't install when you run the build, generating the following error:
Collecting psycopg2==<IP_ADDRESS> (from -r requirements.txt (line 39))
  Downloading https://files.pythonhosted.org/packages/6b/fb/15c687eda2f925f0ff59373063fdb408471b4284714a7761daaa65c01f15/psycopg2-<IP_ADDRESS>.tar.gz (425kB)
    Complete output from command python setup.py egg_info:
    running egg_info
    creating pip-egg-info/psycopg2.egg-info
    writing pip-egg-info/psycopg2.egg-info/PKG-INFO
    writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt
    writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt
    writing manifest file 'pip-egg-info/psycopg2.egg-info/SOURCES.txt'
    Error: pg_config executable not found.

    Please add the directory containing pg_config to the PATH
    or specify the full executable path with the option:

        python setup.py build_ext --pg-config /path/to/pg_config build ...

    or with the pg_config option in 'setup.cfg'.

I was able to resolve this by adding the necessary postgres dependencies to the Dockerfile as noted in the PR.
Please let me know if you have any questions, or if this Dockerfile is intended by design. Thanks! 😺

The psycopg2 dependency is only used for the Heroku deployment, not that after the Heroku commit I commented it out: https://github.com/miguelgrinberg/microblog/blob/master/requirements.txt#L41. The Docker deployment uses MySQL.

@miguelgrinberg Ahh, that makes sense! Looking at my requirements file, I left psycopg2 uncommented while running docker build -- Makes sense now.
Happy to close this out. Do you think it makes sense in a README to add some information regarding which DBs are used in specific environments?

I think the blog articles cover this well enough. The readme file in this project does not have any content, it just a links to the articles.

Sounds great, thank you for the quick response ✨


If I have three or a lot routes, all use :id to match, how to judge the rendering specified page. What if there is a root page

If I have three or a lot routes, all use :id to match, how to judge the rendering specified page. What if there is a root page.

I would also recommend posting code examples. It is hard to know what you are asking without code.

How do I optimize if I have multiple pages to match?

How do I optimize if I have multiple pages to match?

Use app.param and define two different parameter names that will validate if it's in the list or not.
If you can post the code as text instead of an image, I can modify it to show how.

server.get('/:id', (req, res) => {
var a ={name:'boa',age:'12'}
var b ={city:'zhengzhou'}
var c ={countries：'china'}
var aa = a[req.params.id];
var bb= b[req.params.id];
varcc = c[req.params.id];
if (aa) {
const actualPage = '/a'
const queryParams = {
id: req.params.id
}
app.render(req, res, actualPage, queryParams)
} else if (bb) {
const actualPage = '/b'
const queryParams = {
id: req.params.id
}
app.render(req, res, actualPage, queryParams)
}else if (c) {
const actualPage = '/c'
const queryParams = {
id: req.params.id
}
app.render(req, res, actualPage, queryParams)
}else{
return handle(req, res)
}
})
If I have a dynamic route under the route, how do I match？
For example,  /:id/:class

For your original question:
  var a ={name:'boa',age:'12'}
  var b ={city:'zhengzhou'}
  var c ={countries：'china'}

server.param(':aid', (req, res, next, id) => {
  if (a[id]) next();
  else next('route');
});
server.get('/:aid', (req, res) => {
     const actualPage = '/a'
     const queryParams = {
       id: req.params.id
     }
     app.render(req, res, actualPage, queryParams)
});

server.param(':bid', (req, res, next, id) => {
  if (b[id]) next();
  else next('route');
});
server.get('/:bid', (req, res) => {
     const actualPage = '/b'
     const queryParams = {
       id: req.params.id
     }
     app.render(req, res, actualPage, queryParams)

server.param(':cid', (req, res, next, id) => {
  if (c[id]) next();
  else next('route');
});
server.get('/:cid', (req, res) => {
     const actualPage = '/c'
     const queryParams = {
       id: req.params.id
     }
     app.render(req, res, actualPage, queryParams)
});

server.get('/:id', handle);

If you have additional question, please use https://gitter.im/expressjs/express for support, at this is an issue tracker for bugs and features.

thankyou very much


[Feature Request] Include 'artists' count from Tautulli

Is your feature request related to a problem? Please describe.
I would like to have an "Artists" count in Grafana.
Describe the solution you'd like
0001-Add-count-for-artists-to-InfluxDB-scrape.patch.tar.gz
Describe alternatives you've considered
N/A
Additional context
Patch file attached.

On the off-chance the attachment doesn't work:
From 9eeaaf8a7626c71c6e658089aea82581982a3fdd Mon Sep 17 00:00:00 2001
From: Jonathan Backhaus<EMAIL_ADDRESS>Date: Sun, 29 Dec 2019 11:37:09 -0500
Subject: [PATCH] Add count for artists to InfluxDB scrape

---
 varken/tautulli.py | 1 +
 1 file changed, 1 insertion(+)

diff --git a/varken/tautulli.py b/varken/tautulli.py
index c0ec8e5..a8d677b 100644
--- a/varken/tautulli.py
+++ b/varken/tautulli.py
@@ -218,6 +218,7 @@ class TautulliAPI(object):
                 data['fields']['episodes'] = int(library['child_count'])

             elif library['section_type'] == 'artist':
+                data['fields']['artists'] = int(library['count'])
                 data['fields']['albums'] = int(library['parent_count'])
                 data['fields']['tracks'] = int(library['child_count'])
             influx_payload.append(data)
--
2.24.1

In the future please put in a PR and do not just provide a patch file. That would make things a whole lot easier.
I have added it to develop. It will be in the next release.

Thanks, sorry, and will-do!


bandit insecure code analyzer issues

Hi!
Ran the security linter bandit ( https://pypi.org/project/bandit/ ) through this package and found 2 issues that might be worth looking into
Run started:2019-09-11 11:53:54.804266

Test results:
>> Issue: [B404:blacklist] Consider possible security implications associated with PIPE module.
   Severity: Low   Confidence: High
   Location: ./video_encoding/backends/ffmpeg.py:7
   More Info: https://bandit.readthedocs.io/en/latest/blacklists/blacklist_imports.html#b404-import-subprocess
6	import tempfile
7	from subprocess import PIPE, Popen
8
9	import six

--------------------------------------------------
>> Issue: [B603:subprocess_without_shell_equals_true] subprocess call - check for execution of untrusted input.
   Severity: Low   Confidence: High
   Location: ./video_encoding/backends/ffmpeg.py:66
   More Info: https://bandit.readthedocs.io/en/latest/plugins/b603_subprocess_without_shell_equals_true.html
65	            return Popen(
66	                cmds, shell=False,
67	                stdin=PIPE, stdout=PIPE, stderr=PIPE,
68	                close_fds=True,
69	            )
70	        except OSError as e:

--------------------------------------------------

Code scanned:
	Total lines of code: 22531
	Total lines skipped (#nosec): 1

Run metrics:
	Total issues (by severity):
		Undefined: 0.0
		Low: 2.0
		Medium: 0.0
		High: 0.0
	Total issues (by confidence):
		Undefined: 0.0
		Low: 0.0
		Medium: 0.0
		High: 2.0
Files skipped (0):
Exited with code 1

Hi @escaped , sorry for the late reply but we could avoid this by sanitising the allowed parameters that can be run and the filenames.
Right now, with a malicious filename, I can get code execution in the video processing machine.

actually, we can fix all this by using this wrapper library instead.
https://github.com/kkroening/ffmpeg-python


Building dependencies for Debian: qml6-module-qt5compat-graphicaleffects

Contour Terminal version
Contour Terminal Emulator 0.4.0-master-ce5d3bb
Installer source
Github: source code cloned
Operating System
Debian GNU/Linux trixie/sid Linux 6.5.0-1-amd64
Architecture
x86-64
Other Software
No response
Steps to reproduce
Build contour following the readme.
Expected Behavior
The terminal window should open when running.
Actual Behavior
No window and the console output [error] Missing key .logging.enabled. Using default: false.
[error] Missing key .logging.file. Using default: "".
[error] Missing key background_image.path. Using default: "".
[error] Missing key .refresh_rate. Using default: 0.
[error] Superfluous config key found: profiles.main.frozen_dec_modes.2026
Info: libpng warning: iCCP: known incorrect sRGB profile ((null):0, (null))
Warning: QQmlApplicationEngine failed to load component ((null):0, (null))
Warning: qrc:/contour/ui/main.qml:30:5: Type Terminal unavailable (qrc:/contour/ui/main.qml:30, (null))
Warning: qrc:/contour/ui/Terminal.qml:8:1: module "Qt5Compat.GraphicalEffects" is not installed (qrc:/contour/ui/Terminal.qml:8, (null))

Additional notes
The issue is resolved by installing qml6-module-qt5compat-graphicaleffects with apt.
This dependency is in ./scripts/install-deps.sh for Ubuntu, but not for Debian.

Thanks @tkapias  for taking the time to create the issue and let us know which package is missing, we switched to qml recently and there have been no releases with qml yet, so not all distros/platforms are thoroughly tested, I will fix this issue in install-deps.sh script


Replacement node must be copy

Already done in https://github.com/mnkiefer/html2notebook/pull/40


disable window resize ??

Hello everyone, is there any way to disable the resizing of the webui window?

I guess not. The window is not an object in your application, but it's a web browser. But you can try some JavaScript to disable the resizing of the window probbaly.

There're a little tricky way to do it
window.allow_height = 480;
window.allow_width = 640;

window.resizeTo(window.allow_width, window.allow_height);
window.addEventListener("resize", ()=>{
    if(window.outerHeight==window.allow_height && window.outerWidth==allow_width) return;
    window.resizeTo(window.allow_width, window.allow_height);
});


Bundle OpenEXR and enable import & conversion plugins

Motivation and Context
This PR enables OpenEXR that's needed for @bigbike's PBR IBL and HDR / depth image export. It adds support for importing and converting OpenEXR files with half-float (for color), float (for depth) and integer (for object ID) channels, including cubemaps and multiple mip levels per file.
Apart from that, the magnum-imageconverter tool got extended to make working with cubemap and multi-level EXR files easier. Running --info will give an overview of what's there:
$ magnum-imageconverter --info cube.exr
3D image 0: PixelFormat::RGB16F Vector(256, 256, 6)
$ magnum-imageconverter --info cube-mips.exr
3D image 0:
  Level 0: PixelFormat::RGB16F Vector(256, 256, 6)
  Level 1: PixelFormat::RGB16F Vector(128, 128, 6)
  Level 2: PixelFormat::RGB16F Vector(64, 64, 6)
  Level 3: PixelFormat::RGB16F Vector(32, 32, 6)
  Level 4: PixelFormat::RGB16F Vector(16, 16, 6)
  Level 5: PixelFormat::RGB16F Vector(8, 8, 6)
  Level 6: PixelFormat::RGB16F Vector(4, 4, 6)
  Level 7: PixelFormat::RGB16F Vector(2, 2, 6)
  Level 8: PixelFormat::RGB16F Vector(1, 1, 6)

The following will combine 6 2D cube map faces into a single 3D EXR file:
magnum-imageconverter --layers -c envmap=cube -- \
    +x.exr -x.exr +y.exr -y.exr +z.exr -z.exr cube.exr

This will make a file that contains several mipmap levels:
magnum-imageconverter --levels -c envmap=cube -D3 \
    cube-256.exr cube-128.exr cube-64.exr cube-mips.exr

And, as the inverse of above, this will extract a single level of a particular face back into a 2D image:
magnum-imageconverter cube-mips.exr --layer 2 --level 1 +x-128.exr

Please check out the full documentation for more information:

OpenExrImporter
OpenExrImageConverter, note the compression options there
AbstractImageConverter APIs for saving a file with multiple mip levels
magnum-imageconverter

Open questions / TODOs:

[ ] OpenEXR does not support 8 bits per channel, only 16- and 32-bit floats, which means converting (LDR) JPEG images to a (HDR) EXR can't be done directly with magnum-imageconverter. I attempted to implement this as a convenience feature in the tool but abandoned the idea halfway through, as I don't feel it's important enough compared to my other tasks.
[ ] :warning: OpenEXR requires CMake 3.12, while Habitat CIs run on 3.11 right now. Should we upgrade there?
[ ] Right now, OpenEXR is bundled and enabled always, since I don't know if it'll be an integral part of the PBR pipeline or something optional. (OTOH there's an option to use a system installation of it.) The goal of this PR is to prepare the groundwork for HDR additions to @bigbike's PBR pipeline, leaving the decision about EXR being optional or not for later.
[ ] I have no idea if the OpenEXR library builds on Emscripten and if we actually want it enabled there (download sizes, etc.). Opinions?

How Has This Been Tested
Magnum changes tested locally and on my CIs. Habitat build fails due to the above-mentioned CMake requirement.
Types of changes

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

We need to bump our minimum CMake for this PR.

I'm fine bumping cmake.  Since we support cmake installed via pip install cmake I don't see any reason why we can't bump it.

So I just tested it, and it looks like it increases compilation time by 20-30 seconds at most. We don't really care at all about binary size at all at the moment so I would just leave it enabled by default.

Haha, everything is relative. 20-30 seconds is the time needed to compile the whole Magnum :)
Sure, if that's fine, feel free to press the merge button.


:bookmark: Release 3.3.0

Codecov Report
All modified lines are covered by tests :white_check_mark:

Comparison is base (5aed9a4) 89.96% compared to head (9430681) 89.96%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##           master     #353   +/-   ##
=======================================
  Coverage   89.96%   89.96%
=======================================
  Files          12       12
  Lines        1206     1206
=======================================
  Hits         1085     1085
  Misses        121      121

Files
Coverage Δ

charset_normalizer/version.py
100.00% <100.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add files via upload

sinusoidal bragg with period change

fyi, there is an efficient way to do Bragg test structures:


add blog post link

Description
add blog post link
General Checklist

[x] Tests added for this feature/bug
if it was a bug, test must cover it.
[x] Conform by the style guides, by using formatter
[x] Documentation updated
[x] (optional) Please add a label to your PR

Pull Request Test Coverage Report for Build 810854632

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 0.0%

Totals

Change from base Build 810654050:
0.0%

Covered Lines:
0

Relevant Lines:
0

💛  - Coveralls


Create stress tests for galaxy

@jvasilje asked for some 24h stress tests for galaxy like we do for single card.
We should start with TG.
cc: @ttmchiou @TT-billteng

We can help with making the workflow, but galaxy runtime devs should choose what tests to put in there.

How often do you want to run the 24h stress tests? It's straight forward enough to add. We can for one add testing for all chips, maybe loop that for 24 hours? I think models are still a bit unstable for now, will likely not survive 24 hours 🧟

That's fine with me. When you say unstable. is it hangs?

Yes.

@aliuTT Any updates on the breadth of galaxy unit tests that are stable enough to add to a stress test, and are comprehensive enough that it touches all modules?

We have a CommandQueueSingleCardFixture test suite that could work well here (take a look at tests/tt_metal/tt_metal/unit_tests_fast_dispatch/common/command_queue_fixture.hpp). Today it does two things:

No env flag: only runs on chip 0
TT_METAL_ENABLE_REMOTE_CHIP=1 sweeps test over remote chips
I can add an env flag to sweep over all chips in the system?

That would be great!

@SeanNijjar Since Allan is OOO right now, are there any important unit tests on TG that we could add to this?

@SeanNijjar ping on this again
Anything we could add?

Hey @tt-rkim - Sorry I missed this, I was out last week and must have slipped through the cracks when I came back.
Basically, we've got the TG frequent tests and they're structured such that we can take the same tests and start adding the regular t3k allgather nightly tests to TG as a starting point. I don't think that's something you should be concerned with unless you have spare cycles.
Probably the best starting place would be to take @cfjchu's data parallel llama70B where he instantiated 4 copies of the llama 70B model on a galaxy.


Sorting out preview links

Fixes #18 and #19

Let's remove the previewing logic out of the versioning component, instead it should be it's own component or just live between publishing & versioning in the center of that bar.
Also it should link to the external preview URL, not the internal one we use for content versions. Those are two different use-cases.

I've kept preview as a standalone for now and can refactor it if/when we add more actions to it.

LGTM aside from having one central place where we use m.route.param (mostly for organization sake)

Nitpicking is absolutely fine by me. Should be everything now?

:+1:


Cross-thread/realm issues esp. with module blocks

(This partially follows this comment however it covers wider concerns and possible solutions).
So the new proposal introduces Module which allows for customizing import behaviour with JS hooks. Additionally one desirable is the capability of loading such modules in other realms or threads (e.g. in Workers).
However as currently specified, Module cannot support any evaluation inside another thread or realm due to the fact that in their construction contain realm objects that can't be exposed to other ShadowRealms and certainly not threads.
i.e. Suppose we had this module:
function importHook(specifier, importMeta) {
    // ...
}

// Object in this realm
const importMeta = { someApi: () => { /* ... */ } };
const source = new ModuleSource(`
    console.log(import.meta);
`);
const mod = new Module(source, {
    importHook,
    importMeta,
});

We can't possibly evaluate this module in another thread or even a ShadowRealm due to the fact that importMeta is an object tied to the original realm.
Now host vended modules don't neccessarily share this property, if we had the proposed form for loading a module as a Module (from the import reflection proposal):
import module someModule from "./someModule.js";

Such a module should be perfectly sharable into shadow realms or across threads, as the import.meta objects and such need not have been created. i.e. This should be able to be supported:
import module someModule from "./someModule.js";

const shadowRealm = new ShadowRealm();
// This should be fine as the host can create import.meta in the right realm
const someExport = await shadowRealm.import(someModule, "default");

Okay so this split might not be the biggest problem, one might be able to transfer module sources or such into shadow realms/threads instead. e.g. From the user's perspective it may be the case that modules created by new Module simply can't be shared. However this "solution" starts to really break down in the presence of module blocks:
Module Blocks exacerbate these problems
So the entire point of the module block proposal is that you can get an unevaluated module and send it elsewhere to be evaluated. For those not familiar with the proposal it would allow something along these lines:
// worker.js

self.addEventListener("message", async ({ data: { moduleBlock } }) => {
    const mod = await import(moduleBlock);
    const result = await mod.default();
    postMessage({ result });
});

// Module to evaluate in another thread
const moduleBlock = module {
    import * as someLib from "./someLib.js";

    export default function numberCrunch() {
        let total = 0;
        for (let i = 0; i < 100000000; i++) {
            total += i;
        }
        return total;
    }
}

const worker = new Worker("./worker.js");
worker.onmessage = ({ result }) => {
    // do something with result
}

// perform task in other thread
worker.postMessage({ moduleBlock });

However an issue is quickly presented with module blocks, in order for this to work the host needs to be able to create the module block on the other thread. Now because module blocks inherit their loading and import.meta behaviour from the parent module now if we create a Module instance with a module block:
const source = new ModuleSource(`
    const moduleBlock = module {
        // Oops this object is in the wrong thread
        console.log(import.meta);
    };

    const worker = new Worker("./worker.js");

    // This breaks because this Module isn't a "host" module, this completely
    // breaks the entire module-blocks feature
    worker.postMessage({ moduleBlock });
`);
const mod = new Module(source, {
    importHook,
    importMeta,
});

// Throws an error
await import(mod);

In order to repair this every module would need to know if they were loaded using a userland Module, if they were they would need to communicate module blocks in a completely different way to threads, essentially destroying the whole feature anytime a non-host loader was used.
A rough solution idea
So this problem ultimately stems from the fact that host modules have capabilities otherwise inaccessible to the currently specified modules. And that capability is the ability to create objects in any realm/thread.
I'd like to propose a change that allows hosts to essentially offer the same capabilities to userland modules (if they want), while still preserving the usual run-to-completion invariants and such.
In particular I'd propose that Module objects are created with the following things:

A module source
An import hook, this is just a function that returns Module instances, this is fairly similar to the current proposal but doesn't capture importMeta
An importMeta initializer MODULE that can be used to initialize import.meta in the host
Some arbitrary data that is structured cloned along with the Module object

The exact shape isn't too important, but basically the idea is that everything can either be transferred into another realm, or there is a way to communicate back to the original realm for behaviour like importHook.
For example consider the following module:
function importHook(specifier, data) {
    // ... some resolution behaviour
    return someModule;
}

// Let's suppose for simplicity module blocks exist
const initializeImportMetaModule = module {
    export default function initializeImportMeta(data) {
        // Nothing particularly interesting just a passthrough
        return { url: data.url };
    }
};

const source = new ModuleSource(`
    import other from "other";

    export default "got: " + other;
`);
const data = { url: "uuid:35a109f8-005e-4b03-bf87-464e4198872a" };
const mod = new Module(source, { importHook, data });

now to evaluate such a module in another realm (or thread, but the same behaviour applies):
const shadowRealm = new ShadowRealm();
const result = await shadowRealm.import(mod);

we essentially perform the following process:

First clone the module source, data and initializeImportMetaModule objects into the ShadowRealm
As part of the module linking process:

For each specifier in module: // In this case "other"

Schedule a Job to call importHook in the original realm with the specifier and original data
Await the job getting a Module object (IN THE ORIGINAL REALM)
Clone the resulting module of importHook into the realm we're evaluating in
Recursively link the resulting module using the same process

Note: Now that linking is complete we can proceed to apply importMetaHook
Import the initializeImportMetaModule into the realm using the same process
With the resulting module, call initializeImportMetaModule.default with the cloned data
Finally evaluate the module in the correct realm with the appropriate import.meta

Now this is just one possible design, we could instead have other designs i.e. where importHook itself must be a module and can be cloned to other threads, or tweaks like allowing the cloned data to be customized each time.

@Jamesernator the narrative so far has been that Module instances are not serializable, only ModuleSource instances are. The reason being that the coordination needed across realms for modules to be serializable violates the ShadowRealm's Callable boundary.
We are still weighting whether or not it is possible to serialize certain instances (depending on their configuration). This is subject to:
a) can we have module instances with default hooks?
b) can we transfer instances with default hooks?
Beyond this point, we haven't really go deeper. At some point we discussed serialization of the hooks, but because those hooks will have to receive non-callables, and return non-callable, that idea wasn't sound.

the narrative so far has been that Module instances are not serializable, only ModuleSource instances are. The reason being that the coordination needed across realms for modules to be serializable violates the ShadowRealm's Callable boundary.

If the (in my opinion logical) integration with module blocks was done, then we have a weird divide between user created module blocks vs host created.
Basically it would be nice if hosts could grant equal power to userland modules, as otherwise the mere existence of a module loader breaks host APIs for those modules. i.e. One can't use a loader unless one can also replace every host API that might possibly accept them and somehow repair them. Such repair work would be extremely cumbersome, i.e. the motivating problem for this issue that is loading with a userland loader:
const mod = new Module(new ModuleSource(`
    const workerMod = module {
        import foo from "foo";

        export default function lib() {

        }
    }

    const worker = new Worker("./someWorker.js");

    // This postMessage can't succeed because workerMod has an importHook
    // in the current thread
    worker.postMessage({ module: workerMod });
`), { importHook });

It doesn't seem like a good proposal would require a loader to also repair Worker and every other API that accepts host module blocks to also accept the loader's own module blocks. Maintaining such repairs would be considerable effort, and in many cases such repairs would leave objects that may be less capable than up to date counterparts.

The reason being that the coordination needed across realms for modules to be serializable violates the ShadowRealm's Callable boundary.

but because those hooks will have to receive non-callables, and return non-callable, that idea wasn't sound.

The rough solution I proposed above solves both problems by requiring any code that is to be executed inside other realms be essentially an uncompiled module, i.e. instead of having a same realm object that initializes import.meta:
const mod = new Module(someSource, {
    // Oops same realm object can't be cloned into a ShadowRealm (or thread)
    importMeta: {
        resolve() {

        },
    },
});

we have an actual module that is responsible for creating import.meta:
const mod = new Module(someSource, {
    // This module gets executed within the appropriate ShadowRealm/thread
    importMetaHook: module {
        export function initializeImportMeta() {
            return {
                resolve() {

                }
            }
        }
    }
});

that module is executed inside the ShadowRealm/thread that the module is to be evaluated in, as such all objects are of the correct realm.
The only tricky part is giving a way to communicate appropriate data necessary for populating import.meta, which is why I suggest having some data object that is structured cloned into the appropriate ShadowRealm/thread alongside importMetaHook and passed in as an argument.
(And with structured clone becoming part of ecma262 the neccessary framework for such cloning can just be used directly).


Document run sub command

Similar to system-tests and build-artifacts

@Funkabell can you take it? Needed mostly for running check-network.


Fix deprecation warnings due to invalid escape sequences.

Type of changes

[x] Bug fix
[ ] New feature
[ ] Documentation / docstrings
[ ] Tests
[ ] Other

Checklist

[ ] I've run the latest black with default args on new code.
[ ] I've updated CHANGELOG.md and CONTRIBUTORS.md where appropriate.
[ ] I've added tests for new code.
[ ] I accept that @willmcgugan may be pedantic in the code review.

Description
Fixes #210

Thanks.

Thanks @willmcgugan :)


npm i @hugeicons/react

npm error 404 Not Found - GET https://registry.npmjs.org/@hugeicons%2Freact - Not found
npm error 404
npm error 404  '<EMAIL_ADDRESS>is not in this registry.
npm error 404
npm error 404 Note that you can also install from a

Bruh

How did you solve it 👉👈

By removing it from my project, dead package👍

I don't remember asking you

By removing it from my project, dead package👍

I don't recall asking you

unfortunately ponenz might be right

Hi there,
We apologize for the inconvenience you’re experiencing. The issue was caused by an invalid npm token. As a quick solution, a new valid token has been added to your account. Please use this token for now.
We’re currently working on launching our private npm registry, which should be available in a few days. This will help eliminate these kinds of issues going forward.
Thank you for using Hugeicons!
Let me know if you’d like any further adjustments!


The examples are not working any longer

The examples on the website no longer work.
We should receive some results but currently, we are getting errors, i.e. for:
from(bucket: "noaa")
  |> group()
  |> keep(columns: ["location"])
  |> unique(column: "location")

we are getting an error:
error in building plan while starting program: cannot submit unbounded read to "noaa"; try bounding 'from' with a call to 'range'

and when we provide a range
keep: schema collision: cannot group float and string types together

Relevant URLs

https://docs.influxdata.com/influxdb/v2.0/query-data/common-queries/count_unique_values_for_column/

@vertisan We're updating these examples to include a range() call which will fix your first issue, but I'm unable to reproduce your 2nd error. To me that says that your noaa bucket contains data other than the sample data. The sample data only has string values in the location column; no floats. Is there any chance you could've unintentionally intermingled data?


bug: downvoting a repo in myVotes list does not remove it from ui

Describe the bug
If you are in MyVotes section and you press on the upvote/voted
list from My voted Repository
Steps to reproduce

Go to the hot app
MyVotes section
Press upvote/voted
look in My voted Repository it still remains behind

Affected services
hot.opensauced.pizza
Platforms
Desktop
Browsers
Chrome
Environment
Production
Additional context
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Contributing Docs

[X] I agree to follow this project's Contribution Docs

Do you mean after up or down voting, the repository remains in the list of voted repos?
If so, you could adjust the title to something more relevant like "bug: downvoting a repo in myVotes list does not remove it from ui" 🍕

Do you mean after up or down voting, the repository remains in the list of voted repos? If so, you could adjust the title to something more relevant like "bug: downvoting a repo in myVotes list does not remove it from ui" 🍕

yes, this is the issue, Tnx for your help.

@bdougie GFI?

Not quite. This still needs more info and an attempt at a suggested solution. My guess is that the votes hooks need to refetch the votes when the button is clicked.
https://github.com/open-sauced/hot/blob/2d5bb0d9f694ea630030c56bc6c2985cf231e9b3/src/hooks/useVotedRepos.ts#L23

Is this issue resolved?

I'll try to .take this one

Since I didn't have any pictures of the issue I tried going straight to the site and reproducing it. It turns out I'm not able to upvote any repository from any page. With further investigation, I found that the post call is returning 409 and apparently it's a problem in the database's schema so It might be nothing wrong with the code.

Could someone help me understand if I'm going in the right direction?

After you upvote or downvote a repo, the voted repos should be refetched and the UI updated.
But I think there is an issue in the API we need to address. See https://github.com/open-sauced/api/issues/122
Feel free to give it a try and let us know how it goes :slightly_smiling_face:

Hey guys, since my time is short and I can't tackle the backend issues that avoid me from solving this one I'll leave this one open for someone who has more free time!

Would love to jump in on this one. New to open source, but I've worked with React previously.
Based on the traffic listed in the Network tab, it appears that the page is essentially DDoSing the provided Supabase endpoint. On the initial payload, I'm observing approximately 112 requests to the database. Without interacting with the page, the number of requests to Supabase are continuing to grow.
I think that the useEffect dependency in the RepoList component may be to blame. With JavaScript, using objects within the dependency array can trigger an infinite rendering loop due to how equality is calculated under the hood. It looks like one workaround is to use JSON.stringify to create a string value that is comparable from render to render.
It's likely that this is a solved problem, but determining so would require further research.
Here's a relevant Stack Overflow post.


Fix NameServer for caddyserver.com

Please take a look at https://mxtoolbox.com/SuperTool.aspx?action=dns%3acaddyserver.com&run=toolpage
Local NS list does not match Parent NS list
<IP_ADDRESS> was reported by the parent, but not locally<IP_ADDRESS> was reported by the parent, but not locally

Thanks, forgot to get rid of those buddyns nameservers.

You're welcome. I've got a dns servfail back and couldn't reach the website. I wondered why and checked the dns health state.


Feature/media query/error page

With the help of Jo. We added media queries to make a responsive layout. The day after, a bug was resolved with the button. Furthermore added a separate JS file for the 404 page to return the user to the main index.html file, once the button has been clicked. After merge, the CSS and html file will be further refined if needed.

Only approve most recent. The original commit does not include new 404 JS changes.


[test] Skip the TensorFlow checks if the processor information is not found

I'm renaming 'throughput_iteration' to 'throughput_per_gpu'. I think it's a clearer name.

@jenkins-cscs retry tsa

Codecov Report

Merging #2311 (6052273) into master (8ecb01e) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #2311   +/-   ##
=======================================
  Coverage   86.12%   86.12%
=======================================
  Files          56       56
  Lines       10208    10208
=======================================
  Hits         8792     8792
  Misses       1416     1416

Continue to review full report at Codecov.

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


Enable sort and filter on progress column

Monday

@CarsonF will need your help with an ASC/DESC sort issue.  When the sort arrow is clicked to ASC the API sends back the list in DESC order.  When the DESC arrow is clicked it sends back the list in ASC order.

API appears to sort fine to me.
I fixed the client side sorting here by ordering by index based on the API defined order (which I also just enabled https://github.com/SeedCompany/cord-api-v3/commit/4beaa9d656e1df7545c0cb5ff98537f735362369)
Also the variance reason given can override the schedule status according to the variance explanation.
varianceExplanation: {
  reasons: ["I am ahead"]
  scheduleStatus: Behind // doesn't make sense
}

So that's why we follow the reason there.
The schedule status on cumulative summary just looks at its own variance.
So that more closely follows what we want to display here I think, since the summary numbers are right next to it.
I had, and maybe you did too, picked a random reason, and was seeing "Ahead" but it wasn't sorting that way. Because the sorting just looks at the variance number, not the reasons.


Updates deploy docs

This updates the deploy docs in a few important ways:

Splits our pre-deploy QA into one of three groups:

Tests that need to be run on staging.
Tests that need to be run on production.
Tests that currently don't work (with Jira links).

I added a test that would have caught Eigen's incident last week
I added notes for a recent problem with view-in-room as well.
Adds note about our use of IDFA.

I also updated the Markdown headers so the page has an H1.

Awesome 👌


Compatibility for configs without profiles

My webpack config file doesn't have a profile, so I was very confused
trying to use jest-webpack-alias. Also I couldn't find any other
documentation on webpack profiles, so I'm not even certain they're a
thing.
Now a webpackProfile: null will opt-out of looking for the value at a
key and instead just use the entire exported object as the config.
Also, add support for custom webpack config file paths. Maybe consider
using separate files for dev versus prod profiles?
Closes #1.
Test plan:
npm test passes.

Thanks for the pull request!  I've made a few notes that I'd like to address before merging, and tracked down where the "profile" thing comes from.  Planning to work on any items not done yet at around 11am PDT and merge it.

Thanks for the quick response! I fixed up those line items you mentioned. Feel free to tweak to your satisfaction before merging! :smile:

Looking at the profile issue a bit more: it seems like treating the config as an object whose keys are profile names is unique to our Grunt setup (where we manually require the webpack config and dereference the keys).  I think I'll just switch our setup over to use the array-of-objects format in the example, and support that instead.

:+1:

This is now released as jest-webpack-alias 2.0.0.  I changed the option names to be slightly shorter as well, added README content, backfilled some unit tests, and switched profile support to use array-of-objects.

Awesome, thanks! :bow:


docker-compose try to pull 0.22 which is not available

$ docker-compose up -d
Creating network "docker_default" with the default driver
Pulling coordinator (apache/druid:0.22.0)...
ERROR: manifest for apache/druid:0.22.0 not found: manifest unknown: manifest unknown

Please use the docker-compose.yml on a released version(e.g. 0.20.0, 0.21.0).

Thanks @FrankChen021 . However, there is another error coming up. It is attempted with 0.21 branch.
entrypoint script is trying to create a few directories inside the container, as user druid and seems there is permission issue. Am I doing something wrong here ??
router           | Setting druid.metadata.storage.connector.password=FoolishPassword in /tmp/conf/druid/cluster/query/router/runtime.properties
router           | Setting druid.emitter.logging.logLevel=debug in /tmp/conf/druid/cluster/query/router/runtime.properties
router           | mkdir: can't create directory 'var/tmp': Permission denied
router           | mkdir: can't create directory 'var/druid/': Permission denied
router           | mkdir: can't create directory 'var/druid/': Permission denied
router           | mkdir: can't create directory 'var/druid/': Permission denied

0.20.2 is recommended. This is a bug of 0.21.0, it has been addressed on the master branch , and a bug fix release is on the way. See #11166

Thanks @FrankChen021 0.20.2 is working fine


Whitespace until next non-whitespace token ignored after paramref in xmldoc

Environment data
dotnet --info output:
.NET Command Line Tools (1.0.0-preview4-004081)

Product Information:
 Version:            1.0.0-preview4-004081
 Commit SHA-1 hash:  6d57ca7e14

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.12
 OS Platform: Darwin
 RID:         osx.10.11-x64

VS Code version: 1.7.1
C# Extension version: 1.5.2
Steps to reproduce
        /// <exception cref="ClientException">Thrown if <paramref name="absolutePath"/> is null, empty, or whitespace-only.</exception>
        public string PushSync(string absolutePath, object content)
        {
            ...
        }

Hover over PushSync to reveal tooltip.
Expected output
ClientException Thrown if absolutePath is null, empty, or whitespace-only.
Actual output
ClientException Thrown if absolutePathis null, empty, or whitespace-only.

Notice the missing space between absolutePath and is.
Other
I tried with both <paramref name="absolutePath"></paramref> and <paramref name="absolutePath"/>.

Nice bug -- thanks!

Actually, this is a duplicate of #672. The good news is that we just took a fix to OmniSharp that will fix it: https://github.com/OmniSharp/omnisharp-roslyn/pull/670


I added Zio2 based http4s server, but results are quite depressive...

This is based on Zio2 and Cats Effect 3 interop library. Following are the results with Zio2 http4s server -
wrk -t2 -c100 -d10s "http://<IP_ADDRESS>:8080"

Running 10s test @ http://<IP_ADDRESS>:8080
  2 threads and 100 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    53.22ms  196.58ms   1.99s    95.58%
    Req/Sec     2.77k     1.55k    5.27k    54.64%
  53529 requests in 10.03s, 7.86MB read
  Socket errors: connect 0, read 0, write 0, timeout 46
Requests/sec:   5336.39
Transfer/sec:    802.54KB

The performance is totally regressive once zio spawns 220 threads, which calls for more optimization. While a http4s server based on Cats Effect 3 with only 64 threads produces the best results. Need to research about regression.

You need to add zio-http4s-benchmark at the latest line.
lazy val root = (project in file("."))
  .settings(
    name := "scala-http-benchmark",
    organization := "com.github.gcnyin",
    version := projectVersion,
    scalaVersion := "2.13.8"
  )
  .aggregate(`akka-http-benchmark`, `http4s-benchmark`, `zio-http-benchmark`)

Could you rename zio-http4s-benchmark to http4s-zio-benchmark? I will change the existing http4s-benchamrk to http4s-ce3-benchmark.

Yes, i will

Changes done ✅

Thanks a lot!


Error during drone.connect()

When trying to simply connect to the drone (using drone.connect()) i get the error listed below
Note:

I get this error both using a simulator (Anafi) and a real drone (parrot bebop 2)
I'm running the script into a docker container, whose image derives from Python 3.6

2020-03-30 15:12:06,338 [INFO] 	olympe.drone - _connecting_cb - Connecting to device: ANAFI-0000000
2020-03-30 15:12:06,339 [INFO] 	olympe.drone - _connection_impl - Connection in progress...
2020-03-30 15:12:06,339 [INFO] 	olympe.drone.ANAFI-0000000 - _connected_cb - Connected to device: ANAFI-0000000
2020-03-30 15:12:06,340 [INFO] 	olympe.drone.ANAFI-0000000 - _connected_cb - {'json': {'c2d_port': 2233,
          'c2d_update_port': 51,
          'c2d_user_port': 21,
          'proto_v': 1,
          'qos_mode': 0,
          'status': 0}}
2020-03-30 15:12:06,342 [INFO] 	olympe.media.ANAFI-0000000 - _create_pomp_loop - Creating pomp loop
2020-03-30 15:12:06,343 [ERROR] 	olympe.drone.ANAFI-0000000 - __call__ - Unhandled exception
Traceback (most recent call last):
  File "/usr/src/app/code/parrot-groundsdk/packages/olympe/src/olympe/_private/__init__.py", line 104, in __call__
    return self.func(*args, **kwargs)
  File "/usr/src/app/code/parrot-groundsdk/packages/olympe/src/olympe/arsdkng/drone.py", line 261, in _connected_cb
    scheduler=self._scheduler
  File "/usr/src/app/code/parrot-groundsdk/packages/olympe/src/olympe/media.py", line 1260, in __init__
    max_parallel_processing=self.pool_maxsize,
  File "/usr/src/app/code/parrot-groundsdk/packages/olympe/src/olympe/arsdkng/expectations.py", line 374, in decorate
    namespace
TypeError: __class__ assignment: 'MediaScheduler' object layout differs from 'DefaultScheduler'
2020-03-30 15:12:11,338 [ERROR] 	olympe.drone.ANAFI-0000000 - connect - connection time out for device: b'<IP_ADDRESS>'
2020-03-30 15:12:11,347 [INFO] 	olympe.drone.ANAFI-0000000 - _disconnected_cb - Disconnected from device: ANAFI-0000000

Thanks in advance for the help

I'm intrigued!
Inside your container, what is the output of python3 --version
Can you point me to your Python 3.6 (base) docker image?
Can you please share your script? (I know your script is unlikely to be causing this)
Also unlikely but is it possible you've modified Olympe in any way ?
Please retry with media_autoconnect set to false (olympe.Drone(<anafi_ip>, media_autoconnect=False))
Thanks

Here all the info!

I just updated the version of Python image to 3.8 (but it shouldn't make any difference), so the output of python --version is the following: Python 3.8.2

The docker base image is the official one: https://hub.docker.com/_/python

My script is very simple, taken from the "User Guide" section of the documentation:

# -*- coding: UTF-8 -*-
from __future__ import print_function  # python2/3 compatibility for the print function
import olympe
import time
from olympe.messages.ardrone3.Piloting import TakeOff, moveBy, Landing
from olympe.messages.ardrone3.PilotingState import FlyingStateChanged

drone = olympe.Drone("<IP_ADDRESS>", media_autoconnect=False)
#drone = olympe.Drone("<IP_ADDRESS>")
drone.connect()
drone(
    TakeOff()
    >> FlyingStateChanged(state="hovering", _timeout=5)
).wait()
drone(
    moveBy(10, 0, 0, 0)
    >> FlyingStateChanged(state="hovering", _timeout=5)
).wait()
drone(Landing()).wait()
drone.disconnect()

I did not modify Olympe

I tried with media_autoconnect=False and yes, the script works with the simulator!

Hope this helps

Alright, I haven't tested Olympe with Python 3.8 and was able to reproduce this issue.
I've submitted a draft PR in #15 that will be included in the next GroundSDK/Olympe release (1.2.1).
Please let me know if that works for you. Thanks

I can confirm that the same python script works perfectly on that version of Olympe.
Thank you!

This has been fixed in Olympe 1.2.1


Add webhooks

Adding webhooks for the existing api so that we it's available in the next release.

Just realized this isn't complete. Don't review it until I update it.

The current api is not going to change because it’s based on a bad design
that was too over-designed for features we decided to include. The method
will always be POST.
My next change will introduce the ability to use the new services endpoint
if the server supports it, but I need to get the services endpoint for
webhooks stood up first.


feat: Create Chocolatey Package

Why do we need it?
The purpose of this enhancement is to create a Chocolatey package for the ksctl CLI tool. Currently, there is no Chocolatey package available for easy installation and management of ksctl. By creating a Chocolatey package, we can provide a convenient way for users to install and update ksctl on Windows systems using the Chocolatey package manager.
What it will bring?
Creating a Chocolatey package for ksctl will bring the following benefits:

Simplified installation: Users will be able to install ksctl with a single command using Chocolatey, eliminating the need for manual downloads and configurations.
Easy updates: With the Chocolatey package, users can easily update ksctl to the latest version by running a simple command, ensuring they have access to the latest features and bug fixes.
Consistency: A Chocolatey package will provide a standardized installation method across Windows systems, ensuring that users have a consistent experience when installing ksctl.
Integration with existing workflows: Many users already utilize Chocolatey for managing software packages on their Windows machines. By offering a Chocolatey package, ksctl can integrate seamlessly into their existing workflows and package management systems.

Current Progress:

Created pkg folder.
Inside the pkg folder, created the choco folder.
Inside the choco folder, created the chocolateyinstall.ps1 script.
Created the ksctl.nuspec file.

Challenges Faced:
At this stage, I encountered the following challenge:
I need to provide the URL for the build release of the ksctl .exe file to include in the Chocolatey package.
Currently, I don't have the .exe file, as it needs to be downloaded during the package installation from the internet.
Required Guidance:
I am seeking guidance on the following steps to proceed:

Building the ksctl CLI binary and generating the .exe file.
Publishing the ksctl CLI binary as a release and obtaining the download URL.
Updating the chocolateyinstall.ps1 script with the correct URL for the ksctl binary.
Any additional steps required to successfully create the Chocolatey package.

chocolateyinstall.ps1

ksctl.nuspec

It's a feature request
@AvineshTripathi and I will review and tell you👍

For the url you can check out the install.ps1 script how it attains it

@dipankardas011 do you think there is requirement having a dir structure as mentioned above, why not keeping this in root ?

@dipankardas011 do you think there is requirement having a dir structure as mentioned above, why not keeping this in root ?

@MRafaydev does pkg thing required or is it more towards the project structuring?

@dipankardas011 do you think there is requirement having a dir structure as mentioned above, why not keeping this in root ?

@MRafaydev does pkg/ dir required or is it more towards the project structuring?

This is more towards the project structuring like if we add more others packages in future like for brew etc. So it is better we have the separation of packages that's why i have created this folder structure. But we can also add in the root folder. .

For me 👍
@AvineshTripathi ?

Hey @dipankardas011 we have any update on this ? So I try the binary file with choco.

Hey @dipankardas011 we have any update on this ? So I try the binary file with choco.

Yes you can start

Hello @dipankardas011, I was wondering when the binary package for ksctl will be released. We need to define the URL of the binary package in Chocolatey (choco). Could you please provide an update on the release schedule for ksctl binary package? Thank you!

Release does have windows binary


Fix build

How to debug

Follow https://circleci.com/docs/ssh-access-jobs/ to get into the host where test failed (e.g. https://app.circleci.com/pipelines/github/pytorch/TensorRT/1461/workflows/877d58af-c765-48df-b6c0-e6328723a7fd/jobs/6968)
Repeat the failed command in the circleci host: python3 -c "import torch_tensorrt; torch_tensorrt.dump_build_info()" and see that issue can be reproduced.
Repeat with LD_DEBUG=libs python3 -c "import torch_tensorrt; torch_tensorrt.dump_build_info()" and locate the torch libraries at /opt/circleci/.pyenv/versions/3.9.4/lib/python3.9/site-packages/torch/lib/libc10_cuda.so.
Do nm -C /opt/circleci/.pyenv/versions/3.9.4/lib/python3.9/site-packages/torch/lib/libc10_cuda.so | grep CUDACachingAllocator |grep T and noticed that it seems weird as it doesn't contain the symbol  c10::cuda::CUDACachingAllocator::allocator. It seems that the libs are not from torch 1.14 nightly.
Check the torch version python3 -c "import torch; print(torch.__version__)" and it showed 1.13.0+cu117. This is very weird as we are supposed to install 1.14.0+cu116.
Check the CI pipeline at noticed that during the Install torch-tensorrt stage, we are actually uninstalling the previously installed torch 1.14

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
torchaudio 0.14.0.dev20221114+cu116 requires torch==1.14.0.dev20221114, but you have torch 1.13.0 which is incompatible.

Check py/setup.py and find that we are forcing torch version to be "torch>=1.13.0.dev0,<1.14.0". Fix that.

Type of change
Please delete options that are not relevant and/or add your own.

Bug fix (non-breaking change which fixes an issue)

Checklist:

[x] My code follows the style guidelines of this project (You can use the linters)
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas and hacks
[x] I have made corresponding changes to the documentation
[x] I have added tests to verify my fix or my feature
[x] New and existing unit tests pass locally with my changes
[x] I have added the relevant labels to my PR in so that relevant reviewers are notified

@narendasan //tests/core/conversion/converters:test_einsum failed. Please help check. Thanks.


(Some) Ladle Types cannot be resolved correctly with Node16 resolution

Describe the bug
(Some) Ladle Types cannot be resolved correctly with Node16 resolution
Reproduction

pnpm create vite my-react-app --template react-ts
pnpm i
Add a story using a decorator, the example from the website is sufficient:

import type { Story, StoryDecorator } from "@ladle/react";

export default {
  decorators: [
    (Component, context) => (

        {context.globalState.control.label.value}
        <Component />

    ),
  ] as StoryDecorator[],
};

const Card: Story<{
  label: string;
}> = ({ label }) =>
Label: {label}
;

Card.args = {
  label: "Hello",
};

pnpm tsc --noemit shows no errors:
Change node resolution to Node16 in tsconfig.json
pnpm tsc --noemit shows now errors:

I am quite sure this was introduced with the fix for https://github.com/tajo/ladle/issues/267

The package.json exports looks odd now, with a "default" entry pointing to a .ts file and types pointing to .d.ts files containing  a copy of all types. Maybe the Typescipt compiler gets confused by this.
Interestingly, if i delete the types entry in Ladles packages.json exports Typescript complains about missing .js extensions in the ladle dist sources. When I add them everything works as expected. I can even switch back to the default node resolution.

I can reproduce this too.

Interestingly, if i delete the types entry in Ladles packages.json exports Typescript complains about missing .js extensions in the ladle dist sources. When I add them everything works as expected. I can even switch back to the default node resolution.

That's expected and the reason why for the recent changes.
@frehner Any idea how to fix this?

I still think a cleaner approach would be to convert Ladle to use Node16 (which should also work for projects using Ladle which still use the old Node resolution). This would also require to tsc-compile the Ladle sources to a dist folder (.js files and type declaration files). Then the package,json exports could use the standard approach of exporting exports.js and exports.d.ts from the dist folder.
I am using this approach in my Monorepo where the web application importing packages built this way is using Vite. This works without a problem, Vite is just using the .js files from the packages without recompiling them.
I tried to convert Ladle to Node16 resolution but ran into some issues (Vite Plugin-React and Vite TsConfig-Paths, which do not play well with Node16 resolution and two strange type errors in get-story-imports and get-story-list), but I am sure these can be resolved. Maybe I can solve them and make a merge request.

I could try to make a merge request using this approach.

I can reproduce this too.

Interestingly, if i delete the types entry in Ladles packages.json exports Typescript complains about missing .js extensions in the ladle dist sources. When I add them everything works as expected. I can even switch back to the default node resolution.

That's expected and the reason why for the recent changes.
@frehner Any idea how to fix this?

The TLDR is that because the source code isn't using file extensions in import paths, and NodeNext/Node16 are strict about explicitly using file extensions, then TS can't find the file.
For example, in the reproduction above, you'll note that Story is found:

That's because Story is part of the main file that we point directly to in package.json. However, StoryDecorator isn't found - and that's because the import statement ../shared/types doesn't have a file extension on it, so technically NodeNext TS can't find that file.

So yeah. That's why. ☹
How to fix it would potentially mean adding file extensions to all of your import statements. Or maybe seeing what @gunters63 output looks like and seeing what happens there.

During this, I also found an issue with my previous PR that I needed to fix. PR coming shortly.

Adding file extensions and not using Node16 resolution seems risky. It would be easy to forget an extension (when adding/changing code) and tsc would not complain.
Btw, I tried to convert Ladle to Node16 resolution (gave it about 1 hour time) but ran into strange problems with the vite react and the vite tsconfig plugins which do not play well with Node16 resolution yet and also had two type errors with some code consuming AST structures which i couldn't fix.
I think the safest route is just to do it the standard way, let the package exports point to .(c)js and .d.ts files which means adding a tsc transpile step and deploy the .js and .d.ts files with other needed assets to a dist folder.

Adding file extensions and not using Node16 resolution seems risky. It would be easy to forget an extension (when adding/changing code) and tsc would not complain.

There are lint rules for it, if that's any consolation. https://github.com/import-js/eslint-plugin-import#importextensions
But yeah, this is annoying. There is some movement on TS's side of things to make this better, but it won't be out for a bit I suspect.

There is some movement on TS's side of things to make this better, but it won't be out for a bit I suspect.

How about this https://devblogs.microsoft.com/typescript/announcing-typescript-5-0-beta/#moduleresolution-bundler?

There is some movement on TS's side of things to make this better, but it won't be out for a bit I suspect.

How about this https://devblogs.microsoft.com/typescript/announcing-typescript-5-0-beta/#moduleresolution-bundler?

That could be indeed the solution, lets see when Typescript 5 releases in March :)

There is some movement on TS's side of things to make this better, but it won't be out for a bit I suspect.

How about this https://devblogs.microsoft.com/typescript/announcing-typescript-5-0-beta/#moduleresolution-bundler?

Yup that's the one!

So what's the best possible setup for us? Planning to release v3 and we could just drop support for typescript v4 and older.

We migrated our Monorepo to TS 5.x and moduleResolution bundler since April and never looked back. moduleResolution bundler fixed many Problems, not only this specific one.
v3 would still support Typescript v4, just not moduleResolution Node16 (which only existed since 4.7 anyways). This was used only rarely and I think most projects migrated to moduleResolution bundler in the meantime. And even then you could just live with some typescript error suppressions.

I'm going to revert to the previous (simpler) setup and require projects to use moduleResolution: 'bundler' in v3.


Fix incorrect Gradle command

The code was using -X, but the correct flag in Gradle is -x.
Note, however, that this yolo command is actually redundant in Gradle, since you can simply run ./gradlew assemble, which would do exactly what you want: because Gradle doesn't have a single lifecycle, there is a built-in command to build everything without tests: see https://melix.github.io/blog/2018/09/gradle-lifecycle.html
I reckon, however, that a real cow-boy should try to perform a release without running tests. In which case, yolo will help.

Thank you @melix! Still a lot to learn about Gradle.


Update mailto: handler details in readme

Update based on new info in https://github.com/flutter/flutter/issues/10032

@szakarias please review latest commit adding some best practice notes on canLaunch


Support for dart 3.x

Does this library or equivalent library support dart 3.x?

This issue should now be fixed in version 2.1.0, which has just released.


[C#] SpanByte - a safe wrapper for variable-length keys and values

We introduce two types in FASTER that make it easy to store and retrieve variable-length keys and values with zero-copy, no serializer, and with in-place allocation on a single Faster record log (no object log)
SpanByte
A new variable-length struct type called SpanByte has been added to core FASTER, in order to make it easy to safely use variable-length keys and values in FasterKV.
SpanByte represents a variable length byte payload in two data formats:

In stack mode, SpanByte represents a combination of length and a pointer to fixed data
In serialized mode, ref SpanByte represents a pointer to serialized structure [length, payload]

Internally, we use one bit in the common length header to distinguish between the two formats.
We use SpanByte instead of Span<byte> and Memory<byte> for FasterKV key and value types because:

Span<byte> cannot be used as a generic type
we expect the same types to be serialized to disk in-place on the log
Memory<byte> cannot point to fixed stack or unmanaged memory buffers, which are necessary for zero-copy

It is extremely easy to convert any fixed Span or pinned Memory to SpanByte (we provide converters), as our sample shows here. We also provide extension methods to ClientSession to accept Span<byte> directly and perform the pinning internally.
SpanByteAndMemory
We also provide a type called SpanByteAndMemory that represents a union of SpanByte and IMemory<byte>. This type can be used as your Output type in FasterKV. The reason for this type is to enable users to have a fixed region of memory (usually in stack) and perform a Read operation that can directly write to that location if space permits. If no space, or the operation goes async (due to I/O), we will instead return the output via IMemory<byte> allocated from a shared pool.

Note, the underlying technology is the variable-length struct support already available in FASTER. The PR extends varlen to support a log serialization format for varlen types, that is possibly different from the user's data format. `SpanByte` and `SpanByteAndMemory` make it easier to use varlen out of the box, with fast and safe application code that can leverage the `Span` and `Memory` features of C#.
Fix https://github.com/microsoft/FASTER/issues/329

Yes, Span<byte> (and therefore, Memory<byte>) is supported via extension methods. You create a FasterKV<SpanByte, SpanByte>, these these extension methods on session become available to you. See this example. The PR description explains why Memory<byte> cannot directly be used as our FASTER key/value type (related to needing a disk serialized version of the same type).

Oh, I also think you can use Memory<byte> directly with FasterKV if you are ok with that. We will provide an example shortly.

Yes, I think your design is spot on. Just noting a tiny difference in the statement:

Memory cannot point to fixed stack or unmanaged memory buffers, which are necessary for zero-copy

Sorry for introducing confusion 😅
This is great stuff!

Agreed, Memory can indeed point to unmanaged buffers. In fact, our "managed storage device" uses this facility to call .NET storage API using Memory to write unmanaged pages to disk.

Great suggestions, @AlgorithmsAreCool. We are adding support in this PR: https://github.com/microsoft/FASTER/pull/354
It may not be as hyper-efficient as SpanByte, but will be much easier and robust to use, as Memory<byte> is easily understood by C# developers. This way you get a "proper" variable-length key-value store API.


Make Semaphore-Core run constantly

https://teams.microsoft.com/l/meetup-join/19%3Ameeting_MTMyMmFhMWItNDU3My00YmI0LThkMTAtZjFlOTM0ODVhZjZk%40thread.v2/0?context={"Tid"%3A"34cbfaf1-67a6-4781-a9ca-514eb2550b66"%2C"Oid"%3A"02849a68-04af-4a4c-879d-77803cc88a51"}

We did it, its seems the standard is to use tail -f /dev/null, which listens to dev/null which should have minimal impact and no output. We can connect to it and execute commands.