Add a score increase back for "supports latest Swift version"

With #1508 and #1509, we removed the broken/useless version of this score increase, but the idea behind it remains good and after a discussion yesterday we agreed to re-implement it.
For the purposes of this feature, we should define the "latest version of Swift" as the latest version that our build system supports. This may lag slightly behind reality as we sometimes don't immediately build on the latest beta versions, but it tracks reality closely enough and we don't want to track the latest version in two places. It's also very unlikely to penalise packages as if Swift 5.7 comes out and a package supports it before we start building with it, it's unlikely to have broken on 5.6.
So, we should increase the score by +10 for supporting the latest version of Swift that our build system tracks. We could also consider +5 for the next latest version, meaning +15 for supporting 5.6 and 5.5 (at the time of writing).
We shouldn't pay much attention to whether it's a major/minor release. If 6.0 comes along it becomes the latest version and the last 5.x release becomes the latest - 1.

Additional guidance on how this should work from https://github.com/SwiftPackageIndex/SwiftPackageIndex-Server/discussions/3168#discussioncomment-9881080:

The original idea was to award points if the package supported the “latest version of Swift”, and I believe a good measure of that would be the “latest shipping version of Swift”. So, once Xcode 16 is out of beta, it should award some points if there’s a green tick next to Swift 6 on any platform. If we deployed this today, we should give points for Swift 5.10 on any platform.


New Version Bug:

Describe the bug
UI looks scuffed on some mobile versions and doesn't work on some mobile versions
To Reproduce
Steps to reproduce the behavior:

Go to 'next.dogehouse.tv' in Mobile Opera and you will see that the UI is scuffed, if you go on next.dogehouse.tv on F12 Browser you will see the UI normally but it doesn't work

Expected behavior
UI is scuffed on some mobile browsers and doesn't work on some mobile browsers.
Screenshots
F12 Browser: (Good UI but buttons don't work)

Opera Browser: (Bad UI but buttons work)

What device are you on?
Xiaomi Pocophone F1 (Android 10)
Additional context
Add any other context about the problem here.

only the desktop version is complete (complete as in ready for testing, it still isn't responsive). the mobile version is still being worked on

ill leave this open for now

actually nvm. please refer #1766 for any responsive UI related issues


Report : CashBuyingPowerModel does not allow setting leverage. Cash accounts have no leverage

Run locally
I created an algorithm using GDAX on cash setup like this
          SetBrokerageModel(BrokerageName.GDAX, AccountType.Cash);
          var btc = AddCrypto("BTCUSD", Resolution.Hour);

I ran the algo and generated the json file for the report.
(copy below)
CryptoAlgorithm.json.log
When running the report it throw an exception about leverage not allowed on cash account despite the fact I didn't use leverage on my algorithm.
Expected Behavior
Generate the report
Actual Behavior
Throw an exception "CashBuyingPowerModel does not allow setting leverage. Cash accounts have no leverage"
System.InvalidOperationException
HResult=0x80131509
Message=CashBuyingPowerModel does not allow setting leverage. Cash accounts have no leverage.
Source=QuantConnect.Common
StackTrace:
at QuantConnect.Securities.CashBuyingPowerModel.SetLeverage(Security security, Decimal leverage) in C:\Users\me\Documents\Perso\Dev\Test6\Lean-master\Common\Securities\CashBuyingPowerModel.cs:line 54
at QuantConnect.Securities.Security.SetLeverage(Decimal leverage) in C:\Users\me\Documents\Perso\Dev\Test6\Lean-master\Common\Securities\Security.cs:line 649
at QuantConnect.Securities.SecurityService.CreateSecurity(Symbol symbol, List1 subscriptionDataConfigList, Decimal leverage, Boolean addToSymbolCache) in C:\Users\me\Documents\Perso\Dev\Test6\Lean-master\Common\Securities\SecurityService.cs:line 173    at QuantConnect.Securities.SecurityManager.CreateSecurity(Symbol symbol, List1 subscriptionDataConfigList, Decimal leverage, Boolean addToSymbolCache) in C:\Users\me\Documents\Perso\Dev\Test6\Lean-master\Common\Securities\SecurityManager.cs:line 315
at QuantConnect.Report.PortfolioLooperAlgorithm.FromOrders(IEnumerable1 orders) in C:\Users\me\Documents\Perso\Dev\Test6\Lean-master\Report\PortfolioLooper\PortfolioLooperAlgorithm.cs:line 43    at QuantConnect.Report.PortfolioLooper..ctor(Double startingCash, List1 orders, Resolution resolution) in C:\Users\me\Documents\Perso\Dev\Test6\Lean-master\Report\PortfolioLooper\PortfolioLooper.cs:line 116
at QuantConnect.Report.PortfolioLooper.d__12.MoveNext() in C:\Users\me\Documents\Perso\Dev\Test6\Lean-master\Report\PortfolioLooper\PortfolioLooper.cs:line 274
at System.Collections.Generic.List1..ctor(IEnumerable1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at QuantConnect.Report.Report..ctor(String name, String description, String version, BacktestResult backtest, LiveResult live) in C:\Users\me\Documents\Perso\Dev\Test6\Lean-master\Report\Report.cs:line 50
at QuantConnect.Report.Program.Main(String[] args) in C:\Users\me\Documents\Perso\Dev\Test6\Lean-master\Report\Program.cs:line 69
Potential Solution
Update the line 43 of PortfolioLooperAlgorithm.cs currently setting a default leverage of 10000m (why is it initialize to 10000 ?)
Reproducing the Problem
Algorithm used to generate the file
using QuantConnect;
using QuantConnect.Algorithm;
using QuantConnect.Algorithm.Framework.Execution;
using QuantConnect.Algorithm.Framework.Risk;
using QuantConnect.Brokerages;
using QuantConnect.Data;
using QuantConnect.Data.Consolidators;
using QuantConnect.Indicators;
using QuantConnect.Orders;
using System;

namespace Nazbot.Algorithm
{
    public class CryptoAlgorithm : QCAlgorithm
    {
        private enum Trend
        {
            None = 0,
            Up = 1,
            Down = 2,
        }
        private ArnaudLegouxMovingAverage _alma;
        private Trend _previousTrend = Trend.None;
        private Trend _warmupTrend = Trend.None;

        private decimal _high;

        private int _count;

        private Series _sellSeries;
        private Series _buySeries;
        private Series _almaSeries;

        public override void Initialize()
        {
            SetStartDate(2018, 1, 1);  //Set Start Date
            SetEndDate(2018, 12, 31);
            SetCash(1000);             //Set Strategy Cash

            SetBrokerageModel(BrokerageName.GDAX, AccountType.Cash);
            var btc = AddCrypto("BTCUSD", Resolution.Hour);
            btc.SetDataNormalizationMode(DataNormalizationMode.Raw);

            _alma = ALMA(btc.Symbol, 50);

            var consolidator = new TradeBarConsolidator(TimeSpan.FromHours(4));
            consolidator.DataConsolidated += (sender, tradeBar) =>
            {
                if (!_alma.IsReady)// || _count > 5)
                {
                    return;
                }

                var trend = (Securities["BTCUSD"].Close > _alma) ? Trend.Up : Trend.Down;

                if (_warmupTrend == Trend.None)
                {
                    Debug($"Warmup trend : {trend.ToString()}");
                    _warmupTrend = trend;
                    // Mode warmup, we wait the next reversal
                    return;
                }

                if (_previousTrend == Trend.None && _warmupTrend == trend)
                {
                    // Mode warmup, we wait the next reversal
                    return;
                }

                Debug($"Trend reversal : previous {_previousTrend.ToString()}, Current {trend.ToString()}");
                if (!Portfolio.Invested)
                {
                    var price = Securities["BTCUSD"].Close;
                    if (trend != _previousTrend && trend == Trend.Up && price > _alma)
                    {
                        Debug($"Buying at {price}");
                        SetHoldings("BTCUSD", 1);
                        _count++;
                        StopMarketOrder("BTCUSD", -Portfolio["BTCUSD"].Quantity, Securities["BTCUSD"].Close * 0.99m);
                    }
                }
                else
                {
                    _high = Math.Max(Securities["BTCUSD"].High, _high);

                    // Trend changed
                    if (_previousTrend != trend)
                    {
                        Debug($"Liquidating : Trend is now {trend.ToString()}");
                        Liquidating("BTCUSD", $"Trend is now {trend.ToString()} ; High was {_high}");
                        //SetHoldings("BTCUSD", -1);
                    }
                }

                _previousTrend = trend;
            };
            RegisterIndicator(btc.Symbol, _alma, consolidator);

            SetRiskManagement(new TrailingStopRiskManagementModel(0.01m));
            SetExecution(new NullExecutionModel());

            var almaPlot = new Chart("Bouh");
            //On the Trade Plotter Chart we want 3 series: trades and price:
            _buySeries = new Series("Buy", SeriesType.Scatter, "$", System.Drawing.Color.Green, ScatterMarkerSymbol.Triangle);
            _sellSeries = new Series("Sell", SeriesType.Scatter, "$", System.Drawing.Color.Red, ScatterMarkerSymbol.TriangleDown);
            _almaSeries = new Series("AlmaIndicator", SeriesType.Line, "$", System.Drawing.Color.Yellow);
            almaPlot.AddSeries(_buySeries);
            almaPlot.AddSeries(_sellSeries);
            almaPlot.AddSeries(_almaSeries);
            AddChart(almaPlot);
        }

        /// OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.
        /// Slice object keyed by symbol containing the stock data
        public override void OnData(Slice data)
        {

            Plot("AlmaIndicator", _alma);
            if (!Securities["BTCUSD"].Exchange.ExchangeOpen)
            {
                Debug("Exchange open");
            }

        }

        public override void OnOrderEvent(OrderEvent orderEvent)
        {
            if (orderEvent.Status == OrderStatus.Filled)
            {
                var series = orderEvent.FillQuantity < 0 ? "Sell" : "Buy";

                Plot(series, orderEvent.FillPrice);
            }

            Debug($"{Time} {orderEvent} cash available ({Portfolio.CashBook["USD"].Amount})");
        }

        private void Liquidating(Symbol symbol, string reason)
        {
            Debug($"Liquidating : {reason}");
            Liquidate(symbol);
        }

    }
}

System Information
Windows 10
Visual Studio 19
Checklist

[X] I have completely filled out this template
[X ] I have confirmed that this issue exists on the current master branch
[X] I have confirmed that this is not a duplicate issue by searching issues

[X] I have provided detailed steps to reproduce the issue

Hi @nazbrok
Did a quick test locally and wasn't able to reproduce in current master, could you confirm your using latest master? We fix a related issue a few days back https://github.com/QuantConnect/Lean/pull/4068

Never mind, I was running the algorithm backtest but the bug is in the report generator: https://github.com/QuantConnect/Lean/blob/master/Report/PortfolioLooper/PortfolioLooperAlgorithm.cs#L43
Thanks for the report @nazbrok

Yes I just double checked and on different environment (mac os). With the master branch the report throw the error.


⚠ ClamAV has degraded performance

In 68d0df1, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 203 ms

Resolved: ClamAV performance has improved in d28347c.


Open new Tab for projects

Description
Everything is fine, but it would be better to open a new Tab when you click these buttons.
check these links were to change:
https://github.com/FrancescoXX/4c-site/blob/ec135111efa16960b3dbf510ecc5ac561a954990/components/GetProjects.js#L87
https://github.com/FrancescoXX/4c-site/blob/ec135111efa16960b3dbf510ecc5ac561a954990/components/GetProjects.js#L67
Just add target="_blank"

Screenshots
No response

Do you want to work on this as well @devvsakib??

@tobySolutions  ok i will do it later, assign me in both issue


Brutal error messages after #320

Trying to adapt an older workflow to the new 'canonical' syntax from #320 I had a rough time debugging due to these cryptic errors:
eric@recury  ~/Sandbox/lyra-local   master ± $LYRAPATH/build/bin/lyra apply azure_wordpress
Failed to invoke method /Users/eric/Sandbox/go/src/github.com/lyraproj/lyra/build/goplugins/yaml#Yaml::ManifestLoader/loadManifest() (file<EMAIL_ADDRESS>line: 107)
Caused by: block may only contain workflow steps. %!{actual}(MISSING) is not supported here (file: workflows/azure_wordpress.yaml, line: 56, column: 5)

I'm not sure what %!{actual}{MISSING} means and it took quite some time to track this down.

Closed by lyraproj/yaml-workflow#9


feat(Global Catalog): add service and unit test code to project

PR summary
This PR adds the generated service and unit test code for the global-catalog service to the project.
Fixes: n/a
PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] New tests
[ ] Build/CI related changes
[ ] Documentation content changes
[ ] Other (please describe)

What is the current behavior?

What is the new behavior?

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

:tada: This PR is included in version 0.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add rake as non-development dependency

Rake is needed in any project requiring the gem, but is not in the
gemspec or Gemfileas a dependency. Most projects have it already, so I guess this
flew under the radar
This pull introduces/changes:

removes rake as development dependency
adds rake as a fully fledged dependency

Codecov Report

Merging #1562 into master will decrease coverage by 0.18%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1562      +/-   ##
==========================================
- Coverage   93.23%   93.04%   -0.19%
==========================================
  Files         105      105
  Lines        4758     4718      -40
==========================================
- Hits         4436     4390      -46
- Misses        322      328       +6

Impacted Files
Coverage Δ

lib/neo4j/shared/initialize.rb
92.3% <0%> (-7.7%)
:arrow_down:

lib/neo4j/active_node/id_property.rb
91.66% <0%> (-1.48%)
:arrow_down:

lib/neo4j/active_node/has_n/association.rb
94.07% <0%> (-1.44%)
:arrow_down:

lib/neo4j/shared/enum.rb
97.4% <0%> (-1.3%)
:arrow_down:

lib/neo4j/railtie.rb
79.48% <0%> (-1.24%)
:arrow_down:

lib/neo4j/shared/type_converters.rb
95% <0%> (-0.95%)
:arrow_down:

lib/neo4j/active_node/query/query_proxy_methods.rb
95.74% <0%> (-0.76%)
:arrow_down:

lib/neo4j/active_node/property.rb
94.11% <0%> (-0.33%)
:arrow_down:

lib/neo4j/shared/declared_properties.rb
88.54% <0%> (-0.24%)
:arrow_down:

lib/neo4j/migrations/base.rb
95.55% <0%> (-0.19%)
:arrow_down:

... and 12 more

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 e67abc2...6a1eb66. Read the comment docs.

@ttrmw could you explain how rake is required at runtime? An analogous gem activerecord does not list it as runtime dependency either. Maybe we have differing interpretations of what runtime means.


Add support for arm platforms

We are experimenting with arm-based nodes. Adding arm support to this project would be helpful.

ping @geekzoo @pperzyna @THUzxj
Can I get a review please?

we would love to see this implemented 🚀


Ultra disk IOPS example error?

[[Enter feedback here]]
(https://docs.microsoft.com/en-us/azure/virtual-machines/disks-types#ultra-disk-iops)
Ultra disk IOPS
Ultra disks support IOPS limits of 300 IOPS/GiB, up to a maximum of 160,000 IOPS per disk. To achieve the target IOPS for the disk, ensure that the selected disk IOPS are less than the VM IOPS limit.
The current maximum limit for IOPS for a single VM in generally available sizes is 80,000. Ultra disks with greater IOPS can be used as shared disks to support multiple VMs.
The minimum guaranteed IOPS per disk are 1 IOPS/GiB, with an overall baseline minimum of 100 IOPS. For example, if you provisioned a 4 GiB ultra disk, the minimum IOPS for that disk is 100, instead of eight.
If it is 1 IOPS/GiB, wouldn't it need to be:
if you provisioned a 4 GiB ultra disk, the minimum IOPS for that disk is 100, instead of FOUR._

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

ID: 1b4f48bd-e5e9-ebca-e29e-9dec927bc2d3
Version Independent ID: 2e032831-dbb6-aaf2-15ce-ac072ef36727
Content: Select a disk type for Azure IaaS VMs - managed disks - Azure Virtual Machines
Content Source: articles/virtual-machines/disks-types.md
Service: storage
Sub-service: disks
GitHub Login: @roygara
Microsoft Alias: rogarana

@jgezelscorp The PR has been initiated, We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


iOS app is not building with new architecture in react native 0.72.6

React Native 0.72.6
Xcode 15
New architecture enabled
App builds successfully with old architecture but gives following error with new architecture while building -

Below is the podspec for Share Extension
target 'ShareExtension' do
  use_react_native!

  pod 'RNShareMenu', :path => '../node_modules/react-native-share-menu'
end

Yeah, the project does not currently support the new architecture. If you'd like to follow along, we're tracking support for this in #293.

Hi @lindboe ,
what is the latest react-native version compatible with the<EMAIL_ADDRESS>is it<EMAIL_ADDRESS>as shown in the example?
thanks

@mhsfh if you're not using the new architecture, which is not required by recent react native, you can use the latest version with a few patches (using patch-package). Check out the list in Phase 0 for the PRs that fix those issues, you can copy their fix as a patch for now: https://github.com/Expensify/react-native-share-menu/issues/294

@lindboe  I made it work, thank you so much 🙏

@lindboe I made it work, thank you so much 🙏

Can you describe the path you fallowed?

@lindboe I made it work, thank you so much 🙏

Can you describe the path you fallowed?

for android I had to apply this patch:
diff --git a/android/build.gradle b/android/build.gradle
index 9557fdbf2fbf97b7f7aeaf7ce86d301a8ced213d..8adad42908c0d73c535c30f01c5437e2a7d9f33f 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,7 +1,7 @@
 apply plugin: 'com.android.library'

 android {
-    compileSdkVersion 29
+    compileSdkVersion rootProject.ext.compileSdkVersion
     buildToolsVersion "29.0.2"

     defaultConfig {

are you facing ios errors?

@lindboe I made it work, thank you so much 🙏

Can you describe the path you fallowed?

for android I had to apply this patch:
diff --git a/android/build.gradle b/android/build.gradle
index 9557fdbf2fbf97b7f7aeaf7ce86d301a8ced213d..8adad42908c0d73c535c30f01c5437e2a7d9f33f 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,7 +1,7 @@
 apply plugin: 'com.android.library'

 android {
-    compileSdkVersion 29
+    compileSdkVersion rootProject.ext.compileSdkVersion
     buildToolsVersion "29.0.2"

     defaultConfig {

are you facing ios errors?

Yeah, I've been trying to get this package to work on iOS for several days. I've experimented with different React Native versions, various projects, and different paths, but unfortunately, I haven't had any luck with it.

@EKOzkan am using react-native-share-menu 6.0.0 with react-native 0.72.6. what issue are you facing?

@EKOzkan am using react-native-share-menu 6.0.0 with react-native 0.72.6. what issue are you facing?

Hello @singh-sukhmanjit here to me I'm facing with "'RNShareMenu-Swift.h' file not found" message when I try build iOS.
React-Native 0.72
Xcode 15.3
Apple M3
It's happen in file "node_modules/react-native-share-menu/ios/ShareMenuManager.m" line 9:  #import "RNShareMenu-Swift.h"
Where is this file?

I can't get it to build with the custom view config either.
RN 0.73.6

@EKOzkan am using react-native-share-menu 6.0.0 with react-native 0.72.6. what issue are you facing?

You got it to work with the new architecture on?

Found Pull Request #260 witch fixes this issue:

Found Pull Request #260 witch fixes this issue:

So it works for you with the new arch enabled?

Has someone made it work with Expo? I am using Expo Dev Client.

I'm running the App on iOS 17.4 with React native v0.73.6.
Share Menu is working fine on my app.
Here's the all patches that I have applied in case any one find it helpful -

Patch 1

diff --git a/node_modules/react-native-share-menu/ios/Constants.swift b/node_modules/react-native-share-menu/ios/Constants.swift
index 08385b7..87b0d11 100644
--- a/node_modules/react-native-share-menu/ios/Constants.swift
+++ b/node_modules/react-native-share-menu/ios/Constants.swift
@@ -42,6 +42,7 @@ public let COLOR_TRANSPARENT_KEY = "Transparent"

 public let MIME_TYPE_KEY =  "mimeType"
 public let DATA_KEY =  "data"
+public let CONVERSATION_IDENTIFIER_KEY = "conversationIdentifier"
 public let EXTRA_DATA_KEY =  "extraData"

 // MARK: Events
diff --git a/node_modules/react-native-share-menu/ios/Modules/ShareMenuReactView.swift b/node_modules/react-native-share-menu/ios/Modules/ShareMenuReactView.swift
index e290cce..24cd59b 100644
--- a/node_modules/react-native-share-menu/ios/Modules/ShareMenuReactView.swift
+++ b/node_modules/react-native-share-menu/ios/Modules/ShareMenuReactView.swift
@@ -7,6 +7,7 @@

 import Foundation
 import MobileCoreServices
+import Intents

 @objc(ShareMenuReactView)
 public class ShareMenuReactView: NSObject {
@@ -45,6 +46,7 @@ public class ShareMenuReactView: NSObject {
         }

         extensionContext.completeRequest(returningItems: [], completionHandler: nil)
+        ShareMenuReactView.detachViewDelegate()
     }

     @objc
@@ -89,7 +91,20 @@ public class ShareMenuReactView: NSObject {
                 return
             }

-            resolve([DATA_KEY: data])
+            var intent: INSendMessageIntent? = nil
+            var conversationIdentifier: String? = nil
+
+            // Populate the recipient property with the metadata in case the user taps a suggestion from the share sheet.
+            if #available(iOS 13.0, *) {
+                intent = extensionContext.intent as? INSendMessageIntent
+            } else {
+                intent = nil
+            }
+            if intent != nil {
+                conversationIdentifier = intent!.conversationIdentifier
+            }
+
+            resolve([DATA_KEY: data ?? nil, CONVERSATION_IDENTIFIER_KEY: conversationIdentifier ?? nil])
         }
     }

diff --git a/node_modules/react-native-share-menu/ios/ReactShareViewController.swift b/node_modules/react-native-share-menu/ios/ReactShareViewController.swift
index f42bce6..a827e7f 100644
--- a/node_modules/react-native-share-menu/ios/ReactShareViewController.swift
+++ b/node_modules/react-native-share-menu/ios/ReactShareViewController.swift
@@ -13,7 +13,7 @@ class ReactShareViewController: ShareViewController, RCTBridgeDelegate, ReactSha
   func sourceURL(for bridge: RCTBridge!) -> URL! {
 #if DEBUG
     return RCTBundleURLProvider.sharedSettings()?
-      .jsBundleURL(forBundleRoot: "index.share", fallbackResource: nil)
+      .jsBundleURL(forBundleRoot: "index.share")
 #else
     return Bundle.main.url(forResource: "main", withExtension: "jsbundle")
 #endif
@@ -52,6 +52,7 @@ class ReactShareViewController: ShareViewController, RCTBridgeDelegate, ReactSha
   override func viewDidDisappear(_ animated: Bool) {
     cancel()
     ShareMenuReactView.detachViewDelegate()
+    super.viewDidDisappear(animated)
   }

   func loadExtensionContext() -> NSExtensionContext {

Fix File Sharing

diff --git a/node_modules/react-native-share-menu/ios/Modules/ShareMenuReactView.swift b/node_modules/react-native-share-menu/ios/Modules/ShareMenuReactView.swift
index 24cd59b..e1972cc 100644
--- a/node_modules/react-native-share-menu/ios/Modules/ShareMenuReactView.swift
+++ b/node_modules/react-native-share-menu/ios/Modules/ShareMenuReactView.swift
@@ -57,6 +57,7 @@ public class ShareMenuReactView: NSObject {
         }

         viewDelegate.openApp()
+        ShareMenuReactView.detachViewDelegate()
     }

     @objc(continueInApp:)
@@ -74,6 +75,7 @@ public class ShareMenuReactView: NSObject {
         }

         viewDelegate.continueInApp(with: items, and: extraData)
+        ShareMenuReactView.detachViewDelegate()
     }

     @objc(data:reject:)
@@ -121,7 +123,16 @@ public class ShareMenuReactView: NSObject {
                 }

                 for provider in attachments {
-                    if provider.hasItemConformingToTypeIdentifier(kUTTypeURL as String) {
+                    if provider.hasItemConformingToTypeIdentifier(kUTTypeFileURL as String) {
+                        provider.loadItem(forTypeIdentifier: kUTTypeFileURL as String, options: nil) { (item, error) in
+                            let url: URL! = item as? URL
+
+                            results.append([DATA_KEY: url.absoluteString, MIME_TYPE_KEY: self.extractMimeType(from: url)])
+
+                            semaphore.signal()
+                        }
+                        semaphore.wait()
+                    } else if provider.hasItemConformingToTypeIdentifier(kUTTypeURL as String) {
                         provider.loadItem(forTypeIdentifier: kUTTypeURL as String, options: nil) { (item, error) in
                             let url: URL! = item as? URL

@@ -132,7 +143,7 @@ public class ShareMenuReactView: NSObject {
                         semaphore.wait()
                     } else if provider.hasItemConformingToTypeIdentifier(kUTTypeText as String) {
                         provider.loadItem(forTypeIdentifier: kUTTypeText as String, options: nil) { (item, error) in
-                            let text:String! = item as? String
+                            let text: String! = item as? String

                             results.append([DATA_KEY: text, MIME_TYPE_KEY: "text/plain"])

@lindboe hey, are you all still supporting this lib?

Hi @jorgegvallejo, my team at Infinite Red is no longer working on this project and I'm personally not sure of future plans for it. Any questions about this repository will need to be directed to Expensify.
If you have questions on the Infinite Red team's prior work and want to talk with us directly, you can reach us via our website form or our community slack.

im getting pod install error.
setup: "react-native": "0.72.5"
i applied https://github.com/Expensify/react-native-share-menu/pull/260/files first. then ...
@HugoGresse I used your patch, since i appears to cover most of the issue.
Im still this this error

when i run "pod install",
I get error
RuntimeError - `PBXGroup` attempted to initialize an object with unknown ISA `PBXFileSystemSynchronizedRootGroup` from attributes: `{"isa"=>"PBXFileSystemSynchronizedRootGroup", "exceptions"=>["F16A9A3D2CB44B6C00194D90"], "explicitFileTypes"=>{}, "explicitFolders"=>[], "path"=>"share", "sourceTree"=>"<group>"}`

also when i followed the main instructions to create "share extension", asks to activate, i said yes. but not sure if its wrong.
any ideas?

im still having trouble building ios
xcode 16,  iOS 18.   "react-native": "0.72.5",
pod install works.
I applied @HugoGresse  patch.
The following build commands failed:
	PhaseScriptExecution [CP]\ Copy\ Pods\ Resources /Users/xxxxxx/Library/Developer/Xcode/DerivedData/mobile-aa..../Build/Intermediates.noindex/mobile.build/Debug-iphoneos/ShareExtension.build/Script-C...9.sh (in target 'ShareExtension' from project 'MyMobile')
	Building workspace mobile with scheme mobile and configuration Debug
(2 failures)

any ideas?
Other clarification questions

xcode > create target "share extension",
-asks if i want to activate for debug. i said yes.
- create a objective C bridge.?  i said yes.

I had no issue with RN 0.72 and 0.73 with the current share-menu version.
Only this patch much smaller patch:
react-native-share-menu+6.0.0.patch


[App configuration] Implement click actions for Profile overflow menu

[x] Implement click action for Change Managing Entity menu item
[x]  Implement click action for Remove Family menu item

Can we close this @ellykits @Rkareko ?

good call, closing, reopen if there's something specific remaining

that's not content


nixos/lemmy: misc improvements

Description of changes
Miscellaneous improvements to the lemmy module, mostly motivated by wanting a fix for https://github.com/LemmyNet/lemmy/issues/2784#issuecomment-1475489971.

Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

I've added the backport label since these changes are kinda required to get the service to work at all, or at least don't set database info twice is. Feel free to remove it if it's inappropriate.

@billewanick you might be interested / have ideas about changes ?

Just for reference
generating a warning would look like this
    warnings = lib.optional (cfg.enableHTTPS==false) ''
      Please do not disable HTTPS mode in production. In this mode, access to the nifi is opened without authentication.
    '';

I found this in nixos/modules/services/web-apps/nifi.nix
but grepping, you can find plenty more. (feel free to let me know if anything isn't clear, always happy to help).

@CobaltCause I just realised, I had left comments, but forgot to hit send review, sorry for that!

personally it all looks good, it just depends what you want to do with the lemmy.ui vs lemmy.server thing.

personally it all looks good, it just depends what you want to do with the lemmy.ui vs lemmy.server thing.

It seems like Lemmy has multiple different frontends so it might technically be best to have two separate services.lemmy and services.lemmy-ui NixOS modules, but I'm not confident that's a good idea. I think making use of the existing ui section is reasonable.

This PR changes settings.federation.enabled into a warning, #237471 (not being backported) removes it completely. I'll rebase that one after this one gets merged.

Hello, I'm trying to test this module by replacing the default nixpkgs one with this one, and I can't get it to run. I get this error now:
lemmy_server[237548]: thread 'main' panicked at 'Error connecting to postgres://lemmy:password@/run/postgresql:5432/lemmy', crates/db_schema/src/utils.rs:161:56
Is this normal? What have I done wrong?
Thanks

You need to use this PR and set services.lemmy.database.uri to use the unix domain socket. You're hitting https://github.com/LemmyNet/lemmy/issues/2945. Make sure you've added the NixOS module for Lemmy from your base system to disabledModules.

You need to use this PR and set services.lemmy.database.uri to use the unix domain socket. You're hitting LemmyNet/lemmy#2945. Make sure you've added the NixOS module for Lemmy from your base system to disabledModules.
For example: or.computer.surgery/charles/servy-fleet/-/commit/b9279669a047ec75ad49c8abef0b6e4418de4c44

Thanks, I've actually figured it out.
database.uri = "postgres:///lemmy?host=/run/postgresql&user=lemmy";
I couldn't figure out how to do authentication with the database though, so I added this part:
    systemd.services.lemmy.serviceConfig = {
      User = "lemmy";
      DynamicUser = lib.mkForce false;
    };

and I'm not sure if this is correct, but I hope I'm not adding some security vulnerabilities with it
my instance is up at https://lemmy.neoney.dev

I couldn't figure out how to do authentication with the database though, so I added this part:
    systemd.services.lemmy.serviceConfig = {
      User = "lemmy";
      DynamicUser = lib.mkForce false;
    };

You definitely shouldn't need to do this to use peer authentication.

You definitely shouldn't need to do this to use peer authentication.

Holy, you're right! I just removed all the hacks I had in my config, and only added database.uri set to postgres:///lemmy?host=/run/postgresql&user=lemmy and it works.
What I'd take a look at is why it doesn't work when the database.uri is not defined, shouldn't it default to the same thing when using database.createLocally = true?

Whoops, it got merged as I was typing that commit lol...

the default postgres configuration doesn't require authentication for a socket connection

This isn't accurate, it uses peer authentication.

I didn't change database.createLocally to account for database.uri for three reasons:

I find it overbearing
Personally I wasn't using it, see above
You'd need to parse the relevant information out of the URI

My recommendation is to not use database.createLocally and just write that part yourself.

@CobaltCause alright, it does use authentication, but my point is that you don't need to supply the password and it connects, that's how you know you're on the socket.
how about adding a line like
          uri = mkIf cfg.database.createLocally "postgresql:///lemmy";
in the mkDefault section ?
Just a thought to make this easier for first comers and to reduce the initial steps to start an instance ?

that would be likely to break someone's setup.

Thing is, the setup currently does not work without specifying the uri anyways, and changing this would only set the uri when someone hasn’t manually set it, so I don’t see a way of it breaking honestly.

@n3oney how do you feel about making a PR for the fix ? (I'm happy to help you get it merged, it would be great if you could test the fix though.).

@n3oney how do you feel about making a PR for the fix ? (I'm happy to help you get it merged, it would be great if you could test the fix though.).

I've created a PR on behalf of n3oney.


feat: limit number of console lines drawn

The user can select the limit from a given set of values.
Easily extensible: if we want more values, or different ones, we just need to modify the vector in the unnamed namespace.

I see that if we change the number of lines from 25 to 10 and then try to go back to 25, we are not able to recover the erased lines.
Is this the expected behaviour? I add a couple of screenshots for more context:

Is this the expected behaviour?

I would say so, but now that you mention it I hadn't considered that. Do you know what's the behaviour in other applications?
Ultimately, I don't think it's a big deal, because all output is saved to a log file, but I appreciate your feedback and opinion in order to improve the user experience. If we agree that it's better to restore old contents, it shouldn't be a big deal to implement 🙂


Custom Web3Auth Github Login functionality

Build our own connection to web3auth that doesn't use the prebuilt web3auth login widget.
Instead have button that connects directly to Github.
Perform login to system
https://web3auth.io/docs/auth-provider-setup/social-providers/github

Investigate using web3auth github code direct instead of sdk https://github.com/orgs/Web3Auth/repositories


python312Packages.llama-index-core: use nltk-data from nix package

This also doesn't fetch the tip of branch which is not reproducible
Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 337347 run on x86_64-linux 1

8 packages marked as broken and skipped:

python311Packages.llama-index
python311Packages.llama-index-readers-file
python311Packages.llama-index-readers-file.dist
python311Packages.llama-index-readers-s3
python311Packages.llama-index-readers-s3.dist
python311Packages.llama-index.dist
python311Packages.private-gpt
python311Packages.private-gpt.dist

4 packages failed to build:

python311Packages.llama-index-graph-stores-nebula
python311Packages.llama-index-graph-stores-nebula.dist
python311Packages.llama-index-readers-txtai
python311Packages.llama-index-readers-txtai.dist

58 packages built:

aider-chat
aider-chat.dist
python311Packages.llama-index-agent-openai
python311Packages.llama-index-agent-openai.dist
python311Packages.llama-index-cli
python311Packages.llama-index-cli.dist
python311Packages.llama-index-core
python311Packages.llama-index-core.dist
python311Packages.llama-index-embeddings-gemini
python311Packages.llama-index-embeddings-gemini.dist
python311Packages.llama-index-embeddings-google
python311Packages.llama-index-embeddings-google.dist
python311Packages.llama-index-embeddings-huggingface
python311Packages.llama-index-embeddings-huggingface.dist
python311Packages.llama-index-embeddings-ollama
python311Packages.llama-index-embeddings-ollama.dist
python311Packages.llama-index-embeddings-openai
python311Packages.llama-index-embeddings-openai.dist
python311Packages.llama-index-graph-stores-neo4j
python311Packages.llama-index-graph-stores-neo4j.dist
python311Packages.llama-index-graph-stores-neptune
python311Packages.llama-index-graph-stores-neptune.dist
python311Packages.llama-index-indices-managed-llama-cloud
python311Packages.llama-index-indices-managed-llama-cloud.dist
python311Packages.llama-index-legacy
python311Packages.llama-index-legacy.dist
python311Packages.llama-index-llms-ollama
python311Packages.llama-index-llms-ollama.dist
python311Packages.llama-index-llms-openai
python311Packages.llama-index-llms-openai-like
python311Packages.llama-index-llms-openai-like.dist
python311Packages.llama-index-llms-openai.dist
python311Packages.llama-index-multi-modal-llms-openai
python311Packages.llama-index-multi-modal-llms-openai.dist
python311Packages.llama-index-program-openai
python311Packages.llama-index-program-openai.dist
python311Packages.llama-index-question-gen-openai
python311Packages.llama-index-question-gen-openai.dist
python311Packages.llama-index-readers-database
python311Packages.llama-index-readers-database.dist
python311Packages.llama-index-readers-json
python311Packages.llama-index-readers-json.dist
python311Packages.llama-index-readers-llama-parse
python311Packages.llama-index-readers-llama-parse.dist
python311Packages.llama-index-readers-twitter
python311Packages.llama-index-readers-twitter.dist
python311Packages.llama-index-readers-weather
python311Packages.llama-index-readers-weather.dist
python311Packages.llama-index-vector-stores-chroma
python311Packages.llama-index-vector-stores-chroma.dist
python311Packages.llama-index-vector-stores-google
python311Packages.llama-index-vector-stores-google.dist
python311Packages.llama-index-vector-stores-postgres
python311Packages.llama-index-vector-stores-postgres.dist
python311Packages.llama-index-vector-stores-qdrant
python311Packages.llama-index-vector-stores-qdrant.dist
python311Packages.llama-parse
python311Packages.llama-parse.dist


Have one issue per meeting or one issue for all meetings?

Should we have one issue per meeting (mimicking the Trello cards setup) or have all the minutes and agendas in one issue (like I just did right now with #7)?

Not sure there will be that many meetings, so keeping the one issue with all meetings as currently done right now.


How to add half-star?

Great plugin, thanks!
Is there a way to add a half star ratings?
Thanks!

+1

Krajee's Bootstrap star rating plugin can add half stars and fractional stars.

@LucasRTI: dude, one comment is enough. Also, GitHub supports +1's now. Also, Krajee's Bootstrap star rating plugin supports half stars and fractional stars.
Please delete your duplicate comments on this issue :)

+1


C example error

Describe the bug
Run time error seen with the phi3 and phi3v C program.
To Reproduce
Steps to reproduce the behavior:
cd onnxruntime-genai/examples/c/build
cmake ..
make (succeeds)
./phi3 ../phi-2/
above command throws runtime error
Error seen

./phi3 ../cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/

 ./phi3: error while loading shared libraries: libonnxruntime.so.1.18.0: cannot open shared object file: No such file or directory

Desktop (please complete the following information):

OS: Ubuntu
Version latest main branch

Contents of phi-2 directory
added_tokens.json  genai_config.json  merges.txt  model.onnx  model.onnx.data  special_tokens_map.json	tokenizer.json	tokenizer_config.json  vocab.json

After a git pull and syncing to main branch
getting the below error
./phi3 ../cpu_and_mobile/cpu-int4-rtn-block-32-acc-level-4/           ./phi3: error while loading shared libraries: libonnxruntime.so.1.18.0: cannot open shared object file: No such file or directory

What version of onnxruntime did you use to build ort-genai?

Hi @prashantaithal,
I cannot produce your issue.
Please provide more details about whether you downloaded the release binaries, or whether built from source.
And commands you used to build the example.
Thank you!


[Android Bug] Option is overriden

If showImagePicker is called with allowsEditing set to true once, all other showImagePicker calls will finally have the image editor open, even allowsEditing isn't set, I'm not sure whether other options are overriden. This behaviour doesn't occur on ios.

just set
allowsEditing: false

if you want to override the option

@marcshilling in iOS all options are "reset" when you showImagePicker one again ?
Or option is set to false when key is not set ?

@yfuks it is set to false by default and options are reset every call

fix in 0.16.1


feat(combo-box): [WC-1978] combobox styling

Pull request type

Description

Beside my main let's also add text-overflow: ellipsis for items with long names. To avoid such cases:

Beside my main let's also add text-overflow: ellipsis for items with long names. To avoid such cases:

it will be on the scope for WC-2022


JWT Auth now includes a Guard.

Hi
I was having odd issues with attribute mutating that came down to jwt-auth-guard in some way. I switched to jwt auths 1.0 dev guard and all was resolved.
Just set the driver to jwt in your config/app.php
        'api' => [
            'driver' => 'jwt',
            'provider' => 'users',
        ],

For some reason I was not able to mutate attributes with id_ or _id, $this->attributes['...']; would cause the Fatal error: Maximum function nesting level of '256' reached, aborting!.

Setting driver to jwt means switching to the guard provided by the official package. In which case, you no longer need this package.


feat(visually-hidden): add visually hidden component

Description
closes #233

Linked Issues
Additional context

good works !


Potential Memory Leak in Argo Workflows

Pre-requisites

[X] I have double-checked my configuration
[X] I can confirm the issues exists when I tested with :latest
[ ] I'd like to contribute the fix myself (see contributing guide)

What happened/what you expected to happen?
I've just been investigating https://github.com/argoproj/argo-workflows/issues/10219.
In order to be sure there weren't any Argo Workflows related memory issues, I decided to test on large workflows.
In addition to the workflow being large, I ran it multiple times. When running these large workflows, I was able to continuously push the memory usage by the controller up and up.
I'm not sure if there is an upper bound on this, I think I'd need a more powerful computer to test this to the 100+ workflow runs to check if there is an upper bound. I think having  an upper bound is the desired outcome here, completely unbounded memory growth maybe the issue that is taking controllers down on extremely large workflows. I think I peaked at about 120M
Here are the screenshots of memory usage in chronological order:

Version
latest
Paste a small workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: dag-diamond-steps-
spec:
  entrypoint: diamond
  templates:
  - name: echo
    inputs:
      parameters:
      - name: message
    container:
      image: alpine:3.7
      command: [echo, "{{inputs.parameters.message}}"]
  - name: echo-thrice
    inputs:
      parameters:
      - name: message
    steps:
    - - name: echo
        template: echo
        arguments:
          parameters:
          - {name: message, value: "{{inputs.parameters.message}}{{item}}"}
        withItems: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,89,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100]
  - name: diamond
    dag:
      tasks:
      - name: A
        template: echo-thrice
        arguments:
          parameters: [{name: message, value: A}]
      - name: B
        depends: "A"
        template: echo-thrice
        arguments:
          parameters: [{name: message, value: B}]
      - name: C
        depends: "A"
        template: echo-thrice
        arguments:
          parameters: [{name: message, value: C}]
      - name: D
        depends: "B && C"
        template: echo-thrice
        arguments:
          parameters: [{name: message, value: D}]

Logs from the workflow controller
N/A

Logs from in your workflow's wait container
N/A

not stale

!

Please see https://github.com/gogo/protobuf/issues/583 and https://github.com/gogo/protobuf/issues/726.
Might be relevant


poc: support virtual embeds

The question is if we should. WDYT?
Wrote this while answering a question on slack.

How would a virtual embed be loaded/dumped? What is the use case? :)

Right. but if we are going to include it in the docs, we need to explain when this would useful. Why do you have a virtual field in this style? What is the use case? When would we recommend it?

Virtual embeds could be useful when an Ecto schema is used primarily as application's internal data structure and in the second place for storing it somewhere.
For example, I have a project where I use a schema with several embedded schemas for representing a game state that lives in a GenServer. Ecto changesets are very useful for mutating this state in response to player's actions.
Only part of the state should be stored (in ETS or database) to be restored when the GenServer (re)starts. So I made some fields virtual in order to skip them when dumping the state to a storage. But I'm forced to declare embeds as virtual maps or map arrays and write special functions for casting them and tracking their changes.
Another example: I cast an external API JSON data into a schema in order to make convenient transformations into internal data format and reject invalid data. Nested JSON objects are casted into embeds. This API uses almost same data structure for requests and responses, so when making a request to the API, I reuse the schema and dump it to JSON. The request structure has less fields than response, so again some fields of the schema are virtual and therefore are not dumped when I make a request. I can't use this approach if one of response embeds should not be send when using the schema for a request.

Of course, this problems could be solved in other ways, but making embeds virtual seems more natural to me in this cases.
After all, if we can mark any embedded schema field as virtual so it would not be dumped/loaded, why should embeds be an exception?

Thanks for the clarification. I would probably model your case with different schemas but it doesn't hurt supporting this for consistency, as long as the implementation is straight-forward.
@v0idpwn do you see this growing much in complexity?

I don't think it will grow in complexity at all, will add some tests.

We have a project that would benefit from using embeds_many ... virtual: true. Our use case is the following:
We have a complex embedded field that we want to display in the UI more using forms directive. Let's say we have an embed for IP, called ip we achieve to render it to the users or APIs by marking the field as ip_formatted, :string, virtual: true,  parsing in from and to this virtual fie/d in between fetching from database and rendering it. So, we have both a detailed embed and a formatted version for easy display.
The challenge arises with more complex scenarios, like converting a list of embeds into a simpler list of embeds that are compatible with form validations and other features, such as sorting (we are not using liveview, and unfortunately, it isn't an option in this case). Our current workaround has been to use load_in_query: false, which functions similarly to virtual: true and is also supported in embeds_many.
It works, but it is not ideal (and I imagine not intended to be used in that way either). It always goes with this comment # load_in_query is to emulate virtual which is not compatible with embeds_many. That said, we would benefit from this work as well.
cc: @Lgdev07

Sorry, but that is still unclear then, if you never write it down, what is the benefit of being an embedded? It could as well be field :children, :any, virtual: true. If you are not using changesets or queries, which is often the case with virtual fields, why is embedding giving you? It may be even worth asking if it should be coupled in the same schema/struct in the first place. :)

If you are not using changesets or queries...

We are using the changesets for validations and rendering errors against the "virtual embed". You have a point about having a different schema that has not persisted. But in that case, we would need to duplicate many other fields where we don't do this type of normalization. Using any would also be an option, but it would make it more complex to reason about the structure when passing it through changesets for validation.

@v0idpwn shall we ship this one?

@josevalim  I think probably yes! Will give it a rebase and another look :)

looks good to me. did you want to update the docs with Jose's suggestion here: https://github.com/elixir-ecto/ecto/pull/4216#issuecomment-1600568702

One thing I just realized is there are edge cases for nested embeds that don't work nicely. For example:
defmodule Ecto.Integration.Order do
  use Ecto.Schema

  schema "orders" do
    embeds_one :item, Ecto.Integration.Item
  end
end

defmodule Ecto.Integration.Item do
  use Ecto.Schema

  embedded_schema do
    embeds_one :last_primary_color, Ecto.Integration.ItemColor, virtual: true
  end
end

defmodule Ecto.Integration.ItemColor do
  use Ecto.Schema

  embedded_schema do
    field :name, :string
  end
end

If :last_primary_color used to be persisted and is changed to virtual, the data will be pulled in from the database because queries are looking at embeds as a whole rather than key by key. So I think it it can lead to these two scenarios:

The field being populated when it should be nil when using Repo.all, etc...
The user supplied value being overwritten by what's in the db during Repo.insert, etc. This one I haven't checked closely though.


Add "replace all" button when doing find and replace

For #11126.

I didn't look closely at the code but I wonder if changing the button id could break extensions.
That said this needs at least a test.

Sorry I've been pretty busy.
I didn't think about extensions. Would it be better if I kept the button id as it was and made a new id for Replace all button? Or unit tests will be enough?

@amrelnaggar I looked around on the public available extensions and I think this is safe as is. So only the test is needed.
It is only to understand if this is something that would be contributed back from Adobe: @swmitra @madanbn?

I added the test.

@amrelnaggar could you merge master so to resolve the conflicts?

@ficristo All conflicts have been resolved.
If there is anything else needs to be done just let me know.

Something went wrong. It seems you merged an old version of master.
You can use git rebase -i ... to drop the last two commits and then try to run git fetch upstream and merge again upstream/master
Alternatively you can open a new fresh PR.

@ficristo I created a new PR #12988.
Closing this PR.


Adding timing information to Diagnostics Source events

A large percentage of Diagnostics Source events define both a begin and end event to allow tracking the boundary of a given action. Beyond just marking the boundaries, it was intended that consumers could use this to track the duration of the target event.
There are a few challenges with this approach:

If a consumer wants to simply know what the duration of an "event", they need to have infrastructure to carry the state that tracks the time between events. This isn't that hard per se, but relatively speaking its more than you should have to write to simply track the duration and can have gotchas
Additionally, if the user is using multiple tools in combination (i.e. logging and glimpse), because the onus is on the consumers to derive the time, each consumer will calculate a slightly different time and hence the user wont have a consistent experience
Lastly, though out the code base, the system has already start to collect this timing information for the purposes of logging, so there are cases that this data is already available.

Given the above, the proposal is that we make timing information available on the existing diagnostics events.
Ideally, so that we don't have to track both the start and end events to derive duration, the system would simply add a TimeSpan or something similar to the end event. If this can't be done, a fallback which adds the tickCount from Environment.TickCount to each event could also work.
@rynowak // @Tratcher @anpete might also be interested

Additionally, if the user is using multiple tools in combination (i.e. logging and glimpse), because the onus is on the consumers to derive the time, each consumer will calculate a slightly different time and hence the user wont have a consistent experience

Would dropping any sub-millisecond precision solve this issue in the general case? Trying to convery the difference between .001ms and .0015ms to the user with accuracy was never really the goal with the timing info that we added to logging. If we just logged the number of milliseconds without any additional precision it's very likely that this difference in calculation would go away.

Lastly, though out the code base, the system has already start to collect this timing information for the purposes of logging, so there are cases that this data is already available.

I'm not opposed to the idea in general, but we specifically identified a few places we wanted to do it for logging. Providing a duration for all events where we have a clear begin/end pair is a separate concern.

a fallback which adds the tickCount from Environment.TickCount to each event could also work.

This is subject to the same kinds of perturbation via measurements that you're concerned about. If we send a 'starttime' before running an operation, then the duration includes the time spend calling glimpse, logging, etc.

Related: https://github.com/aspnet/Diagnostics/pull/207/files#diff-85232ab1b9a364dba71847b560310534R28

Moving to backlog for now.

Would dropping any sub-millisecond precision solve this issue in the general case? Trying to convery the difference between .001ms and .0015ms to the user with accuracy was never really the goal with the timing info that we added to logging. If we just logged the number of milliseconds without any additional precision it's very likely that this difference in calculation would go away.

It would help, but I think the problem would still exist. Its not inconceivable that the listeners in the pipeline could take > 0.5 - 1ms to do their work and this being the case we would still end up with different numbers.

I'm not opposed to the idea in general, but we specifically identified a few places we wanted to do it for logging. Providing a duration for all events where we have a clear begin/end pair is a separate concern.

Thats what this issue is about :D But in truth, I'm not sure that the delta between the two is going to be that significant. If it is determined to be significant, at the very least we could get the duration for the most significant events.

This is subject to the same kinds of perturbation via measurements that you're concerned about. If we send a 'starttime' before running an operation, then the duration includes the time spend calling glimpse, logging, etc.

Agreed, but whether this is an issue is subject to the implementation. For instance, the following could work, it wouldn't include the observer time, all the observers would have the same time and observers wouldn't have to tract state between events simply for duration. The only difference here is that we are capturing the finishTime as well as the startTime
// https://github.com/aspnet/Hosting/blob/dev/src/Microsoft.AspNet.Hosting/Internal/HostingEngine.cs#L99-L130

if (diagnosticSource.IsEnabled("Microsoft.AspNet.Hosting.BeginRequest"))
{
	diagnosticSource.Write("Microsoft.AspNet.Hosting.BeginRequest", new { httpContext = httpContext });
}

using (logger.RequestScope(httpContext))
{
	var startTime = 0;
	var finishTime = 0;
	try
	{
		logger.RequestStarting(httpContext);

		startTime = Environment.TickCount;
		await application(httpContext);
		finishTime = Environment.TickCount;

		logger.RequestFinished(httpContext, startTime, finishTime);
	}
	catch (Exception ex)
	{
		logger.RequestFailed(httpContext, startTime);

		if (diagnosticSource.IsEnabled("Microsoft.AspNet.Hosting.UnhandledException"))
		{
			diagnosticSource.Write("Microsoft.AspNet.Hosting.UnhandledException", new { httpContext = httpContext, exception = ex, duration = new TimeSpan(finishTime - startTicks) });
		}
		throw;
	}
}
if (diagnosticSource.IsEnabled("Microsoft.AspNet.Hosting.EndRequest"))
{
	diagnosticSource.Write("Microsoft.AspNet.Hosting.EndRequest", new { httpContext = httpContext, duration = new TimeSpan(finishTime - startTicks) });
}

or
var startTime = 0;
var finishTime = 0;
try
{
	context.RouteData = newRouteData;

	_diagnosticSource.BeforeAction(actionDescriptor, context.HttpContext, context.RouteData);

	using (_logger.ActionScope(actionDescriptor))
	{
		_logger.ExecutingAction(actionDescriptor);

		startTime = Environment.TickCount;
		await InvokeActionAsync(context, actionDescriptor);
		finishTime = Environment.TickCount;

		context.IsHandled = true;

		_logger.ExecutedAction(actionDescriptor, startTime, finishTime);
	}
}
finally
{
	_diagnosticSource.AfterAction(actionDescriptor, context.HttpContext, context.RouteData, startTime, finishTime);

	if (!context.IsHandled)
	{
		context.RouteData = oldRouteData;
	}
}

Just wondering if there are any thoughts on this?

Can we resurrect this discussion... there has been more movement in Hosting on this front - https://github.com/aspnet/Hosting/pull/543.

The three places that I've come across that do diagnostic timings; also do logging timing and for logging they create store the start state so they can generate a TimeStamp to pass to logging - so its kinda done in a way - other than the data format for diagnostics.
TimeStamp would probably be the more sensible data type as its units clearly defined?

Given the work you did in 543, totally agree about TimeStamp.

Thanks for contacting us. We believe that the question you've raised have been answered. If you still feel a need to continue the discussion, feel free to reopen it and add your comments.


No go file listed

I'm trying to use the Rand tool but i get the "no go file listed" error when i'm obviously writing "go run D:\GO path\src\github.com\gorilla\kahoot-hack-master\kahoot-rand\main.go" which directs to "main.go" so it should work right? but its not working for some reason. Please help.

That file path has a space in it. I'd expect you'd need to surround it in quotes. Otherwise, the first part before the space is treated like a path.

so: go run "D:\GO path\src\github.com\gorilla\kahoot-hack-master\kahoot-rand\main.go"
? if not i dont get what you mean.

That is what I mean

alright ill try that

worked now. thanks.


Parameter formatter was never set.. would cause fatal

The parameter $formatter was never set and most probably it would have caused a fatal error.

Thanks, definitely a copy paste from the setter :)


👌 IMPROVE: Add link-alt to fix card link accessibility

This PR adds the link-alt option to card (and grid-item-card) directives,
in order to assign a discernable name to the link (for screen readers).
As noted in #78, it may be ideal to add aria-label/aria-hiddento the actual linkHTML element. However, this would entail having to override aspects of the sphinx HTML builder. Instead, we include the link alt text, but add asd-hide-link-textCSS class, to setfont-size: 0`, to hide the text.
This solution was taken from https://stackoverflow.com/questions/471510/hide-text-using-css, and seemed to be the simplest solution.
fixes #78

@bertiewooster what do you think of this solution?

Thanks @chrisjsewell! Yes, from what I can tell, that seems to solve the problem. I checked by comparing the Sphinx design Cards page canonical version to the version built from this pull request. It would be best if someone who uses a screenreader could verify that this solution works for their reader.
Before
Lighthouse report includes Links do not have a discernible name

After
Lighthouse report does not contain that problem
example


Damage Meter UI Bug

Describe the bug
The Damage Meter UI doesn´t track one kind of damage dealt by the player. I think it is the "Critical Damage" Type.
To Reproduce
Steps to reproduce the behavior:
I´ve attached a video showing how you can reproduce it. The Damage that i mean is the "100" at around 38/39 second of the video. The Damage is reduced from the HealthBar of the monster but not added to the Damage Meter UI. I´ve tested it with a bow on different big monsters.
I´ve activated, in the Options Menu, to track every kind of Damage.
Expected behavior
Actually it should count every damage dealt by the player.
Screenshots
Video: https://drive.google.com/file/d/1anHj65OiDxgRzvcHcwkAIxERzzDV5kOI/view?usp=sharing

You are using Sinister Soulpiercer blast bow. Blast and ailment damage are not currently counted. The game doesn't treat like this damage was dealt by player. An explosion deals the damage. I plan to add these types of damage in the future but it is rather complicated because there is not distinction between which player used the ailment.

Implemented in e6fd36eea0c6e3a160009db7939dd97d8476e092.


fix some minor issues

See commits for details.

I did not:

rebuild
bump the version
update the yarn.lock file as I'm not using yarn

@QingWei-Li I was just looking at https://github.com/QingWei-Li/docsify/blob/master/.gitignore and upon inspection I thought QingWei-Li/docsify@54da5fb might contain an error, where "themes" shouldn't have been removed from "files"? If I made a mistake I'm sorry, I'm not fluent in JavaScript.

Yes, we need to keep "themes"

see #133


Footer: Accessibility links should point to CDL Accessibility page

Please complete the following fields as applicable:
Expected behaviour:
At the footer, the Accessibility link should go to the CDL Accessibility page - https://www.cdlib.org/about/accessibility.html
Actual behaviour:
The Accessibility link goes to the UCOP Accessibility page.
Steps to reproduce:
go to dmptool-stg.cdlib.org, scroll down to footer to see Accessibility link

link updated.


GDBus Error on new discoveries

Good morning everyone,
I am actually using tinyb library for Java on a Raspberry Pi 3+ to scan for BLE devices.
After a period of time (it can be minutes or hours), new scans make the system blocks in a non recoverable loop with this error:
2020-10-09T08:27:16,310 [Thread-896] ERROR o.e.k.i.b.BluetoothLeAdapterImpl - Stop discovery failed
tinyb.BluetoothException: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name :1.7 was not provided by any .service files
        at tinyb.BluetoothAdapter.stopDiscovery(Native Method)
        at org.eclipse.kura.internal.ble.BluetoothLeAdapterImpl$BluetoothFuture.run(BluetoothLeAdapterImpl.java:266)
        at java.lang.Thread.run(Thread.java:748)

I tried to stop and restart my program, restart the bluetooth service, but the only solution is to completely reboot the system.
Any help is really appreciated. Thanks.

@giuseppemr check solution with power on/off adapter

@tommyNy thank you for replying. Could you please send me the link of this solution?

@giuseppemr check bluetoothctl CLI tool for Linux


[IRGen] Handle 'super' method sends in ObjC partial application forwarders

The Objective-C partial application forwarder that one gets when
using, e.g., "super.foo" as a function value was doing a normal
objc_msgSend. Fix the miscompile by threading all of the information
about the Objective-C message send through the forwarder.

Resolves rdar://problem/28140758.

@swift-ci please smoke test and merge

@rjmccall please review this smaller non-broken one instead :)

Failure is due to LLDB using an API that @slavapestov just removed...

@swift-ci please smoke test and merge

Apparently, I failed to push the actual fix.
@swift-ci please smoke test and merge

Grrrrr. Unrelated LLDB failure
@swift-ci please smoke test Linux

Looks good.


General Questions

Hi, I've been trying to reimplement lda2vec as well. I can't seem to get your repo running (some dependency problems with sense2vec), and have a couple of questions that I hope you can answer:

do you get significant speedups when using a GPU? I'm getting slowdowns: I think it's because the model is small, and transferring data between the CPU and GPU takes more time than the time savings when running computations on the GPU.

How long does it generally take for one epoch for your 20newsgroups test case? I'm getting 18m training examples (word pairs + document id), and 1 epoch takes several hours, which is pretty terrible.

Are there any questions you have about lda2vec that you think is worth discussing?

I have no idea, it has been suggested to use GPU. Both original repo and meereum's were using an extremely large batch size (500). Perhaps this would combat the transfer of data from CPU to GPU?

I do not recall how long it takes for one epoch. I know it takes a little while, though. I have a GTX 1080, not sure what kind of hardware you are using, but I'm sure this would greatly affect the speed.

As for relevant questions related to lda2vec, the thing I'm most interested in would be setting this up to work across sequences. I've started some experiments related to this...I want to see if we could use attention to highlight topics across sequences. This should also combat some of the data preprocessing problems as well as the transfer of data to GPU.

Yeah, I tried an even larger one (4096) with little improvements. I've also tried profiling using by saving the run-metadata: it seems that the bulk of the time is still spent on calculating the gradients, which should see speedups on GPU. Perhaps something is borked with my tensorflow installation.

I see. As mentioned, GPUs aren't giving speedups for me, but the cluster I'm running on has a Titan X.

That's interesting. It'd definitely see improvements over from using the GPU. Topics across sequences can also be useful. I come from an application point of view. My primary interest in lda2vec was to learn topics in scientific documents. Since lda2vec allows for incorporation of arbitrary side information, I was thinking of learning author embeddings in addition to document, topic, and word embeddings. Perhaps lda2vec can also learn author contributions (the same way as document proportions work).

Beyond that I'm also looking at productionizing the pipeline, making training faster and more stable. This includes the preprocessing pipeline, which in your case now depends on trained language models. Sentencepiece is a good unsupervised tokenizer.
--
Here are some of my observations from training lda2vec so far:

The topic embeddings indeed learn to be identical, and this is driven by the nce_loss. Setting lda_loss weightage to 0 sees the same effect. Perhaps training a pure word2vec loss to learn good word embeddings first would alleviate the issue.

I'm confused as to why the topics would start to learn after training multiple epochs. My loss reaches a minimum a small number of steps in. Intuitively this means that the model has already found a local/global minimum. Why would the model then learn the topics, given that the gradients around the area are probably close to 0?

The topic distributions will not stay the same. They indeed do stay the same for a while, but as the model trains, the Dirichlet loss, "...encourages document proportions vectors to become more concentrated (e.g. sparser) over time."
As noted in the original author's repo, this is an experimental model. Because of this, it can be very tricky to get it to work right out of the box. But, if you give it time, the model will eventually start to separate out these topics. Some may still overlap a bit, but there will definitely be some separation.
Oh, I had a thought on your GPU vs. CPU problem too:

How far into training are you checking for speeds of model?
What is your "switch_loss" epoch variable set to when doing these speed checks?

Remember from the paper that the switch loss epoch is the number of epochs to train word2vec before "turning on" lda loss. If you are checking within the epochs before the switch loss epoch, you are probably just noticing word2vec working better on CPU than on GPU, which I believe is normal.  Check out this thread for further info on that: https://github.com/tensorflow/tensorflow/issues/13048


Less code repetition in XRechnungMapping.hpp  for some structure declarations

It is possible to abstract away creation of such structures
struct ItemOriginCountryCode final {
  static constexpr std::u8string_view id{u8"BT-159"};
  static constexpr std::u8string_view path{u8"cbc:IdentificationCode"};
  XDataTypes::Code type;

  [[nodiscard]] bool isValid() const { return !type.content.empty(); }
};

with the following code
using NewItemOriginCountryCode = entry<Id<u8"BT-159">, Path<u8"cbc:IdentificationCode">, XDataTypes::Code>;

Here is a godbolt link with example and a case with additional field outerPath https://godbolt.org/z/n3P74fhG5

Feel free to create a PR with your changes.

Feel free to create a PR with your changes.
@Yaraslaut I hope my sentence was not misleading cause I'm really looking forward to see your changes in a PR.

No worries, I will make a PR later today :)


bot is offline - cannot start a game or complete any commands

the bot has been offline for a while now. i'm not sure if there is a reason for this, can someone please clarify?

Oh no! The reason is that I have not personally used it lately, and did not realize it was off-line. I am not able to get to a PC right now unfortunately

Thank you for letting me know! Not a problem, we will use moveer until your bot is back online. I was just worried it was something I'd done! Great work, btw.
Sent from Outlook for Androidhttps://aka.ms/AAb9ysg

From: lilserf @.>
Sent: Saturday, May 6, 2023 8:06:26 PM
To: lilserf/bot-on-the-clocktower @.>
Cc: zoebeth @.>; Author @.>
Subject: Re: [lilserf/bot-on-the-clocktower] bot is offline - cannot start a game or complete any commands (Issue #163)
Oh no! The reason is that I have not personally used it lately, and did not realize it was off-line. I am not able to get to a PC right now unfortunately
—
Reply to this email directly, view it on GitHubhttps://github.com/lilserf/bot-on-the-clocktower/issues/163#issuecomment-1537204058, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A7VA4H7V2OGR2QJSYABFL7LXE2OLFANCNFSM6AAAAAAXYI2FHI.
You are receiving this because you authored the thread.Message ID: @.***>

I've restarted the bot! No idea what happened, the process was still running but apparently it was just busted :(
Thanks for the heads-up.


release vscode extension v0.2.0

Codecov Report

Merging #16 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #16   +/-   ##
=======================================
  Coverage   79.43%   79.43%
=======================================
  Files           8        8
  Lines         530      530
  Branches       35       35
=======================================
  Hits          421      421
  Misses        109      109

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 9b4e2e2...93deff3. Read the comment docs.

ping @julienrf


Remove outdated documentation

Warnings

:warning:
It looks like this PR contains functional changes without a corresponding test.

  Generated by :no_entry_sign: dangerJS against ea9242085936952ea520228b8f423147d3bc883e


feat(pretty-format): allow to opt out from sorting object keys with compareKeys: null

This supersedes https://github.com/facebook/jest/pull/12387 . However, it doesn't solve the full problem because the validation logic for the config is still based on DEFAULT_OPTIONS from the pretty-format and thus this valid compareKeys: null won't pass the validation at the config level.
So this PR only lays out part of the solution for the whole problem.
I've decided to use null for this to avoid special-casing some strings if you ever come around to implementing compareKeys: string that would allow for loading modules containing the compareKeys export, like suggested in https://github.com/facebook/jest/pull/12387#issuecomment-1039096751 . I'm not attached to this solution so if you prefer to use special strings as suggested here: https://github.com/facebook/jest/pull/12387#issuecomment-1039175395 , then I'm open to adjusting this PR accordingly.
cc @SimenB

I think that the PR is still sound.

Would be good to tweak docs here (compareKeys is mentioned): https://jestjs.io/docs/configuration#snapshotformat-object
I just think it might be tricky to explain the behaviour in a simple way. Perhaps snapshot format in Jest config could have extra key? Something like sortKeys: boolean? Not sure, just an idea.

https://github.com/facebook/jest/releases/tag/v29.0.0


Add at least one tool error

Added tools as shown in the image but still getting the error

yes,i met too

yes, same problem

repo updated and now its working fine.


Can't get version 3 to work

I'm certainly missing somthing dumb, version 2 was working fine with somewhat the same setup.
Here is my config :
Dockerfile
FROM node

RUN git clone --single-branch --branch dev https://github.com/TheAgentK/tuya-mqtt.git && \
    cd tuya-mqtt && \
    npm install

WORKDIR /tuya-mqtt

COPY config.json .

ENV DEBUG=*

ENTRYPOINT ["node", "tuya-mqtt.js"]

relevant docker-compose conf:
  tuya-mqtt:
    container_name: tuya-mqtt
    image: tromatik/tuya-mqtt
    depends_on:
      - mqtt-broker
    volumes:
      - ./tuya-mqtt/config.json:/tuya-mqtt/config.json
      - ./tuya-mqtt/devices.conf:/tuya-mqtt/devices.conf
    restart: always
    environment:
      - TZ=Europe/Paris
      - DEBUG=-*
    networks:
      backend:
      physical:
        ipv4_address: <IP_ADDRESS>

config.json
{
    "host": "<IP_ADDRESS>",
    "port": 1883,
    "topic": "tuya/",
    "mqtt_user": "",
    "mqtt_pass": "",
    "qos": 2
}

device.conf
[
  {
    name: 'LED SMART 2',
    id: 'bff590a2c25cf0a2bazufd',
    key: '607663889df63108',
    version: '3.3'
  },
  {
    name: 'Smart Switch 1',
    id: 'bf84deb2a2b0c4496bsrsf',
    key: '9f95ebd825dbac96',
    version: '3.3'
  },
  {
    name: 'Smart Plug',
    id: 'bf22ba559b69252a12fldr',
    key: '473fac1b23a77103',
    version: '3.3'
  }
]

Test OK with tuya-cli : tuya-cli set --id bff590a2c25cf0a2bazufd --key 607663889df63108 --dps 1 --set true/false
Test KO when publishing tuya/bff590a2c25cf0a2bazufd/dps/1/command true
Logs when publishing to mqtt :
2020-10-09T22:06:43.696Z mqttjs:client writable stream :: parsing buffer
2020-10-09T22:06:43.696Z mqtt-packet:parser parse: current state: _parseHeader
2020-10-09T22:06:43.697Z mqtt-packet:parser _parseHeader: packet: Packet { cmd: 'publish', retain: false, qos: 0, dup: false, length: -1, topic: null, payload: null }
2020-10-09T22:06:43.697Z mqtt-packet:parser parse: state complete. _stateCounter is now: 1
2020-10-09T22:06:43.697Z mqtt-packet:parser parse: packet.length: -1, buffer list length: 49
2020-10-09T22:06:43.697Z mqtt-packet:parser _parseVarByteNum
2020-10-09T22:06:43.697Z mqtt-packet:parser parse: packet.length: 48, buffer list length: 48
2020-10-09T22:06:43.699Z mqtt-packet:parser _parsePayload: payload BufferListStream {
  _bufs: [
  _writableState: WritableState {
    objectMode: false,
    highWaterMark: 16384,
    finalCalled: false,
2020-10-09T22:06:56.041Z mqttjs:client _checkPing :: checking ping...
2020-10-09T22:06:56.046Z mqttjs:client _checkPing :: ping response received. Clearing flag and sending `pingreq`
2020-10-09T22:06:56.048Z mqttjs:client _sendPacket :: (mqttjs_57bc5e7b) ::  start
2020-10-09T22:06:56.050Z mqttjs:client sendPacket :: packet: { cmd: 'pingreq' }
2020-10-09T22:06:56.051Z mqttjs:client sendPacket :: emitting `packetsend`
2020-10-09T22:06:56.052Z mqttjs:client sendPacket :: writing to stream
2020-10-09T22:06:56.052Z mqtt-packet:writeToStream generate called
2020-10-09T22:06:56.053Z mqtt-packet:writeToStream generate: packet.cmd: pingreq
2020-10-09T22:06:56.054Z mqttjs:client sendPacket :: writeToStream result true
2020-10-09T22:06:56.055Z mqttjs:client writable stream :: parsing buffer
2020-10-09T22:06:56.055Z mqtt-packet:parser parse: current state: _parseHeader
2020-10-09T22:06:56.056Z mqtt-packet:parser _parseHeader: packet: Packet { cmd: 'pingresp', retain: false, qos: 0, dup: false, length: -1, topic: null, payload: null }
2020-10-09T22:06:56.057Z mqtt-packet:parser parse: state complete. _stateCounter is now: 1
2020-10-09T22:06:56.058Z mqtt-packet:parser parse: packet.length: -1, buffer list length: 1
2020-10-09T22:06:56.058Z mqtt-packet:parser _parseVarByteNum
2020-10-09T22:06:56.059Z mqtt-packet:parser _parseVarByteNum: result: { bytes: 1, value: 0 }
2020-10-09T22:06:56.060Z mqtt-packet:parser _parseLength 0
2020-10-09T22:06:56.060Z mqtt-packet:parser parse: state complete. _stateCounter is now: 2
2020-10-09T22:06:56.061Z mqtt-packet:parser parse: packet.length: 0, buffer list length: 0
2020-10-09T22:06:56.062Z mqtt-packet:parser _parsePayload: payload BufferListStream {
  _bufs: [],
    needDrain: false,
    ending: false,
    ended: false,
2020-10-09T22:06:56.067Z mqtt-packet:parser _parsePayload complete result: true
2020-10-09T22:06:56.068Z mqtt-packet:parser parse: state complete. _stateCounter is now: 3
2020-10-09T22:06:56.069Z mqtt-packet:parser parse: packet.length: 0, buffer list length: 0
2020-10-09T22:06:56.069Z mqtt-packet:parser _newPacket
2020-10-09T22:06:56.070Z mqtt-packet:parser _newPacket: parser emit packet: packet.cmd: pingresp, packet.payload: null, packet.length: 0
2020-10-09T22:06:56.070Z mqttjs:client parser :: on packet push to packets array.
2020-10-09T22:06:56.071Z mqtt-packet:parser _newPacket: new packet
2020-10-09T22:06:56.071Z mqtt-packet:parser parse: state complete. _stateCounter is now: 4
2020-10-09T22:06:56.072Z mqtt-packet:parser parse: packet.length: -1, buffer list length: 0
2020-10-09T22:06:56.072Z mqtt-packet:parser parse: exited while loop. packet: -1, buffer list length: 0
2020-10-09T22:06:56.073Z mqttjs:client work :: getting next packet in queue
2020-10-09T22:06:56.073Z mqttjs:client work :: packet pulled from queue
2020-10-09T22:06:56.074Z mqttjs:client _handlePacket :: emitting packetreceive

Most likely it's just a lack of documentation since that's a task that's still outstanding before I can publish 3.0.
Since you have device names in you devices config the code will use it for the topic instead of the device id so, for example, your device named LED SMART 2 would be as follows:
tuya/led_smart_2/dps/1/command
You may also need to add type: GenericDevice, to each device in devices.conf although it should default to that but I can't remember if I've implemented fall through if no device type is defined you.  I think I did, but I'll have to check it when I get back to a computer.

Also, please use DEBUG=tuya-mqtt:* to get useful debug data.  I'm not sure what the data you posted is.

Adding the type: GenericDevice to the config was the key. So I would say it's not defaulting to this value, look at the logs:
2020-10-10T07:44:28.997Z tuya-mqtt:mqtt Device type not specified, skipping creation of this device
2020-10-10T07:44:28.997Z tuya-mqtt:mqtt Device type not specified, skipping creation of this device
2020-10-10T07:44:28.997Z tuya-mqtt:mqtt Device type not specified, skipping creation of this device

BTW thanks for the logging configuration tip ;)

So I've configured my device according what I could find in the code. So far SimpleSwitch and GenericDevice HA discovery works fine. For RGBTWLight while on the tuya api side it seems fine, I'm wondering if the brightness and color_temp state topics aren't swapped.. not sure. Is there a way to configure the tuya to mqtt mapping/templating for testing ?
Thanks

I have quite a large number of pending updates for RGBTWLight in my local branch that I'll hopefully push sometime this weekend.  The code that's currently pished there doesn't support color temp, only white level (brightness in white mode).  It's pretty much impossible for brightness and whitelevel to be swapped because of how Tuya bulbs store these values.
Basically, there are 5 DPS values that control tuya bulbs (more for built in scenes like "rainbow", etc. if your device supports those but I'm not focused on those right now since it seems not possible to predict them):
dpsPower = ON/OFF
dpsMode = While/Color (also scenes if your bulb supports custom scene modes in the Tuya app, unless you use the DPS values directly)
dpsWhiteLevel = White mode brightness (I'm using the Home Assistant term white level), this only controls brightness when the bulb is in white mode and is in either 0-255 or 0-1000 scale
dpsColorTemp = White mode color temperature in either 0-255 or 0-1000 scale.  There is no direct map to mireds so conversion is just an estimate (can be overridden if you know your bulbs exact color range)
dpsColor = the HSB value for color mode in a Tuya custom format, HSB or HSBHEX.  Both are hex interestingly, but HSB, is a simple, zero padded hex where H = 0-360, S = 0-1000 and B i= 0-1000, converted to their hex value and padded with zeros to make a 12 character HEX string.  HSBHEX is still HSB, with H = 0-360, S= 0-255, B=0-255, but then encoded into a weird, 14 character hex string that requires some weird math to get there.
In general, bulbs use either DPS 1-5 or DPS 20-24.  The former so far seem to usually be HSBHEX style and use 0-255 scale for brightness/saturation/white level/colortemp, while the latter seem to usually be HSB style with 0-1000 scale, at least so far this pattern has held for the devices I have or have seen customers use the code with.  However, the code doesn't currently assume this is completely true, it tries to detect HSB/HSBHEX mode regardless of what DPS range the bulb uses and uses this as the likely indicator of scale for other values.
Pretty much all values can be overridden by the config file, If you look at the top sections of code you'll see a section where, for example, this.config.dpsColor is set, that means that you can manually override this option by setting dpsColor in the devices.conf.
However, if the device is changing color, you probably don't need to do this, as that pretty much means it's using the proper DPS key for color since HSB values are all stored in a single DPS key.  What behavior are you seeing that makes you think they might be switched?  I've put a lot of work into the code in my local branch to try to improve the white/color switch behavior, so perhaps once I push that it will help.  It's really that code, and the documentation, which is the last piece I need to finish before pushing 3.0.

Ok thanks for all these explanation, it make sense.
It's misunderstanding on my side, I thought brightness_state and it's command counterpart was the actual brightness command... well the name is confusing isn't it :). It's indeed for brightness but only in color mode... The white_value_* are the brightness i was looking for, the one for white mode.
On my setup brightness_state topic always sticks to 100, whatever the mode or the settings of the bulb. I think the swap filling i had came from this.
I'll wait your next push to perform further testing.
BR.

It's pretty standard for bulbs that have separate brightness levels for white/color mode to use the brightness/white_level construct, which is why projects like Home Assistant implement this in their light integrations.  It mirrors the same behavior of the Tuya/SmartLife app, which has separate brightness on the white vs color page.
I've considered adding logic in the code to try to flip the function of brightness based on the mode of the light, but that leaves one less way to know whether the light needs to flip between modes, especially for lights that don't support color temperature in white mode.  That being said, I'm interested in feedback on this or any other ideas.


Enhancement Modify some delete cases to ajust enable_mow_light_delete config

Proposed changes
Issue Number: close #xxx

run buildall

run buildall


idtest run/runall isn't working when there are failing tests

idtest run still prints "all tests succeeded" when one is failing (it should print the number that passed):

and idtest runall errors (it should print number that passed of each type):

Correct behavior:


Minimise the size of the code object table.

Marking as draft since it currently increases the size of the function that builds the code objects. The reason is probably that the table is not static data and the more complex structure might lead to more code overhead in building it.

We really only have strings in the end. Per code object one tuple of argument names, one function name. Those could be stored with integer offsets already, no? We could create the argument name tuple in the creation function, just need a table of variable size argument name indexes then.

Those could be stored with integer offsets already, no?

Yes true. If you could do that then you could make the table a global constant too.
I decided that the #define stringname modulestate->stringname make this needlessly hard to do, but I believe it would actually be possible at the moment.

We could create the argument name tuple in the creation function, just need a table of variable size argument name indexes then.

True, or just take offsetoff(ModuleStateStruct, tuple_cname) and use that. Again, the main thing making this hard is the defines.

We could create the argument name tuple in the creation function, just need a table of variable size argument name indexes then.

#6048 changes the tuples to a big array, so with that you'd just need an index.

Probably superseded by https://github.com/cython/cython/pull/6055


Move Untracked annotation to task level

In Gradle 7.3 we made the distinction explicit between stuff on the file system that Gradle is supposed to understand (and optimize execution using that understanding when possible), and stuff that Gradle is not supposed to understand (and hence no optimization).
We implemented this via the @Untracked annotation on task input and output properties (as well as an untracked() method in the runtime task input/output API).
From feedback on 7.3-rc-1 it seems that the resulting API is somewhat confusing, and moving the annotation and runtime method to the task level makes more sense.
Doing so actually simplifies things inside Gradle as well, as the effect of marking any of the inputs or outputs of a task with @Untracked already meant that we treated the task itself as untracked.
Furthermore, it makes the case of the Copy task more consistent, since instead of introducing a new method for Copy to mark it untracked, the general mechanism to mark any task untracked can be used by Copy as well.

cc: @gradle/execution

The changes are on release now.


perf: remove persistent global scroll listener

Removes the global scroll listener from the viewport ruler, which was being used to invalidate the scroll position cache. Caching the scroll position is pointless since it'll be invalidated very frequently. Since most Material components depend on the ViewportRuler one way or another, it meant that there was a good chance that the scroll listener would stay around forever.
Fixes an issue that caused the scroll dispatcher not to remove its global scroll listener, if there are any scrollables on the page, even though nothing was subscribed to it.

Fixes #6882.

@crisbeto  Rebase?

Rebased.


MWPW-128694 Removing duplicated projectRoot param and using rootFolder and fgRoot…

Removing duplicate parameters for copy/promote action calls.
Related PR handling of params at the AIO side here  - https://github.com/adobecom/milo-fg/pull/26

Resolves:

MWPW-128694

Test URLs:
Before: https://main--milo--adobecom.hlx.page/tools/floodgate/index.html?project=milo--adobecom&referrer=https%3A%2F%2Fadobe.sharepoint.com%2F%3Ax%3A%2Fr%2Fsites%2Fadobecom%2F_layouts%2F15%2FDoc.aspx%3Fsourcedoc%3D%257B753F31A9-CA16-4B78-AE9C-BAD08AE0688A%257D%26file%3Dfgtest.xlsx%26action%3Ddefault%26mobileredirect%3Dtrue
After: https://mwpw-128693-fg-actions-fetching-aio--milo--sirivuri.hlx.page/tools/floodgate/index.html?project=milo--adobecom&referrer=https%3A%2F%2Fadobe.sharepoint.com%2F%3Ax%3A%2Fr%2Fsites%2Fadobecom%2F_layouts%2F15%2FDoc.aspx%3Fsourcedoc%3D%257B753F31A9-CA16-4B78-AE9C-BAD08AE0688A%257D%26file%3Dfgtest.xlsx%26action%3Ddefault%26mobileredirect%3Dtrue

@sirivuri : there's a merge conflict, can you please check? Thanks


该目录下文件查找失败!请检查路径

2024-10-05 00:55:21,977 INFO: -----------------------------------------------------------------------
2024-10-05 00:55:21,977 INFO: ---------------------- Program started 2.4.0   -----------------------
2024-10-05 00:55:21,978 INFO: ---------------------- Open Source on github  ----------------------
2024-10-05 00:55:21,978 INFO: ------- Address: https://github.com/Yudaotor/EsportsHelper ------
2024-10-05 00:55:21,978 INFO: ---------------- Please give me a star,Thanks(^_^)  ---------------
2024-10-05 00:55:21,978 INFO: -----------------------------------------------------------------------
2024-10-05 00:55:22,402 INFO: 获取参数文件成功
2024-10-05 00:55:23,893 INFO: ====== WebDriver manager ======
2024-10-05 00:55:24,856 INFO: Get LATEST chromedriver version for google-chrome
2024-10-05 00:55:24,856 INFO: Get LATEST chromedriver version for google-chrome
2024-10-05 00:55:24,857 INFO: There is no [win64] chromedriver "129.0.6668.90" for browser google-chrome "129.0.6668.90" in cache
2024-10-05 00:55:24,857 INFO: Get LATEST chromedriver version for google-chrome
2024-10-05 00:55:25,327 INFO: WebDriver version 129.0.6668.89 selected
2024-10-05 00:55:25,329 INFO: Modern chrome version https://storage.googleapis.com/chrome-for-testing-public/129.0.6668.89/win32/chromedriver-win32.zip
2024-10-05 00:55:25,330 INFO: About to download new driver from https://storage.googleapis.com/chrome-for-testing-public/129.0.6668.89/win32/chromedriver-win32.zip
2024-10-05 00:55:25,605 INFO: Driver downloading response is 200
2024-10-05 00:55:26,272 INFO: Get LATEST chromedriver version for google-chrome
2024-10-05 00:55:26,406 INFO: Driver has been saved in cache [.\driver.wdm\drivers\chromedriver\win64\129.0.6668.90]
2024-10-05 00:55:28,427 INFO: 使用默认端口9222
2024-10-05 00:55:28,430 INFO: 正在准备中...
2024-10-05 00:55:28,430 INFO: patching driver executable .\driver.wdm\drivers\chromedriver\win64\129.0.6668.90\chromedriver-win32/THIRD_PARTY_NOTICES.chromedriver.exe
2024-10-05 00:55:28,431 ERROR: ++++++++++++++++++++++++++++++++++++++++++++++++++
Traceback (most recent call last):
File "main.py", line 38, in initWebdriver
File "Webdriver.py", line 167, in createWebdriver
File "undetected_chromedriver_init_.py", line 246, in init
File "undetected_chromedriver\patcher.py", line 99, in auto
File "undetected_chromedriver\patcher.py", line 217, in patch_exe
FileNotFoundError: [Errno 2] No such file or directory: '.\driver\.wdm\drivers\chromedriver\win64\129.0.6668.90\chromedriver-win32/THIRD_PARTY_NOTICES.chromedriver.exe'

一直是这样，，，，求救啊大佬们

same as https://github.com/Yudaotor/EsportsHelper/issues/139


Adding fixes to merge script for correctness/robustness.

I think I'm going to leave the merge script out and just leave it up to students to follow the assignment start instructions. Based on feedback from students last semester it was helpful for them to go throught he git steps in order to learn more about how git works.


Release the first snapshot

https://jitpack.io/#broker-game/broker-client/0.2.0-SNAPSHOT
https://jitpack.io/com/github/broker-game/broker-client/0.2.0-SNAPSHOT/build.log


Jira-Collector Potential NPE  with lower version Jira instance

Unfortunately, we still have a jira 5.1 instance running in the company with which I met a NullPointerException in Jira collector. I change the code locally to get it working with jira 5.1 api, currently.
Therefore, I am not sure do your team has the clear scope on what is the lowest supported version of Jira (mostly we're running 6+)?
Plus to share the issue:
on the jira API  /rest/api/2/status:
6.1+
{
  "description": "The issue is open and ready for the assignee to start work on it.",
  "iconUrl": "http://xxx/images/icons/statuses/open.png",
  "id": "1",
  "name": "Open",
  "self": "http://xxx/rest/api/2/status/1",
  "statusCategory": {
    "colorName": "blue-gray",
    "id": 2,
    "key": "new",
    "name": "To Do",
    "self": "http://xxx/rest/api/2/statuscategory/2"
  }
}

5.1:
{
  "description": "The issue is open and ready for the assignee to start work on it.",
  "iconUrl": "http://xxxx/images/icons/status_open.gif",
  "id": "1",
  "name": "Open",
  "self": "http://xxx/rest/api/2/status/1"
}

According to Hygieia/collectors/feature/jira/src/main/java/com/capitalone/dashboard/client/DefaultJiraClient.java, line [367-369]:
Object statusCategory = jsonStatus.get("statusCategory");
JSONObject jsonStatusCategory = (JSONObject) statusCategory;
String statusCategoryName = (String) jsonStatusCategory.get("name");

Obviously, if I am running with jira 5.1 api, I will get a null statusCategory which leads to a NullPointerException when I afterwards try to get() from null :(
Currently I make the if statement after line 367 to judge with I get a null of 'statusCategory' to get everything working.
Please advice if you're support jira 5.1 .
Thanks,
Xiaopeng

I don't know if there is a decided upon lowest supported jira instance. I added that null guard to #1030.

Great! Really appreciate the quick patch :)

@xpdable Functionality merged in https://github.com/capitalone/Hygieia/pull/1137 Use latest codebase and follow cleanup instructions provided in PR.