Directives

Would be awesome if GQty would support passing along and extracting (custom) directives.
Official description:

A directive can be attached to a field or fragment inclusion, and can affect execution of the query in any way the server desires. The core GraphQL specification includes exactly two directives, which must be supported by any spec-compliant GraphQL server implementation:
@include(if: Boolean) Only include this field in the result if the argument is true.
@skip(if: Boolean) Skip this field if the argument is true.

Directives can be useful to get out of situations where you otherwise would need to do string manipulation to add and remove fields in your query. Server implementations may also add experimental features by defining completely new directives.

https://graphql.org/learn/queries/#directives
Official Specification:
https://spec.graphql.org/
Highlights:

Directives can be used to describe additional information for types, fields, fragments and operations.

Directive order is significant

@include is a built-in directive

@skip is a built-in directive

Examples of custom directives actually in use today:

Apollo: https://www.apollographql.com/docs/apollo-server/schema/directives/
DGraph: https://dgraph.io/docs/graphql/queries/cascade
Neo4j: https://neo4j.com/docs/graphql-manual/current/type-definitions/cypher/
Hasura: https://hasura.io/blog/graphql-directives-you-should-know-about/

List of various directives, with good explanation.
Mostly, it seems like directives are only used on fields, for now. Top level, or indented.
Previous discussion:
This same issue in old gqless repo:
https://github.com/gqless/gqless/issues/210
There are various suggestions there for how the API could look.

But I found none of the suggestions there compelling. I suggest this API instead:
// #4 - complex example, multiple directives
query MyCachedQuery($skipMember: Boolean!) @cached(ttl: 120) @cascade {
  users {
    id
    name @skip
    city @include
    member @skip(if: $skipMember)
    url
    cdn: url @cdn(from: "urlA", to: "urlB")
  }
}

Can be represented as:
const result = query({ '@cached': { ttl: 120 }, '@cascade': {} }).users().map(
  u => ({
    id: u.id(),
    name: u.name('@skip'),
    city: u.city('@include'),
    member: u.member({ '@skip': { if: true } }),
    url: u.url(),
    cdn: u.url({ '@cdn': { from: "urlA", to: "urlB" } })
  })
)

Assuming that the query operation name MyCachedQuery is generated by GQty, for caching, and logging/debugging purposes. Also assuming that GQty will generate an alias in the graphql query (e.g. cdn:) upon the second access to the same field (here url()).
Most important presumption here is that all fields would always have to be functions (which again returns the value).
 So that the fields can take a potential directive as input into their function. Might be a breaking change. Note u.id().
Have included the '@' in the directive names. It will be a few more characters to type, but it will be more intuitive to read. If you've worked with GraphQL you would immediately know that the value represented a directive, simply from seeinng the '@' key. It also allows avoiding to have an extra directive: {} wrapper or similar simply to make that clear. It could either be enforced, or merely supported by convention.

@natew @thelinuxlich @jmsegrev @vicary what do you think?

I like the idea but I think a more pressing issue is supporting aliases. Graphql-Zeus supports it, for example

@redbar0n If you read the discussion in quoted issue https://github.com/gqless/gqless/issues/210, you may already know my opinion, that forcing every scalar into a function defeats the attractive design of gqty/gqless. This maybe resolvable if we figure out a way to do polymorphism for get and apply in proxies.
@thelinuxlich I am curious on how alias are needed. If it is only for multiple input for the same query, there is a current bug that incorrectly serialize the inputs. They are supposed to be managed internally, automagically.

There are legit use cases: https://github.com/graphql/graphql-js/issues/522

@redbar0n If you read the discussion in quoted issue gqless/gqless#210, you may already know my opinion, that forcing every scalar into a function defeats the attractive design of gqty/gqless.

Yeah, I read it. What about either naming all the functions ‘getX()’ so that the usage is clearer? So that ‘.url’ would become ‘.getUrl()’ … Alternatively allow methods like ‘urlFn()’ for fields that can also be accessed with ‘.url’ to get the simple scalar?

@thelinuxlich This only shares the point that we need to explore the API design front. After some thoughts I think possible solutions are diverging from this issue, a new issue/discussion would allow easier follow-ups.

@redbar0n I, for one, thinks the attractiveness comes from the similarity of a plain object. Any reserved names should be kept minimum and follows a predictable pattern, dynamic names and possible collisions with GraphQL schemas should be avoided.
The problem is focused on the fact that scalars, especially undefined does not allow proxy trapping.
You may try pushing it one level upwards and takes in a path parameter, but that creates ambiguity. I thought of $directiveFor but you may put whatever your favorite name to get the idea.
query.foo.$directiveFor("bar", "@myDirective", { directive: "arguments" });
// ambiguous
query.$directiveFor("foo.bar", "@myDirective", { directive: "arguments" });

Also it was discussed in #proposals channel in Discord.

The latest GraphQL spec allows directives to duplicate on the same scope, none of the proposals here are compatible.

@thelinuxlich duplicate on the same scope? link?

https://github.com/graphql/graphql-spec/issues/429

Also it was discussed in #proposals channel in Discord.

I just made that channel public if you all prefer discussing this there, which should be better, and also suggest to the other people that already have commented and suggested stuff to read the stuff I wrote there a couple months ago with the challenges and design constraints

The latest GraphQL spec allows directives to duplicate on the same scope, none of the proposals here are compatible.

My proposal is compatible. You can turn this:
member: u.member({ '@skip': { if: true } }),
Into this:
member: u.member({ '@skip': { if: true }, ‘@include’: { something: true } }),

@PabloSzx could you summarise the relevant conclusions from your previous discussions?
Chatrooms are good for rapid back-and-forth to hash out suggestions then and there. But I am generally in favor of using github for such discussions, since github is: 1. indexed by search engines, 2. more async, 3. open to the public (while chatrooms are more exclusive / for insiders), 4. easier to contribute to (doesn't require an extra account etc.) 5. contained, i.e. one doesn't have to wade through endless chat-logs to find the relevant tidbits of information.

I finally found the invite link to the Discord chat.. https://discord.com/invite/U967mp5qbQ

Ok, I realise you are using a query object as a proxy object for detecting changes to it.
What about this suggestion? Trying to preserve the object-like API.
// #5 - complex GraphQL example, multiple directives, plus duplicate directives on same scope
query MyCachedQuery($skipMember: Boolean!, $includeMember: Boolean!)
    @cached(ttl: 120)
    @cascade(fields:["name", "city"]) {
  users {
    id
    name @skip
    city @include
    member @skip(if: $skipMember) @include(if: $includeMember)
    url
    cdn: url @cdn(from: "urlA", to: "urlB")
  }
}

Represented in GQty JS as:
const skipMember = false
const includeMember = true
query.directives = {
  '@cached': { ttl: 120 },
  '@cascade': { fields: ["name", "city"] },
  'users.name': [{ '@skip': true }],
  'users.city': [{ '@include': true }],
  'users.member': [{'@skip': skipMember, '@include': includeMember }],
  'users.url': [{ '@cdn': { from : "urlA", to: "urlB" } }],
}
const result = query.users.map(
  u => ({
    id: u.id,
    name: u.name,
    city: u.city,
    member: u.member,
    url: u.url,
    cdn: u.url,
  })
)

If the directives are all defined up front like that, the user could probably even avoid having to do the mapping in the last part, and simply do:
const result = query.users

You might ask: Doesn't the query.directives definition here look a lot like the original GraphQL query, so what have we gained? Well, we've contained it to only the directives (if those are needed), and preserved the simple and intuitive API when it is used. GQty will also still generate the queries at runtime, like it normally does, so there is greater flexibility of usage, compared to using GraphQL queries directly. It's only the fields with directives that will be "locked down" by the initial query.directives declaration.
What do you  think @PabloSzx and @vicary ?
PS: @skip and @include are duplicate directives on same scope, and wouldn't necessarily make sense, but are here used for illustration purposes.

@redbar0n The more I think of this, the more I feel this is a fundamental incompatibility between GraphQL and TypeScript.
But on the other hand I am very inclined to move this forward.
I can see that query.directives being a conservative way to not break the existing API, how about we go all the way and hide the whole definition behind util function? The directives definition is a variable only accessible internally.
Developing from the idea of the core resolved(), I can see something like this:
setDirectives(query, {
  '@cached': { ttl: 120 },
  '@cascade': { fields: ["name", "city"] },
  'users.name': [{ '@skip': true }],
  'users.city': [{ '@include': true }],
  'users.member': [{'@skip': skipMember, '@include': includeMember }],
  'users.url': [{ '@cdn': { from : "urlA", to: "urlB" } }],
});

That’s interesting. It for sure is some differences when it comes to patterns and ease of representability.. but TS being turing-complete, I don’t see why it couldn’t in theory represent/output everything GraphQL does. But it does come down to convenience and ease of use, to be worth it, of course..
What would be the intention of hiding query.directives behind a util function? How would users be likely to misuse it if not? Deref the proxy object, or something?
Would query.setDirectives({…}) be an alternative?

The idea is that every property from the query proxy is a possible naming collision for the top level Query, wrapping it in a util function allows us to move forward before a perfect solution comes up.

Doesn’t GQty control the top level Query, as well as the query proxy object?

A sudden stroke of genius and I am blaming myself for blindspotting this all along.
We can totally use symbol here, even go one step further and abstract away the $on.
import { $directives, $on } from "gqty"; // It's Symbol("$directive") and Symbol("$on") internally

// @skip
query.foo[$directives].skip = true;

// @include @cdn(from: "urlA", to: "urlB")
query.bar[$directives] = {
  include: true,
  cdn: { from: "urlA", to: "urlB" }
};


throttles the number of simultaneous kerberos library invocations during authentication

Changes proposed in this PR

throttles the number of simultaneous kerberos library invocations during authentication
reports a 503 temporarily unavailable when there are too many pending kerberos authentications

Why are we making these changes?
This prevents a router from crashing due to too many concurrent calls to the GSS library. The concurrency level controls the number of threads present in the Thread pool and hence throttles the number of concurrent calls to the GSS library. Using the custom thread pool also offloads the relatively expensive native GSS calls to not block the core.async threads. In addition, the PR also responds with 503s to requests that cause the pending kerberos authentication requests to grow beyond a pre-configured limit.
The Semaphore based solution looks much simpler but can potentially block async threads waiting on the acquire call. As this scenario can lead to poor performance in processing requests through Waiter, the Semaphore based approach was avoided.
Screenshot of Kerberos metrics:

@scrosby ready for another round of review.

@shamsimam What are your thoughts on an approach that rejects requests that exceed the limit (with a request limit exceeded error) instead of allowing them to queue up inside Waiter?

@sradack added support for failing requests when the kerberos queue length reaches a configured limit.
It is ready for review.

@sradack any further feedback?


Copy pasted word document  table content image is breaking from left hand side

Jodit Version: 1.3.63
Browser: Chrome
OS: Windows
Is React App: True
Copy pasted word document  table content image is breaking from left hand side
Expected behavior:

Actual behavior:

Reference word document:
https://docs.google.com/document/d/1LIBy9URDEQw0JZ1J_XFrhovcuv6p0ynDfoXqF3fyANs/edit?usp=sharing

the same here

seems to resolve by adding the plugin: https://xdsoft.net/jodit/docs/modules/plugins_paste_from_word.html


aXe rules appear to be flagging color contrasts at exactly 4.5:1

WCAG 2.0, Level AA requires a 4.5:1 color contrast ratio, but the scanner rules seem to be flagging ratios at exactly 4.5:1. Example: foreground of #fff, background of #0078d7.

@melanierichards can you provide more details?
Will need at least a URL where this does reproduce before opening an issue on https://github.com/dequelabs/axe-core

Also could be related to https://github.com/dequelabs/axe-core/issues/589#issuecomment-339969707 but we are using the latest 2.4.2 🤔

Definitely need more details for that one. I adjusted the ratio a while back to round down instead of up at 4.49:1 so it wouldn't flag those, so something else must be going on if it's the current version.

@marcysutton I'll work with @melanierichards and open an issue once we have the a reduction.
Thanks!

Sorry, didn't realize URL would be needed if hex codes were provided. It's on https://developer.microsoft.com/en-us/microsoft-edge/, basically any of those links in the tools section, as well as the buttons with white text on blue. It was also being flagged when I scanned directly with the aXe tool in Chrome.
The WebAIM color contrast checker is flagging it too, yet expressly acknowledging the ratio is 4.5:1, which is supposed to pass WCAG AA. https://webaim.org/resources/contrastchecker/?fcolor=0078D7&bcolor=FFFFFF. I don't know if they're running off the same stuff so that is to be expected, but it is interesting.

aXe is showing it as 4.49:1, which technically doesn't pass. See https://github.com/dequelabs/axe-core/issues/494 for more information.

Hmm, then these other tools must be rounding up, hence the confusion.


⚠ Bofrost.de has degraded performance

In 73ea519, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1886 ms

Resolved: Bofrost.de performance has improved in 1c040a7 after 18 minutes.


3rdparty SPIRV/GLSL upgrade and SkinningBenchmark subgroup bone fetch

btw you havent changed the 2 submodule repos to my forks.

Opened against nabla as well

I'll merge it here, tonight

Our contribution got merged into spirv-cross. But we're still using our spirv-cross repo as a submodule, right? Then what should I do? Pull and set it on primary repo's HEAD? Obviously 2020-09-17 tag you skaded for before doesnt support subgroups.

Ran the benchmark: (RTX 2070)
Benchmark for case nr. 0
Result 0: 1945.325568ms.
Result 1: 1961.448320ms.
Result 2: 1970.530240ms.
Result 3: 1972.837760ms.
Result 4: 1975.484416ms.
Avg time: 1965.125366

Benchmark for case nr. 1
Result 0: 1970.074048ms.
Result 1: 1973.327872ms.
Result 2: 1980.258304ms.
Result 3: 1981.993216ms.
Result 4: 1984.545184ms.
Avg time: 1978.039673

Benchmark for case nr. 2
Result 0: 2006.147072ms.
Result 1: 2009.796608ms.
Result 2: 2010.246208ms.
Result 3: 2011.929376ms.
Result 4: 2012.337056ms.
Avg time: 2010.091187

Benchmark for case nr. 3
Result 0: 2171.191680ms.
Result 1: 2176.405504ms.
Result 2: 2176.366464ms.
Result 3: 2176.658496ms.
Result 4: 2177.943008ms.
Avg time: 2175.713135

Benchmark for case nr. 4
Result 0: 1998.852192ms.
Result 1: 2001.749440ms.
Result 2: 2003.395200ms.
Result 3: 2003.919648ms.
Result 4: 2004.760576ms.
Avg time: 2002.535400

Our contribution got merged into spirv-cross. But we're still using our spirv-cross repo as a submodule, right? Then what should I do? Pull and set it on primary repo's HEAD? Obviously 2020-09-17 tag you skaded for before doesnt support subgroups.

we will always use our own fork, we'll add more features to it.

Nvidia 1050 Mobile
Result 0: 3188.719616ms.
Result 1: 3277.758464ms.
Result 2: 2831.123456ms.
Result 3: 3004.645344ms.
Result 4: 2987.333632ms.
Avg time: 3057.916260

Benchmark for case nr. 1
Result 0: 3437.733888ms.
Result 1: 3374.459904ms.
Result 2: 2657.101824ms.
Result 3: 3049.407488ms.
Result 4: 3201.132544ms.
Avg time: 3143.967285

Benchmark for case nr. 2
Result 0: 2906.318848ms.
Result 1: 2935.910400ms.
Result 2: 2532.075520ms.
Result 3: 2534.433792ms.
Result 4: 2530.915328ms.
Avg time: 2687.930664

Benchmark for case nr. 3
Result 0: 2635.242496ms.
Result 1: 2642.153472ms.
Result 2: 2617.835520ms.
Result 3: 2631.688192ms.
Result 4: 2640.667648ms.
Avg time: 2633.517578

Benchmark for case nr. 4
Result 0: 2808.863744ms.
Result 1: 2595.141632ms.
Result 2: 2583.285760ms.
Result 3: 2639.542208ms.
Result 4: 2582.702080ms.
Avg time: 2641.906982

COALESCING_DWORDS_LOG2=5, RTX 2070
Benchmark for case nr. 0
Result 0: 1945.659840ms.
Result 1: 1971.484864ms.
Result 2: 1981.332544ms.
Result 3: 2020.957504ms.
Result 4: 2009.023296ms.
Avg time: 1985.691650

Benchmark for case nr. 1
Result 0: 2028.918784ms.
Result 1: 2001.373184ms.
Result 2: 2107.480064ms.
Result 3: 2060.787488ms.
Result 4: 2058.666272ms.
Avg time: 2051.445068

Benchmark for case nr. 2
Result 0: 2069.369216ms.
Result 1: 2071.384064ms.
Result 2: 2073.463840ms.
Result 3: 2075.557632ms.
Result 4: 2077.211008ms.
Avg time: 2073.397217

Benchmark for case nr. 3
Result 0: 2236.676704ms.
Result 1: 2235.980352ms.
Result 2: 2238.579936ms.
Result 3: 2256.968288ms.
Result 4: 2259.242688ms.
Avg time: 2245.489990

Benchmark for case nr. 4
Result 0: 2073.350144ms.
Result 1: 2062.793280ms.
Result 2: 2061.597216ms.
Result 3: 2066.504992ms.
Result 4: 2067.678240ms.
Avg time: 2066.385010

COALESING_DWORDS_LOG2=5 and just one restrict buffer
Benchmark for case nr. 0
Result 0: 1971.348160ms.
Result 1: 1986.811968ms.
Result 2: 2000.763232ms.
Result 3: 2056.366336ms.
Result 4: 2094.850048ms.
Avg time: 2022.027954

Benchmark for case nr. 1
Result 0: 2171.216416ms.
Result 1: 2178.971520ms.
Result 2: 2187.540608ms.
Result 3: 2182.462400ms.
Result 4: 2164.656160ms.
Avg time: 2176.969482

Benchmark for case nr. 2
Result 0: 2094.723776ms.
Result 1: 2066.329440ms.
Result 2: 2066.724864ms.
Result 3: 2065.878944ms.
Result 4: 2064.435200ms.
Avg time: 2071.618652

Benchmark for case nr. 3
Result 0: 2224.043520ms.
Result 1: 2228.813824ms.
Result 2: 2240.063488ms.
Result 3: 2227.519488ms.
Result 4: 2214.503968ms.
Avg time: 2226.989014

Benchmark for case nr. 4
Result 0: 2053.507392ms.
Result 1: 2063.912960ms.
Result 2: 2123.744768ms.
Result 3: 2061.885440ms.
Result 4: 2050.065984ms.
Avg time: 2070.623535

GTX 1060 6GB
Benchmark for case nr. 0
Result 0: 4046.638080ms.
Result 1: 4047.713280ms.
Result 2: 4059.796480ms.

Result 4: 4055.063552ms.
Avg time: 4072.760986

Benchmark for case nr. 1
Result 0: 4052.248576ms.
Result 1: 4050.157312ms.
Result 2: 4048.704512ms.
Result 3: 4051.081216ms.
Result 4: 4046.565376ms.
Avg time: 4049.751221

Benchmark for case nr. 2
Result 0: 4043.850752ms.
Result 1: 4043.276288ms.
Result 2: 4043.407360ms.
Result 3: 4069.681152ms.
Result 4: 4070.952960ms.
Avg time: 4054.233643

Benchmark for case nr. 3
Result 0: 4070.839296ms.
Result 1: 4090.315776ms.
Result 2: 4104.312832ms.
Result 3: 4100.513792ms.
Result 4: 4098.144256ms.
Avg time: 4092.824951

Benchmark for case nr. 4
Result 0: 4101.523456ms.
Result 1: 4102.410208ms.
Result 2: 4106.982400ms.
Result 3: 4101.438464ms.
Result 4: 4100.418560ms.
Avg time: 4102.554199

ok seems that subgroup tricks dont win us extra perf.


Remove restriction on attributes with colons

Attributes that start with colons are widely used in frameworks such as Vue.js, and do not pose a special parsing concern.
Fixes pugjs/pug#2454.
Fixes #61.
Fixes decreased user satisfaction rate.

I agree, this specific restriction was definitely a mistake.  We should figure out a way to be much more restrictive of which characters can appear inside an attribute though.


Bootstrap 5 modal .fade does not finish hide animation if element within it is focused

Whenever closing a .fade modal the animation should complete fully, however when an element in the modal is focused this is not the case. I can successfully reproduce this issue by using the any one of the bootstrap 5 modal examples that have .fade. The difference is hard to see at first glance so I attached slowed down videos of the two animations to identify the discrepancies.
Closing modal with no element focused:
https://user-images.githubusercontent.com/77477100/107073805-d24dfd00-67b5-11eb-8b7e-b6df468a9754.mp4
As you can see the animation finishes and executes properly.
Closing modal with element within it focused:
https://user-images.githubusercontent.com/77477100/107073751-bf3b2d00-67b5-11eb-9a51-6d75f8bd1ac2.mp4
Here the animation starts, but then gets interrupted and suspends.

Operating system and version
macOS Big Sur 11.2
Browser and version
Safari 14.0.3

Bootstrap 5.0.0-beta1

A reduced test case or suggested fix using CodePen or JS Bin

https://getbootstrap.com/docs/5.0/components/modal/#varying-modal-content

Possibly a duplicate of #34055?

@mdo I think this issue is fixed by #33845.


[Type] The field type returned by AnnotatedMoveValueView is inconsistent with the actual type

The current implementation of AnnotatedMoveValueView may be flawed. Coin balance defines the U256 type, but the type obtained from AnnotatedMoveValueView is U64(StrView(10000), and the expected type is U256(StrView(10000).
Guess AnnotatedMoveValueView May return U128(StrView(value) type if the coin value big enough.
The Case
value: {Identifier("value"): U64(StrView(10000))} })

relative of  https://github.com/rooch-network/rooch/pull/760
https://github.com/rooch-network/rooch/blob/467707e7f294d23277ac8aa7fd026fd0aea7354f/crates/rooch-rpc-api/src/jsonrpc_types/rooch_types.rs#L193-L221

Because the U64, U128, and U256 in AnnotatedMoveValueView all represent via StrView.
And the AnnotatedMoveValueView is #[serde(untagged)], so we will lose the type when serializing to JSON.
https://github.com/rooch-network/rooch/blob/a63525896448ae9da62600c0f1fe86926f122883/crates/rooch-rpc-api/src/jsonrpc_types/move_types.rs#L119-L136


[Discuss] Always run the monitor.py process in a sidecar container

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
https://github.com/ray-project/kuberay/pull/1102#issuecomment-1561881243
Use case
No response
Related issues
No response
Are you willing to submit a PR?

[X] Yes I am willing to submit a PR!

The Ray Autoscaler and KubeRay node provider will be in a separate Pod rather than on the head Pod in Autoscaler V2, so this will no longer be an issue.


Increase UX of Crescendo-generated cmdlets

Summary of the new feature / enhancement
Crescendo is a fantastic tool for quickly generating PowerShell code for a native command, however there are some long-standing PowerShell user-experience considerations that need to be addressed. Most of this has to do with adding the ability to do filtering within the generated Cmdlet, without the need to pipe to something like Where-Object or Select-Object.
Take for example the Get-Service Cmdlet. I don't have to do something like Get-Service | Where-Object $_.Name -eq 'BITS', I can simply call Get-Service and provide either the service name or DisplayName. This is just one of a very long line of examples of native functionality that exists today.
This same user experience does not exist in Crescendo for a generated native command wrapper. What I would propose is that we add something to the Schema that allows for parameters added to the Native Command's function be passed to a handler. If no handler has been provided, or you have opted to skip an OutputHandler via your json configuration then we should prevent the filter parameters from being extended from the schema onto the generated command. This could be provided potentially by a flag applied in schema (maybe, the implementation details here are something to discuss and figure out what works best; both from an authoring perspective as well as from a end user point of view).
As an example, here's a handler I have for parsing vagrant box list:
function parseVagrantBox {
    [CmdletBinding()]
    Param(
        [Parameter(Mandatory)]
        [Object[]]
        $Lines,

        [Parameter()]
        [String]
        $Name
    )
    process {

        $Boxes = [System.Collections.Generic.List[pscustomobject]]::new()
        $Lines | Foreach-Object {
            $null = $_ -match '(?<name>([\w\/]+))\s+\((?<provider>(\w+)),\s(?<version>(\d.+))\)'

           $b = [pscustomObject]@{
                Name     = $matches.name
                Provider = $matches.provider
                Version  = [version]$matches.version
            }

            $Boxes.Add($b)
        }

        if(-not $Name){
            return $Boxes
        }

        else {
           $r = $Boxes | Where-Object { $_.Name -eq $Name}
           if(-not $r){
               Write-Warning "Box not found!"
           }
           else {
               return $r
           }
        }
    }
}

On a command-line outside of my module I can see that things work as expected:
$lines = vagrant box list
. ./parseVagrantBox.ps1
parseVagrantBox -Lines $lines

Name                       Provider   Version
----                       --------   -------
StefanScherer/windows_2019 virtualbox 2021.5.15
ubuntu/trusty64            virtualbox 20190514.0.0
ubuntu/xenial64            virtualbox 20211001.0.0
Additionally, I can filter this:

parseVagrantBox -Lines $lines -Name 'ubuntu/xenial64'

Name            Provider   Version
----            --------   -------
ubuntu/xenial64 virtualbox 20211001.0.0

My error handling works as well:
 parseVagrantBox -Lines $lines -Name 'ubuntu/wefwefewf'
WARNING: Box not found!

However, when I run this in the context of the generated Crescendo module, my filter/error logic falls apart:
Get-VagrantBox

Name                       Provider   Version
----                       --------   -------
StefanScherer/windows_2019 virtualbox 2021.5.15
ubuntu/trusty64            virtualbox 20190514.0.0
ubuntu/xenial64            virtualbox 20211001.0.0

Get-VagrantBox -Name 'ubuntu/xenial64'

Name                       Provider   Version
----                       --------   -------
StefanScherer/windows_2019 virtualbox 2021.5.15
ubuntu/trusty64            virtualbox 20190514.0.0
ubuntu/xenial64            virtualbox 20211001.0.0

Get-VagrantBox -Name 'uowejfi'

Name                       Provider   Version
----                       --------   -------
StefanScherer/windows_2019 virtualbox 2021.5.15
ubuntu/trusty64            virtualbox 20190514.0.0
ubuntu/xenial64            virtualbox 20211001.0.0

I've put the full Crescendo module code in a gist if anyone finds it useful to see exactly how I've configured things.
Proposed technical implementation details (optional)
No response

@theJasonHelmick per our conversation at PowerShell Summit 2023, I've put this issue in here for now. I will update with what I think would be a good example of a Crescendo schema that would support this flow later once I have a bit more time to think on it a bit.

There might be a couple of different possible approaches here. One is as you suggest and pass values to the output handler, another would be to just have a parameter type which is not passed to the executable but still available to the handler. For example, if you have a [parameter()]$Name which is not destined for the native tool as a parameter, $Name is still defined and you could reference $Name in your handler.
in either case, we'll need to add a property to the parameter (in the parameter map) which basically says "don't give this to the native exe". I have a feeling that the later is going to be less complicated then adding parameters to the call of the output handler.

I agree that I believe the latter is going to be better approach here. Thanks for your input @JamesWTruher!

@steviecoaster thank you for this suggestion - we are planning to include with the 1.1 release.

should be addressed in commit f2a1208d


Broken method risc0_zkvm::guest::sha::digest

Based on the test results from this PR https://github.com/risc0/risc0-rust-examples/pull/45 (CI run: https://github.com/risc0/risc0-rust-examples/actions/runs/4028293123/jobs/6925018354), the risc0_zkvm::guest::sha::digest appears to be broken. I confirmed this and was able to work around it by using a different method, but this one should be fixed (or removed)

Realized I posted this to the wrong repo. Superseded by https://github.com/risc0/risc0/issues/356

:+1: We also want the SHA example working in this repo but #45 is still WIP and we'll track this as part of getting tests passing for it.


order of parse rules in lexer is important

Currently, an integer is recognized as a word since digits are allowed in a word and the word-rule precedes the integer-rule. Putting the integer-rule first solves the problem.

Correction: it is more complicated than than, because now 'a is parsed as integer! 0 followed by word! a.


Both proposal save files are way too brittle

A/B Street has map edits and the LTN tool has its own format for boundaries and filters. Both files currently reference OSM way and node IDs to refer to road segments. This is slightly better than the very original format, which used opaque RoadIDs that could change when import code slightly changed. The A/B Street map edit format even has backwards compatibility for the JSON schema itself, which is also non-trivial to maintain.
But the current format breaks constantly when downloading fresh OSM data, or with osm2streets transformations that merge or split roads, or when importing new footways. It's a serious headache to manually fix these up everytime, and if the LTN tool had lots of users, I'd be constantly breaking their save files.
So opening this issue to think about how to do better. Also very related to ATE schema (so CC @Robinlovelace).
An initial idea
How can we refer to a road segment over time in a stable way? I think the only hope is to use geometry instead. To reference a road segment, we use the polyline of its center, not any OSM IDs at all. That means when we load it, we have to snap, and the result could be multiple road segments. We have to decide how to handle edits to lanes -- if the save file's "old" lanes don't match the new basemap, several choices how to resolve.
This gets much more complicated for LTN boundaries / partitioning. I want to rethink how all of that works anyway (#916). Maybe a boundary is just a polygon, we let users draw these freehand, and we have a darn good snapping process that can trace roads appropriately and find the interior. Maybe the individual block addition/deletion process can still be an option to refine, or maybe not.

See https://wiki.openstreetmap.org/wiki/Permanent_ID for ideas

Also https://sharedstreets.io/how-the-sharedstreets-referencing-system-works/

I would love to see the SharedStreets reference system or something like it implemented at or around the osm2streets layer. As a project that is focused on multiple representations of roads, it feels appropriate that it should offer an opinion on how to refer to them across those representations.
After a cursory look, SharedStreets looks like the right level of abstraction -- hopefully it is fit for purpose. If it turns out to be good, it might be a good way to decide which OSM ways to combine into a single street.
As an end goal, it seems like a useful way for an end user to interact with osm2streets data -- such as defining LTN boundaries and modal filter locations.

My current thinking: the only reliable way is using spatial joins. Thinking about the seemingly common example where a way is split in 2 to add a new node/junctions, the 'old' way is still there in OSM, it just has different IDs. Using a buffer around the original feature can be used to create a 2 way lookup between what is in the local version and the updated OSM data. A decision needs to be made on the local data side whether to keep the single ID or to split it, as the version in OSM has. Matching all OSM ids that are completely within (GEOS function contains_completely() or similar) a buffer with a given radius around an original feature allows identification of the new IDs reliably. Not sure if that idea is new or even if it makes sense, I tried to sketch it with limited success, happy to discuss: https://excalidraw.com/#room=5855d1e18e63ddc2c807,PSYriOaUY6_6VAJdVhSBwA
I had a look at the SharedStreets proposal a while back and never fully understood. Key test: try it and does it work? Same test applies to the idea sketched above, no guarantee it will work...

Having just looked at the OSM wiki on permanent IDs I think my idea is basically the same as https://wiki.openstreetmap.org/wiki/Permanent_ID#OSM_Permanent_ID_with_geo_URI but with a buffer around the 'geo URI' and including anything completely contained within that buffer, with a buffer width set depending on needs (e.g. 10 m, 5 m or 1 m for roads depending on the accuracy of local editing) rather than exact coordinates.

For a concrete example of how the save files work today, see https://github.com/a-b-street/abstreet/blob/master/data/system/proposals/stay healthy lake wash blvd.json. The road is identified as (OSM way ID, node 1, node2), the old lanes (left to right) are specified, and then the new ones. I'd love to get modal filters into this save file too. And all of this should eventually get "lifted up" into the osm2streets layer, as a way of describing a diff to a StreetNetwork.
I need to look into Shared Streets much more, but happy to consider it for a more robust way to identify road segments, especially if it's gotten wider traction as a standard.
Robin, I think your buffering idea is pretty close to what I have in mind ("snapping" or "map matching"). I can draw some sketches later, but imagine I have an edit describing a change to road A covering 5 city blocks originally. Someone updates OSM and splits that road into two pieces. When we snap, we can apply the edit to both pieces and detect which ones they are via map matching. Figuring out which roads an edit applies to is only one part of the problem.
Another question is how to resolve conflicts if the lane tagging changes. The save file format currently captures the "old" and "new" lanes for each modified road. The "old" is used to detect conflicts when the OSM data is updated. If a user changes a 4-lane road somehow, but later OSM is clarified to say that it's only 3 lanes, what's the appropriate way to resolve this? I'm not sure there's a one-size-fits-all answer. Maybe sometimes we can resolve this automatically, but depending on the application (in A/B Street or in ATIP), we might just need to ask the user what they want to do.

I have an edit describing a change to road A covering 5 city blocks originally. Someone updates OSM and splits that road into two pieces. When we snap, we can apply the edit to both pieces and detect which ones they are via map matching. Figuring out which roads an edit applies to is only one part of the problem.

Good to have a concrete example and yeah, which roads to edit only part of. There's also the attributes, aka tagging. I agree there's no one size fits all. One continuum I see is the sanctity of the original import vs the desire to keep up-to-date with OSM. In many cases I imagine the latter, wanting to keep up-to-date with OSM, is key. Notifications that edits may be lost, in the same way you get a notification on git that pulling down upstream changes will clobber local uncommitted changes, is a good solution, leading to the idea of an interactive merge conflict resolution.
I'm thinking of a UI that gives you options including:

[ ] Update geometry to include changes in OSM
[ ] Keep original geometry

And then if there is a clash in tag values, e.g. if cycleway=lane added by the user changed to cycleway=track in OSM on one of the newly split geometries, there could be a conflict resolution UI that says something like:

Conflict in merging geometries, diff shown below
[ ] Clobber local changes and synchronize with OSM (you can make local edits after to reflect local changes)
[ ] Keep local attributes and ignore updates to the cycleway tag

Then it could go to the next conflict. Of course there could be settings like --clobber-all or --keep-local that could be used when there are too many changes to do manually but I suspect for many city locations updated every few months or so the changes will be doable via manual inspection. Thoughts?

Another type of problem to solve: right now the LTN file has all modal filters. I just added a missing one to OSM upstream, but all prior save files will erase it once loaded. Save files need to instead represent diffs -- add some filter here, or remove some filter that exists.

Another use case: @xzhou99 wants to import scenarios for infrastructure changes from GMNS. Current thinking is that the input would be a GeoJSON file with line-strings representing road center-lines, and properties on each one describing the lane configuration. (There's no need to agree on exact road centers -- as long as the geometry matches up well enough, it'd be OK.)
Besides describing simple changes like speed limit, the main thing to express is probably lane configuration. There are maybe a few different ways of doing this.

Overwrite the road's lanes entirely

Something like "from left-to-right, the lanes are [1.5m sidewalk, 2m cycle lane forwards, 4m driving lane forwards, 4m driving lane backwards...]"

Describe a diff from the road's current configuration

Like "Remove the parking lane on the left side and replace it with..." This could be a more attractive option, because the base data about current condition may differ across datasets, or get updated in OSM over time.

https://valhalla.github.io/valhalla/meili/algorithms/ explanation of map matching

https://gis.stackexchange.com/questions/204361/find-a-linestring-closest-to-a-given-linestring
Hausdorff dist between linestrings may be useful

http://kuanbutts.com/2020/08/25/simplified-map-matching/


Add README instructions for the Cygwin installer

fzf is now available via Cygwin's installer/package manager, so add
instructions for installing fzf using that route to README.md.

 I was trying to do it but was never been successful. Can you share how it is done?

Me – I'm the maintainer of the package – although it's using the Ruby scripts rather than the Go binary, sadly. I'd been using fzf on Cygwin for a while, and since I'm already the Git maintainer for Cygwin, I figured I'd make it a little easier for others to use it too.
The packaging details, if you're interested, are all over at https://github.com/me-and/Cygwin-fzf.

Ah, that's unfortunate. To be honest, I wouldn't recommend using the Ruby version anymore since it's no longer updated and lacks too many new features that the Go version has. So I don't want to give the impression that I "officially" support Cygwin platform by mentioning it on the README page because it's not. Even if we mention Cygwin I'd like to make it clear that the new version is not available on it and instead of giving the full details, simply point to the wiki page for Cygwin.

Okay, that makes sense. I've already mentioned the Cygwin installer on the wiki page.
As I understand it, Cygwin will still benefit from the changes made to the supporting scripts, such as the changes to the Bash completion script in 0.10.9, or are those changes wholly dependent on new features in the Go version?

More directly related to the pull request: do you want a new PR that just says "there's a Cygwin package, but it's using the legacy Ruby code and not officially supported", or would you prefer to continue not mentioning it at all?

Some new features are already being used by those scripts, but I've been trying to keep the ruby version still usable by doing this. I don't think it's sustainable.
I'd rather not put it on the README page at the moment. So I'll close the PR. But feel free to update the wiki page as you wish.
Note that I'm still very interested in providing Go binaries for windows and cygwin, but I don't own a Windows machine and I don't think I have enough experience or knowledge on that platform. I've been waiting for some help, but had no luck so far.


inkscape fails with argument list too long

Issue description
This is blocking nixpkgs-unstable, all jobs that are part of unstable should probably also have a maintainer.
/cc @matthewbauer
[ 89%] Building CXX object src/CMakeFiles/inkscape_base.dir/splivarot.cpp.o
[ 89%] Building CXX object src/CMakeFiles/inkscape_base.dir/viewbox.cpp.o
[ 89%] Linking CXX shared library ../lib/libinkscape_base.dylib
/nix/store/jpwsh1pzwnizdzqk2l266526j9ap1r5j-clang-wrapper-5.0.2/bin/clang++: line 183: /nix/store/zq6w7nl1fgkm2449ip0f5rbjbczn8lb7-clang-5.0.2/bin/clang++: Argument list too long
make[2]: *** [src/CMakeFiles/inkscape_base.dir/build.make:10488: lib/libinkscape_base.dylib] Error 126
make[1]: *** [CMakeFiles/Makefile2:695: src/CMakeFiles/inkscape_base.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
builder for '/nix/store/xq31kqr6k7rhnvplil8i54b310cbh7ql-inkscape-0.92.3.drv' failed with exit code 2

Steps to reproduce
https://hydra.nixos.org/build/75956995
nix-build pkgs/top-level/release.nix -A inkscape.x86_64-darwin

Technical details
Please run nix-shell -p nix-info --run "nix-info -m" and paste the
results.

This was already solved once: https://github.com/NixOS/nixpkgs/issues/39175

That's from a month ago, the problem was reintroduced a 1 or 2 days ago.

Yeah fwiw switching to make seemed to solve it (but introduces its own issues). Has anything big changed in the last two days?

Fixed in 1f8f89d309eeebfe00b25c30cc9dca103f3d8b47.

I'm seeing this problem on multiple other packages on macOS, e.g., stack and a few of my own Haskell packages that I build with Nix. Does this mean I need to add strictDeps = true to all of these packages? If so, that doesn't seem like a robust fix.

Thanks for the pointer to #41420. I'll take this over there.


Assertions.fail is causing problems due to @CheckReturnValue

Summary
It looks like Assertions.fail is no longer void starting from AssertJ 3.11.0 (#1294). Since Assertions is annotated with @CheckReturnValue quite some projects out there might run into troubles.
Example
import org.assertj.core.api.Assertions;
import org.junit.Test;

public class AssertionsFailTest {

    @Test
    public void test() {
        Assertions.fail("failing this test on purpose");
    }
}

Using this example and errorprone every project which is using Assertions.fail will fail now with something like:
error: [CheckReturnValue] Ignored return value of method that is annotated with @CheckReturnValue
        Assertions.fail("failing this test on purpose");

good point, we will disable it for fail.
I'm away for a few weeks but I'll try to do a service pack for it.
On Thu, 16 Aug 2018, 18:53 Erhard Pointl<EMAIL_ADDRESS>wrote:

Summary
It looks like Assertions.fail is no longer void starting from AssertJ
3.11.0 (#1294 https://github.com/joel-costigliola/assertj-core/pull/1294).
Since Assertions is annotated with @CheckReturnValue quite some projects
out there might run into troubles.
Example
import org.assertj.core.api.Assertions;import org.junit.Test;
public class AssertsionsFailTest {
@Test
public void test() {
    Assertions.fail("failing this test on purpose");
}

}
Using this example and errorprone every project which is using
Assertions.fail will fail now with something like:
error: [CheckReturnValue] Ignored return value of method that is annotated with @CheckReturnValue
Assertions.fail("failing this test on purpose");
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/joel-costigliola/assertj-core/issues/1298, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAXWleYqhoXYOmtDVQeUJ9z7j4inuPuPks5uRU8sgaJpZM4V_oY5
.


Not right check value for Android

Component returned true, even if location permission is disabled
Describe your environment

React-Native version - 0.51.0
Platform: Android
Simulator: Genymotion Samsung Galaxy S6 API 23
OS version: 6.0.0
react-native-permissions version: 1.1.1
(Android only: buildToolsVersion) Gradle 2.14.1

it is only support in Android 6.0+

What's your buildToolsVersion? Gradle 2.14.1 is your gradle version

Android 7.0 is also,  buildToolsVersion is 23.0.1, Gradle version is 4.1.

Most likely same as #167
The solution mentionned on the thread fixed it for me.
I would advise closing this issue as it seems to be a duplicate.

android 8.0, seems always return 'authorized', when request permission  of 'contacts', even i manually turn off this permission in system setting. hope any reply.

I am closing this since this issue does not exists anymore with the 2.0.0 release.


Discard edits message not showing when I make a change in a record then without clicking update button select another record

Describe the bug
Discard edits message not showing when I make a change in a record then without clicking update button select another record.
It is not showing the Discard edits message
Expected Behavior
It should show the discard edits message since we are getting away from the Editing state without committing the edit.
Reproduction Steps & Sample
Test app: https://solutions.mapsdevext.arcgis.com/apps/instant/manager/index.html?appid=fddd9b183ae14ffb9621b3fa51f852b8

Launch the test app
Select a record
Click Edit button
Make some changes
Instead of clicking on Update, select another record (key step)

Other Relevant Info
No response

cc @sarahmcdonald7

@azizaparveen Just a heads up, I don't think this is a regression. I was able to reproduce this on production. We should show that discard edits message if the app leaves an open edit form.

@sarahmcdonald7 you are right, it is not a regression. John is working on it.

Pushing this next release @sarahmcdonald7 @jmhauck @skrishn

@azizaparveen you will notice an issue when you are editing a feature and change layers and choose to continue editing. The layer selection in the layer picker is not showing the correct state. I will revisit this after the migration to calcite 3 is complete.


Applies To: and first paragraph contradiction

The top of the article says "This cmdlet is available only in on-premises Exchange."
However, the applies to lists "Exchange Online"
It looks like this command might be available in Exchange Online.

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

ID: a057e0e5-e897-e015-11ed-22cdbb6f7c43
Version Independent ID: ee3ec571-bf8c-7623-92a8-538851427d54
Content: Import-RecipientDataProperty (ExchangePowerShell)
Content Source: exchange/exchange-ps/exchange/Import-RecipientDataProperty.md
Service: exchange-powershell
GitHub Login: @chrisda
Microsoft Alias: chrisda

@SuperTekBoy, fixed.
Thanks for the feedback.
Closing


Fixed failing debounce test and changed its example in the documentation

Example code from the doc and test
final listenable = ValueNotifier<int>(0);
listenable
    .debounce(const Duration(milliseconds: 500))
    .listen((x, _) => print(x));

listenable.value = 42;
await Future.delayed(const Duration(milliseconds: 100));
listenable.value = 43;
await Future.delayed(const Duration(milliseconds: 100));
listenable.value = 44;
await Future.delayed(const Duration(milliseconds: 350));
listenable.value = 45;
await Future.delayed(const Duration(milliseconds: 550));
listenable.value = 46;
// will print out 42 ,45,46

But after the execution of the above code, only 45 should be printed out and it does too, because whenever we assign a new value to listenable.value it will be overriding the old value after the debounce time is ended. If we want to print all values, in this example 42, 43, 44, 45, and 46, we need to await for >= debounce time which is (500 in this case) after each assignment. So the code will be like
final listenable = ValueNotifier<int>(0);
listenable
    .debounce(const Duration(milliseconds: 500))
    .listen((x, _) => print(x));

listenable.value = 42;
await Future.delayed(const Duration(milliseconds: 500));
listenable.value = 43;
await Future.delayed(const Duration(milliseconds: 500));
listenable.value = 44;
await Future.delayed(const Duration(milliseconds: 500));
listenable.value = 45;
await Future.delayed(const Duration(milliseconds: 500));
listenable.value = 46;
// will print out 42, 43, 44, 45,46

Thanks for pointing this out, but in this case the documentation was wrong. Strange that I didn't saw that because I ran the tests.
it really only should return '45'


Running this two times (to create two individual WordPress Dockers on a host machine) will lead to a conflicting database (due to the static volume and DB name)?

I noticed that you are mounting the mysql volume and always creating a DB named "wordpress" when this DockerFile is runned. What if I decide to run multiple WordPress installations with separate Dockers on a same host?
They will confluct due to the same DB name in my opinion - "wordpress".
The easiest solution would be to randomize the DB name based on a timestamp or some other mechanism to avoid conflicting names.

Not. You should mount different host volumes into the containers. One uniquely for one container instance. Or just not even mount anything into the container. Having multiple mysql daemons work on the same files will most likely destroy your dbs.


Intl is not defined for Firefox on Tablet

I got a report that Firefox on Tablet (Android) doesn't get polyfill for Intl similar issue that I reported while back for mobile version of Firefox.
Mozilla/5.0 (Android 6.0; Tablet; rv:42.0) Gecko/42.0 Firefox/42.0

This is the user-agent. The file is filed long ago on Bugzilla but I don't think this will get done anytime soon anyway.

@alicoding I can confirm the polyfill does not load.
Here is how you can request the polyfill with that useragent explicitly set:
https://cdn.polyfill.io/v2/polyfill.js?features=Intl&ua=Mozilla/5.0%20(Android%206.0;%20Tablet;%20rv:42.0)%20Gecko/42.0%20Firefox/42.0

It is being detected as Android 6.0.
The polyfill table does not show if it works on Android.
The browsers the polyfill states it works with does not include Android --
"ie": "<11",
		"ie_mob": "10",
		"firefox": "<29",
		"opera": "<15",
		"chrome": "<24",
		"safari": "*",
		"ios_saf": "*",
		"firefox_mob": "*"

If Android was adding to the list, it would work.
Until then, you can request to always returns the polyfill and have it behind a feature detection - this is achieved by adding &flags=always,gated to the request.
https://cdn.polyfill.io/v2/polyfill.js?features=Intl&ua=Mozilla/5.0 (Android 6.0; Tablet; rv:42.0) Gecko/42.0 Firefox/42.0&flags=always,gated

@JakeChampion I'm wondering. If my navigator.userAgent is not equal to Mozilla/5.0 (Android 6.0; Tablet; rv:42.0) Gecko/42.0 Firefox/42.0 should Intl be polyfill even if it exists in this?

The issue here is misidentification of Firefox mobile as Android.  We use the ua-parser module to identify browsers so this issue could be reported there.  Also Mozillians like @samgiles might be interested.
If this UA string were recognised as firefox mobile, we would serve the Intl polyfill to it.

This has been fixed - https://cdn.polyfill.io/v2/polyfill.js?features=Intl&ua=Mozilla/5.0 (Android 6.0; Tablet; rv:42.0) Gecko/42.0 Firefox/42.0

Thanks!


'ServiceBus_CDMToSynapseView' was unable to start. Connection should have an 'fullyQualifiedNamespace' property

Hi,
I am installing CDMUtil as Azure Function app.
I have deployed the function and granted all the necessary permissions.
I can't see synapse views are created.
When I checked the failure in the App insights, I am seeing an error
The listener for function 'ServiceBus_CDMToSynapseView' was unable to start. Connection should have an 'fullyQualifiedNamespace' property or be a string representing a connection string.
What is this? Where can I add this FullyQualifiedNamespace?
ServiceHub_CDMToSynapseView is created as part of CDMUtil.
I am totally struck with this error. How can I fix this?
Regards

@krishmaddala
It would be great if you could add a link to the documentation you are following for these steps? This would help us redirect the issue to the appropriate team. Thanks!!


FR-104 Merge the FlightRecorder business logic, API and UI repositories

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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 97.876%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1054

Relevant Lines:
1066

💛  - Coveralls


[vevo] Fix extraction (using config.token.key)

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[ ] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
Created this before I saw #12847
In comparison, this change uses the same (old) APIs to download, so the change only affects how the token is generated.
client_id value is from https://www.vevo.com/nucleus/browser.7a7cc4c0ad3d8034ba16.js and could change at any time.
Fixes #12678 .

Awesome find!
@dstftw can we get this one merged? I'll rewrite my extractor anyway.

You can also pass that token in a header:
    def _initialize_api(self, video_id):
        [snip]
        self._headers = {
            'Authorization': 'Bearer %s' % auth_info['legacy_token'],
        }
        self._api_url_template = self.http_scheme() + '//apiv2.vevo.com/%s'

    def _call_api(self, path, *args, **kwargs):
        try:
            data = self._download_json(self._api_url_template % path,
                                       headers=self._headers, *args, **kwargs)

token in http header - I haven't touched that part; the original code sends the token as a query string. I'll leave that up to the extractor rewrite :)

Do you want to be credited as one of the authors of youtube-dl? If so under what name?

Do you want to be credited as one of the authors of youtube-dl? If so under what name?
Thanks for asking. "gritstub" would be great.


Documentation: use port 2379 in local cluster guide

The port in endpoints should be 2379, instead of 12379.

@leonliao change the first line of the commit message to Documentation: use port 2379 in local cluster guide so CI passes and this can be merged? Thanks!

Done. Thanks

lgtm


Clean up test directory even if tests fail

The problem is that if a test panics, the directories/files that were created before that are left alone.

Maybe we can do it in a way that we create a new folder each time that is ensured to be deleted as first step. Kid of:
rm -rf test_sandbox
mkdir test_sandbox
... test running inside test_sandbox ...

I tried remove_dir_all, but we need to skip the error if it's Not found kind, I just couldn't figure it out yesterday and though I might was well open an issue and discuss other options as well.
https://doc.rust-lang.org/std/fs/fn.remove_dir_all.html

Well, if it is not found, then the folder doesn't exist, that is what we want. I think that is good.
Maybe I'm not understanding the issue

If it doesn't exist it will Error, if it errors it quits the test, so we need to catch the Not found error and allow the test to continue.

Ok, I see. Then, we can build a helper function that should be called in each test. There is no beforeEach in rust, right?

Maybe this can help: https://medium.com/@ericdreichert/test-setup-and-teardown-in-rust-without-a-framework-ba32d97aa5ab

This #18 may close this one.

Closing as we can sort of guarantee with #18 .


initial API implementation in Flask

Really just playing around here, based on the suggestion at #127
In the ultimate 'eat your own dogfood', I used chatgpt-wrapper to query ChatGPT to help me write the code for this PR... :)
Totally alpha, subject to change.
API endpoints are documented in the code.
Run with: python chatgpt_wrapper/gpt_api.py
P.S. I'm not really sure how useful this would be, given the manual login step required, and even if that was solved, I can't imagine this would be able to perform under any kind of load.

@thehunmonkgroup add Flask to requirements.txt too

@dg-nvm right, that would be a thing I totally forgot to do...
Fixed now.


⚠ SceneTime has degraded performance

In 3a7c384, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 9248 ms

Resolved: SceneTime performance has improved in 8886d19.


Use something more secure than bearer tokens for auth

moving access_tokens to the http headers mitigated it, but it's still quite easy to leak an access_token, in which case, you lose. Perhaps we should consider using something like OAuth 1 signatures, like twitter: https://developer.twitter.com/en/docs/basics/authentication/guides/creating-a-signature

Another alternative is access_tokens that actually expire, or which have limited powers.

It's worth noting that OAuth2 deliberately replaced OAuth1's signatures with bearer tokens, basically because signatures were a pita to work with. Maybe it's better just to limit the power (ie, scope) and lifetime of access tokens.

related: https://github.com/matrix-org/matrix-doc/issues/2615


Github pages' deployment doesn't work

Deployment page returns error 404
Here's the screenshot down below

Hi @benzlokzik! We don't have github pages for this repository.


Speed up getAccessibleFileSystemEntries

While writing a benchmark, I happened to notice that (a) the natural
win32 APIs for this task include "isDirectory" in the result and (b)
readDirSync will return entries, rather than strings, if you pass
withFileTypes.  It turns out this version, which allows us to dispense
with path math and stat calls is ~30X faster (enumerating a directory
with 600 children).

Struggling to find an emoji to express my joy

On Node 8 on Linux, the flag is ignored and strings are returned regardless.

Node 10 on Linux shows a ~5X improvement, so it's probably worth finding a way to special case Node 8 on Linux.

There's already a PR to use withFileTypes which is waiting for review for a few weeks.

@ajafff Thanks for the link!  Closing in favor of #35286.


[backport] Add a test to reproduce the bcast deadlock problem

Backport of #7257

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit b40b71c17fe633e471b90ceddb0182e36e83e4eb, target branch v6) succeeded!


v0.8.1 docs update

What kind of change does this PR introduce?
Docs update

@all-contributors please add @toomuchdesign for code, infra, test, maintenance

@all-contributors please add @Meemaw for code, infra, test, code review, ideas
@all-contributors please add @jasonwilliams for ideas

@all-contributors please add @Meemaw for code, infra, test, code review, ideas

@all-contributors please add @jasonwilliams for ideas

Codecov Report

Merging #34 (f86ed47) into master (693bddb) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master       #34   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           18        18
  Lines          284       284
  Branches        33        33
=========================================
  Hits           284       284

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 693bddb...22c51be. Read the comment docs.


[BUG] Pure Souls and Crying Souls interpolation causes unintended visual effects

Due to the interpolation of the textures and the very nature of said textures being moving objects, the Pixels that are not there in the next frame will fade to black before fully vanishing for the next frame, causing a weird fade to black effect.
Its much more noticeable on the Pure Souls than it is on the Crying Souls
https://github.com/TeamPeril/Sculk-Horde/assets/111310936/840b7194-73a8-4ffa-bb0a-ae028d633d7f

A solution to this is just making the textures not interpolate, probably the only one too

Thank you, it will be fixed in the next major update.


Problem about dataset loading

When I was about to run the test code which is downloaded from spateo website, the function st.io.read_bgi_agg could not work normally, and the error gzip.BadGzipFile: Not a gzipped file (b'Pa') occured. I use WSL Ubuntu 20.04 and install spateo following the installation guidance. Do you have any idea about that?

Hi @Zhixuan-Jing ,
Thank you so much for your question on spateo. What is the file you downloaded? Can you let me know, thanks.

The two files are 'SS200000135TL_D1_all_bin1.txt.gz', 'SS200000135IL-D1.ssDNA.tif'; When running, the error occurs

Are you sure you downloaded these two files from the spateo website? I don't think we are providing these two files now. You can check the website below for the latest sample files.
https://spateo-release.readthedocs.io/en/latest/autoapi/spateo/sample_data/index.html

Are you sure you downloaded these two files from the spateo website? I don't think we are providing these two files now. You can check the website below for the latest sample files. https://spateo-release.readthedocs.io/en/latest/autoapi/spateo/sample_data/index.html

Thanks @Yao-14, I have downloaded the latest dataset. However another problem raised: When I was about to load the mouse brain data, an AtributeError occured (shown as follow)

Then I tried other datasets like drosophila, I still cannot load the full data, the problem is also shown below:

Any guidance or help is appreciated

Hi, @Zhixuan-Jing - thank you for your inquiry, and for catching this error. Please try reinstalling Spateo and downloading the datasets now- hopefully everything should now download smoothly!
Also, as of this moment I don't believe Spateo is availabe on PyPI (referring to the last line in the first screenshot). It can be installed using this command instead: pip install git+https://github.com/aristoteleo/spateo-release

Thanks @dzhu8 for the help - I have reinstalled spateo and dataset, but there is still problem-even though the previous is solved.
The screenshot is attached below, which are my code and the result. Is there anything wrong in my code?

And the result is:

I think this may be a consequence of how anndata and h5py interact- what version of h5py are you using? Would you mind installing version 3.7.0 and letting us know if this resolves these issues? (pip install h5py==3.7.0). If this works we'll put this information onto the Spateo website.

My h5py is 3.7.0 actually, but when I run my code there is still this problem...Here is my default setting on linux, maybe there are some other probblems
configuration.txt

Try pip install anndata==0.8.0

Thanks @dzhu8  - the problem now get fixed


Translation update

I'm not quite sure what Weblate is up to. This should fix another merge conflict.

Builds fine locally


Copy explicit list of CRDs

Avoid that the rebase script stomps over CRDs that aren't contained (yet) in the output of oc adm release info --contents.
Signed-off-by: Frank A. Zdarsky<EMAIL_ADDRESS>

/lgtm


improvements for the ssl-support branch

The commits in this pull request are based on the two commits by @artichikin in the ssl-support branch.  We've (@binaryparadox and me) been using these commits in our app for a bit, and the SSL/TLS/HTTPS support seems to be working fine and we'd love to see it integrated into master.   We have only been testing on Android, but various versions of Android.
The two commits by @artichikin have been rebased on top of today's master, they didn't need any changes.

any possibility of a comment here? it would be nice to revive this and get it merged in.

I think it would fit, what do you think @elonen ? But could you ( @eighthave  ) help by rebasing the commits to the current master and testing it (unit tests)?

Yes, I agree. Already considered this, as a matter of fact. One thing that confuses me is that the pull request seems to be pointing at the master branch instead of ssl-support. Am I misunderstanding something on the Github UI..?

that probably means that the branch was created from the master, and the ssl stuff was imported into it.

If this is really enough code to provide usable HTTPS support, it's small enough in my opinion to be included in master for easier maintenance (and one less branch).
If @eighthave can rebase this to head and confirm it still works, I'd say let's merge.
Ideas / code for unit testing this?

Full agree from my side!

@elonen it is enough code to provide HTTPS, we have been using it :-)  I'd like to see it in master rather than the separate branch, so happy to hear that.  I can do a rebase quickly, but unit tests will take longer.  I have some client-side unit tests in the works, but nothing ready to merge.

Tests are important but haven the SSL code inside even more, thanks for your support. All these fixes and features will make the next release a great step forward! Best provide the code first and the tests later (but please do not forget them ;-) ), because the code formatting will change and that will make merging more complicated.

ok, I rebased everything.  It went smoothly, and the existing tests pass.  So at least HTTPS support didn't break anything else ;-).  I'll follow up with a pull request for some simple client side tests, but don't let me block anyone from writing tests for the HTTPS stuff :-D


add ArrayView::iter

#669

Pull Request Test Coverage Report for Build 2195
Details

4 of 5 (80.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.01%) to 91.344%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

builtin/arrayview.mbt
4
5
80.0%

Totals

Change from base Build 2193:
-0.01%

Covered Lines:
3651

Relevant Lines:
3997

💛  - Coveralls


How to use more than 12 tracker at the same time with all buttons functioning? For example, 12 hyperkin blaster pistols or more ?

Hi there! I am a HTC VIVE user and I am developing a gigantic space shooting VR game based on 12 VIVE trackers with 12 hyperkin blaster pistol. Could you please explain that how to make multiple tracker trigger function with steam VR version1.14 and upper?  Thank you!

There are 12 tracker role in unity steamvr plugin and 11tracker role in steam vr input binding ui. And rightnow we could set several tracker to one tracker role such as tracker_hand_left, but it seems that only   the first tracker could work as suspected for each tracker role. Other tracker has a input dir like "user/hand/left/vive_trackerXXXXXXX/" which seems could not be recognized by our unity application. Is that normal? How are we supposed to understand this new complicated mechanism? Could I possibly add custom tracker roles for 12, even 32 tracker gun? Thank you!

All of these trackers/blasters are connected to the same pc? Is this not in VR?

Half VR，like a local room multiplayer game with a huge dome projection screen. So all trackers are just connected to one PC.

Is there any way to bind unity actions to input of tracker_role_none? Those input paths are like "devices/HTC/vive_tracker_XXXXXXXX/input/..."


Error responses are not handled

Hi there,
Here is an official error handling guide for fiber. It propose to return all errors to Fiber
https://docs.gofiber.io/guide/error-handling
Example:
app.Get("/", func(c *fiber.Ctx) error {
    // 503 Service Unavailable
    return fiber.ErrServiceUnavailable
})

In this case such errors will be skipped from catching by middleware.go due to the code below
	if err := ctx.Next(); err != nil {
		return err
	}

AR: error cases will be skipped from metrics
ER: error cases should be a part of metrics

Hey @marniks7 thanks for pointing this out. I was slightly confused with the implementation so opened an issue https://github.com/gofiber/fiber/issues/1685
Seems, it's handled slightly differently in fiber as compared to other frameworks.
I will try to tackle this in the next few days, but in case you'd like to contribute, please feel free to open a PR.


Basketball page

Implement first version

Should think if this page could be integrated with the projects page somehow #7

Should be removed if no ideas come out within a week 🤷♂

May implement a new grid element instead of this - Timeline (current situation)


Ability to send null through Alamofire PATCH requests

Problem
Updating objects on our server with nil values (for instance when you want to null a field in a database)  does not work currently with Alamofire.  This is an important feature in development espeically when using PATCH endpoints where the absence of a field does not mean that the field is null.
Description and attempted solutions
I have tried a few ways to get this functionality as expected:

I have tried just sending nil values through a dictionary which was suggested to work in this closed issue. However that does not work, as you can see the URLEncodedFormEncoder does not accept nil values

I have also tried to  create a property wrapper that encodes nil via jSONEncoder and pass that through to Alamofire. This results in sending "<null>" through the API, which is not the desired result (we just want the null keyowrd, not a string)

@propertyWrapper
public struct NullCodable<T> {
    public var wrappedValue: T?

    public init(wrappedValue: T?) {
        self.wrappedValue = wrappedValue
    }
}
extension NullCodable: Encodable where T: Encodable {
    public func encode(to encoder: Encoder) throws {
        var container = encoder.singleValueContainer()
        switch wrappedValue {
        case .some(let value): try container.encode(value)
        case .none: try container.encodeNil()
        }
    }
}

I have found a stackOverflow post that discusses how to potentially use a patch endpoint with Alamorfire here. However, this method is not realistic for complex applications where network requests are abstracted, and besides creating the http body manually is more of a hacky solution rather than a safer one that could be developed as part of the Alamofire pod.

Feature Request
Allow requests using the http method PATCH to send the null keyword as a value for parameters.
Value to Alamofire
This an expected behavior of PATCH endpoints and would make Alamofire easier to use for developers. Right now developers are forced to either have backend developers change to PUT endpoints, or when they are unable to change that, the iOS developers must spend many hours trying to implement a custom solution for PATCH endpoints.
Example of desired output when sending nil values through an Alamofire patch endpoint:

Using URL encoding for body is pretty rare, which is why this feature wasn't built initially. Are you sure you can't use JSON?
In any event, this looks doable, but I'll investigate more later.

Another question is how to handle nil in the first place. Vapor's URLEncodedFormEncoder just skips nil values altogether. I'm tempted to go that direction rather than sending explicit null values, both because it's easier and because it would be better to match an existing implementation. If null values are required that may also then require the addition of a NilEncodingStrategy to drop the values or replace them with null.

I've added a NilEncoding type on the feature/nil-encoding branch, feel free to give it a try. If you need null values, create your own instance of the parameter encoding configured that way: URLEncodedFormParameterEncoder(encoder: .init(nilEncoding: .null)).

Looking at it again, it definitely looks like your example output is JSON, not a form encoding. That encoding is up to JSONEncoder which I don't believe offers a configuration that will return null for nil values. But pretty much all JSON backends can accept either, so your backend should be able to interpret missing keys as nulls easily.

@jmonroe You can use the feature/nil-encoding branch to use URLEncodedFormParameterEncoder with optional values. I'll look into making that a PR, as we should at least be able to skip values.

@jshier Thanks, I will look at doing that for now.  Thanks for the update.  I was hesitating to use the branch without knowing if it was going to move forward or not.
I appreciate all the work that has gone into this!

NilEncoding has been merged and will go out in the next release.


change project table to include imagery rid

load and update imagery rid on the project creation/update page

You no longer need the text field base_map_source in the projects table.  Drop all references to it in the table, create_project, update_project, etc.  Create a sql update to convert the current base_map_source into the imagery_rid field.

@sirmspencer Please review

src/main/java/org/openforis/ceo/postgres/PostgresProjects.java
Line 936, you cant send 0 to PG, imageryId has a foriegn key and there is no 0. You will need to create a function to find the first publicly avaiable imagery and use that id.  When you are done verify that if no imageryId is sent that there are no errors.
src/main/resources/public/jsx/components/ProjectComponents.js
Line 14, imageryId is a numeric, use -1
Line 169, imageryId is a numeric, use {imageryId || -1}
Line 242, imageryId is a numeric, check for a positive number.
Line 73/75 update mercator to use id instead of title.
src/main/resources/public/jsx/review-project.js
Line 55, put this.state.plotList on its own line
Lines 44/45, 226/227 update mercator to use id instead of title.
src/main/resources/sql/update_2020-05-18.sql
Lines 6-9, this is not complete.  There can be imagery with the same name if the institution is different. Do you have a copy of the collect.earth db to test this on locally?  There may be cases where bad data exists, since there is no unique constraint actually set. Your update could fail if your from / where clause produces more than one result.
Line 120, do you need to drop the view before recreating it?

@sirmspencer I do not have a copy of the db. Would it be possible for you to send me a copy over to my email? Thanks~

@sirmspencer Please review.

I saw that there are some rows of base_map_source as PlanetGlobalMosaic which are not present in the imagery as public nor as to the private source for the institutions. This might indicate that at some point those were public and then turned to private. So these records were not converted. Others are doing fine as per the DB that you shared. I might need your help with updating those. But please test on your local repo before trying out in the production.

I think updating Mercator to use id instead of title can be a separate issue that I can work on after this is merged.

Thanks!

There is an imagery for PlanetGlobalMosaic for institution_rid = 3.  institution_rid = 3 is SIG, where most public imagery is hosted.  It is not private because we retired it.  If any projects use PlanetGlobalMosaic but their institution does not match any other available imagery use the one that is institution_rid = 3.

I will help you with the queries to update the imagery.

@sirmspencer

I just updated the PR to include PlanetGlobalMosaic from institution_rid 3. But there is still one record from the backup DB that has PlanetDaily base_map_source, which is not included in the institution_rid 3, rather on another institution_rid 226. Please make the adjustment to which you think is best.
I think that DROP COLUMN base_map_source CASCADE drops the view as well. So haven't included it.

Again please test on your local repo before trying out in the production. Thanks!

src/main/java/org/openforis/ceo/postgres/PostgresProjects.java
509-513, use a complete if else statement instead of mutating a variable.
if (rs.next()) {
    return rs.getInt("select_first_public_imagery");
} else {
	return 0;
}

src/main/resources/sql/load_ceo_tables.sql
63, Dont drop the base_map_source just yet.
58, move imagery_id to the end so that it matches our live database.  ALTER TABLE will add the new column to the end.
src/main/resources/sql/update_2020-05-18.sql
32-66, This simplifies. After you have set all of the valid base_map_sources, just set all remaining null imagery_rid to select_first_public_imagery
56-66, Sorry I misspoke a little bit.  While its true that there is still a reference to PlanetGlobalMosaic in institution 3, it is not a valid choice moving forward.  It can just be set to select_first_public_imagery
Dont drop the base_map_source just yet.  Lets give it some time, just in case the update is not sucessful


Feat: disable services via command line argument

This PR introduces support for disabling services via the command line, either individually with-d <service>, or collectively with --disable-all.
Disabling services for chained tasks still functions the same as it currently does—ie., if a task in the chain requires one of the disabled services, it will start as normal.

This is great!


Enable custom unit prefix on axis labels

v1.: Enable other standard options than SI, (K, M, B, T)
v2.: Enable custom options set by the user
Question: Can the same prefixes be used on tooltips and labels? Instead of writing<PHONE_NUMBER>, 3.46B or 3,458M could be used.

Implemented: https://github.com/vizzuhq/vizzu-lib/pull/155


doesn't handle target.crossbeam_loom correctly

relates to the following stmt from the README.md:

It does translates target strings to nix expressions. The support should be reasonable but probably not complete - please let me know if you hit problems.

trace: https://gist.github.com/zseri/44eb7052e9634e2761e459272eab05c4

probably stems from this file: https://github.com/crossbeam-rs/crossbeam/blob/d841a2028dc72b4e09739116f07e865db60f3690/crossbeam-utils/Cargo.toml

In crate2nix/templates/nix/crate2nix/default.nix, defaultTarget should contain crossbeam_loom = false;.

But this is no long-term solution. crate2nix should find all used feature tags used in target.cfg(XXX) form in Cargo.toml files, and either put them into defaultTarget, or default them at use-site to false.

oh no, this is not completely correct... there should be a separate category besides features, targetFeatures, target, e.g. rawFeature, which contains such flags and is merged with target early...

uhh, and this seems to be already fixed, now, as I read the source code, but the fix is not present in the published 0.8.0 version... :-(


Support extra-doc-files

Cabal since 1.18 supports extra-doc-files.
http://cabal.readthedocs.io/en/latest/developing-packages.html#pkg-field-extra-doc-files
I have a few projects that used them before I converted them to hpack. Now they're listed in extra-source-files to get them in the sdist tarball, but it would be nice if hpack supported this field as those files are meant to be installed in a package's html docs directory.

PR please! ;)


Add “hair on fire” notifications

There should be a checkbox on the bot status monitors that sends a notification when the bot turns red.

It would be cool, if such status changes would be posted in chat.

Main issue is that would require a way to post to chat. If all your instances are dead, we kinda don't have that.

@Undo1 I was thinking of a desktop notification (Notification).

I was defaulting to thinking email notifications, but we don't have emails to notify so I suppose that's out of the question. A desktop notification may be best, yes.

The alternative is to just collect emails when someone wants to be notified - "want notifications? click here" - "enter your email address to get notified when everything is falling apart"

That'd be an option.

Any updates on this?


Fix describe volumes response with no tags

This PR modifies the response format of the ec2 calls create_volume and
describe_volumes to resolve https://github.com/spulec/moto/issues/2097. A test case is also included.
When an EBS volume has no tags, calls to the aws ec2 endpoints create_volume
and describe_volumes do not include the Tags key in the
response.Volumes[] object.
However, moto does include the Tags key in this case. This discrepancy
in behaviour can result in code passing a moto test but failing in
production.
Sample snippets that trigger this condition:
def create_volume_and_then_get_tags_from_response():
    client = boto3.client('ec2', region_name='us-east-1')
    volume_response = client.create_volume(
        Size=10,
        AvailabilityZone='us-east-1a'
    )
    keys = volume_response['Keys']

def create_volume_and_then_get_tags_from_describe_volumes():
    client = boto3.client('ec2', region_name='us-east-1')
    volume_response = client.create_volume(
        Size=10,
        AvailabilityZone='us-east-1a'
    )
    volume_describe_response = client.describe_volumes()
    keys = volume_describe_response['Volumes'][0]['Keys']

Both sample snippets will succeed in a moto test, but fail with a
KeyError when using the aws api.
When this PR is merged, the Tags key will not be included in responses if
the volume has no tags.

Coverage decreased (-0.2%) to 92.743% when pulling 7b236c4dedac874486ed9947c94847375404212a on tay-bird:fix-describe-volumes-response-with-no-tags into 5a207555650f970fb7f056482bd0bccbf37aa5c6 on spulec:master.

Closed and re-opened the PR a few times to re-run tests. They appear to be a bit flakey.


OpenCM9.04 & Visual Micro Debugging

Hello,
We are developing our firmware for our robotic arms to run on the CM9.04 and using the dynamixelSDK. We have recently moved over to coding in Visual Studio using the Visual Micro extension.  The visual micro extension is for developing Arduino projects inside the Visual Studio C++ IDE. It has many helpful features and allows for far more advanced development.
We are trying to set up debugging to work with the OpenCM9.04 board and I'm posting for help on how to achieve this. Offering the OpenCM9.04 to work with Visual Micro would be a huge advantage for all your 3rd party developers.
Visual Micro says that we have to set up the software serial debugger option and we are not sure of the proper settings to make this work.
I have made a post at VM forums here:
https://www.visualmicro.com/forums/YaBB.pl?num=1538797491/0#4
Here are links explaining how to set up serial for debugging:
https://www.visualmicro.com/post/2012/05/06/Configure-debug-for-other-types-of-serial-transport.aspx
https://www.visualmicro.com/post/2013/04/26/How-to-debug-Arduino-on-a-different-usb-serial-port.aspx
Attached is a screenshot of the output shown when trying to run debugging. And on the left in the box is project settings that we need to set up correctly.

Hi, @mtrossen
Visual Micro's debugging method is using a serial device. For the ARM core, DAPLink using CMSIS-DAP must be supported, but unfortunately, OpenCM 9.04 does not.
Therefore, it seems that there is no way to use Visual Micro at this time.
OpenCM supports only ST's debugging method.
How to debug stm32 chips in VS(not Visual Micro) is like this link.

Hi @OpusK
Thank you for the reply. I will look into this solution you have suggested.
I have a few questions:

We are developing front end software to communicate with our firmware on the OpenCM9.04 over USB serial on windows PC. Would your suggested solution allow for debugging at the same time as another software is communicating with the board on USB serial? Or could it be set up to use two different serial ports like in Visual Micro?

Is the difference because Visual Micro is for ARM chips and the OpenCM9.04 is using different chips?

Thank you for your help!

@mtrossen,

At present, there is no official solution.
However, I think using EclipseIDE(please refer to Sloeber for Arduino) is enough. Or it seems to be possible in the way I linked above. (Debug with ST-Link, check data with USB)

OpenCM 9.04 also uses ARM core. The difference is that OpenCM 9.04 does not support DAPLink.
To support this, a separate MCU must be connected, which is not possible because it means OpenCM9.04 hardware change.

@OpusK
Thank you, I will test your advised method. It is a different IDE, but we can change to a new IDE if it allows for debugging. I will report back after we test.

Visual Micro uses serial debug but sometimes needs to know the underlying class of the Serial or a.n.o debug object. In this case adding a board.txt to your project with the following setting will solve the "Debug" build issue.
vm.debug.class_type=VM_DEBUGGER_TYPE_USARTSERIAL
If you need further assistance please continue the thread here
Thanks for the post and all the comments

Hello,
The Visual Micro Admin is correct. VM does work with debugging on the OpenCM9.04. I got it working tonight. For anyone else who finds this thread looking to also use VM with the OpenCM9.04 you can see the thread here:
https://www.visualmicro.com/forums/YaBB.pl?num=1538797491/0#12

Hello,
The Visual Micro Admin is correct. VM does work with debugging on the OpenCM9.04. I got it working tonight. For anyone else who finds this thread looking to also use VM with the OpenCM9.04 you can see the thread here.

I wanted to also leave a note that you can use the dual serial port feature so that you can debug on Serial2 while a separate program is communicating through the main SerialUSB. The guide for it is here:
https://www.visualmicro.com/page/User-Guide.aspx?doc=Debugging-With-Different-Ports.html


Update CallWithChat chat adapter to act synchronously. Add MeetingId&Passcode option to samples

What

Exposed ChatInitialized adapter subscriber function
Log errors if chat functions are called before the chat adapter has been initialized
Update Calling and CallWithChat sample to support meeting id & passcode

Why
Meeting id & passcode feature work.
How Tested
...

Updated PR title and description. Removed breaking-change label as nothing in this PR should be breaking


ValueError in save_evaluation Method of trainer.py

Description:
I encountered a ValueError while running the script train_rl_agents.py. The error occurs when trying to save an evaluation using np.savez in the save_evaluation method of trainer.py. The specific error message is as follows:
Traceback (most recent call last):
  File "train_rl_agents.py", line 121, in <module>
    run_trial(args.device,param)
  File "train_rl_agents.py", line 100, in run_trial
    trainer.learn(total_timesteps=params["total_timesteps"],
  File "/home/hb/RLNav/Multi_Robot_Distributional_RL_Navigation/policy/trainer.py", line 179, in learn
    self.save_evaluation(eval_log_path)
  File "/home/hb/RLNav/Multi_Robot_Distributional_RL_Navigation/policy/trainer.py", line 371, in save_evaluation
    np.savez(
  File "<__array_function__ internals>", line 200, in savez
  File "/home/hb/anaconda3/envs/1_body/lib/python3.8/site-packages/numpy/lib/npyio.py", line 615, in savez
    _savez(file, args, kwds, False)
  File "/home/hb/anaconda3/envs/1_body/lib/python3.8/site-packages/numpy/lib/npyio.py", line 716, in _savez
    val = np.asanyarray(val)
ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 4 dimensions. The detected shape was (1, 1, 3, 1002) + inhomogeneous part.

Steps to Reproduce:
python train_rl_agents.py -C config/config_IQN.json -D cuda
The error occurs just after evaluation.
Expected Behavior:
The evaluation npz should be saved successfully without any errors.
Actual Behavior:
A ValueError is raised, indicating an issue with the shape of the array being saved.
Environment:
Python version: 3.8
gym version: 0.19.0
Operating System: Ubuntu 20.04.6 LTS x86_64
Additional Information:

It seems that the issue is related to the shape of the array being passed to np.savez.
Upon trying to convert values of data_to save using np.array(), I found that data_to_save['objs'] has an incorrect shape, which likely causes this issue.

Any guidance on how to resolve this issue would be appreciated.

Hi, the problem is probably caused by saving ragged nested list as ndarray, which deprecates in newer python versions. The evaluation function is now revised to address the problem.


Cross Canister Calls Not Serialising Principal Correctly

counter.rs
#[derive(CandidType, Deserialize)]
struct OwnerResult {
    canister_id: candid::Principal,
}

#[query]
fn owner() -> OwnerResult{
    unsafe {
        OwnerResult{
            canister_id: candid::Principal::management_canister()
        }
    }
}

service : {
  "owner": () -> (OwnerResult) query;
}

In another file, I can't just return CounterCanister::owner().await.0.canister_id:
It's expecting principal to be a vec of bytes, rather than a principal. The following code below compiles but then returns an error at runtime...

service : {
  "owner": () -> (principal) query;
}

#[import(canister = "counter_rs")]
struct CounterCanister;

#[query]
async fn owner() ->  candid::Principal {

        let b = CounterCanister::owner().await.0;
        let (a,): (candid::Principal,) = decode_args(&b.canister_id).unwrap();
        a

}

Are there any workarounds currently?

@blutooth, I'm closing this issue, for now. Please reopen it if my advice above didn't help you.


test: Improve Dapp-example Acceptance Test completion speed.

Description:
Lowered the time it needs to wait for eth_getTransactionCount so the right nonce gets populated from 10 to 2 seconds, considering that the avg request takes around 200ms, I think 2 seconds is enough time for propagation and also timeout.
I have tested this agains both previewnet and testnet acceptance tests while deploying 0.40 version and testing it.
Related issue(s):
Fixes #
Notes for reviewer:
Before: 7minutes 44 seconds

After: 3 minutes, 6 seconds

Checklist

[ ] Documented (Code comments, README, etc.)
[x] Tested (unit, integration, etc.)

In local node as well as testnet found some issues, closing this.


Remove randomizing

Is there a reason for random arrangement on every visit.
It makes it hard to know when something new is added.
Just a suggestion.
Cheers

It gives every app equal visibility. A-Z order puts XYZ-apps to a less visible position. We randomize the order but remember it while your tab is open so it doesn’t change on reload.

I also thought about that, I think notifications when there is something new would be a solution


before_action not defined in Rails 3

I am using it with Rails 3, the error is:
undefined method `before_action' for SwitchUserController:Class

I changed
class SwitchUserController < ApplicationController
  before_action :developer_modes_only

into
class SwitchUserController < ApplicationController
  before_filter :developer_modes_only

and now it works again.
Is there a specific version for use with Rails 3 !?

@acesuares I didn't test, but is this working?
  if Rails.version.to_i > 3
    before_action :developer_modes_only
  else
    before_filter :developer_modes_only
  end

Hi, I think it would work. I am using this gem now: https://github.com/pschambacher/rails3-before_action/blob/master/lib/rails3/before_action.rb and that just aliases the actions to filters.
Yours is not the only gem that switched to Rails 4. So maybe you could mention it in the docs. I can make a pull request if you want.

@acesuares appreciated if you can make a PR

Can be closed.


riscv veer elaboration errors

I'm working on getting caliptra integrated into our internal infrastructure and running into a few things.

el2_param.vh uses the el2_param_t struct, but it's not clear how it is referenced within the code.   I see el2_pdef.sv, but there aren't any explicit includes.
proposal: Add  `include "el2_pdef.vh" to include/el2_dev.sv (el2_pkg), since that is getting imported right before the include.  Note that the import needs to be propagated to a few files as well (dec/el2_dec_tlu_ctl.sv, el2_dma_ctrl.sv, el2_pic_ctrl.sv, )

In src/riscv_core/veer_el2/rtl/ifu/el2_ifu.sv, ifc_fetch_* is implicitly defined before it is used.
 el2_ifu_ifc_ctl #(.pt(pt)) ifc (.*

 el2_ifu_bp_ctl #(.pt(pt)) bp (.*);

logic ifc_fetch....

proposal: move the two interfaces down to where the aligner/icache is so that all nets are explicitly defined before they are used

Thanks for pointing out that issue.  Let's migrate that issue here since we're working from this repository.
Sounds good

I'll make the change in dev-goog for now, thanks


Fix errors in example

.each doesn't change the result to store in the variable.  It keeps any changes/output isolated.  Need .map to use the result outside of the iterator per the example.
Also, no capital on notify.

Test PASSed

CLA signed by all contributors.

Filed #2451, which duplicates this. I retargeted this to 5.1.x, amended the commit message to resolve Travis's issues, and moved the JIRA ticket generated by gepetto-bot over to the DOCUMENT project for tracking.

Merged in #2451


data.all admins should be able to send custom email notifications to users

Is your idea related to a problem? Please describe.
Currently there is no way for a data.all admin to send a custom email notification to the users / select groups in data.all. This is needed in case there is downtime - in case of maintenance (https://github.com/data-dot-all/dataall/issues/998) - or there needs to be an urgent bug fix which needs users to not use data.all.
For such tasks, data.all admin should be able to write a custom email , select required groups / ( individuals - optional ) and then send that email
Describe the solution you'd like
As this UI should be accessible to only data.all admins, this can be added in the "Admins settings" section . Here, the data.all admin should be able to write an email body and select to whom he wants to send the email. Make the UI experience such that once the data.all admin sends an email the UI clearly states if this action was successful or not.
P.S. Don't attach files. Please, prefer add code snippets directly in the message body.

Tagged to be considered as a follow-up of #998


Fix set_time of ChoreStartTime class

It attempts to fix 2 issues:

We cannot set minute to 0, because "if minute:" will evaluate to False. The same goes for other parameters.
We would get "ValueError: day is out of range for month" if we set month to 2 while the original day is 31, vice versa.

Thanks for the fix!


hw.device-type: Add NanoPi R2C device

Change-type: patch
Signed-off-by: Florin Sarbu<EMAIL_ADDRESS>

@balena-ci I self-certify!