SSR fails when split code

Version
2.5.16
Reproduction link
https://github.com/vincent-yao27/vue-ssr-bug
Steps to reproduce

Create a project with vue-cli 3.
Set up SSR.
Use import('path/to/component.vue') to split code.
Build server bundle.
Start a server to render the pages.

// vue.config.js

const SSRServerPlugin = require('vue-server-renderer/server-plugin')
const nodeExternals = require('webpack-node-externals')

module.exports = {
	configureWebpack: {
		entry: './src/entry-server',
		target: 'node',
		devtool: 'source-map',
		output: {
			libraryTarget: 'commonjs2'
		},
		externals: nodeExternals({ whitelist: /\.css$/ }),
		optimization: {
			splitChunks: false
		},
		plugins: [new SSRServerPlugin()],
	}
}

// router.js

import Vue from 'vue'
import Router from 'vue-router'
import About from './views/About.vue'

Vue.use(Router)

export function createRouter() {
  return new Router({
    mode: 'history',
    routes: [
      {
        path: '/',
        name: 'home',
        component: () => import('./views/Home.vue')
      },
      {
        path: '/about',
        name: 'about',
        component: About
      }
    ]
  })
}

// main.js

import Vue from 'vue'
import App from './App.vue'
import { createRouter } from './router'

Vue.config.productionTip = false

export function createApp() {
  const router = createRouter()

  const app = new Vue({
    router,
    render: h => h(App)
  })

  return { app, router }
}

// entry-server.js

import { createApp } from './main'

export default (context) => new Promise((resolve, reject) => {
	const { app, router } = createApp()

	router.push(context.url)

	router.onReady(() => {
		const matchedComponents = router.getMatchedComponents()
		if (!matchedComponents.length) {
			return reject({ code: 404 })
		}
		resolve(app)
	}, reject)
})

// server.js

const express = require('express')
const { createBundleRenderer } = require('vue-server-renderer')

const app = express();
const bundle = require('./dist/vue-ssr-server-bundle.json')

const renderer = createBundleRenderer(bundle, {
	runInNewContext: false,
})

app.get('*', (req, res) => {
	const context = { url: req.url }
	renderer.renderToString(context, (err, html) => {
		if (err) console.error(err)
		res.end(html)
	})
})

app.listen(3000)

What is expected?
Render path /, /about successfully.
What is actually happening?

Get ReferenceError: document is not defined when path / is rendered.
Render path /about successfully.
After deleting configureWebpack.optimization.splitChunks in vue.config.js, it shows an Error: Server-side bundle should have one single entry file. Avoid using CommonsChunkPlugin in the server config during building.

system: OS X 10.11.6
node: 8.11.3
vue-server-renderer: 2.5.16
webpack: 4.15.1

You may want to give https://github.com/eddyerburgh/vue-cli-ssr-example a look. You need to selectively apply some options to the webpack config depending on what part of the app you're bundling.
Also, this is more of a help question 😄

@posva Thanks for your reply. 😄 But I have already studied https://github.com/eddyerburgh/vue-cli-ssr-example completely before, finding that the same error occurs after I fixing the building errors and using import() to split the code.

@posva When I used npm run build inside vue-cli-ssr-example, I got TypeError: Cannot read property 'eslint' of undefined and Error: Server-side bundle should have one single entry file. Avoid using CommonsChunkPlugin in the server config., which were fixed by adding webpack.LoaderOptionsPlugin and splitChunks: TARGET_NODE ? false : undefined. Then it worked like a charm until I replaced the directly-imported HelloWorld component with a () => import('./components/HelloWorld.vue') one in both router.js and App.vue to split the code.

I tested that and it worked

It's weird that yarn-workspaces-installed one had build errors while npm-installed one didn't have. 😓
However, after I using () => import('./components/HelloWorld.vue') in BOTH router.js and App.vue to make the code ACTUALLY SPLIT, ReferenceError: document is not defined showed again on SERVER console when I VISIT the site started by npm start.
Did you had 3 js files in dist/js, one of which is named 0.***.js, and got no error when the server's rendering it?

@posva https://github.com/vincent-yao27/vue-cli-ssr-example this is the modified one, run npm start and visit site then the error will occur.

I have the same problem @vincent-yao27 , did you find the solution ?

I think the problem come from css chunk, but I'm not sure ...

@zickat Sadly, nope, I don't have any clue. 😢I think it's due to css chunk as well. I tried to config extractCSS: true but it gave me another Error: render function or template not defined in component: anonymous.
I think an issue can be raised in mini-css-extract-plugin.

I forgot to say that you may want to give https://github.com/Akryum/vue-cli-plugin-ssr a look 🙂

please try webpack 4 and mini-extract-css-plugin
export default [
  {
    path: '/',
    component: () => import(/* webpackChunkName: "index" */ '../views/index.vue')
  },
  {
    path: '/login',
    component: () => import(/* webpackChunkName: "login" */ '../views/login.vue')
  }
]

you will find this problem  "document is not defined" and see the content of vue-ssr-server-bundle.json  has some  document

I have the same error while using https://github.com/Akryum/vue-cli-plugin-ssr. Also I've realized that the problem is that the content of mini-extract-css-plugin is inside vue-ssr-server-bundle.json

@yekver or @vincent-yao27 did you ever overcome this issue?  We're on vue cli 3.0.3 and haven't seen how to solve this.

I'm also interested on solve this situation... :)
For reference.

I switched to https://github.com/Akryum/vue-cli-plugin-ssr code splitting is working well now for me

Thanks @zickat, but I dont want to change my code base into this plugin, which might work, but to solve it in my current setup (see my comment if you wanna check for your self how this is).

chainWebpack: config => {   if (process.env.NODE_ENV === 'production') {     config.optimization.delete('splitChunks')   } }
This is a simple option

Can confirm @Gef 's comment - running config.optimization.delete('splitChunks') when we're on the node side of things solved this under vue cli 3.

参考我的vue.config.js 配置文件
SSR真是坑，足足被坑了几个小时才解决
一直在报
Error: Server-side bundle should have one single entry file. Avoid using CommonsChunkPlugin in the server config.
解决方法：
注意我的第46行配置为：
splitChunks: TARGET_NODE ? false : undefined
node环境下必须将splitChunks才不报错
完整vue.config.js文件
`//webpack 服务端、客户端插件
const VueSSRServerPlugin = require('vue-server-renderer/server-plugin')
const VueSSRClientPlugin = require('vue-server-renderer/client-plugin')
// 优化相关
const nodeExternals = require('webpack-node-externals')
// 合并相关
const merge = require('lodash.merge')
// 环境变量：决定入口是客户端还是服务端
const TARGET_NODE = process.env.WEBPACK_TARGET === "node"
const target = TARGET_NODE? "server": "client"
module.exports = {
css: {
    extract: false
},

// 根据服务器或者客户端，编译到不同文件夹
outputDir: './dist/'+target,

configureWebpack: ()=>({
    // 将entry指向应用程序的 server/client 文件
    entry: `./src/entry-${target}.js`,
    // 对 bundle renderer 提供 source map支持
    devtool: 'source-map',
    // 这运行 webpack 以 Node 适用方式处理动态导入（dynamic import）
    // 并且还会在编译 Vue 组件时告知 'vue-loader' 输出面向服务器代码（server-oriented code）
    target: TARGET_NODE? 'node' : 'web',
    node: TARGET_NODE? undefined : false,
    output: {
        // 此处告知 server bundle 使用Node风格导出模块
        libraryTarget: TARGET_NODE ? "commonjs2" : undefined
    },
    //外置化应用程序依赖模块。可以使服务器构建速度更快，并生成较小的bundle文件
    externals: TARGET_NODE
        ? nodeExternals({
            // 不要外置化webpack  需要处理的依赖模块
            // 可以在这里添加更多的文件类型。例如，未处理 *.vue 原始文件
            // 你还应该将修改 `global` （例如 polyfill）的依赖模块列入白名单
            whitelist: [/\.css$/]
        })
        : undefined,
    optimization: {
        splitChunks: TARGET_NODE ? false : undefined
    },
    // 这是将服务器的整个输出构建为单个JSON文件的插件
    // 服务端默认文件名为 `vue-ssr-server-bundle.json`
    plugins: [TARGET_NODE? new VueSSRServerPlugin(): new VueSSRClientPlugin()]
}),

chainWebpack: config => {
    config.module
        .rule('vue')
        .use('vue-loader')
        .tap(options => {
            merge(options, {
                optimizeSSR: false
            })
        })
}

}
`

css: {
extract: false
}
加上这个就可以了。


Trains did not show up

Trains did not show up in Ystad at 11:58.

Create a console app and query for that departure and see what is wrong in our interpretation

Temporary system error


Include the user-agent announced by WebView when detecting isSafari

All iOS apps have to use the same WebView that's provided by Safari (through WebKit), so the user-agent is mostly made up but the user-agents would include AppleWebKit/Version in them by default.
This change includes AppleWebKit when detecting if a client is Safari or not, with some example user agents for future reference.

Hmm, sorry, never mind. This will is not appropriate as is because desktop browsers would also have AppleWebKit in them. The end-user should be using isSafari() || isIPhone() instead of relying on AppleWebKit


make a note about how to use the docker containers in podman and galaxy

...also slightly generalizing the container contents.

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

Comparison is base (bf57be9) 79.25% compared to head (23c522b) 79.25%.

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #83   +/-   ##
=======================================
  Coverage   79.25%   79.25%
=======================================
  Files          20       20
  Lines         617      617
=======================================
  Hits          489      489
  Misses        128      128

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


Adding generic filetype support

This is almost exactly what I'm looking for. I deal with X12 EDI quite a bit and having a grammer to assist is awesome. I'm wondering if adding an action that allows you to take the current document and make is Syntax Highlighted would be useful.  It would be awesome if I could do a cmd+shift+p -> Hightlight X12 would be a good addition. I could assist in making it but im really asking if others would find it useful.

Just noticed the prettify command...nice


[Shape] Breaks When Other Transitions Present

I have an button in a shape and when it's clicked, I flip up the shape. But the problem is the button has an transition animation when you move your mouse on it or out of it (e.g. background-color, opacity and etc.). This transition as a result will fire a transitionend event which will be considered as the end of the shape animation by semantic, because semantic does no judgement.
You can have a try: http://jsfiddle.net/efp8z6Ln/177/ . Just click the button and move your mouse out of it quickly.
I can only add something like the following code to make it work correctly:
https://github.com/7nights/Semantic-UI/commit/0e3b211985d2dcff4db028e8e80fac29f231e93c

Thanks this seems pretty clear. Added to the queue.

I confirmed that this fixes the problem. Can we get this fix in the next version?

Afaict this issue (and likely, #4782 too) lives on, unresolved up till the, as of this writing, latest<EMAIL_ADDRESS>Contra-indications to the above statement however would be that:

the issue is especially apparent in Chrome (60.0.3112.90), only seen sporadically in Safari (10.1.2) and (afaict) absent in firefox (54.0.1) (all @ mac osx)
only the first flip over on a particular .shape seems affected; any successive invocation would seem to complete just fine.

That being said, invoking a delay of 300ms does appear to mitigate the problem into non-existence.

Is there any confirmation that this has been fixed yet?

@fpayer; not as far as I can tell from this thread...

Implemented the suggested fix for Fomantic-UI in https://github.com/fomantic/Fomantic-UI/pull/465
See http://jsfiddle.net/0yf8hvm1/


Added few more emojis

Couple of more Emojis.

Thanks for the contribution!

Can you add comments for all of the emojis like you did for the last one?
I've never heard of using 💉 as "prick". Is that well known?

Hi,
Added comments. Not sure if Prick is used often but at my work it does :)

Let's leave out 💉 because its usage is typically innocuous.
Can you make the comments look like this and squash the commits?
"1f595": ["insult"] # middle finger
"1F4A9": ["inappropriate"] # poo

The code looks perfect -- can you squash your commits into 1 commit so I can accept this PR?

It looks like lib/swearjar.rb was accidentally changed, and the commits still need to be squashed into 1 commit. Would you like some help with the Git commands?

Yes. What I tried to recommit and then I noticed the white spaces that I
didn't add at all. Looks normal on my machine but then when I pushed it
showed I changed a whole lot. Confused on what happened.
On Sat, May 14, 2016, 5:32 PM Michael Foley<EMAIL_ADDRESS>wrote:

It looks like lib/swearjar.rb was accidentally changed, and the commits
still need to be squashed into 1 commit. Would you like some help with the
Git commands?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/joshbuddy/swearjar/pull/12#issuecomment-219252746

I would suggest this:

Run the command: git rebase -i 6da45fc. The "interactive rebase" file will open in your text editor.
On the last line (0acebc8) change pick to drop.
Aside from the first line (6da45fc) change every other pick to squash.
Save & quit.

I hope I did it correctly

There are now 2 commits, so you need to squash it again into 1 commit. I think I made a mistake in the directions I gave you before.

git rebase -i 86bcdb8
Change the last pick to squash.
Write & save the commit message (maybe, "Add poo emoji")
git push -f

Am i supposed to commit? i am lost in this haha. But i pushed it with the same message.

Looks great. The commit message needs to be rewritten to be more succinct though. Just run git commit --amend to rewrite your most recent commit, and git push -f again.

 Try it again and remove those superfluous lines.

Since this hasn't been updated in a month, I will edit the commit message myself and preserve the authorship of the commit.

Oops, I left this PR open for a while. This was fixed via cd1714a.


Set evm_version to 'paris'

Description
Because there is at least one contract whose solc version is ^0.8.17 and ^0.8.0 we must consider that someone can use this library in its own project and compile it using solc version 0.8.20 or above. The problem is that since solc version 0.8.20 the default evm_version is set to 'shanghai' to support the PUSH0 - newly added opcode to the Ethereum blockchain.
To prevent this from happening, we set evm_version manually to 'paris' in the config file.

This compiles alright but shouldn't there be an error since 0.8.17 doesn't have paris ?
https://docs.soliditylang.org/en/v0.8.17/using-the-compiler.html#setting-the-evm-version-to-target


test

launch jenkins

Hi there, this is jenkins continuous integration...
Do you want me to verify this patch?

launch jenkins

launch jenkins

launch jenkins

launch jenkins

launch jenkins


Does Prism offers the possibility to add a proprietary language or create a custom tokenizer ?

Hello everyone, while I was searching for a code editor library to use for my website I found many libraries which makes use of Prism, what I later found out was that many of these support the languages supported by Prism.
So at this point what I had to do is creating a custom tokenizer of this private language and connect it to Prism ( and its css/themes).
All sounds easy and great in my mind, but I'd like to know if such a feature could be implemented and if it's possible I'd like to know how to connect the css and manage it?
Edit#: I'm asking this question mainly because I've seen devs creating and improving official programming languages, like C#,C++,JS,etc... And I was wandering if its possible with custom languages?
Thank you for your time.

It depends.
Prism is designed to be modular, adding new languages is possible. This guide will tell you how to do it (you can ignore the "add some tests" and "add an example" parts).
After that is done, you start a local server and use your local version of Prism's download page to make a custom build with your language. (Prism will treat your custom language like any other.)
If you (or the library you're using) imports Prism via npm, it's more tricky.
You could fork this repo, add your language to the fork, and then explicitly tell npm to use your fork's version of Prism. (I think that's possible, but I'm not sure.)

Languages themselves don't have any CSS, they just use classes defined by a specific theme, so I don't know what you mean by "its css" but you can change the themes themselves of course.

Thank you so much for all the help. I'm starting right away!


Allow to override the project/product/module properties for building

We need to add an ability for the user to override the properties on the fly, like how to is is implemented in QtCreator. Then, when any property where changed, we need to thart auto-resolving for the project.

Done with the following features:

All overridden properties are stored in the overridden-properties.json file.
To show and edit this file need to call the Override Project Properties command from the palette.


[Draft] Support mixed model for RandomForestClassificationModel

This PR implemented cpu() to convert Cuml RandomForestClassificationModel to Spark RandomForestClassificationModel, and a simple test to predict a single instance can pass. Still, this PR needs to be refactored.
For simplicity, This PR just returned the model JSON string (for CPU inference) alongside the model bytes (for GPU inference), but it increases the bandwidth when collecting from executor to driver which may cause perf issue. We need to find a way to combine them.
There's some difference between Cuml RandomForestClassificationModel and Spark RandomForestClassificationModel.

Cuml RandomForestClassificationModel doesn't include GiniStat in the InternalNode
Cuml RandomForestClassificationModel uses probability as the leaf value, while Spark RandomForestClassificationModel uses stats (how many instances each label contains), but we can convert the probs to the stats.
Cuml RandomForestClassificationModel doesn't have impurity information, but we can calculate it according to the leaf value.

For simplicity, This PR just returned the model JSON string (for CPU inference) alongside the model bytes (for GPU inference), but it increases the bandwidth when collecting from executor to driver which may cause perf issue. We need to find a way to combine them.

Wonder if you can avoid serializing the model JSON string by just using treelite.dump_as_json() on the driver side, after collecting the trees from the executors.  Not sure if that JSON format is compatible/sufficient, but it would avoid serializing the model essentially twice (in treelite and JSON formats).

build

For simplicity, This PR just returned the model JSON string (for CPU inference) alongside the model bytes (for GPU inference), but it increases the bandwidth when collecting from executor to driver which may cause perf issue. We need to find a way to combine them.

Wonder if you can avoid serializing the model JSON string by just using treelite.dump_as_json() on the driver side, after collecting the trees from the executors. Not sure if that JSON format is compatible/sufficient, but it would avoid serializing the model essentially twice (in treelite and JSON formats).

Thx @leewyang, it seems that cuML model is not compatible with treelite model.
treelite_json = cu_rf.convert_to_treelite_model().dump_as_json()
AttributeError: 'cuml.fil.fil.TreeliteModel' object has no attribute 'dump_as_json'

Wonder if this might be useful: https://github.com/rapidsai/cuml/issues/3853
Sounds like it'd require an extra serialize/deserialize to disk to get it to the actual treelite model class, but presumably this would only need to be done on the driver.

Wonder if this might be useful: rapidsai/cuml#3853 Sounds like it'd require an extra serialize/deserialize to disk to get it to the actual treelite model class, but presumably this would only need to be done on the driver.
Otherwise, LGTM. (Also, pls remove "[DRAFT]" if ready for review).

Really good, Seems we can just return the json strings of treelite in the executor side according to the example of that PR.  Great. Thx, I will file a follow up for it.

build

build


Issue with .get_timestamp() for frame synchronization

Required Info

Camera Model
D415

Firmware Version
<IP_ADDRESS>

Operating System & Version
Debian

Kernel Version (Linux Only)
5.3

Platform
PC

SDK Version
2

Language
C++

Segment
Robot

Issue Description
I want to synchronize poses from a T265 using interpolation of reported data in combination with the the timestamps of both devices.
When I look at the metadata in the realsense viewer, the data is reported fine and even seems to be in Global Timestamp mode by default.

When I try calling the .get_timestamp() function for a depth frame, an error is returned. The function call for the pose frame works fine and seems to report correct data.
RealSense error calling rs2_get_frame_timestamp(frame_ref:nullptr):
    null pointer passed for argument "frame_ref"

I've looked around and found the CMake flag ENFORCE_METADATA, but that seems to be for Windows systems, or I may have misread something.

Hi @Erandurthil
The error above corresponds to calling get_timestamp on an empty or uninitialized frame. Please check your application logic. You can check if the frame is valid like this - if (frame) ts = frame.get_timestamp()

Oh then that's my bad probably I'll check my code again, Thanks !


SAK-28032 Depend on master spring and common-logging versions

The blackboard parser was incorrectly depending on an old version of Spring and commons-logging. It should be pulling these versions from master.

+1 Good catch!

Thanks @teetoppz28


Improve and fix *Spline docstrings and code

During the investigation of the issue #9718 I've discovered a few possibilities for both improvements and fixes in the documentation of different *Spline classes in
https://github.com/scipy/scipy/blob/master/scipy/interpolate/fitpack2.py
I create this issue mainly because it seems to me that it'll be (and must be) more general than #9718
The things below will be mostly about RectBivariateSpline class
Things that came into mind:

In BivariateSpline class, as far as I understand,  RectBivariateSpline should be added to the end of the sentence, because it subclasses BivariateSpline
https://github.com/scipy/scipy/blob/b818978f3580e05a3885006cae337f28bd2aaf7d/scipy/interpolate/fitpack2.py#L931-L933
Docstring of RectBivariateSpline containes a few more inconsistencies: e.g. tx, ty in here: https://github.com/scipy/scipy/blob/b818978f3580e05a3885006cae337f28bd2aaf7d/scipy/interpolate/fitpack2.py#L1149-L1152
although they do not appear in init:
https://github.com/scipy/scipy/blob/b818978f3580e05a3885006cae337f28bd2aaf7d/scipy/interpolate/fitpack2.py#L1169
I have a feeling that "See Also" sections in different Spline's might be more... broad? Consistent? There's not so many of that classes, so why not to mention them all, or at least ensure that if A -> B and A -> C (-> means subclassing), then B mentions C in "See Also" and vice versa?
I've got a feeling that two last checks of these 4 are redundant, but I'm not sure
https://github.com/scipy/scipy/blob/b818978f3580e05a3885006cae337f28bd2aaf7d/scipy/interpolate/fitpack2.py#L1171-L1178
Problem with #9718 remains for now, but I'm working on it

If this issue "makes sense" to some of the members, I suggest closing #9718 in favor of this one.

Thank you, @erheron, a thorough review of this and related docs would be great.  All the inconsistencies you noted should definitely be addressed.


fix: extracting snippets cause large spike in file system access

The parallel execution of withDependencies inside allTypeScriptSnippets caused a large spike in access to the file system. On systems with only a low number of available file descriptors, this will cause transliteration to fail.
Downstream tools usually run transliteration once and cache the results for additional runs. For example when converting individual submodules of an assembly. When transliteration fails, caches cannot be written, which ultimately leads to extremely long and still failing execution times for these tools.
This change causes a moderate slow-down of factor 1.03 ± 0.14 compared to previous code (see benchmark). To resolve the issue, this is acceptable. During debugging I noticed a number of potential future performance improvements, including (re-)introducing parallelism but configurable.

Performance Benchmark
Benchmark 1: current
  Time (mean ± σ):     55.860 s ±  5.278 s    [User: 66.506 s, System: 24.723 s]
  Range (min … max):   51.892 s … 65.035 s    5 runs

Benchmark 2: proposed
  Time (mean ± σ):     57.558 s ±  5.921 s    [User: 62.496 s, System: 24.227 s]
  Range (min … max):   54.599 s … 68.137 s    5 runs

Summary
  current ran
    1.03 ± 0.14 times faster than proposed

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

💚 All backports created successfully

Status
Branch
Result

✅
maintenance/v5.3

✅
maintenance/v5.4

Questions ?
Please refer to the Backport tool documentation and see the Github Action logs for details


[Frontend][MXNet] Add MXNet frontend converter for slice operator

...for both NNVM and Relay. Corresponding tests and error messages for un-supported case added. @icemelon9 @yzhliu

Thanks @haojin2 this is merged.


Improved the help notes of the production front controller

This tries to fix #47

Given that enablign the HttpCache only adds a few more lines but does not remove any of the previous lines, and that the new lines can be grouped together (it is totally fine to require the AppCache class only after instantiating the AppKernel), what about removing the need to comment all previous lines and uncomment the same lines later ? Using the HttpCache only requires adding 2 or 3 lines in the front controller (depending on whether you want to enable the method override or no).
IMO, the current way only makes things harder for the user.

@stof you are right. I've simplified everything in e03d177 following your comments. Thanks.


"legendary mineral deposits" suggestions

Can you improve the collection method?
For example: Collect "Ilmenite" from 8:00 to 10:00 Eorzea time. After the collection is completed, the character will still patrol between the collection points where "Ilmenite" may appear.
If the current version of the plugin itself can solve this problem, please tell me in detail how to set it in the plugin, thank you.
If the current version of the plugin cannot solve it, I have the following improvement suggestions:

Check the game log, when the collection is completed, pause and wait for the next collection point to arrive, or teleport to the next collection point according to Eorzea time.

This is also happening to me for 2 dawntrail leg nodes fine silver ore and ipe log. I would also like to mention that I just sit at the aetheryte leynode pyro for the leg node blackseed cotton ball until its time for the next node which is harmonite ore in the same zone at aetheryte leynode aero.


Configure all/Bind all

The configuration dialog needs a 'Bind all inputs' that go through all the inputs in a timed manner, if the timer runs out, unassigned input. will make much easier and quicker to configure new gamepads.

Added to v1.8


Role not appearing against the user after tagging, also same user is not appearing under the team structure

Affected module
UI
Describe the bug
No role is appearing against the user, though role is already tagged.
Because of this issue, the user is also not appearing against the team, though already joined
To Reproduce
Screenshots
role not appearing against the user

role already appearing if we go inside

the below screen shows 3 users

but inside, it doesnot show any user

Expected behavior

OpenMetadata version: [e.g. 13.2

Additional context
Add any other context about the problem here.

@lailapatel is this still an issue?

@sureshms this one got resolved when we added all teams in the hierarchy against the user (like Department, Division, Group )
e.g. if User A is a part of Group c, then we added 4 teams in the hierarchy against the user, like Business Unit A-> Department A-> Division A -> Group C
Need your assistance for the other issue related to Data Steward Role for deleting and editing test - Ticket 10859

Thanks, @lailapatel
Closing this.


Support for selection and filter on no-dictionary columns

Preliminary changes to support filters and selection on no dictionary columns. As of now, only EqualsPredicateEvaluator is supported. Submitting this to get early feedback. Will add support for all datatypes and predicate types in the next update.

Added another commit to the PR to complete the feature across all predicates for all data types.

Enhanced predicates (NotEquals, In, NotIn and Range) to support
no-dictionary based predicate evaluation.

Added support selection queries with no-dictionary indices.

Added unit test for all no-dictionary based predicate evaluators for
all supported data types.

Codecov Report

Merging #1219 into master will decrease coverage by 0.04%.
The diff coverage is 71.42%.

@@            Coverage Diff             @@
##           master    #1219      +/-   ##
==========================================
- Coverage   67.01%   66.96%   -0.05%
==========================================
  Files         768      761       -7
  Lines       36849    37214     +365
  Branches     4737     4884     +147
==========================================
+ Hits        24693    24920     +227
- Misses      10523    10646     +123
- Partials     1633     1648      +15

Impacted Files
Coverage Δ

...e/io/reader/BaseSingleColumnSingleValueReader.java
6.25% <ø> (+0.36%)
:arrow_up:

...ection/iterator/StringSelectionColumnIterator.java
0% <0%> (ø)

...n/pinot/core/query/selection/SelectionFetcher.java
59.67% <0%> (-1.99%)
:arrow_down:

.../io/reader/impl/v1/FixedByteSingleValueReader.java
0% <0%> (ø)
:arrow_up:

.../core/operator/filter/ScanBasedFilterOperator.java
72.22% <100%> (ø)
:arrow_up:

...filter/SortedInvertedIndexBasedFilterOperator.java
78.37% <100%> (ø)
:arrow_up:

...kedin/pinot/core/common/predicate/InPredicate.java
75% <100%> (ø)
:arrow_up:

...ore/operator/filter/BitmapBasedFilterOperator.java
88.88% <100%> (ø)
:arrow_up:

...ot/core/operator/filter/StarTreeIndexOperator.java
87.04% <100%> (+0.06%)
:arrow_up:

...e/operator/dociditerators/SVScanDocIdIterator.java
57.77% <28.57%> (-16.83%)
:arrow_down:

... and 77 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 222827b...3bad785. Read the comment docs.

@Jackie-Jiang Addressed all the comments. You are correct, no-dictionary index is currently not supported for multi-valued columns.


feat: mermaid support

This adds support for mermaid in the apollo theme. It does so by adding in the minified mermaid script, which was taken from https://github.com/kuznetsov17/pico/blob/main/static/js/mermaid.min.js
Closes #81

LGTM! Thanks for the PR!


feat: make webserver timeouts configurable

Closes #630
Signed-off-by: Hai He<EMAIL_ADDRESS>

/test

The issue was abandoned and we should do the same with the PR waiting for a future conversation


Menu window resizes incorrectly after launching the renderer

During regular play of Carnivores: Mandibles, P.Rex encountered an issue where the menu window would be resized to a little over 400x300 which makes it impossible to navigate the menu. This occurred after hunts and visiting the trophy hall.
The issue occurs infrequently and has not been reproduced on my own hardware in over 83 hunts and trophy visits.
Attempts to cause the crash were made with V_D3D.REN bundled with Mandibles at resolution 1280x1024 with DirectSound 3D audio.
Still waiting for P.Rex to give me the exact settings he has.
Mandibles requires a Carnivores 2 menu.

Scheduled for the Release 1.1.4, there is a potential partialfix/workaround for this issue.
if (wParam == VK_F4) { HuntWindowResize(); } was added to the WindowProcedure, so users can press the Function key F4 to force the window to resize correctly.


add href for cryptocurrencies

Thanks for Azure :+1:

A pleasure, Thanks for your commit,
it's been merged and site updated accordingly, will be sharing the update on ANN for Forum records.


apt update issues

So I naively thought that this script will work on my Jetson Xavier NX , guess what, it's killed the boot. Why does it need to change my bootloader and my firmware to install openCV ? How can I fix that ? formating the SD card didn't change anything ...
here is the install log https://pastebin.com/EywverjH

Before you panic, I don't think it's possible to permanently brick your NX (or any Tegra device).
To ensure repeatability, the script updates the system and installs some packages, none of which include a bootloader or anything having to do with the boot flow (read the script if you don't believe me). It looks like your apt configuration (eg. apt lists, foreign architectures) could what may have rendered your system temporarily unbootable, not the script. It would likely have broken at the next update anyway.
I would recommend against setting your system up the same way again. If I had to guess it would have something to do with how TeamViewer was set up. I'd recommend not using that. It is unsupported on aarch64 and setting up foreign architectures has the potential to cause issues like this.
My suggestion if you hadn't already formatted the card would be to back up your files using a SD card reader and a Linux desktop, but that is not possible after a format of the disk.
My suggestion to fix your problem would be to follow these instructions to reflash your SD card and reboot (formatting the card just erases your data).
Please note SDK manager is not required to install any software anymore and I would strongly recommend against it's use in favor of OTA updates. SDK manager installs local apt repositories that take up space and can conflict with OTA packages.

Dear @mdegans  , thank you very much for trying to help, I do appreciate your support.
I written an new image (Jetson Xavier NX Developer Kit SD Card Image) on a brand new micro SD card , and I am still stuck on the same screen when I boot the jetson Xavier NX
"bash: cannot set terminal process group (-1): Inappropriate ioctl for device" , so I believe my only solution is to re-flash with jetpack. The problem is that I don't have a computer under Ubuntu (I have a MacBook pro) , virtual machine are failing the flashing step ... don't know what to try :(

Dear @mdegans , thank you very much for trying to help, I do appreciate your support.
I written an new image (Jetson Xavier NX Developer Kit SD Card Image) on a brand new micro SD card , and I am still stuck on the same screen when I boot the jetson Xavier NX
"bash: cannot set terminal process group (-1): Inappropriate ioctl for device" , so I believe my only solution is to re-flash with jetpack. The problem is that I don't have a computer under Ubuntu (I have a MacBook pro) , virtual machine are failing the flashing step ... don't know what to try :(

My advice would be to ask here, and a Nvidia representative can give you an authoritative answer (or tell you if you have a hardware problem). I just got my NX and so my undestanding what's possible is more limited than with other boards, but I do not believe my script was a (direct) cause of your error. Still, I would like to know if I am wrong becuase if my script did trigger the issue, I want it to modify it so it doesn't happen to others in this particular case. Strange things do happen from time to time.
If you do post a thread, please link to it here so I can follow along.
I did find a thread with your same error on tx2. You might have a look and see if it applies to you as well.
As far as reflashing, yes, virtual machines will not work since the device is ejected midway through the process. Manually using flash.sh may work, however, so you could also update in that thread and ask for the advice of linuxdev who is very familiar with this tool. That being said, it's my undestanding it's just using your board as a sd card writer, so I'm not sure it'll help with devices that have sd cards.

here is the discussion on nvidia forum https://forums.developer.nvidia.com/t/failed-to-boot-cpu-bootloader-is-not-running-on-device/128323/11

@iliesaya
I had this error myself at a recent update, FYI. I believe Nvidia is working on it per this post.
https://forums.developer.nvidia.com/t/jetpack-4-4-l4t-r32-4-3-production-release/140866
Fwiw, It fixed itself after several reboots for me. I have no idea how or why, but it boots now. I'm gonna close this as it appears confirmed as unrelated to the script at this point (it happend to me after an update, but not after the script). If you feel it is related, however, feel free to re-open this.

@iliesaya
It's confirmed that it's an issue with the bootloader update pushed by Nvidia. You were one of the first people to have this issue, if not the first. Fix instructions are here for anybody who might google and find this thread.


create-tauri-app Vite - not working by default

Hello,
I had little problems during the creation of a project with Vite + (React or Vue)

npx create-tauri-app

Error: Cannot find module '/private/tmp/tauri-vite-vue/node_modules/esbuild/install.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:885:15)
    at Function.Module._load (internal/modules/cjs/loader.js:730:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

So, I installed the dependencies of my project and re-execute the initialisation of the project

cd /tmp/tauri-vite-vue
npm i
cd ../ && npx create-tauri-app

Then when I run npm run tauri dev I had this error:
npm ERR! missing script: start

npm ERR! A complete log of this run can be found in:

I add in the scripts section of my package.json:

"start": "vite"

And it works :)

Platform and Versions (please complete the following information):

OS: OSX
Node: v14.17.0
NPM: 6.14.13
Yarn: 1.22.10
Rustc: rustc 1.52.1 (9bc8c42bb 2021-05-09)

what is the output of npx create-tauri-app -v and can you try creating a fresh project with create-tauri-app cause for some reason npx just pulled an old version of create-tauri-app and I had to run the command again for it to get the latest version

The output:

npx create-tauri-app -v
npx: installed 99 in 7.618s
1.0.0-beta.1
```

I installed globally `create-tauri-app`, I have the same version
```
create-tauri-app -v
1.0.0-beta.1
```

For both I have the same issue:
> Error: Cannot find module [...]/node_modules/esbuild/install.js'

I can reproduce it now with node 14 and npm 6, esbuild has been giving us a hard time, will see if we can fix that.

ok :)
About the problem with the missing "start" in package.json. Are we agree I only need to add

"start": "vite"

?

no that's a mis-configuration on our end, will fix that too

This should be fixed in the next release, please re-open if it still happens then.


About a bug with nginx

When your RPC calls URL as an nginx address, the default configuration of nginx automatically ignores the request header that it deems invalid. Then XID placed in the request header may be ignored at this time. This causes the global transaction to roll back without locating and taking effect. At present, my solution is to add HTTP in nginx.conf:
Underscores_in_headers on;
Ignore_invalid_headers off;
Two configurations. I hope you can put this problem in the document or readme to remind users who are using nginx!

发个PR哈

Thanks for your suggestion.


DBAAS-353 to show correct fields for Crunchy DB.

Checking the allowsFreeTrial field to display the fields.
Signed-off-by: Olga Lavtar<EMAIL_ADDRESS>

@tchughesiv can you review and merge this thanks.


Wrong sourcetype on Sonicwall + incorrect format

package/etc/conf.d/conflib/syslog/app-syslog-dell_sonicwall-firewall.conf
Sourcetype needs to be changed to "dell:sonicwall" in order for it to work with the TA that the SC4S docs point to - https://splunkbase.splunk.com/app/6203/
Also, this source defaults to being sent in JSON format, which is not supported by the TA. Customers have to add "SC4S_DEST_DELL_SONICWALL-FIREWALL_SPLUNK_HEC_FMT=none" to have this work with the TA since it's expecting raw format, not JSON.

We need to understand if the requirement is to change the sourcetype, do you mind sharing the anonymised sample

I don't have a sample (customer engagement ended) but if it helps you can download the TA you're linking in the documentation and in props.conf you'll see the sourcetype being set in app-syslog-dell_sonicwall-firewall.conf does not match.

Hi, thanks for reporting this issue. The sourcetype indeed should be fixed to match TA, but regarding JSON messages it is a documented feature that our clients are using so this will not be changed.

closed by #1821


Animated blocks

You can put animated blocks from the erebus in the mob duplicator from industral foregoing but probably works in some other mods also that duplicate mobs
You can also put the mimic crab from fish's undead rising in the mob duplicator

I think it only happens when Exact Copy is on? This option is disable by default in Industrial Foregoing's config.
It is a feature from Industrial Foregoing, because the function is to make a exact copy of the entity.
You can disable Exact Copy in Industrial Foregoing's config. It also has a config for blacklisting entities if i'm not wrong.


Python: Ignore PyCharm settings folder

Reasons for making this change:
PyCharm is very popular IDE in Python community.
I teach Python and every week there is a new group of around 15 people setting up IDE and cloning brand new repo from Github. Currently PyCharm settings folder is included on commit, which renders conflicts on checkouts.
I believe that for sake of simplicity, the new repository should have this folder excluded by default.
If someone knows why, he/she wants to share it, than this person can remove the entry from .gitignore file.
In my experience the majority will benefit from that.
To be honest in 11 years of my Python programming I have never encountered a case, when adding this folder to VCS would be beneficial to product.
Links to documentation supporting these rule changes:

https://stackoverflow.com/a/49238133
https://rider-support.jetbrains.com/hc/en-us/articles/207097529-What-is-the-idea-folder-
(note that the last link is for Rider, but has the same problem)

If this is a new template:

https://www.jetbrains.com/pycharm/

While I fully agree with you they have stated that they will not make that change.  The following PR should fix this in a way that is acceptable to most:
https://github.com/github/gitignore/pull/3451

While I fully agree with you they have stated that they will not make that change.  The following PR should fix this in a way that is acceptable to most:
https://github.com/github/gitignore/pull/3451

We have an existing Global\jetbrains.gitignore that covers more than just this rule.

Closing in favor of https://github.com/github/gitignore/pull/3451


Ivy, cdkVirtualFor experimental (for variable height) issue

Has anyone gotten cdkVirtualFor (experemental branch for the dynamic height children) working with angular 9 (ivy enabled)
i get this error on everything that uses it "Can't bind to 'cdkVirtualForOf' since it isn't a known property of 'ng-container'" (same for divs etc).
it worked perfectly well on angular 8
Details:
experemental branch has been updated to version 9.1.3
angular 9 updated to lateset.
app moduled as
import { ScrollingModule } from '@angular/cdk-experimental/scrolling';
and scrollingmodule is in the imports
i wasnt sure whether i could ask experemental stuff on github but wanted to give it a shot.
thanks

Same issue

Both our dev app and our unit tests are running which Ivy and aren't showing any errors. It seems like you might not have imported the ScrollingModule in the correct place.

It works fine for me when i use '@angular/cdk/scrolling' but if i use the experemental branch to get autosize support i get the error i explained above.

@crisbeto were the test running on '@angular/cdk/scrolling' or on the experemential branch '@angular/cdk-experimental/scrolling'?

Hello! At first glance it looks like you just imported the ScrollingModule from cdk-experimental, but the one for experimental has been removed completely?
Can you please double-check that, or if possible provide a reproduction? I'm closing this in the meanwhile, but we're happy to help if there is more context.


Fix 1146: use the class's get instead of the instance's get

Fixes #1146

Nice.
Let's add 3.11 to the test suites to make sure it's covered?

Ok, added 3.11 and a workaround to skip the tests if js2py does not like the python version. Sadly js2py prints out some bytes string. I don't think capturing and rerouting stdout is worth it just to avoid this output for the rare case where js2py was installed on a python version it doesn't support.

I agree, it's not worth the hassle.


Azure sign in error: "There was a problem loading Azure directories. Failed to fetch"

Describe the bug
When signing in to Azure to add a LUIS or QnA resource, I can successfully sign in (i.e. go through the Azure sign in experience) but when I land back on the modal to choose a resource, I see this error. Pressing the "Back" button and "Next" seem to refresh seems to workaround the issue.
Version
Version:  2.0.0-nightly.245812.dc07be4
Electron: 8.2.4
Chrome: 80.0.3987.165
NodeJS: 12.13.0
V8: 8.0.426.27-electron.0
Browser

[x] Electron distribution
[ ] Chrome
[ ] Safari
[ ] Firefox
[ ] Edge

OS

[x] macOS
[ ] Windows
[ ] Ubuntu

To Reproduce
Steps to reproduce the behavior:

Open a bot.
Go to "Configure" > Development resources"
Press the blue button to "Set up Language Understanding" (or the button to "Set up QnA Maker").
Go through the Azure sign in flow.
When it is successful, see this error message under the "Azure directory" dropdown:

I am able to workaround this by press Back and then Next. I don't know if doing those steps just stalls for time in which the Azure directories can be loaded or if it causes Composer to try again. Either way I'm wondering if there should be some control for refreshing or trying again.
Expected behavior
If I just need to wait for the directories to fetch, then I'd expect to see a progress spinner. If attempt to fetch the directories has failed, but can be retried, I'd expect to see a "Retry" link/button in the error message. Otherwise, a user is likely to think their only option is to cancel the flow and start all over again.
Screenshots

Additional context

(@emivers8 @JaskeeratBedi-cmk - fyi)


Error out when click interactive card button

Hi there,
I wrote up a simple bot which does nothing but an interactive button. I tested using the console, and I am able to see the message in the chat room. However, when I click the button, it spin for a while and then show the error message 'Unable to contact. Try again later.'
I am expecting the CARD_CLICKED event to be trapped by the console log statement. However, there is no such entry in the log. Is there anything I missed in the configuration?
const axios = require('axios');
const url = [CHAT_ROOM_WEBHOOK];

function createCard() {
    return {
        'cards': [{
            'sections': [{
                'widgets': [{
                    'buttons': [{
                        'textButton': {
                            'text': 'Grab it',
                            'onClick': {
                                'action': {
                                    'actionMethodName': 'snooze'
                                }
                            }
                        }
                    }]
                }]
            }]
        }]
    };
}

/**
 * Responds to any HTTP request.
 *
 * @param {!express:Request} req HTTP request context.
 * @param {!express:Response} res HTTP response context.
 */
exports.main = (req, res) => {
    console.log(JSON.stringify(req.body));
    const card = createCard(req.body);
    axios
        .post(url, card)
        .then(response => {
            res.status(200).send(card);
        })
        .catch(error => {
            res.status(500).send(error);
        });
};

Please help.

This issue tracker is for reporting bugs in our sample code. For general developer support please see the options listed here:
https://developers.google.com/hangouts/chat/support

Thanks for your comment, I have post my question on StackOverflow.  Please kindly give me some help on it.

I have the question sitting there for a while, do you mind taking some time just give me a hand on that. Much appreciated.

I got the same issue. @clement9527 Do you have any solutions?


Python3.10 debug  unusual behavior!

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
Version: 1.74.3 (user setup)
Commit: 97dec172d3256f8ca4bfb2143f3f76b503ca0534
Date: 2023-01-09T16:59:02.252Z
Electron: 19.1.8
Chromium: 102.0.5005.167
Node.js: 16.14.2
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19044
Sandboxed: No
OS Version:
Ubuntu 18.04.6 LTS \n \l   or win10
Steps to Reproduce:

create python3.10 env

conda create -n py310 python=3.10
conda activate py310

(py310) tf@tf:~$ conda list python
# packages in environment at /home/tf/miniconda3/envs/py310:
#
# Name                    Version                   Build  Channel
ipython                   8.8.0                    pypi_0    pypi
python                    3.10.9               h7a1cb2a_0

python code:

for key in ("phase", "seed", "project_dir", "load_checkpoint",):
    a = False
    if a:
        print("True")

debug and raise unusual behavior, but terminal print nothing.

python 3.8 , 3.9 and 3.11 show no problem!
# Name                    Version                   Build  Channel
python                    3.8.13               h12debd9_0

# Name                    Version                   Build  Channel
python                    3.9.16               h7a1cb2a_0

# Name                    Version                   Build  Channel
python                    3.11.0               h7a1cb2a_2

Please file this on the python extension repo, thanks


Fix Wasm build

(or maybe this is worth adding to WASILibc?)

Thx! If you can port https://github.com/swiftwasm/swift/pull/2553 to 5.4 branch, it would be better I think

Sorry, totally forgot you've already done this.


Custom ISO make is failing

Hello,
When I test-run building a custom ISO on a fresh CentOS 7 machine I get the following error:
Failed running /usr/bin/docker [build -f images/01-base/Dockerfile -t rancher/os-base images/01-base]: exit status 1
Make exits with make: *** [default] Error 1
I have made no changes to any of the configuration at this point. Only cloned the repo and called make from the root of the repo.
RancherOS Version: v0.8.1
Where are you running RancherOS? (docker-machine, AWS, GCE, baremetal, etc.)
CentOS 7 x64 Minimal

you probably want make release


DOC: optimize.root: are inner_tol, inner_maxiter, … still optional keywords for method='krylov'?

Issue with current documentation:
In the "root(method=’krylov’)" part of the scipy.optimize.root docs, in Options: jac_options, there are "inner_tol, inner_maxiter, …" as keywords. Can you please check whether that is still uptodate? I have not spent much time checking this and I'm not a scipy contributor at all, but I wonder whether this is deprecated? With version 1.14.0.
Idea or request for content:
No response
Additional context (e.g. screenshots, GIFs)
No response

I don't think the documentation is correct.
Based on my reading of the code, those two parameters don't appear to do anything when the jac_options method is not supplied or the jac_options['method']='lgmres'.
This is the section of code that is relevant. The jac_options dict gets passed to this method.
https://github.com/scipy/scipy/blob/v1.14.0/scipy/optimize/_nonlin.py#L1435-L1480
inner_maxiter gets removed from the options dict at this point, and becomes self.method_kw['maxiter'].

    def __init__(self, rdiff=None, method='lgmres', inner_maxiter=20,
                 inner_M=None, outer_k=10, **kw):
        ....
        self.method_kw = dict(maxiter=inner_maxiter, M=self.preconditioner)

If the method is lgmres (the default) or gmres, then maxiter is set to 1.
# Replace LGMRES's outer iteration with Newton steps
self.method_kw['maxiter'] = 1

For any un-recognized arguments beginning with inner_, the prefix is stripped off and passed to the solver.
        for key, value in kw.items():
            if not key.startswith('inner_'):
                raise ValueError("Unknown parameter %s" % key)
            self.method_kw[key[6:]] = value

For inner_tol, this calls lgmres with a keyword argument of tol. But lgmres has no tol argument, only rtol and atol.
def lgmres(A, b, x0=None, *, rtol=1e-5, atol=0., maxiter=1000, M=None, callback=None,
           inner_m=30, outer_k=3, outer_v=None, store_outer_Av=True,
           prepend_outer_v=False):

So that would appear to not do anything.
Keep in mind that I am fairly new to this project, and I have not seen this code before, so take what I say with a grain of salt.

Thank you for having a look! I really don't know the code very well, so someone else should take a look, but it sounds like the docstring should be changed and that this is a bug in how it is documented?

But lgmres has no tol argument, only rtol and atol.

It did used to have tol though - gh-20498

Thanks - we should probably update these docs to address that removal.
I suggest that we change this page, by changing the documentation for the inner options to this:

inner_rtol, inner_maxiter, …
Parameters to pass on to the "inner" Krylov solver. For a full list of options, go the to the documentation for the solver you are using. By default this scipy.sparse.linalg.lgmres. If the solver has been overridden through method, see the documentation for that solver instead.
To use an option for that solver, prepend inner_ to it. For example, to control the rtol argument to the solver, set the inner_rtol option here.

I'm not sure what to do about inner_maxiter. It seems confusing that using the default solver causes that option to be ignored. Here are the options I see:

Document it. Add a note saying

Note: If solver lgmres is in use, inner_maxiter is ignored and only one iteration is performed.

Warn on it. If the user passes a solver option which is ignored, emit a warning.
Pick some other option for the example which has less confusing behavior. This isn't meant to be an exhaustive list of options, after all.

Should we also add notes on transitioning from inner_tol to inner_rtol etc. ?

Should we also add notes on transitioning from inner_tol to inner_rtol etc. ?

I think that's reasonable. I'd be willing to do that. Here's some suggested language:

Note: In previous versions of SciPy, it was possible to specify relative tolerance through the inner_tol argument. This is no longer possible. This parameter has been renamed to inner_rtol to clarify its meaning.

However, I have two questions:

Where does this documentation go? Does it go with the root(method=’krylov’) documentation, or do we have a section in the docs for upgrade instructions for people transitioning between versions?
Would we remove this documentation at some point? Normally we'd stop documenting tol at the point where we remove tol. However, that point has already passed, so would this transition guide stay forever? Would we keep it for 2 versions, say?

I'm not sure what to do about inner_maxiter. It seems confusing that using the default solver causes that option to be ignored. Here are the options I see:

Document it. Add a note saying

Note: If solver lgmres is in use, inner_maxiter is ignored and only one iteration is performed.

Warn on it. If the user passes a solver option which is ignored, emit a warning.
Pick some other option for the example which has less confusing behavior. This isn't meant to be an exhaustive list of options, after all.

I would go for option 3 here for sure, but emitting a warning on ignored options seems useful also.

However, I have two questions:

Where does this documentation go? Does it go with the root(method=’krylov’) documentation, or do we have a section in the docs for upgrade instructions for people transitioning between versions?
Would we remove this documentation at some point? Normally we'd stop documenting tol at the point where we remove tol. However, that point has already passed, so would this transition guide stay forever? Would we keep it for 2 versions, say?

On second thought, I don't think we need to do this now that the deprecation period for tol has passed. The main confusion here seems to be that inner_tol was indicating that tol is still in use. I think the documentation for rtol and atol in the inner solvers should be sufficient.

Okay, here's some proposed language for option 3.

inner_rtol, inner_atol, inner_callback, …
Parameters to pass on to the "inner" Krylov solver.
For a full list of options, go the to the documentation for the solver you are using. By default this scipy.sparse.linalg.lgmres. If the solver has been overridden through method, see the documentation for that solver instead. To use an option for that solver, prepend inner_ to it. For example, to control the rtol argument to the solver, set the inner_rtol option here.

Why I picked these three:

It should be something that every solver supports.
I tried to avoid confusingly named parameters, like outer_v, which would become inner_outer_v.

I can also work on the warning thing, but it will take me some time to really grok what the code is doing.

sounds good to me!

Warn on it. If the user passes a solver option which is ignored, emit a warning.

Interestingly this just came up in @janosg 's talk at EuroSciPy - would be good to fix!

@lucascolley
I'm writing code to add a warning to KrylovJacobian.__init__()
Quick question about warnings.warn(..., stacklevel=N): when the correct stacklevel depends on how the function was called, how should I choose stacklevel?
If the user was running optimize.root(residual, guess, method='krylov', options=options), then the stacklevel should be 4 to identify the user's code.
However, if the user was running optimize.newton_krylov(residual, guess, inner_maxiter=10), then the stacklevel should be 3.
If we include calling KrylovJacobian.__init__() directly, that is a stack level of 1.
Are there any existing examples in SciPy of how to solve this kind of problem?

We have hit this before, but I can't remember what we do elsewhere - do you know, @j-bowhay ?

thanks again for pointing this out @verena-neufeld !


Uno.DateTime does not contain a member called 'Ticks'

In the last commit (ad9a182) I get:
FileSystemInfo.uno(39): E3104: Uno.DateTime does not contain a member called 'Ticks'. Could you be missing a package reference?
/Users/GF/fuselibs-public/Source/Fuse.FileSystem/Uno/IO/FileSystemInfo.uno(39,1): Error E3104: Uno.DateTime does not contain a member called 'Ticks'. Could you be missing a package reference?
(2.6 s)

Build completed in 18.28 seconds
    1 error

Sounds like you haven't run build.sh since the last time uno was updated...

@kusma yes I run build.sh. I check twice :(

In 10f9bc7 work fine and I don't get the error

@ckarmy: This works fine for me, and on CI. I'm pretty sure this is a problem on your end.

I delete my repo and clone it again and now work! Thanks!

It could be possible that doing a git clean -dfx would have been enough.

I do it but don't work

Well, that should be equivalent of deleting and re-cloning. But whatever, good to hear that things work for you again!


16 ability to register package routes in required place of the app

commit has merge branches, because they need for testing this functional


README.md examples and online help mention -db option, but it has to be --db

$ mmdbinspect -h
Usage: mmdbinspect --db path/to/db --db path/to/other/db <IP_ADDRESS>/24 0:0:0:0:0:ffff:8064:a678
  -db value
    	Path to an mmdb file. You may pass this arg more than once.

Any additional arguments passed are assumed to be networks to look up.  If an
address range is not supplied, /32 will be assumed for ipv4 addresses and /128
will be assumed for ipv6 addresses.

=> Usage line is correct, but the -db value is not correct, also examples here have wrong option mentioned: https://github.com/maxmind/mmdbinspect/blob/main/README.md#examples
=> search for -db and replace all by --db

-db works fine for me. The program uses Go's flag package, which requires only a single dash but will also support two.
I'll leave this open though as I see that the program does suggest using --db in places, which is confusing.


traffic stealing/mirroring/http filtering is flakey

Local: nixOS + nc (tried also python script to see if it's different and also users' app) Remote: kops cluster running on AWS (not EKS) with calico CNI (vxlan) + Istio mesh It seems that the agent steals/mirrors the connection start but not the data itself for some reason.
Calico configuration from kops:
 calico:
      encapsulationMode: vxlan
      mtu: 8951
      typhaReplicas: 3

K8s version: v1.27.9

Happened to another user on AWS EKS cluster version 1.30

Due to a different issue, I switched to ephemeral agent mode. Interestingly this seems to help the issue I was having stealing or mirroring traffic to our GRPC servers. It now seems to forward some requests on to my local, however only the health check requests seem to be successful:
{"level":"info","ts":1733723856.831551,"caller":"grpc/grpc.go:140","msg":"finished unary call with code OK","service":"customer-grpc","grpc.start_time":"2024-12-09T16:57:36+11:00","grpc.request.deadline":"2024-12-09T16:57:37+11:00","system":"grpc","span.kind":"server","grpc.service":"grpc.health.v1.Health","grpc.method":"Check","grpc.code":"OK","grpc.time_ms":0.02,"TraceID":"48e3152fde975e2ff18417d1f4a96af9","SpanID":"1a1388db26fd29f4"}

Before the first successful regular GRPC request, this occurs:
Proxy error, connectivity issue or a bug.
                    Please report it to us on https://github.com/metalbear-co/mirrord/issues/new?assignees=&labels=bug&projects=&template=bug_report.yml
                    You can find the `mirrord-intproxy` logs in /tmp.
                    connection closed
signal: killed

intproxy:
  2024-12-09T05:57:26.864741Z  INFO mirrord_intproxy::layer_initializer: new session, process_info: ProcessInfo { pid: 145600, name: "main", cmdline: ["/tmp/go-build3109359887/b001/exe/main"], loaded: true }
    at mirrord/intproxy/src/layer_initializer.rs:63

  2024-12-09T05:57:54.571918Z  WARN mirrord_intproxy: agent log: [e12454f2-0436-4ab3-9cf3-052daf3fdb8f] mirrord-agent failed: agent was terminated: agent failed ping pong check. 1/2 mirrord-agents alive
    at mirrord/intproxy/src/lib.rs:319

  2024-12-09T05:57:54.799630Z  WARN mirrord_intproxy: agent log: [514a0ce2-bf8d-475d-95b9-4b2c8c763806] mirrord-agent failed: agent was terminated: agent failed ping pong check. 0/2 mirrord-agents alive
    at mirrord/intproxy/src/lib.rs:319

  2024-12-09T05:57:54.825465Z ERROR mirrord_operator::client::conn_wrapper: Operator connection failed, error: invalid message: Close(None)
    at mirrord/operator/src/client/conn_wrapper.rs:55

  2024-12-09T05:57:54.825507Z ERROR mirrord_intproxy::agent_conn: failed to receive message from the agent, inner task down
    at mirrord/intproxy/src/agent_conn.rs:226

  2024-12-09T05:57:54.825562Z ERROR mirrord::internal_proxy: Internal proxy encountered an error, exiting, error: Main internal proxy logic failed: agent closed connection with error: no mirrord-agent is alive
    at mirrord/cli/src/internal_proxy.rs:149

The operator logs this
2024-12-09T05:57:54.561909Z ERROR operator_context::agent::connection: Timeout while waiting for agent pong                                                              │
│     at operator/context/src/agent/connection.rs:234 on ThreadId(2)                                                                                │
│                                                                                │
│   2024-12-09T05:57:54.789740Z ERROR operator_context::agent::connection: Timeout while waiting for agent pong                                                              │
│     at operator/context/src/agent/connection.rs:234 on ThreadId(2)                                                                                │
│                                                                                │
│   2024-12-09T05:57:54.816243Z ERROR operator_proxy::routing::router: error: no mirrord-agent is alive                                                                      │
│     at operator/proxy/src/routing/router.rs:206 on ThreadId(2)                                                                                │
│                                                                                │
│   2024-12-09T05:57:54.816269Z ERROR operator_proxy::routing::router: [2DD4CD1A4B224F6E: osc6pZio80V3swmDuRDXaqBOUsBXt8z/eo4L5Bx6pMY bradleyq/u-h3a6z54eln@nixos (30.86181s │
│     at operator/proxy/src/routing/router.rs:790 on ThreadId(2)                                                                                │
│                                                                                │
│   2024-12-09T05:57:54.816425Z  INFO operator_proxy::session: Session End, client_user: u-h3a6z54eln, client_name: bradleyq, client_hostname: nixos, client_id: "osc6pZio80 │
│     at operator/proxy/src/session.rs:177 on ThreadId(2)

And the agent (debug). https://gist.github.com/bradleyquinn140/d150786131e85ed1c7f8ff27c6b3fab8. When I did trace it logged significantly more, which I can do if that is valuable.

Ugh, now after doing nothing but restarting the pods it's back to the old behavior I was getting :cry:

We noticed using kubectl debug that the iptables creation in the nat table was delayed but once rules are in place the stealing works

Seems that rules keep getting removed and readded somehow

I'd have to guess it's a calico issue because mirrord doesn't have such logic and neither does istio (or have access to do it) - waiting for @bradleyquinn140 to see if upgrading Calico helps

Last night I triggered our dev cluster to update Calico, was not successful, a few breaking changes.
I figured it may happen since kops is only using calico v3.27.3 by default on the latest kops version.
Going to try a similar thing in a new cluster to see if I can re-produce.


Show the checks status in the hub pr list

Show the github checks status in the output of hub pr list

May I have a shot on this? :smiley: @mislav

@joshuabezaleel For sure! The tricky part would be fetching PR statuses for all the listed PRs in a single step. (Doing a separate API request to fetch checks status for every individual PR would be too slow, IMO.) I'm not sure if batch fetching would be possible using the REST API, and instead might warrant using the GraphQL API.

I was going to ask that all the -f options in hub ci-status be available in hub pr list.  Which I think is just an expended form of this feature request.

@rayjlinden It's a good idea to bring some of the fields available from ci-status to pr list. These fields would possibly have different placeholder names to fit better among the full list of fields available in pr list --format.
However, the most complex part of implementing this would be actually fetching the checks status for each PR listed. This should ideally be done with a single API query, since we cannot afford to make 30 separate queries to display check statuses for a list of 30 PRs.

@mislav While looking at both of the API and the current CLI, I assume that the current command of pr list has not support filtering PR by labels?

I assume that the current command of pr list has not support filtering PR by labels?

That's true. We use this REST endpoint and it doesn't offer us filtering by label. If we wanted to filter by label, we would have to switch to a REST/GraphQL Search endpoint, I think.

2. the field which PullRequests can be ordered have 3 possible values which are CREATED_AT, UPDATED_AT, and COMMENTS (comment count) while the SORT_KEY at the current hub CLI have 4 possible values which include long-running. How may I resolve these different possible values?

Good find! I usually try to avoid backwards-incompatible changes, but if we gained other benefits by switching to another endpoint, I would be fine if we lost the ability to sort by long-running. I can't imagine it's being heavily used.

I am new to Go and this repo so I am really sorry beforehand if I can be burdensome.

Not at all! Your questions are on-point. Thank you for taking a look!

Hi @mislav , is there any example on performing request upon the GitHub GraphQL API to retrieve data in this project? Because from the discussion above I think that you suggested to use the GraphQL API and the current fetchPullRequests method execute to the REST API v3.

is there any example on performing request upon the GitHub GraphQL API to retrieve data in this project?

No, we still use REST for everything. This would be one good example where going with GraphQL might yield benefits, but we should always keep the REST functionality as fallback since older GitHub Enterprise versions (also supported by hub) don't support all the GraphQL features that GitHub.com currently supports (our GraphQL API has been evolving rapidly).
GraphQL is done by POSTing this JSON payload to https://api.github.com/graphql:
{ "query": "...",
  "variables": { ... }
}

Where query is a GraphQL query string and variables is an optional dictionary of values to apply as query inputs.
The GraphQL endpoint will respond with a JSON payload as well, and that one might be tricky to parse in Go. I still haven't found an elegant way to handle GraphQL as a client in Go, and since you're just learning Go, don't feel bad if you might feel stuck at times. None if this is very easy.

@joshuabezaleel Definitely! Just make sure you post query and variables fields.
Here's an example GraphQL query you can try:
fragment pr on PullRequest {
  number
  title
  commits(last: 1) {
    nodes {
      commit {
        status {
          state
        }
        checkSuites(first: 50) {
          nodes {
            conclusion
          }
        }
      }
    }
  }
}

query ($owner: String!, $repo: String!, $per_page: Int = 10) {
  repository(owner: $owner, name: $repo) {
    pullRequests(first: $per_page, orderBy: {field: CREATED_AT, direction: DESC}) {
      nodes {
        ...pr
      }
    }
  }
}

You will also have to use the Accept: application/vnd.github.antiope-preview+json request header to gain access to the checkSuites functionality.

Hi @mislav , I tried to run the query that you mentioned earlier at the GitHub's GraphQL Explorer and I got the error of :
{
  "errors": [
    {
      "path": [
        "fragment pr",
        "commits",
        "nodes",
        "commit",
        "checkSuites"
      ],
      "extensions": {
        "code": "undefinedField",
        "typeName": "Commit",
        "fieldName": "checkSuites"
      },
      "locations": [
        {
          "line": 10,
          "column": 9
        }
      ],
      "message": "Field 'checkSuites' doesn't exist on type 'Commit'"
    }
  ]
}

Or should this query be executed using the PostJSON function and not at the explorer?

Note what I said in my previous comment:

You will also have to use the Accept: application/vnd.github.antiope-preview+json request header to gain access to the checkSuites functionality.

You have to include this header. The GraphQL Explorer doesn't use this header, so it can't access Checks.

Hi @mislav , I am currently in the middle of this. Sorry for just getting back to you.
I want to ask what's the difference between the query that you posted here to the mergeable state from the field of a pullRequestConnection. I attached the screenshot below.

I tried to run the query that ask for this mergeable field and found that the PR with the number of 2308 returned a CONFLICTING state (screenshot attacheded below) while at the pull request site, it shows a success state.

Thank you very much beforehand! Have a nice day! :slightly_smiling_face:

@joshuabezaleel Definitely! Just make sure you post query and variables fields.
Here's an example GraphQL query you can try:
fragment pr on PullRequest {
  number
  title
  commits(last: 1) {
    nodes {
      commit {
        status {
          state
        }
        checkSuites(first: 50) {
          nodes {
            conclusion
          }
        }
      }
    }
  }
}

query ($owner: String!, $repo: String!, $per_page: Int = 10) {
  repository(owner: $owner, name: $repo) {
    pullRequests(first: $per_page, orderBy: {field: CREATED_AT, direction: DESC}) {
      nodes {
        ...pr
      }
    }
  }
}

You will also have to use the Accept: application/vnd.github.antiope-preview+json request header to gain access to the checkSuites functionality.

I tried to run the query that ask for this mergeable field and found that the PR with the number of 2308 returned a CONFLICTING state (screenshot attacheded below) while at the pull request site, it shows a success state.

"Mergeable" is completely different information than Checks status:

Mergeable refers to the fact that the head branch of the PR can be merged cleanly to its base branch, as opposed to "conflicting", when git conflicts need to be manually resolved first before it can be merged.
The green checkmark (or sometimes a red ❌) indicate the passing or failure state of Checks and Statuses that are active in this project. Usually this is the result of CI (continuous integration) being set up.


Why is this not modelled on top of Observables?

Is there any reason not to use Observables or Streams for this? As far as I understand these are push based APIs. Why do we need 2, in the future potentially 3 with Streams, APIs for a single type of effect?
For all other type of effects I know exactly what to use (T, Promise<T>, Iterator<T>). What's the fourth one? Observable<T>? Stream<T>? AsyncIterator<T>?
Maybe I don't see the big picture, but I don't understand why we can't have a unified interface for this.

Streams are too heavy for implementing async iterators because of all the other baggage that they have. However it would make sense for streams to implement the async iteration protocol so they could be consumed in for-of loops.
Observables seem more likely to be useful for implementing async iterators, but they're a bit different in that you subscribe to the source and have data pushed to you, whereas iterators are about pulling the data.
Also, extending the existing concepts for regular iterators to be async seems to make sense.
Also, the main difference between Streams and Observables, by the looks of it, is that streams are more focused on binary data processing and have back pressure, whereas Observables are more for reacting to sequences of events over time.

Great question, thanks!
So the first thing to consider is that async iterators aren't simply push-based.  The result of each iteration is delivered asynchronously through a promise, but each iteration is requested by the consumer calling next with (maybe) a value.  This setup has some nice properties:

It keeps the interfaces for sync iteration and async iteration similar, so that programmers with an understanding of promises and iterators don't have to learn an additional API.
Backpressure is inherent, because the consumer doesn't request the next item until they are ready for it.
Async generators have all of the power of sync generators (with "throw" and "return" methods) without having to awkwardly have a consumer send back information from a next handler (as you might need if you based the design around Observables).

Also, async iterators can easily be adapted to observables:
function toObservable(asyncIterable) {
    return new Observable(observer => {
        let stop = false;
        async function drain() {
            for await (let x of asyncIterable) {
                if (stop) break;
                observer.next(x);
            }
        }
        drain().then(x => observer.complete(x), err => observer.error(err));
        return _=> { stop = true; }
    });
}

The big picture is that support for async iterators is built into the language syntax via async generator functions and for-await.  Observables and Streams are library abstractions which sit on top of the language and can expose async iterators for consumption by for-await, similar to how collection APIs expose iterators for consumption by for-of.
Hope that helps!

This all sounds logical to me and I think I understand the differences of these APIs. What I have a problem to understand, and that might be a bit naive from a simple API consumer point of view, is that there is already a system that I have used that does all these things (events and I/O) with a unified interface:
Dart's Stream class
And there seems to be at least some kind of recognition about this, because the same question, whether there is some kind of unifiable pattern, was raised 2014 on JSConf.
As I said my view might be a bit naive, without knowing the specific implementation details, but for someone with a Dart background it just seems a bit odd to me that I now have to use 3 seperate APIs to solve problems that are solvable with a single class in Dart.

I think it's due to people having different focuses. Streams in JS are more focused on processing data, like binary data. Observables aim to be as purely functional and low level as possible, which isn't as useful for certain applications. Async iterators seem to be just taking the existing concepts of generators and mixing them with async functions as a logical next step.
Personally, I'm very excited about async iterators out of all these new specs the most.

I'm also looking forward to all of these, it just seems a bit like a lost chance to me to not model these around some unified interface. It feels a bit like Array and NodeList. :/

I'm also looking forward to all of these, it just seems a bit like a lost chance to me to not model these around some unified interface. It feels a bit like Array and NodeList.

Feel free to consider async iterators as the unified protocol for async sequences : )

Yeah, maybe someone will write some kind of abstractions around all of these. :)
Anyway i will close this issue, thank you for the explanations.

but each iteration is requested by the consumer calling next with (maybe) a value.

That's right. But, why? Is it useful?
You can use a parameter with another iterator instead of returning values through next.
In fact, the parameter of next is counterintuitive:
function *c(a) {
  a = yield a + 10;
  a = yield a + 20;
  a = yield a + 30;
  a = yield a + 40;
}

it = c(1);
console.log(it.next(2).value); // Result: 11
console.log(it.next(3).value); // Result: 23  (!?)
console.log(it.next(4).value); // Result: 34

I am a kind of noob with Javascript generators, so any hint about it would be appreciated (although I have been programming Javascript for almost 20 years, and I have even written parallel C++ compilers). In fact, except to emulate async function I never have seen any other use.
Async functions are great, its adoption is very fast, and people really prefer to use them to other solutions. They relay in Promises, which are really well known and have been proved very useful, and they map great against Promises.
Observables are also great. Although they have a huge cognitive load (so many functions, considerations, ...) they have been proved to be very useful.
So because all of this, may be it should be considered the fact to map async iterators into Observables. It is very likely (I should write some example) that cognitive load of Observables will be reduced drastically.

@drpicox Observables aren't directly comparable to async generators, async generators do nothing unless .next is called (or unless they impose extra work upon themselves) e.g.:
async function* animationFrames() {
    while (true) {
        yield new Promise(requestAnimationFrame)
    }
}

// vs
function animationFrames() {
     return new Observable(observer => {
     let frame
     function step() {
        frame = requestAnimationFrame(time => {
            observer.next(time)
            step()
        })
    }
    step()
    return _ => clearAnimationFrame(frame)
}

If you use observable then every single animation frame will cause the callback to invoked which may cause jank or backpressure if the consumer of the frames can't keep up e.g.:
async function main() {
    for await (const time of animationFrames()) {
        // At worst the user sees a few frames skipped sometimes but
        // this will always be roughly in sync with the frames
        longOperationSometimesSpanningMultipleFrames(time)
    }
}

function main() {
    animationFrames().subscribe({
        // If longOperations cause a slowdown of frame rate then
        // it'll appear like are happening slower, e.g. if the operation
        // takes 5 animation frames sometimes then those 5 frames
        // will still definitely happen just late
        next: longOperationSometimesSpanningMultipleFrames
    })
}

This happens because async iterators are lazy by value but observables are lazy by subscription, it's not to say async generators are better, it's harder to represent events where every event must be responded to as async generators but not impossible.
By all means use what works for your project, Observables are probably going to be async iterable (and if not you can always create operators to do it) in some way and Observable.from will almost certainly convert async iterables so they should be fairly interoperable.

The value being sent to the async iterable is so that it's the same as generators in this regard, it can be used to implement coroutines that can also await.
Basically coroutines allow two way communication, e.g. you yield values out and you can send responses back in, they don't really have the same use cases as iterators even if they have the same syntax.
When sending a value to .next you're just replacing the location of yield with the value you send back in:
function* myGen() {
    const val = yield 1
    const val2 = yield 2 + val
}

const gen = myGen()
// There's no point that's stopped in the generator for the value 9999
const request1 = gen.next(9999).value
// But after calling gen.next(9999) the generator is stopped at
// the first yield so it can get a response back for that yield
const request2 = gen.next(request1 + 17).value
console.log(request2) // 20 which is 18 (the value sent to the first yield)
                      // plus 2

Coroutines can be useful if you want things to be decoupled from how they're interpreted e.g.:
function* storeInDatabase(data) {
    // The executor need not return any particular implementation
    // of connection
    try {
         // Suppose the database did not exist the executor can even use
         // .throw to cause an error at this point
         const connection = yield ['open', 'the-database-uri.tld/database']
    } catch (err) {
         return false
    }
    // The database might not even need to do transactions if it's synchronous
    // So an executor could choose to ignore this
    yield ['beginTransaction', connection]
    for (const { user, value } of data) {
       // The coroutine engine can aggregate these
       // or do any optimizations it might want to
       yield ['setData', user,  value]
    }
    yield ['endTransaction', connection]
    // An executor could even choose to do things like revoking the
    // database connection here once the function has finished executing
    return true
}

Async generators do nothing more to extend this than to allow awaiting promises within the generator which is probably useful if you need to await for things that are the same across platforms.

Uhmmmm, you made your point with the backpressure.
But the example that you have shown of animationFrames may be wrong because the first frame is generated before anyone request it, so, probably the first call will get an obsolete result.
And I do not like the example storeInDatabase, you can achieve the same with an async function and using the database as parameter:
async function storeInDatabase(database, data) {
    // The db need be any particular implementation
    // of connection
    try {
         // Suppose the database did not exist the db can even use
         // throw to cause an error at this point
         const connection = await db.open('the-database-uri.tld/database');
    } catch (err) {
         return false
    }
    // The database might not even need to do transactions if it's synchronous
    // So db could choose to ignore this
    await db.beginTransaction(connection);
    for (const { user, value } of data) {
       // The db engine can aggregate these
       // or do any optimizations it might want to
       await db.setData(user,  value)
    }
    await db.endTransaction(connection);
    // A db could even choose to do things like revoking the
    // database connection here once the function has finished executing
    return true
}

I will investigate a little bit more about Observables and backpresure (there is some existing work: https://github.com/ReactiveX/RxJava/wiki/Backpressure). Backpressure exists when Observables are synchronous, may be now is the good timing to fix https://github.com/tc39/proposal-observable .

Actually the first animation frame won't be obselete, generators don't execute their first section until the first .next call is done e.g.:
function* gen(x) {
    console.log("Hello!")
    yield x
    console.log(x)
}

const g = gen(10) // Nothing logged yet
g.next() // logs "Hello!"
g.next() // logs 10

// Same thing with async generators, the first part of the generator
// code is not executed until the first call to next

async function* animationFrames() {
    for (let i = 0 ; ; i++) {
        console.log(i)
        yield new Promise(requestAnimationFrame)
    }
}

async function main() {
    const frames = animationFrames()
    // Nothing is printed yet
    await frames.next() // Only here is 0 printed
    await frames.next() // 1
}

main()

I'm not really sure of any great examples of coroutines as I haven't used them very much. Perhaps someone who knows more about coroutines would be able to offer better explanations. This blog might offer some insights into the design of generators having two way communication though.

I did not know it. Thanks!


Add Jakarta annotation supports

Possibility to add annotation support in jakarta instead of javax.
Useful for annotations related to validation and also @Generated

my name was chosen unwisely

@doriangrelu We do already hava jakarta validation support. Check out the useJakartaValidation config option.


New function

Motivation
Hi! It would be nice to add a check mark "do not enter a password for 15 minutes"
fuel1wpddf980s78jh7drct8qcah3pq587adcnpezayrq8raagurqet4sy9f2f8

#244


Modify the UI

Modify the UI:

Upgrade the Angular version
Modify the User Interface
Integrate the Admin template design

Covered in this PR: https://github.com/NCSU-SE-Fall-24/WolfLease/pull/2

This issue has been covered


Mobile font broke

Looks like it’s Arial on mobile.. ¯\_(ツ)_/¯

Mobile font did in fact not break, just looks bad. Looks like it's Helvetica Neue, which I'll remove. The font doesn't fit the website.

Fixed in 7c2ba73.


Bug fixes for Project nodes hierarchy

There were several issues with Project nodes hierarchy:

when A -> B and B is several levels above A, like ......\b.csproj, progression code cut node id string when converted it toUri.LocalPath. We need to Escape . with some other symbol (*) to avoid that.
other issue is we need to use Project B dependency providers when querying hierarchy nodes under project A Dependencies to show hierarchy correctly: A -> B (and B has packages specific to B) . Before we used providers from project A and they did not know about nodes specific to B and worked only when A also had same packages as B.

@dotnet/project-system @davkean @333fred

@srivatsn

Thanks for cleaning up the commits - but can future commits be self-contained, and with a description of what your are fixing? Putting it in the PR is not enough - it has to be in the commit so that you find history without needing to find the PR (which may not exist if we move from github) that added it.

Sure :)
On Jan 2, 2017, at 10:09 PM, David Kean <notifications<EMAIL_ADDRESS>wrote:
Thanks for cleaning up the commits - but can future commits be self-contained, and with a description of what your are fixing? Putting it in the PR is not enough - it has to be in the commit so that you find history without needing to find the PR (which may not exist if we move from github) that added it.

You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdotnet%2Froslyn-project-system%2Fpull%2F1062%23issuecomment-270056467&data=02|01|anton.piskunov%40microsoft.com|3e11283bc951405d394b08d4339f1d4b|72f988bf86f141af91ab2d7cd011db47|1|0|636190205857841380&sdata=qZQhUTo4tK8T%2BCqApP1ZLiJcUkuOylUD2AcIaU3bhgI%3D&reserved=0, or mute the threadhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABhLG8GcyJct9Gf6-5artlJ5HXhXilvmks5rOeYngaJpZM4LYdmj&data=02|01|anton.piskunov%40microsoft.com|3e11283bc951405d394b08d4339f1d4b|72f988bf86f141af91ab2d7cd011db47|1|0|636190205857841380&sdata=VKErwH1ut8PvOjzQFpAV5LYTMSu65SG%2FpbBtHNlfMFg%3D&reserved=0.

Does that mean that i can merge? :)

@davkean @333fred  could one of you please complete another review since you already had a first look..?


Many files are copied / deleted / re-uploaded, when they already exist

RClone version: v1.38
Command: rclone sync
Remote: S3

I have a folder which is synced with S3 using timestamp comparisons (no checksums). I just ran rclone sync and noticed it was trying to sync photos that haven't changed since 2014. The local timestamp on DSC_0415.JPG is August 2014, but the output shows:
2017/12/18 07:58:37 INFO  : original/2014-07/DSC_0415.JPG: Copied (server side copy)
2017/12/18 07:58:37 INFO  : original/2014-07/DSC_0415.JPG: Deleted
Transferring:
* original/2014-07/DSC_0415.JPG: 100% done, 9.026 MBytes/s, ETA: 0s

It looks like the RClone is doing a server-side copy to the --backup-dir, followed by deleting the file from the remote S3 bucket, followed by re-uploading the file.

The only reason I can think of is that since the last sync I renamed the root folder locally, so had to run aws s3 mv --recursive. This means all files on S3 have a new timestamp greater than the local timestamp. When I run with --dry-run Rclone seems to either

want to update the modification time on s3 (as expected)

2017/12/18 10:01:46 DEBUG : large/2015-06/2015-06-15 18.42.55.jpg: Modification times differ by 20881h27m10s: 2015-07-30 11:55:28 +0000 UTC, 2017-12-16 13:22:38 +0000 UTC
2017/12/18 10:01:46 NOTICE: large/2015-06/2015-06-15 18.42.55.jpg: Not updating modification time as --dry-run
2017/12/18 10:01:46 DEBUG : large/2015-06/2015-06-15 18.42.55.jpg: Unchanged skipping

want to backup / delete / re-upload the file

2017/12/18 09:02:46 NOTICE: original/2014-07/DSC_0772.JPG: Not moving as --dry-run
2017/12/18 09:02:46 NOTICE: original/2014-07/DSC_0772.JPG: Not copying as --dry-run

In the case above, the file (DSC_0772.JPG) does exist in the target S3 bucket. I downloaded it and compared it to the local file, and they are binary-equal (cmp -l). I don't understand why it doesn't update the timestamp like it does with the others.
Do you know how I can troubleshoot this? It sounds similar to #1431 except I don't use Google Drive, and I think that issue was fixed in 1.38. Thanks!

Did aws s3 mv --recursive preserve the metadata, in particulare the mtime that rclone uses for storing the modification time?
Can you send a log with -vv using the latest beta demonstrating the problem please?
Thanks

Thanks for the quick reply, I will check tonight and let you know.

This is very stale. Closing out. If you still have a question, please post on the forums.


Test setup

Shameless copy of httpx, I regret nothing.

Let's quickly test travis

It failed but for good reasons, basically we have no test suite :P I'm gonna merge now, thanks @yeraydiazdiaz!


Request: FF Android support

Hi there @ChristoferMinestar -
Thank you for the suggestion, but I don't think this will be possible.  It appears Android doesn't support userChrome.css and userContent.css, and there isn't any kind of replacement.
Additionally, since the browsers are so different on mobile and desktop, I would be surprised if any of the code in this repository could be repurposed.  This, in addition to me being an iOS user, would likely make a separate project a better option if it ever became possible on Android.


chore(docs): creating integration between jest and storybook for web …

…and mobile
affects: @natds/docs, @natds/mobile, @natds/web

One recommendation:

Add a script in the docs to build and test the web and mobile packages to generate the test json needed in the storybook


Documentation: Start Writing Some

Start writing some documentation (.md files) - at least describing the mechanics of the core systems.

Closing this. Started writing some documentation for the core components, here:
https://g2-components.com/components/


add "have.text" assertion?

avoid clashing with the chai-jquery "have.text" assertion

follow https://glebbahmutov.com/blog/custom-assertions/


get wrong encoded text in qtmonkey_gui for project with koi8-r inside

the was in usage of QString::toStdString instead of QString::toUtf8 in json serialization


Improve HTML formatting

(Feature request)
Currently the plug-in can auto-format (using Prettier) the JavaScript code portion of the component ( as well as the CSS). But many Svelte components are comprised quite substantially of HTML, and currently the plug-in takes over auto-formatting of the entire file but does not format the HTML.
Thus the feature request:

auto-format the HTML
Respecting the Svelte syntax
Ideally, produce consistent and reasonable output regardless of how the input was formatted, so that the output ends up formatted the same way regardless of details of how a particular human typed the input the first time.

Not sure where prettier are with their HTML support. Choices are

Wait for prettier to finish adding html support
Use another formatter for html (preferably one that handles svelte's syntax well)
Write our own

Looks like the html language service provides a formatter. It's not 100% perfect for svelte but I am going to add it (it can easily be disabled).
I'm going to keep this issue open to improve the formatting later

The built-in formatter certainly seems better than no formatter.  of course something that really understands the Svelte syntax would be much better... this is a corner of software development I have never touched though, don't have any sense of whether that is a modest sized idea or a very large one.

Ended up writing a plugin for prettier that properly formats svelte files. I'll be testing it out over the next few days to try and iron out any immediate issues before I add it in here

+1 on this issue.  Not sure what the best/easiest way to go is, but would love to see some more specific syntax formatting for the HTML in Svelte.
Great plugin, btw.

Prettier html format will be cool. Also I think that it would be great if we will have an option disableHtmlFormat in the settings.

You can use "svelte.plugin.html.format.enable": false

@UnwrittenFun works like a charm thank you! I did not guess to look for "svelte" in the settings.

prettier-plugin-svelte is now used for formatting


Webpack notifier plugin not working with vue-cli

Version
3.0.0-beta.15
Reproduction link
https://github.com/Edza/vue_dsl
Steps to reproduce
Open project in vs code or other editor. Run "npm i && npm run debug". No notification will be shown.
What is expected?
A notification to pop up.
What is actually happening?
No notification. No error what so ever either.

I think the plugins are not merging correctly, or it's something to do with watch mode, but it should work even in watch I have it running in another project.

There is no debug script in any of the default templates, so I guess you have added it yourself? Just look in your package.json and at your scripts, your debug script is identical with the serve script so no surprise with the lack of output really.  You could try changing the script to "DEBUG=* vue-cli-service serve" (which is the usual way to do things.)

Doesn't work if I run "npm run serve" either.

I cloned it and it runs for me. I'm guessing this is that node 10.x.x thing: https://github.com/vuejs/vue-cli/issues/1385  (not only in vue).

Sorry, you can pretty much disregard my earlier comments because it seems I lack the most basic reading comprehension skills(!) But I did clone it, ran it and I get the popups without any changes on win10, node 8.11.2 and npm 5.6.0 (for what it's worth).

 It works now.