Available After Savings Broken by YNAB

Describe the bug
The available after savings continues to be zero even if there are available amounts in categories with the word savings in them.

To Reproduce
Steps to reproduce the behavior:

Create a budget with a Savings category or savings subcategory with "savings" in the name.
Assign some money so the available amount is non zero.
Assign an inflow to ready to assign so there is money available "after savings"
The total monthly goals feature of the budget also adds a "Available After Savings" which should be The available in the month subtracted the amount in "savings" or in any category with the word "savings"

Expected behavior
The Available After Savings should be non-zero if there is "available" amounts in the budget and there are non zero amounts in "savings" categories (categories with the word savings in them)
I believe this has to do with the ongoing issues that YNAB has with moving to Ember.js and breaking the existing hooks the toolkit has for getting peoples categories. Inspecting the code that should be populating that line shows that the totalAvailableAfterSavings is trying to subtract an Ember object and the value of my savings in this case.
Screenshots
Feature at question: The Available after savings on the "Available in October"

Toolkit Version 3.4.0

Setting Export
[{"key":"AccountsDisplayDensity","value":"1"},{"key":"AccountsEmphasizedInflows","value":true},{"key":"AccountsEmphasizedOutflows","value":false},{"key":"AccountsStripedRows","value":true},{"key":"AccountsStripedRowsColor","value":"#fafafa"},{"key":"AccountsStripedRowsDarkColor","value":"#1e1e1f"},{"key":"AssistedClear","value":false},{"key":"AutoDistributeSplits","value":false},{"key":"AutoEnableRunningBalance","value":true},{"key":"AutomaticallyMarkAsCleared","value":false},{"key":"BetterScrollbars","value":"0"},{"key":"BottomNotificationBar","value":true},{"key":"BudgetCategoryFeatures","value":true},{"key":"BudgetProgressBars","value":"both"},{"key":"BudgetQuickSwitch","value":false},{"key":"BudgetSpendingGoal","value":true},{"key":"BulkEditMemo","value":false},{"key":"BulkManagePayees","value":false},{"key":"CalculateIRR","value":false},{"key":"CalendarFirstDay","value":"0"},{"key":"CategoryActivityCopy","value":true},{"key":"CategoryActivityPopupWidth","value":"2"},{"key":"CategorySoloMode","value":"0"},{"key":"ChangeEnterBehavior","value":false},{"key":"ChangeMemoEnterBehavior","value":false},{"key":"CheckCreditBalances","value":false},{"key":"CheckNumbers","value":false},{"key":"ClearSelection","value":false},{"key":"CollapseInspector","value":false},{"key":"CollapseSideMenu","value":true},{"key":"ColourBlindMode","value":false},{"key":"CompactIncomeVsExpense","value":true},{"key":"ConfirmEditTransactionCancellation","value":false},{"key":"ConfirmKeyboardCancelationOfTransactionChanges","value":false},{"key":"CreditCardEmoji","value":true},{"key":"CtrlEnterCleared","value":false},{"key":"CurrentMonthIndicator","value":true},{"key":"CustomAverageBudgeting","value":false},{"key":"CustomFlagNames","value":false},{"key":"CustomizeColourScheme","value":true},{"key":"DateOfMoney","value":true},{"key":"DaysOfBuffering","value":"all"},{"key":"DaysOfBufferingDate","value":false},{"key":"DaysOfBufferingExcludeCreditCards","value":false},{"key":"DaysOfBufferingHistoryLookup","value":"0"},{"key":"DefaultCCToCleared","value":false},{"key":"DeselectTransactionsOnSave","value":false},{"key":"DisableToolkit","value":false},{"key":"DisplayMonthlyGoalsOverview","value":false},{"key":"DisplayTargetGoalAmount","value":"3"},{"key":"DisplayTotalMonthlyGoals","value":"show-goal-breakdown-and-income-vs-spending"},{"key":"DisplayTotalOverspent","value":true},{"key":"DisplayUpcomingAmount","value":true},{"key":"EasyTransactionApproval","value":false},{"key":"EditAccountButton","value":"0"},{"key":"EnlargeCategoriesDropdown","value":true},{"key":"EnterToMove","value":false},{"key":"FilterCategories","value":true},{"key":"GoalIndicator","value":true},{"key":"GoalWarningColor","value":true},{"key":"GoogleFontsSelector","value":"0"},{"key":"HideAccountBalancesType","value":"0"},{"key":"HideAgeOfMoney","value":false},{"key":"HideClosedAccounts","value":false},{"key":"HideDebtRatio","value":false},{"key":"HideHelp","value":false},{"key":"HideReferralBanner","value":false},{"key":"HideTotalAvailable","value":false},{"key":"HighlightNegatives","value":false},{"key":"HoveredBudgetRows","value":false},{"key":"ImportNotification","value":"0"},{"key":"IncomeFromLastMonth","value":"1"},{"key":"IncomeVsExpenseHoverHighlight","value":true},{"key":"LargerClickableIcons","value":false},{"key":"LastReconciledDate","value":"disabled"},{"key":"LinkToInflows","value":true},{"key":"LiveOnLastMonthsIncome","value":"1"},{"key":"MasterCategoryRowColor","value":true},{"key":"MasterCategoryRowColorSelect","value":"#d1d1d6"},{"key":"MasterCategoryRowDarkColorSelect","value":"#636366"},{"key":"MemoAsMarkdown","value":true},{"key":"MonthlyNotesPopupWidth","value":"0"},{"key":"NavDisplayDensity","value":"1"},{"key":"NotesAsMarkdown","value":true},{"key":"POSStyleCurrencyEntryMode","value":false},{"key":"Pacing","value":false},{"key":"PrintingImprovements","value":false},{"key":"PrivacyMode","value":"0"},{"key":"QuickBudgetWarning","value":false},{"key":"ReconcileAssistant","value":false},{"key":"ReconcileBalance","value":false},{"key":"ReconcileConfetti","value":false},{"key":"ReconciledTextColor","value":"0"},{"key":"RemovePositiveHighlight","value":false},{"key":"RemoveZeroCategories","value":true},{"key":"ResetColumnWidths","value":true},{"key":"ResizeInspector","value":false},{"key":"ResizeSidebar","value":false},{"key":"RightClickToEdit","value":true},{"key":"RowHeight","value":"0"},{"key":"RowsHeight","value":false},{"key":"RunningBalance","value":"0"},{"key":"SavingsRatio","value":"0.5"},{"key":"ScrollableEditMenu","value":false},{"key":"SeamlessBudgetHeader","value":true},{"key":"SetMultipleFlags","value":false},{"key":"ShowAvailableAfterSavings","value":true},{"key":"ShowCategoryBalance","value":true},{"key":"SpareChange","value":false},{"key":"SplitTransactionAutoAdjust","value":false},{"key":"SplitTransactionAutoFillPayee","value":false},{"key":"SplitTransactionTabExpand","value":false},{"key":"SquareNegativeMode","value":false},{"key":"StealingFromFuture","value":false},{"key":"StripedBudgetRows","value":true},{"key":"SubtractUpcomingFromAvailable","value":false},{"key":"SwapClearedFlagged","value":false},{"key":"TargetBalanceWarning","value":false},{"key":"ToBeBudgetedWarning","value":false},{"key":"ToggleAccountColumns","value":true},{"key":"ToggleMasterCategories","value":true},{"key":"ToggleSplits","value":false},{"key":"ToggleTransactionFilters","value":"0"},{"key":"ToolkitReports","value":true},{"key":"TransactionGridFeatures","value":true},{"key":"UnclearedAccountHighlight","value":false},{"key":"ViewZeroAsEmpty","value":true},{"key":"l10n","value":"0"},{"key":"options.dark-mode","value":true}]

The issue is the "totalAvailable" calculation is messed up and returning an Ember object leaving the calculation nonsense. I will need to do some additional debugging around the reduce function. It is getting the "available" amount correct. So I'm kind of confused why the totalAvailable is coming across garbled.

showAvailableAfterSavings(context) {
    const inspectorCategories = getBudgetService().inspectorCategories;

    const totalAvailable = inspectorCategories.reduce((p, c) => p + c.available);
    const totalSavings = getTotalSavings(inspectorCategories);
    const totalAvailableAfterSavings = totalAvailable - totalSavings;

@saxtonjoshua1 This seems to be an issue where the reducer function is trying to increment the available amount for category 'c' onto 'p' which is undefined. Providing an initial value for the reducer to fix the issue.
   const totalAvailable = inspectorCategories.reduce((p, c) => p + c.available, 0);

That explains it... I thought p might be a little weird
Josh Saxton

From: Ben @.>
Sent: Monday, November 7, 2022 6:44:37 PM
To: toolkit-for-ynab/toolkit-for-ynab @.>
Cc: Joshua Saxton @.>; Mention @.>
Subject: Re: [toolkit-for-ynab/toolkit-for-ynab] Available After Savings Broken by YNAB (Issue #2995)
@saxtonjoshua1https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsaxtonjoshua1&data=05|01||ebe5bc187de54e71c50408dac11a08ba|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638034614805962873|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=ChzL6FF89%2FS0gcmhjghkadGKXx7ZgQpDQImQPHKfYYQ%3D&reserved=0 This seems to be an issue where the reducer function is trying to increment the available amount for category 'c' onto 'p' which is undefined. Providing an initial value for the reducer to fix the issue.
const totalAvailable = inspectorCategories.reduce((p, c) => p + c.available, 0);
—
Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftoolkit-for-ynab%2Ftoolkit-for-ynab%2Fissues%2F2995%23issuecomment-1306381060&data=05|01||ebe5bc187de54e71c50408dac11a08ba|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638034614805962873|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=fa0w6W2i5v1A5dKFPOFnQe1dhTPQjqlFUraUjbBt9Y0%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABCFY6O7QFNYG2P7V2TCPNLWHGH6LANCNFSM6AAAAAARMROVUM&data=05|01||ebe5bc187de54e71c50408dac11a08ba|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638034614805962873|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=70Bv4XDJbmDrSj8m41JBTxtyHyxaHhRvV0PlkXoDo6s%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

Although I am presuming that it worked before so at some point p was defined. So I thought maybe it is something that's returning undefined
Josh Saxton

From: Joshua Saxton @.>
Sent: Monday, November 7, 2022 6:46:15 PM
To: toolkit-for-ynab/toolkit-for-ynab @.>; toolkit-for-ynab/toolkit-for-ynab @.>
Cc: Mention @.>
Subject: Re: [toolkit-for-ynab/toolkit-for-ynab] Available After Savings Broken by YNAB (Issue #2995)
That explains it... I thought p might be a little weird
Josh Saxton

From: Ben @.>
Sent: Monday, November 7, 2022 6:44:37 PM
To: toolkit-for-ynab/toolkit-for-ynab @.>
Cc: Joshua Saxton @.>; Mention @.>
Subject: Re: [toolkit-for-ynab/toolkit-for-ynab] Available After Savings Broken by YNAB (Issue #2995)
@saxtonjoshua1https://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsaxtonjoshua1&data=05|01||ebe5bc187de54e71c50408dac11a08ba|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638034614805962873|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=ChzL6FF89%2FS0gcmhjghkadGKXx7ZgQpDQImQPHKfYYQ%3D&reserved=0 This seems to be an issue where the reducer function is trying to increment the available amount for category 'c' onto 'p' which is undefined. Providing an initial value for the reducer to fix the issue.
const totalAvailable = inspectorCategories.reduce((p, c) => p + c.available, 0);
—
Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftoolkit-for-ynab%2Ftoolkit-for-ynab%2Fissues%2F2995%23issuecomment-1306381060&data=05|01||ebe5bc187de54e71c50408dac11a08ba|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638034614805962873|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=fa0w6W2i5v1A5dKFPOFnQe1dhTPQjqlFUraUjbBt9Y0%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABCFY6O7QFNYG2P7V2TCPNLWHGH6LANCNFSM6AAAAAARMROVUM&data=05|01||ebe5bc187de54e71c50408dac11a08ba|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|638034614805962873|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=70Bv4XDJbmDrSj8m41JBTxtyHyxaHhRvV0PlkXoDo6s%3D&reserved=0.
You are receiving this because you were mentioned.Message ID: @.***>

This was merged into Main so I am going to assume it's fixed for now.


add a README on go mod/go sum differences

Add a README on go.mod and go.sum difference, and how the files should or should not be used for vulnerability scanning, or licensing.

/lgtm


change to new contributor list format

Can I have :3 too? 🥺
(Also, my IGN changed from AlexiaLuna to owoLuna.)

Can I have :3 too? 🥺

I want it too plsss

me too if possible 🥺

@ThatGravyBoat IGN Fix3dll


Keyframes

Any plans to add support for keyframes like in framer motion?
<template>
  <div
    :enter="{
      height: [0, 100, 100],
      opacity: [0, 0, 1],
    }"
  />
</template>

I can implement this

Any update to this?

We support keyframe transitions as described here, I've created a small demonstration as well here.
The docs can probably be improved to explain its usage better, if you have suggestions let me know!

Would be great to have this example in the docs, so people get the idea of how to use it


don't needed crash if value is empty

Fixes #
Fix crash if an empty attribute is passed to a component.

Proposed Changes
Added a optional param that represent the empty value.
If empty value is passed, this parameter is used. Default as empty string.

Does this really fix it? The error comes from constructor because of incorrect type. If just change type into protected ?float $value this should fix it (tested only on PHP8.2)

Same should be valid for other cells.
However I can see value in empty parameter. null and 0 are different parameters and show them both as 0.00 may be not a correct solution.
But instead of cell param how about TD method? Something like
TD::make('total', 'Total')
  ->usingComponent(Currency::class, after: '$') // or even without using component
  ->empty('Account was not set'),

If bank account was not set and total value is null it will show 'Account was not set'. But if user spent all of his money and his bank account is literally 0 - it will show 0.00 $
Plus if the value is null there is really no point in rendering component. We can return early before rendering column if value is null. This way we can keep correct types for cell components without null (which makes more sense for me as Currency and other typed cells should process some value - they should not handle 'no value' situation)

Sometime who develop frontend/backend have no clue on database. In my case, price column is null. Actually there only 2 choice:
no formatting
let developer to manage quickly a null case.
Let the developer choose best way but, crash is not a good solution IMHO.

@xam8re I'm not saying this is good. In fact it is not application-level exception but PHP TypeError because you're passing null value into constructor which accepts float only as value. It needs to be fixed of course. My point is how to fix it, which is better way
I don't think your solution would work as it comes after value being passed into class. I'm basically suggesting this solution instead (simplified dummy code)
if (is_null($value)) {
  return $empty;
}

return new Currency($value);

Do not pass null into currency cell (etc), but handle this case even before rendering (not within Currency class)

To be more concrete here is my suggestion
Add new property and method into Orchid\Screen\TD class
protected $empty = '';

public function empty($empty)
{
  $this->empty = $empty;

  return $this;
}

Change a little buildTd method
- 'value'   => $value,
+ 'value'   => $value ?? $this->empty,

And renderComponent of Cell
protected function renderComponent(string $component, $value, array $params = []): ?string
{
+  if (is_null($value)) {
+    return $this->empty;
+  }

  [$class, $view] = Blade::componentInfo($component);

This way:

We kept cell components strict types
Prevent it from crashes when null value is being passed (it doesn't even get to cell component)
Add extra flexibility for developer (if there is a null value empty string will be shown instead. But they are free to change it with whatever value they wish via empty() method regardless of using you component or not)

Big question for me is what to be considered empty (for now this will check null value only, but when value is empty string '' - it is empty as well. Should we handle this case or null only? If not name empty will be confusing)
Or
Just change strict float type of Currency component (and every other) into ?float (null or float) - fixes error, leave everything else as it is, no extra feature (which could be considered as redundant)

Yes. Good suggestion. I pr this only because I needed a quick fix. I'm using orchid only from 1 week. I implement your suggestion and re submit it to pr. Thanks

@xam8re If you need quick fix in a project you may render component itself, e.g
// this code part is from my project with exact same problem but for Number component
// Instead I'm using Laravel's Number helper and render everything on my own

TD::make('star_avg_rate', __('Average rate'))
  ->render(fn (Star $star) => Number::format($star->ranking->points ?? 0, 2)),

or use Laravel accessor for attribute to ensure it will return float


WhatsApp undread badge not shown | Windows 10 | Franz v5.2.0-beta.2

WhatsApp unread badge is not shown.
To Reproduce
Steps to reproduce the behavior:

Installed Franz version 5.1.0 from web site.
Add WhatsApp service, then logged on.
Franz updated to version 5.2.0-beta.2

Expected behavior
Notification badge should be shown as there are new messages.
Screenshots

Windows 10 Enterprise Build 18362.19h1_release.190318-1202
Franz version 5.2.0-beta.2

I have noticed that muted chats in WhatsApp does not send unread notifications. Even when "Show notifications" option is checked.


Release v0.25.0

Behavior Changes

Override INVALID_PARAMETER_VALUE on fetching non-existent job/cluster (#591). When getting a job or cluster by ID that doesn't exist, the API currently returns a 400, corresponding to the InvalidParameterValue exception. This change throws a ResourceNotFoundException instead in this circumstance. To handle this change, modify error handling by updating your except blocks from:

try:
    w.jobs.get_by_id("123")
except InvalidParameterValue:
    ...

to
try:
    w.jobs.get_by_id("123")
except ResourceDoesNotExist:
    ...

Internal Changes

Check downstream backwards compatibility (#600).
Add support for upcoming Marketplace package (#608).

API Changes:

Changed cancel_refresh() method for w.lakehouse_monitors workspace-level service with new required argument order.
Changed create() method for w.lakehouse_monitors workspace-level service with new required argument order.
Changed delete() method for w.lakehouse_monitors workspace-level service with new required argument order.
Changed get() method for w.lakehouse_monitors workspace-level service with new required argument order.
Changed get_refresh() method for w.lakehouse_monitors workspace-level service with new required argument order.
Changed list_refreshes() method for w.lakehouse_monitors workspace-level service with new required argument order.
Changed run_refresh() method for w.lakehouse_monitors workspace-level service with new required argument order.
Changed update() method for w.lakehouse_monitors workspace-level service with new required argument order.
Removed databricks.sdk.service.catalog.AzureManagedIdentity dataclass.
Removed full_name field for databricks.sdk.service.catalog.CancelRefreshRequest.
Added table_name field for databricks.sdk.service.catalog.CancelRefreshRequest.
Changed custom_metrics field for databricks.sdk.service.catalog.CreateMonitor to databricks.sdk.service.catalog.MonitorMetricList dataclass.
Removed full_name field for databricks.sdk.service.catalog.CreateMonitor.
Changed inference_log field for databricks.sdk.service.catalog.CreateMonitor to databricks.sdk.service.catalog.MonitorInferenceLog dataclass.
Changed notifications field for databricks.sdk.service.catalog.CreateMonitor to databricks.sdk.service.catalog.MonitorNotifications dataclass.
Changed snapshot field for databricks.sdk.service.catalog.CreateMonitor to any dataclass.
Changed time_series field for databricks.sdk.service.catalog.CreateMonitor to databricks.sdk.service.catalog.MonitorTimeSeries dataclass.
Added table_name field for databricks.sdk.service.catalog.CreateMonitor.
Changed azure_managed_identity field for databricks.sdk.service.catalog.CreateStorageCredential to databricks.sdk.service.catalog.AzureManagedIdentityRequest dataclass.
Removed full_name field for databricks.sdk.service.catalog.DeleteLakehouseMonitorRequest.
Added table_name field for databricks.sdk.service.catalog.DeleteLakehouseMonitorRequest.
Removed full_name field for databricks.sdk.service.catalog.GetLakehouseMonitorRequest.
Added table_name field for databricks.sdk.service.catalog.GetLakehouseMonitorRequest.
Removed full_name field for databricks.sdk.service.catalog.GetRefreshRequest.
Added table_name field for databricks.sdk.service.catalog.GetRefreshRequest.
Removed full_name field for databricks.sdk.service.catalog.ListRefreshesRequest.
Added table_name field for databricks.sdk.service.catalog.ListRefreshesRequest.
Changed quartz_cron_expression field for databricks.sdk.service.catalog.MonitorCronSchedule to be required.
Changed timezone_id field for databricks.sdk.service.catalog.MonitorCronSchedule to be required.
Removed databricks.sdk.service.catalog.MonitorCustomMetric dataclass.
Removed databricks.sdk.service.catalog.MonitorCustomMetricType dataclass.
Removed databricks.sdk.service.catalog.MonitorDestinations dataclass.
Removed databricks.sdk.service.catalog.MonitorInferenceLogProfileType dataclass.
Removed databricks.sdk.service.catalog.MonitorInferenceLogProfileTypeProblemType dataclass.
Changed custom_metrics field for databricks.sdk.service.catalog.MonitorInfo to databricks.sdk.service.catalog.MonitorMetricList dataclass.
Changed drift_metrics_table_name field for databricks.sdk.service.catalog.MonitorInfo to be required.
Changed inference_log field for databricks.sdk.service.catalog.MonitorInfo to databricks.sdk.service.catalog.MonitorInferenceLog dataclass.
Changed monitor_version field for databricks.sdk.service.catalog.MonitorInfo to be required.
Changed notifications field for databricks.sdk.service.catalog.MonitorInfo to databricks.sdk.service.catalog.MonitorNotifications dataclass.
Changed profile_metrics_table_name field for databricks.sdk.service.catalog.MonitorInfo to be required.
Changed snapshot field for databricks.sdk.service.catalog.MonitorInfo to any dataclass.
Changed status field for databricks.sdk.service.catalog.MonitorInfo to be required.
Changed table_name field for databricks.sdk.service.catalog.MonitorInfo to be required.
Changed time_series field for databricks.sdk.service.catalog.MonitorInfo to databricks.sdk.service.catalog.MonitorTimeSeries dataclass.
Removed databricks.sdk.service.catalog.MonitorNotificationsConfig dataclass.
Changed refresh_id field for databricks.sdk.service.catalog.MonitorRefreshInfo to be required.
Changed start_time_ms field for databricks.sdk.service.catalog.MonitorRefreshInfo to be required.
Changed state field for databricks.sdk.service.catalog.MonitorRefreshInfo to be required.
Added trigger field for databricks.sdk.service.catalog.MonitorRefreshInfo.
Removed any dataclass.
Removed databricks.sdk.service.catalog.MonitorTimeSeriesProfileType dataclass.
Removed full_name field for databricks.sdk.service.catalog.RunRefreshRequest.
Added table_name field for databricks.sdk.service.catalog.RunRefreshRequest.
Changed azure_managed_identity field for databricks.sdk.service.catalog.StorageCredentialInfo to databricks.sdk.service.catalog.AzureManagedIdentityResponse dataclass.
Removed name field for databricks.sdk.service.catalog.TableRowFilter.
Added function_name field for databricks.sdk.service.catalog.TableRowFilter.
Changed custom_metrics field for databricks.sdk.service.catalog.UpdateMonitor to databricks.sdk.service.catalog.MonitorMetricList dataclass.
Removed full_name field for databricks.sdk.service.catalog.UpdateMonitor.
Changed inference_log field for databricks.sdk.service.catalog.UpdateMonitor to databricks.sdk.service.catalog.MonitorInferenceLog dataclass.
Changed notifications field for databricks.sdk.service.catalog.UpdateMonitor to databricks.sdk.service.catalog.MonitorNotifications dataclass.
Changed snapshot field for databricks.sdk.service.catalog.UpdateMonitor to any dataclass.
Changed time_series field for databricks.sdk.service.catalog.UpdateMonitor to databricks.sdk.service.catalog.MonitorTimeSeries dataclass.
Added table_name field for databricks.sdk.service.catalog.UpdateMonitor.
Changed azure_managed_identity field for databricks.sdk.service.catalog.UpdateStorageCredential to databricks.sdk.service.catalog.AzureManagedIdentityResponse dataclass.
Changed azure_managed_identity field for databricks.sdk.service.catalog.ValidateStorageCredential to databricks.sdk.service.catalog.AzureManagedIdentityRequest dataclass.
Removed operation field for databricks.sdk.service.catalog.ValidationResult.
Added aws_operation field for databricks.sdk.service.catalog.ValidationResult.
Added azure_operation field for databricks.sdk.service.catalog.ValidationResult.
Added gcp_operation field for databricks.sdk.service.catalog.ValidationResult.
Removed databricks.sdk.service.catalog.ValidationResultOperation dataclass.
Added databricks.sdk.service.catalog.AzureManagedIdentityRequest dataclass.
Added databricks.sdk.service.catalog.AzureManagedIdentityResponse dataclass.
Added databricks.sdk.service.catalog.MonitorDestination dataclass.
Added databricks.sdk.service.catalog.MonitorInferenceLog dataclass.
Added databricks.sdk.service.catalog.MonitorInferenceLogProblemType dataclass.
Added databricks.sdk.service.catalog.MonitorMetric dataclass.
Added databricks.sdk.service.catalog.MonitorMetricType dataclass.
Added databricks.sdk.service.catalog.MonitorNotifications dataclass.
Added databricks.sdk.service.catalog.MonitorRefreshInfoTrigger dataclass.
Added any dataclass.
Added databricks.sdk.service.catalog.MonitorTimeSeries dataclass.
Added databricks.sdk.service.catalog.ValidationResultAwsOperation dataclass.
Added databricks.sdk.service.catalog.ValidationResultAzureOperation dataclass.
Added databricks.sdk.service.catalog.ValidationResultGcpOperation dataclass.
Added clone_from field for databricks.sdk.service.compute.ClusterSpec.
Removed databricks.sdk.service.compute.ComputeSpec dataclass.
Removed databricks.sdk.service.compute.ComputeSpecKind dataclass.
Added clone_from field for databricks.sdk.service.compute.CreateCluster.
Added clone_from field for databricks.sdk.service.compute.EditCluster.
Added databricks.sdk.service.compute.CloneCluster dataclass.
Added databricks.sdk.service.compute.Environment dataclass.
Changed update() method for a.workspace_assignment account-level service to return databricks.sdk.service.iam.PermissionAssignment dataclass.
Removed any dataclass.
Removed compute_key field for databricks.sdk.service.jobs.ClusterSpec.
Removed compute field for databricks.sdk.service.jobs.CreateJob.
Added environments field for databricks.sdk.service.jobs.CreateJob.
Removed databricks.sdk.service.jobs.JobCompute dataclass.
Removed compute field for databricks.sdk.service.jobs.JobSettings.
Added environments field for databricks.sdk.service.jobs.JobSettings.
Removed compute_key field for databricks.sdk.service.jobs.RunTask.
Removed databricks.sdk.service.jobs.TableTriggerConfiguration dataclass.
Removed compute_key field for databricks.sdk.service.jobs.Task.
Added environment_key field for databricks.sdk.service.jobs.Task.
Changed table field for databricks.sdk.service.jobs.TriggerSettings to databricks.sdk.service.jobs.TableUpdateTriggerConfiguration dataclass.
Changed table_update field for databricks.sdk.service.jobs.TriggerSettings to databricks.sdk.service.jobs.TableUpdateTriggerConfiguration dataclass.
Added databricks.sdk.service.jobs.JobEnvironment dataclass.
Added databricks.sdk.service.jobs.TableUpdateTriggerConfiguration dataclass.
Added databricks.sdk.service.marketplace package.

OpenAPI SHA: 94684175b8bd65f8701f89729351f8069e8309c9, Date: 2024-04-11

Two failing tests are with cluster creation on GCP (took longer than the 10 minute timeout but both succeeded) and jobs listing (which requires at least one pre-existing job in each workspace, but these are new workspaces). Merging.


Modify the "Dimension" form so that sub-classes can be used

Problem description / use case
Currently, when you want to add a crm:E54 Dimension to the Toolbox, a form opens and asks you to add a numerical value and a unit.
If you want to add using a subclass of crm:E54 Dimension, such as crm-sup:C21 Monetary Amount, the form is not displayed.
Similarly, if you want to use a unit (even with crm:E54 Dimension) that is an instance of a subclass of crm:E58 Measurement Unit - such as crm-sup:C22 Currency - the unit does not appear in the list.
Functional Requirements

Would it be possible to modify the parameters of the application so that it takes into account the sub-classes of crm:E54 Dimension and crm:E58 Measurement Unit? Or at least the crm-sup:C21 Monetary Amount and crm-sup:C22 Currency classes? For tests, see this profile, which contains the necessary classes and properties: https://ontome.net/profile/260

Finally, in the form, the unit is mandatory, which can pose a problem for countable quantities. Adding a ‘Quantity’ unit by default in the projects could remedy this.

The configuration of the json file has been modified to allow the use of Monetary Amount and Currency (thanks @atterebf !). A "Number"/"Effectif" unit has been added for countable quantities.


The header breaks and the permalinks also break when decentralizing with IPFS.

The header breaks when decentralizing with IPFS on Fleek, and it also damages other parts of the code as can be seen in the images.

There is also an issue with the permalinks when decentralizing, as shown in the attached image.

extra Data in regards the permalinks:
The permalinks related is to locate the posts DCIPs which will not work once it gets deployed into fleek


Update generated report for @fluid-experimental/tree

This seems like the kind of thing CI should verify on check-in. Perhaps @fluid-experimental packages are missing from whatever check occurs? (or maybe there's no check??)


Remove Blockstack Summit banner link from home page

Remove Blockstack Summit banner link from the home page http://blockstack.org/

Resolved.


Path problems for ergodox_ez/shine

I think should be using the path ergodox_ez/m32u4/shine but that's still getting a path error when trying to upload; it does seem to compile:
...
Creating load file for flashing: .build/zsa_ergodox_ez_m32u4_shine_LvADM.hex                        [OK]
Copying zsa_ergodox_ez_m32u4_shine_LvADM.hex to qmk_firmware folder                                 [OK]
Checking file size of zsa_ergodox_ez_m32u4_shine_LvADM.hex                                          [OK]
 * The firmware size is fine - 22826/32256 (70%, 9430 bytes free)
Checking stack size of zsa_ergodox_ez_m32u4_shine_LvADM
 * Available stack size: 1906 bytes

(Upload layout)
Run actions/upload-artifact@v4
  with:
    name: ergodox_ez_m32u4_shine_LvADM
    if-no-files-found: warn
    compression-level: 6
    overwrite: false
    include-hidden-files: false
Error: Input required and not supplied: path

My first attempt below was based on the false assumption that what I saw in the QMK firmware repository is what is being used here.  I jumped ahead from initializing the workflow to cloning to my local system and I see that the keyboards are in the zsa folder as well. I should probably just delete this and the rest, but perhaps someone else could avoid wasting their time the same way ;-}
First attempt
I have a Ergodox EZ "shine" from way before Sept '24 (Sticker says BATCH 4a; keyswitches are soldered) using the "teensy" MCU. As required by Oryx to make further changes, I have updated the layout to use QMK firmware version 24.
Because the firmware version is -ge 24, the keyboard path is prefixed with "zsa" and I see an error make: *** No rule to make target 'zsa/ergodox_ez/shine:LvADM'. Stop. at line 361 of the "Build the layout step" followed by Error: Input required and not supplied: path in the "Upload layout" step.
As of this writing, this keyboard seems to still be found in QMK's keyboards/ergodox_ez, folder, in subfolders "base" "glow" and "shine". Link to repo  There is no ergodox_ez/shine keyboard within the zsa folder.
This seems to be similar to issue #4 but I don't think I can just type a different path because of the zsa prefix.
I have attempted to patch my copy of the workflow file to simply set the keyboard_directory and make_prefix paths without zsa no matter what firmware:
      - name: Build the layout
        id: build-layout
        run: |
          keyboard_directory="qmk_firmware/keyboards"
          make_prefix=""

          # Copy layout files to the qmk folder

... but when I went to test this with ergodox_ez/shine as the path, I seem to have encountered some downtime for oryx.zsa.io which is giving 500s instead of source files (I checked via the web with other peoples' more recent layouts, too).
Hadn't wanted to post this before I could really test what I think might be a fix, but I also don't want to lose what I've written up so far. Hope it can be helpful; I will try to update if I can get it to work by hacking on the workflow file.

You should indeed use ergodox_ez/m32u4/shine as the keyboard type. However, it seems the built firmware is not a .bin file but a .hex file instead. I just pushed a fix to upload the .hex firmware when needed.
Please try again and let me know if you encounter any further issues!

Thank you so much! The action did complete :-)
Now on to read the rest of your instructions and see if I can incorporate the code I wrote something like 7 years ago to control the status LEDs...

You’re very welcome!
Did you manage to flash the layout using the .hex file?

Haven't tried, but I did confirm that the SHA-512 checksum for the hex file your workflow produces is the same as for the one I download from Oryx.
I hope to actually flash firmware soon, but as I have lost track of the build environment and hex file I made in 2019 (I do still have the code itself in my QMK fork). I wanted to try to update that code with respect to the changes to QMK since then. If I just flash the Oryx hex file, I'll  lose my custom status LED behavior until I can work through the rest of your instructions. And the updated QMK documentation.

Hi! I just tried this tool. I got exactly the same type of path error, but for my ergodox_ez keyboard (neither shine nor glow). I forked the repo just about 15 minutes ago.

@RKBK It seems there was a small typo in the keyboard type you entered—you used ergox_ez instead of ergodox_ez. Correcting this should resolve the path error.

Oh my. That's what I get for not being more careful. I will try adding a "d" right away. :-)
Many thanks!

@poulainpi You're my hero for the week :-) It took me only about an hour of reading documentation and rethinking code to adapt my old work to this system... and it works! Thank you so much for doing and sharing this... not wanting to lose my custom status LEDs was a big reason I haven't upgraded to a Moonlander, so Erez might owe you a commission soon ;-)


[asynchbase] update to 1.8.2

Allows to run asynchbase against hbase2

Does asynchbase drop support for any HBase versions as a part of the update from 1.7 to 1.8?


Update tapir-cats, tapir-http4s-server, ... to 1.2.4

Updates

com.softwaremill.sttp.tapir:tapir-cats
com.softwaremill.sttp.tapir:tapir-http4s-server
com.softwaremill.sttp.tapir:tapir-http4s-server-zio
com.softwaremill.sttp.tapir:tapir-json-circe
com.softwaremill.sttp.tapir:tapir-jsoniter-scala

from 1.2.2 to 1.2.4.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (1.2.2).
You might want to review and update them manually.
ui/yarn.lock

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.softwaremill.sttp.tapir" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "com.softwaremill.sttp.tapir" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains, commit-count:1

Superseded by #272


I am getting ValueError that num_samples should be positive number

I think the problem lie in taking model directory address or pretrained weight address or Video data address, please look into it.
ValueError: num_samples should be a positive integer value, but got num_samples=0

@Saurabh262000   Could you explain how you solved it? I guess the dataset to train is not at correct location.


make wiggles a small host

:cl: Whisper

add: Wiggles is now considered a small host.

:sobs:

Looks bad in testing


Compiler warnings

Looks like there are some warnings related to mutability where it isn't needed?

@wldcordeiro I've merged changes from #35. Thank you! But could you tell me how did you get that warnings? I use rustc 1.24.0-nightly (4a7c072fa 2017-12-25) and it doesn't show any warnings to me.

@DenisKolodin I was on Rust stable? That may have been why? I have stable/beta/nightly all installed and I believe stable is default.

@wldcordeiro Thank you! 👌  I think it's time to check all versions with travis :)


Deprecating event liquidity

Context
Currently, we deposit and withdraw liquidity as follows:

asset liquidity -> based on asset id
peer liquidity -> based on peer id
payment pointer l. -> based on payment pointer id
incoming payment l. -> based on event id
outgoing payment l. -> based on event id

To standardize, we want to also allow depositing and withdrawing liquidity by payment id. We want to deprecate eventId-based liquidity management.
Todos

[ ] https://github.com/interledger/rafiki/issues/1693
[ ] https://github.com/interledger/rafiki/issues/1694
[ ] https://github.com/interledger/rafiki/issues/1695
[ ] https://github.com/interledger/rafiki/issues/1696
[ ] https://github.com/interledger/rafiki/issues/2150

Related

https://github.com/interledger/rafiki/issues/413
https://github.com/interledger/rafiki/issues/225

@sabineschaller  @mkurapov
The withdrawEventLiquidity mutation tests include a case for the wallet_address.web_monetization event which got me wondering - are we currently or can we handle that without withdrawEventLiquidity? As far as I can see this is not handled in the MASE webhook server despite the the integration docs saying it “should withdraw that liquidity from the wallet address and credit the receiver’s account”. Looks like maybe implementing that handler in the MASE using createWalletAddressWithdrawal should be an additional task on this story.

Looks like maybe implementing that handler in the MASE using createWalletAddressWithdrawal should be an additional task on this story?

I think that makes sense, however, I believe in order to receive the wallet_address.web_monetization event we need to call the triggerWalletAddressEvents admin API which we are not doing from the MASE. Do you think it's worth adding the wallet_address.web_monetization handler if we don't have anything in place for triggerWalletAddressEvents yet?
Speaking of triggerWalletAddressEvents, maybe it's worth renaming that as well?

After speaking with Max we concluded a few things:

currently withdrawEventLiquidity creates a withdrawal using the event id which ensures duplicate transfers for the same event are not created. We concluded that we can look this up internally in the new endpoints (as opposed to passing it in, or using some other id). For example, in the new withdrawIncomingPaymentLiquidity resolver we can get the latest webhook event where withdrawalAccountId is incomingPayment.id and type is either incoming_payment.completed or incoming_payment.expired. And similar for the other new endpoints
we can implement a handleWalletAddressWebMonetization that calls createWalletAddressWithdrawal and test that manually and leave the MASE triggerWalletAddressEvents call out of scope due to complexity. I made an issue for that which includes more details on how to manually test.

Branch off bc/1697/deprecate-event-liquidity for these story issues. Will collect all the changes there before merging into main.


The same icon is displayed.

Describe the bug
The same icon is displayed.
To Reproduce
Steps to reproduce the behavior:

Add Spring related icons

See error

Expected behavior
Show set icons

This should be fixed in 2.0.0.


Fixed kaptTest and kaptAndroidTest cases

Hello, the conversion of kaptTest and kaptAndroidTest didn't work well so I tried to fix it.
I found two more issues but I will open an issue for that.

Thanks!

You once helped me. I refactored the project into this website: https://gradle-kotlin-converter.vercel.app/


unresolved type: std::Movie_Type

EdgeDB Version: 1.0.0
OS Version: MacOs

Steps to Reproduce:

Setup the DB from the quick start: https://www.edgedb.com/docs/guides/quickstart
enable graphql
query graphql using:

query {
  Movie{
    id
    __typename
    ... on Movie_Type {
      id
    }
  }
}

recieve:
{
  "errors": [
    {
      "message": "AssertionError: unresolved type: std::Movie_Type"
    }
  ]
}

n.b. this works:
query {
  Movie{
    id
    __typename
    ... on BaseObject {
      id
    }
  }
}

Schema:
using extension graphql;

module default {
    type Person {
        required property first_name -> str;
        property last_name -> str;

        property full_name :=
        .first_name ++ ' ' ++ .last_name
        if exists .last_name
        else .first_name;
    }

    type Movie {
        required property title -> str;
        property year -> int64;
        link director -> Person;
        multi link actors -> Person;
    }
}

The issue comes up when trying to use schema stitching as the graphql-tools library seems to insert a fragment which then triggers the error (at least when trying to extend the schema.
  const ret = stitchSchemas({
    inheritResolversFromInterfaces: true,
    subschemas: [schema],
    typeDefs: /* GraphQL */ `
      extend interface Movie {
        foo: String
      }
      extend type Movie_Type {
        foo: String
      }
    `,
    resolvers: {
      Movie: {
        foo: () => "foo",
      },
    },
  });

I'm not 100% sure why Movie_Type is the actual type whereas Movie is an interface. @vpetrovykh?

The reason why we primarily deal with interfaces rather than types is because every type can be extended. So Movie is not just all objects of type Movie, but also all objects of all possible Movie sub-types. Thus the best way to represent this in GraphQL is by an interface and not a concrete type. A concrete type is something only an object has, but in queries it's all about interfaces. So the correct solution is to use interfaces and not types in queries, fragments, etc.
Having said that, the fragments on types should obviously also work. The caveat here is that due to how EdgeDB treats types and GraphQL treats types fragments on "Something_Type" will apply as if they were on the underlying interface. In 99.99% cases I don't think this subtlety will make any difference.


Add sass version

At present it is impossible to import a css file and then use minified.
https://github.com/sass/sass/issues/556
This makes difficult the use of the project with SASS.

Thank you for filing an issue. This is unrelated to this library and as such, we're unable to do anything about it. This is an outstanding issue so I'm going to go ahead and close it. Thanks again!


I found we missed another field "Video" [/movie/id]

Hi Lordmike;
I put a request it at TMDB for a explanation of this response item. I'll let you know if and what I get an answer from Travis et al (and others).
Regards; Joe

Related: #64

Hi LordMike;
I found some more missing items in /Discovery parameters. I'll review these and post my findings here. Should be today sometime.
Regards; Joe

Lordmike;
looks like a number of changes in TMDB's /discovery There appears to be a number of new?  parameter options yours does not encompass. I have not checked your expected responses against theirs but I would surmise that these may have changed also due to the new parameters (i.e.  "with_cast").
regards; Joe

Hi Lordmike;
Found what TMDB means by video(s). This sure looks like a reference to where or not they have any trailers, teasers, etc. for the movie.
Joe

Missing parameters in the discovery feature are not that surprising, I just quickly added that in and at the time the api wasn't final yet.

Hi Naliath;
Thanks for the info. Any Changes these changes may be showing up in the Nuget release anytime soon? Travis's immediate an future API changes not withstanding. It's holding up some filtering options I'm working on. As I don't code in C I have not idea how to recompile the wrapper.
FYI - I'm coding a personal desktop app in vb/vb.net which is coming along nicely. It has some code which I am willing to share with others. Is it possible to open a forum here to cover using your wrapper in VB into which I can post examples and documentation? I'm willing to moderate the forum so you are not encumbered with more work.
Regards; Joe

Hi Guys:
I have the true answer to "videos: true/false":
"The Video property is a relatively new field. It "helps us differentiate types of content that aren't truly movies". Some examples are: compilation DVDs, "best of" DVDs, fitness videos, compilation of children's programming, etc. This is an example: SpongeBob Squarepants - Christmas . It's a compilation of Christmas themed episodes from the TV show; not a real movie. These types of entries used to be deleted which upset many people so the video field was added and they are now allowed in the database with their Video field set to "yes".
Regards: Joe

@joebob49 see https://www.nuget.org/packages/TMDbLib/0.8.1-alpha


Swift package manager compiler errors

When importing into another package as dependency the following errors are returned when compiling:

The swift package file looks like this:
let package = Package(
    name: "SomePackage",
    platforms: [
        .iOS(.v13)
    ],
    products: [
        // ...
    ],
    dependencies: [
        // ...
        .package(
            name: "Kingfisher",
            url: "https://github.com/onevcat/Kingfisher.git",
            "6.2.0"..<"7.0.0"
        ),
        .package(
            name: "KingfisherWebP",
            url: "https://github.com/Yeatse/KingfisherWebP.git",
            "1.3.0"..<"2.0.0"
        )
    ],
    targets: [
         .target(
            name: "SomePackage",
            dependencies: [
                 // ...
                "Kingfisher",
                "KingfisherWebP"
            ],
            resources: [.process("Resources")]
        )
    ]

Thank you

Same

It seems SPM doesn't recognize the C part of this library.😳 I'll investigate into it.

Fixed by https://github.com/Yeatse/KingfisherWebP/pull/54


PIE.htc Issue

I'm using the PIE.htc file to backfill some nice CSS3 stuff to IE. In my older project, Cassette left the PIE.htc file reference in the CSS file alone and everything worked fine. Now it seems to transform the original path into one that goes through cassette, which is the normal behavior for images I think. The problem is that this essentially removes the ".htc" file extension and IE no longer recognizes it as a behavior file. That means all of my nice CSS3 stuff is missing again.
I think your proposed solution was to maintain the original file extensions through cassette.

Thanks for creating this issue.
@stucampbell also noticed this bug. He's working on a fix at the moment.

I've fixed this and sent the pull request. Sorry for the delay - I had to go watch my kid play tennis. :)

Good deal! No worries on my end. Thanks for the fix


Post release

Post release
Things to do after the post release:

[ ] Integrate Cypress-Dashboard
[x] publish fliegdoc static docs to Github Pages
[x] add deep-scan and CodeQL github actions
[ ] fix and build macOS release on tags
[x] add branch protection rules for branch master
[x] move Vert.x Eventbus implementation into own repository and create own npm package
(necessary changes in #194)

I will open separate issues for these tasks tomorrow.

I will open separate issues for these tasks tomorrow.


Qualify cross-repository ticket references

As of <IP_ADDRESS>8 referencing a ticket of a different repository results in rendering just the target ticket number w/out the target ticket repository name. It is confusing, IMHO.
On github those kind of references are rendered as org/repo#ticketnum instead.

Can you given examples on https://try.gogs.io?

https://try.gogs.io/strk/test2/issues/1 -- see how the reference to #3 does not include the repository name (kalxas/OSGeoLive)

Another test (so it doesn't point to a 404): https://try.gogs.io/strk/test1/issues/1
it would be also nice to get a back-reference, but I guess that's for another ticket ?

I can pick this up.

Fixed by #3436.


Meteor: 'sortable' not defined

was inserting {{sortable}} in my Meteor HTML and was getting really confused by this error. Looked in the example and found that it was {{#sortable}}, which isn't indicated in the Meteor Readme.

Fixed the README, thanks for reporting!


Update submariner-security Google Group and submariner-io GH Org Owners

What would you like to be added:

[ ] Make submariner-security Google Group publicly visible and group members visible
[ ] Add @sridhargaddam to submariner-security Google Group
[ ] Add @skitt to submariner-security Google Group
[ ] Make sure all/only the Submariner Owners are admins of the submariner-security Google Group
[ ] Remove @mangelajo from submariner-security Google Group

We need an admin to do this.
Why is this needed:
Keep our configuration consistent with our Contributor Role policies.

Can you wield your admin powers to help with this @skitt or @tpantelis?

Can you wield your admin powers to help with this @skitt or @tpantelis?

I can’t, I’ve apparently been removed from the group and was never an admin anyway AFAIK. I think we need @mangelajo for this one...

I talked with Miguel on Slack, he was on PTO today (sorry!:skull:) but will take a look at this. Thanks Miguel!

Let me try, I was using my RH account I believe, but it's worth trying.

@skitt Do you have access to the submariner-security Google Group via your personal account now? Can you make the group public and make sure all the correct folks are added/removed?

@skitt Do you have access to the submariner-security Google Group via your personal account now? Can you make the group public and make sure all the correct folks are added/removed?

Yes, I can access the group’s administration and add/remove people as appropriate. I’ll remove Miguel.

@tpantelis and @sridhargaddam, can you check whether you can access the group’s administration? We need to ensure we’re not locked out if something happens to me...

@tpantelis and @sridhargaddam, can you check whether you can access the group’s administration? We need to ensure we’re not locked out if something happens to me...

Yes, I can @skitt :+1:

OK, this is complete.


Apex Raw - Ubuntu 18.04 LTS

Hello,
thank you for creating this thingy :)
Going to contribute here with my feedback on making this work for Steelseries Apex Raw and Ubuntu 18.04 LTS.
I ran this command to install dependencies:
sudo apt install libhidapi-dev pkgconf

It said that I already had libhidapi-dev installed and it only installed pkgconf (pkgconf_0.9.12-6_amd64.deb). After that I ran make and got this error:
cc -std=c99 -Werror=all -Wextra -Wpedantic -Os $(pkgconf --cflags hidapi-libusb) -DENABLE_CMD_PROBE=1 -DENABLE_DATA_PRINT=0 -s $(pkgconf --libs hidapi-libusb)  apexctl.c   -o apexctl
/tmp/cciXZ1b7.o: In function `usb_setup':
apexctl.c:(.text+0x1a2): undefined reference to `hid_init'
apexctl.c:(.text+0x1bf): undefined reference to `hid_open'
/tmp/cciXZ1b7.o: In function `usb_cleanup':
apexctl.c:(.text+0x202): undefined reference to `hid_close'
apexctl.c:(.text+0x208): undefined reference to `hid_exit'
/tmp/cciXZ1b7.o: In function `usb_put':
apexctl.c:(.text+0x210): undefined reference to `hid_send_feature_report'
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'apexctl' failed
make: *** [apexctl] Error 1

Any ideas?
I tried searching online and found something related to header files being included in wrong order or something like that. My C is very rusty, but I'm hoping to remember it.

Hi, thanks for the feedback, I think I know what the issue is. I've pushed a commit that should fix it, give it a try and tell me if it worked. :)

Thanks for a quick response.
It worked sort of :)
I've managed to run the make command. It returned no errors and it created a file apexctl in the repo directory.
I have then followed the readme:
Copy the apexctl binary to /usr/local/sbin/.

Copy config/00-apex.hwdb to /etc/udev/hwdb.d/ and rename it to your preference. Then run udevadm hwdb --update or systemd-hwdb update. To apply immediately, run udevadm trigger.

Copy config/00-apexctl.rules to /etc/udev/rules.d/ and rename it to your preference.

If you use X11, copy config/00-apex.conf to /etc/X11/xorg.conf.d/ and rename it to your preference.

This last line I did not do since I think that Ubuntu 18.04 uses xorg and not x11. My knowledge here is limited.
Then I ran apexctl keys on and opened Gnome Settings to test the MX and M keys and try to map them to something.
1st run. After opening Gnome settings and navigating to Devices->Keyboard->Keyboard shortcuts the program stopped responding. I killed the process manually, but my CPU now acts crazy. One core gets pinned to 100% for some period of time and then it changes the core and starts again. I've taken a screenshot of top. See image.
2nd run. Without restarting the PC I opened Gnome Settings again and tried to do the same thing as before. This time it worked, except these keys:

M4
M9
M10
M11
M12

It does not detect these keys.
Going to restart the PC and test again.

When I said X11 I did actually mean Xorg, apologies, I've pushed an update that clarifies the idea. However, the file is non-essential anyways, so you shouldn't need to worry about it.
As for the non-working keys, I'm not immediately sure of what's wrong. If you could run xev | fgrep keycode, press the keys which don't work, and give me the output, that might give me some insight. (don't forget to install xev if you don't have it, a quick search tells me it's in the x11-utils package for ubuntu)

Ok, tested everything with the latest code from master branch and I can confirm that all my MX and M keys are detected and working.
At first two attempts the Gnome Settings froze while trying to map keys, but after that it just worked.
P.S. I tried to follow the last line If you use Xorg, copy config/00-apex.conf to /etc/X11/xorg.conf.d/ and rename it to your preference. but I got:
cp: cannot create regular file '/etc/X11/xorg.conf.d/': Not a directory

Thank you!

It seems Ubuntu does not ship /etc/X11/xorg.conf.d/ by default. You'll have to create it yourself, and Xorg will automatically read it when it starts up again.
Glad to know it's working now. :)

What does that file exactly do, since this seems to be working without it?
-------- Original message --------From: AstroSnail<EMAIL_ADDRESS>Date: 1/7/20  21:19  (GMT+01:00) To: AstroSnail/apexctl<EMAIL_ADDRESS>Cc: Mario Bašić<EMAIL_ADDRESS>State change<EMAIL_ADDRESS>Subject: Re: [AstroSnail/apexctl] Apex Raw - Ubuntu 18.04 LTS (#4) It seems Ubuntu does not ship /etc/X11/xorg.conf.d/ by default. You'll have to create it yourself, and Xorg will automatically read it when it starts up again.
Glad to know it's working now. :)
—You are receiving this because you modified the open/close state.Reply to this email directly, view it on GitHub, or unsubscribe.
[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/AstroSnail/apexctl/issues/4?email_source=notifications\u0026email_token=AAOBGOWMLEUT6O2GZAQWC6DQ4TPUBA5CNFSM4KC442M2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIKELFQ#issuecomment-571753878",
"url": "https://github.com/AstroSnail/apexctl/issues/4?email_source=notifications\u0026email_token=AAOBGOWMLEUT6O2GZAQWC6DQ4TPUBA5CNFSM4KC442M2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIKELFQ#issuecomment-571753878",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]

The file informs Xorg of the model of the keyboard, which is apparently used for nothing else than setting the XKB geometry. I don't know of any program which makes use of this feature of XKB, but it exists and apparently the Apex 300 model comes preinstalled with Xorg on Arch. One day I might design models for the other Apex keyboards and submit them to Xorg so that the model is correct on all keyboards for whatever mystery program uses it.

Cool. Thanks for explaining. 👍
-------- Original message --------From: AstroSnail<EMAIL_ADDRESS>Date: 1/7/20  22:49  (GMT+01:00) To: AstroSnail/apexctl<EMAIL_ADDRESS>Cc: Mario Bašić<EMAIL_ADDRESS>State change<EMAIL_ADDRESS>Subject: Re: [AstroSnail/apexctl] Apex Raw - Ubuntu 18.04 LTS (#4) The file informs Xorg of the model of the keyboard, which is apparently used for nothing else than setting the XKB geometry. I don't know of any program which makes use of this feature of XKB, but it exists and apparently the Apex 300 model comes preinstalled with Xorg on Arch. One day I might design models for the other Apex keyboards and submit them to Xorg so that the model is correct on all keyboards for whatever mystery program uses it.
—You are receiving this because you modified the open/close state.Reply to this email directly, view it on GitHub, or unsubscribe.
[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/AstroSnail/apexctl/issues/4?email_source=notifications\u0026email_token=AAOBGORG3LIWIIKLCONQ6E3Q4T2F7A5CNFSM4KC442M2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIKM4CA#issuecomment-571788808",
"url": "https://github.com/AstroSnail/apexctl/issues/4?email_source=notifications\u0026email_token=AAOBGORG3LIWIIKLCONQ6E3Q4T2F7A5CNFSM4KC442M2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIKM4CA#issuecomment-571788808",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]

thanks for this mate. just curious as to how to change what keys are mapped to for example setting the MX5 to F24?

@merlin5153 It's actually quite tough to do that. I recently changed the mappings so that the user doesn't have to do quite as much manual configuration (which also makes the automated installation pretty trivial).
If you really want to set your own mappings, you have a few choices.
One is a very quick hack that will probably work in a pinch. Simply configure your hotkey daemon to respond to pressing MX5 (currently the symbol it emits is XF86KbdBrightnessUp) by running something like xdotool key F24.
Another is finding a keysym map in /usr/share/X11/xkb/symbols/ that has all the symbols you want. For example, in my system, fujitsu_vndr/us has all the F-keys up to F32, and is based on the regular us layout.
This would make it almost ideal, but it has the caveat that the default evdev keycodes only go up to F24, and the fujitsu keycodes map a lot of keys differently which could make your keyboard unusable. (the keycode configurations are in /usr/share/X11/xkb/keycodes/)
On top of that, you'll have to edit the config/00-apex.hwdb file in ApexCtl before you install it, so that udev correctly maps the scancodes of the extra keys that the keyboard sends into the keycodes which map to F13-F24. If you change the keys you want to f13 through f24 it should work with the evdev keycodes. (see an old version of the file)
After that, it should be a simple case of making sure you remember to give the right options to setxkbmap. (or correctly setting up whatever your keyboard configuration tool is)
Lastly, you can go fully custom. This was what ApexCtl used to do before I made the mapping changes. If you look at this old commit, you'll find a config/steelseries file and extra installation instructions in the README. Instead of relying on keysym maps already present in your system, ApexCtl shipped with one you would install yourself, typically somewhere in your home directory tree.
Please note there is a bug in this setup, where the media keys (at the right edge of my Apex) do not work at all.
Additionally, at the end of the README are tips for even further customization to give you complete control over the mapping from keycodes to symbols.
This is a very advanced approach that will probably take a lot of time to get working properly, so it isn't for everyone, which is why I decided to change it. I might bring back detailed instructions and support files later in case you want to try this out.

I’m actually really new to linux and want to use my Mx keys for various functions for my games and MX5 was my push to talk. I have it working as a push to talk but with it being assigned to brightness I get the icon showing up on my screen which is annoying. I’ll have a read on your suggestions in the morning when I wake up

Ah, that's unfortunate. I imagine a lot of these XF86* symbols will interfere with the system. Unfortunately the default configuration rules don't leave very much room for extra keys.
I might be able to help you on this specific situation though.
In the config/00-apex.hwdb file you'll find the udev configuration that maps scancodes to keycodes. If you swap the number to the right of KEYBOARD_KEY_0700ec= with, for example, the one below it, the MX5 key will now send XF86Reply, which hopefully doesn't cause any unwanted icons. You can try swapping numbers around until you find a setup that you like.

Thank you very much mate

that worked out perfectly mate thank you so much

You're welcome. :)
Just to let you know, I've pushed those extra instructions and files for advanced configuration. If you ever want to give it a try, it's all there. The default installation is unchanged.

I just got the time to mess around with this more and I have more questions :)

I tried mapping keys using Gnome Settings -> Devices -> Keyboard and it detects the keys, but then it does nothing.
I tried the advanced configuration but then everything got messed up. Like M9 was disabling the touchpad or enabling it. I even don't have a touchpad. :) Then I tried to uninstall everything that I had done to that moment and still my keyboard had the keys enabled. So I rerun sudo make install and now everything is where I started from.

My question is: Can I map keys using Gnome Settings Devices Keyboard, or do I have to use some other software?
I want to be able to let's say map MX1 to open the terminal (currently super+T) or in the future run custom command line by pressing M6 without it triggering other things.
I am very new to this so explain it to me like a child :)
P.S. Loving the sudo make install and sudo make uninstall scripts. Much easier.

I am not familliar with Gnome Settings Devices Keyboard, so I don't know for sure.
From what I can quickly find, you should be able to set custom keyboard shortcuts with it. If it can detect the keys, maybe you can set a shortcut that makes MX1 open the terminal?
If it doesn't work at all, you can try using specific software for keyboard shortcuts, such as sxhkd or xbindkeys. You can use xev | fgrep keysym to find out what exactly the keys are sending to help you configure them.
The advanced configuration is also probably causing problems with Gnome Settings Devices Keyboard. When you install the extra 00-apex.hwdb file but don't configure the keyboard, you get exactly what you described. (M9 toggles the touchpad)
The advanced configuration does not take into account the system's usual mappings, because it expects you to use different rules, which come with ApexCtl. If Gnome Settings Devices Keyboard isn't able to use the new rules then I think the only solution (short of not using Gnome) is to use Xmodmap as the old (Haskell) ApexCtl used to have.
I should be able to make an Xmodmap file that works with the current ApexCtl if the need arises.

I've pushed an update that adds an Xmodmap file which can be applied to the default configuration. It should help fix any issues with the system thinking you want to raise the keyboard brightness or toggle the touchpad.
If the provided instructions don't work try installing it to /etc/X11/Xmodmap instead, and tell me so that I can change the instructions.


Prepare to release Chaos first GA

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.ResourceManager.Chaos


test: correct the exception type and remove useless test in test_upload

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
6065

Relevant Lines:
7027

💛  - Coveralls


CRUD methods update

Add findById() findByIds() removeById() methods, and update All() DestroyAll() in connector.
Demo example can now use API Explorer to POST,GET and DELETE data.

You misunderstood 2 things:

I mean fork from the uuid branch and sand a request to master.
When I say keep people's commits I mean keep their original commits, not simply copying their files.

Well yes, I'll pull anothor request to master and close this one then.
I do keep the origin commits but add the example folder to test the API, maybe I should remove it and pull then?


Add better logging to path matcher validation

Signed-off-by: silverstar195<EMAIL_ADDRESS>Commit Message:
Add better logging to path matcher validation
Additional Description:
Risk Level:
Testing:
Docs Changes:
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]

The code change looks straightforward. Please take a look the coverage CI error.

main merge may fix CI - there were some transient issues
/wait on CI


add Pages utility class

Codecov Report

Merging #431 into master will decrease coverage by 0.16%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master     #431      +/-   ##
============================================
- Coverage     70.53%   70.36%   -0.17%
  Complexity      634      634
============================================
  Files           136      137       +1
  Lines          2912     2919       +7
  Branches        220      220
============================================
  Hits           2054     2054
- Misses          776      783       +7
  Partials         82       82

Impacted Files
Coverage Δ
Complexity Δ

...src/main/java/com/google/api/gax/paging/Pages.java
0% <0%> (ø)
0 <0> (?)

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 9b86a50...1cde64c. Read the comment docs.

@garrettjonesgoogle @vam-google PTAL. Also added test to make sure.


Feat: Changes Week 4

This PR contains all the exercises from week 4 done my way, i hope it helps.

LGTM!


Ability to override custom metadata per report not working in v1.19

UPDATE 3/24/22:
I think this is actually a bug in v1.19.  When using v1.18.0 the below works as expected, where the metadata specified in report.generate acts as the "default" metadata and is only used when there is not metadata specified within the individual report json.
This issue can also be found in this link on the readme
=============================
Hello, I originally posed this question on the gitter, but i'm putting it here for better tracking.
I noticed that metadata within a report's json overrides the default meta specified when generating a report.  I was wondering if this was also possible with custom metadata?
i.e if I generate the report with a custom 'app' and 'type' metadata properties
report.generate({
         jsonDir: cucumberJsonDir,
         reportPath: htmlReportDir,
         displayDuration: true,
         useCDN: true,
         pageTitle: 'Hello World E2E',
         reportName: `Hello World E2E - ${new Date().toLocaleString()}`,
         customMetadata: true,
         metadata: [
            {name: 'app', value: 'Hello World'},
            {name: 'type', value: 'Test type v1'},
         ],
         ...
      });

would it be possible to overrides these default values in the report's json like so
[
  {
    "keyword": "Feature",
    "name": "Hello-Integration",
    "line": 1,
    "id": "hello-integration",
    "tags": [],
    "uri": "hello-integration.feature",
    "metadata": {
      "app" : "Hello world",
      "type": "Test type v2"
   },
    "elements": [
     ...

Environment (please complete the following information):

multiple-cucumber-html-reporter:  1.19.0
Node.js version: 14.18.1
NPM version: 8.1.1
Platform name and version: MacOS Monterey 12.0.1
Cucucmber version: 5.1.0

Additional context
in my circumstance I need a way to add an additional column (outside of the default metadata properties) to the report table with a variable that can change for an individual row.

This is fixed with this release, can you check that and if so close this issue?

Awesome, looks like it works now, thanks a lot!


add ownerOnly test cases

Ref #300 #351 #355

Codecov Report

Merging #363 (1e4a6b8) into master (321faa7) will increase coverage by 0.38%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #363      +/-   ##
==========================================
+ Coverage   36.67%   37.06%   +0.38%
==========================================
  Files          21       21
  Lines        9057     9057
==========================================
+ Hits         3322     3357      +35
+ Misses       5369     5337      -32
+ Partials      366      363       -3

Impacted Files
Coverage Δ

KubeArmor/core/kubeUpdate.go
44.37% <0.00%> (+0.17%)
:arrow_up:

KubeArmor/feeder/policyMatcher.go
37.02% <0.00%> (+1.04%)
:arrow_up:

KubeArmor/enforcer/appArmorProfile.go
26.76% <0.00%> (+1.80%)
: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 321faa7...1e4a6b8. Read the comment docs.

@nam-jaehyun I used Audit because otherwise I wouldn't get logs for testcase when owner is allowed access.
I based it on testcase 8 where we are checking for allow access but used audit cause we wouldn't get the allowed logs otherwise.

@daemon1024 that is the intention of the policy. we don't generate alerts for allowed operations.


Kestrel stops processing requests for a period

I have been migrating a .NET Framework 4.x project to .NET core. In the process I ran into an issue with HttpListener not working as expected, so migrated my code to use Kestrel.
The server application is a high-performance game server that handles request and response bodies in a completely custom way. It processes around 3000req/s. After around 5-30 minutes of correct execution, the server goes into a state where it is no longer processing incoming requests. Eventually it will recover from this state, but by this point clients believe they have lost connections.
I have been debugging over the last few days and have ruled out my code being the direct issue, but I have also been unable to reproduce under non-production load. I did manage to get a core dump in the hanging state and you can find the log of sos EEstack here. I am able to share any further lldb/sos output should it be relevant.
While I fully intend to continue investigation on my own, I want to post this here for visibility in case someone working on the project can guide me in the right direction based on the thread call stacks above.
The project was built against .NET core 2.1.4 / Kestrel 2.2.0-preview2-35157 on a macOS host using dotnet publish, running on an Ubuntu host (rid linux-x64).
Note that I was seeing similar behaviour before migrating from HttpListener, so it is quite possibly something at a lower level or unrelated to Kestrel directly.
As the project this is being used in is private, I cannot link to the source, but here is an extract showing how I am using Kestrel:

private static void StartHttpListener()
{
    var host = new WebHostBuilder().UseKestrel(options =>
        {
            options.ConfigureEndpointDefaults(o => o.NoDelay = true);
        })
        .Configure(app =>
        {
            app.Run(context =>
            {
                DogStatsd.Increment("http_requests");
                return HandleConnection(context);
            });
        })
        .UseUrls("http://*:80")
        .Build();

    host.Run();
}

private static Task HandleConnection(HttpContext context)
{
    var request = context.Request;
    var response = context.Response;

    var client = UserManager.GetClientFromToken(incomingToken);
    if (client == null)
    {
        response.StatusCode = 403;
        return Task.CompletedTask;
    }

    var tcs = new TaskCompletionSource<bool>();

    client.SetStreams(request.Body, response.Body, (int)(request.ContentLength ?? 0), tcs);
    // the request is read by the client synchronously here.

    // the response is processed and written to by a separate worker pool within one second of this call.
    // after the worker finishes using the response, it will set tcs.SetResult(true) to complete the returned task below.
    return tcs.Task;
}

Thanks in advance for any help with this issue.

Yes, there is one instance of a non-async read (I believe there was a reason to do it this way originally). To ensure there is no thread pool starvation I do have the thread pool set to a very large size.
Thanks for the advice. I will remove the synchronous stream read logic and see if it helps.

Maybe look at the number of items queued to the thread pool:
0:016> !dumpheap -stat -type QueueUserWorkItem
Statistics:
              MT    Count    TotalSize Class Name
00007ffd3d76d8b0        1           24 System.Threading.QueueUserWorkItemCallbackDefaultContext+<>c
00007ffd3d76d860     1000        32000 System.Threading.QueueUserWorkItemCallbackDefaultContext

Hmm that may not work for queued tasks. Checking something.

(lldb) dumpheap -stat -type QueueUserWorkItem

Statistics:
              MT    Count    TotalSize Class Name
00007f45f20c5bf0        1           24 System.Threading.QueueUserWorkItemCallbackDefaultContext`1+<>c[[System.Object, System.Private.CoreLib]]
00007f45ef38da00     3301       132040 System.Threading.QueueUserWorkItemCallback
00007f45f20c5b28     6250       200000 System.Threading.QueueUserWorkItemCallbackDefaultContext`1[[System.Object, System.Private.CoreLib]]
Total 9552 objects

This is not looking too happy, that's for sure.

Starvation it is! It's likely Kestrel can't serve requests because it can't even schedule the callback to parse the incoming http requests. If you can't change the calling code, you can buffer the incoming body so you won't kill the thread pool.
Option #1: Change the Stream reading to be async.
Option #2: Buffer the incoming Streams so you can keep the synchronous stream reading code.
private static async Task HandleConnection(HttpContext context)
{
    var request = context.Request;
    var response = context.Response;

    var client = UserManager.GetClientFromToken(incomingToken);
    if (client == null)
    {
        response.StatusCode = 403;
        return Task.CompletedTask;
    }

    context.Request.EnableBuffering();
    await context.Request.Body.DrainAsync(CancellationToken.None);

    context.Request.Body.Seek(0L, SeekOrigin.Begin);

    var tcs = new TaskCompletionSource<bool>();

    client.SetStreams(request.Body, response.Body, (int)(request.ContentLength ?? 0), tcs);
    // the request is read by the client synchronously here.

    // the response is processed and written to by a separate worker pool within one second of this call.
    // after the worker finishes using the response, it will set tcs.SetResult(true) to complete the returned task below.
    await tcs.Task;
}

Thanks again for the options. I will make the changes and report back after testing with production payload tomorrow!

On looking back over the data I collected I noticed that I was graphing the AvailableThreads from the worker pool rather than correctly calculating how many were free/spare using (Min - (Max-Available)). I also noticed we were setting the MaxThreads to increase the pool size, rather than MinThreads (which would have only had a negative effect).
I am also kicking myself for not realising the cause here, as I spend a good month working on a large refactor to async code in another project which encountered similar issues.
I have since re-deployed and things are looking to be 100% stable (I converted one .Read to .ReadAsync and set SetMinThreads to a sane 16 * ProcessorCount just to catch any potential lingering issues).

It's a wonder in this async world we live in there are no debug level diagnostics to warn the develoeper of threadpool starvation, as it's easy to run in to and hard to diagnose if you don't know what you're looking for.
Anyways, all fixed. Happily serving ~2,000req/s with no signs of struggling 👍.

https://twitter.com/davidfowl/status/1048441309696909312 it's coming


Support for "tvg-shift" attribute in channel list

Is it possible to get support for the "tvg-shift" in m3u files, which clients use to shift EPG data by a certain number of hours for a given channel.
I'm using iptv-epg for my guide data, and they've got the ability to shift individual channels if the data is off for those channels only... But instead of updating the guide itself, they just add it to the m3u file in the form of a new element. Example:
#EXTINF:-1 tvg-id="RTEOne.ie" tvg-name="RTE One IE" tvg-logo="http://static.iptv-e.../RTEOne.ie.png"tvg-chno="112" tvg-shift="-1" group-title="Ireland",RTE One
Today xTeVe ignores this parameter and does not pass it through so even apps that support it like Tivimate do not show the time shift.
Ideally, xTeVe would process the shift internally and shift the time in the EPG so that it works with all clients regardless of their support. It should also expose this setting in the UI for manual adjustment.

No, this is not possible.  xTeVe allows XMLTV files from different providers to use, so the time shift in the M3U is no longer valid.  An XMLTV file also includes the value of the time shift, if the time is correct on the client, the time shift is also calculated.
XMLTV File:
<programme channel="1" start="20190608004300 +0200" stop="20190608004500 +0200">
    ...
</programme>

Would be great if this could be reviewed again. What @GroupMaster said seems to make sense. I just need to shift a couple of channels and tvg-shift seems to be the most common/supported way of doing this among the various clients/providers.


Radarr and Sonarr in one download folder creates issues

I've configured Unpackerr today because of a certain series that needed to be extracted for every episode. Everything went smoothly until i restarted the docker and i saw it was unpacking a finished episode again. (it was already successfully extracted).
After some searching i saw that it detected every episode two times, once from Sonarr and once from Radarr. I have checked my config file and that seems all right -> for each instance i have uncommeted the header, i've added the unique url, the api key and the path.
The only thing i can think of that creates this issue is that in my case both Sonarr and Radarr uses the same download agent which moves completed downloads to the same folder. So both are watching /completed.
So somehow, the api communication is not used to detect the queue? i'm not sure what to do here, is there any possibility to check this or fix this? For now i've disabled the Radarr part of the configuration and it is working correctly now.

You'll need to configure sonarr and radarr correctly by adding tags or labels. Simple as that.

That won't be the case. You can have 10 instances downloading to the same place, arr apps don't care. They monitor the label you have set in them and that's all. Id recommend making sure that is setup right in the arr apps.

To see what unpackerr sees: Click Activity then Options in the top right. Check the box to include unknown items.￼

To see what unpackerr sees: Click Activity then Options in the top right. Check the box to include unknown items.￼

ah okay, never knew that. i'm not using tags so i'll look into that to fix it. Thanks for the help.

Hmm, while i appreciate the quick response i'm not sure using labels or tags fixes this for me. I'm  not using any tags or labels. If i understand them correctly its a way to use different settings/profiles for different items. But as i said, i don't need that.
Why does Unpackerr even look at the unkown items? Apparently there is already a distinction within the *ARR apps to be able to ignore items from another *ARR app. Can't Unpacker use the same method?

You have to setup the labels in the arr apps  correctly.
Settings > download clients.
Each arr app has a label it watches, that is what is listed in the activity of each app. Unpackerr watches the same queue endpoint.

Unpackerr looks at unknown items because they are in the queue. Any app that integrates will see them too. Recommend avoiding unknown items by setting labels for your downloads. What you are reporting right now is the second most commonly reported problem. Many folks don't set up their starr apps correctly.￼ ez fix though.

Let me know if you need more assistance.


Failing to lookup ProcessName because of Access Denied should fallback to Win32-API

Trying to resolve #4181 where IIS-applications with medium-trust no longer can use ${processname} and ${processid}
Bug introduced with #3941 in NLog 4.7.1. Guess there was a reason for using Win32 API besides speed optimization :)

@304NotModified Ready for review. Gonna create some conflicts when merging to dev-branch, but that is another story.


ENH: add wavedecn and waverecn functions

adds n-dimensional variants of wavedec2 and waverec2.
This was split off from the now closed #52

Looks good at a quick glance. This is one way of working around #54. Personally, I think idwtn should be strict in what input shapes it accepts, and not silently truncate it's input, but for a multilevel transform this is the correct thing to do. Should we then close #54, or still change the behaviour of idwtn?

If you want to add documentation on why the behaviour in #54 is expected and mention this as a workaround, I would be okay with that.  I don't really know which behaviour is preferable for idwtn,

This was rebased using current master.  A major overhaul of the tests was done in the last commit to make them more comprehensive and consistent across all dimensions.

@kwohlfahrt can you check if the updated implementation of waverecn here looks reasonable to you.  I added a utility function called _match_coeff_dims to get things to work now that take is no longer an argument of idwtn.

@grlee77 sorry, I completely missed that I'd been tagged here. The idea looks clean, however in idwtn we allow (and silently ignore) the dictionary to contain keys which are not just combinations of 'a' and 'd', and values which are None. _match_coeff_dims does not handle this at the moment.
There are a few edge cases (e.g. one level being {}) that are not handled as well. I'll write tests and fixes for as many as I can catch and open a PR on your repo. Sorry again for taking so long to respond.

I merged @kwolfahrt's code to handle missing or invalid coefficients, but please do not merge just yet.  I still want to add a warning in the case of missing coefficients or unexpected extra keys in the detail coefficient dictionary and an exception if any coefficients have the wrong shape.

@kwohlfahrt
Please review the most recent commit.  I added an enable_warnings argument to _fix_coeffs that raises errors for the following two cases:

any detail coefficient arrays are None
any keys in the detail coefficient dictionary have invalid names

waverecn itself now raises a warning if any of the detail coefficient dictionaries are empty.
idwtn also uses fix_coeffs, but I did not enable the warnings there yet.  Do you think we should do so?  If so, perhaps enable_warnings should be False in the waverecn call to _fix_coeffs so we don't raise the same warnings twice (or the call to _fix_coeffs could be removed from waverecn since idwtn is going to call it again anyways).

Sorry for the delay, here are my thoughts:

I think it's probably better to make this an exception, and say all values must be array_like

If we're worried about compatibility, a deprecation warning for a release cycle is probably OK. Though iirc we were breaking back-compat so no need to fuss. I'd catch the exception and raise the warning instead, just to get the code for the future written now.

Maybe this too? I'm pretty on the fence about it.

I'm not sure it's necessary to warn if any detail coefficient dictionaries are empty. It's an extension of allowing any other number of coefficients to be missing, so it's not really unusual enough to cause a warning.
I would also enable the warnings/exceptions for idwtn. If it is used everywhere, I don't think the enable_warnings flag should exist, it should just be the behaviour of the function.

@kwohlfahrt
see how this looks and let me know if there is a cleaner way to do this.
I removed the warning about empty coefficient dictionaries as suggested.
I now raise a DeprecationWarning if any dictionary entries are None or have an invalid key name.  This will become a ValueError after the deprecation period.

_fix_coeffs should also check if there are (valid) keys that are not the same length. A dictionary containing 'aa' and 'aaa' should be an error.
Given that we 'broke' idwtn already in #125, I don't think the deprecation warning is necessary any more, but up to you.
Otherwise looks good!

@kwohlfahrt
any other comments here?  If not, feel free to merge it

I ended up not needing to modify any of the existing 2D tests.  I just had to add a line to idwt2 to drop any coefficients that were None before calling idwtn.

@kwohlfahrt : this is now ready to review again

@kwohlfahrt:  still waiting on Travis, but I addressed the issue above and added a couple new tests of the axes arguments to dwtn, idwtn.

Apart from the isinstance check, looks good to me. I don't think we should reject other types of sequence unless there's a particular reason for this.

okay.  should be good to go now


Compilation

Issue details
Hi!
Can you say how you compile project (module jadx-gui) in ~30 Mb .exe file. When I compile project or module its compiling in 110Mb .exe file. Guess that I choose wrong task(s) and args
Jadx version
1.4.7
Java version
OpenJDK 19.0.2
OS

[X] Windows
[ ] Linux
[ ] macOS

You are comparing apples (Jadx stable version) with peas (latest unstable version) - the next stable version will be ~110MB in size.


Fix the issue that images cause problems with setup scripts

Adresses https://github.com/devonfw-tutorials/tutorials/issues/204

@GuentherJulian do you know what's up with the build?

@GuentherJulian do you know what's up with the build?

@maybeec The OpenApi tutorials fail on the windows build because the Java version does not match. Windows Server 2022 has Java 8 as default version in GitHub, but Java 11 is required for this project. The Ubuntu environment already uses Java 11.
In this tutorials we do not use the devonfw-ide, so that the version of the OS is used. Created an issue for this, to use devonfw-ide instead https://github.com/devonfw-tutorials/tutorials/issues/208

couldn't we then simply fix it with https://github.com/actions/setup-java ?

That would also be a solution. My thought was that the tutorials ensure to have the correct version on their own. Independent of the environment. Maybe in the future we will have different tutorials that need different Java versions. Then we might have the same problem later.

OK got it. So normally the tutorial should state which devonfw ide is setup but there is no choice to impact the Java version, isn't it? I feel even Java 11 is already defaulted in the devonfw ide.
Is this tutorial not running an devonfw ide or is it an old version which is restored here or something else?
I am trying to unterstand how we get control on it. Currently I thought we already have control by the chosen devonfw ide configuration

OK got it. So normally the tutorial should state which devonfw ide is setup but there is no choice to impact the Java version, isn't it? I feel even Java 11 is already defaulted in the devonfw ide. Is this tutorial not running an devonfw ide or is it an old version which is restored here or something else? I am trying to unterstand how we get control on it. Currently I thought we already have control by the chosen devonfw ide configuration

Yes, Java 11 is currently the default in the devonfw-ide. We simply do not install and use the devonfw-ide in these tutorials. So in the Windows workflow, the Java version of the OS is used, which is Java 8.
At the moment we only have control on the version of the ide, but not (for example) the Java version that is installed within the ide. That could be a feature for the future. But in this case, simply installing the default devonfw-ide would fix the problem, I think.


⚠ Bofrost.at has degraded performance

In 0cc047b, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1977 ms

Resolved: Bofrost.at performance has improved in ff45dc0.


Vim documentation on EPUB format.

Currently, vim's documentation as available through :help and in html format, but there is no mobile friendly way to read the documentation.
It would be nice to be able to read the documentation on EPUB format from my smartphone for those times were I don't feel to use a computer any more.
A mobile friendly html documentation would be nice as an alternative.

can epub be automatically be converted from the existing documentation? I think this might be more relevant for https://github.com/c4rlo/vimhelp

I am closing this. The documentation is available in text format. Could be a nice side project to create an epub version, but this is out of scope for the Vim project. Feel free to contribute.


Work in progress Quat animation

This is what I have so far. The Rotation shim is exposed to the public API, which isn't super desirable, but it shows the functionality, at least.

Be sure to merge my 0.3 update for this! I'll happily merge it when it's done

I can't explain why the CI is failing - neither of us wrote that.

The failing CI is due to a new clippy warning that they have already suppressed in master. It will go away on its own after merging.


Feature: add social icons to footer

Type of feature
🍕 Feature
Current behavior

Suggested solution
Replace blue boxes with social icons

Additional context
No response
Code of Conduct

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

@TAKANOME-DEV Can i work on this issue?

Sure

Okay.. i've been able to run the project on my localhost , but there's error in the entire client side folder.. something related to eslint . How do i fix that? and i'll need to install react - icons package

every file i open just shows error and i've installed the packages in the client side file

i think it has something to do with prettier ... i have installed the packages in package.json checked the nodemodules , the prettier folder is there .. so i don't know what the problem is anymore

the reason for this error is:
probably you didn't run pnpm install in the root folder .
To fix this try to change directory  into the root folder by running cd <the folder name>
then pnpm install this should work.
let me know if any error comes  up

Like @dev-phantom said, run pnpm install in the root of the project and it will take care of installing the packages for the client, server and packages.
If you don't have pnpm, you can install it by running npm i -g pnpm.
If this is not mentioned in the readme, feel free to open an issue.

I read the contribution docs and i followed through with the process which is running pnpm install  in the the BlogHive Directory and i'm able to run the project on my localhost successfully

kindly screenshot this part or check if the node modules is present there

The node modules is present

Okay kindly delete that node module
and re-run pnpm install

let me know if this issue persist

The issue still persist .. i repeated the process from scratch already

delete the entire codebase reclone it and pnpm install
@TAKANOME-DEV

Hey @oluwadaprof open a draft pr and I'll have a look at that

Can i take a look in it


Make testing/validation of language files easier

Move "switch" logic from using comments to using a variable in the Load Script.

Closed with latest release


Pin azure/login action step to v1.5.1

The<EMAIL_ADDRESS>task added pre/post Azure Login steps and the pre-step is seriously impacting the time it takes to run an Action because it takes 30 seconds to run. This is further exacerbated by the fact that we only need the azure/login step for the issues opened event and the pre/post Azure Login steps are being added to each and Action.

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow


Pour integration test codes into hypercube

Effects

[x] Soft update
[ ] Breaking change
[ ] Chain fork related

Major Reviewer

@JoowonYun
@yoosah

Background

Should wait until #47 is merged
Should wait until #46 is fully reviewed

Summary

For EVM testing on the integration test environment, this PR is needed

Checklist

[x] Backward compatible?
[x] Test enough in your local environment?
[x] Add related test cases?

Let me check the result when main branch is poured on hypercube

Close it due to duplicate PR with #54


Adding two options

local_server_only:bool (allow to use list of servers from openapi.json
api_base_path (allow to use different path of api endpoints)

I think that it might be a bit more future-proof if we just define a simple 'servers' config variable. Then you have complete freedom in which servers you want to use in your openapi file.


[Flutter 1.2] I run the demo app but I cannot see remote stream video

I run the demo app but I cannot see remote stream video (With an Iphone with a Simulator)

We do not support emulators
Also, this might be related to this issue: https://github.com/cloudwebrtc/flutter-webrtc/issues/56

And yeah, some logs will be much more useful than empty screenshot (what should we do with that?)
Put some effort in debugging, before filling an issue, next time

Thanks for support, I try to get 2 real device and its work. I back to close issues but you did it.


Add material sample

Add new axaml style for support Material Avalonia
User may choose what style wanna use

Great PR, thanks!


Improved property selection in reconciliation dialog

Fixes #6031
Changes proposed in this pull request:

Column Mapping

Removed checkbox (Column mapping is included if matched to a property.).
After selecting a property mapping from the suggest dropdown, the mapping is displayed as "property (P-id) edit" (See screenshot below).
Clicking edit will revert the field back to an editable textbox.

Start Reconciling... button

Reconciling will only begin if each column that has a mapping was successfully mapped to a property (name, id).
If any column mapping contains plaintext, it is invalid so an alert window is popped up 'Column x is unmapped.' and the reconciliation is aborted.

Testing

Tested above cases.
Tested that the /api call to /command/core/reconcile contains the correct information for the mapped columns.

I will cover the reconcile against type part in a follow-up PR.

I think this is a great interim solution until a more holistic redesign of the whole dialog is developed and tested with users. I am just wondering if the "edit" button is visually consistent with other parts of the UI. But I don't necessarily have alternative suggestions.

The edit button's style is based on the one from the data grid:

Alright. Will do.