Dropdown menu violates W3C standard

Hi,
I've set up a site with Bootstrap: http://www.libgeodecomp.org
W3C's markup validation service complains about the topbar element not having an attribute "DATA-DROPDOWN".  Any ideas how to get a standard compliant version of the code up?
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.libgeodecomp.org%2F

Line 54, Column 39: there is no attribute "DATA-DROPDOWN"

✉

You have used the attribute named above in your document, but the document type you are using does not support that attribute for this element. This error is often caused by incorrect use of the "Strict" document type with a document that uses frames (e.g. you must use the "Transitional" document type to get the "target" attribute), or by using vendor proprietary extensions such as "marginheight" (this is usually fixed by using CSS to achieve the desired effect instead).

This error may also result if the element itself is not supported in the document type you are using, as an undefined element will have no supported attributes; in this case, see the element-undefined error message for further information.

How to fix: check the spelling and case of the element and attribute, (Remember XHTML is all lower-case) and/or check that they are both allowed in the chosen document type, and/or use CSS instead of this attribute. If you received this error when using the  element to incorporate flash media in a Web page, see the FAQ item on valid flash.

data attributes are html5

That did help. Thanks a lot!


Reduce IOs and run context extraction in backgrdoun

closes #91, #370
layout is also now always recomputed, so there shouldn't be any problem if creating new graphql schema modules

(Will rebase once its ok to be merged, sorry for the **** commit names)

@jasonkuhrt Do we really want to merge this and get it into the coming release? It might be safer to wait for Johannes to come back

If we can merge this by the end of the sprint, I'm happy. Agreed let's hold

Ahhhhh this was the issue: https://github.com/nodejs/node/issues/11422

We can instead use: https://github.com/sindresorhus/temp-dir

Worker threads not supported in Node 10

Unless experimental flag given
https://medium.com/@Trott/using-worker-threads-in-node-js-80494136dbb6

Works if doing:
#!/bin/sh
':' //# comment; exec /usr/bin/env node --experimental-worker "$0" "$@"

import { stripIndent } from 'common-tags'

But causes errors to be printed:
/tmp/e2e-testing-2033352460803386/node_modules/.bin/nexus: 2: /tmp/e2e-testing-2033352460803386/node_modules/.bin/nexus: use strict: not found
/tmp/e2e-testing-2033352460803386/node_modules/.bin/nexus: 3: /tmp/e2e-testing-2033352460803386/node_modules/.bin/nexus: //#: not found

Best thing now might be to just not use workers if they cannot be imported... Going to see how much work that would take.


Charset only loaded correctly in index.html, not in components via ng serve

Hi,
I am using Chrome Version 53.0.2785.143 m and Angular 2.1.0 on Windows 10.
Webpack 2.1.0 Beta 25
Angular-CLI - 1.0.0 Beta 18
The problem is that when I use "ng serve" while developing locally then extended characters are not rendered correctly in the Components. Extended chars directly in index.html work fine.
I suspect it is something to do with the way the files are being saved and served but I am new to ng2, webpack and CLI so not really sure how to test that theory just yet.
The charset in index.html is set to "charset=UTF-8" and if I view the individual component HTML page BEFORE bundling in the browser it renders correctly.
Repro Steps:
Copy and paste "Próximamente" into the Index.html output area, as well as into a component's template. Run "ng-serve". The one in index.html will render correctly but the one in the template will not

Your example worked for me:

I suspect your editor might be saving stuff in a different charset. What editor are you using?

Thanks for trying it - I have found the solution - http://stackoverflow.com/questions/40504558/angular-cli-angular2-non-standard-chars-only-load-correctly-in-index-html-not


Hi what the difference between babel-plugin-syntax-pipeline ?

Hi as I see you maintaine two repos:

babel-plugin-syntax-pipeline
babel-plugin-transform-pipeline

They seem same, what the difference, which one to use?

syntax just adds a |> token support in a tokenize state. And it is a dependency for transform:
https://github.com/SuperPaintman/babel-plugin-transform-pipeline/blob/master/package.json#L35

Ok, I see thanks, readme for babel-plugin-transform-pipeline confused me

Why?


Commit 5155d09 breaks file access via Page route when the configuration option cache: gzip is set to true

Hi,
Commit 5155d097653b062f1439f680c7070081491a6bab breaks file access via Page route.
For example I have the following folder structure:
user
  pages
    01.home
      default.md
    02.features
      01.first
        default.md
      02.second
        vendor
          holder.js
        default.md
        feature02.svg

Then the default.md file inside user/pages/02.features/02.second/ contains the following lines:
<script src="/grav/features/second/vendor/holder.js" type="text/javascript" ></script>
...
<img src="second/feature02.svg" alt="Feature 02" title="Feature 02" width="180" height="180">

Before it worked, but after this commit access time when loading page increased up to 10s and the files are loaded with garbled content.
Update: The problem appears when the configuration option cache: gzip is set to true
cache:
  gzip: true

This commit was to address extra spaces that were causing corruption in downloading zip files.
Can you test something for me?  Put a zip in one of your folders an test downloading it with the full path in the URL.  Something like: /grav/features/second/test.zip  it will download fine, but try unzipping.  That should expose the corruption issue.  Then try and replace the ob_clean(); with:
ob_start("ob_gzhandler");
ob_start();

See if that helps your situation?
If it does i need to add a little logic with a gzip check.

Hello Andy, I've done the tests that you suggested and here are the tests results with the option cache: gzip: set to true.

without changing any lines in Utils.php zip archive (test_archive.zip) is downloaded fine but it's kind of corrupted as you suggested. In fact it's a gzipped zip, when I opened downloaded zip file with 7-zip inside there is a test_archive file which is the original zip archive.
When I changed ob_clean(); to

ob_start("ob_gzhandler");
ob_start();

I've got an exception
Whoops\Exception\ErrorException thrown with message "ob_start(): output handler 'ob_gzhandler' cannot be used twice"

When I changed ob_clean(); to ob_start(); all is fine: zip file opens correctly and all page files are loaded correctly.

Then I've set cache: gzip: false and anyway all is working correctly: zip opens correctly after downloading and page resources are loaded fine. So for me in these simple tests changing ob_clean(); to ob_start(); solves the issue both with cache: gzip: true and with cache: gzip: false.
These were the test I've done after seeing your reply in my email.
As for replacing ob_clean(); with
if (Grav::instance()['config']->get('system.cache.gzip')) {
    // Flush gzhandler buffer if gzip setting was enabled.
    ob_end_clean();
}
ob_clean();

this solves the issue for me both with cache: gzip: true and with cache: gzip: false.
Thank you.

nice.


For future SEO  integrations

For the future, we should consider implementing two-way integration for SEO, particularly with tools like the Nuxt Sitemap module (https://github.com/nuxt-modules/sitemap). Have you explored that option yet?

In principle, I can try to create the sitemap myself using a new plugin for my module. I don't really want to integrate something into other people's modules right now, as it would take too much time.

Maybe harlan-zw should pay attention to the fact that api can be universal in the future

The config API looks identical, they even share the same config key, so this can be supported without any effort, unless there are some specific behavior quirks that I should know about.
Please review: https://github.com/nuxt-modules/sitemap/pull/357

The config API looks identical, they even share the same config key, so this can be supported without any effort, unless there are some specific behavior quirks that I should know about.
Please review: nuxt-modules/sitemap#357

Unfortunately, only the config looks almost the same, except for the strategy, which I specifically renamed because in my case, there aren't multiple strategies, just a parameter called includeDefaultLocaleRoute.

true - no prefix
false - prefix

Inside, unfortunately, everything differs greatly. I looked at your code, and as far as I can see, you modify locales in the config, whereas my module uses a different locales structure; it contains an object:
export interface Locale {
  code: string
  disabled?: boolean
  iso?: string
  dir?: 'ltr' | 'rtl' | 'auto'
}

I didn’t go further into how your sitemap is generated, but most likely you somehow refer to routes. In my module, the routing structure is entirely changed to regex.
So, the routes can be of two formats:

Without locale, for example: /page
With locale: /:locales(en|de)/page

In principle, I can rename includeDefaultLocaleRoute to strategy; it’s not that critical. However, everything else cannot be changed, as it's essentially the reason why I developed the entire module.

I wouldn't be concerned about minor differences as the config can be normalized.
Are you modifying the underlying Vue Router routing? If not then it should just work.

Hmm I was not able to replicate that so not too sure.
In terms of moving this along, I'm happy in either direction, merging or not, just thought it was an interesting proof of concept. I would hope if it was merged that you would support me in maintenance of any code related to the integration, which, may not interest you.
Will leave it to you to decide on next steps.

@harlan-zw Let's try to merge it, and I will continue to investigate any potential issues afterward.

Merged in 6.1.0 :+1:

Regarding integrations, I connected my module for generating documentation from OpenAPI: https://github.com/on-org/nuxt-openapi-docs-module/commit/eca9fcc06bed428fae0833b58b716d08255e81af. It can generally be used as an example, although there are still a few things I'd like to adjust.

@harlan-zw
Hello,
I’ve gotten around to testing, and overall, the module works, but it currently only generates routes for the default locale. The issue is that my module handles route generation differently. For multiple locales, it creates a single route, for example:
/:locale(de|ja)/page
So it bundles all locales into one route, which prevents large bundles from being created, unlike in i18n. In order for everything to work properly, the deepForEachPage method needs to be adjusted.
Here’s a possible solution:
function deepForEachPage(pages, callback, routesNameSeparator, fullpath = null, depth = 0) {
  pages.forEach((page) => {
    let currentPath;
    if (page.path.startsWith("/")) {
      currentPath = page.path;
    } else {
      currentPath = page.path === "" ? fullpath : `${fullpath.replace(/\/$/, "")}/${page.path}`;
    }

    const localePattern = /\/:locale\(([^)]+)\)/;
    const match = localePattern.exec(currentPath);

    if (match) {
      const locales = match[1].split("|");
      locales.forEach((locale) => {
        let subPage = { ...page };
        const localizedPath = currentPath.replace(localePattern, `/${locale}`);
        subPage.name += routesNameSeparator + locale
        subPage.path = localizedPath
        callback(subPage, localizedPath || "", depth);
      });
    } else {
      callback(page, currentPath || "", depth);
    }

    if (page.children) {
      deepForEachPage(page.children, callback, routesNameSeparator, currentPath, depth + 1);
    }
  });
}

In this implementation, if the route contains :locale, it extracts the locale from the route and converts the routes into a default format similar to i18n. I’ve added a routesNameSeparator to the method to handle naming.
I didn’t create a pull request since it’s probably better for you to review how this should be properly integrated.

Everything should be working now. If there are any issues with the new customRegexMatcher option, I have a rough idea of how to fix it, but I’m currently swamped with work. Maybe someone else can address this issue. For now, I’m closing the issue. We've created examples, so I believe anyone who needs it will be able to figure it out. I’ve also tested the hooks, and everything is working fine.


Feature 30 information system testing

This is a new feature #30 adding support for testing in information system (geovisto-be and geovisto-fe). Also contains changes for perfomance improvement of marker layer and dataset loading.

Please consider the notes written on Slack.


feature: disable mason

Did you check the docs?

[X] I have read all the LazyVim docs

Is your feature request related to a problem? Please describe.
I don't want to install binaries with mason. I always use the system package manager. But I can't simply disable it since it's depended by some other packages.
Describe the solution you'd like
Currently I disable the auto install behavior with
    {
        "williamboman/mason.nvim",
        opts = {
            ensure_installed = {},
        },
    },
    {
        "neovim/nvim-lspconfig",
        opts = function(_, opts)
            for server, server_opts in pairs(opts.servers) do
                server_opts.mason = false
            end
        end,
    },

It seems working but I still need to install mason. I thought mason can be an optional package and I can disable it with a global option.
Describe alternatives you've considered
The Mason can be checked before used. If it's disabled, then it's not used without throwing an error.
Additional context
No response

You can now disable mason and mason-lspconfig with:
return {
  { "williamboman/mason-lspconfig.nvim", enabled = false },
 { "williamboman/mason.nvim", enabled = false },
}

Will make a new release in a bit

Wow, thanks for you help!


TF GRID DEMO: Replace texts of all solutions

Wiki: Wiki is a versatile online encyclopedia builder, accessible via a public web address.

Website is a P2P alternative to centralized cloud-hosted websites. Host your own website with access via a public web address.

Peertube is an open-source video platform that uses peer-to-peer technologies to reduce load on individual servers when viewing videos.

Discourse is an open source Internet forum and mailing list management software application built to educate members about civil community engagement.

Mattermost is a flexible, open source messaging platform that enables secure team collaboration.

Cryptpad is a fully-secured, encrypted alternative to popular office tools and cloud services.

Blog is a P2P alternative to centralized blogging platforms like Tumblr or Blogspot.

Taiga is a P2P alternative to centralized project management tool for multi-functional agile teams.

all of access via an IP shouldn't be mentioned. As they require configurations on the enduser side. and also is "domain" something enduser understands? I think It should be "Accessible on the Public Internet"

@xmonader text updated

verified not sure if we can enhance the uncompleted description as below

root@tfwallet-prod:/opt/js-sdk# git log -1
commit ac3b448b791d974c540a3d916e0de3ab3b3623c6 (HEAD -> development, origin/development, origin/HEAD)
Merge: 2419f07 a1d7d8d
Author: xmonader<EMAIL_ADDRESS>Date:   Tue Sep 1 18:26:20 2020 +0200

    Merge pull request #863 from threefoldtech/development_adminsidebar

    update sidebar


GA sources with incorrect usage of regex

As pointed out in https://github.com/openaddresses/machine/issues/237, some of the new GA sources were split using full address fields creating error.
@ingalls

Closing as stale


This idea is very nice, but how to communicate with electron ipcRenderer?

This is out of scope of this minimal template.
The main idea is:

the webpage talks to the preload script via postMessage (window.postMessage)
the preload script talks to the main process via IPC (ipcRenderer)
the main process (ipcMain) listens to messages from the preload script

Here's the 1st link I found on google, it does the job: https://medium.com/@henrikbjorn/electron-communicating-via-postmessage-f9a419f94bf7
Note: you might read in some places to enable nodeIntegration: true. That will work too, but will introduce security vector attacks in your app.

Yes, this is the way. I already make it work after open this issue, and I was thinking make a PR for this.
Since this is out of scope of the minimal template, there is no need to make a PR.

Thanks any way!

If you have time, I would really appreciate a small description of how you did, for future people looking at this repo. I'd like to keep it minimal, but describing in this issue might be a good idea.

Alright! I created a PR for this #47 just now. you can see the detail right there.
It appears to me that I can't see what's the point if we don't use node integration, which can do somthing actual browser can't do, that is the different bettween web app and electron app as I see it.

It appears to me that I can't see what's the point if we don't use node integration

See https://www.electronjs.org/docs/tutorial/security#isolation-for-untrusted-content.

Sorry, let me correct this.

I said use node integration is mean to use the power of node to do something that actual web browser can not do, not the nodeIntegration prop of BrowserWindow instance.
By the way, preload.js can access require function without  nodeIntegration,  so nodeIntegration can be switch off.
In my early PR nodeIntegration is set to true because I was exploring, and I want to import { ipcRenderer } from 'cra-electron' in cra-react, so I set nodeIntegration to true, try to export ipcRenderer from 'cra-electron', so I think maybe I should set nodeIntegration to true, but didn't work out, and I find out preload.js may do the job, that's was a mistake.

I update the PR just now, if someone is looking for this try #47 , that's all.


Use the new style inclusion

Looks good, thanks!
It looks like we could also remove it from the (new) react widget example: https://github.com/jtpio/jupyterlab-extension-examples/blob/86545aa637715a3fc9afe608ccde2371c7ff7e76/react/react-widget/src/index.ts#L11

I am ok with the proposed changes. It would be good to write a note on how to configure is multiple css files are used (I see the style key in package.json allows only one css file definition).

At some point, we should at least have an examples that shows how to import css files from typescript. This could be a dedicated examples exploring also SCSS, SASS... loading.

It looks like we could also remove it from the (new) react widget example:
https://github.com/jtpio/jupyterlab-extension-examples/blob/86545aa637715a3fc9afe608ccde2371c7ff7e76/react/react-widget/src/index.ts#L11

Thx @jtpio for catching that.


vim: 8.1.2407 -> 8.2.0033

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/vim/versions.
meta.description for vim is: '"The most popular clone of the VI editor"'.
meta.homepage for vim is: '"http://www.vim.org"
Compare changes on GitHub

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 8.2.0033 with grep in /nix/store/r37ya766cxmiwdsvr8x03k2s356wnzb1-vim-8.2.0033

directory tree listing: https://gist.github.com/b88424bc01d4b617c486757e967b6a2e

du listing: https://gist.github.com/017484550506da02cb19c9bae46289be

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

675 total rebuild path(s)
583 package rebuild(s)
582 x86_64-linux rebuild(s)
42 i686-linux rebuild(s)
9 x86_64-darwin rebuild(s)
42 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
appimagekit
apt-dater
astroid
backintime
backintime-common
backintime-qt4
cron
cryptominisat
diffoscope
doomseeker
ezquake
faust
faust2
faust2alqt
faust2alsa
faust2csound
faust2firefox
faust2jack
faust2jaqt
faust2ladspa
faust2lv2
faustlive
fcron
foo-yc20
foo2zjs
i3-layout-manager
libdigidocpp
mfcj6510dw-cupswrapper
mfcj6510dwlpr
microscheme
netsurf.browser
percona-xtrabackup
purePackages.faust
python37Packages.cliff
python37Packages.cmd2
python37Packages.optuna
python38Packages.cliff
python38Packages.cmd2
python38Packages.optuna
qdigidoc
stp
tambura
ttyd
unixtools.xxd
vim
vimHugeX
vimPlugins.CheckAttach
vimPlugins.Colour-Sampler-Pack
vimPlugins.DoxygenToolkit-vim
vimPlugins.Improved-AnsiEsc

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/r37ya766cxmiwdsvr8x03k2s356wnzb1-vim-8.2.0033 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A vim https://github.com/r-ryantm/nixpkgs/archive/3f8b2f1614aa12422c312814d01a0f52381353ea.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/r37ya766cxmiwdsvr8x03k2s356wnzb1-vim-8.2.0033
ls -la /nix/store/r37ya766cxmiwdsvr8x03k2s356wnzb1-vim-8.2.0033/bin

cc @lovek323 for testing.

I merged 3e50d4a6f3e50dfe57001f200050102830f24d22 but this could have possibly gone in instead. @equirosa and @tomberek could you review?

@FRidh seems to work fine.


class instantiation error when making a forecast model

System Information:

Model Builder Version <IP_ADDRESS>6802
Visual Studio Version  VS community 2022 17.6.1

Describe the bug

On which step of the process did you run into an issue: After training a forecast model
Clear description of the problem: After training a forecasting model using the model builder I get a Class instantiation error. It does not matter what training method I'm using. It does say that training was complete but I am unable to evaluate it and no code files are generated.

To Reproduce
Steps to reproduce the behavior:

Create a C# console app
Select .net 7.0
Create Machine Learning Model
Select forecast and upload data (I'm using a txt file with stock prices for nvida starting May 24 2023 and going back to January of 2023 in month increments [EX: 5/24/23, 4/24/23, 3/24/23])
Train and The error pops up

Expected behavior
Training to complete with no errors and code files are generated
Screenshots
data

error message

Additional context
I had an error related to Azure before the class instantiation error that I fixed by updating Visual Studio. I have a separate ML.NET project that identifies whether or not an image has text that works fine on the same ML Builder version.
In the log file, I removed the line with the storage location as it contains the user name used to login to the computer which is my dad's because he set up the account.
predctionModel-XAVFMI.txt

@zewditu can you take a look

It seems that the issue was not fixed with the recent update and I am getting the same error


Relative paths in output wrong when using relative path as base

With a config like:
export default defineConfig({
  base: '',
  //...

The resulting output of a page src/pages/mypage.html will have links like:
    <script type="module" crossorigin src="../../assets/mypage-OPix75kj.js"></script>
    <link rel="modulepreload" crossorigin href="../../assets/_plugin-vue_export-helper-_GGQNAou.js">

Which are obviously wrong.

The doc is a bit hard to find, but according to the doc, you probably would want to set the page.normalizeBasePath to true

normalizeBasePath
Type: boolean
Default: false
Renames and normalizes paths in output .html files. It's a workaround if vite base is set to './' - #12


[Wallet][Redesign] Add funds / Cash out

Description
Implement redesign for Add funds / Cash out screens https://www.figma.com/file/zt7aTQ5wuXycIwxq5oAmF9/Wallet--Refresh?node-id=3754%3A506
Things left

[ ] Pass amount to moonpay API when generaing web page
[ ] Configure colors if possible for Moonpay web page

Other changes
Fix crash on Licenses screen after moving from it.
Tested
Android device
Backwards compatibility
Yes
Screenshots

@jmrossy PTAL, I've addressed all the comments


download_button_html looks weird with long form titles

Maybe we can force the Title column to be narrower. One option is to add some class name in the table, then add css rules for them. For example, split the Title/Button columns to be 30%/70%, so that the buttons will have enough space to stay horizontal.
Here is the mobile version.

I like this--simple solution that seems worth implementing

Even better, I can use the existing class names to do it!


Python3 use with Gpio.isr question

I am finding it difficult to use the isr functionality with the Python bindings so I thought I would post a question here to see if I am structuring this correctly.
I have a Dragonboard 410c with an ST LIS2DS12 accelerometer attached. The main communication is via I2C which is working fine. In addition to the I2C there is also a GPIO pin on the ST accelerometer that is pulled low when new data is available to read.
My simple experiment is to print the value for the orientation when there is a change indicated by the int1 signal. This seems to work in a while loop with the following code:
from time import sleep
import mraa

print(mraa.getVersion())
print(mraa.getPlatformName())

class Tilt:
    def __init__(self, bus=1, i2c_addr=0x1d, int1_pin=23):
        self._CTRL1 = 0x20
        self._CTRL3 = 0x22
        self._CTRL4 = 0x23
        self._TAP_6D_THS = 0x31
        self._6D_SRC = 0x39
        # Pin for interrupt signal
        self._int1 = mraa.Gpio(int1_pin)
        self._int1.dir(mraa.DIR_IN)
        self._int1.edge(mraa.EDGE_FALLING)
        # i2c bus to read orientation
        self.device = mraa.I2c(bus)
        self.device.address(i2c_addr)
        self.device.writeReg(self._CTRL1, 0b01100000)
        self.device.writeReg(self._TAP_6D_THS, 0b01000000)
        self.device.writeReg(self._CTRL4, 0b00000100)
        # Use latched interrupt (reset by reading _6D_SRC)
        self.device.writeReg(self._CTRL3, 0b00000110)

    @property
    def int1(self):
        return not self._int1.read()

    @property
    def orientation(self):
        return '{:08b}'.format(self.device.readReg(self._6D_SRC))

# Tilt test
accel = Tilt()

while True:
    if accel.int1:
        print(accel.orientation)
        sleep(0.25)

This gives the expected result of printing a new line when the tilt of the sensor is changed and the int1 signal is reset by the data being read.
root@linaro-alip:/home/linaro/python/python-micromez# python3 tests/simple_isr.py
v1.7.0
DB410C
01000001
01100000
01000010
01100000
01001000
01100000

Now if I try to do this using the Gpio.isr functionality then it does not seem to work as expected. The code is modified as follows:
from signal import pause
from time import sleep
import mraa

print(mraa.getVersion())
print(mraa.getPlatformName())

class Tilt:
    def __init__(self, bus=1, i2c_addr=0x1d, int1_pin=23):
        self._CTRL1 = 0x20
        self._CTRL3 = 0x22
        self._CTRL4 = 0x23
        self._TAP_6D_THS = 0x31
        self._6D_SRC = 0x39
        # Pin for interrupt signal
        self._int1 = mraa.Gpio(int1_pin)
        self._int1.dir(mraa.DIR_IN)
        self._int1.edge(mraa.EDGE_FALLING)
        # i2c bus to read orientation
        self.device = mraa.I2c(bus)
        self.device.address(i2c_addr)
        self.device.writeReg(self._CTRL1, 0b01100000)
        self.device.writeReg(self._TAP_6D_THS, 0b01000000)
        self.device.writeReg(self._CTRL4, 0b00000100)
        # Use Pulse for interrupt
        self.device.writeReg(self._CTRL3, 0b00000010)

    @property
    def int1(self):
        return not self._int1.read()

    @property
    def orientation(self):
        return '{:08b}'.format(self.device.readReg(self._6D_SRC))

    def on_new_data(self, fn, *args):
        self._int1.isr(mraa.EDGE_FALLING, fn, args[0])

# Tilt test
accel = Tilt()
accel.on_new_data(print, accel.orientation)

pause()

Now when I tilt the sensor a new line is printed out but it never changes value.
I have also had to change the 'int1' signal to be 'pulse' rather than 'latched' because the value is never being read.
root@linaro-alip:/# python3 tests/simple_isr.py
v1.7.0
DB410C
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000

Any suggestions on what is the correct structure to get this to work?

@ukBaz
It looks like you are defining isr in a wrong way.
I've just restructured your code a bit and got isr triggered for low state change in pin 25
https://pastebin.ubuntu.com/25521348/
Hope this helps!

I think your testcase is subtly different.
The issue I was trying to demonstrate is that the value of accel.orientation did not change on each triggering of the interrupt.
Let me see if I can come up with a better testcase

@ukBaz have you tried using the UPM driver for the lis2ds12? Most of what you're trying to achieve here along with various ISR config options are already wrapped by it. See more here: https://iotdk.intel.com/docs/master/upm/python/pyupm_lis2ds12.html

Thanks @Propanu , that does look interesting. However there is something a little fishy about the isr that would be good to resolve.
I have had a go at trying to simplify the test cases so it should be easier for other people to run them:
from signal import pause
from random import randint
import mraa

print(mraa.getVersion())
print(mraa.getPlatformName())

class BingoMachine:
    def __init__(self, data_rdy_pin=33):
        # Pin for interrupt signal
        self._int1 = mraa.Gpio(data_rdy_pin)
        self._int1.dir(mraa.DIR_IN)
        self._int1.edge(mraa.EDGE_FALLING)

    @property
    def int1(self):
        return not self._int1.read()

    @property
    def new_number(self):
        return randint(0, 90)

    def on_button_press(self, fn, *args):
        self._int1.isr(mraa.EDGE_FALLING, fn, args[0])

machine = BingoMachine()

machine.on_button_press(print, machine.new_number)

pause()

This gives a constant output such as:
root@linaro-alip:/home/linaro# python3 examples/mraa_isr_814_constant.py
v1.7.0
DB410C
20
20
20

As I think @Mani-Sadhasivam was trying to show you can get it to give the correct answer with a bit of modification such as:
from signal import pause
from random import randint
import mraa

print(mraa.getVersion())
print(mraa.getPlatformName())

def caller(machine_obj):
    print(machine_obj.new_number)

class BingoMachine:
    def __init__(self, data_rdy_pin=33):
        # Pin for interrupt signal
        self._int1 = mraa.Gpio(data_rdy_pin)
        self._int1.dir(mraa.DIR_IN)
        self._int1.edge(mraa.EDGE_FALLING)

    @property
    def int1(self):
        return not self._int1.read()

    @property
    def new_number(self):
        return randint(0, 90)

    def on_button_press(self, fn, *args):
        self._int1.isr(mraa.EDGE_FALLING, fn, args[0])

machine = BingoMachine()

machine.on_button_press(caller, machine)

pause()

The output is:
root@linaro-alip:/home/linaro# python3 examples/mraa_isr_814_work.py
v1.7.0
DB410C
22
90
46
52

A bit untidy but it can be done to get it working.
The problem is that often it would be helpful if the function passed to the isr is down inside another class. If you do this then you get a segmentation fault:
from signal import pause
from random import randint
import mraa

print(mraa.getVersion())
print(mraa.getPlatformName())

class BingoCaller:
    def __init__(self):
        self.numbers_called = []
        print('Setup some fancy GUI')

    def caller(self, machine_obj):
        self.numbers_called.append(machine_obj.new_number)
        print(machine_obj.new_number)

class BingoMachine:
    def __init__(self, data_rdy_pin=33):
        # Pin for interrupt signal
        self._int1 = mraa.Gpio(data_rdy_pin)
        self._int1.dir(mraa.DIR_IN)
        self._int1.edge(mraa.EDGE_FALLING)

    @property
    def int1(self):
        return not self._int1.read()

    @property
    def new_number(self):
        return randint(0, 90)

    def on_button_press(self, fn, *args):
        self._int1.isr(mraa.EDGE_FALLING, fn, args[0])

dave = BingoCaller()
machine = BingoMachine()

machine.on_button_press(dave.caller, machine)

pause()

This gives the output:
root@linaro-alip:/home/linaro# python3 examples/mraa_isr_814_seg_fault.py
v1.7.0
DB410C
Setup some fancy GUI
Segmentation fault

I can't work out how to workaround this one.

This sounds like #599, at least partially. There's no solution there,  but you can check workarounds/known issues there.


Assertion error when TLUL valid drops without ready

@eunchan
as we discussed, TLUL allow valid to be dropped without ready.
I tested on a_channel side and looks like design can handle it but these 2 internal assertions are triggered. Do you think if we should disable them?
if (EnReqStabA) begin : gen_lock_assertion
  // requests must stay asserted until they have been granted
  `ASSUME(ReqStaysHighUntilGranted0_M, (|req_i) && !ready_i |=>
      (req_i & $past(req_i)) == $past(req_i))
  // check that the arbitration decision is held if the sink is not ready
  `ASSERT(LockArbDecision_A, |req_i && !ready_i |=> idx_o == $past(idx_o))
end

Waveform:
cd /edascratch/weicai-opentitan/ot/xbar_main.sim.vcs/tl_same_cyc_rsp/0.xbar_main_random/out
verdi -ssr Verdi.ses &

@eunchan
seems like xbar can't support device drop d_valid without d_ready. In the case below, device (ram_main) drops d_valid a few times and then assert it when d_ready is high, but this response is not sent back to host interface.
Waveform:
/edascratch/weicai-opentitan/ot/xbar_main.sim.vcs/both_valid/0.xbar_main_random/out
verdi -ssr Verdi.ses &

Sounds good.
On 9/3/20 4:19 PM, weicaiyang wrote:

@eunchan https://github.com/eunchan
as we discussed, TLUL allow valid to be dropped without ready.
I tested on a_channel side and looks like design can handle it but
these 2 internal assertions are triggered. Do you think if we should
disable them?
|if (EnReqStabA) begin : gen_lock_assertion // requests must stay
asserted until they have been granted
ASSUME(ReqStaysHighUntilGranted0_M, (|req_i) && !ready_i |=> (req_i & $past(req_i)) == $past(req_i)) // check that the arbitration decision is held if the sink is not ready ASSERT(LockArbDecision_A, |req_i &&
!ready_i |=> idx_o == $past(idx_o)) end |
Waveform:
cd
/edascratch/weicai-opentitan/ot/xbar_main.sim.vcs/tl_same_cyc_rsp/0.xbar_main_random/out
verdi -ssr Verdi.ses &
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/lowRISC/opentitan/issues/3354, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJDG3VFCNIJHA3TUXSTF5TSEAP7RANCNFSM4QWOOGSA.

Thanks for finding this.
dev_select_i is not latched in case of the crossbar is passthrough and depth is 0. The design need to be fixed.

hmmm that's weird, i thought dev_select_i was being latched.
Let me take a look also.

hmmm that's weird, i thought dev_select_i was being latched.
Let me take a look also.
@tjaychen @eunchan
Thanks for debugging this. It's a driver issue. I just fixed it and ran a small regression. Looks like design can support this feature correctly. So we just need to remove the assertions.

sounds great!
Are those assertions in the arbiter though? (i can't remember if there are any assumptions on the arbiter that requires it)

sounds great!
Are those assertions in the arbiter though? (i can't remember if there are any assumptions on the arbiter that requires it).
I guess once you take it out we'll find out!

yes, errors are gone if I comment out this block in the arbiter_ppc and this block in arbiter_tree

@tjaychen @eunchan
Thanks for debugging this. It's a driver issue. I just fixed it and ran a small regression. Looks like design can support this feature correctly. So we just need to remove the assertions.

What was the driver issue? I meant "dev_select_i not latched" means, it is not latched to 'dev_select_t'. It is stored into 'dev_select_outstanding' though. As hold_all_requests signal compares dev_select_t, it can be unknown state. But I misunderstood that the signal (hold_all_requests) are also used in response side but apparently not.

What was the driver issue? I meant "dev_select_i not latched" means, it is not latched to 'dev_select_t'. It is stored into 'dev_select_outstanding' though. As hold_all_requests signal compares dev_select_t, it can be unknown state. But I misunderstood that the signal (hold_all_requests) are also used in response side but apparently not.

@eunchan
Sorry for the confusing. The device driver didn't respond one transaction, which made the sim hang.

Fixed via #3406


Removed eclipse configuration files

Here I removed eclipse configuration files in order to simplify commit stage

Not totally sure that this is a good idea. If someone checks out the projects from Git and want to import it into a workspace, what should they do? Right now, they can just "Import as Existing Projects", but if we remove the Eclipse config files, this is no longer possible.

My arguments would be:

I think it makes commit process much easier, because then we don't need to remove changed eclipse files from git staging area.
This is common approach, do not have IDE dependent files in git repository, because people can use different IDEs, for example Intellij IDEA or Eclipse. However, it would be funny, if Eclipse developers use IDEA :)
Some eclipse settings and project entries are dev-environment dependent, for example they can contain absolute paths. So, if somebody accidentally commits such files, he can break other developer's environment.
This is maven project, so it can be easily imported as maven one. Eclipse automatically generates all .project, .classpath and .settings files.

So, your proposal is to remove some entries from files, not whole files?

No. My proposal was to remove the metadata files for those projects that are regular Maven projects and to not remove those metadata files for those projects that are Eclipse plug-in projects. Sorry for being too vage in my comment above... ;-)


remove allow_attributes false positive exceptions once Rust is updated

After updating to Rust 1.81, I came across a bizarre false positive for clippy::allow_attributes and clippy:allow_attributes_without_reason:
https://github.com/rust-lang/rust-clippy/issues/13380
https://github.com/rust-lang/rust-clippy/issues/13463
It appears this has been fixed and will be pushed out as of Rust 1.83. We should remove this exception when we upgrade:
https://github.com/astriaorg/astria/blob/e267d1cf2e7ed9bea626bc75fcd184d65b172001/crates/astria-core/src/protocol/genesis/v1alpha1.rs#L134-L139
┆Issue Number: ENG-872

This issue is stale because it has been open 45 days with no activity. Remove stale label or this issue
be closed in 7 days.


init

Current coverage is 41.30% (diff: 41.30%)

No coverage report found for master at a13e273.

Powered by Codecov. Last update a13e273...e7368fe


[Tuning][MIGraphx] tuning update

Hi, testing gfx 1030 is not showing any improvements from develop branch. Can you please show before and after on your GPU where the speedup is coming from? And gfx1030 fusions are even slower.

Will require merging with #1271

Closed due to outdated dbs.

@cderb were these changes included in a subsequent tuning?
cc: @causten


could you help me to load MuGo in gtp gui like Sabaki?

i load it well in Gogui ,but when i want to load it to vs other ai ,Gogui cant do it well,so i load it in Sabaki,but the parameter seems dont work ,gungo work well in Sabaki,thanks a lot for your help!
here is gogui load
commond：python main.py gtp policy --read-file=tmp\savedmodel
working directory C:\Users\allen\Downloads\MuGo-master\MuGo-master
and here is Sabaki:
working directory C:\Users\allen\Downloads\MuGo-master\MuGo-master\main.py
commond python main.py gtp policy --read-file=C:\Users\allen\Downloads\MuGo-master\MuGo-master\tmp\savedmodel

you need to provide more detail on what doesn't work, what error messages you're getting.
If I had to guess, you likely have some sort of python environment issue - if you're using a virtualenv of some sort, you'll need the python path to include the installed libraries.

you need to provide more detail on what doesn't work, what error messages you're getting.
If I had to guess, you likely have some sort of python environment issue - if you're using a virtualenv of some sort, you'll need the python path to include the installed libraries.

thanks for your replay!i solved it now,but another question is can mugo knows when to resign?


elg_demo.py run-time issue using video source input/output

I ran into a elg_demo.py run-time issue using video source input and output (tensorflow 1.12/cuda 9.0/Python 3.6.9). The program just seems to "hang" with the following output message:
Video "/home/ubuntu/cviz/GazeML/giphygaze.mp4" closed.
Could there be a codec/encoding issue related to processing video input/output???

(dl4cvpy36-tf.12) ubuntu@ip-172-31-0-76:~/cviz/GazeML/src$ python3 elg_demo.py -v debug --from_video /home/ubuntu/cviz/GazeML/giphygaze.mp4 --record_video /home/ubuntu/cviz/GazeML/video-out/test.mp4
/home/ubuntu/.virtualenvs/dl4cvpy36-tf.12/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:523: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint8 = np.dtype([("qint8", np.int8, 1)])
/home/ubuntu/.virtualenvs/dl4cvpy36-tf.12/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:524: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/home/ubuntu/.virtualenvs/dl4cvpy36-tf.12/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint16 = np.dtype([("qint16", np.int16, 1)])
/home/ubuntu/.virtualenvs/dl4cvpy36-tf.12/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/home/ubuntu/.virtualenvs/dl4cvpy36-tf.12/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:527: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint32 = np.dtype([("qint32", np.int32, 1)])
/home/ubuntu/.virtualenvs/dl4cvpy36-tf.12/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:532: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
np_resource = np.dtype([("resource", np.ubyte, 1)])
2019-12-15 03:01:45.268322: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-12-15 03:01:48.919134: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:964] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-12-15 03:01:48.919551: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties:
name: Tesla K80 major: 3 minor: 7 memoryClockRate(GHz): 0.8235
pciBusID: 0000:00:1e.0
totalMemory: 11.17GiB freeMemory: 11.10GiB
2019-12-15 03:01:48.919580: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0
2019-12-15 03:01:51.232533: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-12-15 03:01:51.232586: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988]      0
2019-12-15 03:01:51.232596: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0:   N
2019-12-15 03:01:51.232905: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10758 MB memory) -> physical GPU (device: 0, name: Tesla K80, pci bus id: 0000:00:1e.0, compute capability: 3.7)
Video "/home/ubuntu/cviz/GazeML/giphygaze.mp4" closed.

Step 1: I verified the virtual environment could read video input and write video output with another python application.
Step 2: I then re-ran the demo app (debug mode) with the same video input file that was validated in step 1. Here is the error:
"ValueError: could not broadcast input array from shape (216,360,3) into shape (216,280,3)"
Have you verified video in and out is working on your system???

(dl4cvpy36-tf.12) ubuntu@ip-172-31-0-76:~/cviz/GazeML/src$ python3 elg_demo.py -v debug --from_video /home/ubuntu/cviz/GazeML/driving-drowsy.mov --record_video /home/ubuntu/cviz/GazeML/video-out/driving-drowsy.avi
/home/ubuntu/.virtualenvs/dl4cvpy36-tf.12/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:523: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint8 = np.dtype([("qint8", np.int8, 1)])
/home/ubuntu/.virtualenvs/dl4cvpy36-tf.12/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:524: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/home/ubuntu/.virtualenvs/dl4cvpy36-tf.12/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint16 = np.dtype([("qint16", np.int16, 1)])
/home/ubuntu/.virtualenvs/dl4cvpy36-tf.12/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/home/ubuntu/.virtualenvs/dl4cvpy36-tf.12/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:527: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint32 = np.dtype([("qint32", np.int32, 1)])
/home/ubuntu/.virtualenvs/dl4cvpy36-tf.12/lib/python3.6/site-packages/tensorflow/python/framework/dtypes.py:532: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
np_resource = np.dtype([("resource", np.ubyte, 1)])
2019-12-16 02:24:43.940549: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
2019-12-16 02:24:47.134274: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:964] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2019-12-16 02:24:47.134705: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties:
name: Tesla K80 major: 3 minor: 7 memoryClockRate(GHz): 0.8235
pciBusID: 0000:00:1e.0
totalMemory: 11.17GiB freeMemory: 11.10GiB
2019-12-16 02:24:47.134735: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0
2019-12-16 02:24:49.512019: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-12-16 02:24:49.512094: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988]      0
2019-12-16 02:24:49.512109: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0:   N
2019-12-16 02:24:49.512409: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 10758 MB memory) -> physical GPU (device: 0, name: Tesla K80, pci bus id: 0000:00:1e.0, compute capability: 3.7)
16/12 02:24 INFO Initialized data source: "Video"
16/12 02:24 DEBUG I do not know how to create a summary for videostream/frame_index ([2])
16/12 02:24 DEBUG I do not know how to create a summary for videostream/eye_index ([2])
16/12 02:25 INFO Built model.
Parsing Inputs...
16/12 02:25 INFO ------------------------------
16/12 02:25 INFO  Approximate Model Statistics
16/12 02:25 INFO ------------------------------
16/12 02:25 INFO FLOPS per input: 1,006,288,359.0
16/12 02:25 INFO Trainable Parameters: 712,527
16/12 02:25 INFO ------------------------------
INFO:tensorflow:Restoring parameters from /home/ubuntu/cviz/GazeML/outputs/ELG_i180x108_f60x36_n64_m3/checkpoints/hourglass/model-4203370
16/12 02:25 INFO Restoring parameters from /home/ubuntu/cviz/GazeML/outputs/ELG_i180x108_f60x36_n64_m3/checkpoints/hourglass/model-4203370
INFO:tensorflow:Restoring parameters from /home/ubuntu/cviz/GazeML/outputs/ELG_i180x108_f60x36_n64_m3/checkpoints/radius/model-4203370
16/12 02:25 INFO Restoring parameters from /home/ubuntu/cviz/GazeML/outputs/ELG_i180x108_f60x36_n64_m3/checkpoints/radius/model-4203370
Exception in thread visualization:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "elg_demo.py", line 223, in _visualize_output
bgr[v0:v1, u0:u1] = eye_image_raw
ValueError: could not broadcast input array from shape (216,360,3) into shape (216,280,3)
2019-12-16 02:25:19.946175: W tensorflow/core/kernels/queue_base.cc:277] _0_Video/fifo_queue: Skipping cancelled enqueue attempt with queue not closed

I created a new issue for the new error. Closing...

Hey,
I am facing the similar issue. I ran the code with debug flag. The program hangs and shows
Video "input.mp4" closed.
It does not show any error in the debug mode.


Mode for F7 diff to scroll

Using the compare mode and then using the command go to next difference opens a different kind of diff view (not side by side, just three liness above and below).

This makes it difficult to get a good overview.
On the other hand jumping from difference to difference in a large, mostly unchanged file would benefit from a command, which instead of opening that restricted diff view, would just scroll the editor to that line.

We have such commands! You can try out the following rules in your keybindings.json:
// navigate through diffs
{ "key": "f10",       "command": "workbench.action.editor.nextChange",
                         "when": "!inDebugMode && editorTextFocus" },
{ "key": "shift+f10", "command": "workbench.action.editor.previousChange",
                         "when": "!inDebugMode && editorTextFocus" },
{ "key": "f10",       "command": "workbench.action.compareEditor.nextChange",
                         "when": "textCompareEditorVisible" },
{ "key": "shift+f10", "command": "workbench.action.compareEditor.previousChange",
                         "when": "textCompareEditorVisible" },

The command you executed, editor.action.diffReview.next enters a mode especially created for Screen Reader users, which allows screen readers to read out the diff hunks in a format similar to the one present on the command line.


Investigate possibility of dropping "views"

We currently rely on aggregated versions of the prescriptions data (which we call "views", though they are actually just standard postgres tables) to make various types of query performant.
As I have currently a full staging environment set up, which is quite expensive to run, now might be the time to verify that this is the best approach to performance.
Our main querying patterns are:

Restrict to left-anchored wildcard queries on the BNF code (all analyse queries are like this)
Aggregate this to the CCG level
Restrict to all practices within a CCG (an optional filter for analyse queries) and aggregate to practice level
All of these are grouped by month

The main constraints to performance are index sizes and page scans.
Index sizes

The index on vw__chemical_summary_by_practice (chemical_id varchar_pattern_ops, practice_id) is the largest, at about 20GB
An index for a single month against just the BNF code is 300MB; we keep 70 months of data

Alternative strategies

One index on prescriptions: bnf code, ccg, practice, date.  When querying individual practices, look up their ccg and include in the where clause so we can cover with that index.
We don't need to index every single permutation of bnf code, but just chapter, section, paragraph, subparagraph etc. This could reduce the index size significantly.
use ltree (walkthrough). This will involve rewriting the bnf code field to have dots in the right places, e.g.:

SELECT
  CONCAT(substring(presentation_code
    FROM
      0 for 3), '.', substring(presentation_code
    FROM
      3 for 2), '.', substring(presentation_code
    FROM
      5 for 2)) AS presentation_code_label

So: it's probably worth returning to a single massive prescribing table, with the following indexes:

presentation_code varchar_pattern_ops, pct_id
practice_id

...but ensuring we have ordered / clustered by presentation_code, pct_id
And then trying sample queries against it:
EXPLAIN (ANALYZE, BUFFERS, VERBOSE) SELECT
  pr.pct_id AS pct_id,
  MAX(pr.processing_date) AS date
FROM
  vw__presentation_summary_by_ccg pr
WHERE
  (pr.presentation_code LIKE '0408010A%' OR
  pr.presentation_code LIKE '0408010A%' OR
  pr.presentation_code LIKE '0408010A%'
)
GROUP BY
  pr.pct_id
LIMIT 1;

  EXPLAIN (ANALYZE,
    BUFFERS,
    VERBOSE)
SELECT
  pr.practice_id AS row_id,
  pc.name AS row_name,
  pc.setting AS setting,
  pc.ccg_id AS ccg,
  pr.processing_date AS date,
  SUM(pr.cost) AS actual_cost,
  SUM(pr.items) AS items,
  SUM(pr.quantity) AS quantity
FROM
  vw__chemical_summary_by_practice pr
JOIN
  frontend_practice pc
ON
  pr.practice_id=pc.code
WHERE
  (pr.chemical_id='0212000AA')
  AND (pr.practice_id IN (
    SELECT
      code
    FROM
      frontend_practice
    WHERE
      ccg_id = '99P'))
GROUP BY
  pr.practice_id,
  pc.code,
  date
ORDER BY
  date,
pr.practice_id;

Incidentally, if #659 provides adequate performance, this issue should be closed.

It does, so I am closing this.


code

This code doesn't match the formulas in the paper. Could you please help explain,?

In j_ctrl = self.join_ctrl(torch.cat([feature_emb, measurement_feature], 1))，why not h_ctl but measurement_feature

This is the initial step so the measurement feature is used instead of h_ctrl.


Creating a cortical area in circuit builder is asking for 3D coordinates

Cortical area creation should be context sensitive so when user is in CB to ask for 2D coordinates and when in BV to ask for 3D coordinates instead.

Given split screen view, this should be revisted

we should instead elect for a gizmo or another system to move 3d volumes easily, and keep the numerical fields should the user optionally feel like being precise


What is the default value of TestPermissions?

It is not mentioned in the topic, but if I am right (that's what my tests show) the default is Restrictive.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 5e9a88b1-f7e9-e4cb-6b06-4d9e11ef4e35
Version Independent ID: c9b7c384-2643-75e6-c9cd-308d3b77042f
Content: TestPermissions Property - Business Central
Content Source: dev-itpro/developer/properties/devenv-testpermissions-property.md
Service: dynamics365-business-central
GitHub Login: @SusanneWindfeldPedersen
Microsoft Alias: solsen

Thanks for the feedback. That is correct, the default value is Restrictive. The topic will be updated with the next doc refresh.


column_editable_list doesn't support SelectField

Here is my code for user model

class UserView(ModelView):
    column_editable_list = ('username', 'email', 'status')

    form_overrides = dict(
        status=SelectField
    )
    form_args = dict(
        status=dict(
            choices=[
                ('ACTIVE', 'ACTIVE'),
                ('DELETED', 'DELETED'),
                ('BLOCKED', 'BLOCKED')
            ]
        )
    )

On removing 'status' from column_editable_list, it works fine (for username and email), otherwise we get Exception: Unsupported field type: <class 'wtforms.fields.core.SelectField'>
how do I solve this?

So do I. Help!

I use Select2Field instead:
from flask_admin.form import Select2Field

Select2Field has the Select2Widget which overrides the call function  has different arguments with the SelectField.

@revir Can you please give an example code for the same to make a select field editable in list view?

@subhamagr
Sorry, I tried to use Select2Field, avoid 'Unsupported field type', but failed to set choices.
But for me, I use peewee, give choices in the model class:
JobStatus = (('Pending', 'Pending'),
               ('Running', 'Running'),
               ('Done', 'Done'),
               ('Failed', 'Failed'))

class Job(db.Model):
    session = CharField()
    status = CharField(default='Pending', choices=JobStatus)

Then override the XEditableWidget to support peewee's SelectChoicesField:
from flask_admin.model.widgets import XEditableWidget
class MyFixedWidget(XEditableWidget):
    def get_kwargs(self, subfield, kwargs):
        if subfield.type == 'SelectChoicesField':
            kwargs['data-type'] = 'select'
            choices = [{'value': x, 'text': y} for x, y in subfield.choices]

            # prepend a blank field to choices if allow_blank = True
            if getattr(subfield, 'allow_blank', False):
                choices.insert(0, {'value': '__None', 'text': ''})

            # json.dumps fixes issue with unicode strings not loading correctly
            kwargs['data-source'] = json.dumps(choices)
            return kwargs
        else:
            return super().get_kwargs(subfield, kwargs)

Finally in my admin view,  use my fixed widget to scaffold list view:
class JobView(ModelView):
    # fix SelectChoiceField in inline edit form.
    def get_list_form(self):
        return self.scaffold_list_form(widget=MyFixedWidget())

The way to override the list view field, see the document: http://flask-admin.readthedocs.io/en/latest/api/mod_model/?highlight=column_exclude_list#flask_admin.model.BaseModelView.get_list_form
If this can't help you, we can discuss further.

so do i, i use form_widget_args to control weather can editable  like:
form_widget_args = {         'username': {             'disabled': 'disabled',         }, }

Try to override scaffold_list_form and manually insert Select2Field to the form. In my example ColumnType is Enum, so You have to modify choices argument for Your case
    def scaffold_list_form(self, *args, **kwargs):
        form_class = super().scaffold_list_form(*args, **kwargs)
        form_class.column_type = Select2Field('column_type', coerce=int, widget=XEditableWidget(),
                                              choices=[(choice.value, choice.name) for choice in ColumnType])
        return form_class


Unable to read frontmatter at filepos 1366: EOF

I use Hugo academic theme. Every time when I want to change talk under the content file, the deployment from Git to Netlify turn out to be failed. I don't know why?
Error: unable to read frontmatter at filepos 1366: EOF

or
Failed to render "theme/section/talk.html": runtime error: index out of range

Please use https://discourse.gohugo.io/ for questions/troubleshooting. Also see  Hugo Documentation.


[BUG] SASS disassembly always tries to use nvdisasm on the PATH

See: https://github.com/NVIDIA/numba-cuda/blob/e3658d4ac6475d8d7f615aefb2e07e39aee3912e/numba_cuda/numba/cuda/codegen.py#L27-L29
It would be better to search for CUDA command line tools in the more normal way, e.g. from CUDA_HOME / CUDA_PATH first.

It'd probably make sense to add logic for the search in cuda_paths.py alongside the nvvm and libdevice searches.
https://github.com/NVIDIA/numba-cuda/blob/main/numba_cuda/numba/cuda/cuda_paths.py


cardano-db-sync-extended fails to sync past first epoch

[db-sync-node:Info:37] [2020-03-05 17:40:12.20 UTC] Total supply at start of epoch 0 is<PHONE_NUMBER>9.999903 Ada
[db-sync-node:Info:37] [2020-03-05 17:41:14.62 UTC] Total supply at start of epoch 1 is<PHONE_NUMBER>9.999903 Ada
[db-sync-node:Info:37] [2020-03-05 17:41:14.62 UTC] insertABOBBoundary: epoch 1 hash 73e68ae83ee19defc2bfc21c14cbc5e7c83868f21883a218753324453ae07777
[db-sync-node:Info:37] [2020-03-05 17:41:14.62 UTC] epochPluginInsertBlock: Epoch table updated for epoch 0
[db-sync-node:Error:37] [2020-03-05 17:41:14.63 UTC] Unable to query epoch number 0
[db-sync-node:Info:37] [2020-03-05 17:41:14.63 UTC] Shutting down DB thread
[db-sync-node:Error:41] [2020-03-05 17:41:14.68 UTC] recvMsgRollForward: AsyncCancelled

the process is still running, but the logs say it has given up and halted?
it fails the same way upon wiping everything and restarting (edited)
switching to the non-extended db-sync appears to have fixed syncing

Only the extended version of db-sync uses epochPluginInsertBlock and that is where the error is.
I suspect that a change in the network data types has messed with the logic of the extended functionality.

Having troible reproducing this. I am on commit 6c574eab01 and ran:
./scripts/postgresql-setup.sh --recreatedb
PGPASSFILE=config/pgpass ./cardano-db-sync-extended.exe --config config/explorer-mainnet-config.yaml --genesis-file ../cardano-node/mainnet-genesis.json --socket-path ../cardano-node/state-node-mainnet/node.socket --schema-dir schema/

and it synced the first three epoch without a problem.

The query that builds an row for the Epoch table incorrectly assumes that each epoch has at least one transaction. That assumption holds for mainnet but does not hold in general.


Consider blocking .zip domains

Reference: https://www.youtube.com/watch?v=LFriS1PICE0
Seems like .zip domains can easily be abused to trick users into downloading a malicious file.
I'll look into implementing the following:

Block all .zip
use a smart list to block, only bad actor domains. Maybe use this list: https://github.com/trickest/zip

@Tomatoide and @phanluchoaofficial , do let me know what you think.

Not sure about this, I think would prefer blocking only bad domains, also the trickest list seems to block All .zip domains and is not a smart list it seems

Ok, point taken. In that case, let's not do this for now. I'll close this issue.


Update HeyTech Adapter for nodejs 14 compatibility

Is this proofed enough to already update stable? Additionally the adapter testing is currently not in place in the reposiotory

Ok, version is 8 days old and have "enough" installations ... so fine, but Please reacrtivate adapter etsting before the next version bump!


[qt5] Fix pkg-config setup in qt5-base

extra: save config.log files from qmake.

Thanks for the improved logging!


Investigate and list where we should add structured data

Which categories are relevant and how can they be implemented on Equinor pages (templates / pages)?
Make a list of places where structured data can be added and add to #1270 description

Added findings in #1270 description

I think that's a good start. Not sure if adding it for a people promotion causes any issues if there are multiple people promotions, but it's worth looking into. It's a shame they chose to have all the CVs as an accordion on a single page; we could otherwise add structured data on a per-person basis if everyone important enough had their own URL.
We should check with the SEO agency if they have a recommendation on which format to use. Interestingly enough I can't view the JSON LD website; it's blocked as "Malicious Sources" on Equinor devices 😅

Closing this, created #1270


feat: update generate ticks into an array of properties for each axis

Follow-up to #19839  - we need to separate the control of the tick generation for each axis, as there will be cases where a user wants to control tick generation on one axis but not both. Also, the property should be an array of strings due to Giraffe's extreme flexibility in its configuration. (Giraffe uses 3 properties to control the tick generation, and any combination of the 3 properties including being missing or null works in the config.) To capture this flexibility for the user, we save the properties selected by the user in an array of strings.
Also, removed the tick generation properties from CheckView everywhere to match the swagger.yml

[ ] CHANGELOG.md updated with a link to the PR (not the Issue)
[x] Well-formatted commit messages
[x] Rebased/mergeable
[x] Tests pass
[x] http/swagger.yml updated (if modified Go structs or API)
[x] Feature flagged (if modified API)
[x] Documentation updated or issue created (provide link to issue/pr)
[x] Signed CLA (if not already signed)

Ready for review.


Back to menu button broken

If i go into the menu I can't exit it (Using latest controllable ver.)

Not sure what you mean by this. The back button won't close the game, you still have to click "Quit Game" to exit.

Coming back to this, I assume you were talking about the layout screen. This will be redesigned in the next update.


fix: 127 - bugs divers

:tada: This PR is included in version 0.10.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


[Feature] add render hook for renderDay and add the possibility to stick picker to second field

Position of the picker can be relative to the specified secondField
And functional hook for renderDay implemented

I splitted this into two separate PRs


Best way to support newer browsers

I have a style rule with boxDecorationBreak and I'm not seeing any prefix for that on Chrome 63, so the rule isn't working.
I looked through the code quickly and saw that in dynamicData.js, boxDecorationBreak is mapped to chrome version 62 and since I'm on 63, the prefixer isn't adding the necessary prefix.
Is there a quick way to work around this without using the static prefixer (which is definitely an option, but would prefer to use the dynamic prefixer if possible)?

Actually, it'd make sense to check for a minimum browser version instead of a fixed maximum version. I need to figure that out though, as it would break all the other use cases as is.
Currently, I am away with my orchestra, which means I'm not doing anything this weekend. Let me check that next week.

I just updated the versions to match newest browsers, we might consider having an automated release whenever caniuse browser versions change, but if I consider that, I'd open a separate issue so ill close this one now :P


not mac or linux supported

TranslaTale.v0.8.zip
this only has a windows compatible and i have a mac and a linux

Well, that's not an issue, but an enhancement of sorts
I'm rewriting TT from scratch, with portability in mind.


unique_copy + clang: Invalid global read of size 4, code later crashes

When running my code, which uses Thrust (latest git revision), using the Clang/CUDA compiler (latest revision as of Nov. 8), a call to thrust::unique_copy with a particular data set on a particular (important) code path leads to memory access errors, as reported by cuda-memcheck.   Interestingly, it does compute the result correctly, and earlier calls to thrust::unique_copy do not trigger memory access errors.  Despite computing the correct output, later on my code crashes, and I suspect that this earlier invalid memory access is the cause.
A minimal reproducer is below, with the problematic data set embedded inside.  I compiled with CUDA 8 and sm_35, but the invalid memory access occurs for other CUDA versions (I also tried 7.0) and architectures (I also tried 2.0 and 5.2).
@jlebar is unable to rule out this known ptxas issue.  I was wondering if there might still be a Thrust bug, or at least that a workaround might be possible, specifically regarding this:
In fact one of the thrust [0] testcases fails at O2 with clang, apparently
due to this bug (thrust uses the "if thread 0 write some state, then
syncthreads" idiom in many places).

Minimal reproducer:
#include <string>
#include <sstream>
#include <iostream>

#define THRUST_DEBUG 1
#include <thrust/host_vector.h>
#include <thrust/device_vector.h>
#include <thrust/unique.h>

int main(int argc, char** argv)
{
    std::stringstream f(std::string("0 0 1 1 1 2 2 2 2 2 2 4 4 4 5 5 5 5 5 5 7 7 7 8 8 8 8 8 8 10 10 10 11 11 11 11 11 11 13 13 13 14 14 14 14 14 14 16 16 16 17 17 17 17 17 17 19 19 19 20 20 20 20 20 20 22 22 22 23 23 23 23 23 23 25 25 25 26 26 26 26 26 26 28 29 29 29 30 30 30 32 32 32 32 32 32 35 35 35 35 35 35 38 38 38 38 38 38 41 41 41 41 41 41 44 44 44 44 44 44 47 47 47 47 47 47 50 50 50 50 50 50 53 53 53 53 53 53 56 56 56 56 56 56 59 59 59 60 60 60 62 62 62 62 62 62 65 65 65 65 65 65 68 68 68 68 68 68 71 71 71 71 71 71 74 74 74 74 74 74 77 77 77 77 77 77 80 80 80 80 80 80 83 83 83 83 83 83 86 86 86 86 86 86 89 89 89 90 90 90 92 92 92 92 92 92 95 95 95 95 95 95 98 98 98 98 98 98 101 101 101 101 101 101 104 104 104 104 104 104 107 107 107 107 107 107 110 110 110 110 110 110 113 113 113 113 113 113 116 116 116 116 116 116 119 119 119 120 120 120 122 122 122 125 125 125 128 128 128 131 131 131 134 134 134 137 137 137 140 140 140 143 143 143 146 146 146 149 149 272"));
    thrust::host_vector<int> h_data;
    while(f.good())
    {
        int i;
        f >> i;
        h_data.push_back(i);
    }
    if(h_data.size() != 300)
    {
        throw std::runtime_error("Unexpected size");
    }

    thrust::device_vector<int> data(h_data);
    thrust::device_vector<int> data_unique(data.size());

    int n_unique =
    thrust::unique_copy(data.begin(), data.end(), data_unique.begin()) - data_unique.begin();

    if(n_unique != 66)
    {
        throw std::runtime_error("Unexpected number of unique values");
    }

    return 0;
 }

With nvcc:
nvcc  -O3 -gencode arch=compute_35,code=sm_35 unique_copy.cu -I/path/to/thrust
cuda-memcheck ./a.out
========= CUDA-MEMCHECK
========= ERROR SUMMARY: 0 errors

With clang:
clang++ -x cuda  -stdlib=libc++ -O3 --cuda-gpu-arch=sm_35 --cuda-path=/usr/local/cuda-8.0 unique_copy.cu -I/path/to/thrust -L/usr/local/cuda-8.0/lib64 -lcudart_static -lpthread  -ldl -lrt
cuda-memcheck ./a.out
========= CUDA-MEMCHECK
========= Invalid __global__ read of size 4
=========     at 0x000001e8 in void thrust::system::cuda::detail::detail::launch_closure_by_value<thrust::system::cuda::detail::commutative_reduce_intervals_closure<thrust::transform_iterator<thrust::detail::predicate_to_integral<thrust::detail::functional::actor<thrust::detail::functional::argument<unsigned int=0>>, long>, thrust::transform_iterator<thrust::detail::head_flags<thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::equal_to<int>, bool, long>::head_flag_functor, thrust::zip_iterator<thrust::tuple<thrust::counting_iterator<long, thrust::use_default, thrust::use_default, thrust::use_default>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::detail::normal_iterator<thrust::device_ptr<int>>, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type, thrust::null_type>>, thrust::use_default, thrust::use_default>, long, thrust::use_default>, thrust::detail::normal_iterator<thrust::pointer<long, thrust::system::cuda::detail::tag, thrust::use_default
=========     by thread (0,0,0) in block (0,0,0)
=========     Address 0xb0573fffc is out of bounds
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x2c5) [0x203f65]
=========     Host Frame:./a.out [0x23bb1]
=========     Host Frame:./a.out [0x41753]
=========     Host Frame:./a.out [0xaa1f]
=========     Host Frame:./a.out [0xa57c]
=========     Host Frame:./a.out [0x4e34]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x21af5]
=========     Host Frame:./a.out [0x4aed]
=========
========= Program hit cudaErrorLaunchFailure (error 4) due to "unspecified launch failure" on CUDA API call to cudaDeviceSynchronize.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/lib64/libcuda.so.1 [0x2eea03]
=========     Host Frame:./a.out [0x41476]
=========     Host Frame:./a.out [0xb2ec]
=========     Host Frame:./a.out [0xaa29]
=========     Host Frame:./a.out [0xa57c]
=========     Host Frame:./a.out [0x4e34]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x21af5]
=========     Host Frame:./a.out [0x4aed]
=========
terminating with uncaught exception of type thrust::system::system_error: launch_closure_by_value: unspecified launch failure
========= Error: process didn't terminate successfully
========= Internal error (20)
========= No CUDA-MEMCHECK results found

What linux distro and nvidia kernel driver version?

This was CentOS 7.  I'll reproduce it on Monday and check the driver version.

Sorry, I should've mentioned it was gonna take me a few days to get to this.
The version of Thrust in CUDA 9.0 (1.9.0) has a new CUDA backend, so this ptxas bug may no longer be triggered. I know that @jlebar and co are working on CUDA 9.0 support, but I'm not sure what state it's in.
Once it's available, we can test against it and go from there.

Clang currently has incomplete support for CUDA 9 -- it works, but not (yet) if you include some of the new headers.  I don't think we've tested Thrust specifically.
But if clang doesn't yet build Thrust with CUDA 9, you can just substitute ptxas9 into a cuda8 build directory.  That should work fine.

Hey @andrewcorrigan, is this still a problem?

Sorry for not responding, I haven't encountered this issue for quite a while.


Search bar to input name of city

#Takes search input and uses it as a search url param in api call to Open Weather One Call API
#Fetches weather data on the searched city


Restore error on cdef function arbitrary decorator

These were lost when cdef properties (for extern types) were
introduced.
"Fixes" #4322 (based on my interpretation of the problem as an
error-reporting issue)

Hmmmm... That doesn't look to be quite the right place to put the test


Unable to suppress embeds with Message.edit due to inheriting other properties.

To suppress embeds, the API only wants flags. Channels.editMessage inherits allowed_mentions, attachments, content and files.

What? Suppressing embeds works just fine

On other users messages?

That would have been useful information to lead with


R2 patches (squash / rebased)

@saghul Man, thanks a ton for the patience and being so responsive and extremely helpful. I would be totally lost without your help. Thanks for merging my PR !

Thanks for the kind words and the patches!


add Awesome PHP Migrations

See https://twitter.com/VotrubaT/status/1302253099894046720

Thanks for the suggestion, but there are no plans to link to other lists.


Appstudio update test-component-pac-xryd

Pipelines as Code configuration proposal

Pipelines as Code CI/test-component-pac-xryd-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
6 seconds
init

✅ Succeeded
19 seconds
clone-repository

✅ Succeeded
29 seconds
build-container

✅ Succeeded
13 seconds
inspect-image

✅ Succeeded
15 seconds
deprecated-base-image-check

✅ Succeeded
3 minutes
clair-scan

✅ Succeeded
40 seconds
clamav-scan

✅ Succeeded
9 seconds
sbom-json-check

✅ Succeeded
13 seconds
label-check

✅ Succeeded
12 seconds
optional-label-check

✅ Succeeded
5 seconds
show-sbom

✅ Succeeded
6 seconds
show-summary

Pipelines as Code CI/test-component-pac-xryd-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
7 seconds
init

✅ Succeeded
20 seconds
clone-repository

✅ Succeeded
28 seconds
build-container

✅ Succeeded
14 seconds
inspect-image

✅ Succeeded
14 seconds
deprecated-base-image-check

✅ Succeeded
37 seconds
clamav-scan

✅ Succeeded
9 seconds
clair-scan

✅ Succeeded
9 seconds
sbom-json-check

✅ Succeeded
17 seconds
label-check

✅ Succeeded
17 seconds
optional-label-check

✅ Succeeded
5 seconds
show-sbom

✅ Succeeded
11 seconds
show-summary


trustmanager: Minor cosmetic source code fixes

Fixing a few things I noticed scrolling through the Notary 0.3.0-RC1 diff.

Thanks for the contribution!  Leafs is valid but otherwise LGTM

LGTM!


Expose classic notebook's static assets from their original endpoints

Classic notebook extensions (i.e. nbextensions) often reference classic notebook's static assets and templates through its static endpoint. These don't exist in jupyter_server+nbclassic. Nbclassic does exposes these items through its own endpoints and jinja template environment, but classic notebook extensions are not (and should not be) aware of nbclassic's endpoint.
Instead, this PR leverages the nbserver extension to monkey-patch JS and nbclassic and re-expose the classic notebook's assets+templates in a way that mimics the classic notebook.
This will likely fix many classic notebook extension in nbclassic.

This pull request has been mentioned on Jupyter Community Forum. There might be relevant details there:
https://discourse.jupyter.org/t/jupyterlab-notebook-nbextensions/11017/6

Tests are failing because of a bug in jupyter_server, jupyter-server/jupyter_server#587.
Once that is merged and released, I'll restart the tests here.

@vidartf here's the PR I mentioned in the Jupyter Server meeting today. I'd love to get your review if you have a chance.

Thanks, @blink1073!

It happend again.
https://github.com/Jupyter-contrib/jupyter_nbextensions_configurator/issues/127#issuecomment-1136633835


Updated Guide.md for using injectedJavaScript

Updated Guide.md for using injectedJavaScript
Based on the issue https://github.com/react-native-community/react-native-webview/issues/1554.

I'm wondering if this is a recent bug.. thanks for the update meanwhile


Add to fdroid?

Is it possible to add your app to fdroid?
It would make it easier to get updates and install for most people.

See #53.


doc: Add metrics description and fix incorrect info in labelling for …

…service discovery

Codecov Report

Merging #35 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #35   +/-   ##
=======================================
  Coverage   83.87%   83.87%
=======================================
  Files           3        3
  Lines         428      428
=======================================
  Hits          359      359
  Misses         43       43
  Partials       26       26

Continue to review full report at Codecov.

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


Code efficiency analysis

As discussed, after we got everything working, I wanted to perform this quick analysis of streams.py and tap.py for any "extra" or unhelpful code snippets which could possibly be moved into the SDK itself. Excepting the final change proposed here in #12, I didn't see anything at all, really, which I would remove.
Here's a quick overview of line counts:

tap.py (total 47 lines including whitespace):

Docstring and imports: 21 lines
CLI boilerplate: 3 lines (including code comment)
Tap class definition: 15 lines
Constants declarations: 5 lines

streams.py (total 254 lines including whitespace):

Docstring and imports: 25 lines
Authentication: 20 lines (1 Authenticator class definition and 1 authenticator Stream class property)
Custom Source API Logic: 53 lines total over 3 areas:

get_next_page_token() for looping and pagination logic: 29 lines
get_url_params() for defining the interface with the REST API: 19 lines
parse_response() to translate the REST response into 'records': 5 lines

Stream schema definition, which specifies all field names and types: 139 lines for approximately 81 fields (including some commented-out WIP)

@jtimeus-slalom - Let me know if you see other opportunities to improve, but overall I'm very happy with these numbers! All up, we are just around 300 lines of code including the stream field definitions, or less than 200 lines of code if we exclude those JSON schema declarations for column types.

No action here so I'll close this item to reduce clutter in the issues list. :)


setLogFile() not changing the directory that log files are written to

this is my code snippet for setting the log file. after this runs the logs continue to be written at the top level <App Sandbox>/Library/Caches directory.
import RtcEngine, { LogFilter } from 'react-native-agora';
import * as FileSystem from 'expo-file-system';

const setupLogFile = async (rtcEngine: RtcEngine) => {
  const agoraLogsDir = `${FileSystem.cacheDirectory}agoralogs`;

  // create log directory
  await FileSystem.makeDirectoryAsync(agoraLogsDir);

  const agoraLogFile = `${agoraLogsDir}/agorasdk.log`;
  await rtcEngine.setLogFile(agoraLogFile);
  await rtcEngine.setLogFilter(LogFilter.Info);
};

const rtcEngine = await RtcEngine.create(agoraConfig.appid);
setupLogFile(rtcEngine);

agoralogs/ is empty in the picture below

-----UPDATE-----
I'm seeing this in the agorasdk.log file that is being written.
INFO    (14:52:56:201 |    0)    771; [API][rtc_engine_impl.cpp:1848][setLogFile]
INFO    (14:52:56:201 |    0)    771; [API][rtc_engine_impl.cpp:2545][queryInterface]
INFO    (14:52:56:201 |    0)    771; [API][rtc_engine_impl.cpp:974][setParameters]
INFO    (14:52:56:201 |    0) 636695; [rp] {"rtc.log_file":"file:///Users/MY-COMPUTER-REDACTED/Library/Developer/CoreSimulator/Devices/DEVICE-ID-REDACTED/data/Containers/Data/Application/APP-ID-REDACTED/Library/Caches/ag�
WARN    (14:52:56:202 |    1) 636695; create log file directory failed

it looks like the SDK is not seeing the full filepath /agoralogs/agorasdk.log, instead it's seeing /ag

your character encoding is UTF-8? what is ag�?

hey @LichKing-2234, yep my character encoding is utf-8. i saw in my log files that when the logs got to a certain line length it would stop logging the line and put the � character.

hey @LichKing-2234, yep my character encoding is utf-8. i saw in my log files that when the logs got to a certain line length it would stop logging the line and put the � character.

I will close this issue, you can reopen it if the issue still exists.


Current location marker does not change until map is moved

When updateMapLocationOnPositionChange option is set to false, current location marker does not change to a new location (although it prints new location in console) until the map is moved.

@boris612 true. I noticed that the marker will only change if the map is moving. If the map is not moving (either manually by setting updateMapLocationOnPositionChange to true) the marker will not be update. Will look into this issue soon. Thank you for pointing out the issue.

@igaurab I had a look into this and in user_location_layer.dart
Having the setState or removing it made no difference. If you remove the setState call.
The markers are shown and its position is updated when the map is moved (exaclty like this bug). The setState call is not re-rendering the marker.
It seems to be an active issue in with recent one being https://github.com/johnpryan/flutter_map/issues/458 where the author is proposing to use keys but It did not work for me
Marker(point: LatLng(_currentLocation.latitude, _currentLocation.longitude),
            builder: (context) {
              return Stack(
                key: UniqueKey(),
                alignment: AlignmentDirectional.center,
                children: <Widget>[
                .....
                ],
              );
            })

maybe the reason being a maker is in the parent's widget tree.

@igaurab  It seems there are other active efforts to add user location
https://github.com/johnpryan/flutter_map/issues/290
However, they have added all the location consumtion and marker movment login in the parent widget itself, rather than a plugin.
The example flutter_map gives to move marker is to change values and call setState
We are calling setState from the plugin, maybe we could propose the issue to be looked at in their next release

@igaurab  Here's a neat implementation of making markers stateful
It looks like he's subscribing to changes and then automatically call setState
 @override
  void initState() {
    mapController = MapController();
    statefulMapController = StatefulMapController(mapController: mapController);
    statefulMapController.onReady.then((_) => setState(() => ready = true));
    sub = statefulMapController.changeFeed.listen((change) => setState(() {}));
    super.initState();
  }

Also,  https://github.com/synw/livemap/ which shows the users live locations,  has been built on top of it.

Hi guys. I wrote these packages. It's good to see guys that care about the question of rendering positions on a map. I've been working on that since a while. The question here is map assets state management. I have some ideas about that and I hope you don't mind if I sneak into your discussion to share some points of view.
The stateful map controller is able to manage all assets on map. The rendering of the map state is independant of it. As exposed below the suggested solution now is to use a stream of changes to trigger setState calls and rebuild from the controller's assets lists. The livemap packages seems to be doing exactly the same as this lib here. So maybe we can find some way to join forces instead of duplicating efforts?
I am actually thinking about rewriting the livemap package around a new state management paradigm using Provider, even thinking of dropping it in favor of another package that automatically manage all the map state (currently under heavy development): Fluxmap. I needed to update location of multiple devices on the map and needed a solution for managing frequent state updates. The paradigm is: provide a stream of location updates to the map, the rest is managed. Internaly it uses a stream provider to rebuild on state change: ex. code. The map state is accessible to the user. So basically the user just has to declare an instance of the map state, and start using the map controller or provide positions updates: all the rebuilds will be managed. These are handled via an rxdart stream internaly to debounce updates, so it can handle high toughtput of map updates.
About the stateful map controller if you want to use it be sure that it will be maintained: I use it in a lot of packages and apps. About the livemap package if I could drop it in favor of your package and help you here it would be fine. If you use the map controller feel free to share your thoughts about it and open issues with your remarks, feedback is welcome.

Hi. I am currently porting my map_controller to a plugin to avoid having to listen to a stream for updates and faced the same problem. I found a  way: in _subscribeToLocationChanges add this:
if (!widget.options.updateMapLocationOnPositionChange) {
    widget.map.fitBounds(widget.map.bounds, FitBoundsOptions());
}


[FLINK-5450] Fix restore from legacy log message

This is a minor fix in the logging logic of the WindowOperator when re-registering timers after resuming from a savepoint from a previous Flink version.
R @rmetzger

To understand the implications better: Is this only logged on the initial legacy savepoint restore? Or also on subsequent checkpoint restore operations?

From what I understood from the JIRA, it is only when restoring from legacy. If not, then the problem is deeper. @rmetzger ?

Quick side note: There was a discussion on the mailing list about not using the R: @somebody notes anymore. Would be cool if you chime in there if you disagree with that and want to continue using it.

(To quickly respond to your question @kl0u: The original problem was that the log message has been logged every time when starting a window operator. Even when there was no restore or anything happening. I think Stephan's question was about the implications of your change)

@rmetzger I see. Then my PR fixes it, as the problem was that when retrieving timers, we were first putting them in the temporary list in the initializeState and the re-register them with the TimerService in the open(). When re-registering we were not checking if there were any timers to re-register before printing the message. That is why the message was logged all the time.

Just to also give my 2 cents: the changes look good. 👍

Thank you. I'll merge it.

Thanks a lot!

I think this should go to master and Flink-1.2

I've merged it to 1.2 and 1.3: https://issues.apache.org/jira/browse/FLINK-5450?focusedCommentId=15834503&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15834503


github-changelog-generator-action doing too many requests to git hub api

even though we use the sinceTag param for this action,
It performs too many requests (1 per each PR so far -> 832). However, there is 1k requests per gh token limit so we will hit the limit with this action.
Workaround, use different gh token for this.

This has been done when fixing the failed release - https://github.com/k8gb-io/k8gb/commit/efbb9d2ee2c65a0168b5d7df7a552283c9fdaa1c


[Bug] [ALERT-SERVER] FEISHU Plugin might block the whole alert process loop

Search before asking

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

What happened
FEISHU Plugin has no timeout, if the feishu alert block , it will block the whole alert process and lock the loop
What you expected to happen
Feishu alert should have timeout trategy if the server cannot alert the feishu robot.
How to reproduce
Make the server no communicate with the Feishu robot, and select Feishu alert instance to alert. The feishu alert process will block.
Anything else
No response
Version
dev
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

The issue is coving all alert plugins


intents are now entities

In the README, you have:

The results of the call to Wit.ai are added into the incoming message as message.intents, and ...

But that should be message.entities.

@jkeefe Thanks for pointing that out, anyone want to take a shot at a PR?

It seems like all that's needed is a one word change in the README.

Actually, my mistake. There are other changes needed but I forgot I already made these to my own app. I can send them in a PR.

@michaelmior care to submit the PR? We will then get NPM updated.

Thank you!


starting conversession from chat history

Hi,
Consider below scenario in the sample bot

After running above bot below is the screenshot of bot execution

As shown in above screenshot when we click on any of a button it will display corresponding message plus thank you message and greeting dialog will end. Now if we click again  on any one of the multiple choice button it is not starting the corresponding flow  based on button selected and instead of that it is going to unknown intent.
Is there any way to start the flow again based on button selected from chat history.
Thanks...

Giving more context to this issue: This is a common complaint that we identified during UX research with the Partner Bot. We have multiple scenarios that fall under this scenario explained by @BeheraMadan, and users don't like the fact that they can't go back in the history and access the content from those points of the dialog again.

Giving more context to this issue: This is a common complaint that we identified during UX research with the Partner Bot. We have multiple scenarios that fall under this scenario explained by @BeheraMadan, and users don't like the fact that they can't go back in the history and access the content from those points of the dialog again.

@BeheraMadan, the behavior is expected based on how you have designed it. It is not going to start the corresponding flow based on the button selected as the welcome intent has already been done and it will go to the unknown intent and when you click again on any of the multiple choice button, it will say unknown intent. What you can do is to put all this prompt in it's own dialog and call that dialog from the welcome.  Attaching the screenshots of what I tried:

I made use of the Echo Bot template and then created an options dialog and then called the options dialog from my greetings trigger

When I run the bot and open it in the Emulator, the response is:

After the thank you message, I click on the flow 3 button and the prompt appears again for me to select from the multiple choice buttons.

Please let me know if this is works for you.

@BeheraMadan, the behavior is expected based on how you have designed it. It is not going to start the corresponding flow based on the button selected as the welcome intent has already been done and it will go to the unknown intent and when you click again on any of the multiple choice button, it will say unknown intent. What you can do is to put all this prompt in it's own dialog and call that dialog from the welcome.  Attaching the screenshots of what I tried:

I made use of the Echo Bot template and then created an options dialog and then called the options dialog from my greetings trigger

When I run the bot and open it in the Emulator, the response is:

After the thank you message, I click on the flow 3 button and the prompt appears again for me to select from the multiple choice buttons.

Please let me know if this is works for you.


Bug fixes for #141 and #142 to ensure proper project initialization

Pull Request Test Coverage Report for Build 517

85 of 160 (53.13%)  changed or added relevant lines in 15 files are covered.
2 unchanged lines in 2 files lost coverage.
Overall coverage increased (+3.2%) to 86.38%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

datmo/cli/driver/helper.py
1
2
50.0%

datmo/core/storage/local/dal.py
1
2
50.0%

datmo/core/util/misc_functions.py
0
1
0.0%

datmo/core/controller/snapshot.py
2
4
50.0%

datmo/cli/main.py
0
2
0.0%

datmo/core/util/json_store.py
1
3
33.33%

datmo/core/controller/file/driver/local.py
2
5
40.0%

datmo/core/controller/task.py
1
4
25.0%

datmo/core/storage/driver/blitzdb_dal_driver.py
0
4
0.0%

datmo/core/controller/project.py
26
37
70.27%

Files with Coverage Reduction
New Missed Lines
%

datmo/cli/driver/parser.py
1
86.96%

datmo/cli/driver/helper.py
1
60.81%

Totals

Change from base Build 513:
3.2%

Covered Lines:
2594

Relevant Lines:
3003

💛  - Coveralls

Pull Request Test Coverage Report for Build 517

85 of 160 (53.13%) changed or added relevant lines in 15 files are covered.
2 unchanged lines in 2 files lost coverage.
Overall coverage increased (+3.2%) to 86.38%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

datmo/cli/driver/helper.py
1
2
50.0%

datmo/core/storage/local/dal.py
1
2
50.0%

datmo/core/util/misc_functions.py
0
1
0.0%

datmo/core/controller/snapshot.py
2
4
50.0%

datmo/cli/main.py
0
2
0.0%

datmo/core/util/json_store.py
1
3
33.33%

datmo/core/controller/file/driver/local.py
2
5
40.0%

datmo/core/controller/task.py
1
4
25.0%

datmo/core/storage/driver/blitzdb_dal_driver.py
0
4
0.0%

datmo/core/controller/project.py
26
37
70.27%

Files with Coverage Reduction
New Missed Lines
%

datmo/cli/driver/parser.py
1
86.96%

datmo/cli/driver/helper.py
1
60.81%

Totals

Change from base Build 513:
3.2%

Covered Lines:
2594

Relevant Lines:
3003

💛  - Coveralls

Pull Request Test Coverage Report for Build 517

85 of 160 (53.13%) changed or added relevant lines in 15 files are covered.
2 unchanged lines in 2 files lost coverage.
Overall coverage increased (+3.2%) to 86.38%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

datmo/cli/driver/helper.py
1
2
50.0%

datmo/core/storage/local/dal.py
1
2
50.0%

datmo/core/util/misc_functions.py
0
1
0.0%

datmo/core/controller/snapshot.py
2
4
50.0%

datmo/cli/main.py
0
2
0.0%

datmo/core/util/json_store.py
1
3
33.33%

datmo/core/controller/file/driver/local.py
2
5
40.0%

datmo/core/controller/task.py
1
4
25.0%

datmo/core/storage/driver/blitzdb_dal_driver.py
0
4
0.0%

datmo/core/controller/project.py
26
37
70.27%

Files with Coverage Reduction
New Missed Lines
%

datmo/cli/driver/parser.py
1
86.96%

datmo/cli/driver/helper.py
1
60.81%

Totals

Change from base Build 513:
3.2%

Covered Lines:
2594

Relevant Lines:
3003

💛  - Coveralls


feat: add option to not prepend path to Model Classes with title names

Pairs with/would close #559

Hi sorry @dbanty I'm a little lost on how to add a test for this. Any guidance would be appreciated. Thanks.

Sorry for the long delay getting back to this one, thanks @rtaycher!