How to remove unnecessary permissions on iOS?

Describe your environment

React-Native version:  0.51.0
Platform: iOS,
Device: Any
11+
react-native-permissions: 1.1.1
Devtools: Xcode

How to repeat issue and example
Build a release mode with react-native-permission as library and upload to Appstore. Apple will reject the app with following reason

Missing Info.plist key - This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data

Temporary fix would be to just add these permissions in Info.pList.
Is there anyway I don't have to add these permissions in my info pList and instead just remove the files using those permissions as i don't need these permissions at all in my app.

Just got this issue as well. I need to be able to exclude this since the entire reason I created this app was to introduce privacy protections. 😄
A quick fix would be to fork and just remove files related to permissions I won't ask for.

@rohitgoyal seems we both missed this discussion. Guess this issue can be closed for now.

@reimertz Should i just remove the .m files of these particular permissions?
Or can you elaborate all the steps i need to follow in order to ensure nothing breaks?

Oops, I didn't paste the link. Check this: https://github.com/yonahforst/react-native-permissions/issues/46
You can also check my own fork I did where I removed

Bluetooth
Calendar
Events
Speech Regocnition

Given the actual form of the library, you can't.
A way to do it could be using Cocoapods, like in https://github.com/delba/Permission#cocoapods (and ditch the Android permissions because it's now build in React Native)

Having those entries in your plist won't cause any trouble. The user will never see them, unless you request them.
Unless I'm wrong. In which case, please let me know. :D

The issues surfaces when you upload for App Store review. Their automated
systems will complain that you have functionalities in the app that might
require permissions you haven’t officially added in info.plist.
I’ve read that you can tell the reviewer this but it seems to be totally
random when they let this pass.
On Fri, 4 May 2018 at 12:35, Roberto Wesley Overdijk <
<EMAIL_ADDRESS>wrote:

Having those entries in your plist won't cause any trouble. The user will
never see them, unless you request them.
Unless I'm wrong. In which case, please let me know. :D
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/yonahforst/react-native-permissions/issues/240#issuecomment-386563148,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAmKh19yYz0_aaVpGY4J3BafjkPmuhp8ks5tvC7igaJpZM4S7SA7
.

--
Best Regards,
Piérre Reimertz
reimertz.co | twitter http://twitter.com/reimertz | github
http://github.com/reimertz

Right but, what's the downside of adding it to your plist? Laziness? Or is there an actual reason?

I'm building a privacy-first application. It would be devastating for the
trust of my users if they all of a sudden would see my app asking for weird
permissions(I think it will show up in Settings > App_Name > Permissions).
I also think there is ways to see it in the Apple Store.
So for me, it's definitely not about laziness, but about the trust and
promise I give my users that I won't collect information about them,
completely removing these things for my codebase.
On Fri, May 4, 2018 at 1:26 PM Roberto Wesley Overdijk <
<EMAIL_ADDRESS>wrote:

Right but, what's the downside of adding it to your plist? Laziness? Or is
there an actual reason?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/yonahforst/react-native-permissions/issues/240#issuecomment-386572884,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAmKh_st3m1ocbS948mL8hQq69C845DAks5tvDr8gaJpZM4S7SA7
.

--
Best Regards,
Piérre Reimertz
reimertz.co | twitter http://twitter.com/reimertz | github
http://github.com/reimertz

It would be devastating for the
trust of my users if they all of a sudden would see my app asking for weird
permissions

It won't ask unless requested from within the app. If it does, that has to be a bug somewhere.

I think it will show up in Settings > App_Name > Permissions

That might be true. Good info, I'll check if that's the case! I wouldn't enjoy that either. In my case it'd be less of an issue because it's all disabled by default and I won't be asking for these permissions. But if it is an issue in your app, it's a legit one. I agree.

I also think there is ways to see it in the Apple Store.

I tried looking it up, and couldn't find it.

So for me, it's definitely not about laziness, but about the trust and
promise I give my users that I won't collect information about them,
completely removing these things for my codebase.

Makes sense if your first point holds true.
Thanks for the info!

@reimertz I just checked and, at least in the simulator and in dev builds the extra permissions don't show up in settings.

Apple announced at WWDC (Platforms State of the Union) that soon all permissions need to have very descriptive descriptions with examples in the plists, otherwise they will reject the app. So it might be the right time to make it possible to not include them all my default.

can we have a postinstall to strip some files?

Any update on this? my app just got rejected :(

@cayasso for now, you'd have to fork and manually remove permissions you won't use.
I'm really sorry but I don't jave the bandwidth to find a proper solution right now except maintaining my own fork.

Thanks @reimertz, its ok, I went and added the permissions in Info.plist for now with some comments like we will never request this permission and that works, Apple accepted it :-)

Wtf, good to know. :D
On Wed, 22 Aug 2018 at 14:52, Jonathan Brumley<EMAIL_ADDRESS>wrote:

Thanks @reimertz https://github.com/reimertz, its ok, I went and added
the permissions in Info.plist for now with some comments like we will
never request this permission and that works, Apple accepted it :-)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/yonahforst/react-native-permissions/issues/240#issuecomment-415020896,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAmKh4yZwv_W1JTBWeoeM-T1lmOUbpmbks5uTVQAgaJpZM4S7SA7
.

--
Best Regards,
Piérre Reimertz
reimertz.co | twitter http://twitter.com/reimertz | github
http://github.com/reimertz

Any update for this issue? Apple rejected us because of an unnecessary option?

@saeedtkh seems like everyone (including me) are using forks of this library where we are each keeping only the permissions we need

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


feat(RESTJSONErrorCodes): add error 50067

Please describe the changes this PR makes and why it should be merged:
If applicable, please reference Discord API Docs PRs or commits that influenced this PR:

https://github.com/discord/discord-api-docs/pull/5626

Upstream PR landed 🎉


Saga and undo logic

Is there are support for sagas with compensation logic ?
I used to work on these types of 2PC systems and the holding of locks on DB’s is imho only allowed on Databases your own . Even with a large organisation with many teams where each team controls their own database, holding locks on more than db can be disallowed.
the alternative can be sagas where the transactions do not use locks , and is any db refuses a mutation, then the 2PC must execute compensation logic and either undo the transaction or some other form of compensation.
Are you working on this. I lock approach or interested in pursuing it ?
It’s a solution to when different parties need to perform business transactions across theirs and others databases.
if you would like to discuss more in depth on this I am open to collaborating. Telegram is in my GitHub profile.

I have considered using ETCD as an event-driven engine to implement saga pattern, but DBPack is focused on database proxy, we can cooperate in hptx to implement saga pattern. What do you think?


Check printer battery before sending Print Ready

A new requirement has been requested by murad, when printer battery is 15% or less than 15% do not send print ready command to printer and write the error in printer state on firebase.

Sorry mistakenly added here


msub_args in default_test_config.yaml does not do anything

The option msub_args in default_test_config.yaml does not seem to be implemented.

Hi there, any update on this issue?  I checked out the repo a few weeks ago I'm having the same trouble with msub_args.

If you checkout the testing branch it has been fixed. I intend to merge that branch as is into master this week as my tests have all been successful and I have not come across any reason to believe that it is not stable.

Ah, that explains it then.  I checked out master.  Thank you.

This fix is now in master.


pre-training weights of SE and CBAM in MobilnetV2

Hello, I sincerely hope you can provide the pre-training weights of SE and CBAM in MobilnetV2

您的邮件已经收到。我会及时做出回复。

Hello, I sincerely hope that you can share the pretrained weights of SE and CBAM in MobileNetV2 with me


Google Maps tap/drag events issue

Hello,
I'm facing very weird issue regarding Google Maps. onTap event is not responsive - it's not being triggered. Same with drag.
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: GoogleMap(
        mapType: MapType.normal,
        initialCameraPosition: CameraPosition(target: LatLng(10, 20)),
        onTap: (latLng) => print('tap'),
      ),
    );
  }
}

Google Maps - google_maps_flutter: ^0.5.28+1
Flutter doctor -v
[✓] Flutter (Channel master, 1.21.0-1.0.pre, on macOS 11.0 20A5323l, locale en-HK)
    • Flutter version 1.21.0-1.0.pre at /Users/mac/FlutterProject/flutter
    • Framework revision aa0125387c (3 weeks ago), 2020-07-10 21:49:40 -0700
    • Engine revision 9b3e3410f0
    • Dart version 2.9.0 (build 2.9.0-21.0.dev 06cb010247)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/mac/Library/Android/sdk
    • Platform android-30, build-tools 28.0.3
    • ANDROID_SDK_ROOT = /Users/mac/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.6, Build version 11E708
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.47.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.9.1

[✓] Connected device (3 available)
    • ONEPLUS A6000 (mobile) • 2b4e4866   • android-arm64  • Android 10 (API 29)
    • Web Server (web)       • web-server • web-javascript • Flutter Tools
    • Chrome (web)           • chrome     • web-javascript • Google Chrome 84.0.4147.105

• No issues found!

Video
https://drive.google.com/file/d/1Q43_gYWGkPCqI4bEnWnbYEnFg8DF7Oc1/view?usp=sharing
Device tested on: OnePlus 6 (Android 10)

Hi @zeromaro
I cannot reproduce this issue on latest master channel. Tested with emulator Pixel 2 - API 30

 flutter doctor -v
[✓] Flutter (Channel master, 1.21.0-6.0.pre.160, on Mac OS X 10.15.6 19G73,
    locale en)
    • Flutter version 1.21.0-6.0.pre.160 at
      /Users/pedromassango/dev/SDKs/flutter_master
    • Framework revision 31ee51a302 (7 hours ago), 2020-08-03 17:27:21 -0700
    • Engine revision fa16c3d0ba
    • Dart version 2.10.0 (build 2.10.0-2.0.dev 0f0e04ec3a)
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /Users/pedromassango/Library/Android/sdk
    • Platform android-30, build-tools 30.0.1
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor
      --android-licenses

[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.6, Build version 11E708
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] IntelliJ IDEA Community Edition (version 2020.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 47.1.4
    • Dart plugin version 202.6397.47

[✓] Connected device (3 available)
    • iPhone SE (2nd generation) (mobile) • 1119074E-0493-4533-9212-6758A33EB40C
      • ios            • com.apple.CoreSimulator.SimRuntime.iOS-13-6 (simulator)
    • Web Server (web)                    • web-server
      • web-javascript • Flutter Tools
    • Chrome (web)                        • chrome
      • web-javascript • Google Chrome 84.0.4147.105

! Doctor found issues in 2 categories.

Can you upgrade to master and try again
flutter channel master
flutter upgrade --force
flutter doctor -v

Wow, yes, latest master fixed this issue. Thank you @pedromassangocode


(#399) included GitReleaseManager.exe.config in nuget

Description
GitReleaseManager.exe.config contains a AssemblyBinding-redirect
which is needed to use GitReleaseManager.exe.
Related Issue
fixes #399
Motivation and Context
#399
How Has This Been Tested?

build and pack the nuget package
unzip the nupkg
cd into the tools folder
call GitReleaseManager.exe label --token a -o b -r c
#399 does no longer occur

Checklist:

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report

Merging #400 (9e8a8fc) into develop (c637bce) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 9e8a8fc differs from pull request most recent head a7ccba5. Consider uploading reports for the commit a7ccba5 to get more accurate results

@@           Coverage Diff            @@
##           develop     #400   +/-   ##
========================================
  Coverage    78.90%   78.90%
========================================
  Files           58       58
  Lines         1318     1318
  Branches       114      114
========================================
  Hits          1040     1040
  Misses         257      257
  Partials        21       21

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 c637bce...a7ccba5. Read the comment docs.

@nils-a thank you very much for your help in identifying the underlying issue here, and HUGE congratulations on your first time contribution to this project!  Really appreciate it!


ObjWriter build fails due to class scope meaning change

When following the ObjectWriter build doc I encountered an issue wherein various members of the ICorDebugInfo class in ObjWriter/cordebuginfo.h triggered an error due to class scope issues. Specifically redefining a few structs without using elaborated type specifiers in the VarLoc struct.
    struct VarLoc
    {
        VarLocType      vlType;

        union
        {
            vlReg           vlReg;
            vlStk           vlStk;
            vlRegReg        vlRegReg;
            vlRegStk        vlRegStk;
            vlStkReg        vlStkReg;
            vlStk2          vlStk2;
            vlFPstk         vlFPstk;
            vlFixedVarArg   vlFixedVarArg;
            vlMemory        vlMemory;
        };
};

Error:
...
In file included from /tmp/llvm/tools/ObjWriter/jitDebugInfo.h:7,
                 from /tmp/llvm/tools/ObjWriter/debugInfo/dwarf/dwarfGen.h:16,
                 from /tmp/llvm/tools/ObjWriter/debugInfo/dwarf/dwarfGen.cpp:11:
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:298:29: error: declaration of ‘ICorDebugInfo::vlStk ICorDebugInfo::VarLoc::<unnamed union>::vlStk’ [-fpermissive]
             vlStk           vlStk;
                             ^~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:213:12: error: changes meaning of ‘vlStk’ from ‘struct ICorDebugInfo::vlStk’ [-fpermissive]
     struct vlStk
            ^~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:299:29: error: declaration of ‘ICorDebugInfo::vlRegReg ICorDebugInfo::VarLoc::<unnamed union>::vlRegReg’ [-fpermissive]
             vlRegReg        vlRegReg;
                             ^~~~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:222:12: error: changes meaning of ‘vlRegReg’ from ‘struct ICorDebugInfo::vlRegReg’ [-fpermissive]
     struct vlRegReg
            ^~~~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:300:29: error: declaration of ‘ICorDebugInfo::vlRegStk ICorDebugInfo::VarLoc::<unnamed union>::vlRegStk’ [-fpermissive]
             vlRegStk        vlRegStk;
                             ^~~~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:231:12: error: changes meaning of ‘vlRegStk’ from ‘struct ICorDebugInfo::vlRegStk’ [-fpermissive]
     struct vlRegStk
            ^~~~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:301:29: error: declaration of ‘ICorDebugInfo::vlStkReg ICorDebugInfo::VarLoc::<unnamed union>::vlStkReg’ [-fpermissive]
             vlStkReg        vlStkReg;
                             ^~~~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:244:12: error: changes meaning of ‘vlStkReg’ from ‘struct ICorDebugInfo::vlStkReg’ [-fpermissive]
     struct vlStkReg
            ^~~~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:302:29: error: declaration of ‘ICorDebugInfo::vlStk2 ICorDebugInfo::VarLoc::<unnamed union>::vlStk2’ [-fpermissive]
             vlStk2          vlStk2;
                             ^~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:258:12: error: changes meaning of ‘vlStk2’ from ‘struct ICorDebugInfo::vlStk2’ [-fpermissive]
     struct vlStk2
            ^~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:303:29: error: declaration of ‘ICorDebugInfo::vlFPstk ICorDebugInfo::VarLoc::<unnamed union>::vlFPstk’ [-fpermissive]
             vlFPstk         vlFPstk;
                             ^~~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:267:12: error: changes meaning of ‘vlFPstk’ from ‘struct ICorDebugInfo::vlFPstk’ [-fpermissive]
     struct vlFPstk
            ^~~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:304:29: error: declaration of ‘ICorDebugInfo::vlFixedVarArg ICorDebugInfo::VarLoc::<unnamed union>::vlFixedVarArg’ [-fpermissive]
             vlFixedVarArg   vlFixedVarArg;
                             ^~~~~~~~~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:278:12: error: changes meaning of ‘vlFixedVarArg’ from ‘struct ICorDebugInfo::vlFixedVarArg’ [-fpermissive]
     struct vlFixedVarArg
            ^~~~~~~~~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:305:29: error: declaration of ‘ICorDebugInfo::vlMemory ICorDebugInfo::VarLoc::<unnamed union>::vlMemory’ [-fpermissive]
             vlMemory        vlMemory;
                             ^~~~~~~~
/tmp/llvm/tools/ObjWriter/cordebuginfo.h:285:12: error: changes meaning of ‘vlMemory’ from ‘struct ICorDebugInfo::vlMemory’ [-fpermissive]
     struct vlMemory
            ^~~~~~~~
In file included from /tmp/llvm/include/llvm/MC/MCObjectStreamer.h:13,
                 from /tmp/llvm/tools/ObjWriter/debugInfo/dwarf/dwarfGen.h:13,
                 from /tmp/llvm/tools/ObjWriter/debugInfo/dwarf/dwarfGen.cpp:11:
...

System Info:
Archlinux - Linux 4.18.2.a-1 #1 SMP PREEMPT Fri Aug 17 22:53:33 CEST 2018 x86_64 GNU/Linux

Generated cmake config:
-- The C compiler identification is GNU 8.2.1
-- The CXX compiler identification is GNU 8.2.1
-- The ASM compiler identification is GNU
-- Found assembler: /usr/sbin/cc
-- Check for working C compiler: /usr/sbin/cc
-- Check for working C compiler: /usr/sbin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/sbin/c++
-- Check for working CXX compiler: /usr/sbin/c++ -- works
...
-- Found PythonInterp: /usr/sbin/python2.7 (found version "2.7.15")
-- Constructing LLVMBuild project information
-- Linker detection: GNU ld
...
-- ObjWriter configuring with () build type and (x86_64-unknown-linux-gnu) default target triple
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/llvm/build

Naively, passing -fpermissive would solve the issue, but the fix is ezpz:
    struct VarLoc
    {
        VarLocType      vlType;

        union
        {
            ICorDebugInfo::vlReg           vlReg;
            ICorDebugInfo::vlStk           vlStk;
            ICorDebugInfo::vlRegReg        vlRegReg;
            ICorDebugInfo::vlRegStk        vlRegStk;
            ICorDebugInfo::vlStkReg        vlStkReg;
            ICorDebugInfo::vlStk2          vlStk2;
            ICorDebugInfo::vlFPstk         vlFPstk;
            ICorDebugInfo::vlFixedVarArg   vlFixedVarArg;
            ICorDebugInfo::vlMemory        vlMemory;
        };
    };

Fixed in https://github.com/dotnet/corert/pull/6341. Thanks a lot!


Object destructuring in method calls

Hi
I want to propose an idea, allow destructing object over method invocation for avoid write "paramName = obj.paramName"
Let me show you it with an example:
class Person(shared String lastName, shared String firstName, shared Integer birthYear){}

Person smith = Person("Smith", "John", 1985);

We want to create a copy modifying the birthYear for doing it we can create a copy method in the Person class, or create a new copy using the constructor.
Using the copy method design pattern: This design requires write a special method for create a new copy, maybe in a future the compiler can generate it automatically in some cases:
class Person_(shared String lastName, shared String firstName, shared Integer birthYear){
    shared Person_ copy(String lastName = this.lastName, String firstName = this.firstName, Integer birthYear = this.birthYear) {
        return Person_(lastName, firstName, birthYear);
    }
}

Person_ smith_ = Person_("Smith", "John", 1985);
Person_ copy_ = smith_.copy{birthYear = 1980;};

Another approach is create a new copy using a constructor
Person copy1 = Person(smith.lastName, smith.firstName, 1980); // Parameter positional invocation
Person copy2 = Person { // Parameter named invocation
    lastName = smith.lastName;
    firstName = smith.firstName;
    birthYear = 1980;
};

My proposition is to allow destructing object in the method invocation
Person copy = Person { // Parameter named invocation
    ...smith; // Unsupported syntax at this moment inspired in the object spread in EcmaScript 7
    birthYear = 1980;
};

In this way we can create copies of simple objects without needed of a copy method in a easy way.
Rules: The method take from the destructed object the properties with the same name and compatible type missing in the method invocation
Syntax: Two options:

As is in lower span. Eg: ...smith
As in spread operator. Eg.: *smith

I prefer the span syntax because the spread syntax can be confused with an spread argument
Thanks!

I would prefer the syntactic option
Person { *person; birthYear = 1980; }

I think the risk of confusion with the Iterable spread operation is minimal, since it's followed by a ;.
A difficulty with this is the following: precisely which attributes of Person are included in the operation, and are considered to line up with the parameters of the class? Consider:
class Person(shared String firstName, shared String lastName, Integer age) {}

At first, one might say:

all of firstName, lastName, and age, since there is no need to enforce the private visibility of age in this context. (Person is always allowed to access its own private members.)

However, that's not right, since in this case, age isn't captured. The only way to guarantee that a parameter of the class is captured is to declare it shared. So I suppose we would arrive at:

Only firstName and lastName, since they are declared shared. In this case one must always write Person { *person; age=age; } explicitly.

I suppose that's OK, but it's worth keeping in mind.
A potential objection to the whole feature, then, is that:

it's only really useful for these "data" classes, and
it doesn't work with constructors, nor with regular methods, since there's no reasonable way to line up attributes with parameters.

However, I guess I can still see the feature being useful even given these limitations.
A final question: could this also be made to work in positional invocations? It seems to me that if all the shared parameters of the class are adjacent to each other in the parameter list, then indeed it could be reasonable, for example:
Person(*person, age)

But that's probably taking this a bit too far.
Thoughts?

This could be made a bit more general than just "spread an object into the constructor of the same class":
Allow any "callable with named parameters" (not sure if the lang-spec has a name for this – this includes classes, functions, methods, constructors, but not a Callable<R,P> – i.e. everything which accepts a named argument list) and having the rule "all shared attributes of the spread parameter's type will be mapped to corresponding (same-named) parameters of the callable" – the remaining parameters (if required) need to be given explicitly.
We could even spread several objects:
Customer { *person; *preferences; }

(Assuming the customer class has arguments matching the shared attributes from the person and from the preferences object taken together. This is not a good example.)
Though this might cause problems when the type to be spread evolves to have more shared attributes, and the callable doesn't at the same time get more same-named parameters. Ignoring non-matching attributes could partially help, but also hide a potential problem.
I would not try to spread objects into positional parameters, as the order of attributes in an object is not really defined. Also, the object might be implementing Iterable in addition to having attributes, then it becomes really fuzzy.

Though this might cause problems when the type to be spread evolves to have more shared attributes

Yes, that's my thought. What makes this feature reasonable for Person(*person) is that we know which attributes of Person occur in the parameter list of Person, and that lining them up is non-fragile.

If the following is somewhat relevant, for the thing described here, Haskell has so-called update syntax value { field1 = v1, ... }. Here, an analogous feature could’ve been used instead of a more general spreading, if an update (in immutable sense) is all what’s desired. If it is.
On the other hand, the first approach described by @juanluispaz is a (non-generic, though) version of this update syntax almost precisely.
(On the third hand, with deep selective updates all of them fail. For the last reason lenses (getter-modifier pairs) exist, but I can’t suggest any ceylonic syntax for these and their automatic definitions.)

Person { *person; birthYear = 1980; }
does not resolve inheritance issues (this almost clone feature has the sames issues as clone 260
shared class VIP(String lastName, String firstname, Integer birthYear, shared Integer followers)
 extends Person(lastName, firstname, birthYear) {
}
Person agent007 = VIP("bond", "james", 1950, 2000);
Person younger = agent007.copy{ birthYear = 1990; } ; // this should return a VIP instance
while
Person { *agent007; birthYear = 1980; }
create an instance of class Person.
In Java, i use the builder pattern with a cloneBuilder method that return a builder instance with copies values of "this" ; but it's very heavy and verbose style.

This could be made a bit more general than just "spread an object into the constructor of the same class"

I agree. And, spreading of labels tuples (#3851) for all named argument invocations.
While cloning with changes is important, it covers only a fraction of the potential use cases for spreading name->value mappings. This is especially true in Ceylon which favors immutability and null safety. 1) you can't rely on mutability to populate fields using reusable functions that operate on superclasses, and 2) you can't easily create "template" instances of a class that have only a few populated fields.
An example: construct both Employees and Customers using common code for their common fields (they'd likely be subclasses of sealed abstract Person, but that doesn't help us).
Today, you'd wind up with a bunch of code duplication:
value personDetails = getPersonDetails(id);
if (isEmployee) {
    return Employee {
        id = personDetails.id;
        lastName = personDetails.lastName;
        firstname = personDetails.firstname;
        birthYear = personDetails.birthYear;
        department = lookupDept(id);
        salary = lookupSalary(id);
    };
}
else if (isCustomer) {
    return Customer {
        id = personDetails.id;
        lastName = personDetails.lastName;
        firstname = personDetails.firstname;
        birthYear = personDetails.birthYear;
        firstPurchaseDate = lookupFPD(id);
    };
}

with mutability (non-Ceylonic):
if (isEmployee) {
    value employee = Employee(id);
    fillInPersonDetails(employee);
    employee.department = lookupDept(id);
    employee.salary = lookupSalary(id);
    return employee;
}
else if (isCustomer) {
    value customer = Customer(id);
    fillInPersonDetails(customer);
    customer.department = lookupDept(id);
    customer.salary = lookupSalary(id);
    return customer;
}

and with flexible named argument spreading, you might have:
if (isEmployee) {
    return Employee {
        *getPersonDetails(id);
        department = lookupDept(id);
        salary = lookupSalary(id);
    };
}
else if (isCustomer) {
    return Customer {
        *getPersonDetails(id);
        firstPurchaseDate = lookupFPD(id);
    };
}

I think the last example provides all of the benefits of Ceylon's null safety and immutability, and the code reuse benefits currently only available with Java bean style mutability. This would be even better with #3851.

Though this might cause problems when the type to be spread evolves to have more shared attributes

I tend to think that is an acceptable risk, and would only affect cases where the type's new attribute has the same name and type as a defaulted parameter, and an argument for that parameter is not otherwise provided.


Colmap to nerf image paths error and permissions error

Im getting this error when trying to run colmap to nerf. Image paths in my cameras.txt are set to the absolute paths, and I'm running conda as admin;
(camorph_win) d:\.repos\camorph>python -m camorph -i D:\.repos\camorph\in\txt\source -id D:/.repos/camorph/in/txt/images -if colmap -ft txt -o D:/.repos/camorph/out -of nerf
D:\.repos\camorph\camorph\ext\NeRF\NeRF.py:197: UserWarning: Camorph needs absolute image Paths. Relative paths are automatically calculated when saving to NeRF
  warnings.warn("Camorph needs absolute image Paths. Relative paths are automatically calculated when saving to NeRF")
Traceback (most recent call last):
  File "D:\.conda\envs\camorph_win\lib\runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "D:\.conda\envs\camorph_win\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "d:\.repos\camorph\camorph\__main__.py", line 4, in <module>
    cli.run(run_as_module=True)
  File "D:\.repos\camorph\camorph\cli.py", line 58, in run
    camorph.write_cameras(cargs.output_format, cargs.output, cams, crop=c, scale=s, check_images=cargs.check_images,
  File "d:\.repos\camorph\camorph\camorph.py", line 119, in write_cameras
    dest_inst.write_file(cam_copy, path, file_type)
  File "D:\.repos\camorph\camorph\ext\NeRF\NeRF.py", line 225, in write_file
    with open(output_path, 'w') as f:
PermissionError: [Errno 13] Permission denied: 'D:/.repos/camorph/out'

Hi,
This is because you are trying to write to the file D:/.repos/camorph/out which is in all likelyhood a directory. You need to specify the json name in the output path, i.e. D:/.repos/camorph/out/tansforms.json
This could be a more verbose error message, you are right :)

Hi thanks, that makes sense.
When adding the filename "transforms.json"  it does save now, but I get an error and the image paths in the .json are incorrect;
error
(camorph_win) d:\.repos\camorph>python -m camorph -i D:\.repos\camorph\in\txt\source -id D:/.repos/camorph/in/txt/images -if colmap -ft txt -o D:/.repos/camorph/out/transforms.json -of nerf
D:\.repos\camorph\camorph\ext\NeRF\NeRF.py:197: UserWarning: Camorph needs absolute image Paths. Relative paths are automatically calculated when saving to NeRF
  warnings.warn("Camorph needs absolute image Paths. Relative paths are automatically calculated when saving to NeRF")

filepath in .json
            "file_path": "..\\in\\txt\\images\\0001.png",
I defined the image directory with;
-id D:/.repos/camorph/in/txt/images
Also as a test I made an edit to the images.txt to include the paths just in case but that didn't work.


publish clvm_rs python package to test.pypi.org

I'll rerun the CI once we have PyPi secrets in this repo


Pagekit Installer Population Issues

The above image is the screen im staring at after configuring DigitalOcean Ubuntu 14.04 x64 VPS Droplet.
My Method:
UPDATE & UPGRADE THE SYSTEM
apt-get -y update && apt-get -y upgrade
INSTALL LOGISTICAL DEPENDENCIES
apt-get install -y software-properties-common python-software-properties git curl
NGINX + PHP + EXTENSIONS
apt-get install -y nginx php5-fpm php5-cli php5-mysql php5-curl php5-json php5-apcu
INSTALL COMPOSER
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
INSTALL NODE + BOWER + GULP
curl -sL https://deb.nodesource.com/setup | sudo bash -
apt-get install -y nodejs
npm cache clean
npm install -g bower
npm install -g gulp
CLONE PAGEKIT LOCALLY
mkdir -p /usr/share/nginx/pagekit/{public_html,logs}
git clone git://github.com/pagekit/pagekit.git /usr/share/nginx/pagekit/public_html
cd /usr/share/nginx/pagekit/public_html
composer install
npm install
bower install --allow-root
gulp
CONFIGURE NGINX
cat <<'EOF' > /etc/nginx/sites-available/pagekit
server {
server_name pagekit;
listen 80;
listen [::]:80;
root /usr/share/nginx/pagekit/public_html;
access_log /usr/share/nginx/pagekit/logs/access.log;
error_log /usr/share/nginx/pagekit/logs/error.log;
index index.php;
server_name locahost;
location / {
        try_files $uri $uri/ /index.php?$args;
}

location ~* \.(?:ico|css|js|gif|jpe?g|png|ttf|woff)$ {
        access_log off;
        expires 30d;
        add_header Pragma public;
        add_header Cache-Control "public, mustrevalidate, proxy-revalidate";
}

    location ~ \.php$ {
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_keep_conn on;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }

}
EOF
INSTALL MARIADB & CREATE PAGEKIT DATABASE
apt-get install -y mariadb-server
mysql_secure_installation {n, Y, Y, Y, Y}
mysql -uroot -p
CREATE DATABASE pagekit;
GRANT ALL PRIVILEGES ON pagekit.* TO 'pagekituser'@'localhost' IDENTIFIED BY
'pagekituser_passwd';
FLUSH PRIVILEGES;
\q
TEST CONFIG & SYMLINK
sudo nginx -t
ln -s /etc/nginx/sites-available/pagekit /etc/nginx/sites-enabled/pagekit
rm /etc/nginx/sites-available/default -rf
rm /etc/nginx/sites-enabled/default -rf
rm /usr/share/nginx/html -rf
chown -R www-data: /usr/share/nginx/pagekit/public_html/
/etc/init.d/nginx restart

Take a look for yourself: http://<IP_ADDRESS>/index.php/installer

Did you run webpack to compile the Javascripts ?

@steffans where do i need to run webpack, like what directory? Sorry I am new to this but want to develop on this platform

Got it working after issuing these update commands after install:
git pull
composer update
npm install
bower update
gulp
webpack

@MBRO95
I build gulp   but php  template can't be exec like this
I writed a test.php  echo phpinfo()  it's ok. Please tell me how to fix this problem

This problem has been solved. Please open another issue, if the following does not help:

Run git clone --branch develop https://github.com/pagekit/pagekit.git
Run composer install
Run npm install
Run gulp
Run webpack

I'd also recommend not to install Pagekit using git. You can simply download and install it this way: https://pagekit.com/docs/getting-started/installation#step-1-download-and-open-the-installer .
If you choose to download following https://pagekit.com/docs/getting-started/installation#step-1-download-and-open-the-installer you do not run gulp, webpack etc.


The extra character is displayed on the start page

Steps to reproduce:

Open the gooddev.netlify.app
Pay attention to the extra character near the "terms of use" link

Actual result: The extra character is displayed on the start page near the "terms of use" link
Expected result: The extra character shouldn't be displayed on the start page near the "terms of use" link
Checked on DEV V0.23.1-0
Desktop: Windows 10 // Google Chrome 83.0.4103.97

Checked on DEV V0.24.0
LG V30+ // Android 8.0 // Google Chrome 83.0.4103.83
Desktop: Windows 10 // Google Chrome 83.0.4103.97


Npm publish setup

Pulls in the npm setup from language server so it can be separately landed here
this will allow us to test wasm publishing

It seems rebasing is required.
@prozacchiwawa Do you want me to rebase and force push?

Apologies, i merged up from base after the srcloc change supporting the language server.


Documentation for configuring dotnet-monitor logging

Documentation Request
We are currently using dotnet-monitor to collect some metrics for our service. However, I noticed that dotnet-monitor emits logs for every time it writes into the metrics endpoint. Is there any way to configure the logging verbosity of dotnet-monitor? I would appreciate adding documentation on how to do this.

@jander-msft I expected to be able to remove metrics logging with:
Logging__LogLevel__Microsoft.Diagnostics.Monitoring.RestServer.Controllers.MetricsController
but I'm still seeing logging from Microsoft.Diagnostics.Monitoring.RestServer.OutputStreamResult. We should consider using the parent controller category for OutputStreamResult.
@alcallah Logging levels are controlled by configuration, such as configuration described in https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-5.0
Are you on Aks? Our default log levels are defined at https://github.com/dotnet/dotnet-monitor/blob/main/src/Tools/dotnet-monitor/appsettings.json and deployed alongside the app. The easiest way that I can think of to tweak log levels is to mount a file into /etc/dotnet-monitor where we read configuration from. So you might have something like:
/etc/dotnet-monitor/Logging__LogLevel__Microsoft.Diagnostics.Monitoring.RestServer.Controllers.MetricsController with the contents of Error. Replace Microsoft.Diagnostics.Monitoring.RestServer.Controllers.MetricsController with whatever category you wish to change.

I believe that @wiktork has provided the appropriate guidance to answer your questions and I've created a separate issue to consolidate and document the logger categories. Feel free to reopen if you need more help with this specific issue.


Add new Styles

This will add two new resume styles.

@josylad why you touch another file?
please add only the css or i need to refuse

@feder-cr I have updated the description.


installation problem

⚠ Check for existing issues before proceeding. ⚠

[X] I have searched the existing issues, and there is no existing issue for my problem

Where are you using SuperAGI?
Windows
Which branch of SuperAGI are you using?
Main
Do you use OpenAI GPT-3.5 or GPT-4?
GPT-3.5
Which area covers your issue best?
Installation and setup
Describe your issue.
The installation stops with error messages,
And it continues the same problem even after reinstalling docker
PS E:\01.01.2024\Ai\SuperAGI\SuperAGI> docker compose up --build
[+] Running 36/3
✔ proxy 7 layers [⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                               275.5s
✔ super__redis 12 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                  275.5s
✔ super__postgres 14 layers [⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                             275.5s
2024/01/06 18:45:31 http2: server: error reading preface from client //./pipe/docker_engine: file has already been closed
2024/01/06 18:45:31 http2: server: error reading preface from client //./pipe/docker_engine: file has already been closed
[+] Building 259.4s (31/41)                                                                              docker:default
=> [backend internal] load build definition from Dockerfile                                                       0.3s
=> => transferring dockerfile: 1.15kB                                                                             0.0s
=> [backend internal] load .dockerignore                                                                          0.2s
=> => transferring context: 315B                                                                                0.0s
=> [gui internal] load .dockerignore                                                                              0.2s
=> => transferring context: 214B                                                                                0.0s
=> [gui internal] load build definition from Dockerfile                                                           0.3s
=> => transferring dockerfile: 559B                                                                               0.0s
=> [celery internal] load build definition from Dockerfile                                                        0.3s
=> => transferring dockerfile: 1.15kB                                                                             0.0s
=> WARN: Empty continuation line found in: RUN python3.10 -c "import nltk; nltk.download('punkt')" &&   python3.  0.3s
=> [celery internal] load .dockerignore                                                                           0.3s
=> => transferring context: 315B                                                                                0.0s
=> [celery internal] load metadata for docker.io/library/python:3.10-slim-bullseye                                2.6s
=> [gui internal] load metadata for docker.io/library/node:18-alpine                                              2.1s
=> [gui auth] library/node:pull token for registry-1.docker.io                                                    0.0s
=> [backend auth] library/python:pull token for registry-1.docker.io                                              0.0s
=> [gui internal] load build context                                                                              0.2s
=> => transferring context: 4.48MB                                                                                0.1s
=> [gui deps 1/5] FROM docker.io/library/node:18-alpine@sha256:b1a0356f7d6b86c958a06949d3db3f7fb27f95f627aa6157c  8.6s
=> => resolve docker.io/library/node:18-alpine@sha256:b1a0356f7d6b86c958a06949d3db3f7fb27f95f627aa6157cb98bc65c8  0.1s
=> => sha256:661ff4d9561e3fd050929ee5097067c34bafc523ee60f5294a37fd08056a73ca 3.41MB / 3.41MB                     0.6s
=> => sha256:0f158788f409a5decd9495205daf4aa17df26d8219d6dc12acab5949342866fe 40.24MB / 40.24MB                   7.0s
=> => sha256:f028dff98271801e449c3ebac94a319851128c0ec687e13e00a68b2d98ec4700 2.34MB / 2.34MB                     1.0s
=> => sha256:b1a0356f7d6b86c958a06949d3db3f7fb27f95f627aa6157cb98bc65c801efa2 1.43kB / 1.43kB                     0.0s
=> => sha256:8842b060b01af71c082cee310b428a2d825e940d9fd9e450e05d726aea66a480 1.16kB / 1.16kB                     0.0s
=> => sha256:f3776b60850deec9eb1da7746fa20b3f000bf153408dc896d6606704c83f948d 7.14kB / 7.14kB                     0.0s
=> => extracting sha256:661ff4d9561e3fd050929ee5097067c34bafc523ee60f5294a37fd08056a73ca                          0.1s
=> => sha256:18f25c33705ddc3351cc4893fdc0a38405bdd0741643798918fa2b0146fd5a9d 451B / 451B                         0.9s
=> => extracting sha256:0f158788f409a5decd9495205daf4aa17df26d8219d6dc12acab5949342866fe                          0.9s
=> => extracting sha256:f028dff98271801e449c3ebac94a319851128c0ec687e13e00a68b2d98ec4700                          0.1s
=> => extracting sha256:18f25c33705ddc3351cc4893fdc0a38405bdd0741643798918fa2b0146fd5a9d                          0.0s
=> [backend internal] load build context                                                                          0.1s
=> => transferring context: 3.11kB                                                                                0.0s
=> [backend compile-image 1/8] FROM docker.io/library/python:3.10-slim-bullseye@sha256:683079b18a1c86de6a3652cf0  6.6s
=> => resolve docker.io/library/python:3.10-slim-bullseye@sha256:683079b18a1c86de6a3652cf07e07ebeed7223b69245923  0.0s
=> => sha256:683079b18a1c86de6a3652cf07e07ebeed7223b69245923939f9c4e4fd1c4b47 1.65kB / 1.65kB                     0.0s
=> => sha256:146bd19380cd96db51b1f5d734c08289c3452139ddc449640254bd79d843668e 1.37kB / 1.37kB                     0.0s
=> => sha256:d23ba0c2094efc54f6bf71e73918c43cb7eac21109d41fe3be7b2ae25e5aac36 6.94kB / 6.94kB                     0.0s
=> => sha256:b5a0d5c14ba9ece1eecd5137c468d9a123372b0af2ed2c8c4446137730c90e5b 31.42MB / 31.42MB                   4.3s
=> => sha256:89f76bd978528a9900d03ac89f5356f13ba8e48203e113c435f6d4c4772830db 1.08MB / 1.08MB                     1.0s
=> => sha256:80639c33deb9d9999a0374af0e6131514aceee736529575677757af3194ba1df 11.54MB / 11.54MB                   5.4s
=> => extracting sha256:b5a0d5c14ba9ece1eecd5137c468d9a123372b0af2ed2c8c4446137730c90e5b                          1.1s
=> => sha256:5d0306e96fe9d45e01fd9cdb8b6f0c8ba94a7bfb7e50c7dc164eea0f2ea1bb23 243B / 243B                         4.5s
=> => sha256:a96e2ba063af136fea03863ae61b26f3a9f5217e19c072ec75ba2c21e885a8ea 3.37MB / 3.37MB                     5.3s
=> => extracting sha256:89f76bd978528a9900d03ac89f5356f13ba8e48203e113c435f6d4c4772830db                          0.1s
=> => extracting sha256:80639c33deb9d9999a0374af0e6131514aceee736529575677757af3194ba1df                          0.3s
=> => extracting sha256:5d0306e96fe9d45e01fd9cdb8b6f0c8ba94a7bfb7e50c7dc164eea0f2ea1bb23                          0.0s
=> => extracting sha256:a96e2ba063af136fea03863ae61b26f3a9f5217e19c072ec75ba2c21e885a8ea                          0.2s
=> [celery internal] load build context                                                                           0.1s
=> => transferring context: 3.11kB                                                                                0.0s
=> [celery compile-image 2/8] WORKDIR /app                                                                        0.2s
=> [backend compile-image 3/8] RUN apt-get update &&     apt-get install --no-install-recommends -y wget libpq-  73.6s
=> [backend build-image 3/6] RUN apt-get update &&     apt-get install --no-install-recommends -y libpq-dev &&   18.9s
=> [gui deps 2/5] RUN apk add --no-cache libc6-compat                                                             5.1s
=> [gui builder 2/4] WORKDIR /app                                                                                0.2s
=> [gui deps 3/5] WORKDIR /app                                                                                0.1s
=> [gui deps 4/5] COPY package.json package-lock.json ./                                                          0.1s
=> [gui deps 5/5] RUN npm ci                                                                                17.7s
=> [gui builder 3/4] COPY --from=deps /app/node_modules ./node_modules                                            1.4s
=> [gui builder 4/4] COPY . .                                                                                0.1s
=> [gui] exporting to image                                                                                2.3s
=> => exporting layers                                                                                2.3s
=> => writing image sha256:ea368fd5df6eeda7869cf529fccf571efb2c6b81ffbd00a841a149ce63441746                       0.0s
=> => naming to docker.io/library/superagi-gui                                                                    0.0s
=> [backend compile-image 4/8] RUN python -m venv /opt/venv                                                       2.6s
=> [backend compile-image 5/8] COPY requirements.txt .                                                            0.1s
=> [backend compile-image 6/8] RUN pip install --upgrade pip &&     pip install --no-cache-dir -r requirements  169.4s
=> [backend compile-image 7/8] RUN python3.10 -c "import nltk; nltk.download('punkt')" &&   python3.10 -c "impor  3.7s
=> ERROR [backend compile-image 8/8] RUN chmod +x ./entrypoint.sh ./wait-for-it.sh ./install_tool_dependencies.s  0.3s

[backend compile-image 8/8] RUN chmod +x ./entrypoint.sh ./wait-for-it.sh ./install_tool_dependencies.sh ./entrypoint_celery.sh:
0.324 chmod: cannot access './entrypoint.sh': No such file or directory
0.324 chmod: cannot access './wait-for-it.sh': No such file or directory
0.324 chmod: cannot access './install_tool_dependencies.sh': No such file or directory
0.324 chmod: cannot access './entrypoint_celery.sh': No such file or directory

failed to solve: process "/bin/sh -c chmod +x ./entrypoint.sh ./wait-for-it.sh ./install_tool_dependencies.sh ./entrypoint_celery.sh" did not complete successfully: exit code: 1
How to replicate your Issue?
..

I found a simple solution!
Just change this syntax
RUN python3.10 -c "import nltk; nltk.download('punkt')" &&
python3.10 -c "import nltk; nltk.download('averaged_perceptron_tagger')" \
in the Dockerfile file
to that
RUN python3.10 -c "import nltk; nltk.download('punkt')" &&
python3.10 -c "import nltk; nltk.download('averaged_perceptron_tagger')"
Hope I helped someone


[Bug] Loot counter on biker heist

Describe the bug
Hello i noticed a possible bug on biker heist day 2 with the loot counter. It doesn't seem to count weapon cases and the helmet for me until the containers have been opened. It's the possible loot counter im referring to.
To Reproduce
Steps to reproduce the behavior:

Go to biker heist day 2
Check the counter for possible loot

Expected behavior
Expect to see the possible loot for the weapon cases and the bsi helmet.

It is possible that heist was constructed that way. My mod does only count loot that player can interact with at any time, since a lot of stuff in game is random, for instance - loot crate - it spawns loot (or not) in the exact second that players opens the container. There's no way of knowing beforehand what, and even if the crate will spawn loot.
Although, I will check this heist manually and see if there's something I can improve with the loot counting.

It might be a special case because some of the weapon cases are inside a wooden crate so you need to open the crate to be able to open the weapon box. But I think it's weird that the weapon crates in front of the train aren't counted since they always spawn on the ground in the cage.
I thought that the BCI helmet might be its own crate interaction since it only exists as far as I know on this heist.

I need to check the Mission Script since it all probably is dependent on difficulty.
The Helmet is not counted at all iirc., and that's something I can surely improve.
I will check it all on monday since I am on a small vacations now (Visiting Kraków, Poland)

Okay, I'll check some more heists if I can find any more missing loot. Enjoy your vacation :)

This should be fixed now. The Biker's heist units are weird because they don't have the carry_id while my script is checking them, and that was causing the weapons and Helmet to not count towards the Loot / Possible Loot counters.


Error when using http requests queue

Hi
I'm using You script -it's great.
I've got one problem.
If I add that code to my app config I always get error on first toaster
TypeError: undefined is not a function
    at http://root.system.local/bower_components/angular-toastr/dist/angular-toastr.tpls.js:142:30
    at processQueue (http://root.system.local/bower_components/angular/angular.js:13170:27)

Here is code - it is responsible for queueing requests to server.
.config(['$httpProvider', function ($httpProvider) {
            /**
             * Interceptor to queue HTTP requests.
             */
            $httpProvider.interceptors.push(['$q', function ($q) {
                var _queue = [];

                /**
                 * Executes the top function on the queue (if any).
                 */
                function _executeTop() {
                    if (_queue.length === 0) {
                        return;
                    }
                    _queue[0]();
                }

                return {
                    /**
                     * Blocks each request on the queue. If the first request, processes immediately.
                     */
                    request: function (config) {
                        var deferred = $q.defer();
                        _queue.push(function () {
                            deferred.resolve(config);
                        });
                        if (_queue.length === 1) {
                            _executeTop();
                        }
                        return deferred.promise;
                    },
                    /**
                     * After each response completes, unblocks the next request.
                     */
                    response: function (response) {
                        _queue.shift();
                        _executeTop();
                        return response;
                    },
                    /**
                     * After each response errors, unblocks the next request.
                     */
                    responseError: function (responseError) {
                        _queue.shift();
                        _executeTop();
                        return $q.reject(responseError);
                    },
                };
            }]);
        }])

Error occurs only in first toaster - then everything is ok.

Are you using angular 1.2.x?

no angular 1.3.13

Could you try the latest .js file on the dist folder on master?

The same error :/

Uh, what you mean with your app config? and where is the toast on the interceptor? I don't see anything there.

ok I have to investigate it myself. But on Monday :)

Problem is with one toast (not first as I wrote).
newToast.scope.init(); is trigered before directive's link function toastLinkFunction is executed and that's why I get error.
I don't know why is it happening.
When I remove config I wrote above everything is ok.
Is it possible that $httpProvider is linked to $compile?

Hi @piernik
I am also getting the same error, can you please tell me how can you fixed this problem ?
error : newToast.scope.init is not a function.


App Store/MacOS cannot verify app

Similar to issue #109 , Apple Store/MacOS cannot verify the app.
This forces new user to go to their Settings - Privacy - then "Open Anyway"
I have had experiences with new users who literally stop all interest in Freewallet and Counterparty after seeing this.
This is due to the Apple advertising tactic of "all Mac's don't get virus's" and the users truly believe that a non verified App from the Mac Store = being comprimised.
It has been mentioned this message shows just because the annual $99/year certification for Freewallet code has not been paid to Apple.
Any way to get this figured out along with the Certification for Windows as in #109?

Signing app on Mac
https://developer.apple.com/developer-id/
Signing app on Win
https://learn.microsoft.com/en-us/windows/win32/appxpkg/how-to-sign-a-package-using-signtool

Thank you, this would up the user experience and trust from a common user by a significant amount.

I'm also having this issue. I tried @arwyn6969 fix and it doesn't work. I get the same pop-up as above. In every other MacOS app you can CTRL click and then select open it bypasses but for some reason this one won't let me.


Let to use different table name

There is a proposal that let the user use a different migration table name

Can you write commit message using https://www.conventionalcommits.org/en/v1.0.0/ format and sign commit https://github.com/iamsauravsharma/sqlx_migrator/pull/17/checks?check_run_id=13307023981 as explained. Test also failed can you improve commit so test can pass

For some reason, I can't configure properly "Signed-off-by" I get "Screen or window too small" even size of the console is max. I probably would not pass it.

Feel free to rewrite this PR if you need "Signed-off-by", it's not necessary that show me as a contributor or something.

@shandak After careful consideration I regret to inform you I don't think different table name can be supported by library itself since supporting it will also include vulnerability related to SQL injection in library. So I have made decision to not include this feature to protect my library user from possible SQL injection. I will improve documentation of library to include documentation of how to implement custom migrator which support different table name.

Feel free to open new PR if you can mitigate SQL injection possibilities while supporting different table name

Feel free to open new PR if you can mitigate SQL injection possibilities while supporting different table name

To be honest, I do not see what kind of SQL injection can be applied there. The table name is a part of the lib configuration, I think this part is able only for backenders when they add dependencies, it's up to them how to configure, I think.
If then don't need to change the table name that they won't.

@shandak I am aware that only the backend user can write table name but If the backend developer developed some functionality based on this feature where their end user can provide input for table name there is a chance of SQL injection if the user input is not validated or sanitized properly before being used to construct the table name. I have no control to block this use case and validate user input is sanitized propel. So, I am blocking this use case directly from the library.
One solution is to validate table name directly on sqlx migrator code so backend developer cannot pass table name which can introduce SQL injection chances.
Feel free to open new PR if you add functionality to validate/sanitize table name input directly on sqlx migrator. So, backend developer cannot introduce SQL injection

@shandak You can always introduce SQL injection if user input is not sanitized and validated properly. Feel free to open new PR where table name is sanitized properly. You can use ^[a-zA-Z_][a-zA-Z0-9_]*$ regex for sanitizing table name

@shandak You can always introduce SQL injection if user input is not sanitized and validated properly. Current PR doesn't sanitize table name since library have no control to validate backend developer have done any mistake or not while passing table name so there is always chance for sql injection if table name parameter values depends on user input

As an example lets say backend developer added feature where their end users can provide table name(possible for some unique use case we have no control to block this use case) then end user provides table name as _test_table_name; drop table users; -- then this end user input is sql injection attack and drop full users tables. I do not know any use case where two different unrelated projects needs same database when one single database server easily support multiple database.

@shandak version v0.9.2 added support for custom table name for migrator which have some limitation i.e it only support adding prefix to original table name, only support ascii alpha numeric character or underscope as prefix other keys are unsupported

Looks awesome @iamsauravsharma ! Thank you for it!


Changing payment methods, moving/returning to ideal payment page: creates duplicate orders ties up stock

Magento version: 1939
Plugin version: Latest 24-3-2019
Description
When customersgo to checkout an choose say paypal express directly from cart. They then decide no: we need to go via HPP IDeal. They then click back and change some payment method again. In this case we have 3 pending orders, the last one is paid for and is later completed by the API. But! Alas. The third order cannot access the stock that is incorrectly tied up in the first 2 orders that are still pending. Before completing the 3rd order there should be a check if the exact same order does not already exist and this should be cancelled first
Situation
Create cart add products
Go to checkout payment method 1, continue to Adyen pages
Go back to cart using back button or just go to website via domain
Go to checkout again: now choose other payment method
In backend 2 orders exist ..

Hi @seansan ,
if the shopper is redirected to Ideal(or another page outside of Adyen), an offer is created on the Adyen platform, if the Adyen platform does not receive any answer after some time (30 mins for Ideal), then the offer will be closed and an OFFER_CLOSED notification will be sent to Magento, which will cancel the order.
Do you have the Leave payment method selection on HPP set to No?
https://docs.adyen.com/developers/plugins/magento-1/set-up-the-payment-methods-in-magento-m1#advancedsettings-0
In this way an offer will be always created when the shopper leaves Magento, and the order will be cancelled automatically after some time.
Kind Regards,
Alessio,
Adyen

thanks
We have this setting. It is good the offer is CLOSED ... after some time
The problem is that customers, cancel or click back and select a new
payment method within seconds
The close payment is never fast enough
So either when returning from a payment that was not completen (any method,
any way of return) :

the code should pickup the original order that he/she started to complete
close the original order as step 1 before re-creating a new quote so the
stock is released first

On Mon, Apr 1, 2019 at 12:29 PM Alessio Zampatti<EMAIL_ADDRESS>wrote:

Hi @seansan https://github.com/seansan ,
if the shopper is redirected to Ideal(or another page outside of Adyen),
an offer is created on the Adyen platform, if the Adyen platform does not
receive any answer after some time (30 mins for Ideal), then the offer will
be closed and an OFFER_CLOSED notification will be sent to Magento, which
will cancel the order.
Do you have the Leave payment method selection on HPP set to No?
https://docs.adyen.com/developers/plugins/magento-1/set-up-the-payment-methods-in-magento-m1#advancedsettings-0
In this way an offer will be always created when the shopper leaves
Magento, and the order will be cancelled automatically after some time.
Kind Regards,
Alessio,
Adyen
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Adyen/adyen-magento/issues/988#issuecomment-478525050,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAn0az9lOlH55C0xxQII6zldBSqzq0O_ks5vcd95gaJpZM4cFf1F
.

Hi @seansan ,
If the shopper clicks the "previous" button on adyen side, it will return an authResult CANCELLED, which will cancel the order, in the other cases, as we don't have a result, we cannot automatically cancel the order as the shopper may still be paying.
Kind Regards,
Alessio
Adyen

it is important in this case to: pickup the order and not create a new order
On Tue, Apr 2, 2019 at 11:52 AM Alessio Zampatti<EMAIL_ADDRESS>wrote:

Hi @seansan https://github.com/seansan ,
If the shopper clicks the "previous" button on adyen side, it will return
an authResult CANCELLED, which will cancel the order, in the other cases,
as we don't have a result, we cannot automatically cancel the order as the
shopper may still be paying.
Kind Regards,
Alessio
Adyen
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Adyen/adyen-magento/issues/988#issuecomment-478925863,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAn0a-rW-EPY9sU80RBcAjUjB18Go_Z6ks5vcyhRgaJpZM4cFf1F
.


Customize ModelState Values

I'm currently developing an Asp.Net Core API app and have integrated FluentValidation to the MVC validation pipeline and this is all working great.
However, I've got my validators setup so that they return error codes for each type of validation error and I'd like to be able to pass this on to the ModelsStateDictionary so I can use these codes in my response messages but I don't see any way to do this.  Firstly, is it possible? Then if this is not possible is there any way to add an adapter that can shape the data as it's passing from FluentValidation to ModelState? Or is there a better approach to what I want to achieve?

Are you using the automatic integration with MVC, or are you invoking the validators manually?
If you're using the automatic integration then you can use the IValidatorInterceptor interface to do this. There's a section in the docs on how to use an interceptor but essentially what you want to do is use the AfterMvcValidation method to reconstruct a new ValidationResult instead of using the usual one.
Internally, FluentValidation's ValidationFailure's are mapped to MVC's ModelValidationResult by using the failure's PropertyName and ErrorMessage, so when you reconstruct the result, you should copy the ErrorCode from the source to the ErrorMessage on the destination, and now the error code will be passed to MVC instead of the message. Quick example (untested);
public class UseErrorCodeInterceptor : IValidatorInterceptor {
  public ValidationContext BeforeMvcValidation(ControllerContext controllerContext, ValidationContext validationContext) {
    return validationContext;
  }

  public ValidationResult AfterMvcValidation(ControllerContext controllerContext, ValidationContext validationContext, ValidationResult result) {
    var projection = result.Errors.Select(failure => new ValidationFailure(failure.PropertyName, failure.ErrorCode)));
    return new ValidationResult(projection);
  }
}

You can then wire it up to your controller:
public ActionResult MyAction([CustomizeValidator(Interceptor=typeof(UseErrorCodeInterceptor))] MyModel model) {
 // etc
}

You can implement IValidatorInterceptor directly on your validator if you don't want to use the attribute.

Yes, I was using the automatic integration to MVC and I added the IValidatorInterceptor interface to my base validator class and that has worked perfectly.
Thanks for the quick reply Jeremy much appreciated!


[improvement]Code extension support menuBar and popupMenu

as title

My current problem is that I haven't found a suitable icon 😂
Currently use fontawsome icons, which are limited for editor category
https://fontawesome.com/icons?d=gallery&m=free

Maybe you should use https://fontawesome.com/icons?d=gallery&q=tag


Documentation?

Project needs documentation / wiki. Even a PDF would help :)

Yes, I agree. At present, we just have the README. Since we are busy with other efforts, we are not able to spend much time on the documentation. Do you have any question in particular?

@ajoymajumdar I don't have a specific question. However, my feedback is that many potential users (certainly me!) will shy away from open source projects that look good but don't have excellent documentation. It makes me think this project was built for a very specific need at Netflix and may not work for the community at large.

@bilalaslamseattle  we have appetite to explore using Metacat as a replacement for our in-house Metadata service. However, the docs were lacking and we ran into issues getting the docker compose stack to standup a working service. Can you share any of Netflix's plans as it relates to Metatcat? Is the intention to formally open-source it?
I listened to this talk:
https://www.slideshare.net/sawjd/the-netflix-data-platform-now-and-in-the-future-by-kurt-brown
And at the time, it was mentioned that you guys are working on finishing adding 'canonical data types' and then were planning to move forward with open sourcing the project. Any insight on the roadmap for this would be helpful!

We never officially open sourced Metacat. We shared our code in Github because a few engineers from Stichfix were interested in the project too. Hence, at present, we do not have any documentation about Metacat.
Metacat as a product is active at Netflix. We did implement features like notifications and canonical types mentioned by Kurt. The plans to open-source always gets deferred because of our internal commitments. We should be publishing a blog on our Netflix tech site soon. My apologies for not being able to add more details.
Docker issue: Our builds uses the docker steps to run our integrations tests. Let us know what is the issue you are experiencing with the docker compose.

Just published a blog post about Metacat - . This should provide insights on the usage of Metacat at Netflix.

Cloud I spend some time for a docs about this question ?  But where is our home for this Great Project, Metacat ....

Hi, I'm an engineer from Xiaomi, We want to explore metacat, but could't find some start-up docs. Could we have more docs?

@ajoymajumdar. Hi, we also have an appetite to use Metacat. We read your blog post and comment on documentation, we also installed metacat and it seems that this version does not save the metadata to a database/datastore, it looks like it is caching metadata information of connected databases in memory. Can you confirm this and are there plans to implement a internal permanent database/datastore for this? Thanks!

Hello, how should I deploy to the server after I package the 1.2 version? Please provide a little help.

Hi, I'm an engineer from Xiaomi, We want to explore metacat, but could't find some start-up docs. Could we have more docs?

Hello, I saw on the Internet that your company has carried out the secondary development of metacat and put it into production. If you can help me a little.

Hi, I'm an engineer from bwton, We want to explore metacat, but could't find some start-up docs. Could we have more docs?


[Feature] Ldap auth support

Relevant component
refarch-gateway
Problem description (optional)
Currently only oAuth2 can be used for authentication in the gateway and JWT is used for authentication for services behind the gateway.
Desired solution
As some of the open source RefArch applications are interesting for reusing in other municipalities/companies and not everyone of them uses a Keycloak for authentication the possibility to do the authentication and authorization via LDAP should be introduced.
For the DAVe Project this usecase was already externally requested.
Things to think about:

Authorization: Roles/permissions via ldap-groups?
Authentication between Gateway and Services
Easy maintanability
The alternatives could be more practical

Considered alternatives (optional)
Just integration LDAP into Keycloak
Additional context (optional)

DAVe Issue: https://github.com/it-at-m/dave-backend/issues/80
Internal tracking issue: https://git.muenchen.de/ccse/auftragsmanagement/einsaetze/-/issues/443

No duplicate

[X] I confirm that this issue is not a duplicate

Code of Conduct

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

As the implementation should be done within https://github.com/it-at-m/dave-backend/issues/80 this is blocked for now.


How to render a modal Bootstrap dialog popup

I have a node js application which handles all the client requests. I created the views using the express handlebars plugin. So I have a main layout and several views and partials. The main layout receives the views in the body and shows the complete web page.
mainlayout.handlebar
    <!DOCTYPE html>

       {{>vihead}}
	   <title>My APP</title>

             {{>vinav}}

                       {{{body}}}

© 2018 myAPP, Inc.

       {{>viscripts}}

    "

The partial vinav.handlebars is the navigation bar included in the main layout. It shows a navigation bar with "Login", "Register", ("Logout" if logged) and "Dashboard". The Dashboard page is always shown even if the user is not logged in.
vinav.handlebars

    MY APP
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">

    </button>

            {{#if user}}

{{useremail}}

Logout

            {{else}}

Login

Register

            {{/if}}

Dashboard (current)

So, for example, if the user clicks "Login" the server gets the /users/login command and sends back the login handlebars view which will be inserted in the {{{body}}} of the main layout.
login.handlebars

Account Login

<form method="post" action="/users/login">

    EMail
    <input type="text" class="form-control" name="email" placeholder="Email">

    Password
    <input type="password" class="form-control" name="password" placeholder="Password">

  <button type="submit" class="btn btn-default">Submit</button>
</form>

The same for Register. Everything works fine.
Now I want to show the login page as a Bootstrap 4 popup in the main layout,  I mean, leaving the Dashboard page intact (it must be always shown). I spent the whole day trying to find a way to show and handle the popup but I was not able to find a solution.
I know handlebars is logic-less, so I can't add pure javascript. I also know it has helpers, but I can't figure out how to handle this with an helper.
The popup for the login could be something like this (and another similar for Register):
loginpopup.handlebars

Flip-flop

        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          ×
        </button>

Account Login

      <form method="post" action="/users/login">

           EMail
           <input type="text" class="form-control" name="email" placeholder="Email">

           Password
           <input type="password" class="form-control" name="password" placeholder="Password">

         <button type="submit" class="btn btn-default">Submit</button>
      </form>

        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>

Any idea? Can someone helpme?
Thanks
Roberto

Hope this link may help you find the solution you are looking for.
https://forums.meteor.com/t/solved-issue-to-display-modal-with-bootstrap-3/8626/5


Suggestion: Buff/debuffs position

Do you think it'd be possible to implement a toggle for the target frame buffs/debuffs to show above the frame and grow in the right direction?

@vanilla-not-chocolate duplicate, already work in progress.


People 141 skills api endpoint

Ticket
https://netguru.atlassian.net/browse/PEOPLE-141
Description
Add endpoint to fetch UserSkillRates data in Profile app.

I see that you use serializers in this app which are scoped to API version and so on. Just thinking why not to use some kind of UserSkillRatesSerializer instead of constructing the JSON in service object? :)


fix server group color a11y issue

https://github.com/microsoft/azuredatastudio/issues/9203
Problem
Currently, the server group color is using opacity to indicate which is the current selected color, there are couple issues with it:

The color box with low opacity doesn't meet the contrast ratio requirement.
Not obvious about which color is currently selected.

also, 2 predefined colors do not meet the contrast ratio requirement.
Fix

use the native radio button to indicate the checked state and display the color in a box without opacity.
add a white border for the color box, so that the contrast ratio meet the contrast requirement even in dark mode.
also fixed an issue that the color selected using keyboard are not persisted.
updated the 2 predefined colors to meet the contrast ratio requirement.

Before

After

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.02%) to 41.909%

Files with Coverage Reduction
New Missed Lines
%

extensions/machine-learning/src/common/processService.ts
2
81.48%

Totals

Change from base Build<PHONE_NUMBER>:
0.02%

Covered Lines:
28658

Relevant Lines:
63506

💛  - Coveralls


why not support python3

Good job!
but I have a question,why not support python3 ? python2 is outdated~

mark

any progress on python 3 support?


[SPARK-50552][INFRA] Add a separate docker file for PyPy 3.10 daily build

What changes were proposed in this pull request?
Add a separate docker file for PyPy 3.10 daily build
Why are the changes needed?
to isolate the environments
Does this PR introduce any user-facing change?
no, infra-only
How was this patch tested?
PR builder with env:
default: '{"PYSPARK_IMAGE_TO_TEST": "pypy-310", "PYTHON_TO_TEST": "pypy3"}'

https://github.com/zhengruifeng/spark/runs/34293616750
Was this patch authored or co-authored using generative AI tooling?
no

thanks, merged to master


Update link to IRC library docs (irc-upd instead of node-irc)

As the upstream library has been changed to irc-upd instead of node-irc, change the README to point to its updated documentation (which now documents the password property usable in the ircOptions object, which was possible before but not described in documentation).
Here is the updated link, now in the README: https://node-irc-upd.readthedocs.io/en/latest/API.html#irc.Client

Coverage remained the same at 98.507% when pulling 031f22f1ec9bfc2c487a5b572ab391ea26f1438d on Throne3d:fix/docs-readme-ircupd into 85a55e6ef24cba1546ec30920c99b5712711c8ce on reactiflux:master.


feat(Node): make zone.js work in Node

This PR makes zone.js to work in Node, by setting zone and Zone as global.
To run tests in Node, do gulp test
For sure, all the patches which are DOM related are not applied, and not tested.
The goal behind it is to be able to fully run an Angular2 application in Node.

@vicb will take care of merging this once we improve the modularity of zone.js

see #116


dependencies

hey there, yesterday, the notebook was working fine, but today it is showing this error, after installing the module, it keeps on saying different modules not found. idk what the problem is, but there might be some requirements/dependencies missing in the code if it was updated recently?

yes looks like an update is required - I am getting the same problem

The problem is on Requirements cell, it isn't working, maybe Colab problem. I'm trying a workaround here until TheLastBen try fix it.

fixed, update the notebook

Can confirm, everything works as intended now👍

Something went wrong
ModuleNotFoundError: No module named 'onnxruntime.capi.onnxruntime_pybind11_state'

@thebrodyaga which extension is causing it?

yayyy, thanks ben!!! i gotta sleep now, but will for sure run it tomorrow!

I'll check it out


Inconsistent Nonce API

The current AES.GCM.SealedBox API is inconsistent:
let message = "foo".data(using: .utf8)!
let key = SymmetricKey(size: .bits256)
let nonce = try AES.GCM.Nonce(data: Data(repeating: 0, count: 12))
let seal = try AES.GCM.seal(message, using: key, nonce: nonce)
let sealData = seal.combined

sealData is Data? and nil if nonce.count != 12.
AES.GCM.Nonce(data: Data) only allows data of data.count == 12, otherwise it will throw an error.

Since it is not possible to create a nonce with a size other than 12, seal.combined can never return nil and should not be Data? but Data.

AES.GCM.Nonce(data: Data) only allows data of data.count == 12, otherwise it will throw an error.

This is not true, the code rejects larger nonces but allows smaller ones:
https://github.com/apple/swift-crypto/blob/4832fa0d133b9e03077040f123a9087e23ed21dd/Sources/Crypto/AEADs/Nonces.swift#L37-L43

Ah i see, my bad

My wrong assumption comes from Apples incorrect documentation:
https://developer.apple.com/documentation/cryptokit/aes/gcm/nonce/3237389-init

Good call, we'll get this fixed in a future SDK. Thanks!

Good call, we'll get this fixed in a future SDK. Thanks!

The documentation has been changed, but I think it is still not correct. It says:
A 12-byte data representation of the nonce. The initializer throws an error if the data has a length other than 12 bytes.
Nonce larger than 12 bytes are valid, correct?


ST: Replace macros with explicit code for better understanding. v7.0.7

Improvements for ST(State Threads):

ST: Use g++ for CXX compiler.
ST: Remove macros for clist.
ST: Remove macros for global thread and vp.
ST: Remove macros for vp queue operations.
ST: Remove macros for context switch.
ST: Remove macros for setjmp/longjmp.
ST: Remove macro for stack pad.
ST: Refine macro for valgrind.

Co-authored-by: Jacob Su<EMAIL_ADDRESS>

Is a inline function is much better?
And for the Macros keep them, use a compiling option to control the Macro definition.
The benefit is that most of the code will not changed. The Macro can be keep as deprecated or the functions can be an experimental.
#ifdef USE_MACRO
#define _ST_SWITCH_CONTEXT(_thread) ....
#else
#define _ST_SWITCH_CONTEXT(_thread)  _st_switch_context(_thread)
#endif

Is a inline function is much better?

Winlin: Change to inline.

And for the Macros keep them, use a compiling option to control the Macro definition. The benefit is that most of the code will not changed. The Macro can be keep as deprecated or the functions can be an experimental.

Winlin: I don't believe that duplicated code is a good practice.

See also https://github.com/ossrs/srs/commit/55610cf68904e5b90edb7dd810c5d56c63aff915


Exit with an error code if command parsing fails

This PR also changes the option --config-file to --config.

Adding a new error code seems like a one-off here. Can't we just check for ec::unspecified in combination with an empty message?

Wouldn't that still print the !! in the beginning? I like the explicitness of the new error code.

Yes, it is intentionally explicit.

I'm approving because I can see the argument on the other side. My point was that if we would add a new error code whenever we need some dispatching logic in a different context, we'd abuse the error abstraction. The error code should represent a class of errors, not a single one. However, silent is generic enough to serve as such a class.


dts/extract/default.py: Filter out standard properties

Standard device tree properties like 'reg-names', 'interrupt-names', and
'phandle' should be handled by other extract mechanisms or ignored.  So
if we seem them in the default handling we should ignore them.
Signed-off-by: Kumar Gala<EMAIL_ADDRESS>

Codecov Report

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

@@           Coverage Diff           @@
##           master   #10682   +/-   ##
=======================================
  Coverage   53.24%   53.24%
=======================================
  Files         214      214
  Lines       25828    25828
  Branches     5695     5695
=======================================
  Hits        13753    13753
  Misses       9760     9760
  Partials     2315     2315

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 7ae220c...7746880. Read the comment docs.

You may as well filter in extract_dts_includes.py extract_property(). By this you save a function call and document your intention at the central switch point for property extraction.
def extract_property(node_compat, yaml, node_address, prop, prop_val, names,
                     label_override):
    ...
    elif 'gpios' in prop:
        gpios.extract(node_address, yaml, prop, def_label)
    elif prop.startswith(('interrupt-names',  'reg-names',  'phandle',  'linux,phandle')):
        # filter
        pass
    else:
        default.extract(node_address, yaml, prop, def_label)

typo in commit message:
seem -> see

You may as well filter in extract_dts_includes.py extract_property(). By this you save a function call and document your intention at the central switch point for property extraction.

I moved this way up before extract_property(), so we save all the calls from there down now.


azure.identity.bump

Always use the old protocol - We don't currently have a check for the IDE protocol version, so use the old protocol until then. (#3183)
[release/8.0-preview5] Make reading Kubeconfig from DCP resilient (#3167)
Ensure RabbitMQ WithDataVolume/WithDataBindMount methods actually enable persistent storage (#3152) (#3186)
[release/8.0-preview5] Refactor console logs to render on server and use virtualization (#3178)
Make the default launch profile https in templates (#3188) (#3191)
[release/8.0-preview5] Organize dashboard config to use strongly typed options, support primary/secondary API keys and rotation (#3179)
Service Discovery API refactoring (#3114) (#3196)
Remove InternalsVisibleTo from Aspire.Hosting to Aspire.Hosting.Testing (#3208)
[release/8.0-preview5] Remove dependency from OpenTelemetry.Instrumentation.StackExchangeRedis (#3198)
Update docker message in templates (#3220)
[release/8.0-preview5] Allow cert warnings to bubble out. (#3217)
Update templates for ServiceDiscovery API changes (#3223)
Add support for Azure Event Hubs (#2870) (#3226)
[release/8.0-preview5] Detect conflicting settings when using EnrichEF (#3218)
Update container runtime not found exception message (#3225)
[release/8.0-preview5] Retry on YamlException when loading Kubernetes client configuration (#3231)
[release/8.0-preview5] Fix up Hosting.Azure packages after splitting (#3236)
Stop the apphost from running if the application url is http and ASPIRE_ALLOW_UNSECURED_TRANSPORT is not set (#3177) (#3240)
Rename config value to use unsecured instead of insecure (#3241)
[release/8.0-preview5] Support custom styles for resource style (#3246)
[release/8.0-preview5] Add WithManagementPlugin() method for RabbitMQ management plugin (#3247)
[release/8.0-preview5] Automatically AddAzureProvisioning when Azure resource type is used. (#3258)
Add README file for Aspire.Hosting.AWS (#3242)
Show https endpoints more consistently
[release/8.0-preview5] Endpoint changes (#3278)
[release/8.0-preview5] Fix the dapr scheme to be http so that the sidecar works (#3297)
Update dependencies from https://github.com/microsoft/usvc-apiserver build 0.1.62 (#3291) (#3314)
Add additional project template string (#3287)
Enable source build (#3285)
[release/8.0-preview5] Ensure logAnalyticsWorkspaceId parameter is present in Aspire manifest. (#3302)
[release/8.0-preview5] Upgrade to new version of Azure.Provisioning (#3271) (#3325)
Update AspNetCore.HealthChecks.* to latest versions (#3344)
Remove obsolete APIs. (#3336)
Dashboard should request log streams only when the user gestures to display them (#3235) (#3343)
Update OpenTelemetry packages to 1.8.0 (#3351) (#3359)
[tests] EndToEnd - add test scenarios (#3113) (#3377)
Update dependencies from https://github.com/microsoft/usvc-apiserver build 0.2.0 (#3404)
[release/8.0] Add token auth to dashboard frontend (#3350)
[release/8.0] Fix ConfigurationSchemaGenerator to use correct TimeSpan format (#3342)
Fix flaky OTLP client cert integration tests (#3415)
[release/8.0] Explicitly specify grpc OTLP protocol with env var (#3417)
[release/8.0] Tweak Bicep string name. (#3352)
Re-enables IDE protocol v1 support. Corresponding change in DCP will make it tolerate any combination of IDE tooling and app host libraries. That is, DCP will be able to use both old and new-style annotations and will probe the IDE for protocol supported, translating the requests as necessary. (#3411)
[release/8.0] Added ability to resolve target port  (#3445)
[release/8.0] Fix dashboard token being written on publish (#3418)
Add client connection info for Azure SignalR - Fixes #3390 (#3463)
Print the url with the token when we print the dashboard url (#3475)
[release/8.0] Default to browser token auth in dashboard standalone (#3469)
Increase auth cookie expiry (#3470)
[release/8.0] Initial work for Qdrant resource and component (#3131) (#3416)
[release/8.0] Uses new Azure.Provisioning packages which have been split by resource (#3462)
[release/8.0]: Backport accessibility fixes into 8.0 (#3486)
Update dependencies from https://github.com/microsoft/usvc-apiserver build 0.2.1 (#3451)
[release/8.0] Make sure bind mount paths are relative to the app host directory (#3494)
increase helix timeouts (#3509)
Change AppInsights to not add parameters more than once - Added a test that calls GetBicepTemplateFile (#3506)
[release/8.0] Enable HSTS middleware when all endpoints are HTTPS (#3504)
[release/8.0] Add browser security headers to dashboard (#3511)
[release/8.0] Distinguish Orleans hosts & clients, parameterize CluserId/ServiceId, improve playground app (#3513)
[release/8.0] Fully qualify container images (#3510)
[tests] Use existing container for tests executed with RemoteExecutor (#3536)
[release/8.0] Service Discovery: Implement approved API (#3460)
Fixed issues around injecting ASPNETCORE_URLS - Fixed issues with ASPNETCORE_URLS not working with launch profiles - Skip ASPNETCORE_URLS for endpoints that are mapped to an environment - Added tests (#3535)
[release/8.0] Introduce WithEnvironment(this, string, IResourceBuilder<IResourceWithConnectionString) (#3549)
Update ASPIRE002 warning message (#3563)
[release/8.0] Updating the OTel instrumentation package versions to 1.8.0 (#3497)
Implement IResourceWithArgs on ProjectResource (#3559)
[release/8.0]: Backporting dashboard refactoring  (#3548)
Add support for specifying custom container run arguments (#3160) (#3566)
Update login example screenshot and help text (#3537)
[release/8.0] Add User Profile Menu for OpenID Connect login (#3557)
[release/8.0] Generate and store random RG name when provisioning (#3508)
[release/8.0] Change ParameterResource's "Failed to Start" to "Configuration Missing" (#3562)
Add using to fix build. (#3575)
[release/8.0] Change starter template to make frontend external endpoints (#3571)
Fix resource type filter keyboard navigation (#3572)
Suppress save dialog from browser token login (#3579)
Fix copy buttons (#3584)
[release/8.0] Hook which rewrites the container registry in annotations. (#3583)
Resource service supports API key authentication (#3400) (#3582)
Flow dashboard logs through the app host's logger - Make the timeout waiting for dashboard logs configurable - Disable all dashboard logging by default - Allow config override for default logging categories - Added tests (#3598)
Update dependencies from https://github.com/microsoft/usvc-apiserver build 0.2.2 (#3592)
[release/8.0] Fix validation error messages (#3586)
[release/8.0] Exclude the dashboard from the manifest in dev (#3606)
Allow configuring claim requirements for frontend authorization (#3619)
Fix Qdrant resource to be publishable (#3620)
[release/8.0] Add tooltips to Resource table (#3615)
[release/8.0] [tests] Use ResiliencePipeline in IntegrationTests (#3623)
[release/8.0] [tests] Extract support for running an aspire app for tests (#3621)
#2367 dapr change the app port depending on the app protocol (#3184) (#3626)
Make status column icons colorblind friendly (#3625)
AuthorizationPolicy must have at least one requirement (#3628)
Clean up error handling (#3576)
[tests] Restructure helix project, and targets to work better (#3622)
fix build
Branding updates for preview 7
Fix dashboard log watching - When the dashboard was running as an executable, the logic we used to detect replics in broken. Instead of trying to be clever, watch all dashboard resources and log their output. This is more robust and future proof as we only have one dashboard running at once. - Deleted the timeout (#3637)
[release/8.0] Fix broken find token image in HTTP (#3638)
Bump Azure.Identity

Microsoft Reviewers: Open in CodeFlow

gh tool did odd thing...


Typo in readme

Hi @SaaJoh0783, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

This seems like a small (but important) contribution, so no contribution license agreement is required at this point. Real humans will now evaluate your PR.

TTYL, AZPRBOT;


Methods of classes cannot be used as blueprint routes

Describe the bug
Unable to define routes in classes
Code snippet
class MyApp:
    def __init__(self):
        self.bp = Blueprint("app")
        self.bp.add_route(self.route, "/route")

    def route(self, request):
        return text("hi")

Expected behavior
Accessing /route says hi
Actual behavior
Including the blueprint fails with because trying to assign __blueprintname__ on a method, but methods cannot have arbitrary attributes assigned.
Environment (please complete the following information):
19.12.2, and master
Additional context
Introduced in #1445

What is the motivation for this style api? Blueprints work really well in modules.

What is the motivation for this style api? Blueprints work really well in modules.

I want to pass in some objects, and as we are in the middle of a refactor, I don't want it to be tied to any specific import - I want the database to be injected through the class constructor, rather than an import.

Hi @penn5
There is a workaround which doesn't involve hacking the sanic route mechanism.
You can turn the method into a function using functools.partial and functools.wraps like this:
from functools import partial, wraps
class MyApp:
    def __init__(self):
        self.bp = Blueprint("app")
        handler = wraps(self.route)(partial(self.route))
        self.bp.add_route(handler, "/route")

    def route(self, request):
        return text("hi")

I've tested this, and it works exactly as expected. (And actually I will keep this in mind to implement in one of my applications in the future.)


Love it - would be great if you could add array collapsing too

Works great - thanks a lot!
Would be great if you could add the ability to collapse/expand arrays too (currently I can collapse/expand any dictionary, but not arrays)

Well good news I guess, it now started working for arrays too (maybe a restart was needed, not sure) Thanks!

Hmm seems it occurs when the file is very long (180k lines for me)

ST is in charge of the fold and unfolding of arrays / dictionaries.
Going to close this issue for now as I can't replicate with 400K lines of json


overview UI and implementation of account mixer

I get a yellow icon for transfers, it should be gray

The danger zone should be removed

DCR should be suffixed after the balances

after the 2 digits after the decimal, the rest digits should be a lighter grey color as seen below

The number of mixers running should be displayed to user
Under the wallet name, what should be displayed should be the "Unmixed balance" and not the "Mixed balance"

see a reference below

The "Privacy is here" card should disappear after setting up the mixer

The info dialog on the mixer page isn't properly formatted

see reference below

The title of some mixer settings have been changed

see reference below(also note to capitalize when necessary)

The unmixed balance shows an exponential value when the mixer completes

The remaining fixes will be sent as separate prs.