Unable to import users with SHA512 passwords

Environment

Operating System version: OSX 10.15.5 (19F101)
Firebase SDK version: firebase-admin 8.12.0
Firebase Product: auth
Node.js version: 12.18.3.
NPM version: 6.14.6

Problem
At the moment, I'm unable to authenticate users imported from my existing database outside of Firebase. The import is successful, but user authentications fail with auth/wrong-password. I commented about this issue in another #792 , but haven't found a solution to the problem.
Can someone please help me understand what's going on? And how I can successfully migrate my users to Firebase.
const salt = crypto.randomBytes(16).toString('hex');
const user = {
  uid: "tbSL53PN7zVTMsWc9up24hev4CN2",
  email<EMAIL_ADDRESS>
  hash: crypto.pbkdf2Sync("test123", salt, 100, 64, 'sha512').toString('hex'),
  salt
}

const importUser = {
  uid: user.uid,
  email: user.email,
  passwordHash: Buffer.from(user.hash, 'hex'),
  passwordSalt: Buffer.from(user.salt, 'hex')
}

const results = await auth().importUsers([importUser], {
    hash: {
        algorithm: "SHA512",
        rounds: 100,
  }
})

console.log(results)
const c = await auth().listUsers()
console.log(c)

In addition to the problem above, I'm also noticing that passwordHash and passwordSalt are always undefined; even thought I am logged in as an admin/owner for the project.
{ successCount: 1, failureCount: 0, errors: [] }
{
  users: [
    UserRecord {
      uid: 'tbSL53PN7zVTMsWc9up24hev4CN2',
      email<EMAIL_ADDRESS>      emailVerified: false,
      displayName: undefined,
      photoURL: undefined,
      phoneNumber: undefined,
      disabled: false,
      metadata: [UserMetadata],
      providerData: [Array],
      passwordHash: undefined,
      passwordSalt: undefined,
      tokensValidAfterTime: 'Wed, 07 Oct 2020 10:17:12 GMT',
      tenantId: undefined
    }
  ]
}

The way you hash passwords is incorrect. Please see my response to your comment in #792. Also see my older responses in the same issue.
For a comparison of different hashing mechanisms you can try the following script:
const crypto = require('crypto');
const { sha512 } = require('js-sha512'); // third-party library (npm install js-sha512)

const pass = 'test123';
const salt = crypto.randomBytes(16).toString('hex');

// Your approach
const got = crypto.pbkdf2Sync(pass, salt, 100, 64, 'sha512').toString('hex');

// My approach using the native sha512 support of Node.js
function sha512_local(salt, pass) {
  let current = Buffer.from(salt + pass);
  for (let i = 0; i < 100; i++) {
    const hash = crypto.createHash('sha512');
    current = hash.update(current).digest();
  }

  return current;
}

// My other approach using a 3rd party hashing library
function sha512_lib(salt, pass) {
  let c = pass;
  if (salt) { c = salt + c; } // Salt-first
  for (let ii = 0; ii < 100; ii++) {
      const hex = sha512(c)
      c = new Buffer(hex, 'hex');
  }
  return c.toString('hex');
}

console.log('PBKDF2: ', got);
console.log('SHA512 (LOCAL): ', sha512_local(salt, pass).toString('hex'));
console.log('SHA512 (LIB): ', sha512_lib(salt, pass));

This hahses the same salt+password pair using 3 different approaches (100 rounds):

Using the a pbkdf2 function (your approach)
Using the native sha512 hash
Using a third-party sha512 library

You will notice that your approach produces a result different from the other 2:
PBKDF2:  f99186d242c30af294af80575abc9dea85c70889468926f82321836c4a15d101dba816eebcd71bc8cff1c38f99d4c7e8446cb32f5982d687d4c5ded6d260435b
SHA512 (LOCAL):  fc5e8ab58bd140ce63978b0e051883a9c3f02d8c408cc36efc5e4a5a8a22cbd8315eb33c210474d5314fbbb48f9e81d2b8a532e02d62a67c858f0ec70d62f830
SHA512 (LIB):  fc5e8ab58bd140ce63978b0e051883a9c3f02d8c408cc36efc5e4a5a8a22cbd8315eb33c210474d5314fbbb48f9e81d2b8a532e02d62a67c858f0ec70d62f830

@hiranya911 Are you saying that crypto is doing things incorrectly, or my use of the crypto library is incorrect? From what I've gathered, I'm following the documentation as evidenced here. I appreciate you taking the time to help me on this.

Your use of crypto is incorrect. If you're specifying SHA512 as the hash algorithm type, the hash needs to be calculated using a plain sha512 digest function. You're currently using a pbkdf sha function.


docs: add PR and ISSUE TEMPLATE.

Signed-off-by: Meinhard Zhou<EMAIL_ADDRESS>

/release-note-none


[v1.15] fqdn: Forward-compatiblity with Cilium 1.16 FQDN identities

This commit introduces checkpoint mechanism in the FQDN name manager which writes all known FQDN selectors to disk. This allows future versions of Cilium to read these selectors after upgrade and assign IP identities based on selectors rather than CIDR prefixes.
This enables dropless upgrades from Cilium v1.15 to v1.16 for ToFQDN policies. Without the knowledge of selectors during restoration, the first endpoint regeneration in Cilium v1.16 may cause drops for IPs selected by ToFQDN selectors.

/test-backport-1.15


[ART-8762] Refine get_advisories to Exclude Custom Assembly Types and Empty Advisories

Enhanced the docstring of the get_advisories function for better clarity and to accurately reflect the OpenShift naming convention.
Extended the filtering logic in get_advisories to exclude releases with 'custom' assembly types, ensuring that only relevant assembly types are processed.
Maintained the existing logic to skip versions with explicitly empty 'advisories!', thereby omitting these from the final output.
Added code comments for improved readability and understanding of the function's behavior.

Since this is not an urgent issue, lets do it the right way.
Lets keep
# Skip 'custom' assembly types
        if assembly_type == 'custom':
            continue

so that we do not show hotfixes in art-dash for now, and remove everything else from the PR.
@MartinPl0 if you can create a ticket that you mentioned to follow up using Yuxiang's suggestion, it would be great. I'll add it to the other things that we need to refactor to art-common


[Feature]: Support for calling toast by function

Describe the feature
Is it possible to implement a function call similar to the way Message is called in element-plus?
https://element-plus.org/en-US/component/message.html
In most scenarios, what the project needs more than anything else is a short reminder message. Repeatedly writing toast in different components is really tedious, I tried to find simple reuse methods in the documentation, however, the Imperative API is just calling the methods exposed in defineExpose, and you still need to write toast in the template.
I then tried to create a new component via toast, using createVNode and render to mount the component in a function, and then exposing that function. But unfortunately it didn't work efficiently and encountered errors about teleport vs props etc. during the mounting process.
The above was translated with the help of a translation tool, so I apologize if it was confusing for you.
Additional information

[ ] I intend to submit a PR for this feature.
[ ] I have already implemented and/or tested this feature.

Abstraction for creating and managing new render trees (mixing pure JS and Vue API) would mess with Vue Devtools
Before

After

You can check shadcn-vue Toast Component source for implement your toast components based on radix-vue components
or simply use vue-sooner or notivue


PATH segment full style not displaying exactly what is saying

Hi,
I'm trying to display my path correctly into the path segment using the "full" style segment. the description say that its using the $PWD var in pwsh but seems not realy.
I've created some PSDrive ex:
set-localtion -name PSdir psprovider "FileSystem" root = "~\Documents\PowerShell"
so when I am in the repertory, the $PWD say :
Path
PSdir:\
but the path segment continue to show the full path, ie:
C:\Users<my user>\Documents\PowerShell
So it is normal or I've done something incorrectly ?? I know that we can use the "Mapped location" but it is kinda defeat the objective as i will need each time a new shortcut is createad to add it manually in my theme config
this is the config I user for the segment :
"type": "path",
"style": "powerline",
"powerline_symbol": "\uE0B0",
"foreground": "#000",
"background": "#42C6FF",
"properties": {
   "style": "full",
   "mapped_locations": [
      ["C:\\temp", "\ue799"]
   ]

Environment

Oh my Posh version: 3.68.4
Theme: my own personal
Operating System: windows 10
Shell: windows terminal and VS powershell inegrated console

@wyldspyder how did you import oh-my-posh into your $PROFILE? Are you using the module or a manual installation?

@wyldspyder how did you import oh-my-posh into your $PROFILE? Are you using the module or a manual installation?

Tested with PowerShell 7.2 using New-PSDrive -Name PSdir -PSProvider "FileSystem" -Root "~\Documents". I can confirm this is by design. Under the hood we're using $PWD.ProviderPath. I can check if we want to distinct between visualising and actual location, but there were issues when running in the registry for example. I'll do a quick check.

Tested with PowerShell 7.2 using New-PSDrive -Name PSdir -PSProvider "FileSystem" -Root "~\Documents". I can confirm this is by design. Under the hood we're using $PWD.ProviderPath. I can check if we want to distinct between visualising and actual location, but there were issues when running in the registry for example. I'll do a quick check.

TL;DR, we can't use the current PWD flag as that needs to contain the ACTUAL path on the filesystem rather than a PS only PSDrive, else a lot of context can't be retrieved. But, I introduced a new flag specifically for this use case which is only used within the Powershell init script and module, that way we can separate the visual aspect from the functional one meaning any PSDrive will work from that version onwards.

TL;DR, we can't use the current PWD flag as that needs to contain the ACTUAL path on the filesystem rather than a PS only PSDrive, else a lot of context can't be retrieved. But, I introduced a new flag specifically for this use case which is only used within the Powershell init script and module, that way we can separate the visual aspect from the functional one meaning any PSDrive will work from that version onwards.

Hi JanDeDobbeleer, thanks fo rthe follow up, it is really appreciated !!
My importation of module automated, I will not show you everything but here the basic concept:

$moduleAvailable = get-installedModule

$moduleToImport = (
    @{
        name = "oh-my-posh"
        allowPrerelease = $true
    })

foreach($module in $moduleToImport) {
    if ($moduleAvailable.contains($module.name)) {
        install-module @($module.name)
    }
}

Also, for importing all my 'drive', I use a similar concept :
$driveList = @{
    "ordiA"  = @{};
    "ordiB"  = @{}
}

# drive ordi A
$driveList.ordiA = (
    @{name = "Home";     psprovider = "FileSystem"; root = "~"},
    @{name = "GitHub";   psprovider = "FileSystem"; root = "~\Documents\GitHub\"},
    @{name = "Bitbk";    psprovider = "FileSystem"; root = "~\Documents\Bitbk\"}
)

# drive maison
$driveList.ordiB = (
    @{name = "Home";     psprovider = "FileSystem"; root = "~"},
    @{name = "PSdir";    psprovider = "FileSystem"; root = "~\Documents\PowerShell\"}
)

foreach($item in $driveList[$env:USERDOMAIN]){

    if ((test-path $item.root) -and (((get-psdrive).name) -notcontains $item.name)) {
        # créé le drive
        New-PSDrive @item | out-null

        #créé le raccouci "<name>:"
        invoke-expression ("function " + $item.name.tostring() + ': {set-location ' + $item.name + ':}')
    }
}

I d'ont think it is causing problem but I,ve just remarked that my PSh is at v7.1.0, I'll try with 7.2 just to be sure

Hi JanDeDobbeleer, thanks fo rthe follow up, it is really appreciated !!
My importation of module automated, I will not show you everything but here the basic concept:

$moduleAvailable = get-installedModule

$moduleToImport = (
    @{
        name = "oh-my-posh"
        allowPrerelease = $true
    })

foreach($module in $moduleToImport) {
    if ($moduleAvailable.contains($module.name)) {
        install-module @($module.name)
    }
}

Also, for importing all my 'drive', I use a similar concept :
$driveList = @{
    "ordiA"  = @{};
    "ordiB"  = @{}
}

# drive ordi A
$driveList.ordiA = (
    @{name = "Home";     psprovider = "FileSystem"; root = "~"},
    @{name = "GitHub";   psprovider = "FileSystem"; root = "~\Documents\GitHub\"},
    @{name = "Bitbk";    psprovider = "FileSystem"; root = "~\Documents\Bitbk\"}
)

# drive maison
$driveList.ordiB = (
    @{name = "Home";     psprovider = "FileSystem"; root = "~"},
    @{name = "PSdir";    psprovider = "FileSystem"; root = "~\Documents\PowerShell\"}
)

foreach($item in $driveList[$env:USERDOMAIN]){

    if ((test-path $item.root) -and (((get-psdrive).name) -notcontains $item.name)) {
        # créé le drive
        New-PSDrive @item | out-null

        #créé le raccouci "<name>:"
        invoke-expression ("function " + $item.name.tostring() + ': {set-location ' + $item.name + ':}')
    }
}

I d'ont think it is causing problem but I,ve just remarked that my PSh is at v7.1.0, I'll try with 7.2 just to be sure

@wyldspyder the latest version should behave the way you want it. I extended the functionality to distinguish between visualization of the path (what do I show in the prompt) and functionality (where am I on the filesystem). Nothing wrong with your profile, any valid PSDrive should now also show as such in the latest version of oh-my-posh.

@wyldspyder the latest version should behave the way you want it. I extended the functionality to distinguish between visualization of the path (what do I show in the prompt) and functionality (where am I on the filesystem). Nothing wrong with your profile, any valid PSDrive should now also show as such in the latest version of oh-my-posh.


Sample doesn't work anymore - "The refresh token has expired due to inactivity"

I get this error right away when running "dotnet run" in the src folder:
Starting Azure IoT Central Application... Unhandled exception. System.Exception: {"error":"invalid_grant","error_description":"AADSTS700082: The refresh token has expired due to inactivity. The token was issued on 2021-06-12T02:13:39.9261360Z and was inactive for 90.00:00:00.\r\nTrace ID: 9608b20c-0533-46e8-9dcb-fb56783f2301\r\nCorrelation ID: 1af57d3f-e7aa-4b3d-9ce5-7d58ea45f0e9\r\nTimestamp: 2021-09-21 22:36:20Z","error_codes":[700082],"timestamp":"2021-09-21 22:36:20Z","trace_id":"9608b20c-0533-46e8-9dcb-fb56783f2301","correlation_id":"1af57d3f-e7aa-4b3d-9ce5-7d58ea45f0e9","error_uri":"https://login.microsoftonline.com/error?code=700082"}    at IoTCentralApp.IoTCentralClient.getRefreshedAccessToken(AccessToken[] accessTokensArray, String resouce) in C:\temp\central\azure-iot-central-samples-csharp\IoTCentralApp\src\IoTCentralClient.cs:line 190    at IoTCentralApp.IoTCentralClient.ParseTokenFromAzureCli() in C:\temp\central\azure-iot-central-samples-csharp\IoTCentralApp\src\IoTCentralClient.cs:line 43    at IoTCentralApp.IoTCentralConsole.RunAsync() in C:\temp\central\azure-iot-central-samples-csharp\IoTCentralApp\src\IoTCentralConsole.cs:line 46    at IoTCentralApp.Program.Main(String[] args) in C:\temp\central\azure-iot-central-samples-csharp\IoTCentralApp\src\Program.cs:line 12    at IoTCentralApp.Program.<Main>(String[] args)

@wickste we updated the examples with latest GA Central API, let us know if that works.


Falco Sidekick UI Ingress not functional

Describe the bug
When using the Helm chart to use Falco Sidekick UI with an Ingress, the resulting endpoint results in 404 on all resource requests.
How to reproduce it
Run Helm chart with Falco Sidekick UI with an Ingress on GCP. Please see: https://github.com/falcosecurity/charts/issues/402#issuecomment-2198452925
Expected behaviour
Falco Sidekick UI should work on the address indicated by the Ingress.
Screenshots
Please see:
https://github.com/falcosecurity/charts/issues/402#issuecomment-2212425209
Environment

Falco version:
0.38.1
System info:

Sun Jul  7 15:33:38 2024: Using deprecated config key 'rules_file' (singular form). Please use new 'rules_files' config key (plural form).
Sun Jul  7 15:33:38 2024: Falco version: 0.38.1 (x86_64)
Sun Jul  7 15:33:38 2024: Falco initialized with configuration files:
Sun Jul  7 15:33:38 2024:    /etc/falco/falco.yaml
Sun Jul  7 15:33:38 2024: System info: Linux version 6.1.85+ (builder@faf02fc191fd) (Chromium OS 16.0_pre484197_p20230405-r10 clang version 16.0.0 (/var/tmp/portage/sys-devel/llvm-16.0_pre484197_p20230405-r10/work/llvm-16.0_pre484197_p20230405/clang 2916b99182752b1aece8cc4479d8d6a20b5e02da), LLD 16.0.0) #1 SMP PREEMPT_DYNAMIC Thu Jun 27 21:05:47 UTC 2024
Sun Jul  7 15:33:38 2024: Loading rules from file /etc/falco/falco_rules.yaml
{
  "machine": "x86_64",
  "nodename": "falco-pqft2",
  "release": "6.1.85+",
  "sysname": "Linux",
  "version": "#1 SMP PREEMPT_DYNAMIC Thu Jun 27 21:05:47 UTC 2024"
}

Cloud provider or hardware configuration:
GCP GKE
OS:
Node is running on GCP Container-Optimized OS. Falco image seems to be Ubuntu based-based.
Kernel:
6.1.85+
Installation method:
Helm chart via Pulumi.

Additional context
N/A

Can you try to set the pathType to Prefix to check if it works better please.
falcosidekick:
  enabled: true
  webui:
    enabled: true
    user: "REDACTED:REDACTED"
    service:
      type: "NodePort"
      annotations:
        cloud.google.com/neg: "{\"ingress\": true}"
        cloud.google.com/app-protocols: "{\"http\": \"HTTP\"}"
    ingress:
      enabled: true
      annotations:
        kubernetes.io/ingress.class: "gce-internal"
        kubernetes.io/ingress.allow-http: true
        networking.gke.io/v1beta1.FrontendConfig: "frontend-config"
      hosts:
        - host: "falcosidekick-ui.falco.mvp.dev.hirundo.io"
          paths:
          - path: "/
            pathType: Prefix

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://github.com/falcosecurity/community.
/lifecycle stale


build instructions missing xz-utils

I started following the directions here for linux and eventually got to xz not found
the apt line should be updated to also include xz-utils:
$ dpkg -S $(which xz)
xz-utils: /usr/bin/xz

Thanks, fixed.


Hold request - Not here page shows up when attempting to hold request by requestee

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.52-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Go to staging.new.expensify.com
[User A] Requets money from User B
[User B] Open IOU request details from User A
[User B] Click 3-dot menu > Hold request

Expected Result:
Hold request RHP opens without issue
Actual Result:
Not here page shows up after selecting Hold request.
This issue only occurs for requestee
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/88d9d190-3d37-47de-bed9-12300cdb0ffe
View all open jobs on GitHub

@greg-schroeder  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

Proposal
Please re-state the problem that we are trying to solve in this issue.
Hold request - Not here page shows up when attempting to hold request by requestee
What is the root cause of that problem?
This is the issue with routing i.e. in here :
https://github.com/Expensify/App/blob/d4eaf4e2deabb6c07736b1eaefaa203cc9cf5850/src/ROUTES.ts#L301-L304
we are having issue i.e. it getting to request route but not requestee route and throwing an error on console i.e. the below error.

What changes do you think we should make in order to solve the problem?

We need to modify the route like this :
            `${CONST.IOU.TYPE.SEND}/edit/reason/${transactionID}?backTo=${backTo}&reportID=${reportID}` as const,
    },

What alternative solutions did you explore? (Optional)
N/A

Updated Proposal

We can merge this issue with https://github.com/Expensify/App/issues/37554 issue.

Okay merging into https://github.com/Expensify/App/issues/37554 per Sobit's comment, so closing this one


Vertical scrolling for TreeView and other enhancements

TreeView is now implemented using ListView.builder, allowing for the possibility of vertical scrolling and better efficiency for very large lists of items
shrinkWrap defaults to true, so the old behavior is still the default
TreeViewItem.value field added to optionally associate any value (e.g., a primary key value) with each item
TreeView.onSelectionChanged callback added to be notified under all circumstances when the selection changes, and to be given the full list of the item(s) that are now currently selected (especially efficient for single selection TreeView when the item list is very long).
Fixes vertical alignment issue if you have some children that are expandable and others that are not.

Implements #224.
Successfully tested with a tree with around 10,000 items with more than 10 levels of nesting, fully expanded. Scrolling/rendering performance is good in this case when setting cacheExtent: 50, usePrototypeItem: true, and shrinkWrap: false.
Here is a visual on the large list with scrolling with the alignment bug before the fix:

And here is the same list with the alignment bug fixed:

Pre-launch Checklist

[X] I have run dartfmt on all changed files
[X] I have updated CHANGELOG.md with my changes
[X] I have run "optimize/organize imports" on all changed files
[X] I have addressed all analyzer warnings as best I could
[X] I have added/updated relevant documentation
[X] I have run flutter pub publish --dry-run and addressed any warnings

@bdlukaa - changes made, see what you think. Thanks.


missing dependencies error

Since upgrading to 1.0.7, I'm getting Error: Some schemas can't be generated due to direct or indirect missing dependencies: when running the CLI. Downgrading to 1.0.5 fixes the issue

I'm also getting this error.

+1
FWIW, we started getting this after the following change in my Supabase types after adding the postgres_fdw extension:
   Functions: {
-      [_ in never]: never
+      postgres_fdw_disconnect: {
+        Args: {
+          "": string
+        }
+        Returns: boolean
+      }
+      postgres_fdw_disconnect_all: {
+        Args: Record<PropertyKey, never>
+        Returns: boolean
+      }
+      postgres_fdw_get_connections: {
+        Args: Record<PropertyKey, never>
+        Returns: Record<string, unknown>[]
+      }
+      postgres_fdw_handler: {
+        Args: Record<PropertyKey, never>
+        Returns: unknown
+      }
    }

I can also confirm that downgrading from 1.0.7 to 1.0.5 fixed this.

1.0.5 fixes it.
It's being caused by this line:
https://github.com/psteinroe/supabase-to-zod/blob/5740b4b511f4cd4b217a9a8033947f1f5cb427de/src/supabase-to-zod.ts#L58
It might be more useful as a console error instead of breaking the output. The example schema fails to build with this error:
Some schemas can't be generated due to direct or indirect missing dependencies:
voidFuncArgsSchema

i got the same issue for some reason :
[0xtz]$ pnpm schemagen

> APP schemagen <PATH>
> supabase-to-zod --input src/lib/db_types.ts --output src/lib/schemas.ts

Error: Some schemas can't be generated due to direct or indirect missing dependencies:
getHistogramTimingsArgsSchema
pgStatMonitorResetArgsSchema
pgStatMonitorVersionArgsSchema
pgsmCreate11ViewArgsSchema
pgsmCreate13ViewArgsSchema
pgsmCreate14ViewArgsSchema
pgsmCreate15ViewArgsSchema
pgsmCreate17ViewArgsSchema
pgsmCreateViewArgsSchema
rangeArgsSchema

package.json

"supabase-to-zod": "^1.0.5",

it was working fine before :warning: hhhh


Add a pre-release script to update static fallback data

Before every release, we need to generate and update the fallback data. This will introduce an automated approach and help on reducing maintenance effort.

:tada: This issue has been resolved in version 2.1.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Allow access to other field values when creating a default value

Initial Checks

[X] I have searched Google & GitHub for similar requests and couldn't find anything
[X] I have read and followed the docs and still think this feature is missing

Description
I'd like to propose a pattern that allows access to other field values when creating a default value. This feature would provide a more elegant and localized way to compute default values based on other fields, potentially reducing the need for model_validator in many cases.
Current Situation
In Prefect, we heavily rely on a pattern of letting users provide values to a model, and if not provided, impute defaults from other fields. This is used in our core orchestration engine and in our use of pydantic-settings for user customization.
Currently, we have two solutions, both with drawbacks:

Use computed fields: This works for some cases but limits user ability to set defaults. For example, we want to allow users to specify a custom log endpoint, otherwise default to {base_url}/logs.
Use model_validator: This requires marking fields as Optional and using a model_validator to impute values when None is passed. This approach feels like it's stretching the intended use of the validation lifecycle and introduces typing complexity.

Example of current workaround:

from pydantic import BaseModel, model_validator
from typing import Optional

class APIConfig(BaseModel):
    base_url: str = "pydantic.dev"
    api_url: Optional[str] = None

    @model_validator(mode='after')
    def set_api_url(self):
        if self.api_url is None:
            self.api_url = f"api.{self.base_url}"
        return self

Proposed Solutions
I'm not super opinionated about how to implement this, though two potential approaches come to mind:
Extend computed_field functionality:
class APIConfig(BaseModel):
   base_url: str = Field(default = 'pydantic.dev')

   @computed_field
   def api_url(self) -> str:
       return f"api.{self.base_url}"

APIConfig()
# APIConfig(base_url='pydantic.dev', api_url='api.pydantic.dev')

APIConfig(api_url = 'my.custom.relay')
# APIConfig(base_url='pydantic.dev', api_url='my.custom.relay')

Introduce a context-aware default_factory:
from pydantic import BaseModel, Field
from typing import Optional

class APIConfig(BaseModel):
    base_url: str = Field(default = 'pydantic.dev')
    api_url: str = Field(default_factory=lambda fields: f"api.{fields.base_url}")

APIConfig()
# APIConfig(base_url='pydantic.dev', api_url='api.pydantic.dev')

APIConfig(api_url = 'my.custom.relay')
# APIConfig(base_url='pydantic.dev', api_url='my.custom.relay')

Rationale
Validation and default value computation are separate concerns. The current solution feels like it's overloading the validation lifecycle. The workaround introduces unnecessary typing complexity, requiring fields that are never None to be marked as Optional.
We believe this functionality is core enough to warrant inclusion in pydantic itself, rather than being handled by a third-party library. It requires close integration with pydantic-core, which would be difficult to maintain externally.
We appreciate your consideration of this feature request and are open to further discussion or clarification if needed.
Affected Components

[ ] Compatibility between releases
[X] Data validation/parsing
[ ] Data serialization - .model_dump() and .model_dump_json()
[ ] JSON Schema
[ ] Dataclasses
[ ] Model Config
[ ] Field Types - adding or changing a particular data type
[ ] Function validation decorator
[ ] Generic Models
[ ] Other Model behaviour - model_construct(), pickling, private attributes, ORM mode
[ ] Plugins and integration with other tools - mypy, FastAPI, python-devtools, Hypothesis, VS Code, PyCharm, etc.

Would love a solution for the LangChain code base as well.  LangChain has hundreds of examples of client wrappers that end up initializing a client based on other parameters present.
The work-around currently are:
(1) duplication of defaults (example below)
(2) moving logic that should be pre initialization to be post initialization and removing the type annotation on the client
(3) accessing field defaults via cls
from pydantic import BaseModel, model_validator, config

class ChatModel(BaseModel):
    api_url: str = "http://some_url"  # <-- Default here
    client: Client

    @model_validator(mode='before')
    def pre_init(cls, values):
        api_url = values.get('api_url', 'http://some_url') # <-- Duplicated default
        values["client"] = Client(api_url)
        return values

A computed field doesn't seem like a good fit since the client can be stateful.
I'd love an API that would populate the values with defaults for any key that was not provided by the user. For example,
from pydantic import BaseModel, model_validator, config

class ChatModel(BaseModel):
    api_url: str = "http://some_url"  # <-- Default here
    client: Client

    @model_validator(mode='before-but-after-defaults')
    def pre_init(cls, values):
        api_url = values['api_url']
        values["client"] = Client(api_url)
        return values

Hi folks!
Thanks for the detailed feature requests here. I definitely think this is something worth implementing. I can take a closer look in the morning, but wanted to document an issue opened a while back that's quite similar: https://github.com/pydantic/pydantic/issues/8603

Here's one possible solution:

from functools import wraps
from typing import Dict, Any

from pydantic import BaseModel
from pydantic import model_validator

def pre_init(func: callable) -> callable:
    """Decorator to run a function before model initialization."""

    @model_validator(mode="before")
    @wraps(func)
    def wrapper(cls, values: Dict[str, Any]) -> Dict[str, Any]:
        """Decorator to run a function before model initialization."""
        # Insert default values
        for name, field_info in cls.model_fields.items():
            if name not in values:
                if field_info.default_factory is not None:
                    values[name] = field_info.default_factory()
                elif field_info.default is not None:
                    values[name] = field_info.default

        # Call the decorated function
        return func(cls, values)

    return wrapper

class Foo(BaseModel):
    x: int = 5
    y: int

    @pre_init
    def validator(cls, v):
        v["y"] = v["x"] + 1
        return v

def test_pre_init() -> None:
    foo = Foo()
    assert foo.y == 6
    foo = Foo(x=10)
    assert foo.y == 11

This helps to reduce the boiler plate to bring it closer to vanilla python classes as far as it comes to managing default values.

I quite like the proposed solution:
class APIConfig(BaseModel):
    base_url: str = Field(default = 'pydantic.dev')
    api_url: str = Field(default_factory=lambda fields: f"api.{fields.base_url}")

However it might not be possible to do so without any extra explicit specification that default_factory takes the fields, as it might not be possible to inspect lambda's to check if they take a fields (required) argument. I'll dive a bit deeper into this.

+1 For the context aware default factory or some variation of it.

I can take this one @sydney-runkle

@nix010 thanks for the interest in this issue. I was planning on working on it but I'll first detail the implementation I was thinking about and I'll talk with Sydney about it tomorrow.
I think we're leaning towards a context aware default factory, for the reason mentioned in https://github.com/pydantic/pydantic/issues/9789#issuecomment-2233632164. Turns out inspecting the passed default_factory callable is going to be possible. Ideally, the context argument would have been a ValidationInfo instance, as fields can already be accessed as of today. However, we also need to be able to pass this context argument when using model_construct, where no validation context is at play.
So I think the best way would be to add a new pydantic-core datastructure, only containing the already validated fields (equivalent to ValidationInfo.data). The instance will be passed to the default factory callable if and only if it has one required argument. This datastructure also needs to be created from the model_construct method, so that default factories can also be called from there.

@Viicos @aaazzam  So I think this could be a bit interesting problem here.
So should this even be possible and what do you see should be the output of this code ?
Like how

from pydantic import BaseModel, Field

def _default_1(model_field):
    print('1:', model_field.api_param)
    return 'default1'

def _default_2(model_field):
    print('2: ', model_field.api_url)
    return 'default1'

class APIConfig(BaseModel):
    base_url: str = Field(default='pydantic.dev')
    api_url: str = Field(default_factory=_default_1)
    api_param: str = Field(default_factory=_default_2)
    version: str = 'v1'

APIConfig()

Fields are validated in the order they are defined, as documented at the end of this section. It is up to the user to define fields in an order that is compatible with the usage of ValidationInfo.data (and the new feature we are adding here).
In your example, this is an unfortunate situation but I don't think we'll be able to support such use cases.
I would also suggest using a dict[str, Any] for the datastructure passed to the default factory functions. That way it will be consistent with the existing ValidationInfo.data (you might even be able to reuse it on the pydantic-core side).

@Viicos so

def _default_1(model_field: dict[str: Any]):
    return 'default2'

def _default_2():
    return 'default2'

class APIConfig(BaseModel):
    base_url: str = Field(default='pydantic.dev')
    api_url: str = Field(default_factory=_default_1)
    api_param: str = Field(default_factory=_default_2)
    version: str = 'v1'

APIConfig()

Not sure I completely understand your question, but basically we will need to inspect the default_factory argument to see if it contains a required argument or not. Depending on this, the dict of already validated fields should be passed when calling the default factory.

Ok! so both case will work. got it.

Hey @nix010,
Any idea when you might be able to pick back up here?

Personally, I am not a fan of having a context aware default factory as a feature.
What I think will happen is that bigger models will end up getting multiple fields requesting context aware default factories, and the models behavior will be difficult to understand.

What is the resolution order?
What is behavior when sub-classing?

Do dataclasses support context aware default factories? If not, is there a reason that they do not?
init is a good paradigm in python for dealing with more complex logic since it centralizes it in one place (at least if no inheritance is involved).
Pydantic has an existing @model_validator where I think it makes sense to squeeze this feature. It'll also make the @model_validator useful. At the moment, the cost of understanding what @model_validator and how it works outweighs any benefits one gets from it vs. just using __init__ and a super call.

@sydney-runkle  Sorry for the delay, will pick it up on the weekend tomorrow.

What is the resolution order?

It will be clearly documented, similarly to field validators taking an info argument:
class Model(BaseModel):
    a: int
    b: int

    @field_validator('a', mode='after')
    def val(self, val: int, info: ValidationInfo):
        info.data
        #> {} empty

What is behavior when sub-classing?

class A(BaseModel):
    a: int

class B(A):
    b: int

list(B.model_fields)
#> ['a', 'b']

If you dealing with multiple bases, then it gets trickier but I would discourage doing so in the first place anyway.

Do dataclasses support context aware default factories? If not, is there a reason that they do not?

They do not, it doesn't seem to have been requested on the cpython issue tracker. I do think it would be declined for the reason that you may not have access to every field (depending on the order as we mentioned). But this is a limitation we are willing to deal with.

Pydantic has an existing @model_validator where I think it makes sense to squeeze this feature

model_validator pydantic_post_init can indeed perfectly handle this, or field validators with in after mode for that matter. But they all require unsatisfying workarounds. The main issue imo is regarding type hints:
class Model(BaseModel):
    a: int
    b: int | None = None

    @model_validator(mode='after')
    def val(self):
        if self.b is None:
            self.b = self.a

Model(a=1).b
# guaranteed to be an int at runtime, but type checkers still believe it can be int | None

Happy to reconsider if there's a valid workaround supporting the use case above


$scope.$apply inside callback

I'm submitting a ...

[x] support request

Provide information & explanation
Trying to use angular-hotkeys, but in component controller hotkey callback scope variable/functions is not access-able

hotkeys.add({
    combo: 'q',
    description: 'Performs some action',
    callback: function(){
       $scope.$apply(function(){
            this.requestFieldFocus = true;  //   <-- Scope variable
       });
    }
  });

When i use $scope.$apply inside callback
I'm getting this error
Error: [$rootScope:inprog] $apply already in progress

Laravel & Angular version: 3.2.0

class ExampleComponentController{
    constructor(API, hotkeys, $scope){

        this.hotkeys = hotkeys;
        this.$scope = $scope;
    }

$onInit(){

    this.requestFieldFocus = false;

    this.hotkeys.bindTo(this.$scope)
        .add({
            combo: 'q',
            description: 'Performs some action',
            callback: () => {
                this.requestFieldFocus = true;
            }
        })
    }
}

export const ExampleComponent = {
    templateUrl: './views/app/components/example-component/example_component.component.html',
    controller: ExampleComponentController,
    controllerAs: 'vm',
    bindings: {}
}

Worked. Thank you !


Document Filters/Queries in API

There are a number of API endpoints that allow users to filter results based on a Filter/Query.
These are executed against the JSON documents or Label values to return a filtered set of resources.
We need documentation on how these function, where they can be applied, including examples

What's the scope here. Does this include both JSONPath query and SQL statement parameters ?

@johnaohara ^^

Fixed by https://github.com/Hyperfoil/Horreum/pull/1544


Running over Docker support

I've been trying to set up the dev environment over docker with not much success. I can build + start the dev website, but having it to be "connectable" has been the torn by my side.
Based on a docker image from Jekyll, I'm trying to make a similar build environment, where I have the files on my "open/host" system, and run a docker image to build and host the dev version.
That would be good if it worked because then I won't need to install any of the required libraries (node, yarn, npm), and it should work out of the box in any system, so would be a good addition to docz itself (as docker things is the "hit of the moment" in some niches).
In my set up, I am running in this environment:

Ubuntu bionic (18.04.2 LTS)
Docker 18.09.3 (from official /etc/apt/sources.list: deb [arch=amd64] https://downloads.docker.com/linux/ubuntu bionic stable)

Then I have it set up like this:
Files directory hierarchy summary:
project/build.sh
project/docker/Dockerfile
project/docker/install.sh
project/run.sh
project/site/doczrc.js
project/site/mymd.mdx

The two docker files as follows:
docker/Dockerfile
from node:latest

copy install.sh .
run chmod ug+x install.sh

arg uid
arg gid

run ./install.sh "${uid}" "${gid}"
run rm install.sh

WORKDIR /home/docz/site

expose 4000
expose 4001

docker/install.sh
#!/bin/bash
uid="${1}"
gid="${2}"

if [ -z "${gid}" -o -z "${uid}" ]; then
 echo "*** Error: gid/uid not provided."
 exit 1
fi

gpn="docz"
usn="docz"
if [ ! -z "$(egrep "^[^:]+:[^:]+:${gid}:" /etc/group)" ]; then
 # Don't rename group if it is not an unprivileged group
 if [ ${gid} -ge 1000 ]; then
  og="$(egrep "^[^:]+:[^:]+:${gid}:" /etc/group | cut -f1 -d:)"
  sed -Ei "s/^${og}:/docz:/" /etc/group
 else
  gpn="$(egrep "^[^:]+:[^:]+:${gid}:" /etc/group | cut -f1 -d:)"
 fi
else
 groupadd docz
fi

if [ ! -z "$(egrep "^[^:]+:[^:]+:${uid}:" /etc/passwd)" ]; then
 if [ ${gid} -ge 1000 ]; then
  ou="$(egrep "^[^:]+:[^:]+:${uid}:" /etc/passwd | cut -f1 -d:)"
  sed -Ei "s/^${ou}(:([^:]*:){4})[^:]+:/docz\1\/home\/docz:/" /etc/passwd
  if [ -e "/home/${ou}" ]; then
   mv /home/"${ou}" /home/docz
  else
   mkdir /home/docz
   chown docz:"${gpn}" /home/docz
  fi
 else
  mkdir /home/docz
  chown ${ou}:"${gpn}" /home/docz
  usn="${ou}"
 fi
else
 useradd -g "${gpn}" -s "/bin/bash" -m docz
fi
echo "User/group will be: ${usn}:${gpn}"

Then I have two auxiliary scripts to assemble the image and run the container:
/build.sh
#!/bin/bash
uid=$(id -u)
gid=$(id -g)

docker build -t docz docker --build-arg uid="${uid}" --build-arg gid="${gid}"

/run.sh
#!/bin/bash
docker run --rm -it -p 4000:4001 --mount type=bind,source="$(pwd)/site",destination=/home/docz/site --user docz docz:latest bash

and finally, the rc file:
site/doczrc.js
export default {
 files: '**/*.{md,mdx}',
 host: '::',
 port: '4000',
 websocketHost: '::',
 websocketPort: '4001'
}

As you can see above, I changed the website and websocket ports, and exported them as 4000 and 4001, respectively. If I don't fiddle with the websocket port, and just change/export the base server port, or if I bind the services to a specific IP (even if just <IP_ADDRESS>), I just get the connection reset on connect.
So I'm guessing the dev server environment is quite strict to which IP has been bound and becomes indecisive when we specify it to bind to any interface at the specified ports (either :: or <IP_ADDRESS> for ipv6, ipv4, resp), and then accepts connection from nothing.
Having the dev environment less restrictive (as I am assuming it is) would help not only running from the docker container, but also allowing a scenario like mine -- where I run a windows host, on an ubuntu virtual machine -then- docker container, to be able to access the dev website from outside, the windows host (or other computer in the same network, provided the virtual ubuntu machine is set up to bridge network with its host).
This scenario works on jekyll pointed above out of the box.

It seems the issue is related to this: https://stackoverflow.com/questions/26543787/docker-mule-server-curl-56-recv-failure-connection-reset-by-peer/26553296#26553296
In short, the devel website should support being bound to all interfaces (and not only to a single IP) in order to be exposed by docker. And that would be the problem, when I specify :: or <IP_ADDRESS>, the default website settings won't mesh up and cause the "upgrade required" page.


How to disconnect the field on the new GhostText?

Originally posted by @subnut in https://github.com/GhostText/GhostText/issues/172#issuecomment-735098823:

If a field is currently connected, then clicking the GhostText extension icon and selecting the connected field should disconnect it.

Yeah the current disconnection logic isn't super clear. In the previous version you would just click the button again and it would disconnect, but now it just looks for more fields.
So the solution I came up with is to right click the button 😬 or to just close the editor tab (which would make more sense, since you're done with it so you want to go back to the browser)
Does anyone have any suggestions for an intuitive way to disconnect the editor from the browser?

I think that the current method is sufficient...
but I think that it would be more intuitive if clicking on the extension caused us to enter Toggle mode instead of Register new element mode. i.e. Clicking on an already-enabled field should disable it, and clicking on a non-enabled field should enable it

I think that the current method is sufficient...
but I think that it would be more intuitive if clicking on the extension caused us to enter Toggle mode instead of Register new element mode. i.e. Clicking on an already-enabled field should disable it, and clicking on a non-enabled field should enable it

@fregante Ideas to disconnect:

How about adding another keyboard shortcut to disconnect? From a couple of months ago, I recall hitting the same (and only) shortcut shall toggle the text fields on and off. For now, hitting the shortcut for "Connect to GhostText" no longer disconnects. The downside is that now we need to remember another key-binding.

Personally, I would prefer having an option with the add-on that restores the old behavior. Maybe we can call it "toggle mode"? With one single shortcut, I enter and edit, and hit it again when done. I use GhostText mostly with Jupyter notebooks.

How about adding another keyboard shortcut to disconnect

I like that. Keyboard shortcuts are cheap, as long as I can register an action without setting a default shortcut (so it's up to the user to customize it)

2. I would prefer having an option with the add-on that restores the old behavior

I feel you, the simplicity was good. I wonder if that should be the regular behavior, while still allowing multiple fields by:

focus the field first, then activating again
activate via right click: https://github.com/fregante/GhostText/issues/131

Makes me wonder if I should go back to the drawing board and exclusively handle focused fields:

toggle the focused field on activation

That's it.
You must select the field first and then you activate GhostText. This should simplify the code too, because there's no more "Focus (another) field to activate" state.
An additional, simple behavior of the button in this case would be:

if nothing is focused, disconnect every field

There is definitely a great value in allowing multiple focus+connections and keeping the editor busy syncing up with all the input fields. Along with the gorgeous flow chart, I can see myself rearranging the tabs and panes opened in the editor to make use of the multiple simultaneous connections. Two concerns, though:

Practically, how stable are the connections? I managed to crash the Firefox add-on with vim-ghost, where I was clicking on multiple cells in a Jupyterlab notebook: each cell opened a new buffer (with a temp file name) in Vim but the connection quickly stumbled and crashed. With the Chrome extension, I managed to crash the extension by "double-clicking" on the same imput field on this Github page. (I should have pressed the "Connect to Ghost Text" shortcut in between the "double-clicking".
More practically, well: for those who can make good use of the multiple focus+connection pairs, do they really need to keep multiple pairs open at the same time? I am thinking in the context of Jupyter notebooks, which is popular among data scientists: if one opts to go for production, instead of editing multiple cells in a .ipynb notebook simultaneously with an editor, well, it is advised to write modularized code in .py scripts.

I suppose I can be terribly wrong with the second concern.

By the way, is there an archive of older versions for the Firefox add-on? I see myself doing one-off edits mostly, where I only need one input field to activate. When I am done editing, it helps to disconnect GhostText add-on to keep all things back to normal. By now, I may have talked myself to vote for an extra option for a "toggle mode": when activated, the "Connect to GhostText" shortcut does two things below,

When there is no connection, activate all the candidate fields and wait for a mouseclick
When there is an existing connection, disconnect.

If I may recall, is this how GhostText has been working for years?

Sorry but most of that is completely off-topic. Please open a new issue

Right-clicking is a bit awkward and doesn't work when the icon is in a menu on Safari (it used to be the same in Chrome, but they added hamburgers now)

I think GhostText should have a minimal UI to allow disconnection. This would appear sticky on the page:

The only concern is integrating it with the notifications. Maybe:

no "connected" notification: https://github.com/fregante/GhostText/blob/1b42d6ec4bedf4ed9188066ce3a88b4f9bdc8146/source/ghost-text.js#L126
add "Switch to your editor" message in the UI (+ "Hide this" button so that it won't appear anymore)

I'm not sure if this is a bug in the new extension, but the disconnect shortcut that I used no longer works. I just updated everything so that the plugin would work again. But the only way to disconnect is to close the file in the editor.
Actually, it seems to still work, but at least this time it took about a minute, maybe. I tried disconnecting with no success. Started writing this message and after some time the other tab got activated/focused because the field finally got disconnected.
I can close the file in the editor, but I'd prefer to use the disconnect shortcut in the browser.


(feat) Sepolia testnet support on Uniswap connector

Before submitting this PR, please make sure:
- [x] Your code builds clean without any errors or warnings
- [x] You are using approved title ("feat/", "fix/", "docs/", "refactor/")
A description of the changes proposed in the pull request:
Added support for the Ethereum Sepolia testnet on Uniswap connector. Also included an initial token list.

hummingbot/hummingbot#6951

The changes look good, but I think the dev should also change the tests from Goerli to Sepolia as part of this fix.

This PR needs more work. To complete this bounty, the dev should ensure that the Uniswap tests (which currently use Goerli) are modified to work on Sepolia using Sepolia test tokens. Currently, they are failing.
However, this may be difficult since there doesn't seem to be any tokens that trade on Uniswap Sepolia. It might make more sense to convert the unit tests to use Base.

I added Sepolia support in https://github.com/hummingbot/gateway/pull/329, but the tests haven't yet been updated to use it, so the bounty is still available for any dev who wants to update the Ethereum and Uniswap tests for Sepolia


docs - add a community post

Add blog post from REA Group about implementing Amundsen.
Summary of Changes
Update readme with a recent blog post from REA Group
Documentation
Updated README with Making finding the data easy for everyone
CheckList
Make sure you have checked all steps below to ensure a timely review.

[x] PR title addresses the issue accurately and concisely, including a title prefix.
[x] PR includes a summary of changes.
[x] My commits follow the guidelines from "How to write a good git commit message"

Thanks! could you add sign-off please?
https://github.com/amundsen-io/amundsen/pull/972/checks

hey @sterlins thanks for writing the post, but actually it is already added to the readme (https://github.com/amundsen-io/amundsen/blame/master/README.md#L203) . So I think we are good.


WIP / [charts/container-storage-modules] Global values for unified images

Is this a new chart?
Yes
What this PR does / why we need it:
Which issue(s) is this PR associated with:

KRV-12738

Special notes for your reviewer:
This is dependent from :

https://github.com/dell/helm-charts/pull/266
https://github.com/dell/helm-charts/pull/265
https://github.com/dell/helm-charts/pull/264
https://github.com/dell/helm-charts/pull/263
https://github.com/dell/helm-charts/pull/256

Checklist:
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[ ] Chart Version bumped
[ ] Variables are documented in the chart README.md
[x] Title of the PR starts with the chart name (e.g. [charts_dir/mychartname]) if applicable

will be re-implemented


non-blocking IO + SSE == something locking up

Just getting zig-zag-zoe SSE demo up to date with latest 0.12.dev changes
I noticed that running the SSE code against non-blocking master creates a condition that locks up the app, and requires a restart.
Works fine on latest blocking branch though.
Have not put in any effort to debug this yet, but just a heads up that I will be doing some exploration in this area soonish, and will try to put a patch together if I find anything

I know it doesn't practically make a difference, but are you able to tell if the app is actually frozen, or does it just refuse to accept new connections?
For your use-case, the non-blocking master might be more blocking. The application's handler (your events function), is executed on the worker, not in a separate thread. So if you have 2 httpz workers (default), and they are both looping in events, you won't be able to accept or process other requests.
That might sound dumb, but the main goal was to help provide protection against slow/misbehaving/malicious clients. In the blocking branch, someone can connect and very slowly feed it bytes, blocking that worker from accepting new connections. In `master, this isn't possible..the only thing that should be able to "block" is the application code. Not great, but more robust to attacks and control given to the application developers.
A mix of the two would be best: processing request/responses in a nonblocking manner, and using a threadpool to execute the application's handler once a complete request was parsed. But it seemed complicated to implement, largely because the connection has to be given back to the worker after the response is written (for keepalive).
The websocket integration solved this by (a) launching a new thread to handle the socket and (b) having http.zig disown the connection.
If this is the issue that you're running into, you should be able to do this in your code, something like:
// this is already a public method
fn events(....) !void {
  res.disown();
  var stream = try res.startEventStream();
  const thread = try std.Thread.spawn(.{}, eventsLoop, .{stream});
  thread.detach();
}

And if that works, and you agree that starting an eventStream in a new thread and removing the socket from the responsibility of http.zig makes sense, we could bake that into the API.  Something like:
fn events(....) !void {
  try res.startEventStream(functionToLaunchInANewThread);
}

fn functionToLaunchInANewThread(stream: std.net.Stream) void {
}

Probably with some arbitrary context you could pass.

That sounds about right, thanks.
Ah - disown() .. that's good. I was wondering how on earth you got websocket working with the non-blocking branch without rewriting the websocket IO, and completely missed the new disowned flag on this side.  That makes sense now !
So having applied that logic above - setup the SSE handler, then hand it off to its own thread. That works for me.  A quick test shows that the app works fine with the blocking branch now.
Might make sense to adjust the startEventStream() API as you mentioned.  The thread function definitely needs to take both a *Context, and a *Stream to be useful.   If the user doesnt need a context, it would be idiomatic to just pass .{} then
ie .. in my case Im using the "routes are methods of a struct" approach, so passing a *Self as the context does the job
fn events(self: *Self, req: *httpz.Request, res: *httpz.Response) !void {
    res.disown();
    const stream = try res.startEventStream();
    const thread = try std.Thread.spawn(.{}, eventsLoop, .{ self, stream });
    thread.detach();
}

fn eventsLoop(self: *Self, stream: anytype) !void {
 self.event_mutex.lock();
 defer self.even_mutex.unlock();
 while (true) { ... }
}

Was considering for a bit whether its worth supporting both approaches startEventStream() vs startEventStreamThread(fn) .. but that starts to get really confusing for the user.
If you only provided startEventStreamThread(), then it the weird case where the use wants blocking IO and manual thread control - they can still use startEventStreamThread(fn), and it will still work as expected.
ie
eventHandler in a manual thread
-> startEventStream(fn) spawns and detaches yet another thread
-> terminate this eventHandler thread
still works, and presents a single startEventStream()  API of all use cases

This is fixed as we discussed.
I'm going to revisit the threadpool. The documentation is vague (especially from kqueue), but it seems you can modify the notification list from different threads, which would make this easier than I had thought.

Master is now using a threadpool. The change is internal only.
I kept the latest changes to startEventStream. That is, it still takes a function and launches it in another thread, outside of the threadpool. I don't think there's a good threading/threadpool strategy for short-lived and long-lived requests.
I haven't observed a difference in performance, either way. But I believe this'll bring a performance gain and better latency for common cases where handlers are doing blocking work (e.g. hitting a database)
New top level configuration option:
.thread_pool = .{
    // Number threads. If you're handlers are doing a lot of i/o, a higher
    // number might provide better throughput
    .count = 4,

    // The maximum number of pending requests that the thread pool will accept
    // This applies back pressure to the above workers and ensures that, under load
    // pending requests get precedence over processing new requests.
    .backlog = 500,
},


feat: New home

This PR changes up the UI for the header and adds some smaller changes to the repo list.

Implements #27


hotspot can not be connected to if it is password protected

Hi Nick,
The library works great but when I set a configuration for a WPA_PSK hotspot, the hotspot is created but it can't be connected on the other device.
Of course this is not your code's problem since I'v been dealing with this with any other solution. it is like the hotspot is created with a problem!
any ideas how to solve this problem?
PS: I'm making hotspot on android 7.1 and the client is running 5.1. and this only happens when I create hotspot on android 7+ devices.

What happens when you try to connect to the 7.1 device?
How do other devices see it(encryption, name, ...)?

Seems like they can not obtain IP, and it keeps trying again and again. and when this happens... SSID, password everything is all right, it is even authenticated but can't get IP.

Can you try to compare the WIFI_AP_STATE of a manually activated hotspot and the programmatically activated one? You could also try to to activate manually, save the WIFI_AP_STATE, disable the AP and then enable it via API with the dumped WIFI_AP_STATE. Check if that works.

The "ipAssignment" field is "UNASSIGNED" in both ways.
This is the Manually Created Config:
Manually_Created_Config: * ID: -1 SSID: nBdRURzKwVNLnLGL t (7985) PROVIDER-NAME: null BSSID: null FQDN: null PRIO: 0 HIDDEN: false                                                                    NetworkSelectionStatus NETWORK_SELECTION_ENABLED                                                                    hasEverConnected: false                                                                    KeyMgmt: NONE Protocols:                                                                    AuthAlgorithms:                                                                    PairwiseCiphers:                                                                    GroupCiphers:                                                                    PSK:                                                                     sim_num                                                                    Enterprise config:                                                                   IP config:                                                                   IP assignment: UNASSIGNED                                                                   Proxy settings: UNASSIGNED                                                                    cuid=-1 luid=-1 lcuid=0 userApproved=USER_UNSPECIFIED noInternetAccessExpected=false isCarrierNetwork=false roamingFailureBlackListTimeMilli: 1000                                                                   triggeredLow: 0 triggeredBad: 0 triggeredNotHigh: 0                                                                   ticksLow: 0 ticksBad: 0 ticksNotHigh: 0                                                                   triggeredJoin: 0
and this is the Programmatically created Config:
Programmatically_Created_Config: * ID: -1 SSID: nBdRURzKwVNLnLGL t (7985) PROVIDER-NAME: null BSSID: null FQDN: null PRIO: 0 HIDDEN: false                                                                   NetworkSelectionStatus NETWORK_SELECTION_ENABLED                                                                   hasEverConnected: false                                                                   KeyMgmt: NONE Protocols:                                                                   AuthAlgorithms:                                                                   PairwiseCiphers:                                                                   GroupCiphers:                                                                   PSK:                                                                     sim_num                                                                    Enterprise config:                                                                   IP config:                                                                   IP assignment: UNASSIGNED                                                                   Proxy settings: UNASSIGNED                                                                   cuid=-1 luid=-1 lcuid=0 userApproved=USER_UNSPECIFIED noInternetAccessExpected=false isCarrierNetwork=false roamingFailureBlackListTimeMilli: 1000                                                                   triggeredLow: 0 triggeredBad: 0 triggeredNotHigh: 0                                                                   ticksLow: 0 ticksBad: 0 ticksNotHigh: 0                                                                   triggeredJoin: 0
I can't find any differences and it is certainly DHCP related. the thing is that apps like "Shareit" work fine and create hotspot and the client can connect easily while the code posted here or the ones I have tried are not working and it is not protected hotspot specific, the open ones also face the problem and get stuck on "Obtaining IP".
Any Ideas?

Hi Nick,
I also faced the same issues on Android 7.1 device where I am able to configure the hotspot but the client is not able to connect. It just stuck at "obtaining Ip address....". Any solution for this. I tried to set the hotspot manually from settings and then try to open AP and it's creating the hotspot but client is not able to obtain the IP address

Hi @vikoo
I have the same issue, do you solve the problem? I tried create AP configuration into the code but the problem continuous.


Add config option to delete configuration file

This will be useful when Islandora Bagger is used within scripts or by the queue processor.

Added in dd559df0a72c3992a3f071429282bc3e90e119fe.


Spike: Research an appropriate approach for implementing a dark mode color-scheme into our component library

Summary
Research various approaches and patterns for smoothly implementing a new color-scheme into our component library that would enable dark mode support.
💬 Description
Typically when implementing dark mode, colours tokens that are used in the overall styles come in pairs (light and dark variant), E.G: light and dark action colour. When we eventually have these pairs of colours, we will need to determine the most efficient way of adding them to our component styles, and implementing the switching of color-schemes between the two modes for every component. Since this approach will involve a huge amount of new style tokens being added, we will need a pattern that will ideally reduce code duplication and be easy for us to maintain for our current library, as well as applying to future components.
💰 Use value
Determine the ideal approach early will reduce development time for the actual implementation, and create less technical debt since we will have a solution that hopefully won't require much adjustment. Will also allow us to better document to users how they can take advantage of the future dark mode feature in their applications when it is released.
📝 Acceptance Criteria
Given that we have appropriate light and dark colour pairs
When a component needs to switch between the two color-schemes
Then the way it will switch between the two will be clear and concise
Given that we have a new component to build
When a developer needs to implement dark mode using the new colour pairs
Then the method of implementing them will be the same as current components, creating a clear pattern for us to adopt
Additional info
Will likely need some consideration for our guidance site. Whatever way we implement the dark mode colours, how will the guidance site be affected by them.
Some resources to use as a starting point, giving some context around implementing dark mode:

https://css-tricks.com/a-complete-guide-to-dark-mode-on-the-web
https://dev.to/alexeagleson/how-to-create-a-dark-mode-component-in-react-3ibg

Deprecated from current Dark Mode work.


UNABLE TO CONNECT

Error while connecting to meross account, btw from the meross app works fine.
int([x]) -> integerint(x, base=10) -> integerConvert a number or string to an integer, or return 0 if no argumentsare given.  If x is a number, return x.__int__().  For floating pointnumbers, this truncates towards zero.If x is not a number or if base is given, then x must be a string,bytes, or bytearray instance representing an integer literal in thegiven base.  The literal can be preceded by '+' or '-' and be surroundedby whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.Base 0 means to interpret the base from the string as an integer literal.>>> int('0b100', base=0)4

Hello @TheMastro-11,
It is likely the same kind of issue as in #372,
This was fixed in some of the latest pre-release versions 'Moonlight' and it is maybe related tou your account being configured for MFA.
The cryptic error you see might be due to other reasons (the message you get is just a bug in meross_lan when trying to manage a cloud api error response)
So to fix both the bug in error handling and the full MFA support, you'd have to try the latest beta (which should be reasonably stable, at least I still haven't found any particular issue in there)
If you're already on latest beta then we might have another issue, please report the actual version so I can review that.

Yes It was the problem, anyway unfortunately my device doesn't work

Hello @TheMastro-11,
I'm closing this to cleanup of bit of issues, but if you still have problems with the device feel free to open e specific issue for the matter (or look for similar opened issues).
Thank you


add benchmark tests for MPIN Auth

Coverage increased (+0.1%) to 89.16% when pulling 6db5c016a8860da910b60d6247269af33207597e on add-bm-tests into 2d8d38d9e95d6e8deff06cd41a5d3059c9b393fa on master.


clear_output not supported in notebook

clear_output is used to do in-place updates of information, here's code for a simple example:
from time import sleep
from IPython.display import clear_output

n, go = 0, True
while go:
    try:
        clear_output(wait=True)
        print("n=", n)
        n += 1
        sleep(0.3)
    except KeyboardInterrupt:
        go = False
        print("bye!")

The current nb provides this behavior:

whereas in JLab we aren't getting the in-place clearing of old output:

Dev note: we need to add a check to the cell execute() method using KernelMessage.isClearOutputMsg() in the iopub handler.

Confirming fix works, thanks!


Remove unused or obsolete code

This helps me figure out what is and is not needed for Genie

I'm 100% sure we will :slightly_frowning_face:


Codereorg: Part 5, state

This PR reworks the state management in headscale, instead of relying on timestamps and frequent checking, and sending the entire world every time, we now send incremental updates based on the change that has happened.
Closes #1390
Fixes #1461

All tests pass locally, it is hard to know if Github actions is reliable or not.

My observation so far is that tests including a larger amount of nodes are more unreliable, particularly with excess network requirements:

PingAll (the base of the typically failed ones)
Taildrop

Hello there,
Thank you for your hard work on headscale!
I'm start testing this changes, and found bug with "on-the-fly" state update:

Start headscale.
Connect client (macos): /Applications/Tailscale.app/Contents/MacOS/Tailscale up --login-server=https://headscale-test.example.com/
Connect headscale-test-1 (linux): tailscale login --login-server=https://headscale-test.example.com/ --advertise-exit-node
Connect headscale-test-ams3-1 and headscale-test-ams3-2 (linux): tailscale up --login-server=https://headscale-test.example.com/ --advertise-routes=<IP_ADDRESS>/8 --ssh
Approve the routes and verify:

ID | Machine               | Prefix     | Advertised | Enabled | Primary
1  | headscale-test-1      | <IP_ADDRESS>/0  | true       | true    | -
2  | headscale-test-1      | ::/0       | true       | true    | -
4  | headscale-test-ams3-2 | <IP_ADDRESS>/8 | true       | true    | true
3  | headscale-test-ams3-1 | <IP_ADDRESS>/8 | true       | true    | false

Try to ping:

/Applications/Tailscale.app/Contents/MacOS/Tailscale ping <IP_ADDRESS>
2023/09/15 23:06:47 no matching peer

➜  ~ /Applications/Tailscale.app/Contents/MacOS/Tailscale status
<IP_ADDRESS>      node1   user.example.com macOS   -
<IP_ADDRESS>      headscale-test-1     user.example.com linux   -
<IP_ADDRESS>      headscale-test-ams3-1..example.com user.example.com linux   -
<IP_ADDRESS>      headscale-test-ams3-2..example.com user.example.com linux   -

The exit-node on headscale-test-1 does not appear, and the ping to <IP_ADDRESS> does not work (though it should through headscale-test-ams3-1).
The problem is resolved by restarting headscale, but the status does not update until the restart (I wait ~10 min until restart headscale).

It seems there is also an issue with updating the "last-seen"/"online" status. I wanted to test the subnet-router failover, but as soon as I executed tailscale down on headscale-test-ams3-2, I expected the traffic to switch through headscale-test-ams3-1. However, headscale-test-ams3-1 was unexpectedly marked as "offline":
root@headscale-f7489674b-4j5jf:/# date
Fri Sep 15 21:30:43 UTC 2023
root@headscale-f7489674b-4j5jf:/# headscale nodes list
ID | Hostname              | Name                  | MachineKey | NodeKey | User                 | IP addresses                  | Ephemeral | Last seen           | Expiration          | Online  | Expired
....
3  | headscale-test-ams3-1 | headscale-test-ams3-1 | [K4v5r]    | [LkHjz] | user.example.com | <IP_ADDRESS>, fd7a:115c:a1e0::3 | false     | 2023-09-15 21:14:13 | 2023-09-16 16:58:33 | offline | no
....
root@headscale-f7489674b-4j5jf:/#

Although there are no network connectivity issues, tailscale is working, and headscale is accessible via http:
root@headscale-test-ams3-1:~# systemctl status tailscaled.service
● tailscaled.service - Tailscale node agent
     Loaded: loaded (/lib/systemd/system/tailscaled.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-09-15 20:57:34 UTC; 32min ago
       Docs: https://tailscale.com/kb/
    Process: 8483 ExecStartPre=/usr/sbin/tailscaled --cleanup (code=exited, status=0/SUCCESS)
   Main PID: 8511 (tailscaled)
     Status: "Connected; user.example.com; <IP_ADDRESS> fd7a:115c:a1e0::3"
      Tasks: 8 (limit: 1116)
     Memory: 39.5M
        CPU: 1.760s
     CGroup: /system.slice/tailscaled.service
             └─8511 /usr/sbin/tailscaled --state=/var/lib/tailscale/tailscaled.state --socket=/run/tailscale/tailscaled.sock --port=41641
root@headscale-test-ams3-1:~# curl -I https://headscale-test.example.com/api/v1/machine
HTTP/2 401
date: Fri, 15 Sep 2023 21:30:33 GMT
content-type: text/plain; charset=utf-8
content-length: 12
strict-transport-security: max-age=15724800; includeSubDomains

root@headscale-test-ams3-1:~#

@vsychov Thank you, I appreciate this a lot. I think what I will do since this PR is so messy already is to get it in, and then it would be great if you could create two issues for me on this (and other things you find), and then we make them blocking before alpha.
I would also appreciate your continued testing of this work.

Approved!

@vsychov did you try the tests with the route/exit node issue including the last commit? Would you mind opening an issue for that one?
I'll have a look at the online status now.

@kradalby , I'll try my tests on current main revision, and if that still reproducible, I'll create issues for that.

Problems still appear, I created issue: #1561


blank path should not be read

Codecov Report

Merging #8883 (a17ccd9) into dev (3bbca9d) will decrease coverage by 0.01%.
The diff coverage is n/a.

:exclamation: Current head a17ccd9 differs from pull request most recent head 8df887c. Consider uploading reports for the commit 8df887c to get more accurate results

@@             Coverage Diff              @@
##                dev    #8883      +/-   ##
============================================
- Coverage     45.30%   45.29%   -0.02%
+ Complexity     4083     4081       -2
============================================
  Files           702      702
  Lines         27177    27177
  Branches       2907     2907
============================================
- Hits          12313    12309       -4
- Misses        13704    13706       +2
- Partials       1160     1162       +2

Impacted Files
Coverage Δ

...e/dolphinscheduler/remote/NettyRemotingClient.java
50.70% <0.00%> (-2.82%)
:arrow_down:

Continue to review full report at Codecov.

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

@zhuangchong  please help me review again.


error

The command '/bin/sh -c add-apt-repository ppa:ondrej/php5-5.6' returned a non-zero code: 1
--
Cannot add PPA: 'ppa:~ondrej/ubuntu/php5-5.6'.
The user named '~ondrej' has no PPA named 'ubuntu/php5-5.6'

i have the same problem can some one please help? im on a mac

Basically PHP5.6 is not supported anymore, so I guess the owner of this image has removed it from the hub.
The reason I am not fixing it, is because the WhatsApp API is no longer being developed and therefore, I don't see any point of continuing supporting this solution.
If you want, you may create another image with PHP5.6 and just copy paste the rest of the details from the Dockerfile I created.


Cannot transfer 'geometry' values

Hello,
Thanks for excellent tool for migration data between databases.
What's about data transfer with "geometry" type?
I try to migrate the spatial table from MSSQL to PostgreQSL (Postgis).
The result: In the migrated table - in geometry field - are non-geometry values: 'System.Byte[]' geometry value has been loss. GEOMETRY type column from MSSQL was migrated to PostgreSQL as TEXT type.
The proposals:

by the 'Conversion' definition will be possible to define raw SQL -> geometry can be imported as text - WKT - [source.geometry].STAsText()

Best regards
Stano

Thank you for providing valuable information to help improving OmniDB.
Unfortunately OmniDB still doesn't support spatial data. At this moment, any unknown types are default to TEXT (or equivalent) on the target RDBMS system.
We will investigate to implement spatial data support in OmniDB and I'll let you know of any progress we have.
Thanks again.

Please, do it


How much GPU memory to use for 1024*1024?

How much GPU memory to use for 1024*1024?

bumping this- i have the same question

@wodsoe i just tried it out; not sure exactly but more than 12gb it seems.

@robbiebarrat Thank you!So it doesn't work on 1080ti or 2080ti.

@wodsoe, @robbiebarrat.
That is a little unlikely. Do you mean that on your GPU, even a batch size of 1 doesn't fit?


(bugfix/kubernetes/rbac):  Add "update" to secret resource for istio-ca

Fixes #328
This is currently in istio-rbac-alpha.yaml just needs to be updated in istio-rbac-beta.yaml

closing in favor of #333


CopyExampleGen component

In cases where data does not need to be shuffled, this component will avoid using a Beam job and instead do a simple copy of the data to create a dataset artifact. This will need to be a completely custom ExampleGen and not extend BaseExampleGen in order to implement this behavior.

Does the data need to be pre-split, or will this component also do the split?
Should splitting be optional?

@rclough @1025KB

I will take lead on this (if any one wants to join, feel free to). Working on project proposal and will bring to SIG TFX-Addons bi-weeklys

Hey Ryan, thanks for the helpful input and suggestions as we try and develop this project proposal. I have a question in regards to your conclusion, the ideal component would allow the user to:

"Pass in a dict mapping of split_name: uri" - does this imply the component should allow for the passing of multiple split mappings from different sources? For example, a split_train: uri from example folder A and a split_eval: uri from example folder B?
"Pass an ExternalArtifact" - what is the definition of an ExternalArtifact? Could this be a an entire dataset artifact with it's respective split_name: uri coming from a separate cloud provider?

I think these questions both kind of highlight a need for clarity of input that I'd glossed over-

Should the component expect URIs, or some form of artifact?
What form should the URIs/Artifacts take?

I don't aim to answer these conclusively but to bring up some considerations.
I would argue that it is more helpful to avoid expecting an Examples artifact as input - that's typically the output of an ExampleGen component. In the case of many at my company, half the need for a copying component is because the inputs are not an Examples artifact (ie don't have splits), so validating  the inputs resemble that structure would not be a good idea. The alternative then is either the component takes raw URIs, or there's an artifact to represent those URIs that can be used with an Importer.
My mistake on mentioning ExternalArtifact - I hadn't realized it was actually an internal invention. We use it as a generic artifact type for items that are coming from outside of TFX. They are often used for inputs to custom components (where the component/authors have some understanding of how its expected to be used), or in our custom ExampleGen components that involve taking various URIs for data that haven't been formatted for TFX.
So ultimately my thought was a dict input like this example:
{
    "train": "gs://some/path/to/train_data"
    "eval": "gs://golden_eval_data"
    "extra_holdout": "gs://somewhere/else/data"
}

Or alternatively where those URIs are actually artifacts. The component would loop through and create a split for each key, and copy the data from the value URI to os.path.join(output_uri, split_name_key)

Lastly, regarding other cloud providers, that's actually a really good question, and is probably part of a tradeoff that must be made when choosing the copy implementation. I'm sure it would be great if many common cloud APIs were supported, but you probably need to draw a reasonable scope. In my case, we only use local directories  in GCS, but I'm not sure how much is realistic to support, multiplied with the performance considerations (ie, something like gfile might be more generic and support s3 etc, but may not perform as well as gsutil for gcs)


feat: bridge l2 to proxy and move deployment to nile + cli

since this is internal branch, does it need a review or can we merge?


Zend Server SDK is failing on Windows

Using Zend Server SDK as a capability which is implicitly called in all of the Task plugins, one gets an error saying "Failing task since return code of ["c:\Progr ...] was -1 while expected 0"
This is probably a permission error, but I was not able to find a setting to make it work.
Tested on Windows Server 2008 64 Bit

Hello!
I have this bug too.
I found problem, in timeout. His 60 seconds, if build of zend package need more time then build will be failed.


Added dark mode effects on the cards on the home page .

Description
I have added proper light and dark mode features on the cards on the home page .
Related Issues
[Cite any related issue(s) this pull request addresses. If none, simply state “None”]

Closes #1299

Type of PR

[x] Bug fix
[x] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
Before
https://github.com/user-attachments/assets/fd2a396e-4541-4fe3-9d70-5824a300c9f4
After
https://github.com/user-attachments/assets/faeee1af-e657-4300-9f06-6a16a029b577
Checklist

[x] I have gone through the contributing guide
[x] I have updated my branch and synced it with project main branch before making this PR
[x] I have performed a self-review of my code
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[x] I have commented my code, particularly in hard-to-understand areas.

Additional context:
[Include any additional information or context that might be helpful for reviewers.]

@sunny0625 have a look .

@sunny0625 please review this

@sunny0625 please review and merge


add/replace images and update code to make task repeat optional

This PR requires database changes and remapping of button-bar.
The db changes are to add task_repeatable_by_subject=False for MOT and DSC.
The button-bar should remap the red button to "," instead of "r"

it sounds like it defaults to 96DPI, unless the registry keys were already
altered on that system. I was going to see if I could determine the
resolution of the STM window.
Is there a way to see what the resolution is in pixels on Staging? I don't
think it's spelled out in Powerpoint. I was hoping there was a way to see
the results without committing a version to the PR so github would tell us.
On Mon, Aug 14, 2023 at 2:06 PM Brandon Oubre @.***>
wrote:

@.**** commented on this pull request.
On neurobooth_os/tasks/assets/inst_end_task.png
https://github.com/neurobooth/neurobooth-os/pull/301#discussion_r1293804123
:
Is it possible to load up the powerpoint on staging STM and see if it
gives a different resolution? (As the screen size on STM should match.) If
powerpoint is not installed on STM, then maybe we can save as a PDF or
vector format and save with proper scaling from there? Let me know if
you're having a lot of issues with this and I can take a shot.
—
Reply to this email directly, view it on GitHub
https://github.com/neurobooth/neurobooth-os/pull/301#discussion_r1293804123,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA2FPAV6AVSS7FKZOC3ZRDTXVJSJNANCNFSM6AAAAAA3P3Q43E
.
You are receiving this because you authored the thread.Message ID:
@.***>

Is there a way to see what the resolution is in pixels on Staging?

I think the staging screen should be the correct size. Once you export the image, you should be able to see the size in the "Details" tab of the file properies.

Is there a way to see what the resolution is in pixels on Staging?

I think the staging screen should be the correct size. Once you export the image, you should be able to see the size in the "Details" tab of the file properties.

I tried changing my resolution to match STM (1920 by 1080), but it had no effect on the resolution of the export. I will try doing the registry change on my machine next. The PPT running on STM isn't registered with MS yet

Revised advance-repeat handling to match review comments.
Deleted unused neurobooth image files.


Some Question regarding Twilio Voice SDK.?

I am bit confused to run the voice calling app in android studio by following there documentation but the way your explaining its very easy to understand.
Thanks for this Question is I am trying to manage this but on this point sharing a screenshot getting stuck Jut asking either backend work require e.g PHP or NodeJS Server End work

Please Let me know how I can distinguish either this key is API_KEY and this key is API_KEY_SECRET

Because when creating a key there is two Option Standard or Main.

Based on these how I am able to know which one is API_KEY and which one is API_KEY_SECRET.


fix: mTLS ambassador runs as non-root

Changelog: None
Ticket: None
Signed-off-by: Fabio Tranchitella<EMAIL_ADDRESS>

Thank you @tranchitella :+1:


Add tsconfig and types so editor can detect basic type errors

CI type check would find hundreds of remaining errors :D

are they false positives?

Some are false positives; many are because types are missing; and a lot are bad but ignorable.
Without CI and without making this part of build process will keep them in editor only for now


Telegram Notification doesnt not work with version v0.11.14

With the latest update to last version
Laravel vv10.9.0
PHP v8.1.18
Filament v2.17.36
Speedtest Tracker v0.11.14

the notification via Telgram no longer works.  However if I go into the settings and do "test notification" the notification is correctly delivered.  I set the  -e TELEGRAM_BOT_TOKEN=xxxxxxxxxxxxxxxx  in my docker run.
With the previous version everything worked fine
Thanks

duplicate of this issue, Can be closed when resolved.
https://github.com/alexjustesen/speedtest-tracker/issues/582
Thanks

Insert :urg: meme

@alexjustesen
Probably not a Telegram notifications setup problem, because if I press the "Test notification" in setting page, the notification is delivered successfully. I think it's an error of trigger that activates the notifications.
Thanks


Include Class Imports and custom annoations

I could not get this to work wit the maven plugin.  The class always remained as a string in the built annotation.  Enums worked fine.
Example with Class Object:
Since GraphQL parser does not have built-in support for class objects, a class is represented as a string ending with ".class" in the schema
type Person @annotate(name: "ValidPerson", type: "validator", inputs: {groups: "BasicValidation.class"}) {
name: String @annotate(name: "com.test.anotherValidator.ValidName")
}

Hi @markwimpory not sure I follow. DGS codegen is schema first - it generates java/kotlin classes for graphql schema files in your project. It sounds like your looking for a code first approach?


Add React 17 to peerDependencies

See React 17 release blog post: https://reactjs.org/blog/2020/10/20/react-v17.html
I upgraded my project to this version and did not encounter any issues with react-yandex-maps after that. Adding React 17 to peerDependencies will help avoid this error in yarn check:
error<EMAIL_ADDRESS>|| ^15.x || ^16.x" doesn't satisfy found match of<EMAIL_ADDRESS>

@mmarkelov WDYT of releasing this little patch?

@kachkaev that's OK for me. But unfortunately I don't have permissions to do it.
@gribnoysup can we merge some little fixes and publish new version?

Released in 4.6.0


FIX: Clean up directory with blocks

Description of the Change

Introduces test_helper_fns module with a function to cleanup directory with blocks
Calls this function in all of the tests that use default block directory

Benefits
Fixes bug mentioned in the issue RH2-22. The bug was that the tests might fail if there was already a folder with blocks, which contained blocks with different structure from previous versions of iroha2.

Possible Drawbacks

Usage Examples or Tests [optional]

Alternate Designs [optional]
Right now we have to call cleanup_default_block_dir function manually in a test that uses disk. If we will have many such tests it might be useful to consider task runner like cargo-make to run the cleanup task before actual testing.

Signed-off-by: Egor Ivkov<EMAIL_ADDRESS>

May we clean up also after tests run to also do not have /blocks folder in workdir after cargo test?

I can add a cleanup right after fast_init, but it will not guarantee that the folder will be removed in case of test failure. The only way to guarantee that, is to use task runner like cargo-make.
Which way do you propose to approach it?

Maybe we really should use make to do not write this every time - can you make it? (Make a make - lol)

Maybe we really should use make to do not write this every time - can you make it? (Make a make - lol)

Okay, I will proceed with cargo-make then.


proxy.node.hostname_FQ can'

Hello,
I want Customize the servername on via tag
default is Via:http/1.0 localhost.localdomain
CONFIG proxy.node.hostname_FQ TEST.S
CONFIG proxy.node.hostname STRING TEST
I add these line to records but server via still output is default is Via:http/1.0 localhost.localdomain
Thanks

You can customize Via header value with these:

proxy.config.http.insert_response_via_str
proxy.config.http.response_via_str

https://docs.trafficserver.apache.org/en/7.1.x/admin-guide/files/records.config.en.html
Issues are for issues. Please use mailing list<EMAIL_ADDRESS>for this kind of questions next time.

Just one more note. You can try to change this proxy.config.proxy_name as well. Perhaps that's actually what you want.

thanks @maskit these only changed Via:http/1.1 localhost.localdomain (CDN [uScMs f p eN:t cCMi p sS])
can't change localhost.localdomain

@maskit thank i'll use mailing list

@shukitchan thanks CONFIG proxy.config.proxy_name STRING  is worked


Action "_SWS_AWTRIMCROP" (Trim selected items to selection or cursor (crop)) changes item GUID

If the action is run trimming the left edge of item(s), then affected items get a new GUID. This could pose a problem if the action is used in a script.

I can confirm this but I believe it's a Reaper issue rather than an SWS issue as this action just delegates to native actions Item: Trim items left of cursor , Item: Trim items right of cursor (also mentioned by @cfillion here) where the same behaviour of changing item's/take's GUID can be observed.
I've posted about it here .


Missing required field in the API's response

Hello,
I found out that for some requests to the API endpoint: https://api.osv.dev/v1/vulns/<OSV_id>, the field summary is missing inside the response, even though it is marked as required according to documentation: https://osv.dev/docs/#tag/api/operation/OSV_GetVulnById
Have a look at response for: https://api.osv.dev/v1/vulns/PYSEC-2021-112

Hi!
This is an issue with our documentation. The summary field is optional. We'll get this fixed!

Closing in favour of https://github.com/google/osv.dev/issues/573


Track and show bound services

Fix #1450
Fix #1449 (remainder: unwrap (catalog)service responses to match app, namespaces, etc. API.
Replicate machinery tracking bound configurations to track bound services.

[x] tracking secret and functions for manipulation and access
[x] tests
[x] swagger (extended service information structure)
[x] extended service list
[x] extended service show

Codecov Report

Merging #1478 (dfa45cc) into main (da83ced) will decrease coverage by 0.15%.
The diff coverage is 0.00%.

@@           Coverage Diff            @@
##            main   #1478      +/-   ##
========================================
- Coverage   9.02%   8.87%   -0.16%
========================================
  Files         79      80       +1
  Lines       7647    7788     +141
========================================
+ Hits         690     691       +1
- Misses      6912    7052     +140
  Partials      45      45

Flag
Coverage Δ

unittests
8.87% <0.00%> (-0.16%)
:arrow_down:

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

Impacted Files
Coverage Δ

internal/api/v1/router.go
36.66% <ø> (ø)

internal/application/configurations.go
0.00% <0.00%> (ø)

internal/application/services.go
0.00% <0.00%> (ø)

internal/cli/usercmd/service.go
0.00% <0.00%> (ø)

pkg/api/core/v1/client/services.go
0.00% <0.00%> (ø)

internal/cli/usercmd/client.go
61.90% <0.00%> (ø)

internal/api/v1/application/logs.go
11.48% <0.00%> (+0.60%)
:arrow_up:

Continue to review full report at Codecov.

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

@andreas-kupries I've had a scroll through and it looks like the remaining items from the referenced issues are resolved. Can't comment on the actual code changes though

This PR looks ok but there is a lack of new tests. There is new functionality which needs to be tested. Maybe we can modify some existing tests to check if the additional information is there (apps using services, bounds apps etc).


Linuxbrew homepage update readme

Linuxbrew is no longer in http://linuxbrew.sh/ but has been merged into https://brew.sh/ . I'll create a PR regarding the change in readme

I believe PR #340 fixed this.


Consider allowing email hints even when smartlock disabled

We should consider allowing email autofill in the email flow even when smartlock is disabled for actual retrieval/storage of credentials.
Pros:

We know this increases conversion rates for email flows significantly
Does not really hurt development

Cons:

The email hint selector looks like the Google account picker and may be confusing

@samtstern I'm in strong favor of doing this, but there's another con you mentioned before: still using smart lock when the developer explicitly said we shouldn't breaks the API contact. However, this use of smart lock isn't related to saving passwords so I think it should be fine.

Yeah @SUPERCILEX we'd likely have to change the name of the flag

@samtstern Hmmmm, this would cause problems for stuff like #200. 😢


Regain Some Screen Real Estate

Now that we have more info on the page, we should look into optimizing the shown info to get more screen real estate:

The badges: some of them might not be as useful. The 90-day commits badge might be misleading, since some modules now could be "finished" and not require commits. The panda badge might not need to be there.
The travis badges could be shrunk down by removing the redundant "build" word.

This was the discussion on IRC: http://irclog.perlgeek.de/perl6/2015-11-03#i_11475494

:+1:

Fixed in https://github.com/perl6/modules.perl6.org/commit/3c0f2c5241cb8fc8d7b8bdb30e521a06703777fa and https://github.com/perl6/modules.perl6.org/commit/f02f9e06687f3deb063485e3b9481b62711ed710
Please reopen if anything is missing.


Travis OSX should handle curl failure

@facebook-github-bot import

Thanks for importing. If you are an FB employee go to Phabricator to review.


Unlock Rack gem version

I can see in https://github.com/jondot/sneakers/commit/591d2131b3b9d099e5b4401a0921335886ed9a2f that rack gem version was locked.
There is already 13.x of rack gem which is not allowed by this restriction.
Is there any reason to lock it or can it be relaxed?

Related to #422

The commit closing #422  seems to miss the development dependency: https://github.com/jondot/sneakers/commit/415f283f7e634601528105323d0dac9663c5786d
gem.add_development_dependency 'rake', '~> 12.3'
why is it a development and runtime dependency?

The commit closing #422 seems to miss the development dependency: 415f283
gem.add_development_dependency 'rake', '~> 12.3'
why is it a development and runtime dependency?

That's very nicely spotted. I have no clue why would it be on both dependencies...


Add task for building LESS stylesheets

From src/less to dist/css
Also in example
Should be optional based on config rules

Closed in the recent release, minification could be added which is in progress w/ #5


[catcollar] Set Source Address in OperationResult for pop()

Description
This PR fixes https://github.com/demikernel/demikernel/issues/148.
Summary of Changes

Changed IoUring to rely on io_uring_prep_recvmsg() and thus be able to get the socket address of the source.
Changed lookip logic in IoUring to use the msghdr rather than the buffer address
Changed futures accordinly

This looks okay to me, but I'm not familiar with io_uring.  Maybe @anandbonde would like to take a look?


 The only potential point of confusion is:

Finally, voxels from the resulting edge voxel mask intersecting with the subject's anatomy mask were excluded to ensure that the final edge voxel mask did not include voxel inside the brain incorrectly classified as “edge voxels.”

My interpretation is that they initially use the functional mask to produce an initial edge mask, and subsequently use the coregistration to transform the anatomical mask into the same space. They then refine the initial edge mask by removing any voxels in the transformed anatomical mask.
I only skimmed the paper, but I'm surprised by how high the FD-DVARS correlations are after GSR. The results on the whole are promising, and it'd be great to see if they can be replicated in a larger dataset with more rigorous benchmarks. In any case, I think this enhancement would be warranted given the relative ease of implementation.

My interpretation is that they initially use the functional mask to produce an initial edge mask, and subsequently use the coregistration to transform the anatomical mask into the same space. They then refine the initial edge mask by removing any voxels in the transformed anatomical mask.

I take the same from that paragraph. We can easily do this, as both masks are available. I would imagine we want to use the BOLD mask for when there are susceptibility distortions, and the anatomical mask for the reasons above. Instead of subtracting, starting from the union of those and then doing the dilation and subtraction should yield more stable results.


Allow to install and remove operator via scripts

Why are these changes needed?
It allows to install and uninstall Kuberay operator using scripts. It will be useful for environments where it is not possible to use Helm.

[ ] I've made sure the tests are passing.
Testing Strategy

[ ] Unit tests
[ ] Manual tests
[ ] This PR is not tested :(

FYI: @sutaakar

Rerun the flaky tests. I will merge this PR after they pass.

@jiripetrlik Could you fix the CI errors?

@kevin85421
It should be fixed now. I still see some CI errors, but I think it is not related to this PR.


Build(deps): Bump @patternfly/react-table from 5.1.0 to 5.1.1 (#5201)

Pull request opened by the merge tool on behalf of #5201

Merged in 1d1bdf48bd003160191f59bd2b7f95264868ef3f