text:
Integrate google-fonts-webpack-plugin into build process

I'm currently trying to integrate static offline fonts into the Webpack build process. I found the nice library google-fonts-webpack-plugin which provides all the font files and a single CSS file. I integrated it into the prod build like this:
  plugins: [
    // http://vuejs.github.io/vue-loader/en/workflow/production.html
    new webpack.DefinePlugin({
      'process.env': env
    }),
    new GoogleFontsPlugin({
      fonts: [
        { family: 'Roboto', variants: [ '300', '400', '400italic', '500' ] }
      ]
    }),
    new webpack.optimize.UglifyJsPlugin({

The resulting files are however not part of the built files. In the dist/ folder, they appear as fonts.css and a directory fonts/, not even within the static/ folder.
How can I hook this library into the regular CSS/font build process of vue-webpack, so that fonts.css ends up in the versioned CSS file and the style file in the regular directory?

Please use forum.vuejs.org for support about how to use or extend the template for individual cases.


text:
优化绑定DOM属性示例中时间显示和文字表述

优化绑定DOM属性示例中的时间显示，新增代码中使用的是普通方法，不会增加阅读难度，虽然英文原版示例中并没有，但是更改后更加符合国人的阅读习惯，易于理解。
优化文字表述，原英文中“How do we know?”，翻译为”我们该如何知道呢？“语句更加通顺，原来那句“我们如何知道？”，怎么读怎么拗口，像是机器翻译的。
在介绍指令时提出“让我们回顾一下在介绍里的例子”，下面给出的示例中在介绍一章中“Now you see me”，是已经翻译为中文的，但是在这里再次回顾时却没有更改，建议进行翻译。同理在插值-->文本一节中的“This will never change”，也应翻译为“这个将不会改变”。
总结起来感觉，前几章中基本上英文都被翻译为中文，包括代码中的一部分文本内容，但是到了后几张，代码中的文本内容就不再进行翻译，这种前后不一致，不知道是不是有意为之。

总结起来感觉，前几章中基本上英文都被翻译为中文，包括代码中的一部分文本内容，但是到了后几张，代码中的文本内容就不再进行翻译，这种前后不一致，不知道是不是有意为之。

简单解释一下，代码中的文本如果不强烈关联实现或技术描述，翻译不是必须的，这一点大家集中翻译的时候打成了共识。
另外大家都是义务参与翻译的，而且不同的人之间对同一句话的译法或理解有偏差是难免的，如果有什么意见就事论事提出来就好了。相信问题会越讨论越清晰共识会越来越多问题会越来越少。

   你好，我在这里加上  toLocaleString()，这个方法，原文中确实没有，但是我认为加上这个方法之后，显示的时间是本地格式（chrome，Firefox，ie，dege等多个版本验证该方法可用），这种格式更加人性化，而且没有英文的月份等出现，更加直观，相信大家在开发中见到的时间格式大都是：yyyy-MM-dd HH:mm:ss.此外加上之后也没有增加代码的复杂度。
   你提到的原文中并没有出现，是的，原文中确实没有，但是，我有个大胆的想法就是：原文中也应该加上这段代码，作为一段介绍性示例，我们应该做到的是清晰地讲解，而不是追求简洁的代码（直接一个new Date()），此外，更改它也不会影响到框架。
    当然，加不加这段代码，都不会对有一定基础的的使用者造成阅读上的影响，但是我相信精益求精也应该是我们团队的信念和追求。

 来自小小搬砖工的一点拙见，谢垂阅。

你好，我在这里加上  toLocaleString()，这个方法，原文中确实没有，但是我认为加上这个方法之后，显示的时间是本地格式（chrome，Firefox，ie，dege等多个版本验证该方法可用），这种格式更加人性化，而且没有英文的月份等出现，更加直观，相信大家在开发中见到的时间格式大都是：yyyy-MM-dd HH:mm:ss.此外加上之后也没有增加代码的复杂度。
你提到的原文中并没有出现，是的，原文中确实没有，但是，我有个大胆的想法就是：原文中也应该加上这段代码，作为一段介绍性示例，我们应该做到的是清晰地讲解，而不是追求简洁的代码（直接一个new Date()），此外，更改它也不会影响到框架。
当然，加不加这段代码，都不会对有一定基础的的使用者造成阅读上的影响，但是我相信精益求精也应该是我们团队的信念和追求。
来自小小搬砖工的一点拙见，谢垂阅。

发自网易邮箱大师
在2017年8月11日 09:53，勾三股四notifications@github.com 写道：
@Jinjiang commented on this pull request.
In src/v2/guide/index.md:

@@ -69,7 +69,7 @@ var app = new Vue({
var app2 = new Vue({
el: '#app-2',
data: {

message: '页面加载于 ' + new Date()

message: '页面加载于 ' + new Date().toLocaleString()

这里为什么加 .toLocaleString()？
原文中并没有
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

我建议你把这个建议先拿到英文原版的 repo 去讨论，如果能够被采纳，再更新到中文或更多语言也不迟

source: gharchive/pull-request

license: mit

license_type: permissive

license_source: bigquery


text:
defineAsyncComponent如何加载打包后的vue组件

What problem does this feature solve?
比如，我有一个远程组件page1.vue，通过vite进行打包后，生成page1.js，defineAsyncComponent如何引用并注册到当前app内。
What does the proposed API look like?
希望可以像本地的vue组件一样可以被引用。

defineAsyncComponent(() => import('/path/to/page1.js').then(m => m.default))

defineAsyncComponent(() => import('/path/to/page1.js').then(m => m.default))

如果page1.js是远程的呢，比如http:xxx.com/page1.js

@littleweb 同理
defineAsyncComponent(() => import('http://example.com/path/to/page1.js').then(m => m.default))

@littleweb 同理 Same
defineAsyncComponent(() => import('http://example.com/path/to/page1.js').then(m => m.default))

尝试了一下，onMounted没有执行，打包的组件代码如下：
<script>
    export default {
        name: "xxx-lib"
    }
</script>
<template>
    <div>
        {{docid}}
    </div>
</template>
<script setup>
    import { ref, onMounted } from 'Vue';
    import axios from 'axios';

    const docid = ref('xxx');
    onMounted(async () => {
        const md5 = (await axios.get(`https://cs-api.sh-d.com/md5?str=xxx`)).data;
        docid.value = md5;
    });
</script>

那我认为本问题到 vue-core 仓库提问就不太适合了。请 附带最小复现仓库 在 Stack Overflow (英文)、中文社区 （非官方）、官方论坛 或是 SegmentFault（中文）搜索和提问
Then I don't think it's appropriate to ask this question in the vue-core repository. Please provide minimal reproduction repository at Stack Overflow or SegmentFault (Chinese) to search and ask questions

eg. https://stackblitz.com/edit/vitejs-vite-41edbw?file=src%2FApp.vue

不会报错吗   Failed to resolve module specifier "Vue". Relative references must start with either "/", "./", or "../".

source: gharchive/issue

authors: littleweb okchenyi sxzz

repo: vuejs/core

license: MIT

license_source: github-api


text:
fix(runtime-core): ref in v-for does not trigger watchEffect

close #6168
fix(runtime-core): ref in v-for does not trigger watchEffect

Fix Preview

Fix Preview

Beautiful.
I didn't know you could preference specific versions on the playground.
I look forward to this fixing a very similar problem we are seeing in our codebase..
(Fingers crossed they are related)..

Can I ask what the hold up is for this PR? Maybe I can help unblock it?

I see this is still not merged for some reason.. I was coming to see if there is anything I can do to help move this along?

I believe this same fix was merged in #6714, and was released in 3.2.41. The symptoms in the bug report for that PR were slightly different, but the fix ended up being the same.

authors: WORMSS liulinboyi skirtles-code


text:
Volar crashing running typescript files

First, the Volar starts too slow, takes too many minutes. SO, the Volar is stuck, and the highlighting system is not working in real time, so I restarted the Volar extension, and received this error message without details. I need to restart the vscode, but the problem persists.

Sorry for the delay, can you reproduce this problem in https://github.com/johnsoncodehk/volar-starter?

authors: joaoggnogueira johnsoncodehk

repo: vuejs/language-tools


text:
fix(language-core): add missing peer dependency typescript

@vue/language-core tries to require typescript but doesn't declare it as a dependency.
This PR fixes that by declaring typescript as a peer dependency of @vue/language-core.
Ref https://github.com/yarnpkg/berry/actions/runs/4919080804/jobs/8786259067#step:5:63

Thanks!

authors: johnsoncodehk merceyz


text:
Debugger is not work

Version
5.0.0-alpha.7
Environment info
System:
    OS: macOS 11.0.1
    CPU: (4) x64 Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
  Binaries:
    Node: 14.3.0 - /usr/local/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 6.14.8 - /usr/local/bin/npm
  Browsers:
    Chrome: 89.0.4389.90
    Edge: Not Found
    Firefox: 85.0.2
    Safari: 14.0.1
  npmPackages:
    @vue/babel-helper-vue-jsx-merge-props:  1.2.1
    @vue/babel-helper-vue-transform-on:  1.0.2
    @vue/babel-plugin-jsx:  1.0.3
    @vue/babel-plugin-transform-vue-jsx:  1.2.1
    @vue/babel-preset-app:  5.0.0-alpha.7
    @vue/babel-preset-jsx:  1.2.4
    @vue/babel-sugar-composition-api-inject-h:  1.2.1
    @vue/babel-sugar-composition-api-render-instance:  1.2.4
    @vue/babel-sugar-functional-vue:  1.2.2
    @vue/babel-sugar-inject-h:  1.2.2
    @vue/babel-sugar-v-model:  1.2.3
    @vue/babel-sugar-v-on:  1.2.3
    @vue/cli-overlay:  5.0.0-alpha.7
    @vue/cli-plugin-babel: ~5.0.0-alpha.7 => 5.0.0-alpha.7
    @vue/cli-plugin-eslint: ~5.0.0-alpha.7 => 5.0.0-alpha.7
    @vue/cli-plugin-router: ~5.0.0-alpha.7 => 5.0.0-alpha.7
    @vue/cli-plugin-vuex: ~5.0.0-alpha.7 => 5.0.0-alpha.7
    @vue/cli-service: ~5.0.0-alpha.7 => 5.0.0-alpha.7
    @vue/cli-shared-utils:  5.0.0-alpha.7
    @vue/component-compiler-utils:  3.2.0
    @vue/preload-webpack-plugin:  1.1.2
    @vue/web-component-wrapper:  1.3.0
    eslint-plugin-vue: ^7.6.0 => 7.7.0
    vue: ^2.6.11 => 2.6.12
    vue-eslint-parser:  7.6.0
    vue-hot-reload-api:  2.3.4
    vue-loader:  16.1.2 (15.9.6)
    vue-router: ^3.5.1 => 3.5.1
    vue-style-loader:  4.1.3
    vue-template-compiler: ^2.6.11 => 2.6.12
    vue-template-es2015-compiler:  1.9.1
    vuex: ^3.6.2 => 3.6.2
  npmGlobalPackages:
    @vue/cli: 5.0.0-alpha.7

Steps to reproduce

create a project use vue cli 5.0.0-alpha.7
config debug follow https://vuejs.org/v2/cookbook/debugging-in-vscode.html steps

What is expected?
I use debug config in launch.json
{
"type": "chrome",
"request": "launch",
"name": "vuejs: chrome",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}/src",
"breakOnLoad": true,
"sourceMapPathOverrides": {
"webpack:///src/": "${webRoot}/"
}
}
and
module.exports = {
configureWebpack: {
devtool: 'source-map'
}
}
in vue.config.js
but it doesn't work which work in vue cli 4.x
What is actually happening?
it works as usual

use config like below
 configureWebpack: {     devtool: isDev ? 'eval-source-map' : false,   },
vue-cli change sourcemap into 'eval-cheap-module-source-map' by default, i think this is a stupid behaviour.

repo: vuejs/vue-cli


text:
feat: implement version-related APIs for GeneratorAPI

To discuss: is the name serviceVersion / assertServiceVersion ideal? Any other naming ideas?

To discuss: is the name serviceVersion / assertServiceVersion ideal? Any other naming ideas?

serviceVersion / exactServiceVersion
serviceVersion / lockedServiceVersion
serviceVersion / workServiceVersion
...

Well, I think the assert part is accurate. But is serviceVersion clear enough to indicate that it is actually a per-project version number, in contrast to the version field as a global version number?

currentVersion
localVersion
?

currentVersion does not distinguish it from the global version field.
localVersion may be a good alternative but I'm not sure…
While @vue/cli-service is local, it is not depended on by GeneratorAPI…

I would name them as following:

cliVersion
requireCliVersion
cliServiceVersion
requireCliServiceVersion

IMO easier to understand what they mean

🤔prefer assert because it's in line with PluginAPI and babel's API naming.
So,

cliVersion
assertCliVersion
cliServiceVersion
assertCliServiceVersion

WDYT?

Sounds good. We should probably backport this to v3 and let assert* just return false.

Yeah, all non-breaking changes would be backported to v3.

authors: novbing pksunkara sodatea


text:
vue-style-loader missing

When running npm install --global-style and running npm run build the vue-style-loader is missing.
ERROR in ./src/components/ItemList.vue
Module not found: Error: Can't resolve 'vue-style-loader' in 'c:\Development\Test\vue-hackernews-2.0\src\components'
 @ ./src/components/ItemList.vue 5:0-250
 @ ./src/views/CreateListView.js
 @ ./src/router/index.js
 @ ./src/app.js
 @ ./src/client-entry.js

this might be a case of accidental dependency that happens ever since npm i has started flattening everything, but I am of the opinion that all things required/imported from a module should be listed in the package.json

and memory-fs when running npm run dev is also missing

Why would you want to use --global-style? I for one am happy that the days of npm2's nightmare of an endlessly nested depenency tree are over.
But:

I am of the opinion that all things required/imported from a module should be listed in the package.json

You have a point here.

authors: LinusBorg matthiasg


text:
Do we need toComputed API?

What problem does this feature solve?
Image we have such a custom hook:
function useData() {
  const data = reactive({
      foo: {
        bar: 'count'
      }
  })

 const dataRef = ref(data)

  onMounted(() => {
    fetch(...).then(result => {
      dataRef.value = result
    })
  })

  // use toRefs to make a deconstruction safe
  return toRefs(dataRef.value)
}

And  use it in setup:
export default {
  setup() {
    const { foo } = useData()
    return {
      // still un-safe
      bar: foo.value.bar
    }
  }
}

So I changed the code
function useData() {
  const data = reactive({
      foo: {
        bar: 'count'
      }
  })
  // ...
  // use toRefs to make deconstruction safe
  return toRefs({
    foo: toRefs(data.foo)
  })
}

Deconstruction is safe now
export default {
  setup() {
    const { foo } = data
    return {
     // safe
      bar: foo.value.bar
    }
  },
}

Faced with this situation, at first I thought it would be good if there was a toDeepRefs, but I found out that it might cause such a situation
data.xxx.value.yyy.value.zzz

It's too bad isn't it? So, I gave up the idea of toDeepRefs, and instead thought we might need a toComputed/toDeepComputed
data.xxx.yyy.zzz

It feels better.
So, if we have no need to modify the data, would toComputed be more suitable than toRefs? It will make deconstructed data more concise and safer
What does the proposed API look like?
const data = reactive({
    foo: {
      bar: 'count'
    }
})

toComputed(data):
{
  foo: computed(() => data.foo)
}

toDeepComputed(data):
{
  foo: computed(() => {
    return {
      bar: computed(() => data.foo.bar)
    }
  })
}

Don't try to make your state deep-destructure-safe, it feels like unnecessary defensive programming. Destructure concerns should only happen at the root level of an object returned from a composition function.

Your first code sample actually doesn't work because you are replacing dataRef.value in the fetch callback so your exposed refs will always be pointing to stale data...

Your toDeepComputed doesn't work either since computed are also refs. You still end up with data.foo.value.bar.value.

Overall I'm not sure what your goal is - for remote fetched data, it's much more straightforward to expose a single ref pointing to the entire object, and simply don't destructure.

Thanks for the replay!
I did make some mistakes in using the API. It was stupid. But I've always wondered why it's easy for me to fall into a trap when using the composition API. My goal is to find a way to stop users from making such stupid mistakes.
It is true that if you follow: simply don't structure. It will reduce the possibility of making mistakes, but this is a kind of convention, and some people always make mistakes because they don't know the convention.
------------------ Original ------------------
From: Evan You <notifications@github.com>
Date: Fri,Jul 31,2020 6:10 AM
To: vuejs/vue-next <vue-next@noreply.github.com>
Cc: fxxjdedd <506036406@qq.com>, Author <author@noreply.github.com>
Subject: Re: [vuejs/vue-next] Do we need toComputed API? (#1739)
Don't try to make your state deep-destructure-safe, it feels like unnecessary defensive programming. Destructure concerns should only happen at the root level of an object returned from a composition function.
Your first code sample actually doesn't work because you are replacing dataRef.value in the fetch callback so your exposed refs will always be pointing to stale data...
Your toDeepComputed doesn't work either since computed are also refs. You still end up with data.foo.value.bar.value.
Overall I'm not sure what your goal is - for remote fetched data, it's much more straightforward to expose a single ref pointing to the entire object, and simply don't destructure.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

repo: vuejs/vue-next


text:
Beta.5 Issue when unmounting component

Version
3.1.0-beta.5
Reproduction link
I don't have a reproduction link because these kind of bugs are very difficult to isolate (I tried but failed to reproduce without exposing a lot of code). However, I can confirm this happened when we upgraded to beta-5 and not fixed following beta releases.
I've attached a video with the devtool to provide debugging info.
I'm willing to provide more information as necessary, and you guys can maybe help me figure things out as you have more insights on what's going on behind the scenes.
https://user-images.githubusercontent.com/4596409/120663906-7855ff00-c458-11eb-9972-b90f0cc818c5.mp4
Steps to reproduce
The bug happens when unmounting a component tree
What is expected?
Should work as expected
What is actually happening?
TypeError: Cannot read property 'type' of null at unmountComponent

Are you using Suspense?
Can you confirm that: (1) it works in beta.4, and (2) still broken in beta.7?

There are only 7 commits between beta.4 and beta.5 so if possible you can build and link @vue/runtime-core locally to isolate the commit that caused the issue.

Not using Suspense
It works in 3.x including (beta.4) and still broken in beta.7, yup!

OK doing that now!

There are only 7 commits between beta.4 and beta.5 so if possible you can build and link @vue/runtime-core locally to isolate the commit that caused the issue.

So after investigation it turns out the culprit is this one commit: https://github.com/vuejs/vue-next/commit/201060717d4498b4b7933bf8a8513866ab9347e4

Maybe this can help too...
Here's the source code for the component which instance is null:
<script lang="ts">
import { defineComponent, h, computed, mergeProps } from 'vue';
import UIButton from './UIButton.vue';
import UIIcon from './UIIcon.vue';

export const themes = [
  'primary',
  'error',
  'warning',
];
const getProps = arr => arr.reduce((acc, theme) => ({
  ...acc,
  [theme]: {
    type: Boolean,
    required: false,
  },
}), {});

const ButtonOrSpan = (props, { attrs, slots }) => {
  if (props.interactive) {
    return h(UIButton, attrs, slots.default);
  }
  return h('span', mergeProps({ class: 'dib', style: { 'line-height': 1 } }, attrs), slots.default());
};
export default defineComponent({
  components: {
    UIIcon,
    ButtonOrSpan,
  },
  props: {
    ...getProps(themes),
    interactive: {
      type: Boolean,
      default: true,
    },
    icon: {
      type: String,
    },
  },
  emits: {
    delete: null,
  },
  setup (props) {
    const styleClasses = computed(() => {
      const filterThemes = themes.filter((theme) => props[theme]);
      if (!filterThemes.length) return ['primary'];
      return filterThemes;
    });
    const themeStyleClass = computed(() => `-${styleClasses.value.join('-')}`);
    return {
      themeStyleClass,
    };
  },
});

</script>

<template>
  <ButtonOrSpan
    unstyled
    :interactive="interactive"
    class="ui-pill"
    :class="[ $style[themeStyleClass], themeStyleClass, $style.pill ]"
  >
    <span class="dib">
      <UIIcon
        v-if="icon"
        :name="icon"
        class="icon dib v-mid mr1"
      />
      <slot />
    </span>
    <UIIcon
      v-if="interactive"
      name="x"
      class="icon dib v-mid ml1"
      @click="$emit('delete')"
    />
  </ButtonOrSpan>
</template>

I'll need a bit more context on how this component is used when it throws the error - i.e. the parent chain and how this component is consumed by its parent.

@yyx990803 phewww, this was not an easy task but I've managed to create a minimal repro!
https://github.com/AlexandreBonaventure/vue-beta-unmount-bug
after yarn && yarn dev Click on the Toggle button.

The code is super contrived because I spend an hour trimming my app to get to the root of it. So now that all the code is trimmed it does not makes much sense anymore but I hope this will help you out


text:
WeakMap or WeakSet give a false sense of memory safety

Version
3.2.0-beta.5
Reproduction link
link
Steps to reproduce

const a = reactive(myWeakMap)
a.set(myObj, 1)
const v = a.get(myObj) // Enforce tracking on myObj key
deference myObj
myObj will not be GCed because it is in the depsMap of 'a'

What is expected?
As the user is using a WeakMap, he could expect that, when all references to myObj are gone, myObj can be GCed
What is actually happening?
myObj can never be GCed as, due to tracking, it was added to the depsMap (which is a Map rather than a WeakMap)

It is impossible to convert depsMap to a WeakMap because it needs to be iterated when clearing.
In fact, I don't think that it's easily possible to support weak collections in the reactivity module.
It might be better if users are forced to just use a normal Map rather than a WeakMap (or Set rather than a WeakSet) by disallowing proxying a WeakMap/WeakSet. Or warn that the user should actually be using a Map/Set and to make clear that keys should be deleted manually.
After clicking, the object is not removed and retained by the depsMap:

Closing, as this is not a Weak-only issue, but also counts for other reactive Maps or Sets when keys are set to object references.


text:
Template refs defined inside reactive object do not work

Version
3.0.0-alpha.10
Reproduction link
https://jsfiddle.net/1oxdbr0u/1/
Steps to reproduce

Create reactive object in setup like reactive({ foo: null })
Create an element in the template with this ref (

)
Try to get this element inside onMounted hook

What is expected?
HTML element
What is actually happening?
null

If you use ref or convert a reactive object using toRefs, then everything works fine

I think this is expected: you need to explicitly pass a ref object:
reactive({
    	ref: ref(null)
    })

It's rather strange that it is necessary to use ref here, because reactive returns the same reactive object. Maybe this was done for definiteness, because the names are the same. But it seems to me that it is best to get refs from the setup arguments, as described in this RFC

authors: danyadev posva


text:
Vue Router Next without Webpack

What problem does this feature solve?
I have a simple application, and i think using webpack will complicate things in deployment. I tried vue-router without webpack but looks like it isn't supported.
Is there a way to use vue-router next without webpack.
What does the proposed API look like?
Without webpack index.html would be something like
<script src="vue.js" />
<script src="vue-router.js" />

// define routes
// init router
// init app

Take a look at the reproduction at https://new-issue.vuejs.org/?repo=vuejs/vue-router-next (https://jsfiddle.net/posva/3yq6ojLv/5) and https://codesandbox.io/s/vue-router-v4-reproduction-tk1y7

authors: navinSing posva

repo: vuejs/vue-router-next


text:
如何通过this.$router来给每一个route动态设置meta

Vue.js / vue-router versions
2.1.2 / 2.1.1
Reproduction Link

Steps to reproduce
What is Expected?
What is actually happening?
我的需求是：
登录后获取用户资源信息，如xx菜单
我的想法是，获取到信息后，给相应的route来设置meta，然后在router.beforeEach中判断to.meta
但是我给this.$router.options.routes[i]来设置meta，却不能改变this.route.meta
var appRouter = this.$router.options.routes;
appRouter[0].meta = {
auth: true
}
请问怎么才能动态设置route.meta，而不是在routes中静态定义好，
新手，求解答，感谢。

Please ask questions on the forum or StackOverflow.

authors: chaohuaGH posva

repo: vuejs/vue-router


text:
Accessing application state within canActivate not optimal

I boot my app using vue-router and vuex – nothing special here:
let Vue = require('vue'), VueRouter = require('vue-router'), Vuex = require('vuex')

Vue.use(VueRouter)
Vue.use(Vuex)

let App = Vue.extend({
    store: new Vuex.Store({ state: { ... }, mutations: { ... } }),
    vuex: { actions: { ... }, getters: { ... } }
})

let router = new VueRouter()
router.map({ ... })

router.start(App, '#app')

In a Vue component – now it is getting interesting – I decide whether to activate it or to do a redirect based on the Vuex-based application state:
Vue.component('sign-up-form', {
    // ...
    route: {
        canActivate(transition) {

            let signupState = transition.to.router.app.signupState // <-- Vuex getter

            if (signupState === 'start') {
                return true
            } else {
                transition.redirect({ name: 'onboarding' })
            }

        }
    }
})

Accessing the application state is actually difficult for canActivate because the Vue instance does not exist yet and this is null. So using this.signupState is not an option.
Accessing the application state through the root Vue instance (app) is IMO the best way to go. However, using the train wreck transition.to.router.app feels not optimal.
Admittedly, using transition.to.router.app is no hack: transition.to, to.router, and router.app are all officially documented.
IMHO canActivate will likely produce many cases where the decision can't be properly made since it is not bound to a Vue instance. Therefore, I suggest to give it more context. I would not bind it to app since that may easily produce confusion with the other hooks that are bound to the Vue instance being deactivated/reused/activated. Instead, I suggest to add an additional parameter:
/**
 * @param app – The root Vue instance managed by the router instance.
 */
function canActivate(transition, app) { ... }

I think it's better just import the store and directly use its state inside transition hooks.
import store from '...'
.......

canActivate(transition) {
    let signupState = store.state.signupState // <--
}

I thought of this approach, too. However, this would mean I sometimes use the getters and sometimes access the state directly. And by doing that I instantly loose the improved maintainability the getters introduce.
The Vuex documentation explains it nicely:

You might be wondering - why did we choose to use a getter instead of directly accessing the value from the state. [This] presents several distinct advantages:

[...]
[...]
If the value is moved from say store.count to store.counter.value you'd have to update one getter instead of dozens of components.

Extracting the Vuex.Store into store.js would make sense, though, if the Vuex.Store would not only manage the state and the mutations but also the actions and getters. If that were the case I would choose this option. I'll open an issue for that...
Until accessing the getters through the Vuex.Store becomes possible, accessing the getters through the app is a perfectly fine solution. Since the router depends on app anyway it doesn't produce much tighter coupling and the maintainability is preserved.
Does anyone see other use cases where exposing app as the second parameter of canActivate comes in handy? If so, we were more motivated to push this feature request, I guess.

You're right, getters have better maintainability.
As a matter of consistency, it would be a little weird if canActivate has app as parameter while others (activate,data,etc) do not (they have access to this though).
I think the real problem is that vuex getters are dependent on vue instances.
Wouldn't it be better, if vuex store can be standalone (having its own getters), and we can directly access states via its getters, without the presence of vue instances. @yyx990803

This seems to be resolved in Vuex 2.0

Indeed, it is. Thanks!

authors: analog-nico fnlctrl yyx990803


text:
improved for...loop a bit

Since this function would be invoked a lot, it's worthy to be optimized.

I think most browser already optimize this for you.

Yeah, this is no longer necessary in most cases, thanks for the PR anyway!

authors: billouboq dsonet yyx990803


text:
repro: spy on vm

Repro #309

I have a dirty fix that I'm not super proud of, and which needs a fix in vue-next.
If someone has a better idea, please go ahead :)

I have a dirty fix that I'm not super proud of, and which needs a fix in vue-next.
If someone has a better idea, please go ahead :)

This fix won't work, because the vm is read only so the jest.spyOn will not work even with this fix, because it relies on replacing the original function with a spied version.

This fix won't work, because the vm is read only so the jest.spyOn will not work even with this fix, because it relies on replacing the original function with a spied version.

hm, CI failing?

hm, CI failing?

hm, CI failing?

I think we still need https://github.com/vuejs/vue-next/pull/3105 to be merged and released?

hm, CI failing?

I think we still need https://github.com/vuejs/vue-next/pull/3105 to be merged and released?

Yes exactly, we need my PR on vue-next to land (if that's the right move, we'll see!).

Yes exactly, we need my PR on vue-next to land (if that's the right move, we'll see!).

Right, true.

Right, true.

This patch can now land since vue-next v3.0.6 contains the necessary upstream fix.
PR is green and already reviewed, so let's merge and fix #309

authors: afontcu cexbrayat lmiller1990 pikax

repo: vuejs/vue-test-utils-next


text:
named slots not rendering in children of other components with shallowMount

Version
1.0.0-beta.31
Reproduction link
https://github.com/vetruvet/vue-test-utils-child-with-slots-bug
Steps to reproduce
Install dependencies then npm test.
What is expected?
Expect all test cases in the spec to pass.
More specifically, I would expect components with named slots to render their slots regardless of where they are in the component hierarchy.
What is actually happening?
shallowMount test with a component with named slots inside of another component fails because it does not render its slots.
In cases where the component with named slots is not inside another component, the slot rendering works as expected.

In beta.30, none of the shallowMount tests using the component with two slots pass. I think this may have something to do with supporting the new v-slot syntax which was added in beta.31.
Potentially related to #1307, but it's not the same issue because that one does not relate to the new v-slot changes in beta.31. However, I think #1309 may address this.

I believe that is expected since shallowMount doesn't render children components, thus not rendering their slots. if you want to render them use the 'mount' function for deep mounting (aka mounting the parent and children components)
check the following link for details.
https://vue-test-utils.vuejs.org/api/#mount

I understand what you're saying, but that's not how vue test utils works right now. If you look at other test cases (specifically, in the "shallow mount" describe block) in my reproduction repo, it IS rendering slots in child components under some cases with shallowMount. My concern is the inconsistency of the rendering - I would be OK with it if it was either consistently rendering slots or not rendering them at all.

To elaborate, when using shallowMount, the default slot is rendered, but named slots are not. I would not be OK with not rendering any slots in stubbed child components, because then it will be impossible to test that the template is correctly being passed down to the child. Using mount is not an option because that turns the unit test into an integration test. For stubbed child components, we can currently test for attributes and props using childWrapper.attributes() and childWrapper.props(), but nothing equivalent exists for templates.

Would it make sense to provide a generic stub component similar to RouterLinkStub that takes options to define the stub behaviour? In that case we could pass in a list of named slots to render.

Here's a workaround without using mount:
function mockSlots(scopedSlots) {
  return {
    render(h) {
      return h('div', scopedSlots.map(([name, slotProps]) => this.$scopedSlots[name](slotProps)));
    },
  };
}

<!-- Foo.vue -->
<Bar>
  <template #namedSlot>
    <Baz />
  </template>
</Bar>

it('renders named slot', () => {
  const wrapper = shallowMount(Foo, { stubs: { Bar: mockSlots([['namedSlot', null]]) } });
  expect(wrapper.findComponent(Baz).exists()).toBe(true) // true
})

authors: CyberAP danieltian giddie mahmoudyusof vetruvet

repo: vuejs/vue-test-utils


text:
docs(ru): add link for propsData

According to https://github.com/vuejs/vue-test-utils/commit/7d2980113816a7cec93d689b8f7250f8db1bcc82
cc @Alex-Sokolov

friendly ping @eddyerburgh


text:
Vue.js input[type=password] not working nicely with 1Password

Vue.js version
2.1.6
Reproduction Link
https://codepen.io/kylewelsby/pen/ENMMoM
Observed on
Mac Chrome 55.0.2883.95
Steps to reproduce
With 1Password Chrome Extension installed and enabled
Click the Login Button
You will see 2 alert boxes with onSubmit!
What is Expected?
The form submit event should be triggered once per button click.
You should see only 1 alert box with onSubmit
What is actually happening?
When clicking a submit button type in a form, the form submit event is triggered more than once at a time.
This only happens when the field includes a type=password

Sorry but it seems to be a problem of the plugin.
Try binding the submit handle directly on the button with @click="onSubmit", to prevent the plugin from messing with native dom events.
https://codepen.io/fnlctrl/pen/WomWym

authors: fnlctrl kylewelsby

repo: vuejs/vue


text:
console error from vue.commen.js : t.getFullYear is not a function

Uncaught TypeError: t.getFullYear is not a function
at VueComponent.getYear (eval at  (app.js:900), :1:18390)
at VueComponent.boundFn [as getYear] (eval at  (app.js:717), :126:14)
at VueComponent.rims (eval at  (app.js:900), :1:19288)
at Watcher.get (eval at  (app.js:717), :2934:27)
at Watcher.evaluate (eval at  (app.js:717), :3042:21)
at VueComponent.computedGetter [as rims] (eval at  (app.js:717), :3240:15)
at VueComponent.generateSlots (eval at  (app.js:900), :1:16523)
at VueComponent.boundFn [as generateSlots] (eval at  (app.js:717), :127:12)
at VueComponent.mounted (eval at  (app.js:900), :1:19781)
at callHook (eval at  (app.js:717), :2754:19)
vue.common.js?e881:435TypeError: t.getFullYear is not a function
at VueComponent.getYear (eval at  (app.js:900), :1:18390)
at VueComponent.boundFn [as getYear] (eval at  (app.js:717), :126:14)
at VueComponent.rims (eval at  (app.js:900), :1:19288)
at Watcher.get (eval at  (app.js:717), :2934:27)
at Watcher.evaluate (eval at  (app.js:717), :3042:21)
at VueComponent.computedGetter [as rims] (eval at  (app.js:717), :3240:15)
at VueComponent.eval (eval at  (app.js:717), :362:18)
at Watcher.get (eval at  (app.js:717), :2934:27)
at Watcher.run (eval at  (app.js:717), :3003:22)
at flushSchedulerQueue (eval at  (app.js:717), :2807:13)

are you sure this is not problem in your application code?

but now I annotation code mydate.getFullYear(),it still show error in my console,It make me feel collapse.

Closing as it's not related to vue. Please make sure to follow the Issue Reporting Guidelines before opening an issue. Thanks!

authors: YanwuSenlu fnlctrl wong2


text:
why i can not use v-model in render function?

Vue.js version
2.0.2
Reproduction Link

Steps to reproduce
What is Expected?
What is actually happening?

Because that'S not supported.

authors: LinusBorg MeishanGuo


text:
The Vuejs.org/guide causing Safari Service Worker using 100% CPU

The Vuejs.org/guide webpages, for instance 'router.vuejs.org', has caused Safari Service Worker using 100% CPU. It's happened a few time since last few days. When this happens, the webpage is always out-focused.
macOS Mojave 10.14.5
Safari 12.1.1

Sorry, I don't really get what you mean. vuejs.org(/guide) and router.vuejs.org are two very different web sites.

I've left my Safari open on router.vuejs.org for several hours now to no such problem at all. Most likely it's some problem with your machine.

authors: phanan zrfrank


text:
Update adding-instance-properties.md

missing word

Thanks @earthtone0ne!


text:
feat(theme-base): plugin slots for cms pages, sections, blocks and elements

Changes

closes #1484

Added slots for CMS.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

authors: CLAassistant patzick

repo: vuestorefront/shopware-pwa


text:
"Interactive Fractal" example is leaking memory on Windows

Template

Version of vulkano: 0.27.1 (I checked out master at bb2671785d7de4924e2aece17516de91f30e3c65)
OS: Windows 11 Home 64-bit
GPU (the selected PhysicalDevice): NVIDIA GeForce RTX 3080
GPU Driver: NVIDIA driver 496.76

Issue
I'm running cargo run --bin interactive_fractal and seeing the used memory rise at around 2.7MB/s in the task manager (~27 MB in ~10 seconds). The same occurs if I run with the --release flag, but all of the following information is without it.
I used the Windows Performance Recorder program to record about 20 seconds of the example running and you can clearly see the memory rising at a regular rate. All these VirtualAlloc commits seem to stay alive until the program is manually terminated after ~24 seconds.

When looking at the rows in the table, I'm noticing a lot (90%+) of commits have the exact same size (0.262 MB):

Here's the contents of the table in the above screenshot: virtualalloc commit lifetimes.txt (666KB)
The commit stack for each of these is exactly the same:
[Root]
ntdll.dll!RtlUserThreadStart
kernel32.dll!BaseThreadInitThunk
interactive_fractal.exe!__scrt_common_main_seh
interactive_fractal.exe!main
interactive_fractal.exe!std::rt::lang_start<tuple$<> >
interactive_fractal.exe!std::rt::lang_start_internal
interactive_fractal.exe!std::rt::lang_start::closure$0<tuple$<> >
interactive_fractal.exe!std::sys_common::backtrace::__rust_begin_short_backtrace<void (*)(),tuple$<> >
interactive_fractal.exe!core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
interactive_fractal.exe!interactive_fractal::main
interactive_fractal.exe!interactive_fractal::compute_then_render
interactive_fractal.exe!interactive_fractal::app::FractalApp::compute
interactive_fractal.exe!interactive_fractal::fractal_compute_pipeline::FractalComputePipeline::compute
interactive_fractal.exe!vulkano::command_buffer::auto::AutoCommandBufferBuilder<vulkano::command_buffer::auto::PrimaryAutoCommandBuffer<vulkano::command_buffer::pool::standard::StandardCommandPoolAlloc>,vulkano::command_buffer::pool::standard::StandardCommandPoolBuilder>::build<vulkano::command_buffer::pool::standard::StandardCommandPoolBuilder>
interactive_fractal.exe!vulkano::command_buffer::synced::builder::SyncCommandBufferBuilder::build
interactive_fractal.exe!vulkano::command_buffer::synced::builder::commands::impl$0::bind_pipeline_compute::impl$0::send
interactive_fractal.exe!vulkano::command_buffer::sys::UnsafeCommandBufferBuilder::bind_pipeline_compute
interactive_fractal.exe!ash::vk::features::DeviceFnV1_0::cmd_bind_pipeline
nvoglv64.dll!<PDB not found>
nvoglv64.dll!<PDB not found>
nvoglv64.dll!<PDB not found>
KernelBase.dll!GlobalAlloc
ntdll.dll!RtlpAllocateHeapInternal
ntdll.dll!RtlpLowFragHeapAllocFromContext
ntdll.dll!RtlpAllocateUserBlock
ntdll.dll!RtlpAllocateUserBlockFromHeap
ntdll.dll!RtlpAllocateHeapInternal
ntdll.dll!RtlpAllocateHeap
ntdll.dll!RtlpExtendHeap
ntdll.dll!RtlpFindAndCommitPages
ntdll.dll!NtAllocateVirtualMemory
ntoskrnl.exe!KiSystemServiceCopyEnd
ntoskrnl.exe!NtAllocateVirtualMemory
ntoskrnl.exe!MiAllocateVirtualMemory

If I'm reading this correctly cmd_bind_pipeline calls into nvoglv64.dll (NVIDIA dll?), which does some memory allocation for some reason, but this doesn't get cleaned up until the program exits.

Context: I'm writing my own program based on this specific example (I'm toying with ray marching) and am experiencing the exact same issue there, including the repeated allocations of exactly 0.262MB. In that program I am limiting the FPS to 60, which reduces the amount of memory allocated per second from ~2.7MB/s to ~0.2MB/s. If I disable the frame rate limiting, the memory usages also starts rising at a similar rate to the interactive fractal example.

I really hope this is enough information for someone with more experience with Vulkano/Vulkan (or graphics programming in general... or memory leaks... I'm not in my element here :P) to figure out what is happening here. If more information is required, I'm happy to spend more time on this!

It's hard to say whether this is a problem in Vulkano or your graphics driver. Are you able to test it with another driver, and a non-Vulkano program that uses Vulkan?

It's hard to say whether this is a problem in Vulkano or your graphics driver. Are you able to test it with another driver, and a non-Vulkano program that uses Vulkan?

I'm not sure about another graphics driver. I know there's Nouveau for Ubuntu, but are there alternatives for Windows?
I will have a look for a similar Vulkan program that doesn't use Vulkano.

I have cloned this repository, containing many Vulkan examples. I've tried a bunch of these examples, and none of them seem to leak any memory. In particular I tried the computeraytracing example, which I felt had the most similarity to the interactive_fractal example, due to its use of a compute shader for computing the ray tracing.
I've also ran all the Vulkano examples that use an EventLoop (so they stay alive long enough to observe the memory leak):

buffer-pool - no leak
clear_attachments - no leak
gl-interop - (did not run)
indirect - LEAK!
instancing - no leak
multi-window - no leak
occlusion-query - no leak
tessellation - no leak
triangle - no leak
deferred - no leak
image - no leak
immutable-sampler - no leak
interactive_fractal - LEAK!
push-descriptors - no leak
runtime-shader - (did not run)
runtime_array - no leak
teapot - no leak

So, only the indirect and interactive_fractal examples seem to leak memory for me. If I'm not mistaken, those are also exactly the only ones that use a compute shader, further suggesting the problem is in that area.

cmd_bind_pipeline is a Vulkan API call; it is just the Ash binding for the vkCmdBindPipeline library function. So if the memory allocation is happening within that function (is it?) then it would seem that the driver is the problem. On the other hand, it may be behaving badly because of an error elsewhere in Vulkano that gives the driver incorrect data. Very hard to track down...

While I'm also not experienced with leaks, I ran the following and found no leaks:
valgrind --tool=memcheck --leak-check=yes cargo run --bin interactive_fractal
Vulkano: master
OS: Linux Mint 20.2
GPU: AMD Radeon RX 580
Driver: Mesa/RADV 21.3.2 (Vulkan 1.2.195)

When I ran the example on my Ubuntu machine (a laptop without dedicated graphics card), I also didn't perceive any memory leaks. So that would lead me to be inclined to also think it's just a driver issue, except that the non-Vulkano Vulkan examples did run without memory leaks...
I certainly agree that it's very hard to track down. Do you have any other ideas for what I might try to get this figured out?

I asked in a Rust group if anyone else can try it out and see if they can reproduce.

I have cloned this repository, containing many Vulkan examples. I've tried a bunch of these examples, and none of them seem to leak any memory. In particular I tried the computeraytracing example, which I felt had the most similarity to the interactive_fractal example, due to its use of a compute shader for computing the ray tracing.
I've also ran all the Vulkano examples that use an EventLoop (so they stay alive long enough to observe the memory leak):

buffer-pool - no leak
clear_attachments - no leak
gl-interop - (did not run)
indirect - LEAK!
instancing - no leak
multi-window - no leak
occlusion-query - no leak
tessellation - no leak
triangle - no leak
deferred - no leak
image - no leak
immutable-sampler - no leak
interactive_fractal - LEAK!
push-descriptors - no leak
runtime-shader - (did not run)
runtime_array - no leak
teapot - no leak

So, only the indirect and interactive_fractal examples seem to leak memory for me. If I'm not mistaken, those are also exactly the only ones that use a compute shader, further suggesting the problem is in that area.

I have also been experiencing interesting memory leak issues running on Windows, and it seems that I am encountering the same tests leaking and not leaking on my machine, with the inclusion of multi_window_game_of_life also leaking for me. I suppose the unifying theme is the inclusion of a compute shader in the rendering process of leaking examples.
In my own experimenting, I've been able to get compute and rendering to work without leaking memory each frame by following the template set in https://vulkano.rs/guide/windowing/event-handling ; specifically, each frame in the swapchain is given a unique future in an array and synchronization is based around this. I haven't been able to identify exactly why this prevents memory leakage, or what is leaking in the examples, but my current suspicions are something along the lines of if a future is dropped before completing, it is losing track of resources, based partly on the phrasing of "If possible, checks whether the submission has finished. If so, gives up ownership of the resources used by these submissions." (emphasis is mine, https://docs.rs/vulkano/0.29.0/vulkano/sync/trait.GpuFuture.html#tymethod.cleanup_finished ).
I'll keep investigating, but thought I'd share what I've learned so far.

Tried to reproduce on Windows 10 with NV 1080 Ti, but on my machine using https://github.com/vulkano-rs/vulkano/commit/10d734955633aad8fe816d5cd12e6f3728749539 I do not experience a memory leak running either interactive_fractal or indirect.

@trevex I did not experience a memory leak on either example when run in both debug and release modes. I think it is fair to say that the recent refactors and cleanup work may be helping 🙂

I just tested the latest master on my machine and I no longer experienced any memory leaks in the interactive_fractal example!
I did a quick git bisect and found that the memory leak was fixed in 91dc54413507511bbb9df260ea9b984a5b1dcb67 (nice work @marc0246!)

authors: Mesoptier Rua ryco117 trevex

repo: vulkano-rs/vulkano


text:
Vulkano 2022 Organization and Planning

Dear colleagues,
I want to thank you for your hard work in developing and evolving our project, and congratulate you on New Year! :tada: :tada: :tada:
Today there are many alternatives in Rust for graphics programming. What makes Vulkano special, and why I personally love it, is being a comfortable instrument in personal projects that inspires craftsmanship enthusiasm. And this is of course among the fact that Vulkano is a great and practically handy API with many useful features.
This spirit was laid in Vulkano foundation by Pierre Krieger, the initial developer, back in 2016. When Pierre left the project around 2018 it was maintained by Lucas Kent, and then in the middle of 2019 Austin Johnson took the role of the primary maintainer and still performing the project supervising. Among Austin's personal significant development contribution to the codebase that revived Vulkano and its infrastructure from nearly abandoned state in the beginning, we started slowly moving from a single-maintainer policy to a community-driven development. And I believe we reached significant progress by now.

Today Vulkano is fully developing by the community. It's not just small features and maintenance updates, but evolving the core architecture. The list of all implemented features and contributors of the recent one and a half years would be too long for this message, but I want especially note @Rua's contribution, who did a prodigious amount of work and made Vulkano significantly closer tied to the Vulkan design. And I also want to give thanks to Rua for her help in the user support and Pull Requests review too!
Vulkano long-term developing history driven by a friendly community makes Vulkano a robust choice. A growing number of new contributions and discussions confirm interest in the project.
The technical aspects of Vulkano are in a good state, but to move forward and help new users get involved and started with Vulkano we need to focus on other aspects too. And I will need your help, friends because my capabilities in managing Vulkano are limited. Partially because I have to focus on my personal project that uses Vulkano, and partially because of my full-time job.

We need to improve our website in Vulkano-www, tutorials, how-to guides, and examples. I recently merged a Pull Request in Vulkano-www with Tutorial updates waiting for review for too long. And I think we need a dedicated maintainer(or maintainers) who will work on updates regularly. At least to maintain the tutorial itself, but I think our website can be improved too in many ways. Based on the recent contribution history, I would suggest @ZakStar17 and @hakolao if it's feasible for them.
We need more regular maintainers. I keep an eye for all PRs during the week, but I usually can manage them once per week at best. Perhaps, for something big it's fine, but we have regular small and medium PRs that I believe can be promoted faster. If it's feasible for Rua, I would like to make her a regular Vulkano maintainer with PR merging access.
We need a regular moderator for our Gitter chat. Initially, I was planning to close the chat completely since there was no activity in the past, but recently the activity starts growing again.
We need more Vulkano highlights in media. This includes in first place Reddit posts, Rust GameDev Newsletter digest, attending on meetups(e.g. Rust Gamdev Meetup), etc. I think I can do it, but I will need to be lesser loaded with other items in this list.

I don't have any specific preferences regarding these roles. If someone wants to volunteer, I will very much appreciate it.
Aside from this, there are a few other things that I want to resolve, but I want to hear community feedback first:

I think we need to archive vk-sys and vulkano-examples. Both repositories confuse new users, and we don't practically maintain them. All relevant examples are in the main repository.
Github introduces a new feature called Discussions. I don't think it's much different from Issues, but if you like this idea and there are no objections, we can turn this feature on.

I'm finishing my long message. Thank everyone for your attention! :-) I would like to hear your feedback and ideas!
Cheers,
Ilya Lakhin.
P.S. If someone has a published project using Vulkano, please let me know. This is important for us!
CCd @AustinJ235, @bwrsandman, @dpytaylo, @faulesocke, @TJYSunset, @Amjad50, @fayalalebrun, @rroohhh, @incertia, @VictorBulba, @dunkyl, @jmacnak, @funmaker, @nalane, @tuguzT, @unrelentingtech, @itzmeanjan, @maximbaz, @Perksey, @nxfs, @prataprc, @ishitatsuyuki, @kdelamo94, @i509VCB, @gurchetansingh, @Timbals, @Narsil, @CABrinegar, @IcyDefiance, @prataprc, @Arc-blroth, @dmarcuse, @dadleyy, @mvilim, @danielzgtg, @stephan-cr, @Databean, @drhaynes, @DaAitch, @EthanYidong, @gurchetansingh, @Tenebryo, @qnope, @Gosuo, @honoriocassiano, @dobrakmato, @Horki, @MoreTacos, @morr0ne, @sburton84, @Tetrel, @tmfink, @P-E-Meunier, @nifker, @colinmarc, @DiamondLovesYou, @VictorKoenders, @one-bit, @jdnewman85, @SuperSamus, @jeffw387, @jmi2k, @simdimdim, @KillianDS, @colepoirier, @kazzix14, @SamHSmith, @0xReself, @jbit (sorry if I missed someone or added by mistake)

I seem to be in the spotlight here, but I want to thank everyone else who has contributed to Vulkano as well. I contribute because I enjoy doing so, seeing the improvement and knowing that it helps others out is a big driving force for me. Becoming a maintainer is possible for me, but I'd like to discuss some practical things with you about that first.
Btw, it's "her" for me. :)

I think it would be a good opportunity right now for me to take vulkano website updates to be a part of my routines. So I’ll gladly volunteer. I’ll try to get a first PR next week.
There are also some example ideas in my mind that could make the library more approachable. That the website would be perfect for.
One note: I wasn’t even familiar with gitter really, or perhaps I did search stuff from there some time ago, but Discord seems to be a more intuitive option. Could there be a Vulkano Discord? I’ve found it helpful with Rapier physics library for example. It could also be a lower treshold for questions but also showcasing people’s work.

I'm proud to say that at VideowindoW we're using Vulkano to enable asynchronous video stream compositing for our software.
We currently have a position open for a Rust Graphics Developer. If you would like a full-time job developing a graphics application in Rust, while making public contributions to Vulkano as part of enabling your work, send me an email at francisco@videowindow.eu

Thank you so much for your feedback!
Based on the feedback and the prior discussion with members and Vulkano-rs admins I made the following updates.

@Rua was assigned a Write access role to the Vulkano repository. I provided her with instructions on maintenance process by email. From now on she will be able to review and merge Pull Requests, and maintain Github Issues too.
@hakolao and @ZakStar17 were assigned Write access roles in the Vulkano-www repository, and they will help us with the website maintenance. Zakhar already made several important fixes in the Website Tutorial to make it up to date with the recent Vulkano release, and Okko has created great examples with Vulkano inside and outside of our organization that demonstrate a number of complex features in action.
I left the instructions on the Website repository maintenance process in this message.
vk-sys and vulkano-examples repositories have been archived. They are still publicly available for reading, but I left a notice in Readmes regarding their status.

Please welcome our new maintainers!
@fayalalebrun I'm glad to see that Vulkano has an example of commercial applications too! I added VideowindoW to the list of Vulkano Projects, that have a priority for us in terms of maintenance and collaboration.

Could there be a Vulkano Discord?

@hakolao Yes, I think it's a good idea! Discord has definitely better collaboration features than Gitter and Github Discussion. And a wide audience. Do you want to take a lead in setting up the server? For the icon you can use Vulkano's icon.

@Eliah-Lakhin I went ahead and made the Discord server. https://discord.gg/GrEqcbk4
Not the most experienced creator in discord but I think I got it setup fairly well.

Amazing @AustinJ235. And thanks @Eliah-Lakhin. Just joined the Discord.

I think this can be closed now.

authors: AustinJ235 Eliah-Lakhin Rua fayalalebrun hakolao


text:
Adding the "VK_KHR_multiview"-extension.

Adding the "VK_KHR_multiview"-extension. This may well require additional tags in order to function properly. I will test & revise.

[ ] Added an entry to CHANGELOG_VULKANO.md or CHANGELOG_VK_SYS.md if knowledge of this change could be valuable to users
[ ] Updated documentation to reflect any user-facing changes - in this repository
[ ] Updated documentation to reflect any user-facing changes - PR to the guide that fixes existing documentation invalidated by this PR.

Just discovered I also need to add "VK_KHR_get_physical_device_properties2" to the extensions list. Will follow this up with another PR once this is merged.

I'll merge if you are ready once https://github.com/vulkano-rs/vulkano/pull/1244 goes through. This is preventing merges due to the CI requirement.

@jpryne Go ahead and pull in master again and should be ready to go.


text:
secp256k1 source outdated

While working on a project including https://github.com/vulpemventures/go-elements and https://github.com/Blockstream/gdk (wrapped with cgo) I experienced very weird errors.
My gdk wrappers would only work properly if run in complete isolation without imports from other packages. Then I noticed that this package is the one causing the issue.
https://github.com/ElementsProject/libwally-core, a dependency of gdk depends on secp256k1 aswell and I suspect that this 3 year old version is causing conflicts with the one built into libwally core. I think updating the statically included secp256k1 lib would resolve the issue.

Hi @jackstar12, can you specify how this lib causes problems to your project?
We included the C lib in a static way instead of git submodule because we couldn't import this as dep of go-elements otherwise. At that time, go modules didn't work really well with git submodules. I would need some time to check if the issues have been fixed.
Beside this, I tried locally to update the C lib to the latest version but then I'm not able to make the go wrappers work. At some point, the file src/basic-config.h used by secp256k1.go was removed from the C lib and removing its import is just not enough.
I wonder if you have any experience with this, you may want to help us figure this out?

Hi @jackstar12, can you specify how this lib causes problems to your project?

All I know is that there must be some sort of collision with libwally-core, which builds secp256k itself (they use the latest version). I have a working go program which calls gdk, but as soon as go-secp is imported, the login call fails - I guess some issue with the encryption or whatever now being wrong. I can share that one if youre interested.

Beside this, I tried locally to update the C lib to the latest version but then I'm not able to make the go wrappers work. At some point, the file src/basic-config.h used by secp256k1.go was removed from the C lib and removing its import is just not enough.
I wonder if you have any experience with this, you may want to help us figure this out?

Unfortunately no, but I could potentially give it a try.


text:
[BUG:MAC] no automatic addition for tokens when enabling

Describe the bug
When adding tokens in ChainDetailView the tokens doesn't get automatically added to the already selected tokens, like on iPhone/iPad. Also the refresh button doesn't help to solve the issue. It is needed to go back to HomeView and enter the respective chain again
Expected behavior
Same behaviour as on iPhone/iPad

Device: Mac
OS: 14.5
Version 29

Closing. Not able to reproduce anymore

repo: vultisig/vultisig-ios


text:
Bump Dependencies (ttf2woff2 + devDependencies)

ttf2woff2 3.0.0 supports node 12
mocha tests are green

v0.6.0 published

authors: jkroepke rainfore

repo: vusion/webfonts-generator

license: Unlicense


text:
Restored the forgotten SubstrateKitties mention

This is a fork of https://github.com/shawntabrizi/substratekitties but somehow mentions of it have disappeared. Restoring it cause we are all a big family!! ❤

:heavy_check_mark:  LGTM

Thanks for adding this @jeluard :raised_hands:
Will merge it today :wink:

Thanks for merging!

authors: jeluard riusricardo vasa-develop


text:
ALE not picking up .eslintrc

My ale isn't picking up my eslintrc https://github.com/instructure/canvas-lms if you were to run yarn and open up https://github.com/instructure/canvas-lms/blob/master/app/jsx/permissions/actions.js you can see that it doesn't pick up the local eslintrc.
v8.0.459
Operating System: 10.13.5
:ALEInfo
Current Filetype:
Available Linters: []
Enabled Linters: []
Linter Variables:
Global Variables:
let g:ale_cache_executable_check_failures = v:null
let g:ale_change_sign_column_color = v:null
let g:ale_command_wrapper = v:null
let g:ale_completion_delay = v:null
let g:ale_completion_enabled = 0
let g:ale_completion_max_suggestions = v:null
let g:ale_echo_cursor = 1
let g:ale_echo_msg_error_str = 'Error'
let g:ale_echo_msg_format = '%code: %%s'
let g:ale_echo_msg_info_str = 'Info'
let g:ale_echo_msg_warning_str = 'Warning'
let g:ale_enabled = 1
let g:ale_fix_on_save = 0
let g:ale_fixers = {'javascript': ['eslint', 'remove_trailing_lines']}
let g:ale_history_enabled = 1
let g:ale_history_log_output = 1
let g:ale_keep_list_window_open = v:null
let g:ale_lint_delay = 200
let g:ale_lint_on_enter = 1
let g:ale_lint_on_filetype_changed = 1
let g:ale_lint_on_save = 1
let g:ale_lint_on_text_changed = 1
let g:ale_lint_on_insert_leave = 0
let g:ale_linter_aliases = {}
let g:ale_linters = {}
let g:ale_linters_explicit = 0
let g:ale_list_window_size = v:null
let g:ale_list_vertical = v:null
let g:ale_loclist_msg_format = v:null
let g:ale_max_buffer_history_size = v:null
let g:ale_max_signs = v:null
let g:ale_maximum_file_size = v:null
let g:ale_open_list = v:null
let g:ale_pattern_options = {}
let g:ale_pattern_options_enabled = 0
let g:ale_set_balloons = 0
let g:ale_set_highlights = 1
let g:ale_set_loclist = 1
let g:ale_set_quickfix = 0
let g:ale_set_signs = 1
let g:ale_sign_column_always = v:null
let g:ale_sign_error = v:null
let g:ale_sign_info = v:null
let g:ale_sign_offset = v:null
let g:ale_sign_style_error = v:null
let g:ale_sign_style_warning = v:null
let g:ale_sign_warning = v:null
let g:ale_statusline_format = ['%d error(s)', '%d warning(s)', 'OK']
let g:ale_type_map = v:null
let g:ale_use_global_executables = v:null
let g:ale_warn_about_trailing_blank_lines = 1
let g:ale_warn_about_trailing_whitespace = 1

So I have an update on this issue.  It looks like jshint is conflicting with jslint or both are running at the same time.  I have worked around this by setting
:let b:ale_fixers = {'javascript': ['eslint']}
:let b:ale_linters = {'javascript': ['eslint']}

in my vimrc but there are some js files I still have to do that.

Was your problem that jshint was reporting some problems, so you had to select only ESLint? ALE will run everything it can find. I recommend setting the following in your ftplugin file if you only want to run ESLint.
" In ~/.vim/ftplugin/javascript.vim

let b:ale_linters = ['eslint']

The problem was that jshint was taking precedence over eslint.  I don't have jshint configured in my repro at all which is why it was weird it was trying to use jshint over eslint. I ended up just removing the jshint file from ale itself because the above lets stopped working in my vimrc :S
will your vim also be true for fixing? Like will this also apply to fixing? I also use vim-javascript so would I add that to my path vim-javascript/after/ftplugin/javascript.vim

You can add let b:ale_fixers = ['eslint'] too if you want to fix files with only ESLint. No fixers are enabled by default. It sounds like you just need to configure ALE so it doesn't run JSHint, so I'll close this.


text:
Doesn't work for Bumble ...

So I wanted to use this module for Bumble verification process but it doesn't work, when I try to take the photo it just shows a whitescreen.
If anyone has a solution I would appreciate help, I would also be willing to pay if needed.

@mcanook hey, does the photo works in other apps like WhatsApp or Snapchat? And have u tried taking a photo there

Have you tried this? www.youtube.com/watch?v=11fz-ssXqWQ&ab_channel=Swapcam

Have you tried this? www.youtube.com/watch?v=11fz-ssXqWQ&ab_channel=Swapcam

The Youtube video has been terminated. Do you have any idea?

authors: Kittyxox Ladiesmen mcanook reptilano


text:
[style] refactor hover scale amount value

Small style refactor to items hover css upscale

Just a small comment about the PR text: "refactor" is when you change code but don't change behavior. In this case technically it is not a refactor, but an improvement 😉

authors: danicuki vitormancio


text:
WebVR

http://webvr.info also new community group...

@slightlyoff can you send me your points?

@toji, @slightlyoff
We're requesting a TAG review of WebVR and the related gamepad API extensions for VR controller support. Possibly to get us on the schedule the week of 8/22?
Explainer doc will be ready shortly, proposed APIs are here:
WebVR: https://w3c.github.io/webvr/
Gamepad extensions:
https://github.com/w3c/gamepad/pull/25
https://github.com/w3c/gamepad/pull/26

Picked up 31-Aug-2016. We're working to get you a review.

@torgo
We are intending to ship in Chrome 55, would appreciate it if we could expedite the TAG review scheduling to the week of Sept 12 or 19.

I'm planning on working on this the week starting Oct. 3 (have TPAC next week, then home remodeling the week after). If Alex can make progress faster, then perhaps the week of the 26th is possible...

One thing that would be good to get early feedback on from the TAG is this specific issue:
https://github.com/w3c/webvr/issues/128

Taken up at our Tokyo face-to-face meeting.
Re: https://github.com/w3c/webvr/issues/128, we tend to agree that the pattern is not very "webby". As noted, the same amount of mem-copying is used in both approaches, but in the "new object" approach, you must additionally allocate a new var (at a minimum), and that's what I understand the concern to be (GC backpressure). @slightlyoff and I agree that it's a bit premature to be concerned about how much of a real-world problem this is without concrete implementation data, and so lacking that, we would be in favor of changing to a model that returns a new object instance each time.
As an alternative approach, the frame data could be considered a mutable state object, and you would use a singleton to store all the data (and to freshen the frame data within), and announce changes via events:
partial interface VRDisplay {
   readonly attribute VRFrameData currentFrameData;
};

where the VRFrameData object has a change event. In this way you avoid allocated new objects each frame in a way that is more "webby". This is not prescriptive, just an alternate approach.
For the larger review, I haven't yet started it, but in discussion at our meeting, one concern raised was how much work would be required on the UI thread to achieve a 120Hz framerate, and whether it makes sense to require off-thread processing via off-screen Canvas.

Thanks to @bfgeek for his help in putting together a draft review: https://github.com/w3ctag/spec-reviews/blob/master/2016/11/webvr.md
/cc @toji @bfgeek @travisleithead @meganlindsay

Brought up in Tokyo F2F.
We took a second look at this. It seems like the focus of the work has been shifted to 2.0 (whereas our review above was on 1.x) which presumably is in heavy development. We would be extremely interested in having a architectural decisions (and figure out dependencies and upstreaming work to dependent platform specs) - would the group be interested in this?
@toji @RafaelCintron (feel free to add others into the loop)

We had a discussion whether or not it was a good idea to have a isolated VR world.

+@cvan @kearwood @NellWaliczek and @DigiTec, to name a few.
A bit of background: After both the previous TAG review of 1.x and input from several other sources the WebVR community group collectively decided that we needed to make larger, backwards-compatibility-breaking changes to the spec before it was ready for widespread use. We've dubbed this effort "2.0" for disambiguation purposes within the group, but do not intend to promote it publicly as a 2.0 API (it will replace any implementations of the 1.x API and simply be called "WebVR").
Our intention has been to present the revised API for TAG review once we had agreed on the high level approaches we wanted to take for a few outstanding questions so that we could get feedback on all major aspects of the API. We're happy to discuss the current state of things with anyone who has questions, though! In the meantime the WebVR explainer is the best place to review the current designs. (For the record This branch is a bit newer and reflects some more of the ongoing discussion in the GitHub issues.)
On the topic of isolating VR from the rest of the web, the members of the community group all pretty much agree that we want to bridge the gap between the two over time. Our focus for the moment is a minimum viable spec that gives basic access to the hardware, and once that's shipped we can layer on various capabilities to harness more of the traditional web in VR and visa-versa. In the meantime we are putting a pretty heavy emphasis on VR as a progressive enhancement to more traditional WebGL content, rather than encouraging developers to build VR-only pages.
Please feel free to reach out with questions at any time!

Now that we have #185, maybe we should close this and move the discussion there?

authors: bfgeek cynthia meganlindsay slightlyoff toji torgo travisleithead triblondon


text:
Navigation Error Logging

https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationErrorLogging/Overview.html
Needs promises

Reviewed! Via email to their list. http://lists.w3.org/Archives/Public/public-web-perf/2015Jan/0014.html
Maybe we should add a link to that to this repo...

Discussed in NYC; @domenic to re-review. Will probably close after that.

New draft is much simpler and uses a HTTP header instead of a JS API. Looks pretty good to me: https://cdn.rawgit.com/w3c/navigation-error-logging/new/index.html
However I'll note that in the past @slightlyoff has agitated for an API for CSP and this seems to be moving in the opposite direction, so maybe he has opinions?

Discussed in SF; @slightlyoff concerned about persistence aspect and privacy considerations. We agree that this seems like a "powerful" feature.
We'd also like to see an API. @slightlyoff to write up a review.

@mnot @slightlyoff for context, discussion on why JS API was removed: https://lists.w3.org/Archives/Public/public-web-perf/2015Jan/0023.html

I think the logic there makes sense. Has any thought been given to if/when SWs interact with reports?

@slightlyoff good question, we have not. Opened a bug: https://github.com/w3c/network-error-logging/issues/54#issuecomment-105597935

Discussed on call 5-aug. Might not be anything to comment on any more. @slightlyoff thinks we can close the issue.

authors: domenic igrigorik mnot slightlyoff torgo


text:
File URI Scheme

The IETF APPSAWG is working on the file scheme:
https://tools.ietf.org/html/draft-ietf-appsawg-file-scheme-02

Mike west notes that it'd sure be nice if this referred to the Origin spec.

At f2f: @travisleithead says MS people say it "looks great" - didn't answer the question about origins in relations to the file scheme but that is maybe an operating system-specific question.

@annevk any thoughts? Seems like fetch integration would be good.

Skimming through that draft I don't see it really tackling any problem (parsing or retrieving) well... Agreed that if someone defined retrieval based on a file URL that would be good for Fetch.

There hasn’t been – to this point – a document that has written done how this scheme works, and for that reason this is a good document.
The Web Origin Concept seems to punt on how to handle origins though--and that's what I'm most keen on seeing described, at least the mapping to the OS I care about. This is not directly related to this issue, however. See also this old blog post.

But it doesn't define how it works.

@annevk - do you think it would be possible to define implementation details in fetch, and align with this doc?

I don't understand what you think this document defines that's novel or useful?
File URL parsing should be defined by the URL Standard (that also defines the origin of URLs btw). File URL fetching/retrieval could be defined by Fetch, if we really wanted to (not sure why it would be useful).

Last I checked URL standard was still in limbo, no?

Not sure what you mean. Maybe in politics land. (There's open issues for sure, including around file URLs, but this draft addresses none of those.)

everything is political, Anne - even the WHATWG :)

Anyway, I guess what I'm saying is that it's being implemented and somewhat actively maintained (as time allows).

So, URL spec seems to be a superset

This new document ignores it completely. I agree with @travisleithead that we need a document that doesn't punt on this, but I agree with Anne that this document isn't it. :)
Note, of course, that URL also explicitly leaves file: URL origins as an exercise for the reader.

Other than parsing it's still not clear to me that interop on file URLs is needed much, but I'm happy to assist anyone who wants to do work on the other aspects. I'll fry some other fish meanwhile.

I can make suggestions / requests of the WG next week in Prague; anything in particular you'd like to see them do? Note that "don't publish this" is probably not going to fly, especially considering that (to them) the URL Standard doc has no status.

(mm fried 🐠)

They should do whatever makes them happy. It's just not of use to us.

It also seems like it might be worth explaining slightly more of the security aspects that go beyond the Web's origin model.  Gecko has linking prohibitions that apply to file URLs that are separate from origin checks, that, e.g., forbid inclusion of images from http to file and similar, to prevent attacks like the ones mentioned briefly in Security Considerations (e.g., using files in /dev/ for various things such as depleting randomness sources).  (In Gecko, I think these are the CheckLoadURI* checks.)  It also may be worth explaining origins (e.g., different directories being different origins) as well.

+1 to @dbaron; Trident has a variety of blocks from http -> file from things like iframe, object, and img sources to name a few.
Re: origins, We also have a request to define which file: origins have access to other file: origins, if at all. The common case is whether file://c:/directory/file.htm has access to something in its current directory (file://c:/directory/otherfile.htm) and/or in a sub-directory (file://c:/directory/subdir/file.htm). I'd love to explore thoughts about that.

I was assigned to review this but am hosed with work these few weeks. @travisleithead do you want to take the lead on putting together the review?

I'd be OK with that, but I already have Issue 61 to prepare for 7/29... mayhaps someone else would like to grab this?

I read through this and didn't have any comments; like others, I thought this was going to address issues like origin separation and fetch. It makes sense that it doesn't, I guess.

@mnot are you interested in taking this on? Otherwise, I'll just write a doc summarizing this thread before the meeting tomorrow.

@mnot are you interested in taking this on? Otherwise, I'll just write a doc summarizing this thread before the meeting tomorrow.

very rough draft: https://github.com/w3ctag/spec-reviews/pull/65/files

TAG meeting decision:

@mnot and others, please give thoughts on whether this should be part of the URL Standard.
i'll update the draft above with those comments

@mnot and others, please give thoughts on whether this should be part of the URL Standard.

Not sure if I'm others, but I'll be bold:
I think this document is not quite aligned in goals and style with the URL Standard. For example, it defines a BNF for matching or rejecting a given string as "a file URL," instead of rules for parsing strings. (Some of these are present, e.g. "Translating Local File Path to file URI" would be part of the parsing rules. But that does not handle the 'nonstandard' variations.) It also has case-sensitivity as optional instead of normatively choosing one way or another, and depends on network conditions for translating strings into file URLs ("Translating Non-local File Path to file URI"), as well as the host's Unicode support.
As such I don't think it really can give a helpful answer to how to parse or serialize file URLs in an interoperable way across multiple pieces of software.

@travisleithead my thoughts on origins are that I would love to isolate all file URLs from each other, even even from themselves, by always returning a new globally unique identifier as origin. I don't think folks should use file URLs for web development. Browsers should probably make it easy to serve up pages from http://localhost/ somehow.
However, I've not written that in the specification since implementations are doing different things and it's not clear they are interested in aligning on that.

FWIW it seems Blink is at least somewhat interested in aligning as such; see https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/--KjSROtcMQ. However, https://code.google.com/p/chromium/issues/detail?id=517819 and in particular https://src.chromium.org/viewvc/blink?view=revision&revision=200313 is not encouraging.

Taken up at Boston f2f. New version of File URI draft published in Late July. Does not seem to address the issues raised.

Working on feedback https://github.com/w3ctag/wiki/wiki/fileUrl

closed on the basis of that feedback - @mnot to send over to apps area wg people at ietf.

FYI: https://tools.ietf.org/html/draft-ietf-appsawg-file-scheme-10
4.  File Name Encoding

File systems use various encoding schemes to store file and directory
names.  Many modern file systems store file and directory names as
arbitrary sequences of octets, in which case the representation as an
encoded string often depends on the user's localization settings, or
defaults to UTF-8 [STD63].

When a file URI is produced, characters not allowed by the syntax in
Section 2 SHOULD be percent-encoded as characters using UTF-8
encoding, as per [RFC3986], Section 2.5.

However, encoding information for file and/or directory names might
not be available.  In these cases, implementations MAY use heuristics
to determine the encoding.  If that fails, they SHOULD percent-encode
the raw bytes of the label directly.

@annevk seem sane(r)?

It doesn't seem useful since it basically leaves it up to the implementation. I don't think that RFC matters though.

Why, because of the SHOULD? Would a MUST make you happier (to the extent you care about it)?

I'm not sure, but this is basically saying that file systems do whatever (true) and implementations can do whatever (true) except with a lot of confusing requirements that make it seem like there's some logic here (not true).
The algorithm you need takes a file URL, an OS-flavor, and returns a file. Describing that and saying what is not defined yet seems much more helpful than this.

This text is about starting with a file on a filesystem, some environment, and ending up with a file URI; i.e., generation, not parsing.
Parsing would be defined in URL Standard, presumably. I think this helps by making what the encoding is supposed to be less ambiguous (as opposed to previous drafts).
If your reaction is "mostly harmless", that's OK.

authors: annevk dbaron diracdeltas domenic mikewest mnot torgo travisleithead


text:
Added 2 nodes of 1 user

Added:

@licerioshory:matrix.org 2 nodes

@ironoa Element handle of the user was verified


text:
Minimum balance of sender account

I followed every step from the instructions and everything went fine until yarn start. I began getting connection failed errors.
The objective: To get all payout information given a block hash.
What I tried:

In main.yaml, I set minimumSenderBalance to a super low number trying to allow people with any number of balance to be able to carry out transactions.
In main.yaml, set remaining to 0 so user can freely transact any amount.

Error:

About me: I'm fairly new to Polkadot / Blockchain development as a whole. I've been reading Polkadot wiki and articles and watching tutorials on Polkadot over the past week, but I'm still confused by all the buzz words like staking, nominator, validator, extrinsics, etc. What's the minimal knowledge I need to achieve the objective mentioned above?

Hi @Mingyang-Li, the Polkadot wiki is the perfect starting point to learn.
The polakdot-payout tool provides these functionalities: https://github.com/w3f/polkadot-payouts#features
Regarding your error: the tool must be connected with a blockchain node to make it scrape the data from the chain... I see you have set ws://localhost:11000 but I assume you don't have a node running and synced on your local machine...
You can configure a well known public node such as wss://kusama-rpc.polkadot.io or wss://rpc.polkadot.io
If you run the tool just with yarn start it will take the default config file from config/main.yaml
Try either to run it with yarn start -c pathToMyConfig or override the default config/main.yaml, as it is explained here: https://github.com/w3f/polkadot-payouts#how-it-works

authors: Mingyang-Li ironoa


text:
Character count not correct when counting HTML

Hi, first of all, thank you for a great plugin! I am using the latest version from the ckeditor downloader, and I have found an issue I hope you can help me with: when including HTML in the character count, it is different when the editor is enabled and disabled, and it's also a different count than the actual character count according to the console.
Enabled:

Disabled:

Looks like when using the getData function to retrieve the content the editor adds some trailing space to the content. I'm changing it to getSnapshot to retrieve the raw content instead.


text:
failFast:true disables maxRetries config option

I am using creevey to run in our ci pipelines and fighting with some flaky tests/components, this is why I used a maxRetries: 5 setting. To get some faster feedback I also used the new failFast: true config option. Unfortunately it seems that failFast: true kind of disables the maxRetries config option and immediately fails on the first failing screenshot.
When both options are set I think it would be a more expectable behaviour when screenshotting is retried until maxRetries is reached and then creevey fails.

Hm... You're right, I didn't think about that combination, I'll take a look, it should be easy to fix.

@wKich great!

repo: wKich/creevey


text:
get_tick_data没上证指数、沪深300，有无其他接口？

http://market.finance.sina.com.cn/downxls.php?没有上证指数，有无其他接口？

sh000001 就是上证指数，像一般股票一样

可以用ts.tick

repo: waditu/tushare


text:
code review for week2 day 5

We appreciate your project implementation with interesting GUI . Well done so far@waelelsafty07 .But I would suggest to make your code shorter as i found  very lengthy code in some files which can be compressed.

Hi @supreeti
The best practice for cleaning code should i isolate my functions


text:
🛑 Wagestream ES Public Website is down

In 83ecbbd, Wagestream ES Public Website (https://wagestream.com/es/) was down:

HTTP code: 429
Response time: 51 ms

Resolved: Wagestream ES Public Website is back up in 15bd9ce after 7 minutes.

repo: wagestream/statuspage


text:
feat: Add fetchEnsText and useEnsText

Description
Add fetchEnsText and useEnsText for fetching ENS text records.
Additional Information

[x] I read the contributing docs (if this is your first contribution)

Your ENS/address: gregskril.eth

Note to self: hoping to support an array of keys as well via https://github.com/wagmi-dev/viem/pull/961

Appreciate you working on this! Currently, working on an update to Wagmi that will make it much easier to port of Viem actions as Wagmi Core actions and Wagmi React hooks. Once that is ready, it will capture this.

authors: gskril tmm

repo: wagmi-dev/wagmi


text:
👷🏾 UI Design - Melhoria

A pouca consistência no design tive que adivinhar como funcionar

Tentar adivinhar onde iria aparecer a tarefa adicionada
Tentar adivinhar o que era o Type something...

vou estudar mais, pra posterior melhorar

authors: an-jorge wagnerPedro

repo: wagnerPedro/todo-list


text:
Support Django 4.0

Replace deprecated url with re_path.

I can't merge this as it is. It needs backwards compatibility to previous versions of django. I will try to work on the bk compatibility during the weekend.

authors: mjr wagnerdelima


text:
Fix debian package installation instructions

The correct command to run is dpkg -i on a debian package file. The instructions said to use apt install which does not work to install from a file.

I was able to install dive with exactly the instructions given in the README.md for Debian.

I believe apt install was used here since it would proceed to install missing dependencies(If any) as it installs the package.

The correct command to run is dpkg -i on a debian package file. The instructions said to use apt install which does not work to install from a file.

I believe apt install was used here since it would proceed to install missing dependencies(If any) as it installs the package.

The instructions in the README are indeed working:
❯ docker run -it --rm --name ubuntu-dive ubuntu:24.10
root@4f21e03e2da0:/# apt update -q
[...]
All packages are up to date.

root@4f21e03e2da0:/# apt install -q -y curl apt-utils
[...]

root@4f21e03e2da0:/# export DIVE_VERSION=$(curl -sL "https://api.github.com/repos/wagoodman/dive/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
root@4f21e03e2da0:/# echo $DIVE_VERSION
0.12.0

root@4f21e03e2da0:/# curl -OL https://github.com/wagoodman/dive/releases/download/v${DIVE_VERSION}/dive_${DIVE_VERSION}_linux_amd64.deb
[...]

root@4f21e03e2da0:/# apt install ./dive_${DIVE_VERSION}_linux_amd64.deb
[...]
Preparing to unpack /dive_0.12.0_linux_amd64.deb ...
Unpacking dive (0.12.0) ...
Setting up dive (0.12.0) ...

root@4f21e03e2da0:/# dive --version
dive 0.12.0

Apologies, I didn't realize that apt install will work on .deb files.
/close

authors: ReneNyffenegger edwardbaidoo joschi micah

repo: wagoodman/dive


text:
Checking mdformat error

Checking mdformat error

As the issue has been resolved, no need for this PR to be merged, therefore closing this PR.

repo: wagov/wasocshared


text:
Bug with removing meta fields from API

Issue Summary
The _get_serializer_class method of the BaseAPIViewSet class implements this code snippet which causes some (probably) unexpected errors when removing the meta fields.
        all_fields = body_fields + meta_fields

        # Remove any duplicates
        all_fields = list(OrderedDict.fromkeys(all_fields))

        if not show_details:
            # Remove detail only fields
            for field in cls.detail_only_fields:
                try:
                    all_fields.remove(field)
                except KeyError:
                    pass

all_fields is converted to a list but then a few lines down, we try to handle KeyError. The list will never give a KeyError, but rather ValueError: list.remove(x): x not in list.
This can cause weird behavior when you try to remove meta fields, for instance.

Steps to Reproduce

Create the following custom APIViewSet

class BlogAPIEndpoint(PagesAPIViewSet):
    base_serializer_class = PageSerializer

    body_fields = [
        'title',
    ]

    meta_fields = []

Register the endpoint with the custom View Set: api_router.register_endpoint('blog', BlogAPIEndpoint)
Try to call the endpoint to get the results. You will get the error.

Any other relevant information. For example, why do you consider this a bug and what did you expect to happen instead?

I have confirmed that this issue can be reproduced as described on a fresh Wagtail project: (yes / no)

Technical details

Python version: Python 3.8.1.
Django version: 4.1.7.
Wagtail version: 4.1.2.
Browser version: irrelevent.

Since it's Saturday and probably many people are off, and I have some spare time, I've opened a PR fixing this issue.
Please find it here: https://github.com/wagtail/wagtail/pull/10413.
Feel free to merge it or to post your objections and suggestions.

Can confirm this issue exists

repo: wagtail/wagtail


text:
Alt text validation rule in the accessibility checker

Is your proposal related to a problem?
Alt text in Wagtail needs improvements :) For background, see RFC 89: ATAG 2.0 audit, RFC 51: Contextual alt text, and the Alt text capabilities GSoC project idea.
Describe the solution you'd like
A very practical improvement we can make is to add a new pass/fail rule in our accessibility checker, checking the contents of images’ alt text, against patterns which are guaranteed to provide no false positives.
Describe alternatives you've considered
We’ve considered a lot of alternatives as part of the different initiatives linked above. Some have the potential to be even more radical improvements, but they’re not necessarily backwards-compatible or designed to help with existing content. An accessibility checker rule is a great way to improve the accessibility of existing content.
Additional context
We will need to do this with the axe.configure API.
Here is a quick prototype:
function checkImageAltText(node: Element) {
      const image = node as HTMLImageElement;
      const altText = image.getAttribute('alt') || '';
      const hasFileExtension = altText.includes('.png');
      return !hasFileExtension;
    }

    const imageAltNoFileExtensionRule = {
      id: 'image-alt-no-file-extension',
      impact: 'serious' as ImpactValue,
      selector: 'img[alt]',
      tags: ['best-practice'],
      any: ['check-image-alt-text'],
    };

    axe.configure({
      checks: [
        {
          id: 'check-image-alt-text',
          evaluate: checkImageAltText,
        },
      ],
      rules: [imageAltNoFileExtensionRule],
    });

Working on this
Assigned to @albinazs. If anyone else wants to help with this, feedback is very welcome in comments in this issue.

I have prepared two datasets of images alt text which we can use to trial our new rule:

35k alt text of images –  displayed on Wagtail websites’ homepages
19k alt text of CMS-managed images – also from Wagtail websites’ homepages

See thibaudcolas/alt-text-benchmark for a reference on how this data was produced.

Merged :) Created #12091 as a follow-up.


text:
Barriers for speech recognition users

Issue Summary
These were raised during a demo from a Dragon AT user. Hopefully I've represented them correctly.
Wagtail has some barriers for Dragon AT, and likely other speech recognition software, users.
Dragon crashes Wagtail 3's rich text editor. In Wagtail 4, Dragon does not recognize the rich text editor as an editable field.
Wagtail 4 UI has more issues:

Unable to engage with minimap as minimap only engages via hover
Breadcrumbs are collapsed until a hover interaction

Regarding links, buttons: Dragon users activate elements by saying 'click link' or 'click button' or 'click name' which prompts the software to attempt to click the name element, or generate an overlay of numbers associated with buttons or links, respectively. This works when those elements are visible, but many are hidden in Wagtail 4's new UI.

When editing a page, the up-chevron next to save draft (which exposes the publish and submit for moderation actions) is neither targetable nor usable
Previously, was able to dictate 'click collapse introduction' to collapse an introduction field of a page, but that now collapses all sections of a page

Dictating 'click button' or 'click link' for the sidebar shows that some items are buttons (search, pages, reports, settings) while others are links (images, documents, snippets). This causes some frustration as it's not possible for all of the menu items to be labeled / available from a single command. In the attached screenshot for 'click link', unsure why two 'Live' are not labeled.

Steps to Reproduce

Install Wagtail 3 or 4
Use the admin area with Dragon

I have confirmed that this issue can be reproduced as described on a fresh Wagtail project: no

Technical details

Wagtail 3; 4x
Unsure of Dragon version, presumably all

User alerts me that I misstated:

Previously, was able to dictate 'click collapse introduction' to collapse an introduction field of a page, but that now collapses all sections of a page

From user:
Using Wagtail 3, I've never actually said "click collapse…" for showing or hiding a field. It's only in Wagtail 4, where I experimented with the new expandable and collapsible sections, where I have tried to use voice to expand or collapse those sections. It's because the chevron behaviour suggests the words "expand" and "collapse" that I assumed saying "click collapse" or "click expand" might activate them.

Just reviewing everything here in order of appearance – reiterating what @Stormheg has said quite a bit.
Minimap reveal

Unable to engage with minimap as minimap only engages via hover

Technically the minimap does have a toggle button for keyboard, screen, and touch screen users. But we’ve configured the toggle button to only be shown on devices that aren’t capable of hover interactions – which I’m guessing is the issue here: the (desktop) browser reports hover support, but that’s not actually possible with speech recognition.
So – we’re going to revisit this so the button is always present (#10055).
Breadcrumbs reveal

Breadcrumbs are collapsed until a hover interaction

Similarly here, this is true, but breadcrumbs also have a toggle button for keyboard / touch screen, and I’d assume also speech recognition users. We’re going to revisit the pattern in #9498 but I’m unclear whether there is any change needed specifically for speech recognition users.
Footer actions

When editing a page, the up-chevron next to save draft (which exposes the publish and submit for moderation actions) is neither targetable nor usable

This is opened at #7366, which we currently hope to tackle via #9030.
Section toggles

Previously, was able to dictate 'click collapse introduction' to collapse an introduction field of a page, but that now collapses all sections of a page

This might just be a matter of label? The accessible name of those buttons is "Toggle section" in both states, with an accessible description matching the section’s heading (so "Introduction" for a top-level field).
Would introducing tooltips for icon-only buttons like this help? For the label, any guidance on how to name those buttons well for speech recognition users would be very welcome.
Sidebar navigation

Dictating 'click button' or 'click link' for the sidebar shows that some items are buttons (search, pages, reports, settings) while others are links (images, documents, snippets). This causes some frustration as it's not possible for all of the menu items to be labeled / available from a single command. In the attached screenshot for 'click link', unsure why two 'Live' are not labeled.

As far as I understand this is intended. Menu items that reveal sub-menus are coded as buttons, menu items that directly go to a page are links. If there is a better pattern for us to follow here please advise.
Re the "Live" not being numbered – what @Stormheg said about this looking the same despite it not being a link.

As a general way to make progress on this I think we need:

Guidance on how to name icon-only controls in a way that makes sense to speech recognition users. At the moment the naming tends to be decided by developers at the point of implementing the designs, so consistency is poor.

A particular point we’re inconsistent on is whether the label should convey the state of the control or not ("Toggle" vs. "Collapse/Expand").
And whether / how much we should name things according to the icon vs. what the feature is otherwise called

Guidance on how to make the names of icon-only buttons more discoverable.

Widespread usage of tooltips?
Or avoid icon-only buttons as much as possible?

List of the most problematic patterns on here

Just a note that #10286 has fixed what I believe is the most problematic of all those issues. #7366 is also very problematic but has been there for years (…). Either @laymonage or I will be working on that issue shortly, skipping the new designs we have of this component so we can patch this issue in existing releases (4.1, 4.2).

FYI the minimap reveal has now been changed to click only in #10344.

Revisiting the list above,
Minimap reveal

Unable to engage with minimap as minimap only engages via hover

This is fixed (#10055 / #10344)
Breadcrumbs reveal

Breadcrumbs are collapsed until a hover interaction

Still pending in #9498, though again I don’t think this is a blocker (breadcrumbs have a clickable toggle too)
Footer actions

When editing a page, the up-chevron next to save draft (which exposes the publish and submit for moderation actions) is neither targetable nor usable

See #7366 / #9030. Scheduled to be fixed in time for the August 2023 release.
Section toggles

Previously, was able to dictate 'click collapse introduction' to collapse an introduction field of a page, but that now collapses all sections of a page

TBC based on above comments.
Sidebar navigation

Dictating 'click button' or 'click link' for the sidebar shows that some items are buttons (search, pages, reports, settings) while others are links (images, documents, snippets). This causes some frustration as it's not possible for all of the menu items to be labeled / available from a single command. In the attached screenshot for 'click link', unsure why two 'Live' are not labeled.

TBC based on above comments.

Wagtail userbar issue
The Wagtail userbar that appears at the bottom of live and draft pages is no longer usable with Dragon. I could previously use Dragon to activate this button in Wagtail 3. But it doesn't work in Wagtail 5 (I didn't try it when I tested Wagtail 4).
When I was viewing a live (or draft) page in Wagtail 3 I could say "click Wagtail" and this would bring up the userbar pop up menu. I could also say "click button" and then choose the number that corresponded to the Wagtail icon, just as I would do with anything else coded as a button. It doesn't respond to either of these commands in Wagtail 5.
If I use my mouse to activate the userbar, I can then use Dragon to select one of the options in the pop-up menu. For example, I can say "click edit this page" to open the visible page in the CMS. It's just the userbar itself that is no longer recognised by Dragon.
I'm using Dragon 15 and Firefox is my browser.

@albfreeman We did some digging into this and apparently the correct label for the userbar is "View wagtail quick actions", see: https://github.com/wagtail/wagtail/issues/10674#issuecomment-1634016619
Could you confirm if commanding "Click view Wagtail quick actions" works with Dragon?

authors: albfreeman jessemenn laymonage thibaudcolas