Deeplink-based wallet API #4659

Closes #4659

signpersonalmessage
let url2 = URL(string: "https://aw.app/wallet/v1/signpersonalmessage?redirecturl=https%3A%2F%2Fmyapp.com&metadata={"name"%3A"Some+app"%2C"iconurl"%3A"https%3A%2F%2Fimg.icons8.com%2Fnolan%2F344%2Fethereum.png"}&message=0x48656c6c6f20416c7068612057616c6c6574")!
connect
let url2 = URL(string: "https://aw.app/wallet/v1/connect?redirecturl=https%3A%2F%2Fmyapp.com&metadata={"name"%3A"Some+app"%2C"iconurl"%3A"https%3A%2F%2Fimg.icons8.com%2Fnolan%2F344%2Fethereum.png"}")!

@hboon pr is ready for review

I forgot to check so:

[ ] Verify WalletConnect v1 still works :)

an example of metadata json for connect:
{"name":"Some app","iconurl":"https://img.icons8.com/nolan/344/ethereum.png", "appurl": "https://uniswap.org/", "note":"This will inform them your wallet address is 0x2322…2324"}

%7B%22name%22%3A%22Some%20app%22%2C%22iconurl%22%3A%22https%3A%2F%2Fimg.icons8.com%2Fnolan%2F344%2Fethereum.png%22%7D%26message%3D0x48656c6c6f20416c7068612057616c6c6574

[ ]  "Some+app" should be "Some app" (or is the example URL not encoded correct by using +?)

white space just need to be encoded right when passing url. instead of + character there should be %20

Ready for review

%7B%22name%22%3A%22Some%20app%22%2C%22iconurl%22%3A%22https%3A%2F%2Fimg.icons8.com%2Fnolan%2F344%2Fethereum.png%22%7D%26message%3D0x48656c6c6f20416c7068612057616c6c6574

[ ]   "Some+app" should be "Some app" (or is the example URL not encoded correct by using +?)

white space just need to be encoded right when passing url. instead of + character there should be %20

Ah I see. Then we have to support both + and %20, because:

https://www.google.com.sg/search?q=some+app (it uses +)
https://www.rfc-editor.org/rfc/rfc1866#section-8.2.1

Also ruby:
#!/usr/bin/ruby

require 'cgi'

s = "some app"
#s = "some%20app"
#s = "some+app"

p "start: #{s}"

unescaped = CGI.unescape s
p "test : #{unescaped}"
if unescaped == s
    p "same so escape instead…"
    p CGI.escape s
else
    p "different, so use unescaped: #{unescaped}"
end

prints effectively:

"some app" -> "some+app"
"some%20app" -> "some app"
"some+app" -> "some app"

[ ] The "Note" row with text "This will inform them your wallet address is 0xb0b" should appear for connect (Refer to Deeplink-based wallet API #4659 (comment))

@hboon is this block should be presented all the time we trying to connect? or only when metadata contains note field?

@hboon is this block should be presented all the time we trying to connect? or only when metadata contains note field?

Always shown when connect is triggered. In other words, the text is something like this (in Swift):
"This will inform them your wallet address is \(address.eip55String)"

There is no "note" field in the metadata.

@hboon  and address.eip55String is your active wallet?, as we don't have address in connect params

@hboon and address.eip55String is your active wallet?, as we don't have address in connect params

Yes, it's the active wallet and the same one that is returned to the callback for that connect call

@oa-s want me to look at this again?

@hboon, yes please. also i will update localization for it and its ready to merge

Missed out this one (support both "+" and "%20"): https://github.com/AlphaWallet/alpha-wallet-ios/pull/4829#issuecomment-1158439696

made new commit, but not sure in it. tested with + and '%20', looks like it works


Type inference with map & (otherMap | otherMap2) fails

TypeScript Version:  Nightly

Search Terms: None (I couldn't come up with any, please excuse me)
Code
type Entity = {
  someDate: Date | null;
} & ({ id: string; } | { id: number; })

type RowRendererMeta<TInput extends {}> = {
  [key in keyof TInput]: { key: key; caption: string; formatter?: (value: TInput[key]) => string; };
}
type RowRenderer<TInput extends {}> = RowRendererMeta<TInput>[keyof RowRendererMeta<TInput>];

const test: RowRenderer<Entity> = {
  key: 'someDate',
  caption: 'My Date',
  formatter: (value) => value ? value.toString() : '-' // value: any
}

const thisIsNotTheIssue: Partial<RowRendererMeta<Entity>> = {
  someDate: {
    key: 'someDate',
    caption: 'My Date',
    formatter: (value) => value ? value.toString() : '-' // value: Date | null
  }
}

Expected behavior:
TypeScript inferes the argument of formatter to be Date | null.
Actual behavior:
When removing the  & ({ id: string; } | { id: number; }) part of the Entity type definition, everything works as expected. However including it breaks type inference, resulting in an implicit any error/warning (depending on configuration), though it does not break the RowRendererMeta<...> type, as shown in the second const declaration.
Playground Link: Playground Link
Related Issues: None found.
Edit: Inference for id sadly does not seem to work at all.
Edit 2: Even though TS seems not to infer the type of the function argument, it complains when you try to use an invalid type (in this example string to name one).

Just in case someone is blocked on this, you can switch from ({ id: string; } | { id: number; }) to { id: string | : number; } as a work around


Add two dev watch commands

Description
Adds two watch npm commands:

watch:dashboard which re-builds dashboard any time widgets change
watch:node-red which restarts node-red any time nodes change

Related Issue(s)

Checklist

[ ] I have read the contribution guidelines
[ ] Suitable unit/system level tests have been added and they pass
[ ] Documentation has been updated

[ ] Upgrade instructions
[ ] Configuration details
[ ] Concepts

[ ] Changes flowforge.yml?

[ ] Issue/PR raised on FlowFuse/helm to update ConfigMap Template
[ ] Issue/PR raised on FlowFuse/CloudProject to update values for Staging/Production

Labels

[ ] Backport needed? -> add the backport label
[ ] Includes a DB migration? -> add the area:migration label

Okay to update the contribution docs to reflect this better way of working too please?


NoMissingTypes not work if the missingType is return value of method and the method has param

NoMissingTypes should find files with unknown imports, but it cannot work with this case:
// this is an unknown import with invalid path
import java.util.GenClass1;

public abstract class Foo {
      public abstract GenClass1 m(String a);
}

If use RemoveUnusedImports which uses NoMissingTypes as checker, it will wrongly remove the import.
But for below case, it will work for doing nothing.
// this is an unknown import with invalid path
import java.util.GenClass1;

public abstract class Foo {
      public abstract GenClass1 m();
}

The only difference is the first one has param (String a).
What version of OpenRewrite are you using?

I am using

Maven plugin 5.36.0

How are you running OpenRewrite?

mvn -X -B org.openrewrite.maven:rewrite-maven-plugin:5.36.0:runNoFork
What is the smallest, simplest way to reproduce the problem?

import org.junit.jupiter.api.Test;
import org.openrewrite.java.RemoveUnusedImports;
import org.openrewrite.test.RecipeSpec;
import org.openrewrite.test.RewriteTest;
import org.openrewrite.test.TypeValidation;

import static org.openrewrite.java.Assertions.java;

public class RemoveUnuseImportsTest implements RewriteTest {
    @Override
    public void defaults(RecipeSpec spec) {
        spec.recipe(new RemoveUnusedImports());
    }

    // This test will fail, add it will remove all imports which is incorrect
    // The correct behavior is to remove none of the imports because we should not process files with missing types
    @Test
    void testWithGenClass1() {
        // language=java
        rewriteRun(
          spec -> spec.typeValidationOptions(TypeValidation.none()),
          java(
            """
                  import java.util.List;
                  import java.util.GenClass1;

                  public abstract class Foo {
                      public abstract GenClass1 m(String a);
                  }
              """, """
                  import java.util.GenClass1;

                  public abstract class Foo {
                      public abstract GenClass1 m(String a);
                  }
              """)
        );
    }

    // This test will fail, but it won't remove any import which is expected because we should not process files with missing types
    @Test
    void testWithGenClass2() {
        // language=java
        rewriteRun(
          spec -> spec.typeValidationOptions(TypeValidation.none()),
          java(
            """
                  import java.util.List;
                  import java.util.GenClass1;

                  public abstract class Foo {
                      public abstract GenClass1 m();
                  }
              """, """
                  import java.util.GenClass1;

                  public abstract class Foo {
                      public abstract GenClass1 m();
                  }
              """)
        );
    }
}

What did you expect to see?

For both tests, the correct results should be don't remove any imports, because the RemoveUnusedImports recipe uses NoMissingTypes as checker:
@Override
public TreeVisitor<?, ExecutionContext> getVisitor() {
    return Preconditions.check(new NoMissingTypes(), new RemoveUnusedImportsVisitor());
}

So for both test cases, the recipe should skip the test java file because it has missing types (import java.util.GenClass1)
What did you see instead?

For test case 1, it wrongly removed all imports:
org.opentest4j.AssertionFailedError: [Unexpected result in "Foo.java":
diff --git a/Foo.java b/Foo.java
index 7acc7c7..4c7b8a8 100644
--- a/Foo.java
+++ b/Foo.java
@@ -1,5 +1,3 @@
-import java.util.GenClass1;
-
 public abstract class Foo {
     public abstract GenClass1 m(String a);
 }
\ No newline at end of file
]
expected:
  "import java.util.GenClass1;

  public abstract class Foo {
      public abstract GenClass1 m(String a);
  }"
 but was:
  "public abstract class Foo {
      public abstract GenClass1 m(String a);
  }"

For test case 2: it do nothing which is expected

Add some troubleshooting findings: it may related with this line:
https://github.com/openrewrite/rewrite/blob/main/rewrite-java/src/main/java/org/openrewrite/java/JavaVisitor.java#L874
m = m.getPadding().withParameters(visitContainer(m.getPadding().getParameters(), JContainer.Location.METHOD_DECLARATION_PARAMETERS, p));

This code will be called in org.openrewrite.java.search.FindMissingTypes.FindMissingTypesVisitor#visitMethodDeclaration because it will call super.visitMethodDeclaration which is org.openrewrite.java.JavaVisitor#visitMethodDeclaration. And the latter will in turn affect the seenTypes list of the former which causes the issue.


makefile: improve support

Improve support for makefile syntax:

simple variables (eg '$(var)') and special variables (eg '$@')
variable inside strings (eg "blabla $(var) blabla")
functions (eg '$(patsubst arg,arg,$(var))')
variable assignement (eg 'var=toto', 'var+=toto', 'var:=toto')
targets (eg 'all: dependency $(var)')
language keywords (define, endef, ifeq, etc.)

Signed-off-by: Joel Porquet<EMAIL_ADDRESS>

Hi Ivan,
I just updated my pull request based on your review. Let me know if there is anything else that you would like to change.
Thanks,
Joël

Looks perfect! Merged for the upcoming release.


fedtrans mlsys'24

#243

@mosharaf Manually ask for review

Do you mean '@InProceedings{FedTrans:mlsys24, ...'?
Just added it

Okay! please check it out


Create a yeoman generator for a simple Hapi server with route definition

Use Yeoman to create a simple Hapi server with routes from a flow object exported from Node-Red

Issue moved to avant-js/generator-avantjs #2 via ZenHub


[BUG] Dependency pinning might be too strict

Describe the bug
It is hard to install nvtabular and cuda enabled pytorch at the same time when using conda.
Steps/Code to reproduce bug
mamba create -n test-nvtab -c nvidia -c rapidsai -c numba -c conda-forge nvtabular python=3.7 cudatoolkit=11.0 pytorch

This always ends up picking a CPU version of pytorch:
pytorch                         1.10.0  cpu_py37hf3cc979_0                conda-forge/linux-64      48 MB

I tried to install a fitting pytorch build, i.e. :
 mamba create -n test -c nvidia -c rapidsai -c numba -c conda-forge nvtabular python=3.7 cudatoolkit=11.0 "pytorch==1.10.0=cuda110py38hf84197b_0"

but this results in:
Encountered problems while solving:
  - package pytorch-1.10.0-cuda110py38hf84197b_0 requires cudnn >=<IP_ADDRESS>,<9.0a0, but none of the providers can be installed

Expected behavior
Installing nvtabular and pytorch witch cuda enabled for both.
Additional context
I wasn't sure whether to put it as a bug or as a feature request, and I am aware that the problem is not necessarily on the NVTabular side, but solving this would make "getting started" with nvtabular much easier IMHO. I ended up installing pytorch via pip and didn't have any problems with training on GPU, which leads me to the suspicion that somewhere the dependency pinning is a bit too strict.

this should be fixed now. Thanks for reporting .


Error when directly setting foreign key and using connect syntax

Bug description
Cannot directly set a foreign key for a relation and use the connect syntax to connect another relation.
First mentioned here: #5788
How to reproduce
Use the client in this way:
await database.user.create({
        data: {
            organisationId: "1234",
            rooms: {
                connect: [{id: "5678"}, {id: "9012"}]
            }
        }
    })

Expected behavior
No Typescript errors
Prisma information

Environment & setup

OS: Arch Linux
Database: PostgreSQL
Node.js version: 17.3.0

Prisma Version
prisma                  : 3.8.0-dev.40
@prisma/client          : 3.8.0-dev.40
Current platform        : debian-openssl-1.1.x
Query Engine (Node-API) : libquery-engine 367f1321e79a7ba33fcac73ed17111312b87e526 (at<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli 367f1321e79a7ba33fcac73ed17111312b87e526 (at<EMAIL_ADDRESS>Introspection Engine    : introspection-core 367f1321e79a7ba33fcac73ed17111312b87e526 (at<EMAIL_ADDRESS>Format Binary           : prisma-fmt 367f1321e79a7ba33fcac73ed17111312b87e526 (at<EMAIL_ADDRESS>Default Engines Hash    : 367f1321e79a7ba33fcac73ed17111312b87e526
Studio                  : 0.449.0
Preview Features        : fullTextSearch

Can you add the schema so it is easier for us to reproduce please?

generator client {
  provider        = "prisma-client-js"
  output          = "./generated/client1"
  previewFeatures = ["fullTextSearch"]
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model Organisation {
  id                String             @id @default(uuid())
  name              String
  users             User[]
  rooms             Room[]
}

model User {
  id                String             @id @default(uuid())
  email             String
  rooms             Room[]
  organisation       Organisation      @relation(fields: [organisationId], references: [id])
  organisationId     String

  @@unique([email, organisationId])
}

model Room {
  id             String        @id @default(uuid())
  name           String
  users          User[]
  organisation       Organisation      @relation(fields: [organisationId], references: [id])
  organisationId     String
}

does anyone know if this issue was solved in prisma >=4?

@sourdzl Nope

Hm, I don't think I can actually reproduce this. I had to simplify the schema a bit, so let me know if messed up along the way somehow:
generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model Organisation {
  id    String @id @default(uuid())
  users User[]
  rooms Room[]
}

model User {
  id             String       @id @default(uuid())
  rooms          Room[]
  organisation   Organisation @relation(fields: [organisationId], references: [id])
  organisationId String
}

model Room {
  id             String       @id @default(uuid())
  users          User[]
  organisation   Organisation? @relation(fields: [organisationId], references: [id])
  organisationId String?
}

script.js:
const { PrismaClient } = require('@prisma/client')

const prisma = new PrismaClient()

async function main() {

  await prisma.user.deleteMany()
  await prisma.room.deleteMany()
  await prisma.organisation.deleteMany()

  await prisma.organisation.create({
    data: {
      id: "1234"
    }
  })

  await prisma.room.create({
    data: {
      id: "5678"
    }
  })
  await prisma.room.create({
    data: {
      id: "9012"
    }
  })

  console.log("organisations", await prisma.organisation.findMany())
  console.log("rooms", await prisma.room.findMany())

  const newFoo = await prisma.user.create({
    data: {
        organisationId: "1234",
        rooms: {
            connect: [{id: "5678"}, {id: "9012"}]
        }
    }
})
  console.log(`Created new: `, newFoo)

  const allFoo = await prisma.user.findMany()
  console.log('All', allFoo)
}

main()
  .then(async () => {
    await prisma.$disconnect()
  })
  .catch(async (e) => {
    console.error(e)
    await prisma.$disconnect()
    process.exit(1)
  })

Ok, same behavior with the full schema:
generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model Organisation {
    id    String @id @default(uuid())
    name  String
    users User[]
    rooms Room[]
}

model User {
    id             String       @id @default(uuid())
    email          String
    rooms          Room[]
    organisation   Organisation @relation(fields: [organisationId], references: [id])
    organisationId String

    @@unique([email, organisationId])
}

model Room {
    id             String       @id @default(uuid())
    name           String
    users          User[]
    organisation   Organisation @relation(fields: [organisationId], references: [id])
    organisationId String
}

script.ts:
import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

async function main() {

    await prisma.user.deleteMany()
    await prisma.room.deleteMany()
    await prisma.organisation.deleteMany()

    await prisma.organisation.create({
        data: {
            id: "1",
            name: "1"
        }
    })
    await prisma.organisation.create({
        data: {
            id: "1234",
            name: "1234"
        }
    })

    await prisma.room.create({
        data: {
            id: "5678",
            name: "5678",
            organisationId: "1"
        }
    })
    await prisma.room.create({
        data: {
            id: "9012",
            name: "9012",
            organisationId: "1"
        }
    })

    console.log("organisations", await prisma.organisation.findMany())
    console.log("rooms", await prisma.room.findMany())

    const newFoo = await prisma.user.create({
        data: {
            organisationId: "1234",
            rooms: {
                connect: [{ id: "5678" }, { id: "9012" }]
            },
            email<EMAIL_ADDRESS>        },
        include: {
            rooms: true
        }
    })
    console.log(`Created new: `, newFoo)

    const allFoo = await prisma.user.findMany({
        include: {
            rooms: true
        }
    })
    console.log('All', allFoo)

    console.log("rooms", await prisma.room.findMany())

}

main()
    .then(async () => {
        await prisma.$disconnect()
    })
    .catch(async (e) => {
        console.error(e)
        await prisma.$disconnect()
        process.exit(1)
    })

Probably related: https://github.com/prisma/prisma/issues/7093

Hi @huzaifahj, I don't know if you have seen the reproduction attempts by @janpio (in here), but it looks like we weren't able to reproduce this problem - even though other users may have reported the same error in #7093. Can you please share a minimal reproduction and the steps required for us to trigger this error? This will greatly help us in figuring out and solve this issue. Thank you!

Hey @huzaifahj, would you please have any updates on this? Thanks.

Hey @huzaifahj, closing this issue due to inactivity. Feel free to leave a comment asking to re-open the issue in case you have more info available. Thanks!


Error with helpful error when the page component is async

See #396

Actually, vscode gives us a hint about this

The idea is throwing an error when this occours in fresh?

Correct

I'm preparing the PR, what do you think would be a good error message?

Maybe this?

I'm preparing the PR, what do you think would be a good error message?

Maybe this?

This should probably be closed

Closing, as this is solved.


rename @latest to @git

And it should also keep a timestamp of the build date.
will be nice to be able to specify different branch/repository names

done


x/tools/go/types: converts fp constant to string

Gc correctly rejects the following program:
package n
func n(){_=string(0.)}

But gotype successfully compiles it. It must not. 0. is an fp constant.
on commit e9a746de6e61b9b823a981843c0d98bc209eed2b

Duplicate of #11357


Fix mkdir recursive and improved error messages

Add more error description

@bradrydzewski This plugin is not able to restore the cache when there is a new tag, #10. This pull request tries to bring back the fallback strategy that could solve that issue. Why did you comment the fallback code?
The docker image for this plugin seems outdated. How does the release process for drone plugins work?

there was another pull request that we merged that created the directories on the host machine
https://github.com/drone-plugins/drone-sftp-cache/pull/13/files#diff-ceaae7476bd60bffd0adf1fb4ad32aabR118
I'm not opposed to more user friendly error messages, but they would probably need to be in a separate pr

The docker image for this plugin seems outdated. How does the release process for drone plugins work?

I don't see any indication the docker image is outdated. We push a new image to the registry on every merge to master. The last time we merged to master was on Sep 6 (17 days ago) and according to dockerhub the image was updated 17 days ago.

Why did you comment the fallback code?

It was probably buggy and I didn't have time to fix, but honestly I can't remember. I'm happy to accept a PR that implements a fallback.

@bradrydzewski Sorry, I was looking at the image drone-sftp instead of sftp-cache.


Add logging into lc, so that the print infomation is clean and simple

logging module can output the logs in different levels, I want to implement this with -v --verbose flag.
Need to think about how to arrange the printing information.

done, might be some typos, so the feedback from BHD 2023 would help to finalize this issue
Progress #########90%


Allow --include-unknown with install

[x] I have signed the Contributor License Agreement.
[x] This pull request is related to an issue.

Resolves #3578

Since the argument is only applicable when the install flow is converted to the upgrade flow, added as a hidden argument to avoid confusion

Microsoft Reviewers: Open in CodeFlow

Oops, pushed to wrong branch

/azp run


Reference Manual: please add a hint for xinclude processing and the xi command line parameter

Today i noticed a totally different behaviour in processing the same stylesheet (a customization layer of xslTNG ) between Oxygen and a plain java -jar call.
The input document was a docbook set which xincludes the books. It took me some time and a lot of frustrating trial-and-error to understand that there is no xinclude processing when i run the JAR in the way it is described in Section 2.1. Using the Jar  in the Reference Manual. For xinclude processing i had to add the xi:on parameter.
So please add an hint, maybe an admonition, about xinclude processing and the xi command line parameter in Section 2.1 to save others! When you come from Oxygen, xinclude processing is done by default, thats why it didnt come to my mind that i have to switch it on.
Thanks,
Frank

I was working on the wrong assumptions.  The 10-xinclude.xsl transform preprocessing step is supposed to expand XIncludes. Either I was simply mistaken, or there was something special about the customized stylesheet.


Adds support for symbols as keys in Maps.

Hi Team,
I'd like to use the Symbol primitive data type as a key in my Maps. Looks like this change will fit the bill. What are your thoughts?

@tklever does this change look like what we discussed?

Want to submit your unrelated test additions as a separate PR? It seems symbols as keys are supported but there's not much test coverage for that and your additions would be a positive

@leebyron apologies, i linked the performance output on a collapsed thread!

Any progress on a performance analysis of this change?

Performance on master: before.txt
Performance on my branch: after.txt
It does look like there is a negative performance impact to me. What do you think?

I'm curious if this is worth it, when Symbol support as keys already exists, but just aren't extracted from Objects in the constructor, though they are supported via other initialization patterns

The use-case came up for me when trying to do a mergeDeep between multiple object literals which use Symbols as keys. I think Symbol-handling in the constructor is a requirement in that scenario, as instantiation and data-loading of the resulting Map is an implementation detail. Do you know of another way?
I should probably add a mergeDeep Symbol test!

@leebyron bad news! I created a test to cover the scenario which lead me to this request, and this request does not solve for it. I'm reluctant to add the failing test to this request since i believe this request stands on its own (barring the outstanding performance question). I'll dig into the source some more before deciding what to do with the request(s).
here's a preview of the test (which i copied and modified from merge.js) and its output:
  it('deep merges two maps with Symbol keys', () => {
    const a = Symbol('a');
    const b = Symbol('b');
    const c = Symbol('c');
    const d = Symbol('d');
    const e = Symbol('e');
    const f = Symbol('f');
    const g = Symbol('g');
    const m1 = Map({[a]: {[b]: {[c]: 1, [d]: 2}}});
    const m2 = Map({[a]: {[b]: {[c]: 10, [e]: 20}, [f]: 30}, [g]: 40});
    expect(m1.mergeDeep(m2)).toEqual({[a]: {[b]: {[c]: 10, [d]: 2, [e]: 20}, [f]: 30}, [g]: 40});
  });

 FAIL  __tests__/Map.ts
  ● Map › deep merges two maps with Symbol keys

    expect(received).toEqual(expected)

    Expected value to equal:
      {Symbol(a): {Symbol(b): {Symbol(c): 10, Symbol(d): 2, Symbol(e): 20}, Symbol(f): 30}, Symbol(g): 40}
    Received:
      Immutable.Map {Symbol(a): {Symbol(b): {Symbol(c): 10, Symbol(e): 20}, Symbol(f): 30}, Symbol(g): 40}

    Difference:

    - Expected
    + Received

    @@ -1,10 +1,9 @@
    - Object {
    + Immutable.Map {
        Symbol(a): Object {
          Symbol(b): Object {
            Symbol(c): 10,
    -       Symbol(d): 2,
            Symbol(e): 20,
          },
          Symbol(f): 30,
        },
        Symbol(g): 40,

      at Object.it (__tests__/Map.ts:370:34)
          at Promise (<anonymous>)
          at <anonymous>
      at process._tickCallback (internal/process/next_tick.js:188:7)

Got it! Running the feature and master perf tests again. Will post results soon along with another src+test commit.

@leebyron Good news! I was able to fix my broken test and added a few more to cover additional merge cases with plain objects and keys, as well as Symbol keys and deep merges.
I re-ran the regression tests, on master as a baseline as well as twice on my feature branch for good measure. I'd love your feedback on how the results look. I think I'm looking at some kind of acceptable standard deviation, but I'm not sure what our pass-fail thresholds are.
Master regression tests:  master_perf.txt
Feature regression tests (1): feature_perf.txt
Feature regression tests (2): feature_perf2.txt
If you're interested, I can put together a performance test for nested objects with Symbol keys to guard against future regressions on this feature.

Thanks for digging into this further. The performance numbers look a bit concerning to me. I'm seeing a ~25% slow down in creation of Maps, even though our perf tests don't hit this Symbol path.
I think perhaps we should be addressing this in terms of making this use case possible rather than syntactically ideal, in favor of preserving the performance for the common path. Would you agree?
First, I'm not sure we want to necessarily support this for plain Object values, since that can make writing Flow or TypeScript definitions much more challenging - these tools don't yet have great support for plain Objects behaving as maps with Symbols for keys. Perhaps instead we should support this case specifically and only for Maps (as you originally propose).
In that case, we actually do have support for this today, it's just that the constructor would have to use the Iterable<[K, V]> form instead of {[K]: V} form. I think that might be acceptable since we already need to use the Iterable<[K, V]> for any other kind of key that isn't a string (this is the same constructor form that the native ES6 Map uses). I think we should probably preserve the custom {[K]: V} form for Maps with string keys only.
Here's a syntactically different version of your test case which shows that this works today:
const a = Symbol('a');
const b = Symbol('b');
const c = Symbol('c');
const d = Symbol('d');
const e = Symbol('e');
const f = Symbol('f');
const g = Symbol('g');

// Note the use of nested Map constructors, Map() does not do a deep conversion!
const m1 = Map([[a, Map([[b, Map([[c, 1], [d, 2]])]])]]);
const m2 = Map([[a, Map([[b, Map([[c, 10], [e, 20], [f, 30], [g, 40]])]])]]);
const merged = m1.mergeDeep(m2);

// Alternatively, mergeDeep can be directly given a nested set of `Iterable<[K, V]>`
const merged = m1.mergeDeep([[a, [[b, [[c, 10], [e, 20], [f, 30], [g, 40]]]]]]);

expect(merged).toEqual(Map([[a, Map([[b, Map([[c, 10], [d, 2], [e, 20], [f, 30], [g, 40]])]])]]));

What do you think?

@leebyron Thanks for the suggestion! I'll try this strategy tomorrow morning. I definitely agree that we need to protect the performance of the common path. Thanks for reviewing the changes and the performance results.

Out of curiosity, since the perf tests don't hit these Symbol lines, is it true then that the typeof check is what slows us down so drastically?

@abacaphiliac - I believe the node environment does define this method, so my guess is that the slow down is from both the addition of the typeof (probably slight), the calling of the method (no idea how costly) and the resulting call to .concat([]), which could potentially deopt if the vm has a fast-path for Object.keys()?

That all makes perfect sense. It would also make sense to only concat (etc) when there are one or more Symbols. I'll run perf tests against that as well, just so we know. Thanks again.

@leebyron Again, I can't thank you enough for working through this with me. I've spawned a couple additional requests from the work we did together here, about testing and documenting existing functionality and processes.
I tweaked this request once more, but performance is still an issue: feature_perf3.txt
I think I've exhausted all options in this request, so it is probably time to close it. Do you think I should open an issue clearly documenting the desire to mergeDeep object literals with Symbol keys? I can reference this request and the performance concerns so that time won't be wasted.

I think this PR has effectively become that issue, since there's a ton of context here I'm not sure we need to duplicate that into an issue.
Do you think this is mostly a documentation issue? I know that Map({key: "value"}) is by far the most common constructor form, but perhaps we just need to make it more clear that Map([["key", "value"]]) is an encouraged alternative for non-string keys?

@leebyron I think docs could definitely be improved. Mind if I take a crack at it?
The problem I'm trying to solve involves deep merging many object literals, with a mix of Symbol and non-Symbol keys. In order to use this library (for the very helpful mergeDeep function and ImmutableMap type), I'll have to convert my input parameters into a transient data structure, iterable key-value tuples. I'm hoping to avoid owning that transformation.
Would a helper method to transform the "common constructor form" into the "encouraged alternative" interest you? Then the documentation we'll write can reference this helper.
Can you think of another way that we can conditionally trigger Symbol handling? E.g. a new Seq type, or a new merge method?

I think docs could definitely be improved. Mind if I take a crack at it?

Please!

Would a helper method to transform the "common constructor form" into the "encouraged alternative" interest you? Then the documentation we'll write can reference this helper.

I think this alone would be a valuable micro-library/polyfill. Immutable.js is not the only place that uses this constructor format, the ES6 collections do as well, and they have no support for using a {k:"v"} input.
Object.entries was recently introduced to solve this problem.
I believe it is supposed to include Symbols in it's output: https://www.ecma-international.org/ecma-262/8.0/index.html#sec-object.entries
calls: https://www.ecma-international.org/ecma-262/8.0/index.html#sec-enumerableownproperties which calls: https://www.ecma-international.org/ecma-262/8.0/index.html#sec-ordinary-object-internal-methods-and-internal-slots-ownpropertykeys
Which explains that Symbols are included.
Perhaps this is the helper method you're looking for, and we just need to advocate for a good polyfill in the meantime?

Though Chrome's current implementation doesn't seem to agree:
Object.entries({[Symbol()]: 'symbol'})
> []

Ah, I misread. Step 4.a. in "EnumerableOwnProperties" specifically disallows Symbols (and Array indices) from being included in Object.entries(). If anything, this reinforces to me that the current Map constructor behavior is the correct one - that is Symbols should be ignored from enumeration unless explicitly included via a unique method.
https://www.ecma-international.org/ecma-262/8.0/index.html#sec-enumerableownproperties
However the Reflect.ownKeys API supports Symbols and may be a better place to start. It seems like what we want for this case is Reflect.ownEntries, which actually gets a casual mention in the Object.entries proposal: https://github.com/tc39/proposal-object-values-entries#iterators-or-arrays.
We could make a quick polyfill if we can rely on Reflect.ownKeys:
function ownEntries(obj) {
  return Reflect.ownKeys(obj).map(k => [k, obj[k]])
}

So now:
const a = Symbol('a');
const m1 = Map(ownEntries({[a]: "symbol"}));
// Map { Symbol(a): "symbol" }

@leebyron So much good info! I'll give it a whirl!

@leebyron Sorry about the delay. This is what I came up with. Not sure if you had a "named constructor" in mind, but it felt appropriate especially since I needed to handle nesting with recursion.

Just wanted to say, if you could throw in Symbol support either for the current constructor or for an alternative method for the constructor, I would find it very useful.
For my own purposes, I am willing to accept a performance hit on the initial constructor.
Thanks to Timothy and Lee for their efforts on this so far.
thanks.
Robert LaMarca

@leebyron it's no problem at all. thank you for the feedback. i'll address everything.

@leebyron, ready for review.
The new static method has been renamed and documented. It would be great if you could be really picky about the typings, phrasing, and samples. I'm not 100% sure that I've put everything in its right place. The generated docs look OK to me, but the examples do not run in the browser. All three discussion samples import const { Map } =<EMAIL_ADDRESS>and crash with the following error: TypeError: Map.fromOwnEntries is not a function. Have I done something wrong?
Thank you for pointing out the ambiguity of the return types in my new function. Due to the recursion, I wanted a short-circuit in the event that an object's property was not an object. That logic been moved into a ternary shortcut in the key mapper, which gives our new function a consistent return.
With respect to recursion, I have added a new test case specifically covering it. That behavior/expectation was buried in another test I previous wrote covering mergeDeep between two Map instances with nested Symbol keys.
My desired use case does require recursive handling of nested objects. Now that you have me thinking about it, I'm not sure recursion should be the only (or default) functionality. Would you prefer to keep this API slim and push recursion/traversal back onto the consumer? Would two methods be more appropriate (for example, Map.fromOwnEntries and Map.fromOwnEntriesRecursive)?


Store password in memory after prompt for SFTP

When using SFTP with a password prompt, the password should be preserved in memory until a failed authentication attempt (password no longer valid) or the program exits. The current behavior prompts for a password on every connection attempt.

After reviewing the code, it looks like the password is supposed to be cached for future connections. However, since I'm being promoted each time, something is not working right.

@shaddyz
Can you post an example of your settings?

  "settings": {
    "deploy": {
      "packages": [
        {
          "name": "MyPackage",
          "exclude": [
            "node_modules/**"
          ],
          "deployOnSave": true
        }
      ],
      "targets": [
        {
          "type": "sftp",
          "name": "MyCloudServer",

          "dir": "/home/shaddy/workspaces/MyWorkspace/MyPackage",
          "host": "my.host.name.example.com",
          "port": 22,
          "user": "shaddy"
        }
      ]
    }
  }


[incubator/zookeeper] passing secrets in values.yaml breaks chart

Is this a request for help?:No

Is this a BUG REPORT or FEATURE REQUEST? BUG
In values.yaml, if you pass in a secret via values.secrets it will cause helm to return an error on install or upgrade.
`
i.e. adding this to myvalues.yaml
secrets:

name: zookeeper
keys:

mysecret
mountPath: /opt/zookeeper/secret
`
^ I have tried everything to quote this :-(

helm install --name=testit --namespace zktest incubator/zookeeper --values myvalues.yaml

Error: YAML parse error on zookeeper/templates/statefulset.yaml: error converting YAML to JSON: yaml: line 105: did not find expected key
myvalues.yaml.txt

Version of Helm and Kubernetes:
helm version Client: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"} kubectl version Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.0", GitCommit:"0ed33881dc4355495f623c6f22e7dd0b7632b7c0", GitTreeState:"clean", BuildDate:"2018-09-28T15:18:13Z", GoVersion:"go1.11", Compiler:"gc", Platform:"darwin/amd64"} Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.7", GitCommit:"0c38c362511b20a098d7cd855f1314dad92c2780", GitTreeState:"clean", BuildDate:"2018-08-20T09:56:31Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Which chart:
incubator/zookeeper
What happened:
When trying to add a secret(s) to values.yaml, I got an error running helm
What you expected to happen:
nominal install or upgrade
How to reproduce it (as minimally and precisely as possible):
see above
Anything else we need to know:
I think I can fix it, expect a PR

/notstale


Ship logproc as coda-logproc in mac dist

To follow: coda-logproc in deb dist.
See CodaProtocol/homebrew-coda@10217e7 for homebrew related changes

Tested by verifying binary exists at that path after a make build. Homebrew will do the rest


Add "--enabled-apis" command-line option

Description of your changes

Related Crossplane issue: https://github.com/crossplane/crossplane/issues/2122
Please see https://github.com/crossplane/crossplane/issues/2122 for a detailed account.
I have:

[X] Read and followed Crossplane's contribution process.
[ ] Run make reviewable test to ensure this PR is ready for review.

How has this code been tested

Please see https://github.com/crossplane/crossplane/issues/2122 for a detailed account on testing this PR.

Closing this PR as the upstream K8s patches have been merged.


/dev/disk/ does not exists in Ubuntu 18.04 LTS in WSL2 (Urgent Help Needed)

Environment
Windows build number: 19041.685
Your Distribution version: Ubuntu 18.04 LTS
Whether the issue is on WSL 2 and/or WSL 1: Linux version 4.19.128-microsoft-standard (oe-user@oe-host) (gcc version 8.2.0 (GCC)) #1 SMP Tue Jun 23 12:58:10 UTC 2020

Steps to reproduce

WSL logs:
Expected behavior

Actual behavior

/dev/disk/by-id/   does not exist.
Only dev directory is there. Not even disk.

@craigloewen-msft Please take a look and assign someone to provide me support on this!

@craigloewen-msft Please take a look and assign someone to provide me support on this!

@fosslinux

@fosslinux

Why am I being pinged?

Why am I being pinged?

Why am I being pinged?

@fosslinux  sorry, I though you would be helpful in solving this. I saw you from contributors that's why.

Why am I being pinged?

@fosslinux  sorry, I though you would be helpful in solving this. I saw you from contributors that's why.

Why am I being pinged?

@fosslinux sorry, I though you would be helpful in solving this. I saw you from contributors that's why.

He contributed a fix for a typo

Why am I being pinged?

@fosslinux sorry, I though you would be helpful in solving this. I saw you from contributors that's why.

He contributed a fix for a typo

Anyone who can help on this ? Anyone in your context ?

Anyone who can help on this ? Anyone in your context ?

Exactly.. I don't use WSL on a day to day basis. Frankly, I find it quite rude to ping random contributors who have not contributed anything at all related to the issue at hand. Also, even if I could help I don't think I would want to with your very 'urgent' 'give me free support' attitude. It's very demanding.
P.S. you could take 10 seconds to google 'mounting disks wsl2' and another 5 mintues to read the first result which I think is what you need rather than wasting other people's time

Exactly.. I don't use WSL on a day to day basis. Frankly, I find it quite rude to ping random contributors who have not contributed anything at all related to the issue at hand. Also, even if I could help I don't think I would want to with your very 'urgent' 'give me free support' attitude. It's very demanding.
P.S. you could take 10 seconds to google 'mounting disks wsl2' and another 5 mintues to read the first result which I think is what you need rather than wasting other people's time

@fosslinux I apologise mate,
I already took more than a week searching for this issue. I only thought you would be helpful and didn't know that you fixed a typo and your name is there is contributor list.

@fosslinux I apologise mate,
I already took more than a week searching for this issue. I only thought you would be helpful and didn't know that you fixed a typo and your name is there is contributor list.

@HarshKhilawala I don't fully understand the issue that you're seeing here, or what you're being blocked by. The /dev/disk/ folder (to my understanding) points to symbolic links that point to the disks stored in /dev/, so you should still be able to access these disks at the end of the day.
I'm going to close this issue as the template isn't fully filled out, and I don't see any actionable work here for the team. Please feel free to add more context here and edit your issue above and we can evaluate reopening it. Thanks! :)

@HarshKhilawala I don't fully understand the issue that you're seeing here, or what you're being blocked by. The /dev/disk/ folder (to my understanding) points to symbolic links that point to the disks stored in /dev/, so you should still be able to access these disks at the end of the day.
I'm going to close this issue as the template isn't fully filled out, and I don't see any actionable work here for the team. Please feel free to add more context here and edit your issue above and we can evaluate reopening it. Thanks! :)

@craigloewen-msft Thanks for getting back! I am done with the issue and found an alternative to deal with that.

@craigloewen-msft Thanks for getting back! I am done with the issue and found an alternative to deal with that.


i have issues with Shift Modifier fonction

hello
i have issues
i want use my right Stick has B but i want when i use R1 Shift Modifier the right stick has right stick and not B but it does work with DS4
the bug is if i use the real key in the shift modifier DS4 do not make shift modifier and onli use  the regular bind
exemple:
Controller:                               Games see Key:
Push Right Stick                      B

Hold R1                                   Hold R1
Push Right Stick                      Push Right Stick
release R1                               release R1

Push Right Stick                      B

i wish you understand what's i say i'm sorry for the bad english i'm french i do not speak very well

You are posting in the old, no-longer-maintained DS4Windows repository (Jay2Kings).
Trying posting your issue here: https://github.com/Ryochan7/DS4Windows/issues

thx you ^^


Update sbt-microsites to 1.3.4

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

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.47deg", artifactId = "sbt-microsites" } ]

labels: sbt-plugin-update, semver-minor

Closed in favor of https://github.com/finagle/finch/pull/1446


Bump to framework v0.11.2

In order to support the v0.11.0 release of TCE, we need to bump to v0.11.2 to include:

fixes to upgrade failures
edition detection for cluster (to support TMC)

This will be held as a draft until v0.11.2 is official tagged.

https://github.com/vmware-tanzu/tanzu-framework/pull/1787


Plotting order should not be dependent on color scheme

using DataFrames
using Gadfly
using ColorBrewer
using Distributions
colors = palette("Set1", 4)
df1 = DataFrame(rand(Normal(0, 0.5), 1000,2))
df1[:x3] = :a
df2 = DataFrame(rand(Normal(-0.25, 0.25), 500,2))
df2[:x3] = :b
df3 = DataFrame(rand(Normal(0.25, 0.25), 500,2))
df3[:x3] = :c
df4 = DataFrame(rand(Normal(0, 0.25), 500,2))
df4[:x3] = :d
df = vcat(df1, df2, df3, df4)
colors = palette("Set1", 4)
f = (df, cols) -> plot(df, x=:x1, y=:x2, color=:x3, Geom.point, Scale.color_discrete_manual(cols..., levels=[:b, :c, :d, :a]),
Theme(highlight_width=0pt))
p1 = f(df, colors)
colors = palette("Dark2", 4)
p2 = f(df, colors)
draw(PNG("test_ordering1.png", 10cm, 10cm, dpi=300), p1)
draw(PNG("test_ordering2.png", 10cm, 10cm, dpi=300), p2)

<img src="https://cloud.githubusercontent.com/assets/1661487/16347721/28cb95c4-3a03-11e6-973e-820ce746f2ab.png" width="300"
<img src="https://cloud.githubusercontent.com/assets/1661487/16347719/2626e5a8-3a03-11e6-8080-1a148bf71f4c.png" width="300"
Originally posted here before I found this behavior: https://stackoverflow.com/questions/38020096/fine-grained-control-over-plotting-order-in-gadfly

This seems to be fixed now. Can't reproduce this any more on Julia v0.5-rc2 + Gadfly v0.4.3


Remove healthcheck logging

Removes logging from the healthcheck endpoint to reduce log pollution

CI: Security warnings found!


docs(contributing): Added draft structure for contributing.md

Fixes : #55 ( Typo in the docs)
Addresses  : #51  => Created a draft contributing.md

@jgolden17 Can you please review

@jgolden17 Can you please review

looking now

@jgolden17 I will have to look into lerna

@jgolden17 So do we need to include an installation/usage guide for Parrot using lerna?

@jgolden17 So do we need to include an installation/usage guide for Parrot using lerna?

If you've got the time I'd like to at least get a section about creating the release release.  We can take that whole section out of one-app-cli and use it here.
Otherwise we can follow up this PR with another.


SignPackages does not throw exception when it fails

Do you want to request a feature or report a bug?
Bug
Other information (e.g. stacktraces, related issues, suggestions how to fix)

[ ] Resolve location of JSON configuration
[ ] Make it throw if signing fails on any package.

========================================
SignPackages
========================================
Executing: &"C:/projects/reactiveui/SignPackages.ps1"
Submitting C:\projects\reactiveui\artifacts\ReactiveUI-AndroidSupport.8.0.0-alpha0055.nupkg for signing
Exception:System.IO.FileNotFoundException: The configuration file 'SignPackages.json' was not found and is not optional. The physical path is 'C:\projects\reactiveui\packages\SignClient\tools\SignPackages.json'.
   at Microsoft.Extensions.Configuration.Fi
leConfigurationProvider.Load(Boolean reload)
   at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
   at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
   at SignClient.Program.<DoMain>d__1.MoveNext() in C:\a\1\s\src\SignClient\Program.cs:line 80
Finished signing C:\projects\reactiveui\artifacts\ReactiveUI-AndroidSupport.8.0.0-alpha0055.nupkg
Submitting C:\projects\reactiveui\artifacts\ReactiveUI-Blend.8.0.0-alpha0055.nupkg for signing
Exception:System.IO.FileNotFoundException: The configuration file 'SignPackages.json' was not found and is not optional. The physical path is 'C:\projects\reactiveui\packages\SignClient\tools\SignPackages.json'.
   at Microsoft.Extensions.Configuration.Fi
leConfigurationProvider.Load(Boolean reload)
   at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
   at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
   at SignClient.Program.<DoMain>d__1.MoveNext() in C:\a\1\s\src\SignClient\Program.cs:line 80
Finished signing C:\projects\reactiveui\artifacts\ReactiveUI-Blend.8.0.0-alpha0055.nupkg
Submitting C:\projects\reactiveui\artifacts\ReactiveUI-Events-WPF.8.0.0-alpha0055.nupkg for signing
Exception:System.IO.FileNotFoundException: The configuration file 'SignPackages.json' was not found and is not optional. The physical path is 'C:\projects\reactiveui\packages\SignClient\tools\SignPackages.json'.
   at Microsoft.Extensions.Configuration.Fi
leConfigurationProvider.Load(Boolean reload)
   at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
   at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
   at SignClient.Program.<DoMain>d__1.MoveNext() in C:\a\1\s\src\SignClient\Program.cs:line 80
Finished signing C:\projects\reactiveui\artifacts\ReactiveUI-Events-WPF.8.0.0-alpha0055.nupkg
Submitting C:\projects\reactiveui\artifacts\ReactiveUI-Events-XamForms.8.0.0-alpha0055.nupkg for signing
Exception:System.IO.FileNotFoundException: The configuration file 'SignPackages.json' was not found and is not optional. The physical path is 'C:\projects\reactiveui\packages\SignClient\tools\SignPackages.json'.
   at Microsoft.Extensions.Configuration.Fi
leConfigurationProvider.Load(Boolean reload)
   at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
   at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
   at SignClient.Program.<DoMain>d__1.MoveNext() in C:\a\1\s\src\SignClient\Program.cs:line 80
Finished signing C:\projects\reactiveui\artifacts\ReactiveUI-Events-XamForms.8.0.0-alpha0055.nupkg
Submitting C:\projects\reactiveui\artifacts\ReactiveUI-Events.8.0.0-alpha0055.nupkg for signing
Exception:System.IO.FileNotFoundException: The configuration file 'SignPackages.json' was not found and is not optional. The physical path is 'C:\projects\reactiveui\packages\SignClient\tools\SignPackages.json'.
   at Microsoft.Extensions.Configuration.Fi
leConfigurationProvider.Load(Boolean reload)
   at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
   at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
   at SignClient.Program.<DoMain>d__1.MoveNext() in C:\a\1\s\src\SignClient\Program.cs:line 80
Finished signing C:\projects\reactiveui\artifacts\ReactiveUI-Events.8.0.0-alpha0055.nupkg
Submitting C:\projects\reactiveui\artifacts\ReactiveUI-Testing.8.0.0-alpha0055.nupkg for signing
Exception:System.IO.FileNotFoundException: The configuration file 'SignPackages.json' was not found and is not optional. The physical path is 'C:\projects\reactiveui\packages\SignClient\tools\SignPackages.json'.
   at Microsoft.Extensions.Configuration.Fi
leConfigurationProvider.Load(Boolean reload)
   at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
   at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
   at SignClient.Program.<DoMain>d__1.MoveNext() in C:\a\1\s\src\SignClient\Program.cs:line 80
Finished signing C:\projects\reactiveui\artifacts\ReactiveUI-Testing.8.0.0-alpha0055.nupkg
Submitting C:\projects\reactiveui\artifacts\ReactiveUI-Winforms.8.0.0-alpha0055.nupkg for signing
Exception:System.IO.FileNotFoundException: The configuration file 'SignPackages.json' was not found and is not optional. The physical path is 'C:\projects\reactiveui\packages\SignClient\tools\SignPackages.json'.
   at Microsoft.Extensions.Configuration.Fi
leConfigurationProvider.Load(Boolean reload)
   at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
   at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
   at SignClient.Program.<DoMain>d__1.MoveNext() in C:\a\1\s\src\SignClient\Program.cs:line 80
Finished signing C:\projects\reactiveui\artifacts\ReactiveUI-Winforms.8.0.0-alpha0055.nupkg
Submitting C:\projects\reactiveui\artifacts\ReactiveUI-WPF.8.0.0-alpha0055.nupkg for signing
Exception:System.IO.FileNotFoundException: The configuration file 'SignPackages.json' was not found and is not optional. The physical path is 'C:\projects\reactiveui\packages\SignClient\tools\SignPackages.json'.
   at Microsoft.Extensions.Configuration.Fi
leConfigurationProvider.Load(Boolean reload)
   at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
   at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
   at SignClient.Program.<DoMain>d__1.MoveNext() in C:\a\1\s\src\SignClient\Program.cs:line 80
Finished signing C:\projects\reactiveui\artifacts\ReactiveUI-WPF.8.0.0-alpha0055.nupkg
Submitting C:\projects\reactiveui\artifacts\ReactiveUI-XamForms.8.0.0-alpha0055.nupkg for signing
Exception:System.IO.FileNotFoundException: The configuration file 'SignPackages.json' was not found and is not optional. The physical path is 'C:\projects\reactiveui\packages\SignClient\tools\SignPackages.json'.
   at Microsoft.Extensions.Configuration.Fi
leConfigurationProvider.Load(Boolean reload)
   at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
   at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
   at SignClient.Program.<DoMain>d__1.MoveNext() in C:\a\1\s\src\SignClient\Program.cs:line 80
Finished signing C:\projects\reactiveui\artifacts\ReactiveUI-XamForms.8.0.0-alpha0055.nupkg
Submitting C:\projects\reactiveui\artifacts\ReactiveUI.8.0.0-alpha0055.nupkg for signing
Exception:System.IO.FileNotFoundException: The configuration file 'SignPackages.json' was not found and is not optional. The physical path is 'C:\projects\reactiveui\packages\SignClient\tools\SignPackages.json'.
   at Microsoft.Extensions.Configuration.Fi
leConfigurationProvider.Load(Boolean reload)
   at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
   at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
   at SignClient.Program.<DoMain>d__1.MoveNext() in C:\a\1\s\src\SignClient\Program.cs:line 80
Finished signing C:\projects\reactiveui\artifacts\ReactiveUI.8.0.0-alpha0055.nupkg
Sign-package complete

the full path to the json is needed, I don't think relative paths are supported.

It should return a negative error code if it fails

Resolved


Programmatically generate column classes and their widths

Ideally, it'd be nice to have numbered column selectors [.one.column, .two.columns, ... ] generated programmatically (this would probably require redefining the naming scheme of the selectors) with their corresponding widths based off of $total-columns. Constraints should also be enforced that throw a @warn statement when the grid variables and functions return widths falling outside the bounds of 0-100%.

I decided to make the number of columns in this constant, rather than variable, which pretty much eliminates the need for this any longer. Will re-examine the need for a @warn should the variables be altered in a way that throws widths outside of the still expected bounds of 0-100%.


Multiple BBoxes with SSD

Hello Jk,
I have confirmed SSD works with Xavier and is running at 130FPS using async!! Amazing.
Question: When running the SSD demo, are using NMS? It seems when I run it with a live camera feed, there are multiple boxes around each object. This isnt the same issue as when using a single image.
Thanks!

Thanks for letting me know your test result on Jetson AGX Xavier.
As to NMS, yes.  The TRT SSD engine uses the "NMS_TRT" plugin (provided by NVIDIA) for that.  Please refer to ssd/build_engine.py for more info.
The inference code is exactly the same for live camera feed and image file.  If you'd like to try "more aggressive" NMS, you could try to lower nmsThreshold value, to say 0.3, and rebuild the TRT engine.

Thanks for the recommendation!

Hi @jkjung-avt  I would like to reopen this issue...
I still seem to get multiple boxes. Is this because of the multithreading? Is the Xavier too fast?
See the image below:

@mbufi, This looks like "NMS" does not properly remove duplicated detections.  Did you set nmsThreshold too high?  Could you set it back to 0.6 and see if the problem persists?

Hi @jkjung-avt this is actually with the default values from the GitHub. I just reccloned the repo and ran the image object detection on the Huskies with an Xavier and got this.

I don't see such a problem on either my Jetson Nano DevKit (TensorRT 5 & 6) or x86 PC (TensorRT <IP_ADDRESS>).  I still think this is a problem related to NMS.
Which version of TensorRT are you using?  Do you have a different platform (or a different version of TensorRT) for comparison?

That is so weird! I will have to try it on multiple jetsons (I have tx2, nano, and Xavier) and let you know the results.
I am using jetpack 4.2.2 which I think is tenrort 5.1 (off the top of my head).

I also tested the code with JetPack-4.2.2 (TensorRT <IP_ADDRESS>) before and did not see this problem.
This might be a silly thing to ask.  But did you test with the original huskies picture (without bounding boxes)?  Make sure you are not using this picture for testing: huskies.png.

Yup! This all started because I tested with live webcam and it was producing multiple bounding boxes. I will experiment more and let you know the results. Thanks jk!

working as intended. Not sure why at first it did not... flashing the jetson and reinstalling all libraries fixed issue...

@mbufi which example gave you the 130 FPS on the Xavier ? , Also, how much did you get with the non asynchronous version.
I am currently running the SSD mobilenet_v2_coco on live camera feed on the Xavier (non-asynchronous) and can only reach as much as 40 FPS for some reason. I am using Jetpack 4.3 + TensorRT 6.

@Hrayo712 I was using the aysnc version.
I believe with the non-async I was averaging ~80ish? I am using jetpack 4.2.2 with tensorRT 5.1

Hi guys,
Just tested the ssd async version on my Xavier and i'm arround 150~170 FPS which is just amazing. But for the moment I've tested it just with my camera and there is at least 3 boxes around my person... Any advice ?

@Kmarconi I had the same issue. Is this on live camera or on a single image?

On live camera :)

Upon more thought, I just realized that 130 or 150~170 frames per second is much faster than: (a) frame rate of the camera; and (b) frame rate of the display (unless you're using a very high end industrial camera...)!!
I wasn't considering that when developing the code.  So what you've seen might be the same camera image gets inferenced and drawn multiple times.
To verify whether the optimized TensorRT engine produces correct result on Jetson Xavier, please use the sync version of trt_ssd.py and look at the image frame one by one.
You might do that by, say, intentionally increasing delays between image frames.  Modify this line of code.  From:  (1ms)
        key = cv2.waitKey(1)
To: (0.1 second)
        key = cv2.waitKey(100)

It is working, yep. With the sync version and with a 25ms delay for the waitKey, I'm at 30 FPS and there is only one box for each object :) Thanks :)

@Kmarconi Glad this was worked out :) Thanks @jkjung-avt !


ci: add release helper

for releasing to pypi and npm + sync dev/main
Prerequisites:

[x] Unless it is a documentation hotfix it should be merged against the dev branch
[x] Branch is up-to-date with the branch to be merged with, i.e. dev
[x] Build is successful
[x] Code is cleaned up and formatted

Summary
add a release helper workflow (pipeline) similar to www-main and others. steps taken

use release-drafter (like www-main) to create release notes and git tag
publish epidata client to PyPi -> requires PYPI_API_TOKEN secret
publish epidata JS client to NPM -> requires NPM_TOKEN secret -> do we have an account?
create a PR that merges the main back to dev

In addition, small tunings for the definition of the Epidata JS client

if we want better release-notes we could add more labels to Pull Requests, e.g. we could separate between:

server
acquisition
python client
Javascript client
R client
documentation
chore

@korlaxxalrok I added the delphi-epidata PyPI token to LastPass. Would you add that to the env secrets, and work with @christymelucci to set us up with NPM?

@krivard Yup, will do. PYPI tokens have been added to org secrets.

@sgratzl DELPHI_NPM_TOKEN token is added to org secrets.

good to go once conflicts are resolved

resolved


Airflow git-sync is not working

Checks

[X] I have checked for existing issues.
[X] This report is about the User-Community Airflow Helm Chart.

Chart Version
8.9.0
Kubernetes Version
1.28.1
1.24.17

Helm Version
3.9.4

Description
my airflow version is 2.9.3
I was trying to use git-sync as my dag solution. My git respository is called Airflow. And when i deploy airflow with helm. i found out that there's no dag in airflow. However when i user airflow with image to update dags it works.
This is my folder structure of my repo.

dags
src
so i config the subrepoPath: "dags/"

So when i find out dags missing, i check my folder under /opt/airflow/dags there's a /opt/airflow/dags/Airflow.git which is weird and maybe can explain the reason that dags is missing. Is there any solution of it?
Relevant Logs
Nothing

Custom Helm Values
No response

@Jim0530 what version of airflow do you see in the bottom left of your web UI?
Also, do you seen any logs on the git-sync sidecar container of the scheduler pod?
Also, can you share your git-sync values?

i find out that i am using the newest image for git-sync which those variables are not allowed to use

Seeing the same problem with 8.9.0.  I downgraded to 8.8.0 and the git sync seems to be working again.

@CoinCoderBuffalo I think the most likely issue was that you were trying to use the 4.X.X versions of the git-sync image, rather than the 3.6.9 versions.
Currently, the latest version supported by 8.9.0 (and before) is registry.k8s.io/git-sync/git-sync:v3.6.9.
If someone wants to look into what changed in git-sync v4 and make a PR for the chart, that would be great. (Not sure if its possible to make the changes in a backwards compatible way, or if we need to tell people to use v4 versions of git-sync only, after the update).


Add request timeouts to core service requests

There is already a Connection timeout for the reqwest::client and specifically for IPFS requests reads, as well.
Should we set the timeout here not only for Connection?

Timeout are very use case specific, and we should set them based on that. The connection timeout can be generalized as it indicates if there is an initial response by the service we try to connect to (e.g. is it even available). But loading data from a service depends very much on that service. Also we might give more time to our service then we do with external services.


add statistics to the backfill cron job logs

fixes #2381

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (08b7fda) 91.32% compared to head (a745f88) 88.32%.

Additional details and impacted files
@@                     Coverage Diff                      @@
##           delete-only-waiting-jobs    #2427      +/-   ##
============================================================
- Coverage                     91.32%   88.32%   -3.00%
============================================================
  Files                           260       63     -197
  Lines                         15717     1884   -13833
============================================================
- Hits                          14353     1664   -12689
+ Misses                         1364      220    -1144

Flag
Coverage Δ

jobs_cache_maintenance
94.40% <ø> (ø)

jobs_mongodb_migration
86.43% <ø> (ø)

libs_libcommon
?

services_admin
?

services_api
?

services_rows
?

services_search
?

services_sse-api
?

services_worker
?

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

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

merging


Update configuration.md

Default for prerender_error to show errors during development.
config.raise_on_prerender_error = Rails.env.development?

This change is

Coverage remained the same at ?% when pulling ca785107fb90aecd479dc87a598beb8081aa422c on justin808-prerender-default into 1e769e042a031a8601534965831815e1c70fc47d on master.


template pre-baked dockerimage

hey guys,
i am really familiar with docker but not with minecraft servers.
Yet, my little brothers want a server so i have to see what i can do...
I managed to set one up with permissions and stuff like that some months ago but now after updating to minecraft 1.15 it doesnt work anymore.
Also a fresh installation without plugins hangs at "loading plugins..."
i was wondering if someone did a dockerimage with the basic plugins everybody should use (like permissions) pre configured and just ready to go.
Maybe just set some env vars like seed and OPS or mount a permissions file
I found myself struggling hard on configuring the server to work, so this might help me alot !
cheers,
felix

I personally just use vanilla servers, but @Silthus this sounds like something you might have solved for...maybe?
Otherwise @breuerfelix I would recommend jumping on the Discord channel (https://discord.gg/DXfKpjB), if you haven't already and pose the question there.

@itzg is right. I did something like this about a year ago for my old Minecraft server. However I never created a public „pre-built“ image that can be reused.

@breuerfelix I was thinking about this some more and I have already wanted to do some Dockerfile cleanup like not pre-declaring all of these volumes (and not force them on every container created)
https://github.com/itzg/docker-minecraft-server/blob/6f67f76eefe3e7c260e204e3e64c63910fa4929e/Dockerfile#L61
If I were to at least remove /mods from there, you could craft a Dockerfile that was based from itzg/minecraft-server and then ADD/COPY the desired plugins into /mods to stage them for container startup.

@itzg  I'm confused. Though I just used FORGE and vanila servers, to use mods and custom config I use ./data/mods and ./data/config directory.
Checking the startup script I can see that the script just duplicates /mods and /data/mods on startup. I don't understand why it is there? one can reach mods via /data/mods that is mounted as a volume.
And the advantage of /data/mods usage is that you can just restart the container without rebuilding it to activate\deactivate mods\config.

@wlp7s0 yes, it certainly looks confusing at first since you're right, the /data/mods (and /data/plugins) directories are the ones used at runtime. The /mods feature allows you to stage your favorite set of mods into a docker volume and then spin up any number of containers based on that set. That realization is what made me think this feature could actually help in @breuerfelix , but instead of a pre-staged docker volume, it would be a pre-built image.

yes thats exactly what i am looking for !
just some pre baked /plugins and /mods that i can spin up a container with that works with some basic functionality out of the box ! i guess that would help so many people :D cause if you come into this MC world... you are overwhelmed with all these different server types and plugins / mods stuff like that :)

I pushed a new image that removes the forced creation of /mods and /config volumes. That improves the feasibility of creating derivative images to pre-ADD into those paths.


add color role

Oleg Ginzburg writes:

I wanted to ask - is there some method to be used in the output xo ANSII
codes? For normal human text sometimes you want to draw a conclusion in color
to make it more human output ;)

Color would be a useful enhancement, but it can't be done by intermixing
escape sequnces with data.  It would need to be something more explicit
and meaningful, something like:
xo_emit("The {k:name} {C:green}weighs{C:} {:weight/%d} pounds\n", name, weight);

The new "C" role would accept a name that would appear as escape
sequences for text and "style" attributes for HTML.  The list of
color names should be freakishly small, to keep it portable, and
unknown colors would be ignored (with a warning).
Hmm... instead of directly making a color style attribute, I'd probably
opt for a color class, allowing CSS files to adjust it when/if needed.
And no, it won't support blinking ;^)
Thanks,
Phil

Turns out, the list is not longer the ancient 16 from DOS circa
1982.  According to http://en.wikipedia.org/wiki/ANSI_escape_code:
Xterm[14] and recent-enough versions of KDE's Konsole program support ISO-8613-3 24-bit fo
reground and background color setting[15][better source needed] Quoting one of the text-fi
les in its source-tree:[16][better source needed]
ESC[38;2;;;m Select RGB foreground color
ESC[48;2;;;m Select RGB background color
If these are widely supported, the list of colors could be expanded.
On the other hand, 16 colors has been good enough for thirty years....
Thanks,
Phil

I'm thinking this would be a comma-separated list:
"{C:bold,green,bg-red,italics}"
Would be nice to support "/%s" as well, like:
xo_emit("{C:bold,%s,bg-%s}", fg, bg);

Debugging note (to self):
printf '\033[7m\033[33mtest\033[27m\n'
printf '\033[7m\033[33mtest\033[39m\n'
printf '\033[7m\033[33mtest\033[39m\03327m\n'
printf '\033[7m\033[33mtest\033[39m\033[27m\n'
printf '\033[7m\033[33mtest\033[39m\033[27m\n'
printf '\033[7;1m\033[33mtest\033[39m\033[27m\n'
printf '\033[7m\033[33mtest\033[39m\033[27m\n'
printf '\033[7m\033[33mtest\033[39m\033[0m\n'
printf '\033[7m\033[33mtest\033[39mdone\033[0m\n'
printf '\033[7m\033[33mtest\033[39m\033[27mdone\033[0m\n'
printf '\033[7;33mtest\033[39m\033[27mdone\033[0m\n'
printf '\033[7;33mtest\033[39;27mdone\033[0m\n'
printf '\033[7;33;1mtest\033[39;27mdone\033[0m\n'
printf '\033[7;33mtest\033[39;27mdone\033[0m\n'
printf '\033[7;33;43mtest\033[39;27mdone\033[0m\n'
printf '\033[7;33;45mtest\033[39;27mdone\033[0m\n'
printf '\033[7;33;45mtest\033[39;49;27mdone\033[0m\n'
printf '\033[33;45mtest\033[39;49;27mdone\033[0m\n'
printf '\033[1;33;45mtest\033[39;49;27mdone\033[0m\n'
printf '\033[33;45;1mtest\033[39;49;27mdone\033[0m\n'
printf '\033[33;45;1mtest\033[39;49;27;2mdone\033[0m\n'
printf '\033[33;45;1mtest\033[39;49;27;21mdone\033[0m\n'
printf '\033[33;45;1mtest\033[39;49;27;22mdone\033[0m\n'

(note from Olevole)
On Friday 27 February 2015 19:20:52 you wrote:

On the other hand, 16 colors has been good enough for thirty years....

I totally agree with you - for console output is more than enough. I'm a few
years applies only this set to text shell output in the Linux / BSD:
http://pastebin.com/Qntu4P5q
WBR,
--
TOX ID<EMAIL_ADDRESS>(B4A584A75560D5A93DBF387FAAC56669DA18797078A46B9A9818726BEE643E52A43A6A2E3DA0)
E-mail: olevole at olevole.ru

Got time to work on this tonight:
    static const char *colors[] =
	{ "blue", "green", "red", "yellow", "default", NULL };

    int i;
    for (i = 0; colors[i]; i++) {
	if (i > 0)
	    xo_emit("{C:/bg-%s}", colors[i-1]);
	xo_emit("{C:/fg-%s}{T:/%s}", colors[i], colors[i]);
    }
    xo_emit("{C:reset}\n");

    xo_emit("{T:Item/%-10s}{C:bold,underline}{T:Total Sold/%12s}{C:no-bold}"
	    "{T:In Stock/%12s}{C:/%s}"
	    "{T:On Order/%12s}{C:normal}{T:SKU/%5s}\n", "inverse");

Done.  Will be in next release.

It's amazing, thank You!

You’re very welcome.  Check out “xohtml” to see your content in colorized html also.
Thanks,
Phil

On Apr 25, 2015, at 7:10 PM, Oleg Ginzburg<EMAIL_ADDRESS>wrote:
It's amazing, thank You!
—
Reply to this email directly or view it on GitHub https://github.com/Juniper/libxo/issues/26#issuecomment-96290294.


Handle downcasts in nnbd migration

Is this an epic we should consider for Q4, @stereotype441 @MichaelRFairhurst ? Are users running into these issues today?

I would be comfortable closing this.  I have seen one or two issues arise with downcasts, but they're rare enough that I think it is better to fix them as they arise rather than try to cover all the cases.


this is not a question

What is your question?
give me a flying script for bf now

not a floating up and down like when you press up down right left you move

like nerd moves  post in discussions


How to exclude some files and folders from gcov code coverage report?

Hi,
I am not too strong with using gcov and it's a learning process for me along with Ceedling.
I understand the basics of making a code coverage report but not able to exclude certain directories.
I have tried with the following but it didn't work for me.
:gcov:
    :report_generator:
      :file_filters: "-../Folder_Name/**"
                      OR
      :file_filters: "-./Folder_Name/**"
                      OR
      :file_filters: "-Folder_Name/**"
                      OR
      :file_filters: "-Folder_Name/*"

Thank you!

I did something similar on the temp_sensor example project. I have moved AdcConductor.[c,h] from src to src/AdcConductor/src
Here is my project.yml gcov section:
:gcov:
  :utilities:
  - ReportGenerator
  :report_generator:
    :file_filters: "-./src/AdcConductor/*"
  :html_report_type: detailed

ceedling gcov:all utils:gcov command generate html without src/AdcConductor/src/AdcConductor.c
Can you show how Folder_Name path looks like without exclusion in the final ReportGenerator report?

Thank you @CezaryGapinski  for your response,
Following is the path details:
Project
  UnitTest
    Folder_name
    test
    vender
    project.yml
  Src_folder 1
  Src_folder 2

Folder_Name path looks like without exclusion in the final ReportGenerator report:
UnitTest/Folder_Name/DummyFiles/src/dummyfile.c

Folder_Name path looks like without exclusion in the final ReportGenerator report:
UnitTest/Folder_Name/DummyFiles/src/dummyfile.c

That is weird because mine path is always preceded by ./ or .\ depends on where I'm using Linux or Windows. So my path in the ./build/artifacts/gcov/ReportGenerator/index.htm on the Linux for my example looks like this (without file_filters):
./src/AdcConductor/src/AdcConductor.c
Are you using Windows or Linux? For Windows your filter path should be changed from / to \\ and looks like this:
:file_filters: "-.\\Folder_Name\\*"

or you can also try:
:file_filters: "-.\\UnitTest\\Folder_Name\\*"

because I do not know exactly your project.yml configuration I can only guess.

Also I have changed report root to:
:report_root: ".."

I think this option is only for gcovr and not for ReportGenerator.

Still not bale to exclude respective file from gcov code coverage(/HTML) report.
Adding more details:
I am using gcovr, and ReportGenerator is not enabled in project.yml file.
:gcov:
    :html_report: true
    :html_report_type: detailed
    :html_medium_threshold: 75
    :html_high_threshold: 90
    :xml_report: false
    :report_root: ".."
    :report_generator: # added to exclude file from gcov code coverage report
      :file_filters: "-.\\UnitTest\\Dummy_Files\\*"

After running ceedling gcov:all utils:gcov command generated report path is as per the following:
 /UnitTest/build/artifacts/gcov/GcovCoverageResults.html

I am using gcovr, and ReportGenerator is not enabled in project.yml file.

It changes a lot, because as you have noticed ceedling gcov plugin uses gcovr or ReportGenerator tool. You should use option specified to gcovr what is :report_exclude:. You can try these settings:
:gcov:
  :reports:
    - HtmlDetailed
  :utilities:
    - gcovr
  :gcovr:
    :report_root: ".."
    :report_exclude: "^vendor.*|^build.*|^test.*|^lib.*|\.\./UnitTest/Dummy_Files/"

As you can see, you can omit default values for medium or high threshold (because they are set to 75 and 90 by default), and xml_report - it is not used by default.
These settings will work when you have ceedling in version 0.30.0. You can check your ceedling version by the command ceedling version.

Thank you @CezaryGapinski for the prompt reply,
I have upgraded ceedling version to 0.30.0 and after that used above-suggested configurations for gcov, now it works fine.
Did following configurations for Gcov:
:gcov:
  :reports:
    - HtmlDetailed
  :utilities:
    - gcovr
  :gcovr:
    :report_root: ".."
    :report_include: "../Application/.*"  #keep only Application folder source files
    :report_exclude: "^vendor.*|^build.*|^test.*|^lib.*"

Again, Thank you very much for help and support!

[
project.txt
](url)


uv run fails if project table is missing

I often interact with repositories with python code that has a pyproject.toml for tool configuration only. Unlike https://github.com/astral-sh/uv/issues/6419, I can't really tell if this is compliant or not, but it became common when black was released. It was one of the first really popular tools that required configuration to be in pyproject.toml.
Steps to reproduce.
$ uv --version
uv 0.4.0
$ mkdir /tmp/test-pyproject
$ cd /tmp/test-pyproject
$ touch pyproject.toml
$ uv run python
error: No `project` table found in: `/tmp/test-pyproject/pyproject.toml`

I think we're unlikely to support projects with a name. It just simplifies a lot of things and enables us to have better error messages, etc. We should give a better error message here though!

I think #7399 is sufficient to close; we have a dedicated error now!

Hello, I am still getting the exact same error here. This is on uv 0.5.6

I think I misunderstood the initial report and fixed a slightly different case (the case wherein [project] is present but project.name is absent). I think it's correct for us to be erroring here -- is there a real use-case for this?

I just looked at https://docs.astral.sh/uv/configuration/files/, which says:
"If a pyproject.toml file is found, uv will read configuration from the [tool.uv] table.
[...]
(If there is no such table, the pyproject.toml file will be ignored, and uv will continue searching in the directory hierarchy.)"
which is not the case at the moment.

The main intention of pyproject.toml (created long before uv was conceived) was to define a python project. It declares its name, version, author, dependencies, etc and also declare how it is built. Basically replace setup.py, setup.cfg etc. as well as be a shared configuration file for different project tools. However, just like setup.cfg, it can also store configuration for different tools that you might use in your project, like isort, black, ruff, pytest, mypy, as well as uv. @DeinAlptraum The page you are linking to only refers to uv using pyproject.toml as ONE way to configure it. I agree it is very confusing though and it should probably be rewritten to highlight that better. There is more documentation about the project specific parts of pyproject.toml starting at https://docs.astral.sh/uv/concepts/projects/layout/
Tools that store its config in pyproject.toml will only read that file for its own configuration and then ignore everything else. It might check that file is a valid toml, but thats it.
Most tools that read pyproject.toml can also read other configuration files like setup.cfg, tox.ini, their own format.
Except black. It only reads pyproject.toml. Black was adopted by many projects. Even projects that had not yet moved to using pyproject.toml for the project metadata. This means that there are a lot of pyproject.toml files out there without a [project] table. (We are likely outliers, but I found 1291 pyproject.toml files at the company where I work, of which only 374 has a [project] table).
uv is not like most tools. It has many different use cases. Since 0.4 you can run it as a project tool. You can also use it as a pip and/or pip-compile replacement.
However, what makes things everything extra confusing is that you CAN ALSO use project specific commands like run outside of a project, where there is no pyproject.toml. What seems to happen here is that a special implicit project is created on the fly.
Because that works, it is very confusing when it doesn't work if you are in a directory of a python project that has a pyproject.toml without a [project] table.
Personally I am ok if requires a project table in pyproject.toml files. I am teaching all my colleagues how to migrate to pyproject.toml files anyway. But I would also be totally ok if uv would treat a missing project table the same as a missing pyproject.toml file. I think this will make the transition to uv smoother.
There would of course have to be some corner cases that I can't figure out now. What if you find two pyproject.toml files. One in the root of a project with a [project] and another in a subdirectory without a [project]. Both files have [tool.uv...] sections. Will one [tool.uv...] section still override the other? Or can the validation rule be changed to only require a [project] table if there is also a [tool.uv...] section?

@jooon wow, thanks a lot for taking the time to explain!
I see that the docs you linked also mention that "uv requires this file" so I guess that's fair. Makes me wonder why it works even without it then, but I'm not complaining :D
Like you said, uv would at least benefit from a clearer documentation & communication of how running it with and without a project file present differs, because at the moment it's quite confusing - especially when you're not familiar with pyproject.tomls and you're just using uv to manage your venv and dependencies

But I would also be totally ok if uv would treat a missing project table the same as a missing pyproject.toml file

I would prefer this, but just improving the error message would also be sufficient to resolve this issue imo. Perhaps a link to the docs that explains how uv expects pyproject.toml to be used, or some sort of flag that could be set to ignore this error or similar.


Update in line with MS Documentation

A number of changes necessary to resolve some error messages resulting from updates made to core azure modules.

Removed CredentialWrapper (no longer needed for DF)
Updated connection string with EndpointSuffix
Included ResourceManagementClient
Wrapped LinkedServiceResource around AzureStorageLinkedService
Wrapped DatasetResource around AzureBlobDataset for input and output
Renumbered, cleared stored outputs and general housekeeping

Link to relevant documentation:
https://docs.microsoft.com/en-us/azure/data-factory/quickstart-create-data-factory-python
I'm just a student, but looking around, it seems that CredentialWrapper used to be required to make up for some ongoing changes surrounding msrest.authentication, azure.core, azure.mgmt.resource (big changes in v15) and azure.mgmt.datafactory. Now that azure.mgmt.datafactory utilizes azure.core (https://docs.microsoft.com/en-us/azure/developer/python/azure-sdk-library-package-index#libraries-using-azurecore), it doesn't seem necessary anymore.


User Profile section with edit

I want to add a user profile section after logging in that will contain information like profile picture, name, email etc. It will also contain an edit functionality where in the user can change the profile details.
I am a Gssoc'21 participant. Please assign this to me.

@vidhishah03 Go ahead with the issue. Happy learning:)

I would like to contribute to this issue.
If assigned, it will take around 5 to 10 days for me to complete.

I would like to work no this issue
can you please assign me

@SnehaVeerakumar You can work on this issue. @sakshikhachane please ensure that she is assigned.

@SnehaVeerakumar You can work on this issue. @sakshikhachane please ensure that she is assigned.

Thank you. I am starting to work on this issue.

@SnehaVeerakumar You can work on this issue. @sakshikhachane please ensure that she is assigned.

Thank you, I am starting to work on this issue ! I will keep updated about my process.

I will make a PR by Friday 5pm.

can you assign me this issue?

can you assign me this issue?

Already my PR is under review for so long time 😅

Can i work on this issue ? if it is not resolved yet @sakshikhachane @swapnilsparsh

@swapnilsparsh  Can I also work on this issue??


Message disappeared

Subject: Message disappeared
Description:
I've got a request via my personal mail but it is not on my profile.
Results:
I just don't get it.
Maybe the potential guest decided to cancel the request?   Thanks in advance.
Backend version: develop-d6739683
Frontend version:
User Agent: Mozilla/5.0 (Android 12; Mobile; rv:109.0) Gecko/110.0 Firefox/110.0
Page: https://couchers.org/messages/request/39684
User: stregatto (14801)

hidden in requests tab?


Add gene-level privacy level for users

Have a cascading privacy level for genes that would default to the user privacy setting if NULL.

[x] add a gene_privacy_level to the UserGene model
[x] factor the gene privacy level in the search to only show genes for which privacy requirements are met

Scenario 1: reuse existing privacy levels

Profiles have various privacy level (private, shared, public, ...)
Gene privacy is at most the user privacy level; it would not be possible to pick a privacy level higher than that of the user profile
When profile privacy level is adjusted to a lower value, we cap all the related genes privacy to that value
Genes with unset privacy level defaults to the user profile

Scenario 2:

This feature is almost completed! :)


New XML Parser/Settings.xml structure

I didnt know where to put this so im making this "issue" for now and will close it in like a week or so.
Basically i just wanted to go over the change i just pushed. I switched to the pugixml parser instead of the one that was currently in the project. I feel the pugixml parser has better features and is just as simple to use. I also like that it is also under the MIT license, not that the other parser's license had any conflicts with this projects license, but just liked the general idea.
I also went ahead and modified the settings.xml structure (view the sample to see how its laid out now). I decided to make this change now instead of down the road when this project is working with multiple clients. The idea is that eventually you will be able to make as many <Client> nodes inside the core <Config> node, and each one of those will be its own instance of the client class. Right now though, since the project only handles 1 client, it will only use the last <Client> node's details. Or you can just have 1  node in there to prevent any issues as well, the sample file is just to show how it will look when there are multiple nodes.
You will also notice the objects.xml file is in the resources folder now. Im not too sure how i want parse this yet, so i added it there so everyone can look over it and if anyone has an idea on a good way to parse it let me know. Im not sure if i should create a unique class for the different object classes (ie: character/equipment/projectile/etc) or just have that be an enum value sort of thing. Or if i should make classes like Object/Enemy/Item type of deal. Any input on this is welcomed.
Lastly, i changed the post-build event that copied the settings.xml file to the output directory to instead copy the entire resource directory to the output directory. This way it will copy whatever files that end up in there to the output directory when building. I also changed the code so it reads from "resource/settings.xml" instead of just "settings.xml" which means you dont have to have a copy in your root project folder if you want to use the visual studios debugger.
If anyone has questions/comments on these changes let me know.

the client has Objects, Projectiles and Items separate, guess that'll work?

well if you look in the client, it has all the <Class> values as:
public static const TYPE_MAP:Object = { 	"ArenaGuard":ArenaGuard, 	"ArenaPortal":ArenaPortal, 	"CaveWall":CaveWall, 	"Character":Character, 	"CharacterChanger":CharacterChanger, 	"ClosedGiftChest":ClosedGiftChest, 	"ClosedVaultChest":ClosedVaultChest, 	"ConnectedWall":ConnectedWall, 	"Container":Container, 	"DoubleWall":DoubleWall, 	"FortuneGround":FortuneGround, 	"FortuneTeller":FortuneTeller, 	"GameObject":GameObject, 	"GuildBoard":GuildBoard, 	"GuildChronicle":GuildChronicle, 	"GuildHallPortal":GuildHallPortal, 	"GuildMerchant":GuildMerchant, 	"GuildRegister":GuildRegister, 	"Merchant":Merchant, 	"MoneyChanger":MoneyChanger, 	"MysteryBoxGround":MysteryBoxGround, 	"NameChanger":NameChanger, 	"ReskinVendor":ReskinVendor, 	"OneWayContainer":OneWayContainer, 	"Player":Player, 	"Portal":Portal, 	"Projectile":Projectile, 	"QuestRewards":QuestRewards, 	"Sign":Sign, 	"SpiderWeb":SpiderWeb, 	"Stalagmite":Stalagmite, 	"Wall":Wall, 	"Pet":Pet, 	"PetUpgrader":PetUpgrader, 	"YardUpgrader":YardUpgrader };
And there is literally a class for each one of those types.
k-relay went with just Objects, Items, and Projectiles.
My general idea, that doesnt look like it will work, was to have a base Objects class and it would hold all the attributes that are present across all the types. Then depending on what other classes we really want/need, make those classes (which would probably come down to just items and projectiles honestly). But if you pull up one of the <Class>Projectile</Class> objects you will see that they only have like 1 or 2 attributes. So the base object class would have like 1 attribute which would make that class pretty much useless. Which then goes into the next idea of not having a bass class and all the classes are unique on their own (although the client has a BasicObject class that all the classes do inherit).
Idk, im still not too convinced one way or another on what the best way to store the information is yet. I almost want to just have the 1 class (Object), and that class will have a "type", and its on you to know what variables are filled in based on the type. Meh.

look at the ObjectProperties and ProjectileProperties classes in the client. i think items use ObjectProperties too.

Yeah that is similar to just having 1 class with all the properties (as ObjectProperties contains ProjectileProperties in the client). Im not too sure what other ways to do it then that really. It just seems weird that there are Objects like this:
<Object type="0x000a" id="Red Arrow"> 	<Class>Projectile</Class> 	<Texture> 	<File>lofiProjs</File> 		<Index>0x72</Index> 	</Texture> 	<AngleCorrection>1</AngleCorrection> </Object>
Which is but isnt an object, its a projectile. It would be nice to break all the objects out by their <Class> value, but then we get into the list in my previous comment which is way more classes then i feel like creating for the objects.
Ill probably just end up copying the ObjectProperties class from the client for the most part though, as you pointed out.

Object type map  should be an enum and the main object properties (projectile, enemy, item, ect) should be a single class (serialize them all into one)

yeah thats what im thinking as well, just for simplicity reasons atleast.


Unable to fine-tune gpt-3.5-turbo-0613

When attempting to fine tune a gpt-3.5-turbo-0613 model, the following error is returned from OpenAI when using openai-scala-client 0.4.1:
io.cequence.openaiscala.OpenAIScalaClientException: Code 400 : {
  "error": {
    "message": "gpt-3.5-turbo-0613 can only be fine-tuned on the new fine-tuning API (`/fine_tuning/jobs`). This API (`/fine-tunes`) is being deprecated. Please refer to our documentation for more information: https://platform.openai.com/docs/api-reference/fine-tuning",
    "type": "invalid_request_error",
    "param": null,
    "code": null
  }
}

ok, good catch! will fix


Add Translation for Language HINDI

Expected time to finish: [6] weeks. I'll start working on it on [24/04/22].

您发给我的信件已经收到。我会尽快查看邮件。谢谢!

Thanks, @ankitbourasi0 ! let me know in case you need any help. You can check out issues of existing translations for reference.

Hey @ankitbourasi0 , are you still interested in making the translation?

Hey @satwikkansal , don't you mind closing this issue? I guess we should create discussion with a list of missing translations and add Hindi to this list

Marking it as closed in favour of moving to a discussion in future.


Create section to troubleshoot Native component for 'BlurView' does n…

Adding a little extra documentation in to help resolve #77. It seems like the older distribution of RN does not add BlurView package automatically to MainApplication class.

Thanks ❤


adds dagger maven exemple

hi,
would you mind to review this PR to add a maven exemple to dagger ?

Hi @cyrillesondag ! Thank you for the contribution! We're moving over to Dagger 0.3 examples, so could you point your example to the 0.2 branch?

Hi @cyrillesondag ! Thank you for the contribution! We're moving over to Dagger 0.3 examples, so could you point your example to the 0.2 branch?

Done 👍

LGTM! Thanks @cyrillesondag for the contrib!
💯 👍


Lack of pack ID in mass payment creation response

There's a a bug in tpay\TransactionApi class that prevents from reading ID of the pack created in masspaymentCreate(). According to documentation (api-mass-payment_1.1.pdf, page 3), ID of the created package is located under element called pack_id, but in SDK (https://github.com/tpay-com/tpay-php/blob/master/src/_class_tpay/transactionApi.php#L372) <packId> is used instead.
Changing line 374 to below, fixes this problem.
// Before
static::PACK_ID => Util::findSubstring('/<packId>(.*)<\/packId>/', $res),

// After
static::PACK_ID => Util::findSubstring('/<pack_id>(.*)<\/pack_id>/', $res),

That was refactoring mistake.
Changes have been merged.


Tested V3

I Tested latest V3 on docker and see this error on log and login page do not load
`docker compose logs ...
proxymanager_v3  | ❯ Configuring npm user ...
proxymanager_v3  | ❯ Configuring npm group ...
proxymanager_v3  | ❯ Checking paths ...
proxymanager_v3  | ❯ Setting ownership ...
proxymanager_v3  | ❯ Dynamic resolvers ...
proxymanager_v3  | s6-rc: warning: unable to start service prepare: command exited 127
proxymanager_v3  | /run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
proxymanager_v3  | ❯ Configuring npm user ...
proxymanager_v3  | 1001
proxymanager_v3  | usermod: no changes
proxymanager_v3  | ❯ Configuring npm group ...
proxymanager_v3  | ❯ Checking paths ...
proxymanager_v3  | ❯ Setting ownership ...
proxymanager_v3  | ❯ Dynamic resolvers ...
proxymanager_v3  | s6-rc: warning: unable to start service prepare: command exited 127
proxymanager_v3  | /run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
END OF LINE`
V3 tested is:

PD: You see 2 errors, because I reset docker to see if something changes.  latest version works fine.

I don't know what you are doing with v3, but I'd say it looks like it's very fresh still. Nothing does anything really. At least the image I pulled today.

I only test it on a test machine. thanks to publish.
I'll wait next images to see evolution.

To add for debug this happens only when using a HostPath/Local persistent volume. If I do not add anything it starts up correctly.

yes, as you says, using volume: start well.

You mean docker volume? I am trying it on Kubernetes with no luck. Can you share your config?

yes, shared.
services:   proxymanager_v3:     image: 'jc21/nginx-proxy-manager:v3'     container_name: proxymanager_v3     networks:       my-net:     environment:       - PUID=$PUID       - PGID=$PGID       - TZ=$TZ       - DISABLE_IPV6='true'     ports:       - '90:80'       - '81:81'       - '450:443'     volumes:       # - CHANGE_TO_COMPOSE_DATA_PATH/Dockers/proxymanager_v3:/data       # - CHANGE_TO_COMPOSE_DATA_PATH/Dockers/proxymanager_v3/letsencrypt:/etc/letsencrypt       - NPMVolume:/data       - NPMCert:/etc/letsencrypt     restart: unless-stopped networks:   my-net:     external: true volumes:   NPMVolume:   NPMCert: [NPMV3.txt](https://github.com/user-attachments/files/17984209/NPMV3.txt)

NPMV3.txt


Create a small marketing website

At the very least this needs to clearly state the privacy policy and provide users with somewhere to land if they want to find out about Symbolic and InSeven.

Well, while I'm far from excited about this, it seems like it's a must for an initial release.

Basic site is in place. Closing as complete; improvements can be handled in other issues.