Apply graphql-tag-pluck config options

Is your feature request related to a problem? Please describe.
I'm facing a problem that I can't lint my graphql queries because I'm using custom graphql-tag-pluck tag names that cannot be configured in graphql-eslint, so I think graphql-eslint should allow users to configure its graphql-tag-pluck options. I'm working on a project with multiple schemas with corresponding custom gql tags, and I'd like to use graphql-eslint to lint my queries in these custom tags.
For example, a query to the schema "foo" looks like const fooQuery = foo`query FooItems {...}` , and a query to schema "bar" looks like const barQuery = bar`query BarItems {...}` , and graphql-eslint cannot lint these queries because they don't use the tags gql or graphql or the magic comment /* GraphQL */ as defined in the source code here and  here .
Describe the solution you'd like
Since graphql-config is already being used, it can be extended to include options for graphql-tag-pluck, then those options applied to the existing config as follows in processor.ts:
import graphqlConfig from 'graphql-config';
...
const graphqlTagPluckOptions = graphqlConfig.loadConfigSync({}).getDefault().extensions.graphqlTagPluck
const graphqlTags = graphqlTagPluckOptions.modules.map(({identifier}) => identifier)
const RELEVANT_KEYWORDS = ['gql', 'graphql', '/* GraphQL */', ...graphqlTags] as const;
const blocksMap = new Map<string, Block[]>();

export const processor: Linter.Processor<Block | string> = {
  supportsAutofix: true,
  preprocess(code, filePath) {
    if (RELEVANT_KEYWORDS.every(keyword => !code.includes(keyword))) {
      return [code];
    }
    const extractedDocuments = parseCode({
      code,
      filePath,
      options: {
        ...graphqlTagPluckOptions
        skipIndent: true,
      },
    });...

Configured through graphql-config in the following file graphql.config.js:
module.exports = {
  projects: {
    default: {
      documents: './src/**/*.{tsx, ts, jsx, js}',
      operations: './src/**/*.{tsx, ts, jsx, js}',
      extensions: {
        graphqlTagPluck: {
          modules: [
            {
              name: 'customTags`,
              identifier: 'foo'
            },
            {
              name: 'customTags',
              identifier: 'bar'
            }
          ],
          globalGqlIdentifierName: ['foo', 'bar'],
          gqlMagicComment: '__nomagiccomment__',
        },
      },
    },
  },
}

Describe alternatives you've considered
It seems very clear in the code that custom tags are not supported, so I'm not sure if there are alternatives given that I am using custom tags.
Additional context

Nice catch! Accepted, thank you!

Do I need repo permission to implement this?

Nope, just fork and sent a PR, otherwise I’ll do it by myself and include this change in next release


ALVR Dashboard not loading

Description
After I launch alvr_launcher and it does its thing, it tries ot open the alvr dashboard, but it doesn't load. the screen is competly white.
General Troubleshooting

[ x] I carefully followed the instructions in the README and successfully completed the setup wizard
[x ] I read the ALVR Wikis here and here

Environement
Hardware
Note: for Linux, an upload to the hw-probe database is preferred: hw-probe -all -upload
https://linux-hardware.org/?probe=bbaa6e145b
Installation
ALVR Version:18.2.1.r0.gd37a4b9b-1
SteamVR Version: latest as of april 11th????????
Install Type:

[ x] Packaged (exe, deb, rpm, etc)
[ ] Portable (zip)
[x ] Source
I tried it on both, and still same issues
OS Name and Version (winver on Windows or grep PRETTY_NAME /etc/os-release on most Linux distributions):
endeavourOS (arch basically)

Have you tried opening it manually in a browser with <IP_ADDRESS>:8082 in address bar?


ChangeToken.OnChange can not be detached

Describe the bug
I am attempting to monitor changes to configuration but I noticed that I once I am monitoring configuration changes using ChangeToken.OnChange, I cannot stop monitoring.
To Reproduce
Consider the following sample...
class Program
{
	static void Main() {
		var configurationRoot = new ConfigurationBuilder().Build();
		var disposable = ChangeToken.OnChange(configurationRoot.GetReloadToken, () => Console.WriteLine("Configuration changed"));

		configurationRoot.Reload();

		Console.ReadKey();

		configurationRoot.Reload();

		disposable.Dispose();
		Console.ReadKey();

		configurationRoot.Reload();
	}
}

Notice that running this will always print Configuration changed even after the IDisposable has been disposed of.
Expected behavior
I would expect that once the IDisposable returned by ChangeToken.OnChange is disposed, then it is no longer receiving change notifications. I believe that the issue is due to the fact that ChangeToken.OnChange does not re-capture the IDisposable returned by RegisterChangeCallback when attempting to re-register the change notification. So the IDisposable that is returned is only valid while the current token is alive. In the case of ConfigurationRoot, this token is recreated after every change notification.
As an aside, shouldn't the implementation of ConfigurationReloadToken be more similar to the following to ensure that ExecutionContext is suppressed when registering the change callback, which already occurs in CancellationChangeToken. Should I open a bug in the Configuration repo for that?
public class ConfigurationReloadToken : CancellationChangeToken
{
	private readonly CancellationTokenSource _cts;

	public ConfigurationReloadToken() : this(new CancellationTokenSource())
	{
	}

	private ConfigurationReloadToken(CancellationTokenSource cts) : base(cts.Token)
	{
		_cts = cts;
	}

	public void OnReload() => _cts.Cancel();
}

This does seem like a bug.


Enable fast softmax as default

Upstream of: https://github.com/HabanaAI/optimum-habana-fork/pull/219
Original description:
This PR enables by default fast softmax feature of FusedSDPA.
To do that it changes handling of flash attention related arguments inside run_generation.py
Now the flags can also except values such as "--use_flash_attention true/false" etc.
Flag "--flash_attention_fast_softmax" will be true if "--use_flash_attention" is true. It can be explicitly turned off by passing "--flash_attention_fast_softmax false" to the script.

@libinta could you add 1.17_dependency label to this PR?


4.8 Update - Useskill for single skills not really usefull

I like and use your tool a lot. :)
However, since 4.8 the useskill function is not helpfull anymore, so i needed to downgrade the toolbox to 4.6 (because the 4.7.1 link in the history md doesn't work)
Hopefully you do either fix the issue you had with multiple skills or bring the feature in some other way back. :)
Never the less! Great job so far, i really appreciate your effort you are putting in here!

I highly doubt it will come back because from what I believe using the skill chain can be related to the game thinking u are botting if going afk for any reason but that's just what I think it is

Yep, chaining multiple skills without user input has been intentionally removed. What was your use case for /useskill before this?

Most of the time I play GuildWars with old guild collegue, we are both dads since a few years, so it meight occure that we need to react fast in real life sometimes :D
so... beeing afk for short, but with the will to stay alive, for example :D (at least holding sf and sod up is really helpful)
furthermore, we also use /useskill for an additional emo bonder on a secundary account, was also usefull to keep the enchantments up while spamming 1

Ok yep, these points were brought up when we were deciding how to handle this, and ultimately came down to where to draw the line between improving gameplay and automating it. Theres a few things that I considered when changing this:

GWToolbox is a tool to improve your play experience, not play for you. Whilst things like popping pcons could be argued, we're pretty certain that using a pre-defined set of skills on your skillbar based on recharge and energy management is pretty much playing for you. This includes maintaining enchantments on emo.

The original use case for this was using Dhuum's rest because it takes a million years to do it so people wanted to be able to use that single skill without growing old and dying of boredom, but these days its also being used to maintain single shouts for HR paragon, and single e-management skill for emo.

How to prevent players being able to exploit this tool by not actually having to play the game, i.e. botting

Honestly I wanted to do away with this feature altogether, but because the dhuum thing was such an issue this was instead limited to 1 skill and still allowed some limited level of automation:

As an emo you can skill spam your e-management skill with it, but it means you have to engage with the game to maintain enchantments as intended.

As a HR paragon you can spam your upkeep shout as before

As a perma you can maintain SF but will just have to position yourself somewhere where you dont receive physical damage.

This ticked most of the boxes and kept it away from being taken advantage of. If you need to automate gameplay any more than this, then TB isn't the tool to do it.

Thanks for the honest and detailed answer :) I think with that we can close the Issue.


Provider used with conditional fetching causes problems

Bug report
Description / Observed Behavior
Uncaught TypeError: can't access property 0, _a is undefined
    useSWRHandler index.mjs:634
    useSWRArgs index.mjs:612
    Article App.js:8
    React 9
    workLoop scheduler.development.js:266
    flushWork scheduler.development.js:239
    performWorkUntilDeadline scheduler.development.js:533

Expected Behavior
No error.
Repro Steps / Code Example
import useSWR, { SWRConfig } from 'swr'
import { useState, useEffect } from 'react'

const fetcher = (url) => fetch(url).then((r) => r.json())

function Article() {
  const [run, setRun] = useState(false)
  const { data } = useSWR(run ? 'https://httpbin.org/json' : null, fetcher)
  useEffect(() => {
    setRun(true)
  }, [])

  return (

{data?.slideshow?.author}

  )
}

function App() {
  return (
    <SWRConfig
      value={{
        provider: () => new Map(),
      }}
    >

    </SWRConfig>
  )
}

export default App

Additional Context
SWR version: 1.3.0
Tested browser: Firefox 101.0a1 and Chromium 101.0.4951.41 on Arch Linux
The reason why I'm using SWR in this way is that I'm using it with Next.js, and I hope to configure a LocalStorage-based persistent cache. However, SWR seems to directly return the cached value on the client initial rendering. This makes the rendering different from server side rendering since the server doesn't necessarily has the same cache as the client, and finally spawns some hydration errors. A solution I've thought of is to let the client start loading data inside useEffect, which leads to this case.

Looks like the custom cache has been recreated so that swr cannot access the original one. A workaround to get rid of this is keep same provider instance in each render. e.g. like using useRef
function App() {
  const m = useRef(new Map())
  return (
    <SWRConfig
      value={{
        provider: () => m.current,
      }}
    >

    </SWRConfig>
  )
}

Yeah sure, we'll update the docs later to present it with a better approach. Thanks!


Update hub-spoke.md

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference-architectures/hybrid-networking/hub-spoke.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

#sign-off

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/mspnp/architecture-center, working directory: W:\jm3z-s, target branch: master, target branch commit: 475064f0a3c2fac23e1286ba159aaded287eec86, source branch: b0ad0f538871006d9f63b4a93cb653b1/patch-1, source branch commit: .

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:x: Validation status: errors

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/mspnp/architecture-center, working directory: W:\kut4-s, target branch: master, target branch commit: 475064f0a3c2fac23e1286ba159aaded287eec86, source branch: b0ad0f538871006d9f63b4a93cb653b1/patch-1, source branch commit: .

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference-architectures/hybrid-networking/hub-spoke.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@anavinahar, I am confused now. I originally had that text in the document, that you could use gateways as a way to route between spokes. But I was told that was NOT supported by us. Are you saying we support that scenario?

Let's sync offline.


Support for Airflow and Kubernetes

An open-source version of issue #2 --  would love to be able to have Metaflow plugins that support Airflow and Kubernetes!
We currently deploy our machine learning models to Kubernetes as restful API-wrapped microservices, then create Airflow dags to orchestrate and schedule the execution of all the model components.
Admittedly not entirely familiar with what all Metaflow offers just yet, but would love to see seamless integrations with these other awesome open-source tools!

@JoshZastrow I thought that MetaFlow could integrate with kubeflow, which is the machine learning toolkit for Kubernetes.

@JoshZastrow Thanks for opening the issue! Yes, we are evaluating and prioritizing our roadmap currently.

And what about using argo instead of airflow ? (https://github.com/argoproj/argo)
Can it be included in this issue or should it be another one ?

@nlaille Let's track that as a separate issue so that people can vote and weigh in with their opinions.

IMHO this issue is too broad. You probably don't need Metaflow if you're using Airflow with Kubernetes. You may need Metaflow as an Airflow executor and an Airflow operator if you're using Airflow without Kubernetes.

Orchestration part could be cloud solutions like AWS Step Function or container based orchestration solutions like argo or other orchestrations like Airflow.
One reasonable option is to map metaflow DAG to step function/ARGO/Airflow DAG and execute remotely. Computing resources need to be changed correspondingly. Totally agree on @impredicative 's point, unless users have clear requirements, otherwise, it's not that meaningful to do this integration.

I would second @impredicative 's comment that this is probably too broad.
In particular, I think there's potential, independent value of having a plugin implementation of a k8s cli, compute environment, and decorator. Based on a quick scan, it doesn't seem like there's too much functionality there to implement -- just make a kube job definition, come up with an annotation scheme (probably can do something similar to what airflow does), and handle cleanup. Drop in some example RBAC templates and you're probably good to go.
I think it would probably be fine to stop at container/job orchestration, and leave things like cluster autoscaling to pointers to existing k8s docs and tools.
The scheduler (i.e Airflow or AWS Step Function or Argo) seems like a separate discussion that's out of scope of a question of Kubernetes.

Why not compile to Kubeflow Pipelines via an intermediate representation (IR) [1]?
[1] https://github.com/kubeflow/pipelines/issues/3703

@talebzeghmi Yes, an IR for KfP would be great. Is there an RFC for it? We are happy to contribute our thoughts.

For folks following this thread, we recently announced an equivalent support for AWS Step Functions. Here is an article with more details.

There are existing mechanisms for triggering workflows based on external events.

For clarity, what are these? What if I want to trigger it on a schedule like Airflow allows me to do?

For AWS Step Functions, we provide time-based triggers out of the box right now. You can very easily configure other triggers (say using Amazon EventBridge).

@savingoyal is there any support for event-based triggers? For example, a trigger from a REST API.

@savingoyal is there any support for event-based triggers? For example, a trigger from a REST API.

@lucianoviola Yes, you can use AWS Event Bridge to do event-based triggering of Step Functions workflows.

https://github.com/Netflix/metaflow/issues/50#issuecomment-946254343 If you would like to try out and give feedback on our Kubernetes integration, please reach out at http://slack.outerbounds.co

#992 provides GA support for Kubernetes. https://github.com/outerbounds/metaflow/tree/airflow is tracking the Airflow integration on top of Kubernetes.

Kubernetes support was done via supporting the Argo-Workflows, great!
https://github.com/Netflix/metaflow/pull/992 (Dispatch Metaflow flows to Argo Workflows)

This branch tracks the work for this issue.

#1256 adds formal support for Airflow in Metaflow. Docs & release announcement to follow soon!

https://outerbounds.com/blog/better-airflow-with-metaflow/


Overriding popover props for filters

I have a problem with the filters popover, when the table has a large number of columns, and one of the filters is open when scrolling the table than the popover destroys the layout page, an additional scroll appears on the page.
Example: https://stackblitz.com/edit/github-wjvkrc-jv7dj5
Select the last filter and scroll the table content to the left, pay your attention to the additional horizontal scrolling of the page.
Example from docs:

The reason for this is that Popover component that is used in DataTableHeaderCellFilter component has withinPortal={true} prop by default. By changing this prop to false, the popover behavior looks better.
Example from docs:

Would it be a good idea to add the ability to override Popover component props for the filters, or is there a possible workaround?

+1: I have the problem that I render that table in a shadow component of a custom html element (micro frontend). I have to pass the @mantine/dates-styles to the parent app, because the popover is in the portal....

This will be fixed in the new version that will be released later today; a new filterPopoverProps will be added, allowing you to override the default behaviour.

Thank you very much :) Could you now please still remove the console debug logs?

Done, 7.14.5 is on the way.


Test updates

We should move the tests in KermitTest tests to LoggerTest to reflect the rename.
For global, we should add tests for the global config methods. These include setMinSeverity, setLogWriters (list and vararg versions), addLogWriter and setDefaultTag.
I'd also like some tests to explicitly create an instance of MutableLoggerConfig and use that. Just confirm that changing the values does in fact change what they do. I'd say just add the test log writer, then confirm that changing the min severity and default tag works.
For now I think that's kind of it unless we can think of other things to test.

Work done in #144 which got incorrectly got squashed and merged via #143
Closing the issue now!


tests: test for /ping endpoint

Signed-off-by: Jiri Kuncar<EMAIL_ADDRESS>

:shipit:
BTW, in cases like this, you may want to add a commit log comment, saying that the tests are being moved from the original invenio repository, especially if they have been authored by many different people.  (which is not the case here)

@tiborsimko see the other two commits with Co-authored-by generated by git log --format=email --follow invenio/testsuite/test_i18n.py | grep '^From:' | sort -u | sed 's/From/Co-authored-by/'.


pull request for e2e test at 01/03/2017 22:56:08

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Add the input device channel

This is a feature requested by our customer (3rd-party TV app developer).
To retrieve the name of the last keyboard device used:
final device = await MethodChannel('tizen/internal/inputdevice')
    .invokeMapMethod<String, dynamic>('getLastUsedKeyboard');
final name = device!['name'] as String;

For TV remote controls, the result is either of the following.

IR remote control: wt61p807 rc device
Smart remote control (bluetooth): Smart Control [year]
Virtual keyboard: ime (updated when closing the keyboard)
Virtual numpad: virtual key device (updated on pressing the Done button on Tizen 6.5 or higher, otherwise updated immediately when pressed numbers)

For example, if the developer wants to detect whether the user used a virtual numpad to enter a number, they can compare the string with virtual key device.

@swift-kim Can I merge this PR? Is there any reason not to do it


Update resource links in 01-What-is-Prisma.md

Reading through the docs and noticed that the links pointed to the defunct graph.cool blog. I added a third link since the first two seemed to be part of a series. Feel free to update if these aren't the actual recommended reading. Thanks!!

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hey @newswim, thanks a lot for opening this PR 🙏  The links broke during our recent migration from Medium to a custom blog solution. I've just fixed this by putting proper redirects in place. Despite that I'm not merging it, this PR was super heplful as it made me aware of the broken links. Thanks so much and please keep on reporting issues and opening PRs in the future! 🙌 🙂

No worries! I look forward to going through the rest of these docs, cheers!


Why distributive conditional types works on non-union type?

Bug Report

🔎 Search Terms

conditional types
🕗 Version & Regression Information
2.8.1 ~ 4.7.0-dev.20220222
⏯ Playground Link

Playground link with relevant code
💻 Code

interface Interface {
    field: number;
}
const defaultValue: Interface = { field: 1 };
const data = Object.assign({}, defaultValue, Date.now() > 3 ? { field: 2 } : {});
type ExtractRawComponent<T> = T extends { __raw: infer C } ? [T: T, C: C] : [T: T];
/**
 * ---
 * it shows
 * ```ts
 * const data: Interface & {
 *    field: number;
 * }
 * type t = [T: Interface & {
 *    field: number;
 * }] | [T: never, C: unknown]
 * ```
 * But why?
 */
type t = ExtractRawComponent<typeof data>;

🙁 Actual behavior

It shows typeof data is not union type. But ExtractRawComponent<T> add a | never type on it and distributive it.
🙂 Expected behavior
I don't know. But it will break https://github.com/johnsoncodehk/volar in some case.

Something's gone a bit wrong here. The actual type of data is not what we're showing in the quickinfo - it's still a union, though not one I seem to be able to write. typeToString is simplifying this beyond what's actually going on underneath, but I can't see why we'd infer anything from the truthy branch of the conditional -- __raw is not uttered anywhere else in the sample.
interface Interface {
    field: number;
}
const defaultValue: Interface = { field: 1 };

// Displayed type: Interface & { field: number }
// Underlying type: Something else...
const data1 = Object.assign(defaultValue, Date.now() > 3 ? { field: 2 } : {});
// Is it this? Not quite
declare const data2: (Interface & { field: number }) | (Interface & {});
// Is it this? Not quite
declare const data3: Interface & ({ field: number } | {});

// dataA is the displayed type - not same as any of the above ofc
declare const dataA: Interface & { field: number };

type ExtractRawComponent<T> = T extends { __raw: infer C } ? [L1: T, L2: C] : [R1: T];
type t1 = ExtractRawComponent<typeof data1>;
// 2 and 3 are the same
type t2 = ExtractRawComponent<typeof data2>;
type t3 = ExtractRawComponent<typeof data3>;
type tA = ExtractRawComponent<typeof dataA>;

// ???
type Explode<T> = T extends { x: infer A } ? [A] : 'X';
// 'X' | [unknown] -- why?
type e1 = Explode<typeof data1>;
// 'X' - OK
type e2 = Explode<typeof data2>;
// 'X' - OK
type e3 = Explode<typeof data3>;
// 'X' - OK
type eA = Explode<typeof dataA>;

Step one: Unsimplified return type is actually Interface & ({ field: number; } | { field?: undefined; }).
Step two: Lift the union to produce (Interface & { field: number; }) | (Interface & { field?: undefined; }).
Step three: Interface & { field?: undefined; } reduces to never (as in getReducedType), but in a deferred fashion - meaning we still have a union, but a member of the union is a deferred never (so the whole type ends up displaying as a non-union).
Step four: Distribute over this two element union where one element is a deferred never. never extends anything, and so always results in the true branch of a conditional.
PR up at #48061


[MORNING FITNESS ROUTINE]: Keeping track and staying fit on a daily

Morning Fitness Routine Check And Social Engagement
Maintaining my started fitness and staying consistent
Steps to achieve the goal

[ ] Crunches 30 in 5x reps
[ ] Push-ups 30 in 5x reps
[ ] Dunbell 30 each hand in 5x reps

Maintaining my networking  and staying consistent with Twitter engagement
Steps to achieve the goal

[ ] At least 1 tweet per day
[ ] If more tweets, that's great.

Improving early wake-up routine
Steps to achieve the goal

[ ] Sleep early

Date of completion
Target date 31/12/2022
Expected Achievements
*** These checks are to be unlocked on the day of completion***
 - [ ] Improve health and build muscle
 - [ ] Improve my social appearance
 - [ ] Improve my sleep routine and stay consistent

Starting a report on this issue on 20/10/2022


Limit pending email verifications

← Persist email verifications (#4573) — Support queuing emails without participants (#4548) →

Fixes #4557.
Todo

[ ] Test/think through having more than one unverified email (two cases: merge/take-over, and pre-existing conditions)
[ ] Review envvars

Alright, after wrestling to rebase this onto #4572 I think the way to architect this is to rename email_addresses (formerly emails) to email_verifications, and then make a new email_addresses table that holds just address as primary key and a nullable verification_id.
When a participant adds an email address we file the address in email_addresses (if needed) with a null verification, and we start a new verification in email_verifications (can have multiple verifications open across users for the same address, but only one per participant per address).
When a participant completes a verification we link to it in email_addresses.verification_id. We leave any other pending verifications open in email_verifications. We never delete from email_verifications.
When a participant removes an email address we null out the verification in email_addresses. We keep the record in the table because
We link to email_addresses from email_messages.
We link to email_messages from email_verifications.

Something like that, anyway. :)

I've kicked out #4573 to persist email verifications. Once done will revisit here to see about constraining based on past verifications.

Working up a ttw test so we can get the user requirements here.

Alright this is a mess. First of all the email listing should be styled like our other listings (homepage, search page, social profiles, etc.).

And after this PR we don't even want UI to add another email address when there is a pending verification.

But how does this interact with bulk npm claiming? We shouldn't allow interaction there either if there is a pending verification.

But of course we need to protect against multiple verifications in the Python/API layer and not just in the JavaScript/UI.

And what about the case where someone legitimately enters a wrong address? They shouldn't be able to remove pending verifications either (UI and API). That's bound to generate some confusion. "I entered the wrong email and now I can't remove it or submit my correct email." It'll have to be a support request with an admin intervention to undo their conditin.

Are you trying to prevent people from spamming email bombing by adding secondary email addresses that point to someone else's address? Or is the verification system so monolithic that there's no way to throttle just one type of verification request?

Are you trying to prevent people from spamming email bombing by adding secondary email addresses that point to someone else's address? Or is the verification system so monolithic that there's no way to throttle just one type of verification request?

I'm not sure how to understand these as mutually exclusive. Did our recent slack chat (archiving stuck 😞 ) clarify this?

Closing in favor of https://github.com/gratipay/gratipay.com/pull/4579.


Add SCSS linting for the project

Awesome project! I was wondering if SCSS linter can also be added to this project. I've used scsslint-loader in one of my projects but it's giving errors when I enable it with isomorphic tools plugin.

show me your code?


How to integrate with react-monaco-editor

Hi, how to integrate monaco-languagecliet with react-monoco-editor. I see docs of monaco-languageclient for pure monaco editor that uses monaco instance and so on... renders it. But react-monoco-editor gives simple usage for react app. How to use with react app&

https://github.com/react-monaco-editor/react-monaco-editor#how-to-interact-with-the-monacoeditor-instance

In this docs we see this:
Using the first parameter of editorDidMount we can get monaco instance. So i tried to install MonacoServices by this instance, I got error:
ReferenceError: monaco is not defined
My code sample is this:
editorDidMount(editor, monaco) {     console.log(editor)     MonacoServices.install(editor)   }

With the last monaco editor version, you need to use monaco-languageclient@next (and MonacoServices.install doesn't take the editor as parameter anymore)


Add dai.ImgTransformations to messages and improvements to Text detection parser

This PR adds the following:

dai.ImgTransformations attribute to all depthai-nodes messages. This is necessary as the information inside dai.ImgTransofrmations is needed in later nodes for dai.ImgManip, and for visualization purposes as width, height and other values are stored in this attribute.
adds some improvements to Text Detection parser and Palm detection parser where the angle is rounded to a full degree.
Make Text detection parser more robust and simplify some postprocessing functions, making the detections much more reliable

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

Project coverage is 33.38%. Comparing base (37a2d92) to head (23e6c55).
Report is 14 commits behind head on main.

Files with missing lines
Patch %
Lines

depthai_nodes/ml/parsers/utils/ppdet.py
0.00%
8 Missing :warning:

depthai_nodes/ml/messages/classification.py
55.55%
4 Missing :warning:

depthai_nodes/ml/messages/clusters.py
55.55%
4 Missing :warning:

depthai_nodes/ml/messages/img_detections.py
55.55%
4 Missing :warning:

depthai_nodes/ml/messages/keypoints.py
55.55%
4 Missing :warning:

depthai_nodes/ml/messages/lines.py
55.55%
4 Missing :warning:

depthai_nodes/ml/messages/map.py
55.55%
4 Missing :warning:

depthai_nodes/ml/messages/prediction.py
55.55%
4 Missing :warning:

depthai_nodes/ml/messages/segmentation.py
55.55%
4 Missing :warning:

depthai_nodes/ml/parsers/lane_detection.py
0.00%
4 Missing :warning:

... and 16 more

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #142      +/-   ##
==========================================
- Coverage   33.40%   33.38%   -0.02%
==========================================
  Files          68       69       +1
  Lines        3739     3828      +89
==========================================
+ Hits         1249     1278      +29
- Misses       2490     2550      +60

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


Implement province SVO based on ISO 3166-2?

I'm happily using the Country and PostalCode SVO's but was wondering if it was worth having a 'Province' SVO in Qowaiv. I would certainly use it if it was available. There is an ISO definition and apparently they are called subdivisions:
https://en.wikipedia.org/wiki/ISO_3166-2
Some countries (UK for example) might be a bit more tricky to implement because they have differently named concepts depending on which country (England, Scotland, Wales or Northern Island) you are in.
What do you guys think?

I certainly like the idea.  There are some concerns however:
A region/subdivision is related to a country: How should that relation be defined, validated/guarded, monitored? If we take the validation/guarding: How do we prevent a model to have let say the country Belgium with the Dutch region Zuid-Holland? Or should this type also include the countries? In that case you might end up requiring logic that can validate if the region is a country or a subdivision (as for some domains it would be fine to be not more specific that country, but could be)
How to deal with false negatives? There are over 5000 defined regions/subdivisions in 3166-2, and that list will change over time. Regions already in existence but not being in a fixed list in Qowaiv should not lead to trouble. What kind of extensibility is required?
All countries have a fixed field. Given the limited group this is fine. Should that also be the case for these regions, and if so: how should that (generated) code structure look like?
Country names are available in multiple languages. Ensuring that for 5000+regions impossible. Is that a potential problem, or should this be extendable by users?

I certainly like the idea. There are some concerns however:
A region/subdivision is related to a country: How should that relation be defined, validated/guarded, monitored? If we take the validation/guarding: How do we prevent a model to have let say the country Belgium with the Dutch region Zuid-Holland? Or should this type also include the countries? In that case you might end up requiring logic that can validate if the region is a country or a subdivision (as for some domains it would be fine to be not more specific that country, but could be)

I would imagine validation would work like the current implementation of postal code. If I'm not mistaken you can basically input any string with a length between 2 and 10 into PostalCode using the Parse method. And validation isn't done right away. It is done when you call IsValid supplying it with the correct context (Country) at which point the postal code can be validated against a predefined set of rules as implemented in PostalCodeCountryInfo Instances.
Now for  province (or subdivisions) it is not that simple. More context is needed to do proper validation in this case if you would want to be complete, the subdivision 'type' would probably have to be supplied as well. For Belgium province validation it would be:
var belgium = Subdivision.Parse("Antwerpen");
belgium.IsValid(Country.BE,Subdivision.BE.Province); // true
belgium.IsValid(Country.NL,Subdivision.NL.Province); // false
Monitoring changes in subdivisions is always challenge of course.

How to deal with false negatives? There are over 5000 defined regions/subdivisions in 3166-2, and that list will change over time. Regions already in existence but not being in a fixed list in Qowaiv should not lead to trouble. What kind of extensibility is required?

For countries this is of course handled in ISO 3166-3 and implemented with a start and enddate. A similar implementation would probably be nice for this.

All countries have a fixed field. Given the limited group this is fine. Should that also be the case for these regions, and if so: how should that (generated) code structure look like?

That is a good question. I don't really know how the code structure would look like.

Country names are available in multiple languages. Ensuring that for 5000+regions impossible. Is that a potential problem, or should this be extendable by users?

Yes, that is impossible to do. From my very limited requirements this would not be needed. At the moment I have an application that has a userbase in the Netherlands, Belgium, Germany, France, Spain, Italy and England (really just England). Supported languages are Dutch, French, German, Spanish, Italian and English. And we allow the user to select the language they want. Subdivisions are listed in a single language linked to the country for which the address is entered into the system. With an exception of course. If a Belgian address is entered and the language for the user is French, the  Belgian provinces are shown to the user in French. In all other languages, the provinces are shown in Dutch.
Extensibility by end users is not a requirement. And users of Qowaiv can potentially of course add translations by making PRs here.

If you have a limited usecase, you could build just a solution specific solution, for Qowaiv, it has to be feature complete.
What might be feasible, but should be open for extension can look like the following:
public readonly partial struct Region
{
    public RegionKind Kind { get; }
    public string Name {get;} // ISO code name: NH
    public string DisplayName { get; } // Zuid-Holland
    public Country Country { get; } // Country.NL
}

public readonly partial struct Region
{
    public static  IReadOnlyCollection<Region> All(Country country) => ...

    public static class NL
    {
        public static readonly IReadOnlyCollection<Region> All = ...

        public static readonly Region ZH = new("NL-ZH", RegionKind.Province);
        ...
        public static readonly Region BQ1 = new("NL-BQ1", RegionKind.SpecialMunicipality);
        public static readonly Region AW = new("NL-AW", RegionKind.Country);
    }
}

I'm not sure how much effort I would like to put in to support parsing strings like "Antwerpen" to resolve BE.VAN. For countries, a string like "ZX" is not parsiable, as ZX is not a known country. For Regions, by allowing NL-XZ to create a region that is not known, it would allow extensibility. But where does the application has to register the RegionKind and the DisplayName of the region not known by Qowaiv (yet)?

Wy did you close the issue? I'm willing to implement. I'm just trying to find out in which form.

@pepijnsitter If added a PR (#397) that explores some possibilities. I think it should be possible to come up with a solution that is feature-complete and can be extended if needed.


Package opencv was not found in the pkg-config search path.

When running:
jupyter lab
Then going to:
http://localhost:8888/lab
Then finally:
stablediffusion_infinity.ipynb
The following happens on the "import libs" step:
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
Package 'opencv', required by 'virtual:world', not found
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
Package 'opencv', required by 'virtual:world', not found
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
Package 'opencv', required by 'virtual:world', not found

It is a fresh install and might be reproducible under a similar (Arch Linux) environment.

Have you installed the opencv library?
If installed, perhaps you need to modify the Makefile: changing opencv to opencv4


docker login failure with private docker registry

Hi,
I am unable to deploy with docker to my private docker registry. Is this currently supported? Here are the commands I run. Is there a way to pass in the username and password when I login?
Thanks for all the help
flyn v20161017.1
Docker version 1.12.1, build 6f9534c
$ flynn docker set-push-url dockerhub.myprivatereg.com
$ flynn docker login

error running `docker login`: exit status 1 - output: {"Flag --email has been deprecated, will be removed in 1.13.
Error response from daemon: Get https://dockerhub.myprivatereg.com/v2/: unauthorized: incorrect username or password\n" '\x00' "\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" '\x00'}

Flynn runs it's own registry internally. The push URL should be set to the docker receive endpoint for your Flynn cluster.
The easiest way to reset it is probably to edit ~/.flynnrc and change the DockerPushURL line to read:
DockerPushURL = ""

Once that is down you can fetch the image from your private registry with docker pull <image> then push it to Flynn with flynn docker push <image>.

Thanks, that makes sense now. I am now getting a cert error but I'll just follow the directions to see if that gets resolved.
Thanks!
WARN: docker configuration failed with a TLS error.
WARN:
WARN: Copy the TLS CA certificate /Users/xxx/.flynn/ca-certs/flynn-6666.pem
WARN: to /etc/docker/certs.d/docker.xxx.flynnhub.com/ca.crt
WARN: on the docker daemon's host and restart docker.
WARN:
WARN: If using Docker for Mac, go to Docker -> Preferences
WARN: -> Advanced, add "docker.xxxx.flynnhub.com" as an
WARN: Insecure Registry and hit "Apply & Restart".

Error configuring docker, follow the above instructions and try again.

No problem, make sure you follow along here: https://flynn.io/docs/docker
Specifically creating the app and pushing the docker image to it.
Let us know how you go! :)

Thanks again, I got it working. Just to be clear, when resolving the TLS error above, I have to copy the TLS certs over to each node (host) AND configure my local docker Mac with Insecure Reg?

No, you only need to copy the certs into your local /etc/docker/certs.d.
I am unsure if anything special needs to be done for Docker for Mac, I don't use it unfortunately.

Ok thanks for clearing that up.

Thanks! If you do find specific steps are required to get this to work on Docker for Mac if you could open an issue or PR to add to the docs that would be great. :)

Getting this on OSX:
% flynn docker login
WARN: docker configuration failed with a TLS error.
WARN:
WARN: Copy the TLS CA certificate /Users/artem/.flynn/ca-certs/default.pem
WARN: to /etc/docker/certs.d/docker.prs.fakesh.it/ca.crt
WARN: on the docker daemon's host and restart docker.
WARN:
WARN: If using Docker for Mac, go to Docker -> Preferences
WARN: -> Advanced, add "docker.prs.fakesh.it" as an
WARN: Insecure Registry and hit "Apply & Restart".

I added docker.prs.fakesh.it to insecure registries (and restarted docker) and even copied default.pem to /etc/docker/certs.d/docker.prs.fakesh.it/ca.crt and every seemingly relevant place in ~/.docker but to no avail.

@artemave what happens when you run:
$ docker login docker.prs.fakesh.it

@lmars it prompts for login:

Ok, and if you use flynn as the Username and the Controller Key from ~/.flynnrc as the password, does it work?
That is all flynn docker login does (i.e. calls docker login --username flynn --password KEY URL).

docker login --username flynn --password $KEY_URL docker.prs.fakesh.it
Gives:
Error response from daemon: Get https://docker.prs.fakesh.it/v2/: x509: certificate signed by unknown authority

Right, so that means you haven't configured the Docker daemon to trust the Flynn TLS certificate (which is what the warning from flynn docker login is trying to get you to do).
You may find the Docker documentation more informative, see point 3 of "Use self-signed certificates" here, with the cert being the Flynn one in /Users/artem/.flynn/ca-certs/default.pem.

I think this fixed it:

sudo security add-trusted-cert -d -r trustAsRoot -k /Library/Keychains/System.keychain ~/.flynn/ca-certs/default.pem

restart docker

Thanks for you help @lmars !


VS Code View

Some other Tables.jl implementations allow for a view when working in VS Code, specially DataFrames.jl. If using the Julia extension for VS code, and a DataFrame object is loaded into memory, it can be seen in the Julia REPL Workspace with a little eyeball icon next to it. When clicking this it loads the table into a viewer in the VS Code editor where it can be explored visually. This is super useful when just trying to look over the whole data set for sanity checks or discussions with colleagues. Not sure if this is implemented on the tables side or the VS Code side. My inclination is this feature should work with Tables.jl implementations.

@thezachdrake please update the environment to get the new feature. The new release should be out in 15min: https://github.com/JuliaRegistries/General/pull/110354

Wow!!!! 3 hours and you deployed this already? #SuperMaintainer

Thank @eliascarv for this :)
Em qua., 3 de jul. de 2024, 15:05, Zach Drake @.***>
escreveu:

Wow!!!! 3 hours and you deployed this already? #SuperMaintainer
—
Reply to this email directly, view it on GitHub
https://github.com/JuliaEarth/GeoTables.jl/issues/120#issuecomment-2206916051,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAZQW3O5HCFCVE4FHJKTQBDZKQ4NJAVCNFSM6AAAAABKJYFTJWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMBWHEYTMMBVGE
.
You are receiving this because you commented.Message ID:
@.***>


Feature request: Python support for account abstraction using safe

I am not sure if this is better put in here but there is a heavy need for safe wallet SDK support for AA with python and clear documentation for it.

Hello @0x0elliot,
Talking about Safe AA SDK, this is the place. The repo you linked it is implemented on Python, but not AA focused. However, as you see, this AA SDK is implemented in TypeScript.
There are solutions like Polywrap that allow to "wrap" an SDK, upload the code to IPFS and consume it from anywhere using a Polywrap client. We had some conversations with them and there is already some work done on that regard, but is does not cover AA featuers. Also their Python client is not available yet, maybe at some point.
Your request won't be available anytime soon, but if you have some data that shows that "heavy need", that would be great for us and maybe help us reprioritize some things.
I'm closing the issue as there is no action that can be taken at this moment.


jax.numpy.nanpercentile with axis as tuple

currently, the following code results in a NotImplementedError:
jax.numpy.nanpercentile(jnp.ones((3,3,12,24)), 99.9, axis=(0,1,2))

 File "/home/clemens/.local/lib/python3.8/site-packages/jax/_src/numpy/lax_numpy.py", line 6359, in _quantile
    raise NotImplementedError("Tuple values for axis are not implemented")

However the docstring actually explicitly mentions tuple as a valid option for axis: https://jax.readthedocs.io/en/latest/_autosummary/jax.numpy.nanpercentile.html
same for jax.numpy.percentile.html

Thanks for the report – this feature hasn't been implemented yet. Regarding the docstring, the bulk of the content is copied directly from the corresponding numpy function (it's easy to miss, but at the top you'll see something like "original docstring below") because of that, the details are not always accurate, particularly when corner cases are explicitly unimplemented.
We can leave this issue open to track implementing this feature.

I'd like to give this one a try. Might take some time though as I'm quite new Jax. If that's no problem, feel free to assign it to me!

Thank your so much @MichaelMarien @jakevdp that was a very quick fix :)


Wizard for placing water bodies

Part of #361
Window for creating local bodies of water.
This is similar to what is in #361, except i gave the window a state (idle vs placing) so that it doesnt always show the translation gizmo, and i removed the proxy object option as it only shows when in placement mode.
I also moved some gerstner validation which was firing a warning while gerstner waves were being created.

Sweet! Will have a look eitehr later this afternoon or tomorrow. :)

Thanks.
What do you mean by other primitives?

Meshes. Like spheres and capsules.

Ah gotcha.
I think i'd be looking for 2d primitives - quads, circles, etc. The primitive will probably feed the sea level as well so wants to be flat. Not sure if using 3d primitives still makes sense.


Implement MultiDB Support and Tests

Hey there! So you want to contribute to a Firebase SDK?
Before you file this pull request, please read these guidelines:
Discussion

Read the contribution guidelines (CONTRIBUTING.md).
If this has been discussed in an issue, make sure to link to the issue here.
If not, go file an issue about this before creating a pull request to discuss.

Testing

Make sure all existing tests in the repository pass after your change.
If you fixed a bug or added a feature, add a new test to cover your code.

API Changes

At this time we cannot accept changes that affect the public API.  If you'd like to help
us make Firebase APIs better, please propose your change in a feature request so that we
can discuss it together.

Wow! This is a dream come true! 🥰


Remove RHEL 8.4-beta flags

Best kind of PR
/lgtm
/test gpu-operator-e2e

/hold

\test 4.8-gpu-operator-e2e

/test 4.8-gpu-operator-e2e

Best kind of PR
/lgtm
/test gpu-operator-e2e

thanks @omertuc
I'll try to test it on 4.8 before merging, once https://github.com/openshift/release/pull/18635 has been taken into account by the bot

The uninstall is part (between operatorhub and master tests)  is getting unreliable since a few days, that's really weird
[ 1855.109901] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 1855.167348] device veth7d516149 entered promiscuous mode
[ 1855.383297] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 1855.391079] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 1855.418045] device veth4b1f3857 entered promiscuous mode
[ 1855.459500] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 1855.474931] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 1855.524184] device veth02de996c entered promiscuous mode
[ 1890.939165] nvidia-modeset: Unloading
[ 1891.088577] nvidia-uvm: Unloaded the UVM driver.
[ 1891.097173] nvidia-nvlink: Unregistered the Nvlink Core, major device number 235
[ 1892.947139] nvidia-nvlink: Nvlink Core is being initialized, major device number 235
[ 1892.995514] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  460.32.03  Sun Dec 27 19:00:34 UTC 2020
[ 1893.070703] nvidia-uvm: Loaded the UVM driver, major device number 511.
[ 1893.109154] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  460.32.03  Sun Dec 27 18:51:11 UTC 2020
[ 2042.473931] nvidia-uvm: Unloaded the UVM driver.
[ 2042.491598] nvidia-modeset: Unloading
[ 2042.509524] nvidia-nvlink: Unregistered the Nvlink Core, major device number 235
[ 2043.116132] nvidia-nvlink: Nvlink Core is being initialized, major device number 234
[ 2043.162036] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  460.73.01  Thu Apr  1 21:40:36 UTC 2021
[ 2043.196795] nvidia-uvm: Loaded the UVM driver, major device number 510.
[ 2043.203374] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms  460.73.01  Thu Apr  1 21:32:31 UTC 2021
[ 2043.206730] nvidia-modeset: Unloading
[ 2043.353075] nvidia-uvm: Unloaded the UVM driver.
[ 2043.365951] nvidia-nvlink: Unregistered the Nvlink Core, major device number 234
Installing 'NVIDIA Accelerated Graphics Driver for Linux-x86_64' (460.73.01):

https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/origin-ci-test/pr-logs/pull/openshift-psap_ci-artifacts/165/pull-ci-openshift-psap-ci-artifacts-master-gpu-operator-e2e/1395388798744924160/artifacts/gpu-operator-e2e/gather-extra/artifacts/pods/gpu-operator-resources_nvidia-driver-daemonset-86jg2_nvidia-driver-ctr.log
this shows that the driver of 1.6.2 (v460.32.03) wasn't properly removed when testing 1.7.0 ...

OperatorHub test succeeded, so the entitlement part is solved ...!
INFO[2021-05-20T17:55:12Z] Running step gpu-operator-e2e-presubmit-operatorhub.
INFO[2021-05-20T18:22:12Z] Step gpu-operator-e2e-presubmit-operatorhub succeeded after 27m0s.
INFO[2021-05-20T18:22:12Z] Running step gpu-operator-e2e-presubmit-operatorhub-cleanup.
INFO[2021-05-20T18:23:12Z] Step gpu-operator-e2e-presubmit-operatorhub-cleanup succeeded after 1m0s.
INFO[2021-05-20T18:23:12Z] Running step gpu-operator-e2e-presubmit-master.

https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift-psap_ci-artifacts/165/pull-ci-openshift-psap-ci-artifacts-master-4.8-gpu-operator-e2e/1395409398846722048
/approve

/hold cancel

merging, 4.8-gpu-operator-e2e passed, it's what mattered for this test

great @dagrayvid
feel free to create a PR for https://github.com/openshift-psap/ci-dashboard/,
hopefully you should just have to duplicate&adapt https://github.com/openshift-psap/ci-dashboard/blob/master/examples/gpu-operator.yml (+ GitHub actions)


Caps word shifts KC_MINS on layer to _

Hi Pascal,
thanks for sharing your really nice QMK features! I just tried the caps word feature and stumbled upon KC_MINS (which lives on a layer in my keymap) being shifted to _. Is this the expected behavior? Am I holding it wrong? :)
Thanks again!
D.

D'oh, I saw both the documentation and that particular piece of code, but I somehow failed to parse the combined switch cases and the comments 🤦
Personally, I think I prefer to be able to still type all symbols while caps lock is on, but must admit that that might just be old thinking from when toggling caps lock was a nuisance and I tried to get away with typing operators between consecutive constants 😊
Thanks for the super quick reply!!

Personally, I think I prefer to be able to still type all symbols while caps lock is on

I agree it's not  a clear choice, especially between _ vs. - when writing code. I think _ and - are both so useful that I have dedicated two separate buttons for them on the base layer.

I think _ and - are both so useful that I have dedicated two separate buttons for them on the base layer.

Uuh, nice! I'm not brave enough for that ;) For all I have customised over the years (Colemak, column stagger, the custom symbols layers that come with 3x5 boards,...) I have a strange attachment to somewhat being able to occasionally switching to a notebook keyboard (which is a bit nonsensical - you won't catch me typing on qwerty, and even just sliding the numbers row down by one on my daily driver, even while preserving finger assignments, means lots of weird typos on a regular keyboard. Not to mention home row mods and thumb cluster). But what do you know 🤷♂


Incorrect Option Segments docs

What version of Remix are you using?
1.16.0
Are all your remix dependencies & dev-dependencies using the same version?

[X] Yes

Steps to Reproduce
Create a Remix app with the following routing structure:
app/
├── routes/
│   ├── ($lang)._index.tsx
│   ├── ($lang).$productId.tsx
│   └── ($lang).categories.tsx
└── root.tsx

Expected Behavior
/american-flag-speedo matches ($lang).$productId.tsx.
Actual Behavior
/american-flag-speedo matches ($lang)._index.

If this is an expected behaviour, then it should be reflected on the Optional segments docs
Also, it's a bummer because then there's no way to have localisation AND dynamic segments at the root path unless you handle this logic outside of routing 😔. I guess that's why Hydrogen's demo store places dynamic pages under the pages path (which is super unrealistic for most websites).

Closing since I found this


Unable to add Telly with exiting HDHomeRun

I have an existing HDHomeRun Prime that's hooked through Plex on Ubuntu 16.04 LTS.  With ZERO DVR's configured I input localhost:6077 and then hit continue it shows the telly tuner but then auto switches to the HDHomerun.
With the HDHomerun configured first, I'm allowed to add Telly tuner and configure channels, match epg and finish.  Says complete and it will be downloading the program guide.  However as soon as I switch off that screen the Tuner displays: Device not found. Ensure your device is powered on and connected to your network.
https://imgur.com/a/xhmGo
(screens to display what I'm referencing)
I'm remote currently but will try unplugging the HDHomerun tomorrow and setup telly on it's own and report back.
edit#1
I should also report that I'm using Vaders m3u link from Xtream-editor widdled down to roughly 404 channels.

This is very interesting and something I didn't think of, also annoying to debug because I don't have a HDHomerun myself ;-)
That telly device not found error when it's all setup is normal - it has something to do with Plex pinging the device and going "oh crap we've been had" or something like that (which I am looking into and hopefully fixing soon...).
As for trying to add when Plex finds a hdhomerun too, hmph. The problem here is that Plex knows telly exists but doesn't display it for whatever reason - I think I can guess the reason for this and I'll attempt to throw a patch soon and let you try that if that's okay?
T

@After-Shock can you try building from https://github.com/HazCod/telly/tree/fix-friendlyname and report back?
I changed the FriendlyName of it to the official HDHomeRun name, just to rule that out.

If you can't build I can chuck you a binary tonight - let me know what you're running on (I assume Linux amd64?)
T

Linux amd64, correct.  I'd appreciate the binary when possible.  I can kick the tires tonight on it at work and report back.

Sure thing - I'm home in 3 hours so I'll chuck you one then

Ready to test that binary when you have the time.

Update, was able to add the telly' tuner with the HDHomerun Disabled, I added a few test channels and matched the EPG for my area.  However I am unable to go back and add other channels due to the "Device not found" message mentioned in my original post.  Obv this isn't by design, just wanted to make sure it's something that is being addressed.

I've had a similar issue (not just with telly but with others proxies). In my case (and I don't know if it will work for you) doing a quick restart of Plex fixes the issue, once Plex is restarted it finds telly again. Give it a try .. it may work for you. Sorry to not provide a root cause but testing so many things I found this workaround and so far has consistently fixed this particular issue.

Morning - my apologies @After-Shock got distracted last night. One binary coming right up...

[Toms-MacBook-Pro ~/code/telly] GOOS=linux GOARCH=amd64 go build
[Toms-MacBook-Pro ~/code/telly] transfer telly
######################################################################## 100.0%
https://transfer.sh/YMzVW/telly
[Toms-MacBook-Pro ~/code/telly]

https://transfer.sh/YMzVW/telly - let me know if this helps at all!

I'm facing the samme issue. Plex initially sees the "telly HDHR" but then it disappears after 10-15 seconds or so. I also have a physical HDHR, but it's the same with that one powered off.
From my Plex logs:

From telly command line:
@plex:/opt/telly# ./telly-linux-amd64 -playlist=/opt/telly/iptv.m3u -listen <IP_ADDRESS>:5004 -logrequests
[telly] [info] Reading m3u file /opt/telly/iptv.m3u...
[telly] [warning] telly is not attempting to strip out unneeded channels, please use the flag -filterregex if telly returns too many channels
[telly] [info] telly is currently not filtering for only uk television. if you would like it to, please use the flag -uktv
[telly] [info] found 56 channels
[telly] [info] creating discovery data
[telly] [info] creating lineup status
[telly] [info] creating device xml
[telly] [info] creating webserver routes
[telly] [info] Building lineup
[telly] [info] listening on <IP_ADDRESS>:5004
[telly] [request] /discover.json
[telly] [request] /lineup_status.json
[telly] [request] /discover.json
[telly] [request] /lineup_status.json
[telly] [request] /discover.json
[telly] [request] /lineup_status.json
[telly] [request] /discover.json
I tried Tom's test build above, but it didn't make i difference for me.
FWIW then I had the same issues with tvhProxy.

@moenster OK, thats progress. I've never seen the 2250 log line... huh...
I'll look into it shortly.

From what I can see, then telly doesn't die, but Plex seems to see it that way. I can still get the XML output from telly.

1
0

http://<IP_ADDRESS>:5004

urn:schemas-upnp-org:device:MediaServer:1
telly
Silicondust
HDHR-2US
HDHR-2US

uuid:12345678

Ok, I updated to v. 0.4.1 and restarted PMS. The DVR appeared as connected for a short while and then returned to the "not found" state.
/var/folders/ns/g6q6fq3s4f55hxm1w4nm83nh0000gp/T/com.apple.iChat/Messages/Transfers/Billede beskeder(900647365).png
The strange thing is that I can actually watch the IPTV stream even though the device appears as not found.
/var/folders/ns/g6q6fq3s4f55hxm1w4nm83nh0000gp/T/com.apple.iChat/Messages/Transfers/Billede beskeder(3152616842).png
So it's absolutely a move in the right direction. Good stuff.

My plex dvr says its not connected sometimes but works fine regardless.

Yeah, I think I have a problem where telly isn't telling Plex "I'm alive" properly, need to do some more debugging and probably some HTTP inspection on that front, I assume it's trying to load a URL I've missed out.

Same as @porkie02 ^^

But this seems to be especially a problem when you have an existing HDHomerun as Plex, when adding it, will just fall back to that iirc.

I should dig out my homerun and have a look.

just a heads up plex 'pings' the device via the SSDP protocol, you need to add a SSDP routine to your code, have a look how i managed this at my project https://github.com/OpenViX/HRTunerProxy your more than welcome to used some code, just a give me a thanks in your app.

@andyblac ooo, something I completely missed... many thanks! I'll take a look at it early next week and be sure to give you credit ;-)

shoot me an email if you need help andyblac at icloud.com

Thanks mate 👍


Set TestRunnerDisplayName after Lookup Test Runner

After selecting a Test Runner in the AL Test Tool the displayed name is not updated.

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability.


[otbn] Potentially refactor otbn_start_stop_control into otbn_controller

OTBN currently has a otbn_start_stop_control module which delays the "start an execute operation" signal to the main otbn_controller module until URND has received valid data from the EDN.
This setup makes it harder to reason about the behavior of OTBN, and I'm suggesting to fold the otbn_start_stop_control into the otbn_controller. This will become especially valuable as we add the secure wipe operations to OTBN, which also require handling of the start of the operation.
I think I now weakly convinced myself that the current setup works, even if OTBN goes into locked state while it is in OtbnStartStopStateUrndRefresh (e.g. still resetting INSN_CNT to zero, and ensuring that we don't do any work in the execute operation), but I went in circles with my thoughts a couple times to get there :-)

I had intentionally split them as I didn't want to clutter the controller with all the start and stop stuff, instead having it focus exclusively on actual execution.
It is a bit awkward that we've got the two state machines that effectively need to be in 'sync'. Maybe instead of a single pulse from controller_start_o to start the controller we instead have an output to hold high whilst execution is occurring e.g. controller_run_o. Then when looking exclusively at otbn_start_stop_control it should be obvious when the controller is actually able to do stuff.
We could move the locked state into otbn_start_stop_control and it would just force controller_run_o to 0. Currently I think we'll still be able to execute the secure wipe commands (well will be when the PR is merged) when we're locked, which may not be an issue but isn't the way OTBN is specified to work.

To avoid RTL churn this is better dealt with in a future release, unless D2S work can be made easier by this refactoring.

It is a bit awkward that we've got the two state machines that effectively need to be in 'sync'.

This is the only part that gives me pause.  We need to think about what happens if they get out of sync (e.g. by fault injection).

I've spent a reasonable amount of time getting my head around these two FSMs in the last couple of weeks. And I'm convinced that the existing structure is actually pretty sensible!
The start/stop controller handles starting/stopping the processor (duh), but also handles things like RND keying and secure wipe. They didn't really exist when we split things out (and I think raised this issue) in the first place.
I don't really think that things will be made simpler by squashing the two blocks together. @GregAC: do you agree? In which case, maybe it makes more sense just to close this.

I am moving this to PROD.M3 for D2S assessment (see @cdgori 's comment above).
If we determine that there is no vulnerability here, I think this issue can be closed.


Expenditure change

Pull Request Test Coverage Report for Build 987459328

24 of 24 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.07%) to 96.35%

Totals

Change from base Build 977422360:
0.07%

Covered Lines:
528

Relevant Lines:
548

💛  - Coveralls


[Question] Is playwright compatible with javafx?

Hello,
I'm using: OpenJDK 18.0.1
Dependencies: https://imgur.com/a/KA7r3cC
Currently I'm making a panel to administrate my playwright code, and this error occurs:
`See https://docs.gradle.org/7.4/userguide/command_line_interface.html#sec:command_line_warnings
1 actionable task: 1 executed
error: the unnamed module reads package com.microsoft.playwright.impl from both playwright and driver
error: the unnamed module reads package com.microsoft.playwright.impl from both playwright and driver.bundle
error: module javafx.graphicsEmpty reads package com.microsoft.playwright.impl from both playwright and driver
error: module javafx.graphicsEmpty reads package com.microsoft.playwright.impl from both playwright and driver.bundle
error: module javafx.baseEmpty reads package com.microsoft.playwright.impl from both playwright and driver
error: module javafx.baseEmpty reads package com.microsoft.playwright.impl from both playwright and driver.bundle
error: module driver.bundle reads package com.microsoft.playwright.impl from both playwright and driver
error: module driver.bundle reads package com.microsoft.playwright.impl from both playwright and driver.bundle
error: module driver reads package com.microsoft.playwright.impl from both playwright and driver
error: module driver reads package com.microsoft.playwright.impl from both playwright and driver.bundle
error: module javafx.controlsEmpty reads package com.microsoft.playwright.impl from both playwright and driver
error: module javafx.controlsEmpty reads package com.microsoft.playwright.impl from both playwright and driver.bundle
error: module playwright reads package com.microsoft.playwright.impl from both driver and driver.bundle
error: module playwright reads package com.microsoft.playwright.impl from both driver and playwright
C:\Users\nicol\IdeaProjects\WarehouseBot\src\main\java\module-info.java:1: error: module WarehouseBot.main reads package com.microsoft.playwright.impl from both playwright and driver
module WarehouseBot.main {
^
15 errors
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':compileJava'.

Compilation failed; see the compiler error output for details.

Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 13s
19:45:46: Execution finished ':Main.main()'.
`
15 errors:
`> Task :compileJava FAILED
error: the unnamed module reads package com.microsoft.playwright.impl from both playwright and driver
error: the unnamed module reads package com.microsoft.playwright.impl from both playwright and driver.bundle
error: module javafx.graphicsEmpty reads package com.microsoft.playwright.impl from both playwright and driver
error: module javafx.graphicsEmpty reads package com.microsoft.playwright.impl from both playwright and driver.bundle
error: module javafx.baseEmpty reads package com.microsoft.playwright.impl from both playwright and driver
error: module javafx.baseEmpty reads package com.microsoft.playwright.impl from both playwright and driver.bundle
error: module driver.bundle reads package com.microsoft.playwright.impl from both playwright and driver
error: module driver.bundle reads package com.microsoft.playwright.impl from both playwright and driver.bundle
the unnamed module reads package com.microsoft.playwright.impl from both playwright and driver
error: module driver reads package com.microsoft.playwright.impl from both playwright and driver
error: module driver reads package com.microsoft.playwright.impl from both playwright and driver.bundle
error: module javafx.controlsEmpty reads package com.microsoft.playwright.impl from both playwright and driver
error: module javafx.controlsEmpty reads package com.microsoft.playwright.impl from both playwright and driver.bundle
error: module playwright reads package com.microsoft.playwright.impl from both driver and driver.bundle
error: module playwright reads package com.microsoft.playwright.impl from both driver and playwright
the unnamed module reads package com.microsoft.playwright.impl from both playwright and driver.bundle
C:\Users\nicol\IdeaProjects\WarehouseBot\src\main\java\module-info.java:1: error: module WarehouseBot.main reads package com.microsoft.playwright.impl from both playwright and driver
module javafx.graphicsEmpty reads package com.microsoft.playwright.impl from both playwright and driver
module WarehouseBot.main {
module javafx.graphicsEmpty reads package com.microsoft.playwright.impl from both playwright and driver.bundle
^
module javafx.baseEmpty reads package com.microsoft.playwright.impl from both playwright and driver
15 errors
module javafx.baseEmpty reads package com.microsoft.playwright.impl from both playwright and driver.bundle
module driver.bundle reads package com.microsoft.playwright.impl from both playwright and driver
module driver.bundle reads package com.microsoft.playwright.impl from both playwright and driver.bundle
module driver reads package com.microsoft.playwright.impl from both playwright and driver
module driver reads package com.microsoft.playwright.impl from both playwright and driver.bundle
module javafx.controlsEmpty reads package com.microsoft.playwright.impl from both playwright and driver
module javafx.controlsEmpty reads package com.microsoft.playwright.impl from both playwright and driver.bundle
module playwright reads package com.microsoft.playwright.impl from both driver and driver.bundle
module playwright reads package com.microsoft.playwright.impl from both driver and playwright
`
Module error:
C:\Users\nicol\IdeaProjects\WarehouseBot\src\main\java\module-info.java:1: error: module WarehouseBot.main reads package com.microsoft.playwright.impl from both playwright and driver module WarehouseBot.main { ^

It's seems I'm not the only one with this error:
https://stackoverflow.com/questions/72753702/using-playwright-in-a-modular-java-application

This was reported before: https://github.com/microsoft/playwright-java/issues/683. I believe we can fix it by changing the module structure a bit. Can you share a minimal repro where this happens?

Hello Yury,
Thanks for replying. I have created a repository with a minimal repro: https://github.com/NICOGTZL/BugReportRepro
Let me know whether I can help you furthermore.

Thanks for replying. I have created a repository with a minimal repro: https://github.com/NICOGTZL/BugReportRepro
Let me know whether I can help you furthermore.

Thanks for sharing! What steps should I run to reproduce the error?

No worries! I don't quite know what you mean, the error occurs when the Main class runs.
The main class should open a javafx interface and have a button, which when clicked would start playwright and it should navigate to the microsoft web page.
Let me know if this is not what you meant :)

Nevermind, I wanted to run the project from command line but ended up doing it from IDE. I can reproduce it.

Nevermind, I wanted to run the project from command line but ended up doing it from IDE. I can reproduce it.

Alright! So is it solved already? I tried to run the repro I sent you but it seems that doesn't work yet.

The changes will be published in the next release - v1.25.0, you can try it already by switching to 1.25.0-SNAPSHOT version. You'll need to configure separate maven repository in Gradle for the snapshots similar to this.

Sorry if I am annoying, I have not managed to do it, it seems that when I put the pom.xml you attached and put the version, my ide does not recognize that version and tells me it does not exist. I don't know if I'm doing something wrong, maybe I should wait until version 1.25.0 finally comes out when do you think it will be published? Thanks!

I have not managed to do it, it seems that when I put the pom.xml you attached and put the version, my ide does not recognize that version and tells me it does not exist.

I'm not a Gradle expert but I guess you need to covert that part of pom.xml into something like this. A normal way to configure snapshot repositories should work.


plant search in frontend

Follow up of #244

@markus2330 Th objective of this issue is to wire up the plant search for the plants layer with the backend, correct?

Exactly, both in seed and in the plant layer the search should be fully functional. Actually they should be identical.

@markus2330 The plant search was apparently already implemented in the frontend.
The language issue was declared as a floss issue.
What is still missing from this issue before it can be closed?

Please test it (if not already done) and move the usecase to done.


add versions to README compatibility matrix

to match test matrix used in CI

Following this change it seems that these versions are supported now.

Thanks for the contribution. This is not part of the support of the given versions.
However, we are soon going to release a new version where the compatibility is going to be updated - https://github.com/anexia-it/django-rest-passwordreset/pull/167


CoinbasePro ticker issue

CoinbasePro ticker is not supported for ETH/GBP currency pair:
Note:
CoinbaseProMarketDataServiceRaw:checkProductExists() will return false in case of ETH/GBP currency pair.
exchange.getExchangeSymbols() not returns all supported currency pairs

This can come from the fact that the symbols are sometimes read from a hard coded json in XChange. The reason can be:

There are not available from the API
They are, but the the remoteInit does not call the API endpoint

Both case would require a PR.

This can be closed as seems to be resolved.


Add required FASM features to harness

Fixes issues where fasm2frames was not clearing some INT pips within the ROI, which uncovered a second issue where CLK bits were getting cleared.
After this PR is merged, harnesses will need to be regenerated.  Errors may be throw if the ROI specified overlaps with unknown bits, in which case the ROI must be shrunk, or the unknown bits documented.
In the long run, once all bits within the harness are documented, the required FASM features can be used to replace the design.bit, and a bitstream can be made soley from the output frames file.

We should check whether the new roi_harnesses are compatible with this changes before merging though, I think?

We should check whether the new roi_harnesses are compatible with this changes before merging though, I think?

I've tested that the basys3 harness is compatible.


How to open the settings page when a user turns off the use of precise location

Your Environment

Plugin version:4.8.1
Platform: Both
Device OS version:Android 12 and IOS 15
Device manufacturer / model: Pixel5a & IPhone 12 pro
XCode version:13.4.1
Capacitor info (npx cap doctor)

💊   Capacitor Doctor  💊

Latest Dependencies:

  @capacitor/cli: 4.1.0
  @capacitor/core: 4.1.0
  @capacitor/android: 4.1.0
  @capacitor/ios: 4.1.0

Installed Dependencies:

  @capacitor/core: 4.1.0
  @capacitor/cli: 4.1.0
  @capacitor/android: 4.1.0
  @capacitor/ios: 4.1.0

Plugin config provided to #ready:

{
    disableLocationAuthorizationAlert: true,
    locationAuthorizationRequest: "WhenInUse",
    backgroundPermissionRationale: {
    	title: "Allow access to this device's location in the background????",
    	message:
    		"In order to allow X, Y and Z, please enable 'Allow all the time permission",
    	positiveAction: "Change to Allow all the time",
    },

    // Geolocation Config
    desiredAccuracy: BackgroundGeolocation.DESIRED_ACCURACY_HIGH,
    distanceFilter: 10,
    // Activity Recognition
    stopTimeout: 5,
    // Application config
    debug: true, // <-- enable this hear sounds for background-geolocation life-cycle.
    logLevel: BackgroundGeolocation.LOG_LEVEL_VERBOSE,
    stopOnTerminate: false, // <-- Allow the background-service to continue tracking when user closes the app.
    startOnBoot: true, // <-- Auto start tracking when device is powered-up.
}

Expected Behavior

If the user has turned off the use precise location flag, the accuracyAuthorization can be obtained with
"getProviderState();"
but if the accuracyAuthorization is ACCURACY_AUTHORIZATION_REDUCED, is there any way let user to open a modal to change the setting?
I've tried the following two
"requestPermission()".
"requestTemporaryFullAccuracy()"
It seems not a solution to my problem.

Also I would like to hear how to get if Physical acctivity is in the allowed state and how to display a modal to the user for configuration if it is not in the allowed state.

I was able to confirm that both accuracyAuthorization and Physical acctivity are displayed to the user with requestPermission() no matter how many times until the user presses Don't allow. After pressing Don't allow, it does not seem to be displayed.
Is it difficult to show the modal in the app again?
if so is it possible to skip directly to the permission settings page?


CL 15 June release

@shawntanzk review with care. Many changes on first glance.

general removal of namespace:cell (in .obo format) or in owl: <oboInOwl:hasOBONamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#string">cell</oboInOwl:hasOBONamespace>|
I assume this is intentional?
This is wrong, not sure why it didnt get picked up by qc before making its way here.  (It's my stuff so I will fix it next release >.<)

This is the term
[Term]
id: CL:0000695
name: Cajal-Retzius cell
But I wouldn't let this stop a release - can be fixed later.
Same thing in
[Term]
id: CL:0002453
name: oligodendrocyte precursor cell
(I think there are a few in there, not sure where this change came about)
In general there is a whole lot of use of dce in new terms -> so I'm guessing CL hasn't enforced the check yet.
Solution would be mass fix + qc check I would think

general removal of namespace:cell (in .obo format) or in owl: <oboInOwl:hasOBONamespace rdf:datatype="http://www.w3.org/2001/XMLSchema#string">cell</oboInOwl:hasOBONamespace>|
I assume this is intentional?

Yes, I removed in this PR

In general there is a whole lot of use of dce in new terms

Maybe this is because of the default property in Protege?
No need to create another issue for this. I'm already working to fix this one


Refactor: refactor find def in LSP.

Privide functions find_def and resolver_var in LSP to find identifier definition scopeobj. Support finding definitions with different names in one identifier

1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

[ ] N
[x] Y #524

2. What is the scope of this PR (e.g. component or file name):
LSP

3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):
refactor find_def in LSP.
a.b.c

before: Search all scope obj which name is c
after: Recursively look for definitions on the scope main. Find definition of a, jump to a's scope and search b definition， and c.
So now we can  look up definitions of different names on one id. It can be used for goto def, hover documents, etc.
Todo: add position information for each name in identifier.
Some import pkg path will change Identifier AST node
import a.b.c
d = c.e

And identifier node for c.e will be replace when resolve program form
Identifier{
     names = ["c", "e"]
     pkg = ""
}

to
Identifier{
     names = ["a.b.c", "e"]
     pkg = "a.b.c"
}

Just according ast position of c.e can’t calculate target postion on which name.

[ ] Affects user behaviors
[ ] Contains syntax changes
[ ] Contains variable changes
[ ] Contains experimental features
[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[x] Other

4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

[x] N
[ ] Y

5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

[x] Unit test
[ ] Integration test
[ ] Benchmark (add benchmark stats below)
[ ] Manual test (add detailed scripts or steps below)
[ ] Other

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2300

Relevant Lines:
2614

💛  - Coveralls


rTorrent client support

Is there a chance of rTorrent client support in the future?

An older version used to support rtorrent, it could easily be done again. However I had issues where it would crash the rtorrent daemon. I also tried with deluge without success. Anyway if someone could help me with this it would be great

Isn't the current implementation using deluge? (were you thinking about another bittorrent daemone, such as transmission or qbitorrent maybe?)

It is, I want to support both rtorrent, deluge and qbittorrent. An older version used to support rtorrent but it would crash the process and/or watching progress wouldn't work


[CMake] Prevent rebuild of libraries

.swiftmodule is listed as an output of swift libraries, but it isn't updated if there's been no changes (just like the library and its object files). Add it to the touch hack as well.

@swift-ci please test

@swift-ci please test windows

@swift-ci Please test Windows

Might be worth a comment saying that we can remove it once we require CMake 3.26.
That said, most of this function can be removed at that point so maybe not worth it?

Yeah, basically every "workaround" here and in swift-syntax can be removed when we require 3.26.


Make discovery handler map case insensitive

What this PR does / why we need it:
This PR makes the Discovery Handler Map from Akri Agent case insensitive.
Now RegisteredDiscoveryHandlerMap is a CaseInsensitiveHashMap and allows keys with different capitalizations to be placed in the same map entry, having the same value.
This adds case_insensitive_hashmap as a agent dependency. This is a wrapper around the regular Rust HashMap that uses UniCase as the map key, enabling it to be case insensitive.
Special notes for your reviewer:
closes #344
If applicable:

[ ] this PR contains documentation
[ ] this PR contains unit tests
[ ] added code adheres to standard Rust formatting (cargo fmt)
[ ] code builds properly (cargo build)
[ ] code is free of common mistakes (cargo clippy)
[ ] all Akri tests succeed (cargo test)
[ ] inline documentation builds (cargo doc)
[ ] version has been updated appropriately (./version.sh)

Thanks @rodz for putting in a fix for this! What were your thoughts around using the crate -- it seems not widely used -- vs creating a wrapper in Akri for the HashMap light in this example: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=24bd4bebfb5152cd476ed8c3f5487b72 ?

Thanks @rodz for putting in a fix for this! What were your thoughts around using the crate -- it seems not widely used -- vs creating a wrapper in Akri for the HashMap light in this example: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=24bd4bebfb5152cd476ed8c3f5487b72 ?

Good point Kate, I wanted to use the UniCase object while making it case insensitive as it covers more options, for example Maße and MASSE been matched to the same key(This would not be the case if using the to_lowercase() strategy). This crate seemed like a good wrapper to allow us to do it and still use Strings as keys for querying the Map.
Your idea of creating a wrapper itself for Akri seams also really good and solves the problem, do you feel like it's better instead of using the crate? As its maintained by a single developer and not widely used as you mentioned.

for example Maße and MASSE been matched to the same key(This would not be the case if using the to_lowercase() strategy)

Good point. I am fine going with the crate just wanted to propose another opion

there is a lot of UniCase usage ... i see a bunch of people doing this in github:
    let mut map: HashMap<UniCase<String>, String> = HashMap::new();
    map.insert("asdfASDF".into(), "1".into());

not much usage of case_insensitive_hashmap.  are we using case_insensitive_hashmap to avoid changing our code for each insert/get (i.e. the above call to into)?

there is a lot of UniCase usage ... i see a bunch of people doing this in github:
    let mut map: HashMap<UniCase<String>, String> = HashMap::new();
    map.insert("asdfASDF".into(), "1".into());

not much usage of case_insensitive_hashmap. are we using case_insensitive_hashmap to avoid changing our code for each insert/get (i.e. the above call to into)?

That was the original idea but in fact some changes on our inserts had to be done for compatibility. Will try out Kates suggestions to make it more clean.

Will try out Kates suggestions to make it more clean.

@rodz I think @bfjelds suggestion of making the key UniCase<String> is easier than creating a wrapper

Updated the PR with a mix of your suggestions. A wrapper around UniCase was created that allowed us to keep accessing the map the same way as previously and still having the case insensitive capabilities.

Updated the PR with a mix of your suggestions. A wrapper around UniCase was created that allowed us to keep accessing the map the same way as previously and still having the case insensitive capabilities.

I personally think just using into() on all HashMap<UniCase<String>, String> accesses/modifications is a better solution than the wrapper. While the wrapper results in less changes right now, if someone wants to use other HashMap methods (such as entry) then they'd have to add it to the wrapper struct. Plus the compiler will complain if into is not used.

Question, why do we not want to enforce consistent naming? Do other K8s resources also allow for case insensitiveness?

Question, why do we not want to enforce consistent naming? Do other K8s resources also allow for case insensitiveness?

Thanks for the question. We are doing it to simplify the scenario with more the one discovery handler for the same protocol are been used. This is about the discovery handler name it passes to the agent while registering so I dont think its much related to the k8s resources itself but rather to a situation where the agent may interact with different DHs depending on the node, for example a wasi krustlet and normal kubelet node.

Updated the PR with a mix of your suggestions. A wrapper around UniCase was created that allowed us to keep accessing the map the same way as previously and still having the case insensitive capabilities.

I personally think just using into() on all HashMap<UniCase<String>, String> accesses/modifications is a better solution than the wrapper. While the wrapper results in less changes right now, if someone wants to use other HashMap methods (such as entry) then they'd have to add it to the wrapper struct. Plus the compiler will complain if into is not used.

Good point Kate. I agree with your concerns but having to add the .intro() or other ways to transform to UniCase may bring more friction during development then adding the necessary functions to the struct. Would love to hear more opinions from the rest of the team.

Question, why do we not want to enforce consistent naming? Do other K8s resources also allow for case insensitiveness?

Thanks for the question. We are doing it to simplify the scenario with more the one discovery handler for the same protocol are been used. This is about the discovery handler name it passes to the agent while registering so I dont think its much related to the k8s resources itself but rather to a situation where the agent may interact with different DHs depending on the node, for example a wasi krustlet and normal kubelet node.

I might be missing some context, but I am still not sure why we need to add case insensitivity handling just because we have multiple DHs or multiple types of nodes. In either case, would it not be enough just to use case sensitive names?

Question, why do we not want to enforce consistent naming? Do other K8s resources also allow for case insensitiveness?

Thanks for the question. We are doing it to simplify the scenario with more the one discovery handler for the same protocol are been used. This is about the discovery handler name it passes to the agent while registering so I dont think its much related to the k8s resources itself but rather to a situation where the agent may interact with different DHs depending on the node, for example a wasi krustlet and normal kubelet node.

I might be missing some context, but I am still not sure why we need to add case insensitivity handling just because we have multiple DHs or multiple types of nodes. In either case, would it not be enough just to use case sensitive names?

Like @jiria, I didn't see the motivation for this change being to handle multiple DH or different types of nodes. Mainly, i see it as a way to improve user experience. This issue https://github.com/deislabs/akri/issues/344 rods ran into would have been prevented. Put the other way, what is the advantage of case sensitive fields in the Akri Configuration? Why should the casing of the name field in the discoveryDetails section of a Configuration exactly match the name under which a discovery handler registers?

Question, why do we not want to enforce consistent naming? Do other K8s resources also allow for case insensitiveness?

Thanks for the question. We are doing it to simplify the scenario with more the one discovery handler for the same protocol are been used. This is about the discovery handler name it passes to the agent while registering so I dont think its much related to the k8s resources itself but rather to a situation where the agent may interact with different DHs depending on the node, for example a wasi krustlet and normal kubelet node.

I might be missing some context, but I am still not sure why we need to add case insensitivity handling just because we have multiple DHs or multiple types of nodes. In either case, would it not be enough just to use case sensitive names?

Like @jiria, I didn't see the motivation for this change being to handle multiple DH or different types of nodes. Mainly, i see it as a way to improve user experience. This issue #344 rods ran into would have been prevented. Put the other way, what is the advantage of case sensitive fields in the Akri Configuration? Why should the casing of the name field in the discoveryDetails section of a Configuration exactly match the name under which a discovery handler registers?

Was the design not to have the name under discoveryDetails match the registered discovery handlers?
If it was supposed to match, then #344 is not an issue imho. I would rather not add more code, especially not so supported crates, to handle cases like that. As K8s itself is not case insensitive when it comes to resources, I dont see a reason why we should be, especially if it adds more complexity and possibly unsupported code into the project.
Happy to be overruled. And I might be also still missing something.

i'm not sold on case-insensitivity either.  though my concern is more about it being confusing ... how do we describe where we allow case insensitivity?  case will matter in the Configuration pod spec and service specs.  case will matter in all of the Configuration labels.  with this change, we will ignore case for one field's value.
and then, it will probably mostly matter to the contents of discoveryDetails (for example, if someone uses discoveryDetails.Descriptions for DebugEcho, will it work?).

Will be closing this Pull Request based on the discussion. Thanks so much for the feedback and comments.
Talking about the more descriptive error messages I looked more into it, and I think it doesn't fit into Akri now since it's not really an error as if you deploy a Discovery Handler with a different name it will act the same as the others, will be registered and keep waiting for a configuration specifying this protocol to start the discovery process, so there is no errors involved. And if you run Akri with trace log level the Agent will print the current registered DHs list as soon as the discovery process for some protocol start, so the developer can notice the error there if any typos happen.


[Benchmark] Unify all models' prompt & benchmark script

There are some not supported models in the prompt.json, like gpt-j, t5 etc. Why?

There are some not supported models in the prompt.json, like gpt-j, t5 etc. Why?

Removed unsupported prompts.

Why don't we expose parameters of "batch size, input_len, output_len"  in the run_benchmark scripts ? @JunxiChhen

Besides, have you validated the performance with the new code on both of SPR and HBM, especially on HBM. @JunxiChhen

Why don't we expose parameters of "batch size, input_len, output_len" in the run_benchmark scripts ? @JunxiChhen

Will expose them in another PR.

Besides, have you validated the performance with the new code on both of SPR and HBM, especially on HBM. @JunxiChhen

Yes, will post on of the results later.


Release v0.2.10

This PR will:

Bump dwn-sdk-js from v0.2.16 to v0.2.17
Bump dwn-sql-store from 0.2.9 to 0.2.10

Originally thought this was only a UTF-8 setting, but it's a different obscure setting wrt sorting:

LC_COLLATE affects comparisons between strings. In practice, the most visible effect is the sort order. LC_COLLATE='C' (or POSIX which is a synonym) means that it's the byte order that drives comparisons, whereas a locale in the language_REGION form means that cultural rules will drive the comparisons.
https://dba.stackexchange.com/questions/94887/what-is-the-impact-of-lc-ctype-on-a-postgresql-database

This is caused by the recent addition for string prefix filtering.
  static constructPrefixFilterAsRangeFilter(prefix: string): RangeFilter {
    return {
      gte : prefix,
      lt  : prefix + '\uffff',
    };
  }

The \uffff is added to the end of the prefix so that the upper bounds will not go beyond the prefix. \uffff is a character that's sorted last lexicographically.


do not AnnounceBlocks on null behaviors

restore coinbaseMaturity upon leaving the test

I'm fine with the PR, please sync chains and run the tests.
I'll approve as soon as I do same as well.

OK as far as I am concerned, it looks like it is working, let mw know what you see on your side, or just merge :) Thanks !

Chains synced, failed to pass integration tests. Do they pass for you?

Yes they do, only the 4 in the screenshot don't pass...


Equality check and/or introspection of objects changes choice

The following sample code changes the choice.
Choice should only change on setattr not on getattr.
tcp.dst_port.value = 80
# the following should throw an exception
if tcp.dst_port.values[0] == 0:
   pass

No, we put it in a backlog.

Proposal
Summary
If a user tries to retrieve or set a choice, when a choice is already set, we would throw an exception.
We would also provide a way to user so that they can unset the current choice and then set the choice according to their need.
Explanation with examples
Lets take a sample data model for the explanation
sample:
    type: object
    properties:
        name:
            type: string
        choice:
            type: string
            enum:
                str_val:
                    type: string
                num_val:
                    type: int
                str_vals:
                    type: array of string

Python code snippet:
s = api.Sample()
s.name = "new_sample"

# choice set by user
s.str_val = "str1"

# If now user tries to access or set another choice , they will see exception
# Both of the below statements will result in an exception
# Cannot set/retrieve num_val, as str_val was already set earlier
s.num_val
s.num_val = 23

Note: We will follow the same principle in go, but as we may know that it is not recommended to raise a panic.
In this case we should be raising panic cause user should be notified right away, as the next commands may have dependency on it.
Way to Unset Choice
Now if the user wants to unset the choice, we have choice property exposed which can be used,
but as when setting choice attribute we set the choice implicitly, it makes sense we expose some methods which unsets the choice implicitly as well.
# unset the choice in sample
s.unset()
# now user can set the choice the want
s.num_val = 23

Note: The function to reset or unset the choice should be named properly.
If we name it just unset users may feel it unsets the whole sample object which include choice as well as the other attributes such as name in this case. Maybe we can have reset_choice or clear_choice
Scope

Snappi
GoSnappi

Cons

Its on the user now to explicitly set unset the choice if they want to change the choice
It will effect existing scripts which are overriding choices in their script.