Incorrect working of "track" library under R.NET

Hello.
I found one problem when tried to work with "track" package. I really can't understand the reason of it, but...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RDotNet;
using RDotNet.NativeLibrary;
using RDotNet.Dynamic;

namespace ConsoleApplication10
{
    class Program
    {
        static void Main(string[] args)
        {
            var engine = REngine.GetInstance();

            engine.Initialize();

            engine.Evaluate("library(track);");
            engine.Evaluate(@"track.start(clobber = ""vars"", dir = file.path(tempdir(), 'rdata12356'))");

            engine.Evaluate("a <- 5;");
            engine.Evaluate("print(track.summary());");
            engine.Evaluate("print(ls(globalenv()));");

            Console.ReadLine();
        }
    }
}

track.summary() doesn't work properly via R.NET.
This is execution result via R.NET:
Tracking  (writable) using existing directory 'rdatadir'
[1] class    mode     extent   length   size     modified TA       TW
<0 строк> (или 'row.names' нулевой длины)
[1] "a"
This is execution result via R-3.2.2.x64

library(track);
track.start(clobber = "vars", dir = file.path(tempdir(), 'rdata123'));
Tracking  (writable) using new directory 'C:\Users\Rebelion\AppData\Local\Temp\RtmpGmyc4B/rdata123'
a <- 5;
print(track.summary());
class    mode extent length size            modified TA TW
a numeric numeric    [1]      1   48 2015-11-18 20:36:23  0  1
print(ls(globalenv()));
[1] "a"
track.stop();
Stopping tracking on

What's the reason of this difference in working?
Thank you.

So, if add code like this:
engine.Evaluate("print(track.status());");

we will see, that variables are untracked:
Status InMem FileBase FileExists Saved
a untracked    NA              NA    NA
It's so strange.
If I make some improvements like permanent path, or remove tempdir from
engine.Evaluate(@"track.start(clobber = ""vars"", dir = file.path(tempdir(), 'rdata12356'))");

(make something like this)
engine.Evaluate(@"track.start(auto = TRUE, pos = 1, clobber = ""vars"", dir = file.path('C:/User Root/2'));");

I'll get, that at first runvariables are untracked, but on the second run they are tracked.
I think problem in task callback functions which doesn't call correct in R.NET. Maybe I wrong.
(It's from "track" package)
A tracking environment can be linked to one environment on the search path, but the tracking environment is not on the search path itself. An environment on the search path can only have one tracking environment linked to it. In standard use, variables are tracked automatically by a task callback function. Alternatively, variables to track can be registered with the tracking environment using the function track().

I'm not seeing a difference between R.Net and rstudio. If I run this code in RStudio
library(track);
track.start(clobber = "vars", dir = file.path(tempdir(), 'rdata12356'))
a <- 5;
print(track.summary());
print(ls(globalenv()));

I get this as a result on the first run ```
Tracking  (writable) using new directory 'C:\Users\Ritch\AppData\Local\Temp\Rtmp8MGX25/rdata12356'
[1] class    mode     extent   length   size     modified TA       TW
<0 rows> (or 0-length row.names)
[1] "a"

That's the exact same result I get from R.Net

It's really strange - I don't often use RStudio, I use Console for testing primary raw code. So, what's the difference maybe between R.NET + RStudio and R Console, because in R Console this code works well...

That's sooooo strange! As I told earlier, it could be connected with task callbacks.
Look at this code I've got from help:
times <- function(total = 3, str = "Task a") {
              ctr <- 0

             function(expr, value, ok, visible) {
                            ctr <<- ctr + 1
                            cat(str, ctr, "\n")
                            if(ctr == total) {
                                                   cat("handler removing itself\n")
                                                  }
                            return(ctr < total)
             }
 }

 # add the callback that will work for
 # 4 top-level tasks and then remove itself.
 n <- addTaskCallback(times(4))

 # now remove it, assuming it is still first in the list.
 removeTaskCallback(n)

 ## Not run:
 # There is no point in running this
 # as
 addTaskCallback(times(4))

 sum(1:10)
 sum(1:10)
 sum(1:10)
 sum(1:10)
 sum(1:10)

 ## End(Not run)

If It was ran in R Terminal, we have this output:
1
1
Task a 1
>
>  sum(1:10)
[1] 55
Task a 2
>  sum(1:10)
[1] 55
Task a 3
>  sum(1:10)
[1] 55
Task a 4
handler removing itself
>  sum(1:10)
[1] 55
>  sum(1:10)
[1] 55
>
> ## End(Not run)

But, this code, was ran from RStudio, gave me this:
> source('~/tsts2.R')
Task a 1
>

And this code, was ran in R.NET, gave me this:
Multithreaded BLAS/LAPACK libraries detected. Using 2 cores for math algorithms.
[1] TRUE
1
1
[1] 55
[1] 55
[1] 55
[1] 55
[1] 55

Amazing! No callbacks! Why? Carl, why??? :-(

http://stackoverflow.com/questions/33887671/strange-addtaskcallback-work-in-rstudio/33908486#33908486
RStudio also works normal, execute this code well if not using 'source(...)'.

Have you tried using source in R.Net as suggested in that SO link? RStudio and R.Net use the publicly documented API for invoking the R engine, so what works in one should work in the other.
The SO post you linked to explains one of the limitations in getting R to parse statements through this API, namely, "When you're executing code line-by-line, each statement executed will return control to the top level, and callbacks will execute."

skyguy94, sorry, it's not an attempt to blame jmp75 or your in something, it's just an attempt to understand of the root of problem - R limitation, R.NET realization or my own curved hands. :-(
If I use example code for addTaskCallback in RStudio in line-by-line mode without using "source", I get complementary working of RStudio to R Terminal. Also it works for this code:
library(track);
track.start(clobber = "vars", dir = file.path('c:/User Root/2/'))
a <- 5;
print(track.summary());
print(ls(globalenv()));

I have "a" tracked if I run code line-by-line in RStudio (it works like R Terminal), but execution this code with using "Evaluate" to each line of earlier example for "track" or using "Evaluate" for whole R code in example for "track" and also for addTaskCallback.
Thank you and sorry you spended time on this. :-(

I don't think you are trying to blame or anything and I'm just trying to help, but there are some limitations with how R.Net sends the R code to the eval function. Generally, I test things out in RStudio as I'd like R.Net to have parity with how it does things. In this case, I think R.Net should be able to handle multiline statements properly, but it does not. At this point in time, I think the suggested source workaround is the best approach.


Make authorship soft deadline configurable.

A follow up on discussion in https://github.com/paritytech/substrate/pull/9663#issuecomment-950394269
The idea is to expose some public functions so that the soft deadline can actually be configured as a percentage of the hard deadline. Before it was hardcoded to 50%, now it's just the default and can be changed by the downstream projects.
This is especially useful for parachains, which have a pretty low absolute deadline (333ms). Note however that changing this parameter has security implications and setting it too high might end up opening a DoS vector, where block producers are forced to create & push empty blocks.

@tomusdrw thank you for taking care of this !! :)

@tomusdrw we are really interested in this PR, do you know if it will be merged soon?

bot merge

bot merge


格式化代码有问题

Issue Type: Feature Request
tab缩进从2改成4以后，偶尔会出现缩进还是2，格式化代码失败的问题。
VS Code version: Code 1.22.1 (950b8b0d37a9b7061b6f0d291837ccc4015f5ecd, 2018-04-06T02:26:57.615Z)
OS version: Windows_NT x64 10.0.16299

Better to use English！

我们是汉人,说中文

Problems with formatting code

After the tab indent was changed from 2 to 4, there was occasionally indentation or 2 and the formatting code failed.

Please provide an example.


Greeting - interface [1/2]

Current dependencies on/for this PR:

main

PR #1   👈

PR #2

This comment was auto-generated by Graphite.

Graphite Merge Job
Current status: 🔄 Waiting for checks to pass
This pull request is currently waiting for CI and mergeability checks to pass before being merged.
This comment was auto-generated by Graphite.

Job Reference: E03Ezg83JO66o5KsBRrP


Add .ts files to bugsnag/core package

Goal
We use @bugsnag/core in our project, and use the onBreadcrumb option as per the docs to filter and modify breadcrumb metadata. In order to test this behaviour, we need to create Breadcrumb instances with specific metadata, however the type definitions in the repo don't include the constructor.
This PR adds the appropriate type definitions to Breadcrumb.

Hi @qali-clio, thanks for the PR - we deliberately do not include the constructor as we don't expect anything else to be instantiating breadcrumbs.
However we do have a derived class called BreadcrumbWithInternals that does define that constructor so that should give you what you need: https://github.com/bugsnag/bugsnag-js/blob/master/packages/core/breadcrumb.d.ts

@yousif-bugsnag ah, gotcha! it looks like bugsnag/core does not include .ts files in the project root, so we don't have that file installed. I've updated the PR to add *.ts files to the included files list instead.

Hey @qali-clio, some TS files are purposely not added the the files property of the package.json (other than a few exceptions like the types directory) as they just contain implementation details. For this reason, I don't think this is a PR we'd be looking to accept.
However, a couple of other solutions that might work for you in testing: Creating and then assigning class properties after:
const a = new Breadcrumb()

a.message = 'hello'
a.metadata = { stuff: [1, 2, 3] }
a.type = 'manual'
a.timestamp = new Date()

or, extending the original Breadcrumb class:
class TestBreadcrumb extends Breadcrumb {
   constructor (message: Breadcrumb["message"], metadata: Breadcrumb["metadata"], type: Breadcrumb['type'], timestamp: Breadcrumb["timestamp"]) {
      super()

      this.message = message
      this.metadata = metadata
      this.type = type
      this.timestamp = timestamp
   }
}

const b = new TestBreadcrumb("hello v2", { stuff: [4, 5, 6] }, 'manual', new Date())

Let us know if these would work for you?

it would be nice to be able to create Breadcrumbs for test purposes, but we have a similar workaround in our repo right now. thanks!


Build Error On Mac OS Big Sur: "ld: library not found for -lstdc++"

Hi!
I'm unable to build on Mac OS 11.3 Xcode 12.5:
ld: library not found for -lstdc++
clang: error: linker command failed with exit code 1 (use -v to see invocation)

I suppose it is because libstdc++ has been deprecated in Xcode and libc++ should be used instead.
Any ideas on how to get it to work?

Did you manage to compile the c++ version https://github.com/dmlc/treelite on Mac? I suspect the issue comes from the cmakefile which is upstream.

@readpeaktuomo I updated the master branch to treelite 1.3. Can you have a try on that to see it the program still exists? It is hard for me to test it locally because I do developments on Linux.

Thanks for updating. The error still persist though. It looks like it is using treelite v0.1.0 instead of 1.3:

@readpeaktuomo can you show me your Cargo.toml?
This entry looks weird to me because it looks like a dependency on you local machine.

Oh yeah the package was named treelite with version 0.1 which confused me:

@readpeaktuomo I see. Are there any more detailed log for
?

Yeah still the same error. Here is the log:

I've noticed some configuration link:
https://docs.rs/cc/latest/cc/struct.Build.html#method.cpp_link_stdlib

stdc++ for GNU
c++ for Clang
c++_shared or c++_static for Android

may be, we need different configuration for msvc/gcc/clang?
        println!("cargo:rustc-link-lib=stdc++");
        println!("cargo:rustc-link-lib=gomp");

I don't have my dev environment setup on Mac. Maybe we can use the Mac environment in Github Action for testing this out?


Widget Doesn't rebuild on navigating to different screens.

Describe the bug
I have a User on successful authentication should navigate to Home else to LoginScreen.
The Bridge widget rebuilds perfectly but if I navigate to different screens and come back to LoginScreen , the Bridge widget does not rebuild.
To Reproduce
  final Ref ref;

  AuthNotifier(this.ref) : super(User()) {
    init();
  }
  init() async {
    final user = await SecureStorageService.readUser();
    if (user != null) state = User.fromJson(jsonDecode(user));
  }

  Future<bool> login(LoginBody body, BuildContext context) async {
    var user = await AuthService.login(body, context);
    if (user.runtimeType != bool) {
      state = user as User;
      return false;
    }
    return true;
  }

  Future logout() async {
    await SecureStorageService.removeUser();
    state = User();
  }
}

final authProvider =
    StateNotifierProvider<AuthNotifier, User>((ref) => AuthNotifier(ref));

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {

    return MaterialApp(
      title: 'Arbuda',
      theme: appTheme,
      home: Bridge(),
    );
  }
}

class Bridge extends ConsumerWidget {
  const Bridge({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context, ref) {
    final user = ref.watch(authProvider);
    log('=====>>> ${user.toJson()}');
    return (user.username != null) ? HomeScreen() : LogInScreen();
  }
}

  flutter_riverpod: ^1.0.0
  flutter_hooks: ^0.18.1

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 2.5.3, on Microsoft Windows [Version 10.0.22000.346], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.11.2)
[√] Android Studio (version 2020.3)
[√] VS Code, 64-bit edition (version 1.62.3)
[√] Connected device (5 available)

Could you also add the login method of the AuthService?
And also, why and how can the returned value of this method be bool or User?

Could you also add the login method of the AuthService?
And also, why and how can the returned value of this method be bool or User?

class AuthService {
  static Future<Response> register(RegisterBody register, context) async {
    var res = await HttpService.post(
      "/Auth/register",
      register.toJson(),
    );

    showToast("${res.data['message']}", context);
    return res;
  }

  static Future<dynamic> login(LoginBody body, BuildContext context) async {
    var res = await HttpService.post("/Auth/login", body.toJson());
    showToast("${res.data['message']} code [${res.statusCode}]", context);
    if (res.statusCode == 200) {
      await SecureStorageService.writeUser(jsonEncode(res.data['data']));
      return User.fromJson(res.data['data']);
    }
    if (res.statusCode == 400) {
      if (res.data['message'].toString().contains('wrong')) {
        return User();
      }
    }

    return false;
  }

  static Future verifyOTP(
      String mobile, String otp, BuildContext context) async {
    var res = await HttpService.post(
        '/Auth/verify_otp', {"mobile": mobile, "otp": otp});
    showToast("${res.data['message']} code [${res.statusCode}]", context);
  }

  static Future resendOTP(String mobile, BuildContext context) async {
    var res = await HttpService.post('/Auth/resend_otp', {"mobile": mobile});
    showToast("${res.data['message']} code [${res.statusCode}]", context);
  }
}

if state is change, rebuild will be executed.
static Future login(LoginBody body, BuildContext context) async
would suggest to change it to
Future<User?> login
if user is logged in, you will return user and otherwise null.
If you are still struggling with this issue, so please prepare a small example where you are mocking the api call and we will help you to solve the problem.

Navigating, by itself, will not cause widgets to rebuild – since it does not modify the state.
If you're expecting your Bridge widget to rebuild when you go back to a certain page, you may have to change the state of the provider that Bridge is listening before going back to that page.


No type completion in spec.ts files when using

When using the setup syntactic sugar I can't get any variables, methods, computed variables etc to show in the autocomplete/intellisense in my test files. Props are showing correctly and I can get everything working correctly if I use the defineComponent option without the setup attribute.
I am using Volar's Take Over mode and Vue test utils for testing
Reproduction repo can be found here https://github.com/jayEvans89/vue-app-template

This is a design limitation. If expose all script setup variables, we can't got unused variables report.
But before I find a solution, at least I will add an option to switch this behavior.

Please try add vueCompilerOptions.experimentalExposeScriptSetupContext to tsconfig in next version.
// tsconfig.json
{
  // ...
  "vueCompilerOptions": {
    "experimentalExposeScriptSetupContext": true
  }
}


change signature of createTask and createSchedule

Instead of https://github.com/iron-io/iron_worker_java/pull/8

added conditions for checking createdAt/updatedAt on nils
returned value of createTask changed to String (id)
returned value of createSchedule changed to String (id)

Can't merge automatically, can you update?

@treeder, sorry, didn't notice that automerge was impossible


Add sounds to the game

Add sounds to the game.
Preferably on:

A successful whack.
On the 3...2...1 countdown before the game.
At the end of game when the score shows.

(You're free to improvise and add any other sounds as well!)

Beginner here, can I work on this?

Do I need to learn tkinter for this?

@siddhantchimankar For adding the sounds, tkinter is not required, and any Python sound module can be used.
But, you'll need just a little knowledge of tkinter to understand the current code.

working on it!! will update you soon

I've added sounds at the start of the game for ready set go and on the click event when the user hits the mole. any other sounds you want me to add or any other functionality?


AR Try on issue.

according to the issue https://github.com/google/filament/issues/2513, I set the hand colorWrite to false, and render the hand and watch.

but the part of the watch hidden by the hand is like pixels.

What material are you using for the hand? What does the model look like? And on what device/OS version do you see this issue?

Merging with bug #2636.

What material are you using for the hand?
material {
    name : "Filament Blit Material",
    shadingModel : unlit,
    colorWrite : false,
    requires: [uv0],
}

fragment {
    void material(inout MaterialInputs material) {
        prepareMaterial(material);
        material.baseColor.rgb = vec3(getUV0(), 0.0);
    }
}

What does the model look like?

And on what device/OS version do you see this issue?
android 10, I use different device and os version it exits always.

Did you try with     depthWrite : true ?

Did you try with depthWrite : true ?

yes, I have try depthWrite : true, but it is the same

HI there @jiqimaogou:
Let me ask a question, as I've trying to work with occlusive-non-shown materials: I suppose you've using Sceneform 1.16.0 and gltfio, isn't it? If yes, what way are you following to assign the shader/material to the (renderable) arm-hand object?
Thanks for your time.

Apologies for opening up and old issue.
@jiqimaogou
I have an issue rendering face mask. I get results similar to https://github.com/google/filament/issues/3499 meaning I can't get right geometry.
Do you mind sharing part of the code for this hand rendering? (vertex and index buffer creation in paticular)
Thank in advance.


Handle problems of sending coins to the reserve account

Summary of Bug
When someone sends coins to the reserve account of a pool, it can cause some problems including:

A pool with zero amount balance in one side of the reserve coin, leading to incorrect pool price calculation

By withdrawing all coins from the pool and then sending only one reserve coin directly to the reserve account

A panic in deposit logic, when calculating the reserve coin ratio(divide by zero error with a pool described above)
...

Version
https://github.com/tendermint/liquidity/releases/tag/v1.2.5
Steps to Reproduce
Running this test causes a panic:
func TestSwapHalfZeroReserve(t *testing.T) {
	simapp, ctx := createTestInput()
	params := simapp.LiquidityKeeper.GetParams(ctx)
	pool, addr, err := createPool(simapp, ctx, sdk.NewInt(1000000), sdk.NewInt(1000000), DenomX, DenomY)
	require.NoError(t, err)
	pc := simapp.BankKeeper.GetBalance(ctx, addr, pool.PoolCoinDenom)
	_, err = simapp.LiquidityKeeper.WithdrawLiquidityPoolToBatch(ctx, types.NewMsgWithdrawWithinBatch(addr, pool.Id, pc))
	require.NoError(t, err)
	liquidity.BeginBlocker(ctx, simapp.LiquidityKeeper)
	liquidity.EndBlocker(ctx, simapp.LiquidityKeeper)
	require.True(t, simapp.BankKeeper.GetBalance(ctx, pool.GetReserveAccount(), DenomX).IsZero())
	require.True(t, simapp.BankKeeper.GetBalance(ctx, pool.GetReserveAccount(), DenomY).IsZero())
	err = simapp.BankKeeper.SendCoins(ctx, addr, pool.GetReserveAccount(), sdk.NewCoins(sdk.NewInt64Coin(DenomX, 10000)))
	require.NoError(t, err)
	_, err = simapp.LiquidityKeeper.SwapLiquidityPoolToBatch(ctx,
		types.NewMsgSwapWithinBatch(
			addr, pool.Id, types.DefaultSwapTypeId, sdk.NewInt64Coin(DenomX, 1000), DenomY, sdk.MustNewDecFromStr("1.0"), params.SwapFeeRate), 0)
	require.NoError(t, err)
	liquidity.BeginBlocker(ctx, simapp.LiquidityKeeper)
	liquidity.EndBlocker(ctx, simapp.LiquidityKeeper)
}

For Admin Use

[x] Not duplicate issue
[x] Appropriate labels applied
[ ] Appropriate contributors tagged
[ ] Contributor assigned/self-assigned

If we define a depleted pool as a pool with 0 pool coin supply, not a pool with zero reserve, we can prevent chain to panic in the mentioned situations.
I'll work on it.

Something that can be considered is to make use of module accounts that are blacklisted (via the bank module) from receiving tokens, but this is a greater change compared to the above solution.

@migueldingli1997 We thought about that approach at first, but since ReserveAcc is created dynamically when there is new pool, we think implementation requires a greater change to blockedAddrs in bank module. We're still exploring this approach to see if there is workaround.

Yep that's correct. A workaround to that then is to use just one module account (created at genesis and with the appropriate restrictions) but then you will have to keep track of the reserve balances for each pool in the liquidity module, rather than leaving it up to the bank module. I understand that this might not be desirable however.


KitchenSink example is full of complex for storyboard user.

I am new to Swift,So,creating view via storyboard seem easy to me also joining each view with appropriate controller.So,Any Full documentation is required for storyboard user to those who want to create their own table view with their custom cell.Thanks.
Any Full documentation or example using storyboard is appreciated.
Any help?
Thanks for your help work guys!!!
+1

Hi @htarwara6245,
Questions like these are best suited for Stack Overflow. We use Github to report issues and feature requests for the library, so we can focus on improving it.
Cheers

http://stackoverflow.com/questions/34984946/how-to-use-sascha-drawercontroller-with-storyboard
Can you help me with that please?Thank you guys


Rename config files to "sample" files

I think that is much better to rename the different config files on the scaffolding, to a ".sample." files, for get the repo clean and allow an easy update of this (as a submodule of another project, for example).
I go to explain this a little better.
I have right now, one repo, with this directory structure:
.
├── docker
│   ├── common.yaml
│   ├── devel.yaml
│   ├── docker-compose.yml -> devel.yaml
│   ├── inverseproxy.yaml
│   ├── LICENSE
│   ├── odoo
│   │   ├── auto
│   │   │   └── addons
│   │   ├── custom
│   │   │   ├── build.d
│   │   │   ├── conf.d
│   │   │   ├── dependencies
│   │   │   ├── entrypoint.d
│   │   │   ├── src
│   │   │   └── ssh
│   │   └── Dockerfile
│   ├── prod.yaml
│   ├── README.md
│   ├── setup-devel.yaml
│   ├── src -> ./odoo/custom/src/
│   └── test.yaml
└── README.md

the "docker" folder, is a submodule (git submodule add git@github.com:Tecnativa/docker-odoo-base.git ./docker); but, logically, i have to configure same files for my custom installation; there are (i put them refered to the tecnativa odoo base docker scaffolding):
./odoo/Dockerfile
./odoo/custom/dependencies/apt_build.txt
./odoo/custom/dependencies/apt.txt
./odoo/custom/dependencies/gem.txt
./odoo/custom/dependencies/npm.txt
./odoo/custom/dependencies/pip.txt
./odoo/custom/src/addons.yaml
./odoo/custom/src/repos.yaml
./odoo/custom/ssh/config
./odoo/custom/ssh/id_rsa
./odoo/custom/ssh/id_rsa.pub
./odoo/custom/ssh/known_hosts

With all of these files commited, if i change any of this, for my own needs, like.. Simply, install the prestapyt python module, for example (has to be on the pip.txt), i will can't make a pull after that.
If the versioned files were something like this:
./odoo/Dockerfile.sample
./odoo/custom/dependencies/apt_build.txt.sample
./odoo/custom/dependencies/apt.txt.sample
./odoo/custom/dependencies/gem.txt.sample
./odoo/custom/dependencies/npm.txt.sample
./odoo/custom/dependencies/pip.txt.sample
./odoo/custom/src/addons.yaml.sample
./odoo/custom/src/repos.yaml.sample
./odoo/custom/ssh/config.sample
./odoo/custom/ssh/id_rsa.sample
./odoo/custom/ssh/id_rsa.pub.sample
./odoo/custom/ssh/known_hosts.sample

And has entries for the really config files mentioned above on the .gitignore of the repo, all of us can adapt the repo to our needs, and not have to get the config files, get outside repo, make the pull of the repo, and put into repo the config files again.
The YAML docker-compose files don't need something like that, because in the scaffolding aren't a docker-compose.yml file (the README say that we have to make a simbolic link).
What do you think?
If you like, i can make a PR.
Regards.
PD: may be useful un bash script to rename or copy the .sample files renamed  into their locations. I can make it too, if you like.

The purpose of our scaffolding is not to be used as a submodule, but as a whole project structure updatable template. It defines how your files layout should be. It doesn't make sense to provide .sample files and git-ignore the real files, because what you actually want to have versioned are the real files, not the samples.
As it is right now, the scaffolding works out of the box by just git clone, and docker-compose -f test.yaml up, and that's the newcomer experience we want to give (or make it even simpler if possible, but never less).
You propose a different project directory layout that makes a different usage of the scaffolding, and mixing both would lead to problems.
If you consider the current scaffolding experience is not good enough, you can have your own scaffolding. You can even publish it also, and if you ping us we can include a link in the README in a new "alternative scaffoldings" section. That would be awesome. 😉
But not, this is not an improvement AFAICS, and that's not what the official scaffolding will become. As a personal side opinion, I never liked projects that supply .sample files that I have to copy and paste; I'm more on the "it should work out of the box" side of the discussion.
Thanks!


util.HttpRequest helper to make requests with headers

Adding on to #1917, to modify headers when making http requests a helper is necessary. We can already access http.Client in Lua plugins, but we can't create the new client because http.Client{} is valid Go but not valid Lua.

@zyedidia what do you think, looks good?

Ping.

Thanks!


Support Sublime Text Style Multiple Selections

When In Idea I multiselect and the use StringManipulation only one string is converted.
As a user I want to all selected strings to be converted.
Sublime Text Style Multiple Selections: https://blog.jetbrains.com/idea/2014/03/intellij-idea-13-1-rc-introduces-sublime-text-style-multiple-selections/

Which action?

The same issue is highly-desired and "up-voted" by me.
The multi-selection is a feature natively supported by Idea, by default you may add another cursor by clicking Alt+Shift+<MouseClick>

@krasa the problem is you can't apply string action on all the selection, only a single one is processed.
Probably the issue is that multiselection is dropped once you right-click, so maybe plugin is unable to obtain all the selections in that case

There might be some actions that do not work right with multiselection - if you use a menu or shortcut, not right click.
But if OP is using right click, then sure. IDE issue, nothing I can do. 🤣


feat: compute type parameters for calls

Closes #861
Summary of Changes
Compute and apply substitutions for the type parameters of a called callable.

:tada: This PR is included in version 0.8.0 :tada:
The release is available on:

npm package (@latest dist-tag)
npm package (@latest dist-tag)
v0.8.0
GitHub release

Your semantic-release bot :package::rocket:


Remove Episode Number

Description
Seems episode number has been recently implemented, and while I think it might be interesting for some shows, it's a bit jarring for most. Having the episode number for a CNN "show" really doesn't work. Seeing S01E909 is kind of weird. Also, I think some have the category before the description, so it is MOVIE - Inception. Which is also kind of weird. Would appreciate it if you could revert back to how the EPG used to be, which is just the description, without any mention of number or category.

Are you referring to a specific guide?

I understand how having the Episode numbers on some channels can be a distraction but I don't think straight up removing them is the solution here. There are channels like HBO, Starz and the likes where having Episode number is really handy.


can't run mix test on Windows due to hardcoded newlines

Environment

Elixir & Erlang/OTP versions (elixir --version):

Erlang/OTP 25 [erts-<IP_ADDRESS>] [source] [64-bit] [smp:48:32] [ds:48:32:10] [async-threads:1] [jit:ns]

Elixir 1.15.5 (compiled with Erlang/OTP 25)

Operating system: Windows 11
How have you started Livebook (mix phx.server, livebook CLI, Docker, etc): mix test
Livebook version (use git rev-parse HEAD if running with mix): latest (b7f5a44b9e5e9d3ea6ddabe29872b66b74c6a14e)

test "live_markdown_to_elixir/1" do
    markdown = """
    # Lists

    ## Introduction

    Let's generate a list of numbers:

    ```elixir
    Enum.to_list(1..10)
    ```
    """

    assert Livebook.live_markdown_to_elixir(markdown) == """
           # Run as: iex --dot-iex path/to/notebook.exs

           # Title: Lists

           # ── Introduction ──

           # Let's generate a list of numbers:

           Enum.to_list(1..10)
           """
  end

1) test live_markdown_to_elixir/1 (LivebookTest)
     test/livebook_test.exs:4
     Assertion with == failed
     code:  assert Livebook.live_markdown_to_elixir(markdown) ==
              "# Run as: iex --dot-iex path/to/notebook.exs\r\n\r\n# Title: Lists\r\n\r\n# ── Introduction ──\r\n\r\n# Let's generate a list of numbers:\r\n\r\nEnum.to_list(1..10)\r\n"
     left:  "# Run as: iex --dot-iex path/to/notebook.exs\n\n# Title: Lists\n\n# ── Introduction ──\n\n# Let's generate a list of numbers:\n\nEnum.to_list(1..10)\n"
     right: "# Run as: iex --dot-iex path/to/notebook.exs\r\n\r\n# Title: Lists\r\n\r\n# ── Introduction ──\r\n\r\n# Let's generate a list of numbers:\r\n\r\nEnum.to_list(1..10)\r\n"
     stacktrace:
       test/livebook_test.exs:17: (test)

Current behavior
tests fail on Windows because newlines are hardcoded as \n throughout the codebase
Expected behavior
tests pass

I wonder if we had a sigil or an option on a sigil to create a multiline string with a specific line ending life would be simpler.

True that.  I usually set a .editorconfig too, though not sure how that will play out for others.
this should probably do for the .gitattributes
* text=auto eol=lf
*.bat text eol=crlf

one of my .editorconfigs
# https://EditorConfig.org

root = true

[*]
end_of_line = lf
insert_final_newline = true

[*.{bat,vbs}]
end_of_line = crlf
insert_final_newline = false

@simonmcconnell can you please give a try adding both files to the repository and sending a PR if it all works out?


feature(eas-cli): add worker:alias command

PRs #2550, #2551 are stacked on top of this PR, since this PR adds deployment alias mutations.

Why
This adds worker:alias or deploy:alias command to assign different aliases from the CLI. These aliases affects the subdomain url.
How

Added WorkerAlias command, with (optional) flags --id <deployment id> and --alias `

Test Plan
When not providing the deployment ID, it will prompt the user to select the deployment:

$ eas worker:alias

$ eas worker:alias --id

$ eas worker:alias --alias

$ eas worker:alias --id  --alias

Merging this, and will open a follow-up PR to add --json and --non-interactive. The command itself is still hidden and should not be used by normal users yet.


Example for Pem Identity import?

Do you have an example for how to import a pem identity? I have exported a dfx identity from Plug Wallet, which downloaded as identity.pem. Now I am trying to import private key. Here is the error I get:
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/var/folders/yg/mzpfyl291vx30knxqlx43d2r0000gn/T/ipykernel_62451/1169095691.py in <module>
      2     private_key_1 = f.read()
      3 from ic.identity import Identity
----> 4 i1 = Identity.from_pem(private_key_1)

/opt/anaconda3/lib/python3.9/site-packages/ic/identity.py in from_pem(pem)
     34     def from_pem(pem: str):
     35         key = load_pem_private_key(pem.encode(), password=None)
---> 36         privkey = key.private_bytes(encoding=Encoding.Raw, format=PrivateFormat.Raw, encryption_algorithm=NoEncryption()).hex()
     37         return Identity(privkey=privkey, type='ed25519')
     38

/opt/anaconda3/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/ec.py in private_bytes(self, encoding, format, encryption_algorithm)
    230         encryption_algorithm: serialization.KeySerializationEncryption,
    231     ) -> bytes:
--> 232         return self._backend._private_key_bytes(
    233             encoding,
    234             format,

/opt/anaconda3/lib/python3.9/site-packages/cryptography/hazmat/backends/openssl/backend.py in _private_key_bytes(self, encoding, format, encryption_algorithm, key, evp_pkey, cdata)
   1471         # Anything that key-specific code was supposed to handle earlier,
   1472         # like Raw.
-> 1473         raise ValueError("format is invalid with this key")
   1474
   1475     def _private_key_bytes_via_bio(self, write_bio, evp_pkey, password):

ValueError: format is invalid with this key

And then here is the code I am running.
from ic.identity import Identity

with open('/Users/bob/Downloads/identity.pem','r') as f:
    private_key_1 = f.read()

i1 = Identity.from_pem(private_key_1)

I commented this on the old issue thinking it would reopen it, but it didn't open it, so I'm commenting again here. Thanks!

ok, i will write an example for how to import a pem identity. Thanks for your reminding.

First, I notice that you are still using cryptography. Please reinstall ic-py as I alter some crypto package.
Second, I noticed that plug wallet use secp256k1 algorithm to generate key. dfx do not support to import pem file exported by plug. Please refer to https://github.com/Psychedelic/plug/issues/263#issue-1031995153
It would be better if you use dfx new identity to generate identity and pem file. Though ic-py support for loading pem file from plug wallet now, I don't know whether it will cause some problem further.

Excellent! Thank you! Got it working and made my first NFT transfer using the Python agent.  🎉 Pretty slick.


Added an example on WebSocketProtocolHandshakeHandler usage

I had some hard times finding an example on how to enable websocket per-message deflate.
I've added an extra example highliting usage of WebSocketProtocolHandshakeHandler and PerMessageDeflateHandshake in this PR.

Can one of the admins verify this patch?

This is ok to test

Windows Build 2459 outcome was FAILURE using a merge of ac2d42c740449617c51d17e7632ccedd0e55d804
Summary: Execution timeout; tests passed: 1815, ignored: 611 Build time: 00:45:14


Two things that bothered me while using the Pokemon tool

This is mostly just things I've noticed could be better after using the Pokemon picker just now, apologies if these have previously been mentioned in other issues (I believe one has but the response to it seems different from how it actually works in the current tool).

Pass button
When pressing the pass button, I feel like it should eliminate every option on the screen as indifferent, as the UI suggests. Currently, it does not do that, instead moving on to the next batch while leaving the current batch still in the pool. This makes end-of-rounds with lots of random selections very annoying to deal with, as you have to click pass a lot of times until finally getting one you like with which you can start eliminating the others.

New rounds
After choosing a favourite, the intended functionality seems to be to take the other most picked from the pool and display those. Instead sometimes a new round will just soft-reset the system and show things that already have been shown and most of the times even never picked. Say in the Pokemon for example I could see mons I didn't pick in the very first round well into picking my 20th favourite, while ones I had picked a lot of times I didn't see again until favourite 30. I don't know if this is intended behaviour, or a bug. In either case, I'd like to give my opinion that things that are chosen multiple times should get priority, and if this is intended behaviour it should have some looking into as it clearly doesn't seem to be working well.

I think two years ago I used this tool, and the second point was working as I describe it, so I don't know what has changed, but if it's intended behaviour then I'd argue this is worse.

Your mental model of how the picker works internally is a bit off. It does not track how often you pick anything, only which Pokémon were eliminated by which ones. Pokémon that have been eliminated will not appear again until all the Pokémon that eliminated them (i.e. the ones you picked over them from their batch) have been added to the favorite list - at that point, any of them might be your next favorite, because all we know is that you liked these Pokémon you already have on your list more than them.
This is why passing does not eliminate all the options - there is nothing they were eliminated by, so if we eliminated them, we would have no information to know when we should bring those Pokémon back into the running! Instead, passing is equivalent to picking all of the Pokémon you're looking at, eliminating none. In order to progress, you need to eliminate and not just pass.
In each run of looking for a favorite, you will need to eventually eliminate every Pokémon in that run but one - that's how we know to put it next on the list. So it does not really make sense to "give priority" to certain Pokémon - you'll have to go through all of the ones in the running either way to be sure which your second favorite is.
(Note that a run, from one favorite being added to the list to the next, is different from a round. You may have seen me talking about rounds when commenting on another ticket. Each round is one cycle through all of the Pokémon present in this run. In the next round, you'll be shown only the Pokémon you picked (or passed on) from the previous round (+ possibly a few stragglers that would have come at the end of the previous round but didn't make a full batch), until you've eliminated every Pokémon in that run except one. Once you've done that, that Pokémon is put on your list and the run ends, and the next run begins; that run will contain all of the Pokémon that were at some point eliminated by that final pick from the previous run, whether that was in the first or tenth round of that run. If you pick consistently in accordance with your preferences, then your second favorite Pokémon has to be somewhere among this set, but cannot be among whatever Pokémon you might have picked often but were then eliminated by something other than your top favorite.)
The algorithm works this way - making you eliminate every Pokémon but one, then bringing back the ones eliminated by that Pokémon and making you eliminate all but one again - because that's a consistent way to shake out your actual preferences if you pick consistently, without being skewed by the random chance of which Pokémon happen to have been matched against which when. This is how it has worked since I first made it, so I'm not sure what you mean about it working differently two years ago.

Thanks for clarifying what I got wrong. It seems my memory did not serve me well in terms of  how it has worked in the past.
In the case of the pass button working this way, I would suggest to either use a dummy id to register it as eliminated by, as it is (in my opinion) not a good user experience to have to keep pressing pass on 2 choices until you finally get something that you can eliminate another choice with.
As for the "runs", I think it could use some improvement. You say that Pokemon eliminated by your favourite are returned in the next run, but currently this causes a loop of the next run containing Pokemon that the user is indifferent to (as at some point early on that one was chosen among many others), which are then eliminated again, and then in the next run most of those end up returning once again. I think a way of improving this would be to make sure if something never eliminates another Pokemon (i.e. never appears as eliminatedBy), but it has been eliminated before, then it should never appear again in another run, even if it was eliminated by the previous favourite. Of course performance would be a factor in making this possible, so I'm not saying my idea is the best, but I do think that adding something like that would improve the selection of the next run. Also, my idea for usage of the pass button could also improve this issue now that I think of it.

The problem is your suggestions don’t work algorithmically; they would make the picker stop working accurately.
Say your second favorite Pokémon just so happens to appear in a batch with your very favorite in the first round. You pick your favorite, because it’s your favorite. Well, you’re suggesting that now your second favorite should just be gone forever, because it got eliminated but never got picked! I find that a deeply undesirable result that would defeat the whole point of the picker.
And similarly, if passed Pokémon get eliminated with a dummy ID - that would mean these Pokémon just get eliminated forever. But then some other Pokémon you don’t care about either that merely happened to appear in a batch with some Pokémon you wanted to pick don’t get eliminated forever that way. The whole thing gets skewed based on how it happens to randomly assign Pokémon to batches. I made this picker specifically because I wanted a tool with an algorithm that works, that will actually construct an arbitrarily long list based on your expressed preferences without being skewed by some kind of random chance.
In general, the picker is not designed for you to pass constantly - to progress you need to express preferences, even if it’s a preference between two Pokémon you don’t like. (Because picking a Pokémon doesn’t give it “points” in any way, this won’t wrongly make the picker think you actually like that Pokémon - only that you prefer it over the other one.) The user experience of constantly passing between the same two Pokémon is one that you’re creating for yourself by constantly passing!
That said, I have been musing on something that might be helpful to people like you, which would let you effectively start by sectioning the entire list into Pokémon you like and ones you don’t, effectively treating all the ones you don’t pick or pass on as eliminated by all the ones you did pick across the full round. That would remain algorithmically sound (more or less; it would rely on your bar for which Pokémon you’re willing to pick not wobbling too much between batches) while letting you get rid of all Pokémon you don’t care about until the theoretical point all the Pokémon you picked as liked have been added to your list. I think this would probably solve your frustrations, and those of others with similar qualms, without majorly compromising the integrity of the tool.

You say that Pokemon eliminated by your favourite are returned in the next run, but currently this causes a loop of the next run containing Pokemon that the user is indifferent to (as at some point early on that one was chosen among many others), which are then eliminated again, and then in the next run most of those end up returning once again.

I should also mention - you won’t see most of those Pokémon returning in a loop; rather, the ones you see again are exactly those Pokémon that only ever got eliminated by your first and second favorites. Based on the information we have, these are all Pokémon that could be your third favorite. There is no redundancy - every preference that you expeess at any point is permanently taken into account and you will never have to express the same preference again, or a redundant preference (i.e. if you’ve said you like A more than B, and B more than C, you will never be made to also tell it that you like A more than C). Getting the same comparisons cropping up again is something that will only happen if you pass.

I think the main problem with the way the algoritm works is that it seems, to me, to be designed for a UI that only allows you to pick one at a time, which isn't true in the current UI. If you get presented with 30 options, there's bound to be multiple you like, and those are the ones you click. But then the ones eliminated end up being thrown back into the mix once the ones you picked in that batch are picked as favourites. The solution you mentioned seems to be the fix to this issue, and I look forward to seeing what you do with it.

It’s true people might be unlikely to pick just their top favorite from a batch that also includes their second favorite - but what about their tenth favorite, which doesn’t really register when they’re looking at it alongside their top favorite but actually does belong on their list? What about their twentieth favorite? (A lot of people use the picker to construct lists well beyond twenty favorites, so this is by no means irrelevant - if the twentieth favorite gets eliminated forever in the first round by bad luck, then their list’s going to end up wrong.) And what about those users who go on to construct lists of hundreds? Which, yes, people do do that (I’ve had several people e-mail me about how they just finished ordering every single Pokémon using the picker). It’s a massive can of worms and inaccuracies once you start eliminating anything forever.
The current elimination algorithm is designed to work correctly regardless of how many you pick - if you pick multiple Pokémon from the batch, then the ones you didn’t pick will return when all of the ones you did pick are on the favorite list. Which is correct - what we know is that you like the ones you picked better than the ones you didn’t, so once they’re all on the list, the ones you didn’t pick might come at any point after that. This applies regardless of whether you pick just your very favorite from the batch or pick half the batch, so your picking strategy, the bar for what you’re willing to pick, is flexible and up to you (and in the current mode, it can also shift from batch to batch without affecting your ultimate results - the new mode would rely on the user being able to keep that bar reasonably consistent for the full round, though, and the UI will need to make that very clear).
But as I said, I think the new mode I’m thinking of will help eliminate most of the frustration of having to pick between Pokémon you don’t care about while remaining algorithmically sound, so I hope that will do the job and make it less annoying for you!
I put a lot of thought into the algorithm and why and how it works, as you can see, heh. Sorry for the longwinded explanations; I do really appreciate the feedback, and hearing from you helped me solidify this new mode idea and how to go about it, so thank you very much for that.


Eliminate invalid throw from destructor

This has been here for a long time, but is actually incorrect behavior, and a throw here would result in an invocation of std::terminate.

Yeah, I also don't see what benefit you would get from throwing there.


DX-760: The phone number (Visa Mobile) doesn't allow to choose the country number prefix

Done in #136


Redox support!

Note that it do build on the latest nightly.

This now builds on stable, so I'm happy to merge this!

Though now it has conflicts. If you could fix those @ticki I'm happy to merge it.

@ticki This can be closed now, it is no longer needed.


Make usage instructions more clear in the readme

I think the usage instructions of this library should be at the top, after explaining the features of the library.
What is needed:

Instructions on how to download the library
Where do I put the library in my unity project?
Any other step to enable the library

Same thought. I'm trying to follow the directions and it seems like the path to the examples has changed, too.

Same thought. I'm trying to follow the directions and it seems like the path to the examples has changed, too.

You can create a 'Plugins' folder in the main Assets folder. Copy GLTFSerialization.deps.json, GLTFSerialization.dll, GLTFSerialization.pdb, Newtonsoft.Json.dll from bin/Release/netstandard1.3 folder. And ready to go.

Please update to the latest version and open a new issue if the problem persists. Thanks!


[INLONG-7641][Script] Modify script for Audit standalone deployment

Prepare a Pull Request

Fixes #7641

Motivation
Modify script for Audit standalone deployment.
Modifications
Remove the config of MQ server URL.

https://github.com/apache/inlong/blob/master/conf/inlong.conf needs to update.


edsr checkerboarding issues

how did you deal with checkerboarding? all of your trained models show checkerboarding
original

upscale 4x

actually the issue was that i wasn't passing in uint8 but floats. it's interesting to me though that this brought out checkerboarding

@makslevental can you elaborate on your fix ?

@a-sansanwal rescale the pixels to [0,255]


Build error using cmake (macOS)

I'm struggling to build the library, or incorporate it in my project. There seem to be a number of issues, so I must be doing something wrong, and would appreciate advice.
I have tried to build the library as follows:
Everything

clone this repo
cmake -S . -B build-output

Result:
ben@BeniMac2020 url % cmake -S . -B build-output
-- The CXX compiler identification is AppleClang <IP_ADDRESS>60021
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Boost: /usr/local/lib/cmake/Boost-1.79.0/BoostConfig.cmake (found suitable version "1.79.0", minimum required is "1.78.0") found components: container
-- Configuring done
CMake Error at test/unit/CMakeLists.txt:102 (add_executable):
  Target "boost_url_tests" links to target "Boost::filesystem" but the target
  was not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at test/unit/CMakeLists.txt:102 (add_executable):
  Target "boost_url_tests" links to target "Boost::unordered" but the target
  was not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

CMake Error at example/route/CMakeLists.txt:14 (add_executable):
  Target "route" links to target "Boost::filesystem" but the target was not
  found.  Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?

-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.
ben@BeniMac2020 url %

Just the lib
It seems the test and examples fail to configure, so I can disable them:
ben@BeniMac2020 url % cmake -S . -B build-output -DBOOST_URL_BUILD_TESTS=OFF -DBOOST_URL_BUILD_EXAMPLES=OFF
-- The CXX compiler identification is AppleClang <IP_ADDRESS>60021
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Boost: /usr/local/lib/cmake/Boost-1.79.0/BoostConfig.cmake (found suitable version "1.79.0", minimum required is "1.78.0") found components: container
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/ben/Development/YouCompleteMe/url/build-output
ben@BeniMac2020 url % cmake --build build-output
[ 50%] Building CXX object CMakeFiles/boost_url.dir/src/src.cpp.o
In file included from /Users/ben/Development/YouCompleteMe/url/src/src.cpp:10:
In file included from /Users/ben/Development/YouCompleteMe/url/include/boost/url/src.hpp:28:
In file included from /Users/ben/Development/YouCompleteMe/url/include/boost/url.hpp:15:
In file included from /Users/ben/Development/YouCompleteMe/url/include/boost/url/authority_view.hpp:17:
/Users/ben/Development/YouCompleteMe/url/include/boost/url/pct_string_view.hpp:695:16: error: use of undeclared identifier 'hash_value'
        return hash_value(s.s_);
               ^
1 error generated.
make[2]: *** [CMakeFiles/boost_url.dir/src/src.cpp.o] Error 1
make[1]: *** [CMakeFiles/boost_url.dir/all] Error 2
make: *** [all] Error 2
ben@BeniMac2020 url %

Environment:
macOS 12.5.1 Intel
clang:
ben@BeniMac2020 url % clang --version
Apple clang version 13.1.6 (clang-13<IP_ADDRESS>.5)
Target: x86_64-apple-darwin21.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

revision
ben@BeniMac2020 url % git rev-parse HEAD
0cbcbcd12a00b0ed3f2338cd0f8d365ca50dadaf

Including the source directly in my project leads to similar build errors, and the following trivial test does too:
ben@BeniMac2020 url % cat test.cc
#include <boost/url.hpp>
#include <boost/url/src.hpp>

int main()
{
}
ben@BeniMac2020 url % clang++ -std=c++17 -o test -isystem include test.cc
In file included from test.cc:1:
In file included from include/boost/url.hpp:15:
In file included from include/boost/url/authority_view.hpp:17:
include/boost/url/pct_string_view.hpp:695:16: error: use of undeclared identifier 'hash_value'
        return hash_value(s.s_);
               ^
1 error generated.
ben@BeniMac2020 url %

Did you install the latest Boost?

I have boost 1.79.0
ben@BeniMac2020 url % brew info boost
==> boost: stable 1.79.0 (bottled), HEAD
Collection of portable C++ source libraries
https://www.boost.org/
/usr/local/Cellar/boost/1.79.0_2 (15,462 files, 464.5MB) *
  Poured from bottle on 2022-09-07 at 14:52:15
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/boost.rb
License: BSL-1.0
==> Dependencies
Required: icu4c ✔, xz ✔, zstd ✔
==> Options
--HEAD
	Install HEAD version
==> Analytics
install: 112,320 (30 days), 353,702 (90 days), 1,077,028 (365 days)
install-on-request: 26,259 (30 days), 83,227 (90 days), 244,644 (365 days)
build-error: 27 (30 days)
ben@BeniMac2020 url %

If it helps, the build error from my actual project has more verbosity:
/Users/ben/Development/YouCompleteMe/ycmd-cpp/vendor/boost-url/include/boost/url/pct_string_view.hpp:658:16: error: no matching
      function for call to 'hash_value'
        return hash_value(s.s_);
               ^~~~~~~~~~
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:526:24: note:
      candidate function not viable: no known conversion from 'const boost::urls::string_view' (aka 'const basic_string_view<char>') to 'std::monostate'
      for 1st argument
    inline std::size_t hash_value(std::monostate) {
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:541:24: note:
      candidate function not viable: no known conversion from 'const boost::urls::string_view' (aka 'const basic_string_view<char>') to 'std::type_index'
      for 1st argument
    inline std::size_t hash_value(std::type_index v)
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:548:24: note:
      candidate function not viable: no known conversion from 'const boost::urls::string_view' (aka 'const basic_string_view<char>') to
      'const std::error_code' for 1st argument
    inline std::size_t hash_value(std::error_code const& v) {
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:555:24: note:
      candidate function not viable: no known conversion from 'const boost::urls::string_view' (aka 'const basic_string_view<char>') to
      'const std::error_condition' for 1st argument
    inline std::size_t hash_value(std::error_condition const& v) {
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/smart_ptr/shared_ptr.hpp:1218:33: note:
      candidate template ignored: could not match 'shared_ptr' against 'basic_string_view'
template< class T > std::size_t hash_value( boost::shared_ptr<T> const & p ) BOOST_SP_NOEXCEPT
                                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/smart_ptr/weak_ptr.hpp:291:33: note:
      candidate template ignored: could not match 'weak_ptr' against 'basic_string_view'
template< class T > std::size_t hash_value( boost::weak_ptr<T> const & p ) BOOST_SP_NOEXCEPT
                                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/utility/string_view.hpp:658:17: note:
      candidate template ignored: could not match 'boost::basic_string_view' against 'boost::core::basic_string_view'
    std::size_t hash_value(basic_string_view<charT, traits> s) {
                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:364:57: note:
      candidate template ignored: substitution failure [with T = boost::core::basic_string_view<char>]: no type named 'type' in
      'boost::hash_detail::basic_numbers<boost::core::basic_string_view<char>>'
    typename boost::hash_detail::basic_numbers<T>::type hash_value(T v)
                                                   ~~~~ ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:370:56: note:
      candidate template ignored: substitution failure [with T = boost::core::basic_string_view<char>]: no type named 'type' in
      'boost::hash_detail::long_numbers<boost::core::basic_string_view<char>>'
    typename boost::hash_detail::long_numbers<T>::type hash_value(T v)
                                                  ~~~~ ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:376:57: note:
      candidate template ignored: substitution failure [with T = boost::core::basic_string_view<char>]: no type named 'type' in
      'boost::hash_detail::ulong_numbers<boost::core::basic_string_view<char>>'
    typename boost::hash_detail::ulong_numbers<T>::type hash_value(T v)
                                                   ~~~~ ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:382:31: note:
      candidate template ignored: disabled by 'enable_if' [with T = boost::core::basic_string_view<char>]
    typename boost::enable_if<boost::is_enum<T>, std::size_t>::type
                              ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:390:36: note:
      candidate template ignored: could not match 'T *const' against 'const boost::urls::string_view' (aka 'const basic_string_view<char>')
    template <class T> std::size_t hash_value(T* const& v)
                                   ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:478:24: note:
      candidate template ignored: could not match 'const T [N]' against 'const boost::urls::string_view' (aka 'const basic_string_view<char>')
    inline std::size_t hash_value(const T (&x)[N])
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:484:24: note:
      candidate template ignored: could not match 'T [N]' against 'const boost::urls::string_view' (aka 'const basic_string_view<char>')
    inline std::size_t hash_value(T (&x)[N])
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:491:24: note:
      candidate template ignored: could not match 'basic_string' against 'basic_string_view'
    inline std::size_t hash_value(
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:499:24: note:
      candidate template ignored: could not match 'std::basic_string_view' against 'boost::core::basic_string_view'
    inline std::size_t hash_value(
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:507:57: note:
      candidate template ignored: substitution failure [with T = boost::core::basic_string_view<char>]: no type named 'type' in
      'boost::hash_detail::float_numbers<boost::core::basic_string_view<char>>'
    typename boost::hash_detail::float_numbers<T>::type hash_value(T v)
                                                   ~~~~ ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:514:24: note:
      candidate template ignored: could not match 'optional' against 'basic_string_view'
    inline std::size_t hash_value(std::optional<T> const& v) {
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/hash.hpp:531:24: note:
      candidate template ignored: could not match 'variant' against 'basic_string_view'
    inline std::size_t hash_value(std::variant<Types...> const& v) {
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:63:17: note:
      candidate template ignored: could not match 'pair' against 'basic_string_view'
    std::size_t hash_value(std::pair<A, B> const& v)
                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:72:17: note:
      candidate template ignored: could not match 'vector' against 'basic_string_view'
    std::size_t hash_value(std::vector<T, A> const& v)
                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:78:17: note:
      candidate template ignored: could not match 'list' against 'basic_string_view'
    std::size_t hash_value(std::list<T, A> const& v)
                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:84:17: note:
      candidate template ignored: could not match 'deque' against 'basic_string_view'
    std::size_t hash_value(std::deque<T, A> const& v)
                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:90:17: note:
      candidate template ignored: could not match 'set' against 'basic_string_view'
    std::size_t hash_value(std::set<K, C, A> const& v)
                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:96:17: note:
      candidate template ignored: could not match 'multiset' against 'basic_string_view'
    std::size_t hash_value(std::multiset<K, C, A> const& v)
                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:102:17: note:
      candidate template ignored: could not match 'map' against 'basic_string_view'
    std::size_t hash_value(std::map<K, T, C, A> const& v)
                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:108:17: note:
      candidate template ignored: could not match 'multimap' against 'basic_string_view'
    std::size_t hash_value(std::multimap<K, T, C, A> const& v)
                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:114:17: note:
      candidate template ignored: could not match 'complex' against 'basic_string_view'
    std::size_t hash_value(std::complex<T> const& v)
                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:124:17: note:
      candidate template ignored: could not match 'array' against 'basic_string_view'
    std::size_t hash_value(std::array<T, N> const& v)
                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:159:24: note:
      candidate template ignored: could not match 'tuple' against 'basic_string_view'
    inline std::size_t hash_value(std::tuple<T...> const& v)
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:236:24: note:
      candidate template ignored: could not match 'shared_ptr' against 'basic_string_view'
    inline std::size_t hash_value(std::shared_ptr<T> const& x) {
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/container_hash/extensions.hpp:241:24: note:
      candidate template ignored: could not match 'unique_ptr' against 'basic_string_view'
    inline std::size_t hash_value(std::unique_ptr<T, Deleter> const& x) {
                       ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/smart_ptr/intrusive_ptr.hpp:381:33: note:
      candidate template ignored: could not match 'intrusive_ptr' against 'basic_string_view'
template< class T > std::size_t hash_value( boost::intrusive_ptr<T> const & p ) BOOST_SP_NOEXCEPT
                                ^
/Users/ben/.conan/data/boost/1.79.0/_/_/package/383bfa2443c96c8d22700cf3c7c30015af5694a5/include/boost/array.hpp:416:17: note:
      candidate template ignored: could not match 'array' against 'basic_string_view'
    std::size_t hash_value(const array<T,N>& arr)
                ^
1 error generated.
make[3]: *** [src/CMakeFiles/ycmd.dir/ycmd.cpp.o] Error 1
make[2]: *** [src/CMakeFiles/ycmd.dir/all] Error 2
make[1]: *** [all] Error 2

You might need 1.80

@puremourning, this library uses a feature that's only available in Boost 1.80.

Since the library has been accepted, it just depends on the most recent version of boost. We have updated the documentation to reflect that in https://github.com/CPPAlliance/url/pull/513. But Boost 1.80 will do.

OK, thanks for the info.


Security / Privileges

How can I prevent someone from connecting to my subotai network with a malicious client and manipulating the stored data?
Is there a way to have privileges for a node?

Hello Boscop :)
At the moment the storage system is accumulative; there is no way to remove an entry from the table other than via its renewable expiration time. This means there shouldn't be, in principle, a way for a malitious node to remove any stored data. However, there's nothing stopping a node from adding its own data to a particular key. When retrieving data from a given key, you will receive all entries associated with it.
Encrypting, decrypting and/or otherwise validating the stored data should then be a responsibility of the layer above, for the time being. Of course the project is in an early stage (haven't had time to tackle the issue with NAT traversal yet) so I don't discard making some improvements in that area soon.

I would like to use subotai to build a decentralized messenging service.
It would be really useful to have a way to restrict write access to certain values, like a user's private key. Otherwise users can be impersonated by replacing the private keys.

Hello again Boscop,
I've been tied up with another project lately, but I will pick up the pace with Subotai development towards the end of this month. I'll bee looking forward to collaborate with you to get that feature into the network. Thanks for your interest!


RecursionError: maximum recursion depth exceeded while calling a Python object

I was trying to run Megatron with ZeRO 2 config when I encountered this error
> finished creating GPT2 datasets ...
setting training data start iteration to 0
setting validation data start iteration to 0
done with setups ...
time (ms) | model and optimizer: 1894.21 | train/valid/test data iterators: 357.88
training ...
Traceback (most recent call last):
  File "pretrain_gpt2.py", line 156, in <module>
    pretrain(train_valid_test_datasets_provider, model_provider, forward_step,
  File "/root/megatron-3d/megatron/training.py", line 97, in pretrain
    iteration = train(forward_step_func,
  File "/root/megatron-3d/megatron/training.py", line 481, in train
Traceback (most recent call last):
      File "pretrain_gpt2.py", line 156, in <module>
loss_dict, skipped_iter = train_step(forward_step_func,
  File "/root/megatron-3d/megatron/training.py", line 324, in train_step
    return train_step_pipe(model, data_iterator)
  File "/root/megatron-3d/megatron/training.py", line 358, in train_step_pipe
    loss = model.train_batch(data_iter=data_iterator)
  File "/root/anaconda3/lib/python3.8/site-packages/deepspeed/runtime/pipe/engine.py", line 273, in train_batch
    pretrain(train_valid_test_datasets_provider, model_provider, forward_step,    self._exec_schedule(sched)
  File "/root/anaconda3/lib/python3.8/site-packages/deepspeed/runtime/pipe/engine.py", line 1162, in _exec_schedule

  File "/root/megatron-3d/megatron/training.py", line 97, in pretrain
        self._exec_instr(**cmd.kwargs)
  File "/root/anaconda3/lib/python3.8/site-packages/deepspeed/runtime/pipe/engine.py", line 621, in _exec_load_micro_batch
iteration = train(forward_step_func,
  File "/root/megatron-3d/megatron/training.py", line 481, in train
    batch = self._next_batch()
  File "/root/anaconda3/lib/python3.8/site-packages/deepspeed/runtime/pipe/engine.py", line 480, in _next_batch
    return self._next_batch()
  File "/root/anaconda3/lib/python3.8/site-packages/deepspeed/runtime/pipe/engine.py", line 480, in _next_batch
        return self._next_batch()
  File "/root/anaconda3/lib/python3.8/site-packages/deepspeed/runtime/pipe/engine.py", line 480, in _next_batch
loss_dict, skipped_iter = train_step(forward_step_func,
  File "/root/megatron-3d/megatron/training.py", line 324, in train_step
    return self._next_batch()
  [Previous line repeated 978 more times]
  File "/root/anaconda3/lib/python3.8/site-packages/deepspeed/runtime/pipe/engine.py", line 469, in _next_batch
    return train_step_pipe(model, data_iterator)
  File "/root/megatron-3d/megatron/training.py", line 358, in train_step_pipe
    batch = self.batch_fn(batch)
  File "pretrain_gpt2.py", line 110, in get_batch_pipe
    return fp32_to_fp16((tokens, position_ids, attention_mask)), fp32_to_fp16((labels, loss_mask))
  File "/root/megatron-3d/megatron/fp16/fp16.py", line 53, in fp32_to_fp16
    return conversion_helper(val, half_conversion)
  File "/root/megatron-3d/megatron/fp16/fp16.py", line 38, in conversion_helper
    loss = model.train_batch(data_iter=data_iterator)
  File "/root/anaconda3/lib/python3.8/site-packages/deepspeed/runtime/pipe/engine.py", line 273, in train_batch
    rtn = [conversion_helper(v, conversion) for v in val]
  File "/root/megatron-3d/megatron/fp16/fp16.py", line 38, in <listcomp>
    rtn = [conversion_helper(v, conversion) for v in val]
  File "/root/megatron-3d/megatron/fp16/fp16.py", line 37, in conversion_helper
    return conversion(val)
  File "/root/megatron-3d/megatron/fp16/fp16.py", line 48, in half_conversion
    if isinstance(val_typecheck, (Parameter, Variable)):
  File "/root/anaconda3/lib/python3.8/site-packages/torch/autograd/variable.py", line 7, in __instancecheck__
        return isinstance(other, torch.Tensor)
self._exec_schedule(sched)RecursionError: maximum recursion depth exceeded while calling a Python object

This doesn't occur with the following config
{
  "train_batch_size": 224,
  "train_micro_batch_size_per_gpu": 4,
  "steps_per_print": 10,
  "optimizer": {
    "type": "Adam",
    "params": {
      "lr": 0.00015,
      "max_grad_norm": 1.0,
      "betas": [0.9, 0.95]
    }
  },
  "gradient_clipping": 1.0,
  "fp16": {
    "enabled": true,

    "loss_scale": 0,
    "loss_scale_window": 1000,
    "hysteresis": 2,
    "min_loss_scale": 1
  },
  "wall_clock_breakdown": true,
  "zero_allow_untested_optimizer": false
}

Ditto @ShadenSmith

Hi there, thanks for sharing and for the ping.  Can you share the config that also reproduces, and which deepspeed version that you are using?
This issue was fixed for v0.3.11, which is available from source but not from PyPI yet. If you try out the code on our master branch, I'd be very curious if the crash goes away, or if you see a crash from a different location.

Hi, I have the same issue in deepspeed version 0.8.0. I'm calling my python script with NCCL_DEBUG=INFO NCCL_BLOCKING_WAIT=1 deepspeed --num_gpus=4 --master_addr="myIP" --master_port=1234 --hostfile=job/hostfile myPythonScript.py.
I'm using the huggingface Trainer implementation and the ds_config file from here: https://huggingface.co/docs/transformers/main/en/main_classes/deepspeed#zero3-config
The stack trace of the error is:
File "myPythonScript.py", line 230, in train
  trainer.train()
File "/miniconda3/envs/venv/lib/python3.10/site-packages/transformers/trainer.py", line 1527, in train
  return inner_training_loop(
File "/miniconda3/envs/venv/lib/python3.10/site-packages/transformers/trainer.py", line 1597, in _inner_training_loop
  deepspeed_engine, optimizer, lr_scheduler = deepspeed_init(
File "/miniconda3/envs/venv/lib/python3.10/site-packages/transformers/deepspeed.py", line 344, in deepspeed_init
  deepspeed_engine, optimizer, _, lr_scheduler = deepspeed.initialize(**kwargs)
File "/miniconda3/envs/venv/lib/python3.10/site-packages/deepspeed/__init__.py", line 125, in initialize
    return inner_training_loop(
  File "/miniconda3/envs/venv/lib/python3.10/site-packages/transformers/trainer.py", line 1597, in _inner_training_loop
    deepspeed_engine, optimizer, lr_scheduler = deepspeed_init(
  File "/miniconda3/envs/venv/lib/python3.10/site-packages/transformers/deepspeed.py", line 344, in deepspeed_init
  engine = DeepSpeedEngine(args=args,
File "/miniconda3/envs/venv/lib/python3.10/site-packages/deepspeed/runtime/zero/partition_parameters.py", line 348, in wrapper
    deepspeed_engine, optimizer, _, lr_scheduler = deepspeed.initialize(**kwargs)
  File "/miniconda3/envs/venv/lib/python3.10/site-packages/deepspeed/__init__.py", line 125, in initialize
    engine = DeepSpeedEngine(args=args,
  File "/miniconda3/envs/venv/lib/python3.10/site-packages/deepspeed/runtime/zero/partition_parameters.py", line 348, in wrapper
  if not hasattr(module, "_ds_child_entered"):
File "/miniconda3/envs/venv/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 495, in __getattr__
    if not hasattr(module, "_ds_child_entered"):
  File "/miniconda3/envs/venv/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 495, in __getattr__
  if name in dir(self):
File "/home/ballin/.local/lib/python3.10/site-packages/torch/nn/modules/module.py", line 2022, in __dir__
  parameters = list(self._parameters.keys())
File "/miniconda3/envs/venv/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 495, in __getattr__
  if name in dir(self):
....
... multiple hundred lines of the same two function calls ....
....
File "/miniconda3/envs/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 2028, in __dir__
  parameters = list(self._parameters.keys())
File "/mnt/ssestorage2-data/ballin/miniconda3/envs/venv/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 495, in __getattr__
  if name in dir(self):
File "/mnt/ssestorage2-data/ballin/miniconda3/envs/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 2028, in __dir__
  parameters = list(self._parameters.keys())
File "/mnt/ssestorage2-data/ballin/miniconda3/envs/venv/lib/python3.10/site-packages/deepspeed/runtime/engine.py", line 495, in __getattr__
  if name in dir(self):
File "/mnt/ssestorage2-data/ballin/miniconda3/envs/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 2026, in __dir__
  module_attrs = dir(self.__class__)
RecursionError: maximum recursion depth exceeded while calling a Python object

This is the output of ds_report:

MLFlow does not exist. Disabling MLFlow logging

DeepSpeed C++/CUDA extension op report
NOTE: Ops not installed will be just-in-time (JIT) compiled at
runtime if needed. Op compatibility means that your system
meet the required dependencies to JIT install the op.
JIT compiled ops requires ninja
ninja .................. [OKAY]
op name ................ installed .. compatible
[WARNING]  async_io requires the dev libaio .so object and headers but these were not found.
[WARNING]  async_io: please install the libaio-dev package with apt
[WARNING]  If libaio is already installed (perhaps from source), try setting the CFLAGS and LDFLAGS environment variables to where it can be found.
async_io ............... [NO] ....... [NO]
cpu_adagrad ............ [YES] ...... [OKAY]
cpu_adam ............... [YES] ...... [OKAY]
fused_adam ............. [YES] ...... [OKAY]
fused_lamb ............. [YES] ...... [OKAY]
quantizer .............. [YES] ...... [OKAY]
random_ltd ............. [YES] ...... [OKAY]
[WARNING]  please install triton==1.0.0 if you want to use sparse attention
sparse_attn ............ [NO] ....... [NO]
spatial_inference ...... [YES] ...... [OKAY]
transformer ............ [YES] ...... [OKAY]
stochastic_transformer . [YES] ...... [OKAY]
transformer_inference .. [YES] ...... [OKAY]
utils .................. [YES] ...... [OKAY]
DeepSpeed general environment info:
torch install path ............... ['/miniconda3/envs/venv/lib/python3.10/site-packages/torch']
torch version .................... 1.13.1+cu117
deepspeed install path ........... ['/miniconda3/envs/venv/lib/python3.10/site-packages/deepspeed']
deepspeed info ................... 0.8.0+unknown, unknown, unknown
torch cuda version ............... 11.7
torch hip version ................ None
nvcc version ..................... 11.7
deepspeed wheel compiled w. ...... torch 1.13, cuda 11.7

您好，已收到您的邮件。感谢！


CERTIFICATE_VERIFY_FAILED: Self signed certificate in certificate chain

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
We have a flutter app which is trying to connect to a server side API having Self signed certificate by an internal CA. The app is able to connect to the server API correctly through IOS device but not on android device. Getting below errors.
11-30 11:44:46.824  3469  3521 I flutter : Exception: HandshakeException: Handshake error in client (OS Error:
11-30 11:44:46.824  3469  3521 I flutter : 	CERTIFICATE_VERIFY_FAILED: self signed certificate in certificate chain(handshake.cc:393))

Note: These certificates are installed through Airwatch on the device under user folder. Have tried adding the network security config to trust all certificates trusted under user but still it fails with above error. Would be helpful to get more help on debugging this further more.
Network security config details

<application
android:networkSecurityConfig="@xml/network_security_config"
...>
...

Expected results
HTTP request should go through and the self signed certificate should be accepted.
Actual results
HTTP request is not going through and the self signed certificate verification fails.
Code sample
var response = await http.get(
    Uri.parse("$serverUrl/api/v1/XXXXX"),
    headers: <String, String>{
      'Content-Type': 'application/json'
    }).catchError((error, stackTrace) {
  loggingService.error(
      '<log error>');
  throw Exception(error);
});

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
11-30 11:44:46.824  3469  3521 I flutter : Exception: HandshakeException: Handshake error in client (OS Error:
11-30 11:44:46.824  3469  3521 I flutter : 	CERTIFICATE_VERIFY_FAILED: self signed certificate in certificate chain(handshake.cc:393))
Flutter Doctor output
/opt/hostedtoolcache/Flutter/3.10.2/linux/flutter/bin/flutter doctor -v
[✓] Flutter (Channel stable, 3.10.2, on Ubuntu 22.04.3 LTS 6.2.0-1016-azure, locale C.UTF-8)
• Flutter version 3.10.2 on channel stable at /opt/hostedtoolcache/Flutter/3.10.2/linux/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision 9cd3d0d9ff (6 months ago), 2023-05-23 20:57:28 -0700
• Engine revision 90fa3ae28f
• Dart version 3.0.2
• DevTools version 2.23.1
[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
• Android SDK at /usr/local/lib/android/sdk
• Platform android-34, build-tools 34.0.0
• ANDROID_HOME = /usr/local/lib/android/sdk
• ANDROID_SDK_ROOT = /usr/local/lib/android/sdk
• Java binary at: /usr/lib/jvm/temurin-11-jdk-amd64/bin/java
• Java version OpenJDK Runtime Environment Temurin-11.0.21+9 (build 11.0.21+9)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[✓] Chrome - develop for the web
• Chrome at google-chrome
[✗] Linux toolchain - develop for Linux desktop
• Ubuntu clang version 14.0.0-1ubuntu1.1
• cmake version 3.27.8
✗ ninja is required for Linux development.
It is likely available from your distribution (e.g.: apt install ninja-build), or can be downloaded from https://github.com/ninja-build/ninja/releases
• pkg-config version 0.29.2
✗ GTK 3.0 development libraries are required for Linux development.
They are likely available from your distribution (e.g.: apt install libgtk-3-dev)
[!] Android Studio (not installed)
• Android Studio not found; download from https://developer.android.com/studio/index.html
(or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed instructions).
[✓] Connected device (2 available)
• Linux (desktop) • linux  • linux-x64      • Ubuntu 22.04.3 LTS 6.2.0-1016-azure
• Chrome (web)    • chrome • web-javascript • Google Chrome 119.0.6045.159
[✓] Network resources
• All expected network resources are available.

@Flutter36
I think this is duplicate of https://github.com/flutter/flutter/issues/56607, so please follow-up in it for further updates.
Closing this from here. If you disagree, write in comments and I'll reopen it.

@darshankawar., My issue is on a httpclient call inside the app to a server and not during a Flutter pub get. I think both are different issues and I would request to reopen the bug to relook at this.
Also, just to mention, below is the network security config which I am using currently.

Please check https://github.com/flutter/flutter/issues/50699 and underlying comments to see if they help in your case or not.


⚠ Bofrost.de has degraded performance

In f9aa297, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1745 ms

Resolved: Bofrost.de performance has improved in 9442282.


storage adapter

Is there a way to use DSLocalForageAdapter as the storageAdapter in angular-data-cache?

bump?

See https://github.com/jmdobry/angular-cache/issues/108


Assign ressources to applications

An application can have multiple resources, such as devices, virtual machines, or IP addresses. Especially in emergencies, it's important to identify not only the affected data flows, but also all components involved. Also, having an inventory of all application resources could allow future features of this plugin to show data flows between resources of different application resources.
Scenario:.
For example, during a DDoS attack against service Foo, it's useful to know that hardware servers A and B are affected. Then, NOC personnel can easily identify high CPU or interface usage as being related to this service incident.
Proposed solutions:

One can add a special mapping between an application and resources using a GenericForeignKey relationship. However, this introduces a lot of code and forms to manage relationships. Also, future extensions to the NetBox core model will need to be implemented.

(Preferred) NetBox already includes the Tenancy feature for grouping all resources of a specific organizational unit, and other groups can be implemented as well. For each application, a Tenant object could be automatically created and bound via a OneToOne relationship. This allows to use the standard NetBox features of assigning resources to the application's virtual Tenant object in all current NetBox forms, even those of plugins using tenancy. The resources could then be visible on the application page like the tenant details, listing all related objects of the virtual tenant.

If accepted, I could work on a PR for this feature.

Solution 1 is more or less what I did with the ObjectAlias and their ObjectAliasTarget linking to IPAddress, Prefix or IPRange objects. The ObjectAliasTarget being needed because it is (was?) not possible to have ManyToMany GenericForeignKey relationships (i.e.: one IPAddress being used in several ObjectAlias/Application). I agree that is not ideal and not easy to maintain with future evolutions of NetBox.
Solution 2 seems like it would distort the meaning of the Tenant object, which could also be hard to maintain if the NetBox model evolves (e.g.: feature request netbox-community/netbox#16125). But I see two additional limitations:

You can only assign 1 Tenant to a Device (or other models), meaning you could only assign one application to the device/vm/etc. That may be too restrictive for real life environments.
Because you can only assign 1 Tenant, it would prevent users to assign the tenant for their intended purposes, i.e.: identifying the client or organizational unit to whom the device belong.

Do you have example of other plugins using tenant in that way?

To my knowledge there is no other plugin that uses the Tenant object in this way. Although assigning multiple tenants wouldn't be a use case for me, I accept that it might be a problem for other NetBox users.
My fear about using a separate form to map the relationships is that this extra task might be too much of a hassle for users and they won't want to use this feature. Using a custom field might be a solution and I think there's also netbox-community/netbox#14732 to allow plugins to inject additional form fields. If this feature is implemented, we could add a new field like application to most models and duplicate the tenancy logic instead of abusing it directly? So I suggest waiting for the linked feature request to be implemented.


fix: small typo

Problem solved
Short description of the bug fixed or feature added

PR-Codex overview
This PR focuses on correcting the links in the page.mdx file related to modular contracts in the portal documentation.
Detailed summary

Fixed the link for Create Core Contract from create-core-contact to create-core-contract.
Fixed the link for Create Module Contract from create-module-contact to create-module-contract.
Removed the link for Deploy Modular Contract.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Merge activity

Oct 17, 2:51 PM EDT: The merge label 'merge-queue' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.


Sample (java_springboot/servlet-echo) fails due to pom.xml configuration issue

Context
For more information, see the parent issue. #3436
Sample information

Sample type: Samples
Sample language: java_springboot
Sample name: java_springboot/servlet-echo

Describe the bug
While deploying this bot using the Azure CLI config-zip deployment, the following bot failed due to a configuration issue in the pom.xml file.

Bots
Status

samples/java_springboot/servlet-echo
• Failed on zip bot deployment.  • Fails due to, execute goal com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:deploy (default-cli) on project bot-servlet-echo: The configuration is not applicable for the target Web App (Linux). Please correct it in pom.xml.

Expected behavior
Bot should not fail build time in Azure.
Actual behavior
Fails on zip deployment.

Hello, I found this very same issue using:
Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739)
Maven home: C:\ProgramData\chocolatey\lib\maven\apache-maven-3.8.3
Java version: 17.0.1, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-17.0.1
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

I resolved that by modifying the pom.xml file using a newer version of the azure webapp maven plugin:
                <groupId>com.microsoft.azure</groupId>
                <artifactId>azure-webapp-maven-plugin</artifactId>
                <version>1.14.0</version>

Closing as Java SDK is retired as of Nov 2023


refactor keycloak support

make subsystem, add deployment details to jaxrs subsystem
factor as many parts into keycloak.conf as possible, avoid the need to edit tons of files
enable basic authentication
improve security README, including basics on setting up a test keycloak docker container
refactor add-on init javascript to load alongside the add-on menu / routing information
removed keycloak boot options (in favor of keycloak.conf)

please retest this


Fix typing declerations

Information

Check one

[ ] This includes major changes (new features, version required)
[ ] This includes minor changes (doesn't change usage)
[x] This includes patches (bug fixes, documentation changes etc)

Is this related to an issue?
None on git.
The imports in the typing file (index.d.ts) would break when using the dependency with typescript, since it references ../src/types directly, while the src folder doesn't exist anymore but is changed to dist.
Changes made
The tsconfig has been changed to automatically emit type declerations and the edits to the Logger class has been moved to the Logger.ts itself using declare "." and an interface.
Confirmations

Check all that apply

[ ] This uses consistent code style
[x] This is tested and works

I tested this locally, and this fixes the issues I had with typescript builds and the typing works as expected (Logger instance has the debug, error, etc on the instance according to typescript)

I've been struggling with this for a bit, since I didn't know what the best solution would be to fix this issue (tsc doesn't fix imports automatically) so this solution seems to allow for the best of both worlds, and just ahve typescript declare all types with the builtin type emitter, and just extend the class manually.
This also removes the need to declare the entire class, and only the dynamically added properties have to be declared manually.

Thanks @niekschoemaker (sorry I didn't notice it earlier).
Do you know if it is possible for types to work with the configurable log levels and namespaces, or how the user would overwrite the default types?

Thanks @niekschoemaker (sorry I didn't notice it earlier).
Do you know if it is possible for types to work with the configurable log levels and namespaces, or how the user would overwrite the default types?

I'll have a look.
I might also be able to get it working with the provided config, but I'm not sure if that can work in Typescript, maybe.
But for overriding the default typings something like this should definitely work:
declare module "leekslazylogger" {
    interface Logger {
        other(...content: LogContent): void;
        another(...content: LogContent): void;
    }
}

That would add other and another to the logging levels, but as for defining it for the config, that's going to take some Typescript trickery, but I'll have a look see if I can get that working.

Thanks @niekschoemaker (sorry I didn't notice it earlier).
Do you know if it is possible for types to work with the configurable log levels and namespaces, or how the user would overwrite the default types?

I'll have a look.
I might also be able to get it working with the provided config, but I'm not sure if that can work in Typescript, maybe.
But for overriding the default typings something like this should definitely work:
declare module "leekslazylogger" {
    interface Logger {
        other(...content: LogContent): void;
        another(...content: LogContent): void;
    }
}

That would add other and another to the logging levels, but as for defining it for the config, that's going to take some Typescript trickery, but I'll have a look see if I can get that working.

I've been banging my head against trying to get it to work dynamically but I have no idea how I would get that to work, it might be possible but I can't figure out how, so I think just letting people use the declare module way of doing it would make more sense.
Unless somebody could come up with the way of doing it.

Ok, thanks.

Published in version 5.0.1


write javascript don't have completion

emacs version:25.1.1
system:deepin
I want to use emacs write web application,but it could't complete well

It's a dynamic language, so you're never going to get great completion, sorry. company should already give you completion for symbols in the current and other buffers you have open.
To get more than that, we would need something which really understands your code and loads it for you in the background: Ruby has "robe", Common Lisp has "slime", Clojure has "cider", Python has "rope". There's no equivalent for Javascript with Emacs, as far as I know.


[WIP] MUI refactor of react-app

Overview
Begin MUI refactor of Prometheus react-app UI. Perses graph and dashboard components are included, but are at a hidden URL (may add query param feature flag). Below tasks will need to be completed:
TODO

[x] MUI ThemeProvider in App.tsx
[x] StatusMenu dropdown, begin header rewrite
[ ] Finish header / navbar, logo, mobile menu
[ ] Custom MUI theme
[ ] Common components
[ ] Form controls
[ ] Graph view
[ ] Mobile / Tablet adjustments
[ ] Dark mode adjustments

Pages

[ ] AgentPage
[ ] AlertsPage
[ ] ConfigPage
[ ] FlagsPage
[ ] RulesPage
[ ] ServiceDiscoveryPage
[ ] StatusPage
[ ] TargetsPage
[ ] TSDBStatusPage
[ ] PanelListPage

WIP Screenshots
Initial MUI status menu:

@sjcobb Thanks, exciting! From your screenshot the style still looks pretty similar to Bootstrap. Just wanted to say that it'd be totally ok to change the style to be more MUI native as well, so don't feel obligated to closely mimick what we had before, as long as the new UI looks good :)


feat(select): add ability to cycle through options with arrow keys when closed

Adds the ability for users to select options by focusing on a closed md-select and pressing the up/down arrow keys.
Fixes a bug that prevents the selection from going to the first item in a ListKeyManager, if there were no previously-selected items.
Adds an extra null check to the FocusKeyManager to avoid issues where the focused item is cleared.

Fixes #2990.

Sorry for the delay on this one. Apparently I missed the notification and it also needed some refactoring after the mutli select PR got in.

Done @jelbourn.


Invalidating the cache

Perhaps it's possible and I cannot find it, but the default caching solution does not have a way to invalidate a cache item.
This would be super useful for designs when something has changed, through a pub-sub mechanism the application can discard an entry in the cache.

Perhaps it's possible and I cannot find it, but the default caching solution does not have a way to invalidate a cache item.

Exactly, the default implementation is an in-memory cache that has no way to invalidate its items. Take into account that Fetch wants to guarantee that if you ask for the same value more than once inside a Fetch execution it is only fetched once.
However, nothing is stopping you to implement a custom cache that has a finite time to live. See the examples folder for an example of a custom cache implementation.


localonly configuration

How I can pass localOnly (https://www.browsersync.io/docs/options/#option-localOnly) parameter to  lite-server to browsersync?

I couldn't get the localOnly configuration option to pass thru. However, I achieved the same by setting host to <IP_ADDRESS>. So in my root, I have a bs-config.json file with the following contents:
{
  "ui": false,
  "host": "<IP_ADDRESS>"
}

Scratch that, even though the output from the command line show's it's using <IP_ADDRESS>:

it's not actually using that and it's still listening on all interfaces:

that's unfortunate and looks like it's a bug

that would be a browser sync question