Errors in setup() are silent if render() throws an error

Subject of the issue
Errors thrown in setup() are silently caught if the render function throws it's own error.
This can lead to confusing test error messages that seem like something is wrong in the template, when the issue is actually in the setup.
Consider the reproduction case below:
Steps to reproduce
package.json:
{
  "name": "vue-test-utils-bug",
  "version": "1.0.0",
  "description": "",
  "main": "test.js",
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@vue/test-utils": "^2.4.1"
  },
  "devDependencies": {
    "global-jsdom": "9.1.0",
    "jsdom": "22.1.0"
  }
}

test.js:
import 'global-jsdom/register'
import { mount } from '@vue/test-utils'

// The component to test
const MessageComponent = {
  template: `
    <p>{{ t('key') }}</p>
  `,
  setup: () => {
    throw Error("test error")
    return {
      t: (key) => "A translation"
    }
  },
}

// mount() returns a wrapped Vue component we can interact with
const wrapper = mount(MessageComponent)

Expected behaviour
I would expect the program to stop when setup() throws the error.
Actual behaviour
The program continues by rendering the template with an empty context, which then throws it's own error due to t being undefined.
Output:
[Vue warn]: Property "t" was accessed during render but is not defined on instance.
  at <Anonymous ref="VTU_COMPONENT" >
  at <VTUROOT>
undefined:9
    return (_openBlock(), _createElementBlock("p", null, _toDisplayString(t('key')), 1 /* TEXT */))
                                                                          ^

TypeError: t is not a function
    at Proxy.render (eval at compileToFunction (/Users/mike/dev/MIMO16/vue-jest-bug/node_modules/vue/dist/vue.cjs.js:66:18), <anonymous>:9:75)
    at renderComponentRoot (/Users/mike/dev/MIMO16/vue-jest-bug/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:817:16)
    at ReactiveEffect.componentUpdateFn [as fn] (/Users/mike/dev/MIMO16/vue-jest-bug/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5705:46)
    at ReactiveEffect.run (/Users/mike/dev/MIMO16/vue-jest-bug/node_modules/@vue/reactivity/dist/reactivity.cjs.js:182:19)
    at instance.update (/Users/mike/dev/MIMO16/vue-jest-bug/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5818:51)
    at setupRenderEffect (/Users/mike/dev/MIMO16/vue-jest-bug/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5826:5)
    at mountComponent (/Users/mike/dev/MIMO16/vue-jest-bug/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5616:5)
    at processComponent (/Users/mike/dev/MIMO16/vue-jest-bug/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5569:9)
    at patch (/Users/mike/dev/MIMO16/vue-jest-bug/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5055:11)
    at ReactiveEffect.componentUpdateFn [as fn] (/Users/mike/dev/MIMO16/vue-jest-bug/node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5712:11)

Is this a vue thing?
I've just found that this gives me the behaviour I want:
const wrapper = mount(MessageComponent, {
  global: {
    config: {
      errorHandler: (err) => {
        throw err;
      },
    }
  },
});

I've ended up adding this to our setup.js file to set this behaviour in all tests.
import { config } from '@vue/test-utils';

// By default, vue will attempt to continue past setup errors.
// This will cause tests to fail silently, so we make sure that
// exceptions are thrown immediately in all tests.
config.global.config.errorHandler = (err) => {
  throw err;
};

Maybe this could be more prominent in the docs?

I think from the version of your package.json it seems you opened the issue on the wrong repository:
 "@vue/test-utils": "^2.4.1"

This repository is for version 1 for the version 2: https://github.com/vuejs/test-utils/issues and the version you currently have: https://github.com/vuejs/test-utils/releases/tag/v2.4.1

@joaopedrodcf Well spotted. In that case, my issue is a duplicate of https://github.com/vuejs/test-utils/issues/2319

No problem glad to help ✌


building rust component code fails with error: could not read vendor path

Steps to reproduce:

Build the Rust Compiler (https://github.com/ivmarkov/rust)
toolchain setup + set XARGO_RUST_SRC with export XARGO_RUST_SRC=`rustc --print sysroot`/lib/rustlib/src/rust/library
go to rust-esp32-std-hello/rust folder and execute xargo build --release

It fails with the following error
error: could not read vendor path

Can you create an empty vendor directory in the root of the rust folder where you checked out https://github.com/ivmarkov/rust?
Let me know the outcome.

Thanks for the reply.
I tried that and the could not read vendor path error is gone.
but still it was not able to compile the rust component and failed with multiple errors like
error[E0432]: unresolved import `core::iter`
  --> /Users/lucifer/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.80/src/lib.rs:43:13
   |
43 |         use core::iter;
   |             ^^^^^^^^^^ no `iter` in the root

error[E0432]: unresolved import `core::ops`
  --> /Users/lucifer/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.80/src/lib.rs:45:13
   |
45 |         use core::ops;
   |             ^^^^^^^^^ no `ops` in the root

error[E0432]: unresolved import `core::option`
  --> /Users/lucifer/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.80/src/lib.rs:47:13
   |
47 |         use core::option;
   |             ^^^^^^^^^^^^ no `option` in the root

error[E0432]: unresolved import `core::ffi`
........

Hey @ivmarkov Thanks for the suggestion, I was able to resolve the could not read vendor path error by creating a pseudo vendor directory
But after resolving that the build still fails with a few unresolved imports.
error[E0432]: unresolved import `core::iter`
  --> /Users/flying_raijin/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.80/src/lib.rs:43:13
   |
43 |         use core::iter;
   |             ^^^^^^^^^^ no `iter` in the root

error[E0432]: unresolved import `core::ops`
  --> /Users/flying_raijin/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.80/src/lib.rs:45:13
   |
45 |         use core::ops;
   |             ^^^^^^^^^ no `ops` in the root

error[E0432]: unresolved import `core::option`
  --> /Users/flying_raijin/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.80/src/lib.rs:47:13
   |
47 |         use core::option;
   |             ^^^^^^^^^^^^ no `option` in the root

error[E0432]: unresolved import `core::ffi`
  --> /Users/flying_raijin/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.80/src/lib.rs:55:13
   |
55 |         use core::ffi;
   |             ^^^^^^^^^ no `ffi` in the root

error[E0432]: unresolved import `core::fmt`
  --> /Users/flying_raijin/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.80/src/lib.rs:57:13
   |
57 |         use core::fmt;
   |             ^^^^^^^^^ no `fmt` in the root

error[E0432]: unresolved import `core::hash`
  --> /Users/flying_raijin/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.80/src/lib.rs:59:13

Any suggestion on what I might do to resolve them ?
thanks.

That's strange. Looks as if the core crate that xargo compiles is broken.
In any case, I found an issue in .cargo/config I've fixed now.
Please try the following:

Pull latest  from the repo
xargo clean
rm -rf ~/.cargo/registry/
rm -rf ~/.cargo/git/
xargo build --release

Also: looks as if you are building on Mac? Haven't tried there, only Linux. In theory, there should be no difference, but then who knows. Let me try on Mac, but mind you - rebuilding the whole toolchain & all might take a while...

OK, so on a completely pristine Mac (only brew and Xcode installed):

The rust xtensa+STD toolchain compiles just fine by following the instructions (only had to do brew install cmake and brew install ninja for the LLVM to build).
The rust-esp32-std-hello app also compiles fine.

Disclaimers:

I've only checked with the latest rust-esp32-std-hello version (with the fixes to .cargo/config applied)
Everything (rustup and then xargo) were installed prior to/after the toolchain build
Obviously, i've started with completely empty ~/.cargo/registry and ~./cargo/git directories. So perhaps wiping those out as I suggested above might help

Huh. Kind of strange. On Mac it also did not even complain about the "vendor" directory.
Even stranger that the stable compiler on Mac (the one I used for building the xtensa+STD toolchain) is the same as the one on Lunux:
stable-x86_64-apple-darwin unchanged - rustc 1.48.0 (7eac88abb 2020-11-16)
On Linux, it is:
stable-x86_64-unknown-linux-gnu (default) rustc 1.48.0 (7eac88abb 2020-11-16)

More on the "vendor" topic. If you want to use regular cargo instead of xargo:

Uncomment the "unstable" lines in .cargo/config in the repo of this demo app
Apply the workaround to your rust clone of my repo, as described here, at the bottom of the issue description.

@ivmarkov Thanks for the fix, I was able to build the rust-esp32-std-hello example successfully. I was able to build that with cargo as well after applying your workaround.

Thank you @ivmarkov for providing the solution. It has fixed the issue for me.
Closing down the issue.


Group stock items

Display stock items as "groups" relating to the same part

This allows us to show total stock for many singleton items
Items which have serial numbers must be singletons

Fixes https://github.com/inventree/InvenTree/issues/373

Was actually a pretty hard problem to solve. Ended up doing all the grouping / sorting at the front end, but some changes were needed to the bootstrap-table code base.


[CLU] skip samples and tests failing due to service regression

Tracking issue: https://github.com/Azure/azure-sdk-for-python/issues/26955

API change check
API changes are not detected in this pull request.


Can not buy/sell/convert over 10 proxy nfts.

Proxy token is the temperate multi token standard of project.
While buying or selling over 10 proxy tokens, it happens the issue as the following.

Exceeded the prepaid gas
Account balance is not enough of balance.
Not enough balance to cover storage

fixed by including proxy contract


Fixed: typo, incorrect MD parse result

@see https://www.yiiframework.com/doc/api/2.0/yii-helpers-baseconsole#startProgress()-detail

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
❌

Tests pass?
❌

Fixed issues

Merged. Thank you!


Importing Flags doesn't always work

Need to use the flags.png to look up flag colors when parsing tilemap-flags.png file. Trying to export out from Tiled to regenerate project and some flags are missing.

This is fixed.


Fix integration test "Interaction in doc_actions.pdf for page actions must execute PageOpen and PageClose actions"

Introduction date: January 6, 2021
Introduction PR: https://github.com/mozilla/pdf.js/commit/6523f8880bd91cf1f8ccbf0215dd7e1ea1590e9f (/cc @calixteman)
Type: intermittent (sometimes it works, indicating a possible timing/waiting issue)
OS: Windows
Logs: http://<IP_ADDRESS>:8877/248efa3bf526b9a/output.txt
Traceback:
Failures:
2) Interaction in doc_actions.pdf for page actions must execute PageOpen and PageClose actions
  Message:
    Error: Timeout - Async function did not complete within 30000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)
  Stack:
        at <Jasmine>
        at listOnTimeout (node:internal/timers:569:17)
        at process.processTimers (node:internal/timers:512:7

<snip>

Suite error: Interaction in doc_actions.pdf for page actions
  Message:
    TargetCloseError: Protocol error (Runtime.callFunctionOn): Target closed
  Stack:
        at CallbackRegistry.clear (file:///C:/pdfjs/botio-files-pdfjs/private/248efa3bf526b9a/node_modules/puppeteer-core/lib/esm/puppeteer/common/Connection.js:134:36)
        at CDPSessionImpl._onClosed (file:///C:/pdfjs/botio-files-pdfjs/private/248efa3bf526b9a/node_modules/puppeteer-core/lib/esm/puppeteer/common/Connection.js:480:25)
        at Connection.onMessage (file:///C:/pdfjs/botio-files-pdfjs/private/248efa3bf526b9a/node_modules/puppeteer-core/lib/esm/puppeteer/common/Connection.js:243:25)
        at Immediate.<anonymous> (file:///C:/pdfjs/botio-files-pdfjs/private/248efa3bf526b9a/node_modules/puppeteer-core/lib/esm/puppeteer/common/NodeWebSocketTransport.js:47:36)
        at process.processImmediate (node:internal/timers:476:21)

<snip>

Jasmine received a result after the suite finished:
{
  matcherName: '',
  message: 'TargetCloseError: Protocol error (Input.dispatchKeyEvent): Target closed',
  stack: '    at CallbackRegistry.clear (file:///C:/pdfjs/botio-files-pdfjs/private/248efa3bf526b9a/node_modules/puppeteer-core/lib/esm/puppeteer/common/Connection.js:134:36)\n' +
    '    at CDPSessionImpl._onClosed (file:///C:/pdfjs/botio-files-pdfjs/private/248efa3bf526b9a/node_modules/puppeteer-core/lib/esm/puppeteer/common/Connection.js:480:25)\n' +
    '    at #onClose (file:///C:/pdfjs/botio-files-pdfjs/private/248efa3bf526b9a/node_modules/puppeteer-core/lib/esm/puppeteer/common/Connection.js:279:21)\n' +
    '    at WebSocket.<anonymous> (file:///C:/pdfjs/botio-files-pdfjs/private/248efa3bf526b9a/node_modules/puppeteer-core/lib/esm/puppeteer/common/NodeWebSocketTransport.js:53:30)\n' +
    '    at callListener (C:\\pdfjs\\botio-files-pdfjs\\private\\248efa3bf526b9a\\node_modules\\ws\\lib\\event-target.js:290:14)\n' +
    '    at WebSocket.onClose (C:\\pdfjs\\botio-files-pdfjs\\private\\248efa3bf526b9a\\node_modules\\ws\\lib\\event-target.js:220:9)\n' +
    '    at WebSocket.emit (node:events:513:28)\n' +
    '    at WebSocket.emitClose (C:\\pdfjs\\botio-files-pdfjs\\private\\248efa3bf526b9a\\node_modules\\ws\\lib\\websocket.js:258:10)\n' +
    '    at Socket.socketOnClose (C:\\pdfjs\\botio-files-pdfjs\\private\\248efa3bf526b9a\\node_modules\\ws\\lib\\websocket.js:1264:15)\n' +
    '    at Socket.emit (node:events:513:28)',
  passed: false,
  expected: '',
  actual: '',
  code: undefined
}

It has been fixed thanks to #17036.


[Expo Go] You must provide card details, token or paymentMethodId error with CardField

Describe the bug
The implementaion with CardField element gives me error when tapping Pay button (calling confirmPayment), even on the example  given on Snack.
You must provide card details, token or paymentMethodId. I did everything like the example shows or like in the official stripe docs.
I also tried to create a paymentMethodId with createPaymentMethod but it gives me again an error Card Details not complete.
To Reproduce
Steps to reproduce the behavior:

Fill email and billing details
Fill card number, expiry date and cvc
Tap pay
Alert with the error above showing up

Expected behavior
To complete the payment successfully. In the stripe dashboard it shows up as Incomplete and not as Succeeded.
Screenshots

Smartphone (please complete the following information):

Device: [e.g. iPhone6] Xiaomi Redmi Note 8 pro
OS: [e.g. iOS8.1] Android 10 QP1A
Browser [e.g. stock browser, safari] Expo Go
Version [e.g. 22] Latest

Additional context
As i understood Expo is compatible with 0.1.1 version so i used this. I tried 0.1.4 and 0.1.5 but i had unexpected errors so i rollback to 0.1.1.

Fixed after upgrading to Expo SDK 42.0


Excluding some hidden class tests on jdk15 for j9

Because the JEP required for these tests to work (371) has not
yet been fully implemented in OpenJ9.
See here for more details:
https://github.com/eclipse/openj9/issues/9328
Signed-off-by: Adam Farley<EMAIL_ADDRESS>

Thanks


Feature Request: Tabs for multiple queries in AQL editor

I'm using the latest ArangoDB of the respective release series: 3.2
Mode: Single-Server
Storage-Engine: mmfiles
On this operating system: own infrastructure ,Windows 10
I use the query editor quite a lot. It happens quite often that I need to extract subqueries to fix then. It would be awesome if I could just open a couple of tabs to easily switch between the queries.

@konsultaner  did you have a look at this alternative UI by a community member? https://github.com/aguskov1987/arango-graphit?utm_content=bufferc6ced&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer
from the screenshots I think he provides this ;-)

For development purposes, go to js/apps/system/_admin/aardvark/APP/react and run:
yarn start

This will deploy a development server (Port: 3000) and automatically start your favorite browser and open the web interface.
All changes to any source will automatically re-build and reload your browser. Enjoy :)

@dothebart This doesn't work under windows. Do you mind if I change how the .env if parsed to make it possible to run in windows?

You mean like this?
diff --git a/js/apps/system/_admin/aardvark/APP/react/package.json b/js/apps/system/_admin/aardvark/APP/react/package.json
index c26406972a9..5a750179d4c 100644
--- a/js/apps/system/_admin/aardvark/APP/react/package.json
+++ b/js/apps/system/_admin/aardvark/APP/react/package.json
@@ -67,8 +67,8 @@
     "url-loader": "1.1.1"
   },
   "scripts": {
-    "start": "sh -ac '. ./.env.devel; node scripts/start.js'",
-    "build": "sh -ac '. ./.env.build; node scripts/build.js'",
+    "start": "env-cmd -f ./.env.devel node scripts/start.js",
+    "build": "env-cmd -f ./.env.build node scripts/build.js",
     "test": "node scripts/test.js"
   },
   "eslintConfig": {
@@ -105,6 +105,7 @@
     "babel-preset-react-app": "^6.1.0",
     "case-sensitive-paths-webpack-plugin": "2.1.2",
     "compression-webpack-plugin": "^4.0.0",
+    "env-cmd": "^10.1.0",
     "eslint": "^7.31.0",
     "eslint-config-react-app": "^6.0.0",
     "eslint-loader": "^4.0.2",

I think this would be a useful change for cross-platform compatibility.

😄 No actually like this:
// package.json
  "scripts": {
    "start": "node scripts/start.js",
    "build": "node scripts/build.js",
    "test": "node scripts/test.js"
  }

and this:
// start.js

// Use dotenv to load the environment
const path = require('path')
require('dotenv').config({ path: path.resolve('./.env.devel') });
// Do this as the first thing so that any code reading it knows the right env.
process.env.BABEL_ENV = 'development';
process.env.NODE_ENV = 'development';

// ...

because dotenv is a dependency already

@Simran-B
by the way I got an error in the arangodb.tsx when I checkout devil, npm i and ran the start.js
Type error: 'Provider' cannot be used as a JSX component.
  Its instance type 'Provider<AnyAction>' is not a valid JSX element.
    The types returned by 'render()' are incompatible between these types.
      Type 'React.ReactNode' is not assignable to type 'import("C:/Users/burkh/RiderProjects/arangodb/js/apps/system/_admin/aardvark/APP/react/node_modules/@types/hoist-non-react-statics/node_modules/@types/react/index").ReactNode'.  TS2786

     8 | import { Task, taskRepeater } from "./actions/taskRepeater";
     9 |
  > 10 | ReactDOM.render(<Provider store={store}>
       |                  ^
    11 |   <App />
    12 | </Provider>, document.getElementById("root"));
    13 |

I usually work with angular so I need start learning react for this. do you directly see the issue? otherwize I will have to digg by mayself ;)

@Simran-B I was able to run the dev server. For some reason it is not possible to change databases. It keeps jumping to the default _system database eventhough all other databases are selectable. It also not serving the title image.

it is in the folder but the dev server reacts with a 404 and there for serves the index.html. Where should I start to debug. I have it running under windows 11 and WSL2 Ubuntu. Both the same result.


flutter and native hybrid development will not work

Steps to reproduce
1  creat a flutter module from terminal
2 creat a android project with android studio
3 Configure flutter dependencies in the Android project
4  can not run
Actual results
this error

config

Logs

Logs

<!-- Paste your logs here -->

Flutter Doctor output

Doctor output

<!-- Paste your output here -->

Hi @l476175728
Please provide the error output in text format instead of a screenshot for better readability and investigation, see avoid posting screenshots of text.
Also, can you share the AGP and Gradle versions that are being used on Android native project? (These should be found on build.gradle.kts and gradle-wrapper.properties files)


⚠ Tachidesk Server has degraded performance

In 157e272, Tachidesk Server (https://tachidesk.culturecloud.gq) experienced degraded performance:

HTTP code: 500
Response time: 25541 ms

Resolved: Tachidesk Server performance has improved in 46e7ecc.


Fix: Credit Application Back Button #1983

Updated back button routing to return user to the vehicle suppliers credit transactions list or all supplier transactions list based on href state

@JulianForeman Looks good, just needs to be rebased onto 1.58.0!


Discussion: Do we want a logo for each part of Seedcase or one for all of them?

@henrik-goul @philter87 @K-Beicher @lwjohnst86 @signekb
As discussed at the update meeting 17 February, I hereby create an issue for the discussion of whether we would like one overall Seedcase logo or we would want individual logos for each part of Seedcase - i.e., sprout, propagate, flower, and garden
For example, tidyverse has individual logos for each package in their "universe":

Pros for only one logo:

It's simple
It clearly collects all parts of Seedcase into a union of "the Seedcase Software Product" - they are individual parts of the same software
Cons:
Might be more difficult to differentiate the separate parts of Seedcase

Pros for multiple logos:

The different parts will be more easy to differentiate if they are separated visually as well
Cons:
Too many logos?

Please feel free to add/edit the list above - and/or add comments!

Will close this for now.


Code Token/Key/Password Warning

A feature that scans code before committing/storing to remote locations (i.e. via git) that its detected potentially compromising information, i.e. passwords, access keys, tokens, secrets etc.
This could be a simple confirmation, or even something more advanced i.e. install a secret manager extension, to drive best practice and protect sleep deprived developers from themselves.

This is a great idea! But I think this would be best implemented as an extension


Chore forbid create mv on row store table

Proposed changes
forbid create mv on row store table
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall


Support 'time' attribute of testcase

Hi,
Is there any chance you could add the time attribute onto the testcase element that is written out?  This would allow the recording of time taken per test.  Details of this attribute can be found here.  It is this part of the spec that I mean:
<xs:attribute name="time" type="xs:decimal" use="required">
    <xs:annotation>
        <xs:documentation xml:lang="en">Time taken (in seconds) to execute the test</xs:documentation>
    </xs:annotation>
</xs:attribute>

Sorry - you already support this.  My bad.


can't get "alphanumeric" or "strong" tabs to show a "0" or "1"(!?)

https://passhelp.github.io/generator
I was just playing around, trying to use the tool to generate a small handful of random numbers (to use to choose character positions to tweak in the "phrase" output).
So, instead of going to random.org to get a few random numbers, I figured I could just pull the random numbers from the "alphanumeric" tab.  Clicking the "alphanumeric" tab many, many times (100 or more?), I could not get a "0" or "1" to be presented in any of the displayed random strings.  Same for the "strong" tab.   When I clicked the "strongest" tab, I immediately started to see 0's and 1's.
I can't believe I'm typing this. I must be wrong. Anybody else seeing this?

Heya! You are correct; the website uses the "friendly" version (alphanumeric_friendly) of this generator which excludes look-alike characters that may be mistaken visually:
https://github.com/passhelp/passhelp/blob/75d0dd3b8181c6e323162df1dfee703f6c445780/src/generators/character.ts#L40-L47
The library itself provides the option, but I made the specific choice to omit these few characters for usability on the website. If you want the strongest possible random combination, you'd want to look towards the "strongest" option on the side.

Alternatively, if you want to change this for your own use, save a copy of the page https://passhelp.github.io/generator and replace data-alphabet="alphanumeric_friendly" with data-alphabet="alphanumeric". That should do it!

OMG!  Thanks for the detailed explanation and workaround!

Ah, now I see (and understand): "look-alikes excluded"


 properties missing from Edge create example and schemas

The following is missing from the nsxEdgesCreate example and nsxEdgesCreate.xsd:
<mgmtInterface>
  <connectedToId></connectedToId>
  <addressGroups>
        <addressGroup>
            <primaryAddress></primaryAddress>
            <subnetMask></subnetMask>
        </addressGroup>
    </addressGroups>
</mgmtInterface>
<interfaces>
    <interface>
        <type></type>
        <mtu></mtu>
        <isConnected></isConnected>
        <addressGroups>
             <addressGroup>
                <primaryAddress></primaryAddress>
                <subnetMask></subnetMask>
             </addressGroup>
        </addressGroups>
        <connectedToId></connectedToId>
    </interface>
</interfaces>

NSX Edge create covers two mutually exclusive cases - create distributed router or create services gateway.
I've updated the docs to cover both cases, but the example/schema still just covers services gateway type Edge.

@lmcfarlane should we have the example show both?

You can only have one request body in the example section. The description section is freeform, and I've provided examples for both there.
See "Request Body to Create Edge Services Gateway" and "Request Body to Create Logical (Distributed) Router" in nsxEdgesCreate


Area picker

Add multiple area selection to area auto-select, especially in tasks/gis/new_list and tasks/collection_objects/filter/index.
Single autocomplete input mutated to picker style input where  a list is constructed.

Coverage decreased (-0.1%) to 89.855% when pulling c030ffa4a568d562e99c02a827e27170502f13a2 on area_picker into b1047fa66a4cfb000d4d32fd1eb0ed20315ed9d8 on development.

Coverage decreased (-0.1%) to 89.859% when pulling af701ad2e2dbcd6e07efd74b69bb704f205d7ec1 on area_picker into b1047fa66a4cfb000d4d32fd1eb0ed20315ed9d8 on development.

Coverage decreased (-0.1%) to 89.86% when pulling e28b9a9b436adffde24153f5fb9c8c56ebb72493 on area_picker into b1047fa66a4cfb000d4d32fd1eb0ed20315ed9d8 on development.


chore: migrate lightBufferPass to glsl 330

migrate lightBufferPass to glsl 330.
this light buffer pass is an aggregate of a couple other nodes for the deferred light pass. verify that lighting works correctly.
required PR:  https://github.com/Terasology/CoreRendering/pull/51

@jdrueckert congrats

 OpenGL migrations


Fx.CSS.js line 155 : this.parent()

It throws me an error at the end of a transition made with Fx.Morph at line 155 because of "return this.parent()"
Uncaught TypeError: Object # has no method 'parent'
context.FxCSS.stopFx.CSS.js:155
i.extend.$ownermootools-core.js:140
e
Could it be because the "this" context is the HTML element and the function you're trying to use (this.parent()) is about extending classes and such?

I have mootools core 1.4.3 from a joomla install. But I fixed the problem by adding the "bind" function on line 134.
this.events = {transitionend: this.stop.bind(this)}
This way, this is always a reference to the class in the stop function.

are you on the latest GitHub version or a previous one? I had similar issues with the first release, but no more with the current.

okay I see,
maybe you don't have Class.Binds from More ? I used the Binds mutator in many places, I will just use fn.bind(this) to avoid that,
thank for your report

it should be fixed now, I removed the Class.Binds mutator dependency

Completely fixed! Thanks a lot, it's very appreciated :P


Just added my name

Hello there! I just added my name on the list. Happy HackToberFest!!!

@TigerAsH94 pls star this repo and follow me it will merge

Done

@TigerAsH94   thanks for making your first contribution, I will be merging your Pull Request, also look at the issues so that you can get a chance to win a limited community Swag from me.
If you like the project and Repo please give it a star and Follow me on Github (would be appreciated).


Auto-increment build number found in pubspec.yaml

Use case
When publishing an app to an app store (notoriously Apple's App Store), including an up-to-date build number is critical to being able to upload. Otherwise you will need to rebuild the app, which can take several minutes.

Proposal
Automatically update the build number in pubspec.yaml on any call to flutter build (or maybe just the main ones since I remember hearing somewhere flutter build bundle and flutter build aot are used internally...)
So if my pubspec.yaml showed version: 2.0.0+1, then running flutter build ios would change it to: version 2.0.0+2.
This is a feature that almost everyone automates already, so I figure built-in support is probably the way to go. And this might have to be in the next major version of Flutter to avoid incrementing the value twice (once by Flutter and once by the user's script), although AFAIK that's not really an issue.

How should the build tool know which is the next version number you want?
Shouldn't this be the responsibility of your build system? I don't like if flutter build changes my pubspec file.
I would propose that pubspec.yaml get's an option pre/post build script entry.

I don't think anyone should be automatically incrementing the version number, just the build number. So basically the number after the plus. This is supposed to be incremented after every build, or else Apple and Firebase (and maybe Google) will freak out. So it's standard convention to increment by one on every build.

Since flutter is capable of reading and setting the build name and build number from pubspec.yaml file, having a command flutter version with following option is very useful.

We don't have to maintain separate iOS and Android build number and build name (since making any code changes lead to both platform submission/ internal identity)
Source of truth in our source control when the build name/build number changes.

flutter version --major  1.0.0  -> 2.0.0
flutter version --minor  1.0.0  -> 1.1.0
flutter version --patch  1.0.0  -> 1.0.1
flutter version --build_number 1.0.0+1 -> 1.0.0+2

On the iOS side, I seem to have passively noticed (don't have enough time to confirm) that running flutter build ios does in fact increment the build number by one. Again, haven't directly observed this, just noticed that I haven't actually had to do it manually in a while. Android, on the other hand, still keeps the version number the same though -- and it can get annoying compiling an apk, only to have to increment the build number and recompile.

Source of truth in our source control

I totally agree, and I think this source should be the version field of the pubspec.yaml file. I believe for Android it already is, and I believe for iOS it is in fact used by flutter build ios (If you haven't noticed, I don't compile often for iOS myself).
What I think can help optimize the process would be for a command, either flutter packages or something else, to read the version field from pubspec.yaml and replace the version numbers in the platform-specific code. This can be run by flutter build, and should keep things nice and neat, while making it very clear to users when platform-specific folders will change (so you know which commands are going to make you have to commit which folders).

flutter build ios does in fact increment the build number by one. - It won't increment automatically, it reads what ever value in pubspec.yaml file and sets it to ios/flutter_export_environment.sh, which then get written to Info.plist file

I don't think anyone should be automatically incrementing the version number - You are right, the CI/CD might not take a decision on when to increment patch/minor/major(Although, you can tell when to increment based on a flag commit pushed to development/master branch).
As mentioned and you agree with me as well, It would be nice to have shorthand commands to modify the patch/minor/major build name and to have a source of truth in the pubspec.yaml file

It won't increment automatically, it reads what ever value in pubspec.yaml file and sets it to ios/flutter_export_environment.sh, which then get written to Info.plist file

Actually, I think it does. Like I said I ran the build command several times without touching the pubspec.yaml, and the build number goes up, without changing the pubspec. Either way, I use a separate Mac for building so I can't check right this moment whether that's true or not. I just know I haven't touched the pubspec on my Mac like ever.

Although, you can tell when to increment based on a flag commit pushed to development/master branch

That's an interesting idea, I wonder if that should become standard convention. The only exception I would say is sometimes new branches are made specifically to do code cleanup which shouldn't change the version.

a source of truth in the pubspec.yaml file

If there really is a disconnect between iOS version and pubspec, then we really do need to consolidate the versioning system, especially if web and desktop support are coming.

Is there any update on this? I did for now used the CI_PIPLINE_ID with GitLab CI, but this actually can lead to some very strange behaviours where the build number is something like 97011242 which is not very good imho. If you use a tool like fastlane, there is a script that increments the build number on ios but not on android.

I use this bash script to bump the build number and tag it:
#!/bin/bash
set -e

# Find and increment the version number.
perl -i -pe 's/^(version:\s+\d+\.\d+\.\d+\+)(\d+)$/$1.($2+1)/e' client/pubspec.yaml

# Commit and tag this change.
version=`grep 'version: ' client/pubspec.yaml | sed 's/version: //'`
git commit -m "Bump version to $version" client/pubspec.yaml
git tag $version

I don't think Flutter should be int the business of auto-incrementing the build number.  Every project will have different logic for when this should be bumped (CD system, deployed to QA, deployed to internal dogfooding, deployed via MDM, published to App store), and Flutter doesn't have any hooks to know when your iOS app has been published to the App Store and therefore should be bumped.
Xcode has a lot more insight into these hooks via archiving, validation, and publishing, and even it won't don't automatically touch your build number.
https://developer.apple.com/library/archive/qa/qa1827/_index.html

The build number is fine to play around with though, it is meant to be changed every time the project is built, and if it isn't, the project will most likely have to be rebuilt anyway. I do think that there should be an option to disable it though.

it is meant to be changed every time the project is built, and if it isn't, the project will most likely have to be rebuilt anyway

That's a fine way to use it, but that's not how everyone does.
On my Catalina machine, Xcode's bundle version is 15712.  Safari's is 156<IP_ADDRESS>.3.  Calculator is 213.2.  These are likely incremented when there's an internal build system-built version of the app, not every time an individual developer builds it (or it would be in the hundreds of millions probably), which is the flutter build equivalent you suggest.  What if you have multiple team members locally bumping versions on every flutter build?  What does it mean that one is lower than the other?  Which version should be preferred on merge conflicts?  Every product has their own workflow for incrementing it and what incrementing it actually should imply and which dot version should be bumped, or if there should be any dots.  And it gets more complicated if you have a project containing a macOS and iOS version of the app sharing a back-end framework, say, and you want to increment each one separately.
So automatic--maybe not.  @rnagella has a suggestion for still manually requiring it, but making it easier, which was also suggested in https://github.com/flutter/flutter/issues/10086#issuecomment-301473217.  It could be incorporated into https://github.com/flutter/flutter/issues/10403 on publish ("Your build number is 123, would you like to increment it?")

Calculator is 213.2

Yeah, that doesn't include the build number. Versioning in Dart works like major.minor.patch+build -- so like 1.0.1+4, where 4 would be the build number. There's almost always a build number that can be harmlessly incremented.

Calculator is 213.2

Yeah, that doesn't include the build number. Versioning in Dart works like major.minor.patch+build -- so like 1.0.1+4, where 4 would be the build number. There's almost always a build number that can be harmlessly incremented.

On iOS and macOS Flutter maps the build name (in your example 1.0.1) to CFBundleShortVersionString and the build number (in your example 4) to CFBundleVersion.  I was looking at CFBundleVersion for the number I cited for various macOS apps, since you requested build number be bumped.  It seems like someone took pub versioning and tried to mash it into Apple's version keys, and it didn't shake out into the same concepts at all... It's caused us a good amount of continuing trouble, actually.
Anyway I don't mean to rabbit hole this issue, I realize you are asking for automatic versioning on all platforms, not just iOS.  😃

What would help is a possibilty to define a custom prebuild/postbuild script in pubspec. This way this can be done the way one likes it to be done.

I've been putting together a little deploy script, it's not finished, but maybe it's helpful to someone
# Generate icons
flutter pub run flutter_launcher_icons:main

# Bump build number
perl -i -pe 's/^(version:\s+\d+\.\d+\.\d+\+)(\d+)$/$1.($2+1)/e' pubspec.yaml

# Build iOS
flutter build iOS

@lukepighetti Thanks for the bump script, I noticed that I need to bump the version numbers both before and after the "+" in order to pacify both app stores, so I modified it a bit:
perl -i -pe 's/^(version:\s+\d+\.\d+\.)(\d+)(\+)(\d+)$/$1.($2+1).$3.($4+1)/e' pubspec.yaml

Based on @jmagman s response above, I'm going to close this issue as it does not seem like a good idea for Flutter to automate.

If anyone is interested, I've written a small go-tool, which allows bumping the version from within the CLI. It can also easily be used in git-hooks.
Check it out here: https://gitlab.com/ad-on-is/pubumgo

If anyone is interested, I've written a small go-tool, which allows bumping the version from the cli. It can also easily be used in git-hooks.
Check it out here: https://gitlab.com/ad-on-is/pubumgo

Thanks a lot. This is in fact very helpful!

I'm not a fan of automating version # changes, but I do like to pin build #'s to git. Here's my script for this.
BUILD_NUMBER=`git rev-list --all|wc -l|xargs`

printf "What would you like to build?\n"
select platform in "Android App Bundle" "Android APK" "iOS"; do
  echo "Preparing build #$BUILD_NUMBER"
  case $platform in
      "Android App Bundle" ) flutter build appbundle --build-number $BUILD_NUMBER; break;;
      "Android APK" ) flutter build apk --build-number $BUILD_NUMBER; break;;
      "iOS" ) flutter build ios --build-number $BUILD_NUMBER; break;;
  esac
done

@lukepighetti Thanks for the bump script, I noticed that I need to bump the version numbers both before and after the "+" in order to pacify both app stores, so I modified it a bit:
perl -i -pe 's/^(version:\s+\d+\.\d+\.)(\d+)(\+)(\d+)$/$1.($2+1).$3.($4+1)/e' pubspec.yaml

@syonip Can you provide the perl command to update the pubspec.yaml version with the external input of version no and build no.
i would be asking for version and build input from user via a shell script and want to update yaml with the captured inputs

To make this even easier, I recommend putting this in your pre-commit-hook:
.git/hooks/pre-commit:
#!/bin/bash

perl -i -pe 's/^(version:\s+\d+\.\d+\.)(\d+)(\+)(\d+)$/$1.($2+1).$3.($4+1)/e' pubspec.yaml
git add pubspec.yaml

Don't forget to make it exectuable:
chmod +x .git/hooks/pre-commit

@lukepighetti Thanks for the bump script, I noticed that I need to bump the version numbers both before and after the "+" in order to pacify both app stores, so I modified it a bit:
perl -i -pe 's/^(version:\s+\d+\.\d+\.)(\d+)(\+)(\d+)$/$1.($2+1).$3.($4+1)/e' pubspec.yaml

@syonip Can you provide the perl command to update the pubspec.yaml version with the external input of version no and build no.
i would be asking for version and build input from user via a shell script and want to update yaml with the captured inputs

@vamsi575kg
You can use the following script which accepts the version as an argument
To increment, run it without any argument.
To set a fixed version, run it using the version as the argument (e.g sh update_version.sh 1.0.0+15 )
`#!/bin/bash
set -e
if [ -z "$1" ]
then
Find and increment the version number if no argument passed
perl -i -pe 's/^(version:\s+\d+.\d+.\d++)(\d+)$/$1.($2+1)/e' pubspec.yaml
else
Set version as the argument passed
sed -i '' "s/^version.*/version: $1/g" pubspec.yaml
fi
`

@lukepighetti Thanks for the bump script, I noticed that I need to bump the version numbers both before and after the "+" in order to pacify both app stores, so I modified it a bit:
perl -i -pe 's/^(version:\s+\d+\.\d+\.)(\d+)(\+)(\d+)$/$1.($2+1).$3.($4+1)/e' pubspec.yaml

@syonip Can you provide the perl command to update the pubspec.yaml version with the external input of version no and build no.
i would be asking for version and build input from user via a shell script and want to update yaml with the captured inputs

@vamsi575kg  You can use the following script
`#!/bin/bash
set -e
if [ -z "$1" ]
then
Find and increment the version number if no argument passed
perl -i -pe 's/^(version:\s+\d+.\d+.\d++)(\d+)$/$1.($2+1)/e' pubspec.yaml
else
Set version as the argument passed
sed -i '' "s/^version.*/version: $1/g" pubspec.yaml
fi`

It is appropriate to use git tags as the version name. version: tag number + incremented commit number.
#!/bin/sh
TAG=`git describe --tags`
export TAG
perl -i -pe 's/^(version:)(\s*)((\d+\.)+\d+)(\+)(\d+)$/$1.$2.$ENV{TAG}.$5.($6+1)/e' pubspec.yaml
git add pubspec.yaml


python311Packages.fireflyalgorithm: 0.3.4 -> 0.4.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python311Packages.fireflyalgorithm is: An implementation of the stochastic nature-inspired algorithm for optimization
meta.homepage for python311Packages.fireflyalgorithm is: https://github.com/firefly-cpp/FireflyAlgorithm
meta.changelog for python311Packages.fireflyalgorithm is: https://github.com/firefly-cpp/FireflyAlgorithm/blob/0.4.4/CHANGELOG.md
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.4.4 with grep in /nix/store/qd23ym2mjlqiqbr2gyvhl33yxlvwip55-python3.11-FireflyAlgorithm-0.4.4
found 0.4.4 in filename of file in /nix/store/qd23ym2mjlqiqbr2gyvhl33yxlvwip55-python3.11-FireflyAlgorithm-0.4.4

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
python311Packages.fireflyalgorithm
python312Packages.fireflyalgorithm

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/qd23ym2mjlqiqbr2gyvhl33yxlvwip55-python3.11-FireflyAlgorithm-0.4.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python311Packages.fireflyalgorithm https://github.com/r-ryantm/nixpkgs/archive/572c9e5aa83ba7f2502d88afd785cdda0c52fa80.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/572c9e5aa83ba7f2502d88afd785cdda0c52fa80#python311Packages.fireflyalgorithm

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/qd23ym2mjlqiqbr2gyvhl33yxlvwip55-python3.11-FireflyAlgorithm-0.4.4
ls -la /nix/store/qd23ym2mjlqiqbr2gyvhl33yxlvwip55-python3.11-FireflyAlgorithm-0.4.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python311Packages.fireflyalgorithm
python312Packages.fireflyalgorithm

Maintainer pings
cc @firefly-cpp for testing.

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

4 packages built:

python311Packages.fireflyalgorithm
python311Packages.fireflyalgorithm.dist
python312Packages.fireflyalgorithm
python312Packages.fireflyalgorithm.dist

Result of nixpkgs-review pr 280892 run on aarch64-linux 1

4 packages built:

python311Packages.fireflyalgorithm
python311Packages.fireflyalgorithm.dist
python312Packages.fireflyalgorithm
python312Packages.fireflyalgorithm.dist


Prepare unixfs release v0.1.0

Per semver the next must be a minor bump at least. While I don't have a concrete path forward to 1.0 in mind for this crate I am sure we'll be doing smaller bits and bobs soon as we approach a rust-ipfs release as well.

I find it really odd that broken inter-crate links in docs are not compile errors. I think we should just publish a new version and then see how docs.rs renders them? Those are probably good enough already.

Good job me :D

bors r+


Dropdown: Filtered list resets when using arrow keys

Steps
I'm using a Dropdown component. When entering a searchQuery and then using the arrow keys on my keyboard, the filter resets while cycling. This is only happening when multiple=false. In multiple=true, everything works properly.
Expected Result
I would expect the same behavior for both modes.
Actual Result
The filtered list resets
Version
0.71.0
Testcase
Inside the documentation, scroll to Remote
Link to demo video

Will be fixed by #1795, see Single select, arrows section.


Adding support for Elliptic Curve DSA keys

Hello,
Would you be able to add a test case or 2?
Even an happy path test case would be good.
Thanks
Jean-Louis

Thank you very much.
It's ready to go.

When will you release 1.1?
I don't see a history for your release schedule thus far, and there was mention of a release 10 months ago but it seems that it never happened.

I now see 1.1 in the maven repository. Many thanks for your prompt service!


Allow the specification of versions in packages add subcommand.

Is your feature request related to a problem? Please describe.
Can't specify a specific version.
Describe the solution you'd like
Use the same format as pub get.
Either don't specify to get latest, or do specify for that specific version.
Describe alternatives you've considered
N/A
Additional context
N/A

This is already supported, thus closing the issue.
Syntax example:
at_app packages add at_contacts_flutter:3.0.0


[OPPRO-232] Support HBM allocator

Can you fix the conflict and merge? looks it's the compile command only


Add an option which specifies if the embed code is meant to be installed in the head or body

All of the docs will need to fork on this sadly if we're gonna provide screenshots of where to paste the embed code.

Implemented in soon master, will be released in v0.0.7 😄


Add labels validation

Description
Changes proposed in this pull request:

add x-kubernetes spec.labels validation

Related issue(s)
https://github.com/kyma-project/serverless-manager/issues/250

/retest

/test pre-serverless-controller-unit-test

/test pre-serverless-integration-k3s


Cannot call write after a stream was destroyed

使用npm init @vitejs/app创建的vite项目，在运行npm run dev时报如下错误，没找到相关解决办法，期望大佬们帮忙看下，，
failed to load config from C:\Users\ASUS\Desktop\myVite\vite-project\vite.config.js
error when starting dev server:
Error [ERR_STREAM_DESTROYED]: Cannot call write after a stream was destroyed
.....

Please do not ignore the issue template, this issue will be closed. You can reopen an issue and follow the issue template


"task exited" error in mesh partioner

Hi, I've been using fmesh for a while, and have run FESOM2 successfully using my own mesh generated by fmesh. But from time to time, when I use the mesh partitioner to decompose the mesh, the code stops running suddenly, with only an error message in the slurm error output file. I upload the three mesh files (nod2d.out, elem2d.out, aux3d.out) and the output files.
FESOM2_mesh_generated_by_fmesh.zip
My questions are:

Why does the code stop running?
If it is due to low mesh quality, what should I do to enhance the mesh quality?

Thanks in advance.
Shizhu

Hi Shizhu,
Thank you for using fmesh and I am glad you find it useful (sometimes). However, the problem you described doesn't seem to relate to fmesh, and I don't know why partitioning does not work. From my previous experience while debugging fmesh, if there were any mistakes in fmesh results, partitioning gave the lat/lon position of a problematic node and indicated a reason of failure. But I don't see anything like this in your slurm files.
In slurm-err file, there are multiple "mkdir: cannot create directory" errors, however. Could it be a problem?
Sergei

Hi Shizhu,
Thank you for using fmesh and I am glad you find it useful (sometimes). However, the problem you described doesn't seem to relate to fmesh, and I don't know why partitioning does not work. From my previous experience while debugging fmesh, if there were any mistakes in fmesh results, partitioning gave the lat/lon position of a problematic node and indicated a reason of failure. But I don't see anything like this in your slurm files.
In slurm-err file, there are multiple "mkdir: cannot create directory" errors, however. Could it be a problem?
Sergei

Hi Sergei,
thanks for the reply. Yes, you are right. I ran the mesh partitioning on multiple CPUs (FESOM1.4 style). Patrick told me that in FESOM2, normally we should do the partitioning using only one CPU. Now the partitioning seems all right after I ran the code serially :)
I ran into another problem. After I did the partitioning, I ran FESOM2 using my own mesh. When I used pyfesom2 to check the result
pfplot $MESH_DIR $DATA_DIR temp
I got this spotted picture

Should this be caused by low mesh quality?
Do we have tools to assess the quality of the mesh generated by fmesh?
Is it possible that in one narrow strait there are only two nodes and hence both nodes are idle during the run? In FESOM1.4, this situation should report errors.
Is the mesh generated by fmesh already rotated or not? If not, then both rotated_grid and force_rotation in namelist.config should be true?

Shizhu

Hi Shizhu,
I am glad you could make it running. Regarding your other questions:

I think so. But it's not about quality. You probably need to modify the followed argument in pfplot:
"--influence",
"-i",
default=80000,
type=float,
help="Radius of influence for interpolation, in meters.",
If your element sizes exceed 80 km, there is a chance that no nodes are found within this radius around the default (1 degree) grid nodes. Alternatively, you can probably play with this pfplot argument:
"--res",
"-r",
nargs=2,
type=int,
default=(360, 170),
help="Number of points along each axis that will be used for interpolation (for lon and  lat).",
metavar=("N_POINTS_LON", "N_POINTS_LAT"),

I am not aware of such tools.

Yes, fmesh does allow existence of the narrow straits (one element wide). It should not affect work of the model, but you are right that such strait will be "idling".

I have no idea what you are asking about here. I have never touched the mentioned config parameters and don't know exactly what they are responsible for.

Sergei

Hi Shizhu,
I am glad you could make it running. Regarding your other questions:

I think so. But it's not about quality. You probably need to modify the followed argument in pfplot:
"--influence",
"-i",
default=80000,
type=float,
help="Radius of influence for interpolation, in meters.",
If your element sizes exceed 80 km, there is a chance that no model nodes are found within this radius around the default (1 degree) grid nodes. Alternatively, you can probably play with this pfplot argument:
"--res",
"-r",
nargs=2,
type=int,
default=(360, 170),
help="Number of points along each axis that will be used for interpolation (for lon and  lat).",
metavar=("N_POINTS_LON", "N_POINTS_LAT"),
I am not aware of such tools.
Yes, fmesh does allow existence of the narrow straits (one element wide). It should not affect work of the model, but you are right that such strait will be "idling".
I have no idea what you are asking about here. I have never touched the mentioned config parameters and don't know exactly what they are responsible for.

Sergei

Hi Sergei,
your instructions are very helpful. It turns out that the resolution of my test mesh is really low, which exceeds the default radius. Now it works fine for me.
Again, many thanks for your help!


FIX - Domain: fix error tree domain after deleting the domain.

Fixes #741
@rhtyd cc @svenvogel
Please review it. Thanks.

@blueorangutan package

@utchoang a Jenkins job has been kicked to build primate packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark:centos :heavy_check_mark:debian :heavy_check_mark:archive.
QA: http://primate-qa.cloudstack.cloud:8080/client/pr/748 (JID-3512)

LGTM
@DaanHoogland can you review/test this? Thanks

renewing package to include yesterdays fixes
@blueorangutan package

@DaanHoogland a Jenkins job has been kicked to build primate packages. I'll keep you posted as I make progress.

Packaging result: :heavy_check_mark:centos :heavy_check_mark:debian :heavy_check_mark:archive.
QA: http://primate-qa.cloudstack.cloud:8080/client/pr/748 (JID-3519)


Install ortools with Gurobi solver in python venv

What version of OR-tools and what language are you using?
Version: master
Language: Python
Which solver are you using (e.g. CP-SAT, Routing Solver, GLOP, BOP, Gurobi)
Gurobi
What operating system (Linux, Windows, ...) and version?
Linux ubuntu 16.04
Hi, I'm installing python or-tools with Gurobi now.
I follow the instructions listed in this page.
Specifically,
(1)
make third-party
(2)
vim Makefile.local
UNIX_GUROBI_DIR = /opt/gurobi902
UNIX_LIB_VERSION = 90
(3)
make python
I'm wondering whether it is possible to specify which python will use to build and contain the or-tools packages.
Currently, it uses /usr/bin/python3.5 and I really want to let or-tools packages built with my specific virtual environment python.
Can I do so?
Thank you for your time and help!
Edit: I find out I can only 'import ortools' inside the repo 'or-tools' folder.
Is there any way I can turn this compiled library into a binary, and simply 'import ortools' anywhere I want and put the binary in my virtual env python?
Thank you again!

Hi,
For Gurobi you should define UNIX_GUROBI_DIR and GUROBI_LIB_VERSION
https://github.com/google/or-tools/blob/5ff76b487a6c2006326765d6417964599eedc8c9/makefiles/Makefile.unix.mk#L101-L104
and
https://github.com/google/or-tools/blob/5ff76b487a6c2006326765d6417964599eedc8c9/makefiles/Makefile.unix.mk#L137-L142
For python you can look at:
https://github.com/google/or-tools/blob/5ff76b487a6c2006326765d6417964599eedc8c9/makefiles/Makefile.unix.mk#L75-L89
So if your venv is loaded then you can pass UNIX_PYTHON_VER, there is good chance the shell script will catch the correct include etc...
you can check using target detect_python IIRC i.e.
make detect_python


Can the community provide a complete set of desktop component libraries for more people to quickly complete some functional applications

As a non front-end developer, when creating some small tools, there may be more focus on functional implementation. If there are some common components that can create a beautiful interface, it will attract more people to pay attention to this project and promote community development
UI design Refer To：https://ant.design/docs/spec/introduce
Components Refer To：https://ant.design/components/overview/

We would be delighted if such components were introduced. For instance, the community is already creating a compose-look-and-feel, and Jewel is being developed by JetBrains. However, this tracker is for tasks that can be accomplished within the framework, not for community projects. Therefore, this is the reason we are closing this issue.

Thank you for your reply. We did not see that the relevant project already exists, so we raised this question. Thank you for your dedication to this project

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Update style.css

What does this PR do?
fixes #442
@beRajeevKumar @SaiRev0
in navbar

Type of change

Bug fix (non-breaking change which fixes an issue)

Mandatory Tasks

[x] Make sure you have self-reviewed the code. A decent size PR without self-review might be rejected.

Thank you, @shwetzz14, for contributing to the project.

Keep Contributing 🚀


MB-16221: add middleware to internal api to ensure users are service members

Jira ticket
Summary
This middleware has an allow list for endpoints that can't enable the stricter check as of this moment, with the goal of getting rid of the list eventually. This closes a security loophole, but it should not negatively impact regular user experience or usage.
It's a bit difficult to check the failure state via the site because we automatically create service member records for new users.
Verification Steps for the Author
These are to be checked by the author.

[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] Have the Jira acceptance criteria been met for this change?

Verification Steps for Reviewers
These are to be checked by a reviewer.
Setup to Run the Code

Instructions for starting the MilMove application
Instructions for running tests

How to test

Run the app as a customer and ensure you can still navigate the customer app successfully.
Run tests to ensure there aren't any failures.

Backend

[ ] Code follows the guidelines for Logging.

Messages

:book:
:link: MB-16221

  Generated by :no_entry_sign: dangerJS against 35a09eccb615ef6c533fe707ed995282f1b4eae0


Allow server port to be set

This allows the Kontena master to be run in environments like Heroku.

Seems a bit odd and likely to be heroku-specific. Very weird that they require dynamic ports even for Docker images.
Does the existing server/Procfile (which does use $PORT) not work on heroku?

It works, but not for docker deployment. deploying to heroku without docker is so 2016z

I assume this is the only change needed for the custom mattipaksula/kontena-server image used there?

@SpComb yes, without this change Heroku will kill the dyno:
2017-06-12T13:34:15.395614+00:00 app[web.1]: I, [2017-06-12T13:34:15.395302 #8]  INFO -- LeaderElectorJob: won election ♚
2017-06-12T13:34:15.555326+00:00 app[web.1]: I, [2017-06-12T13:34:15.555225 #8]  INFO -- Watchdog<WebsocketBackend>: watchdog start
2017-06-12T13:34:15.558057+00:00 app[web.1]: [5] - Worker 0 (pid: 8) booted, phase: 0
2017-06-12T13:35:09.684526+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2017-06-12T13:35:09.684526+00:00 heroku[web.1]: Stopping process with SIGKILL
2017-06-12T13:35:09.864457+00:00 heroku[web.1]: Process exited with status 137
2017-06-12T13:35:09.871075+00:00 heroku[web.1]: State changed from starting to crashed


Range search API

A more general alternative to the existing search function.
#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq)]
pub enum Bound<T> {
    /// An inclusive bound.
    Included(T),
    /// An exclusive bound.
    Excluded(T),
    /// An infinite endpoint. Indicates that there is no bound in this direction.
    Unbounded,
}

impl<K, V> SkipMap<K, V>
where
    K: Ord,
{
    /// Returns an `Entry` pointing to the lowest element whose key is above
    /// the given bound. If no such element is found then `None` is
    /// returned.
    pub fn lower_bound<Q>(&self, bound: Bound<&Q>) -> Option<Entry<K, V>>
    where
        K: Borrow<Q>,
        Q: Ord + ?Sized,
    {}

    /// Returns an `Entry` pointing to the highest element whose key is below
    /// the given bound. If no such element is found then `None` is
    /// returned.
    pub fn upper_bound<Q>(&self, bound: Bound<&Q>) -> Option<Entry<K, V>>
    where
        K: Borrow<Q>,
        Q: Ord + ?Sized,
    {}
}

👍 to this idea.
Let's copy Bound and RangeArgument from the standard library and implement method range, too.
Hopefully Bound and RangeArgument get stabilized soon so we don't have to make our own.

I'm personally not a big fan of RangeArgument. I prefer the old range(Bound, Bound) API.

I didn't follow discussions around it, but is it not more general? You can pass (Bound, Bound) as a RangeArgument so there's nothing to lose right?


UX issues when creating new page

Observed while writing this https://frappeframework.com/docs/v14/user/en/guides/caching

Where is "new document" button? :grimacing: Only after editing some random page I see "+" icon on sidebar. It should be way more easily accessible for logged in users.
Pasting markdown doesn't convert to HTML (if tiptap is being used then it should work ig?)
Saving document gives error "Wiki Space None not found"
I created from backend, but now can't show anywhere on sidebar
Went to Wiki Space and added entry manually there. Doesn't show up on sidebar still.

Added a button from menu b9e0970fa546f211ebf874a966f1a1463120711c.
Tiptap doesn't support markdown to HTML on pasting out of the box.
Wasn't able to reproduce locally but it seems to have been resolved in fw docs.
It is a bit of a chore if you're doing it from desk

You'd have to create doc with space's url prepended to the actual URL
And then add to the Wiki Space


Search history forward: The cmd way

When I install PSReadLine, a console feature regarding the "command history traversal" that I use the most gets broken. That is:

Launch a PowerShell instance, type ls and press Enter.
Now type cls and press Enter.
Press up arrow 2 times. (You should get ls)
Press Enter.
Press down arrow. (You should get cls now. You get nothing if PSReadLine module is installed.)

This history search behavior is sort of stateful: If you've executed a command from your history, and do a "History Forward" action after that, you should get the next command in history that comes after that.
The functions HistorySearchForward and HistorySearchBackward is only a part of what I need. Pressing the down arrow in a blank new line should do a HistorySearchForward starting from the last executed command (if any).
Actually it sounds to me like "OMG HOW COME NOBODY EVER REALIZED THIS BEFORE?" And I know that possibly cannot be true. So I hope I'm not pointlessly mentioning some "THAT'S A FEATURE" case.
(By the way, I love the syntax coloring. That's why I seek a solution that doesn't include uninstalling the module.)

I'm well aware of the behavior you describe, it was an intentional design decsion to mimic bash instead of cmd as the cmd behavior is typically quite confusing when you're not quite sure where you are in history.
In Emacs mode, Ctrl+o is bound to AcceptAndGetNext, which is very nearly what you want. I suggest trying it, e.g. Set-PSReadlineKeyHandler -Key Ctrl+o -Function AcceptAndGetNext and then, instead of Enter then DownArrow, you instead just use Ctrl+o. You may find you prefer this - it's one less key, and you can still use DownArrow if you want something other than the immediate next command line.

Last night I tried using AcceptAndGetNext and felt like a newbie trying to exit Vim :D But thanks for the suggestion anyway!


doc update

update the list (some are missing: ygot, ansible ...)
https://github.com/aristanetworks/openmgmt/blob/main/docs/examples/index.md
https://aristanetworks.github.io/openmgmt/examples/
update the README file (moving contributions details in an external contribution guide)

per discussion on 20220121

move the contributing guidelines from the README and move these into a separate document
the README should really look like a point of entry that outlines what people can learn from this.


Align the buttom row for the site on desktop view

Describe the bug
The website is okay on mobile view, but whenever I'm on desktop view, the bottom row is not straight
To Reproduce
Steps to reproduce the behavior:

Go to the website
Use a desktop or change to desktop view
Scroll down to the last row
See error

Expected behavior
The last row wouldn't be aligned

You can start your work now.


Add password protection

Password protection should be required. Add after initial screen and use password in conjunction with key 1 for security.

BIP39 passphrase more or less covers this when used properly


Navbar fixed

Offcanvas Navbar design completed according to the theme of the website
Hover effects added on the Nav-Links

Nice Work @ShivamKmishra09 🚀


Develop the code to run for all the CAMELS basins with time-varying attributes

Currently, dCFE only supports NN for one CAMELS basin for static attributes. We need time-varying attributes
In the NLDAS forcing data by Gauch et al., (2020) (e.g., this file), we only have E + all the variables needed for calculating PET. Can we just feed in E as the time-varying attributes to NN?

Working on this commit # 47b9a2429426240c823fa8e15ea87f2b8d7e9604
Out of NLDAS data, 3 variables not used for PET calculation are used for attributes (potential_energy, convective_fraction, and longwave_radiation)
This issue NWC-CUAHSI-Summer-Institute/dCFE/issues/9 still persists


Expand google.protobuf.Any when emit p4info in text format

The target specific extern instance and table properties are using this google.protobuf.Any message (p4info.proto). The google.protobuf.Any messages in runtime is required to be emitted in text format (human readable), not as serialized content. But the p4info text serializer outputs cryptic text (e.g. octal numbers) for google.protobuf.Any message.
This PR addresses this issue by using text format printer to serialize the messages to text. This printer instance allows us to set flag to expand the google.protobuf.Any message.
Before:
info {
    type_url: "type.googleapis.com/..."
    value: "\022\030\010\001\022\020object \010(\002\032\017\010\001\022\ttype\030\001...."
}

After
info {
    [type.googleapis.com/...]
    fields {
        id: 1
        name: "object"
    }
    ...
}

I edited the description a little bit to include reference to p4info.proto file and minor corrections.


Make it configurable for WaitForRsyncResourcesTerminated to move on without waiting

Is your feature request related to a problem? Please describe.
Request deletion, to be safe, we can see if the deletion timestamp is set and then move on. Give the user an ability to change this setting from MigrationController CR.


[FLOC-2154] Restart Flocker services on failure

Change to always restart, merge when relevant buildbot builder pass (the acceptance test ones I guess).

Acceptance tests are failing due to Rackspace issues. Howerer, I have started a control/agent node, and killed all 3 processes to test that they are restarted.


Require that every plugin has a name

…so that we’re able to blame a plugin by name when it messes things up (#5).
How to do it:

require that every plugin function has a label property (name is taken), or

in doxie-core(plugins) expect a {Map} plugins instead of an {Array} plugins – in a Map the order of entries is stable like in an Array, but every entry must have a key like in an Object.

I prefer option 2. It’s more DRY because we can read the plugin names from the command line (for example --filter). It’s more lighweight because we don’t need to specify another level (plugin function properties).
@stoeffel @jimmyjjames what do you guys think?

We’ll go for option 2 with the help of https://github.com/medikoo/es6-map


[Example] Generating a platformer level

Hello,
thank you for this wonderful addon. After reading some of the discussion, I understood better how to use Precondition. It gave me the idea to use WFC as a better autotile feature than builtin one.
Moroever, the idea is to draw the shape of a platformer level and let WFC fill it. I had to use a special tile for the AIR since it is a 2D side view.
You can find the prototype project so everyone can learn from it. test-wfc.zip
So, the settings is:

we have a tileset with marked tile for the platform (grass, dirt) and tiles for the air (purple one and foliage decoration)
we have a sample map to explicitly teach how to connect platform tiles
we have a negative map to reject wrong combinations
we have a level tilemaplayer to draw the shape of the level
we have a special new class WFC2DPreconditionPlaftorm

Demo:
Level map:

Result in game:

Now I am just wondering if it will take more times to set the rules than actually and manually draw levels myself ;-)
Have a nice day!

Hi.
I'm glad someone besides myself could get how to use this feature 😆
I did think about making a more generic precondition that would map a tile from target map to certain domain. Mostly for cases when initial level layout is generated by another procedural generator (such as Gaea, or alike) that isn't wrapped in a precondition and WFC just polishes the details. I guess it would work for your case as well.
I did also consider creating a WFC-based autotiling-like functionality that would work directly in the editor. But that seems to be too complicated and isn't likely to be significantly more useful than the existing autotiling functionality (with terrains).


[Task]: Add accelerator and isUserCreated properties in create_NEWACTION event for 1-click binding

SubTasks
Notion doc: https://www.notion.so/appsmith/Add-accelerator-and-isUserCreated-properties-in-create_NEWACTION-event-for-1-click-binding-08f07a0a7a1c46c2953d714a448413b0?pvs=4

Encountered a release blocker in the morning, continuing with this task now

Keeping this PR on hold to triage issue https://github.com/appsmithorg/appsmith/issues/31207#issuecomment-1969452278


[Bug] Is there any graceful way to prevent running out of http2 stream id in Dubbo3.x

Pre-check

[X] I am sure that all the content I provide is in English.

Search before asking

[X] I had searched in the issues and found no similar issues.

Apache Dubbo Component
Java SDK (apache/dubbo)
Dubbo Version
Dubbo 3.x
Steps to reproduce this issue
Based on the discussion in #13731, I think it is an improper way to make a reconnection triggered by GoAwayFrame(stream id exhausted) cause there will be 100% request failure before the new connection being active and it is unacceptable for production scenario. To make sure the connection is consistently available, is it possible to make a new connection before the stream id is about to be exhausted?
What you expected to happen

Make a new connection before the stream id is about to be exhausted.

Anything else
No response
Are you willing to submit a pull request to fix on your own?

[X] Yes I am willing to submit a pull request on my own!

Code of Conduct

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

@EarthChen @icodening PTAL
BTW, I also want to know if there is a good way

I think should be reconnect when throw Http2NoMoreStreamIdsException, and the message will be suspend until stream is create success.

Is it possible to proactively reconnect instead of waiting for an exception to occur?

According to https://datatracker.ietf.org/doc/rfc9113/ 5.1.1
Stream identifiers cannot be reused. Long-lived connections can result in an endpoint exhausting the available range of stream identifiers. A client that is unable to establish a new stream identifier can establish a new connection for new streams. A server that is unable to establish a new stream identifier can send a GOAWAY frame so that the client is forced to open a new connection for new streams.

When Http2GoAwayFrame received in TripleGoAwayHandler, we can throw a RpcException with NETWORK_EXCEPTION, to trigger call retry mechanism before business failure.

When stream exhaust occur, Server send GOAWAY frame to prevent client-endpoint to open a new stream with higher stream id.
GOAWAY is a part of http/2 error-handling. We may handle it as HTTP/2 transportation layer error.
Currently TripleGoAwayHandler#channelRead, NettyConnectionHandler#onGoAway, NettyConnectionClient#onGoaway implements close-and-reconnect on connection layer.
Suggest to raise RpcException with code NETWORK_EXCEPTION to trigger non-biz RPC call retry mechansim.

@PaulTan94 @oxsean @icodening @AlbumenJ  I have an idea to handle GoAway gracefully, but need a testcase to cover. It's difficult to reproduce the scenario. Can you help?

@PaulTan94 @oxsean @icodening @AlbumenJ I have an idea to handle GoAway gracefully, but need a testcase to cover. It's difficult to reproduce the scenario. Can you help?

Hi, there is a tricky way to control the stream id step in Netty

Copy the io.netty.handler.codec.http2.DefaultHttp2Connection.java file.
Change the default step(+2) in 'incrementAndGetNextStreamId' and 'incrementExpectedStreamId' method.
Put the changed java file under your project's classpath, ClassLoader will premarily load the class under current project's classpath.

According to https://datatracker.ietf.org/doc/rfc9113/ 5.1.1
Stream identifiers cannot be reused. Long-lived connections can result in an endpoint exhausting the available range of stream identifiers. A client that is unable to establish a new stream identifier can establish a new connection for new streams. A server that is unable to establish a new stream identifier can send a GOAWAY frame so that the client is forced to open a new connection for new streams.
May be Http2NoMoreStreamIdsException is not required, we should reconnect automatically

The

According to https://datatracker.ietf.org/doc/rfc9113/ 5.1.1
Stream identifiers cannot be reused. Long-lived connections can result in an endpoint exhausting the available range of stream identifiers. A client that is unable to establish a new stream identifier can establish a new connection for new streams. A server that is unable to establish a new stream identifier can send a GOAWAY frame so that the client is forced to open a new connection for new streams.
May be Http2NoMoreStreamIdsException is not required, we should reconnect automatically

The way mentioned in RFC9113 is mostly for Web scenario, right? For RPC scenario, it is much more proper to start a reconnection proactively instead of waiting for Http2NoMoreStreamIdsException.

I hava an idea of implementing a handler in Netty handler pipeline, which will monitor the latest stream id and trigger a channel switching (without traffic loss) once the stream id is about to reach the limit. I am not sure that is the right way, but anyway I will post a PR later.

@PaulTan94 @oxsean @icodening @AlbumenJ I have an idea to handle GoAway gracefully, but need a testcase to cover. It's difficult to reproduce the scenario. Can you help?

Hi, there is a tricky way to control the stream id step in Netty

Copy the io.netty.handler.codec.http2.DefaultHttp2Connection.java file.
Change the default step(+2) in 'incrementAndGetNextStreamId' and 'incrementExpectedStreamId' method.
Put the changed java file under your project's classpath, ClassLoader will premarily load the class under current project's classpath.

It is not recommended to do this as the order of class loading cannot be guaranteed

GoAway failure (caused by stream id exhaustion) occurs in one of billions probability, we need have a trade-off between fix-cost with introduce complexity and one-of-billion impact.
I think NO NEED TO FIX IT.
If you expect a 100% reliable system, it's better to deploy multiple service provider nodes and enable retry time configuration for service consumer.

No news is good news. @AlbumenJ @PaulTan94 PTAL

I think it's necessary to reconnecting, and this shouldn't cost much @Chenjp

I think should be reconnect when throw Http2NoMoreStreamIdsException, and the message will be suspend until stream is create success.


Add ShuttleLiftingBodyCormorantAeronology

Created as a branch of the repo to allow others to edit if needed and delete once merged.

Passes, LGTM!


Dithering improvements

Hi!  At the risk of being a complete shill, a friend of mine has an image dithering library & CLI app that may serve as a time saving step for implementing improved dithering options and more technically accurate dithering math within Pixel Composer.  The library is written in Go which may introduce some challenges seeing as (According to the GitHub codebase information) this application is not using Go at all, however it is compatibly licensed (MPL).
Worth a look at least for inspiration! :)

Thanks for your suggestion! I have no Go experience but I'll look into it.


New syntax for advanced typing array of arguments

Search Terms
new syntax, advanced types, generic, array of arguments
Suggestion
Hi, everybody!
I think it would be cool to create a solution to this problem.
If you want to control the typing of the result of a function based on an unlimited number of incoming arguments, you will need a huge number of overloads.
Use Cases
For example, you have a class that contains a property configuration:
class PropertyConstructor<T> {
  type: T;
}

class PropertyConfiguration<T, S extends keyof any> {
   constructor(
      public propertyKey: S,
      public propertyConstructor: new () => PropertyConstructor<T>,
   ) {}
}

Next, create several inheritors of constructors:
class StringPropertyConstructor extends PropertyConstructor<string> {
}

class NumberPropertyConstructor extends PropertyConstructor<number> {
}

Next, create function, that will build class with property configs:
type Join<T, S extends keyof any> = {[P in S]: T};

function CreateClass<T1, S1 extends keyof any>(p1: PropertyConfiguration<T1, S1>): new () => Join<T1, S1>;
function CreateClass<T1, S1 extends keyof any, T2, S2 extends keyof any>(
  p1: PropertyConfiguration<T1, S1>,
  p2: PropertyConfiguration<T2, S2>,
): new () => Join<T1, S1> & Join<T2, S2>;
// ... And so on. It's very uncomfortable and ugly.
function CreateClass(...properties: Array<PropertyConfiguration<any, keyof any>>): new () => any {
  class NewClass {}
  // Here was the logic of executing property constructors
  return NewClass;
}

And create some instances of PropertyConfiguration:
const property1 = new PropertyConfiguration('property1', StringPropertyConstructor);
const property2 = new PropertyConfiguration('property2', NumberPropertyConstructor);

Funnaly, Let's try to apply it:
class A extends CreateClass(property1, property2) {
}

const a = new A();
a.property1 // string;
a.property2 // number;

It's works! But, very uncomfortable and ugly. For example if you want to create class with ten properties, you need to implement corresponded overloads.
Examples
As I see the solution to this problem:
type Join<T, S extends keyof any> = {[P in S]: T};

type Union<T extends Array<any>> = ...
/*
built-in type for compare array types.
Example:
Union<[string, number]> => string & number
Union<[Join<string, 'property1'>, Join<number, 'property2'>]> => Join<string, 'property1'> & Join<number, 'property2'>
*/

function CreateClass<N extends number, T{N}, S{N} extends keyof any>(
  ...properties: [PropertyConfiguration<T{N}, S{N}>]
): new () => Union<[Join<T{N}, S{N}]> {
  class NewClass {}
  // Here was the logic of executing property constructors
  return NewClass;
}

Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

Well, or a more simple example:
You can look at the typification of methods Promise.all or Promise.race...

Rest arguments and tuple types?

@AnyhowStep +

I'm on mobile, so, I'm not too sure if this would work but your Promise.all thing can probably be written with far fewer overloads,
//We want T to distribute
type UnwrapPromiseLike<T> = T extends PromiseLike<infer U> ? U : T;
//snip

//for empty tuple
all () : Promise<[]>;
//for non-empty tuple
all<ArrT extends any[]> (arr : ArrT & {"0":any}) : Promise<{ [i in keyof ArrT] : UnwrapPromiseLike<ArrT[i]> }>;
//for non-tuple array
all<ArrT extends any[]> (arr : ArrT) : Promise<{ [i in keyof ArrT] : UnwrapPromiseLike<ArrT[i]> }>;

@AnyhowStep Promise.all is a method of Typescript npm lib. It is not my method.

I know. I'm just saying it can be written to handle tuples of arbitrary length

@AnyhowStep Is it possible to implement something like Union from the first example?

What you're looking for is UnionToIntersection<U>.
https://github.com/AnyhowStep/type-mapping/blob/master/src/type-util/union-to-intersection.ts

Sorry for the double post but,
https://github.com/microsoft/TypeScript/issues/29594#issuecomment-507701193
https://github.com/microsoft/TypeScript/issues/29594

Copy-pasting my comment on https://github.com/microsoft/TypeScript/pull/33707 over here.
This is better,
type Awaited<T> =
    T extends undefined ?
    T :
    T extends PromiseLike<infer U> ?
    U :
    T
;
declare function all<T extends readonly any[]>(
    values: T
): Promise<{ -readonly [P in keyof T]: Awaited<T[P]> }>;

declare const numArr: number[];

//const newAll0: Promise<never[]>
const newAll0 = all([]);
//const newAll1: Promise<(string | number | boolean)[]>
const newAll1 = all([1, "2", true]);
//const newAll2: Promise<number[]>
const newAll2 = all(numArr);

//const curAll0: Promise<never[]>
const curAll0 = Promise.all([]);
//const curAll1: Promise<(string | number | boolean)[]>
const curAll1 = Promise.all([1, "2", true]);
//const curAll2: Promise<number[]>
const curAll2 = Promise.all(numArr);

//for empty tuple
declare function betterAll (arr : []) : Promise<[]>;
//for non-empty tuple
declare function betterAll<ArrT extends readonly [any, ...any[]]>(
    arr: ArrT
): Promise<{ -readonly [i in keyof ArrT]: Awaited<ArrT[i]> }>;
//for non-tuple array
declare function betterAll<ArrT extends readonly any[]>(
    arr: ArrT
): Promise<{ -readonly [i in keyof ArrT]: Awaited<ArrT[i]> }>;

//const betterAll0: Promise<[]>
const betterAll0 = betterAll([]);
//const betterAll1: Promise<[number, string, boolean]>
const betterAll1 = betterAll([1, "2", true]);
//const betterAll2: Promise<number[]>
const betterAll2 = betterAll(numArr);

Playground
See all (this PR) vs Promise.all (current impl) vs betterAll (mine)

Thank you for solution. It's really helps me!


keystoneauth1 lib imported in cli.py

I needed to add these imports so that the keystone code could run correctly.  Python was reporting previously that v3 was undefined.  More info here: https://docs.openstack.org/python-keystoneclient/latest/using-sessions.html

Related commit (don't ask how I found this): https://github.com/SahilTikale/hil/commit/485ced3d75edb22491d397ef822120dc5d008bdf#diff-f91b561bea80fef80859e07202890ee0

makes sense. +1

Hm, can we add a regression test for this? Maybe in tests/integration/keystone we should make sure we invoke the cli at least once.
Otherwise this looks fine.

@zenhack Would that be satisfied by calling list_nodes all and making sure the output matches what's expected?

@Izhmash, yeah that should work.

This looks good to me, agree on the requirement for integration testing.
In a follow-up improvement, we can avoid having to set the hil endpoint env variable in the case of keystone by registering hil in the service catalog and retrieving the endpoint url from the service catalog.

Assuming travis passes, +1


APache-sedona Failure

Installing JAR libraries from initScript and then apache-sedona 1.6.0 or 1.6.1 makes imposible to execute any notebook. throwing the error
Failure starting repl. Try detaching and re-attaching the notebook.
at com.databricks.spark.chauffeur.ExecContextState.processInternalMessage(ExecContextState.scala:347)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)

Doesn't matther if reattach, create new notebook ,or restart... always fails. Without  apache-sedona everything works
Settings
Sedona version = sedona-spark-shaded-3.4_2.12-1.6.1.jar geotools-wrapper-1.6.1-28.2.jar
Apache Spark version = 3.5.0
Environment = Azure, Databricks

I didn't realize what you point @jiayuasu, I changed it but still didn't wok.
Installing numpy and pandas as @Kontinuation said, fix the problem... even though both libraries are included in every databricks cluster as a standard config with those exact conditions....
However in this way the cluster takes ages to start... I think I'm gona stuck with the sql and forget about python.

@Kontinuation It think it might be best if we remove rasterio from the mandatory dependency of Sedona 1.7.0?

@Kontinuation It think it might be the best if we remove rasterio from the mandatory dependency of Sedona 1.7.0?

Good point. There are many other rasterio related issues reported by users because it is hard to get rasterio and GDAL installed on some particular environments.


Why no overloaded constructor implementations?

Its not really a Design proposal, it's more a question why TypeScript doesn't have it.
In Java it's common to write more than one version of a function to support many different argument constellations. For example a vector could be constucted with a start and endpoint or just the start point or just the coordinates of those points and so on.
Here is an example:
export class Vector {
  public p1;
  public p2;
  public p3;
  public q1;
  public q2;
  public q3;

  constructor(x1: number, x2: number, x3: number);
  constructor(P: Point);
  constructor(Ps: Point, q1: number, q2: number, q3: number);
  constructor(p1: number, p2: number, p3: number, Pe: Point);
  constructor(Ps: Point, Pe: Point);
  constructor(p1: number, p2: number, p3: number, V: Vector);
  constructor(Ps: Point, V: Vector);
  constructor(Vs: Vector, V: Vector);
  constructor(p1: number, p2: number, p3: number, q1: number, q2: number, q3: number);
  constructor(p1: any, p2?: any, p3?: any, p4?: any, p5?: any, p6?: any) {
    if (this.validateParameters(["number", "number", "number"], [p1, p2, p3, p4, p5, p6])) {
      this.constructor1(p1, p2, p3);
    } else if (this.validateParameters([Point], [p1, p2, p3, p4, p5, p6])) {
      this.constructor2(p1);
    } else if (this.validateParameters([Point, "number", "number", "number"], [p1, p2, p3, p4, p5, p6])) {
      this.constructor3(p1, p2, p3, p4);
    } else if (this.validateParameters(["number", "number", "number", Point], [p1, p2, p3, p4, p5, p6])) {
      this.constructor4(p1, p2, p3, p4);
    } else if (this.validateParameters([Point, Point], [p1, p2, p3, p4, p5, p6])) {
      this.constructor5(p1, p2);
    } else if (this.validateParameters(["number", "number", "number", Vector], [p1, p2, p3, p4, p5, p6])) {
      this.constructor6(p1, p2, p3, p4);
    } else if (this.validateParameters([Point, Vector], [p1, p2, p3, p4, p5, p6])) {
      this.constructor7(p1, p2);
    } else if (this.validateParameters([Vector, Vector], [p1, p2, p3, p4, p5, p6])) {
      this.constructor8(p1, p2);
    } else if (this.validateParameters(["number", "number", "number", "number", "number", "number"], [p1, p2, p3, p4, p5, p6])) {
      this.constructor9(p1, p2, p3, p4, p5, p6);
    }
  }

  private constructor1(x1: number, x2: number, x3: number) {
    this.p1 = 0;
    this.p2 = 0;
    this.p3 = 0;
    this.q1 = x1;
    this.q2 = x2;
    this.q3 = x3;
  }

  private constructor2(P: Point) {
    this.p1 = 0;
    this.p2 = 0;
    this.p3 = 0;
    this.q1 = P.x1;
    this.q2 = P.x2;
    this.q3 = P.x3;
  }

  private constructor3(Ps: Point, q1: number, q2: number, q3: number) {
    this.p1 = Ps.x1;
    this.p2 = Ps.x2;
    this.p3 = Ps.x3;
    this.q1 = q1;
    this.q2 = q2;
    this.q3 = q3;
  }

  private constructor4(p1: number, p2: number, p3: number, Pe: Point) {
    this.p1 = p1;
    this.p2 = p2;
    this.p3 = p3;
    this.q1 = Pe.x1;
    this.q2 = Pe.x2;
    this.q3 = Pe.x3;
  }

  private constructor5(Ps: Point, Pe: Point) {
    this.p1 = Ps.x1;
    this.p2 = Ps.x2;
    this.p3 = Ps.x3;
    this.q1 = Pe.x1;
    this.q2 = Pe.x2;
    this.q3 = Pe.x3;
  }

  private constructor6(p1: number, p2: number, p3: number, V: Vector) {
    this.p1 = p1;
    this.p2 = p2;
    this.p3 = p3;
    this.q1 = p1 + V.q1;
    this.q2 = p2 + V.q2;
    this.q3 = p3 + V.q3;
  }

  private constructor7(Ps: Point, V: Vector) {
    this.p1 = Ps.x1;
    this.p2 = Ps.x2;
    this.p3 = Ps.x3;
    this.q1 = Ps.x1 + V.q1;
    this.q2 = Ps.x2 + V.q2;
    this.q3 = Ps.x3 + V.q3;
  }

  private constructor8(Vs: Vector, V: Vector) {
    this.p1 = Vs.q1;
    this.p2 = Vs.q2;
    this.p3 = Vs.q3;
    this.q1 = Vs.q1 + V.q1;
    this.q2 = Vs.q2 + V.q2;
    this.q3 = Vs.q3 + V.q3;
  }

  private constructor9(p1: number, p2: number, p3: number, q1: number, q2: number, q3: number) {
    this.p1 = p1;
    this.p2 = p2;
    this.p3 = p3;
    this.q1 = q1;
    this.q2 = q2;
    this.q3 = q3;
  }

  private validateParameters(pattern: any[], args: any[]) {
    return args.every((arg, index) => {
      if (arg === pattern[index]) {
        return true;
      } else if (typeof arg === pattern[index]) {
        return true;
      } else if (typeof pattern[index] === "function" && arg !== undefined && arg instanceof pattern[index]) {
        return true;
      } else {
        return false;
      }
    });
  }
}

So if you want to write the constructor implementation you have to make a single constructor and check which parameters have been provided and this can get very confusing if you don't just have two or three parameters, but more like in this example. Writing implementations for each constructor would be way more readable, so why doesn't typescript support this, since it's a not very far fetched feature?

It's not clear the extent to which people will accept runtime introspection to dispatch overloads. People often have differing opinions on what sort of check is appropriate in different places. Is it complete structural compatibility? Should instanceof be used?
See #3442 for an issue which proposed this. The TL;DR is given by @mhegazy in that we don't do any sort of type-driven code generation. Ideally this could be a custom transformation in the future.

Thanks @DanielRosenwasser. If I get the mentioned issue right, it totally would be possible, but would break typescript's design goals so it won't be implemented.
I'm sad, since I share the opinion of @jhchen or @AlicanC @ToastHawaii.


[3.2.2] Bullet crashes when a RigidBody's collision shape is changed just before the RigidBody is removed from the scene.

Godot version:
3.2.2
OS/device including version:
Linux/X11 (Linux Mint 20)
Issue description:
When changing a RigidBody's collision shape just before removing it from the scene, it crashes the engine.
Here is the backtrace:
handle_crash: Program crashed with signal 11
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7fc9338be210] (??:0)
[2] SpaceBullet::get_gravity_magnitude() const (/home/drwhut/godot/modules/bullet/space_bullet.h:176)
[3] RigidBodyBullet::reload_space_override_modificator() (/home/drwhut/godot/modules/bullet/rigid_body_bullet.cpp:910)
[4] RigidBodyBullet::dispatch_callbacks() (/home/drwhut/godot/modules/bullet/rigid_body_bullet.cpp:385)
[5] SpaceBullet::flush_queries() (/home/drwhut/godot/modules/bullet/space_bullet.cpp:370 (discriminator 2))
[6] onBulletPreTickCallback(btDynamicsWorld*, float) (/home/drwhut/godot/modules/bullet/space_bullet.cpp:559)
[7] btDiscreteDynamicsWorld::internalSingleStepSimulation(float) (/home/drwhut/godot/thirdparty/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp:462)
[8] btSoftRigidDynamicsWorld::internalSingleStepSimulation(float) (/home/drwhut/godot/thirdparty/bullet/BulletSoftBody/btSoftRigidDynamicsWorld.cpp:91)
[9] btDiscreteDynamicsWorld::stepSimulation(float, int, float) (/home/drwhut/godot/thirdparty/bullet/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp:435 (discriminator 2))
[10] SpaceBullet::step(float) (/home/drwhut/godot/modules/bullet/space_bullet.cpp:378)
[11] BulletPhysicsServer::step(float) (/home/drwhut/godot/modules/bullet/bullet_physics_server.cpp:1565 (discriminator 2))
[12] Main::iteration() (/home/drwhut/godot/main/main.cpp:2086)
[13] OS_X11::run() (/home/drwhut/godot/platform/x11/os_x11.cpp:3265)
[14] /home/drwhut/godot/bin/godot.x11.tools.64(main+0x125) [0x14196db] (/home/drwhut/godot/platform/x11/godot_x11.cpp:57)
[15] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7fc93389f0b3] (??:0)
[16] /home/drwhut/godot/bin/godot.x11.tools.64(_start+0x2e) [0x14194fe] (??:?)
-- END OF BACKTRACE --

Cause: I was going to try and make a pull request to fix this, but I don't feel that I know the physics engine well enough to try and fix it. But I think I may have found the culprit for anyone who wishes to try and fix this themselves in the hopes it will help:
By changing the collision shape, the following series of functions are called:

ShapeBullet::notifyShapeChanged()
RigidCollisionObjectBullet::shape_changed(int p_shape_index)
RigidBodyBullet::reload_shapes()
RigidBodyBullet::reload_body()
SpaceBullet::add_rigid_body(RigidBodyBullet *p_body)
RigidBodyBullet::scratch_space_override_modificator()

The last function sets a property of the rigid body, isScratchedSpaceOverrideModificator, to true. Because of this property being set to true, at rigid_body_bullet.cpp:379 the if statement returns true and it runs reload_space_override_modificator(). But because the rigid body has been removed from the scene, I assume that is why the space property at this point is NULL, but reload_space_override_modificator() relies on space to work.
Steps to reproduce:

Get two rigid bodies to collide, and detect each other colliding with the _body_entered signal.
Upon collision, get one of them to change it's collision shape, then remove itself from the scene.

Minimal reproduction project:
RigidBodyBugMinimal.zip

Confirmed in 3.2.2 and also 3.1 and 3.0.6 so it's not new.

I can reproduce it on master too, with a different callstack:
 godot.windows.tools.64.exe!abort() Line 77	C++
 	[External Code]
 godot.windows.tools.64.exe!btCollisionWorld::updateSingleAabb(btCollisionObject * colObj) Line 158	C++
 godot.windows.tools.64.exe!btCollisionWorld::updateAabbs() Line 212	C++
 godot.windows.tools.64.exe!btCollisionWorld::performDiscreteCollisionDetection() Line 229	C++
 godot.windows.tools.64.exe!btDiscreteDynamicsWorld::internalSingleStepSimulation(float timeStep) Line 475	C++
 godot.windows.tools.64.exe!btSoftRigidDynamicsWorld::internalSingleStepSimulation(float timeStep) Line 91	C++
 godot.windows.tools.64.exe!btDiscreteDynamicsWorld::stepSimulation(float timeStep, int maxSubSteps, float fixedTimeStep) Line 435	C++
 godot.windows.tools.64.exe!SpaceBullet::step(float p_delta_time) Line 363	C++
 godot.windows.tools.64.exe!BulletPhysicsServer3D::step(float p_deltaTime) Line 1553	C++
 godot.windows.tools.64.exe!Main::iteration() Line 2178	C++
 godot.windows.tools.64.exe!OS_Windows::run() Line 627	C++
 godot.windows.tools.64.exe!widechar_main(int argc, wchar_t * * argv) Line 161	C++
 godot.windows.tools.64.exe!_main() Line 183	C++
 godot.windows.tools.64.exe!main(int _argc, char * * _argv) Line 195	C++

Minimal repro project ported to 4.0:
RigidBodyBugMinimal-4.0.zip

@pouleyKetchoupp The crash on master is a separate issue (which looks like a Bullet issue not a Godot issue) and needs it own issue, because it happens even with #40308.

@madmiraal Added #40311 for the crash on master.


Glide () seconds to (x), (y)

We need to implement this.

How is this different from the mySprite.glide() that we already have implemented?

This glides to the coordinates over a set amount of time. So it would take blank amount of seconds to get there.

That's exactly how glideTo() works right now:
mySprite.glideTo(x, y, time)
mySprite.glideTo(otherSprite, time)

Oh, well that isn't included in the docs.

Oh, thanks for letting me know. I'll add it to the docs as soon as
possible.
On Sat, Feb 25, 2017 at 7:35 PM Baran Skistad<EMAIL_ADDRESS>wrote:

Oh, well that isn't included in the docs.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Scratch-JS/Scratch-JS/issues/29#issuecomment-282523313,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGck4nVx9Dm4Z3rUb8hryHnr_OYTm23Mks5rgMjBgaJpZM4MMMEu
.

K.


koord-descheduler: the reservation created during migration skips the original node

Ⅰ. Describe what this PR does
The Reservation created by the migrationController of koord-descheduler may be scheduled to the node where the migrated Pod is located. Although this is the most suitable node from the perspective of the scheduler, it is not suitable from the perspective of descheduling. Therefore, when migrating The created Reservation should skip the original node.
When creating a Reservation, skipped terms will be added to each required term in the original Pod.Spec.Affinity.NodeAffinity to ensure that any condition will not be dispatched to the original node.

Ⅱ. Does this pull request fix one issue?
fix #1114

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[x] I have written necessary docs and comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in make test

/lgtm

/approve