plugin-legacy breaks vike build (missing _temp_manifest.json)

Description
Hi 👋
repro here 👉 https://github.com/kazuma1989/repro-vike-vite-plugin-legacy
I met an issue saying:
repro-vike-vite-plugin-legacy % npm run build

> build
> vite build

vite v4.4.9 building for production...
✓ 173 modules transformed.
computing gzip size (0)...[vike:buildConfig]<EMAIL_ADDRESS>You stumbled upon a bug in Vike's source code. Go to https://github.com/vikejs/vike/issues/new and copy-paste this error; a maintainer will fix the bug (usually under 24 hours).
✓ built in 3.81s
error during build:
Error<EMAIL_ADDRESS>You stumbled upon a bug in Vike's source code. Go to https://github.com/vikejs/vike/issues/new and copy-paste this error; a maintainer will fix the bug (usually under 24 hours).
    at Object.writeBundle (file:///Users/kazuma/kazuma1989/repro-vike-vite-plugin-legacy/node_modules/vike/dist/esm/node/plugin/plugins/buildConfig.js:54:17)
    at file:///Users/kazuma/kazuma1989/repro-vike-vite-plugin-legacy/node_modules/rollup/dist/es/shared/node-entry.js:25544:40
    at async Promise.all (index 2)
    at PluginDriver.hookParallel (file:///Users/kazuma/kazuma1989/repro-vike-vite-plugin-legacy/node_modules/rollup/dist/es/shared/node-entry.js:25472:9)
    at file:///Users/kazuma/kazuma1989/repro-vike-vite-plugin-legacy/node_modules/rollup/dist/es/shared/node-entry.js:26792:13
    at catchUnfinishedHookActions (file:///Users/kazuma/kazuma1989/repro-vike-vite-plugin-legacy/node_modules/rollup/dist/es/shared/node-entry.js:25910:16)
    at build (file:///Users/kazuma/kazuma1989/repro-vike-vite-plugin-legacy/node_modules/vite/dist/node/chunks/dep-df561101.js:48011:22)
    at CAC.<anonymous> (file:///Users/kazuma/kazuma1989/repro-vike-vite-plugin-legacy/node_modules/vite/dist/node/cli.js:822:9)

The file file:///Users/kazuma/kazuma1989/repro-vike-vite-plugin-legacy/node_modules/vike/dist/esm/node/plugin/plugins/buildConfig.js:54:17 in the stack trace corresponds to https://github.com/vikejs/vike/blob/v0.4.142/vite-plugin-ssr/node/plugin/plugins/buildConfig.ts#L72.
After investigating, I found that this occurs because the writeBundle hook will be called twice when using the plugin-legacy. When the hook is called the first time, Vite won't emit manifestEntry (e.g.  _temp_manifest.json) yet.
cf. https://github.com/vitejs/vite/blob/v4.4.9/packages/vite/src/node/plugins/manifest.ts#L155
Cloud you please fix this? 🙏

Does everything work if you manually remove that assertion?

Thank you for reply 👍

Does everything work if you manually remove that assertion?

Sorry but no because the line after the assertion requires manifestEntry to exist.
const manifestFilePathOld = path.join(dir, manifestEntry.fileName);

(Optional chaining manifestEntry?.fileName doesn't work here because path.join() requires strings, not undefined.)
If I change the condition like below, everything works (build succeeds and the assets.json is emit).
         async writeBundle(options, bundle) {
             const manifestEntry = bundle[manifestTempFile];
-            if (generateManifest) {
+            if (generateManifest && manifestEntry) {
                 assert(manifestEntry);
                 const { dir } = options;
                 assert(dir);
                 const manifestFilePathOld = path.join(dir, manifestEntry.fileName);
                 // Ideally we'd move dist/_temp_manifest.json to dist/server/client-assets.json instead of dist/assets.json
                 //  - But we can't because there is no guarentee whether dist/server/ is generated before or after dist/client/ (generating dist/server/ after dist/client/ erases dist/server/client-assets.json)
                 //  - We'll able to do so once we replace `$ vite build` with `$ vike build`
                 const manifestFilePathNew = path.join(dir, '..', 'assets.json');
                 await fs.rename(manifestFilePathOld, manifestFilePathNew);
             }
             else {
                 assert(!manifestEntry);
             }
         }

Hm, seems like there is some kind regression on Vite's part. I'll check your reproduction later. Let me know if it's urgent (I can pre-release your workaround until I implement a proper fix).

Thank you very much! But it's not that urgent, so I don't want to bother you to make a pre-release.

the same bug, there is still a lot browsers not support module type

I'll have a look at it this week. As always: let me know if it's urgent.

I'll have a look at it this week. As always: let me know if it's urgent.

yes, I think it is urgent。 Because，without legacy plugin, we can't use vike in prod environment

If I change the condition like below, everything works

This temporary workaround is released as<EMAIL_ADDRESS>Let me know if you still get issues.
I'll implement a proper fix later this week.

It seems this has been broken again in v0.4.161 where this plugin has been refactored. At the moment, it is failing for use with
ENOENT: no such file or directory, open '/<obscured>/dist/client/_temp_manifest.json'

triggered from this line https://github.com/vikejs/vike/blob/000e7142ae8854bddc01b23309f923129b16ba28/vike/node/plugin/plugins/buildConfig.ts#L101
Not really sure how this could be fixed yet.

Actually, this reproduction is already broken starting with v0.4.151 for other reasons because it tries to read assets.json from the dist folder. If you build with v0.4.150 first, though, this issue does not manifest as it will just read the file from the previous build (which may not be relevant for the current build).

@lukastaegert I could indeed reproduce. It's again an issue with how Vike and the legacy plugin hooks themselves into Vite's build process. We're actually currently implementing a Vike CLI which should solve the problem once and for all.
Do you mind waiting until we release Vike's CLI? We'll likely need to make it a breaking change and thus release a new major which will delay its release. Let me know if it's a blocker.

Updated reproduction with latest Vike version: https://github.com/brillout/repro-vike-vite-plugin-legacy.

I think it is fine for us to stick with 0.4.150 for a little longer

Actually, re-implementing the workaround was easy. Fix pre-released as 0.4.163-commit-2305d5b.

Nice, this solves the issue above. In my local setup, which is a little bigger (and I did not manage to fully boil it down to a good reproduction), it now fails here
Error<EMAIL_ADDRESS>You stumbled upon a Vike bug. Go to https://github.com/vikejs/vike/issues/new and copy-paste this error. A maintainer will fix the bug (usually under 24 hours).
    at copyAssets (file:///.../node_modules/.pnpm/vike@0.4.163-commit-2305d5b_vite@5.1.4/node_modules/vike/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.js:41:5)
    at fixServerAssets (file:///.../node_modules/.pnpm/vike@0.4.163-commit-2305d5b_vite@5.1.4/node_modules/vike/dist/esm/node/plugin/plugins/buildConfig/fixServerAssets.js:25:11)
    at Object.handler (file:///.../node_modules/.pnpm/vike@0.4.163-commit-2305d5b_vite@5.1.4/node_modules/vike/dist/esm/node/plugin/plugins/buildConfig.js:81:51)
    at PluginDriver.hookParallel (file:///.../node_modules/.pnpm/rollup@4.12.0/node_modules/rollup/dist/es/shared/node-entry.js:19501:17)
    at file:///.../node_modules/.pnpm/rollup@4.12.0/node_modules/rollup/dist/es/shared/node-entry.js:20501:13
    at catchUnfinishedHookActions (file:///.../node_modules/.pnpm/rollup@4.12.0/node_modules/rollup/dist/es/shared/node-entry.js:19923:16)
    at build (file:///.../node_modules/.pnpm/vite@5.1.4_@types+node@20.5.1_sass@1.71.1_terser@5.28.1/node_modules/vite/dist/node/chunks/dep-jDlpJiMN.js:66934:22)
    at triggerFullBuild (file:///.../node_modules/.pnpm/vike@0.4.163-commit-2305d5b_vite@5.1.4/node_modules/vike/dist/esm/node/plugin/plugins/autoFullBuild.js:78:9)
    at Object.handler (file:///.../node_modules/.pnpm/vike@0.4.163-commit-2305d5b_vite@5.1.4/node_modules/vike/dist/esm/node/plugin/plugins/autoFullBuild.js:31:25)
    at async Promise.all (index 0)
    at PluginDriver.hookParallel (file:///.../node_modules/.pnpm/rollup@4.12.0/node_modules/rollup/dist/es/shared/node-entry.js:19499:17)
    at file:///.../node_modules/.pnpm/rollup@4.12.0/node_modules/rollup/dist/es/shared/node-entry.js:20501:13
    at catchUnfinishedHookActions (file:///.../node_modules/.pnpm/rollup@4.12.0/node_modules/rollup/dist/es/shared/node-entry.js:19923:16)
    at build (file:///.../node_modules/.pnpm/vite@5.1.4_@types+node@20.5.1_sass@1.71.1_terser@5.28.1/node_modules/vite/dist/node/chunks/dep-jDlpJiMN.js:66934:22)
    at CAC.<anonymous> (file:///.../node_modules/.pnpm/vite@5.1.4_@types+node@20.5.1_sass@1.71.1_terser@5.28.1/node_modules/vite/dist/node/cli.js:842:9) {
  code: 'PLUGIN_ERROR',
  plugin: 'vike:buildConfig',
  hook: 'writeBundle'
}

Basically it expects the assets directory to exist, which does not. Removing the assert moves the error to a later point (without a stack trace)
[Error: [vike:buildConfig] ENOENT: no such file or directory, lstat '/.../dist/server/assets'] {
  errno: -2,
  code: 'PLUGIN_ERROR',
  syscall: 'lstat',
  path: '/.../dist/server/assets',
  pluginCode: 'ENOENT',
  plugin: 'vike:buildConfig',
  hook: 'writeBundle'
}
 ELIFECYCLE  Command failed with exit code 1.

Yes, I do indeed need to move it to /spa/assets for technical reasons.

In my production setup, this now fails when pre-rendering the HTML with
Cannot find module '/.../dist/server/spa/assets/chunk-BNyIB68C.js' imported from /.../dist/server/entry.mjs

Still did not manage to find a simpler reproduction, though. In a nutshell, these are the relevant parts of my vite.config
import graphql from '@rollup/plugin-graphql';
import legacy from '@vitejs/plugin-legacy';
import vue from '@vitejs/plugin-vue';
import { resolve } from 'path';
import { ssr } from 'vike/plugin';
import svgLoader from 'vite-svg-loader';
import generateHtml from './plugins/generateHtml';

const legacyPlugin = legacy({
  modernPolyfills: true,
  targets: [
    '> 0.5%',
    'last 1 version',
    'Edge >= 16',
    'Opera >= 58',
    'Safari >= 10.1',
    'Firefox >= 52',
    'Chrome >= 57',
    'iOS >= 11',
    'Samsung >= 8',
    'ChromeAndroid >= 71',
    'Android >= 4.3',
    'not dead',
  ],
});

export default defineConfig({
  root: __dirname,
  plugins: [
    vue(),
    svgLoader({
      svgoConfig: {
        plugins: ['prefixIds'],
      },
    }),
    graphql(),
    ssr({ prerender: true }),
    uploadRollbarSourcemaps(),
    legacyPlugin,
    generateHtml(legacyPlugin),
  ],
  base: '/spa/',
  resolve: {
    alias: [{ find: '@', replacement: resolve(__dirname, './src') }],
    extensions: ['.js', '.ts', '.jsx', '.tsx'],
  },
  build: {
    manifest: true,
    outDir: 'dist',
    minify: 'terser',
    terserOptions: { safari10: true },
    rollupOptions: {
      output: {
        chunkFileNames: 'spa/assets/chunk-[hash].js',
      },
    },
  },
  css: { preprocessorOptions: { scss: { charset: false } } },
  optimizeDeps: { include: ['intersection-observer'] }
});

Removing build.assetsDir: 'spa/assets' fixes it, but curiously it breaks again if I change build.rollupOptions.output.chunkFileNames to 'assets/chunk-[hash].js' without the "spa/" prefix. The error is mostly the same except "/spa" is missing in the path of the imported file.
When looking into "dist" there is indeed no assets or spa folder. Only the entry point .mjs files are generated at this point.

I'm not sure what could cause this and how this could be related to Vike. The best would be a reproduction, ideally a minimum one.

I finally managed to create a reproduction https://github.com/lukastaegert/vike-vue-repro
It is based on the vue template. The use of multi-level scss imports was necessary to trigger the bug, don't ask me why.

The use of multi-level scss imports was necessary to trigger the bug, don't ask me why.

Hm, it makes me further think that it's unrelated to Vike. But I'll have a look at the repro later today.

Maybe, but the reproduction works flawlessly with<EMAIL_ADDRESS>With<EMAIL_ADDRESS>you get this error:
[Error: [vike:buildConfig] ENOENT: no such file or directory, open '/.../vike-legacy-repro/dist/client/_temp_manifest.json'] {
  errno: -2,
  code: 'PLUGIN_ERROR',
  syscall: 'open',
  path: '/.../vike-legacy-repro/dist/client/_temp_manifest.json',
  pluginCode: 'ENOENT',
  plugin: 'vike:buildConfig',
  hook: 'writeBundle'
}

And starting with<EMAIL_ADDRESS>the error takes its current form
Error: Cannot find module '/.../vike-legacy-repro/dist/server/spa/assets/chunk-CuntopgX.js' imported from /.../vike-legacy-repro/dist/server/entries/pages_error.mjs
    at finalizeResolution (node:internal/modules/esm/resolve:264:11)
    at moduleResolve (node:internal/modules/esm/resolve:917:10)
    at defaultResolve (node:internal/modules/esm/resolve:1130:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:396:12)
    at ModuleLoader.resolve (node:internal/modules/esm/loader:365:25)
    at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:240:38)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:85:39)
    at link (node:internal/modules/esm/module_job:84:36) {
  code: 'ERR_MODULE_NOT_FOUND',
  url: 'file:///.../vike-legacy-repro/dist/server/spa/assets/chunk-CuntopgX.js'
}

So if the bug is not in vike, something in vike changed to reveal the bug.

Ok good to know, I'll dig into what's the Vike change that causes this.

(Postponing to tomorrow.)
On Mon 4. Mar 2024 at 09:16, Lukas Taegert-Atkinson <
@.***> wrote:

Maybe, but the reproduction works flawlessly with @.***
With @.***, you get this error:
[Error: [vike:buildConfig] ENOENT: no such file or directory, open '/.../vike-legacy-repro/dist/client/_temp_manifest.json'] {
errno: -2,
code: 'PLUGIN_ERROR',
syscall: 'open',
path: '/.../vike-legacy-repro/dist/client/_temp_manifest.json',
pluginCode: 'ENOENT',
plugin: 'vike:buildConfig',
hook: 'writeBundle'
}
And starting with @.*** the error takes its current form
Error: Cannot find module '/.../vike-legacy-repro/dist/server/spa/assets/chunk-CuntopgX.js' imported from /.../vike-legacy-repro/dist/server/entries/pages_error.mjs
at finalizeResolution (node:internal/modules/esm/resolve:264:11)
at moduleResolve (node:internal/modules/esm/resolve:917:10)
at defaultResolve (node:internal/modules/esm/resolve:1130:11)
at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:396:12)
at ModuleLoader.resolve (node:internal/modules/esm/loader:365:25)
at ModuleLoader.getModuleJob (node:internal/modules/esm/loader:240:38)
at ModuleWrap. (node:internal/modules/esm/module_job:85:39)
at link (node:internal/modules/esm/module_job:84:36) {
code: 'ERR_MODULE_NOT_FOUND',
url: 'file:///.../vike-legacy-repro/dist/server/spa/assets/chunk-CuntopgX.js'
}
So if the bug is not in vike, something in vike changed to reveal the bug.
—
Reply to this email directly, view it on GitHub
https://github.com/vikejs/vike/issues/1154#issuecomment-1975965775, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHVQRR67B64FCD5Y2PQSADYWQUVTAVCNFSM6AAAAAA5MD5UX2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZVHE3DKNZXGU
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

Fix pre-released in 0.4.165-commit-6dfef11. Let me know if you run into other regressions or issues.


代码重构

[x] SentryProvider for Microsoft.Extensions.Logging
[x] GeetestValidation refact
[x] GoogleRecaptchaHelper

done in this commit


Fixed OSX specific SHA1 hash check

Here is my proposed solution to only having the rclone osx hash hardcoded.
As you suggested it keeps an offline copy of all hashes and checks that against the online version before checking the hash of the downloaded file.

Many thanks @rrhodgson !


[Meetings][Updatedin-meetingdialog][1609291]

Added information about in-meeting dialog and task module for issue 2870. Grammar and language changes. Please review.

Docs Build status updates of commit 9097408:
:warning: Validation status: warnings

File
Status
Preview URL
Details

msteams-platform/apps-in-teams-meetings/create-apps-for-teams-meetings.md
:warning:Warning
View
Details

msteams-platform/apps-in-teams-meetings/create-apps-for-teams-meetings.md

Line 17, Column 120: [Warning-file-not-found] Invalid file link: 'enable-and-configure-your-app-for-teams-meetings.md'.
Line 281, Column 57: [Warning-file-not-found] Invalid file link: '~/assets/images/apps-in-meetings/plusbutton.png'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit c489122:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/apps-in-teams-meetings/create-apps-for-teams-meetings.md
:white_check_mark:Succeeded
View

msteams-platform/assets/images/apps-in-meetings/plusbutton.png
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit e2e8e31:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/apps-in-teams-meetings/create-apps-for-teams-meetings.md
:white_check_mark:Succeeded
View

msteams-platform/assets/images/apps-in-meetings/plusbutton.png
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Suggestion: Option to change time format to 24H

It would be nice to have an option to show the time format of the the received mails in 24 hour format.

Nice suggestion, thanks. There's no existing place for this sort of configuration and I'm hesitant to add anything. If a spot becomes available that makes sense I'll revisit.


Add Bendigo Bank (Australian Bank)

Here's a screenshot without highlighting: https://i.imgur.com/EBbXNF1.png
And here's one with highlighting: https://i.imgur.com/Ja2Lrme.png
I haven't used this file format before - sorry if I've made any mistakes!

Thanks for submitting! There is just one chance that needs to be made with the image.

Okay, I think I've got it all correct now :)

Thanks!


FEATURE: Create a seatmap handler class

[x] Get event data from product_group_events
[x] Get signed event seatmap url from html data
[x] Get seatmap data
[x] Validate seatmap data with pixelmap
[ ] Parse seatmap data into easy to work with json data
[ ] Integrate into high level module
[ ] Test
[ ] Docs

Validation based on https://www.eventim.de/event/sleep-token-euro-tour-2024-barclays-arena-18626003/

Eventim
Pixelmap


Create inline-card

Adding / editing 'Card' in-lined. In this scenario, using is adding a segment:
Add:

Edit

Hey @heatherco, looks like there hasn't been any action taken on these PRs, so we're going to close them out for now. If you'd like these items to be added to the index, please fill out the .yml file and we can reopen the PR. Thanks!


@griest024 feat(category): add filter type field query to replacement driver

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/graycoreio/daffodil/blob/master/CONTRIBUTING.md#commit
[x] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?

Category driver makes an uncachable aggregations query to get filter types.
What is the new behavior?
Category driver makes cachable filter type fields query.
Does this PR introduce a breaking change?
[ ] Yes
[x] No

Other information
supersedes #1452  and #1450

This looks pretty good to me. Only thing is that a lot of the factory tests have essentially nothing in them. I'd be ok with either adding the tests or deleting the spec files for those factories

@lderrickable added tests


Solved issue #412

Added fullscreen option in clock activity as mentioned in #412

Nice start, the toolbar is hidden/shown correctly but the window is not resized.
You must resize the window to increase the board size.

Fixed by https://github.com/llaske/sugarizer/commit/08295319934d8c48c8c249cd68240af66903bf56


[HW] Petr Kysela

Name: Petr Kysela
Email<EMAIL_ADDRESS>Linkedin Profile: https://www.linkedin.com/in/petrkysela/
Attach the homework step I screenshots below:

Attach the homework step II screenshots below:

Hey there Petr, thank you for your submission. Nice job getting the app correctly configured and deployed. The only thing we are missing is step 2 of the homework.
2. Learn more about spring in the course and complete scenario Build a Spring Boot REST Service at the bottom of the page and make a screenshot of the "congratulations" page.
Please post an image of the "completed" screen once finished.


docs: fix comment for getHighestFrame

I assume that the result of getHighestFrame() should be the frame, rather the frame rate.

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

Snapshot stored with reference name:
refs/pull/14975/merge
Test environment:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14975/merge/index.html
To test a playground add it to the URL, for example:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14975/merge/index.html#WGZLGJ#4600
Links to test babylon tools with this snapshot:
https://playground.babylonjs.com/?snapshot=refs/pull/14975/merge
https://sandbox.babylonjs.com/?snapshot=refs/pull/14975/merge
https://gui.babylonjs.com/?snapshot=refs/pull/14975/merge
https://nme.babylonjs.com/?snapshot=refs/pull/14975/merge
To test the snapshot in the playground with a playground ID add it after the snapshot query string:
https://playground.babylonjs.com/?snapshot=refs/pull/14975/merge#BCU1XR#0

WebGL2 visualization test reporter:
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14975/merge/testResults/webgl2playwright/index.html

Visualization tests for WebGPU (Experimental)
Important - these might fail sporadically. This is an optional test.
https://babylonsnapshots.z22.web.core.windows.net/refs/pull/14975/merge/testResults/webgpuplaywright/index.html


chore: use ts in lambda handler code section

Fixes #79

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

Closing as the issue #79 needs investigation


RMD occasionally loses colorization

Probably projections tracking issue
I just wanted to ask if there is a way to get correct R syntax highlighting in R-chunks inside of Rmarkdown files.  When I open my RMarkdown files in Visual Studio 2015 upd3, using RTVS 0.4 I get only singe colored R-chunks with occasional “errors” due to apostrofs in the comments. See the screenshots below:

TEST.Rmd.txt

Reproes when selecting both regions in RMD and then pasting RMD text that containes another region with missing starting triple-tick

In this particular case the problem is in the date line. the closing " is lost so the remaining R code becomes string until the next double quote.

https://github.com/Microsoft/RTVS/commit/f981c81aef6dcd32be84d6f372e40e69670feeb1


Story 97561 - Task 104641: Update the policy.json to support the new RBAC and automate the deployment of these roles and policy files

Creating and describing the purpose of the policy.json file for each service (keystone, nova,neutron, cinder and glance)
Update ursula with the updated policy.json files
Creating the new roles cloud_admin and project_admin
Create a new user cloud_admin with the "cloud_admin" role and needs to be added to the demo project
Create a new user project_admin with the "project_admin" role on the demo project

Can one of the admins verify this patch?

"ok to test" to accept this pull request for testing
"test this please" for a one time test run
"add to whitelist" to add the author to the whitelist

ok to test

These commits should be squashed down, probably to a single commit.

These commits need to be squashed.

Looks good, just waiting for tests now.

This is blocked by conflicts.

what would be the preferred method of resolution? should i merge master into my fork, or remove the files which i'm pretty sure are causing the conflict?

retest

Looks good. Just needs to pass tests.

retest

Please rebase on master to pick up required fixes to pass tests.

retest


Fix issue with peerDependencies (tslint & typescript)

The Travis build is currently broken because of this

Closed by 054233fd467bd6d1bc66945c6c89c5ee3e17de8f


Unsupported protocol version 'Asterisk Call Manager

Good day everyone, Could you help me solve this error?
Got asterisk protocol identifier version Asterisk Call Manager/2.10.4
Determined Asterisk version: Asterisk 13
Closing socket
Apache NetBeans IDE 12.1
Java: 14.0.1; Java HotSpot(TM) 64-Bit Server VM 14.0.1+
all error message:
[main] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl - Connecting to <IP_ADDRESS>:5038
[main] INFO org.reflections.Reflections - Reflections took 288 ms to scan 1 urls, producing 31 keys and 209 values
[Asterisk-Java ManagerConnection-0-Reader-0] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl - Connected via Asterisk Call Manager/2.10.4
[Asterisk-Java ManagerConnection-0-Reader-0] WARN org.asteriskjava.manager.internal.ManagerConnectionImpl - Unsupported protocol version 'Asterisk Call Manager/2.10.4'. Use at your own risk.
[main] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl - Successfully logged in
Error
[main] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl - Got asterisk protocol identifier version Asterisk Call Manager/2.10.4
[main] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl - Determined Asterisk version: Asterisk 13
[main] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl - Closing socket.
BUILD SUCCESSFUL (total time: 0 seconds)

Unsupported protocol version 'Asterisk Call Manager/2.10.4'. Use at your
own risk.
This is just a warning.
Do you have an actual problem?
When posting an issue you need to provide far more details on what the
issue is.  We simply can't help you with the information provided.
On Fri, 13 Nov 2020 at 06:45, jrcmoura<EMAIL_ADDRESS>wrote:

Good day everyone, Could you help me solve this error?
Got asterisk protocol identifier version Asterisk Call Manager/2.10.4
Determined Asterisk version: Asterisk 13
Closing socket
Apache NetBeans IDE 12.1
Java: 14.0.1; Java HotSpot(TM) 64-Bit Server VM 14.0.1+
all error message:
[main] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl -
Connecting to <IP_ADDRESS>:5038
[main] INFO org.reflections.Reflections - Reflections took 288 ms to scan
1 urls, producing 31 keys and 209 values
[Asterisk-Java ManagerConnection-0-Reader-0] INFO
org.asteriskjava.manager.internal.ManagerConnectionImpl - Connected via
Asterisk Call Manager/2.10.4
[Asterisk-Java ManagerConnection-0-Reader-0] WARN
org.asteriskjava.manager.internal.ManagerConnectionImpl - Unsupported
protocol version 'Asterisk Call Manager/2.10.4'. Use at your own risk.
[main] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl -
Successfully logged in
Error
[main] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl - Got
asterisk protocol identifier version Asterisk Call Manager/2.10.4
[main] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl -
Determined Asterisk version: Asterisk 13
[main] INFO org.asteriskjava.manager.internal.ManagerConnectionImpl -
Closing socket.
BUILD SUCCESSFUL (total time: 0 seconds)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/asterisk-java/asterisk-java/issues/357, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAG32ODO6VGLGBMGELQWFDLSPQ3NNANCNFSM4TTWVK3Q
.

This issue likely is happening because AMI version 2.10 is not defined in the code base:
org.asteriskjava.manager.internal.ManagerConnectionImpl:
private static final String[] SUPPORTED_AMI_VERSIONS = {

            "2.6", // Asterisk 13
            "2.7", // Asterisk 13.2
            "2.8", // Asterisk >13.5
            "2.9", // Asterisk >13.3
            "3.1", // Asterisk =14.3
            "3.2", // Asterisk 14.4.0
            "4.0", // Asterisk 15
            "5.0", // Asterisk 16
            "6.0", // Asterisk 17
            "7.0", // Asterisk 18
    };

One could simply provide a PR with 2.10 there, but to fix this for other edge cases one solution would be to add some semver matching compared to some fixed mapping.

Hi, any solution? i still have the same issue  [WARN] [org.asteriskjava.manager.internal.ManagerConnectionImpl] Unsupported protocol version 'Asterisk Call Manager/9.0.0'. Use at your own risk even though i am using version 3.36.0

Asterisk 20 sets AMI version to 9.0.

Asterisk 20 sets AMI version to 9.0.

How can i solve this issue and have this warning turned off

Use version 3.36.1 with fix for this.

Use version 3.36.1 with fix for this.

Here is the error I am getting when using version 3.36.1
 [ERROR] [org.asteriskjava.manager.internal.ManagerConnectionImpl] Unable to determine asterisk version, assuming Asterisk 16... you should expect problems to follow.

@brabo-hi 3.37.0 should resolve this bug. Let me know it everything is ok.

yes it is solved. Thanks


Training time finished without any models trained

Training time finished without any models trained

@AyushSri8188 Sorry you ran into this problem! How long did you train for? Would you mind training for longer (maybe 60 seconds), and seeing if that fixes the problem?

@AyushSri8188 any luck training for longer?

Closing this. Please re-open and @ mention me if this is still a problem. Thanks!


Vite support

Adds a 2nd argument to registerTheme
- public function registerTheme(string $url): void
+ public function registerTheme(string $url, bool $vite = false): void

Example
Filament::serving(function () {
    Filament::registerTheme(
        'resources/css/filament.css',
        vite: true,
    );
});

TODO

[ ] update docs

maybe
if ($vite) {
    $this->themeUsesVite = true;
}

to
 $this->themeUsesVite = $vite;

Removed the extra param, now you can just do Filament::registerTheme(app(Vite::class)('resources/css/filament.css')(

This look good to me. Works as expected from a Filament standpoint.
One thing I would add is to put autoprefixer in the npm install command and the postcss.config.js file in the docs, since it is still recommended by tailwind in their postcss docs.

Tested this with the demo and works.

Added autoprefixer, thanks

@danharrin Seems like this causes issues with Laravel Mix. I didn't have that issue when testing with the default stylesheet, but when registering a theme Filament::registerTheme(mix('css/filament.css')).
Apparently mix() returns a HtmlString,

Oh... right. We can fix that.

hmmm

how do we differentiate between mix and vite now...

fixed

I hate it but its fine

Looks nasty, but I guess it works. Had the same idea about checking for <script


[BUG] Blt backend could not resolve "ctrl-f" in the text_area example.

Describe the bug
Blt backend could not resolve "ctrl-f" in the text_area example.
To Reproduce
cursive\examples> cargo run --features cursive/blt-backend  --no-default-features --bin text_area
and press ctrl-f in the textarea
Expected behavior
The search dialog should op up.
Environment

Operating system used
Windows 10
Backend used: ncurses (the default one), pancurses, crossterm, ...
blt

Temporarily I solved it this way
Index: cursive/src/backends/blt.rs
===================================================================
diff --git a/cursive/src/backends/blt.rs b/cursive/src/backends/blt.rs
--- a/cursive/src/backends/blt.rs	(revision 8e252e176bb7b9b4bb1a37b3cdb957d5b92af490)
+++ b/cursive/src/backends/blt.rs	(date<PHONE_NUMBER>371)
@@ -374,7 +374,11 @@
 }

 fn blt_keycode_to_char(kc: KeyCode, shift: bool) -> char {
-    match bear_lib_terminal::terminal::state::char() {
+    let c = bear_lib_terminal::terminal::state::char();
+    if (c as usize) < 32 /*code for space*/ {
+        return blt_keycode_to_char_impl(kc, shift);
+    }
+    match c {
         '\u{0}' => blt_keycode_to_char_impl(kc, shift),
         c => c,
     }

Hi, and thanks for the report!
I just tested on linux and ctrl+F is working fine as-is. Could it be a difference between the linux and windows implementation of BLT? :S


so3.log gives an incorrect result for some matrix

The log of a rotation matrix obtained from so3.log for the following matrix is incorrect:
import torch

import ptlk

mat = torch.Tensor([
    [-1.00000396e+00, -9.55433245e-07,  1.04267154e-06],
    [ 1.04267254e-06, -9.99052394e-01,  4.36201482e-02],
    [ 9.55432245e-07,  4.36191482e-02,  9.99051394e-01]])

print(ptlk.so3.log(mat))
# prints:
# tensor([0., 0., 0.])

print(ptlk.so3.exp(ptlk.so3.log(mat)))
# prints:
# tensor([[1., 0., 0.],
#         [0., 1., 0.],
#         [0., 0., 1.]])

print(torch.allclose(mat, ptlk.so3.exp(ptlk.so3.log(mat)), atol=1e-2))
# prints:
# False

I tried to change eps in so3.log function, but it does not seem to help.

Ok, I think that I understand what happened. Essentially, this is a numerical precision error.
I will close the issue because I did not find any better way to calculate the coefficients in this case.

Here is a detailed explanation, in case one might find it useful in the future.
The generators' coefficients are calculated using the following:

Usually, the second term (red) in (15) is nonzero or far enough from zero. In such a case, we can use:

(Where R=exp(\omega_x) ).
However, when sin(\theta)/(\theta) is zero or very small the above does not work properly. It happens when approximately \theta=(+/-)\pi, as in the case above. In this case, we have to use the quadratic order in \theta (blue in (15), (14) is still valid):

The numerical problem occurs because \omega_1^2=0 but \omega_1\omega_2 is not zero. Unfortunately, it looks like this method is also not stable in this case.

The part in the code of so3 which performs the calculation:
https://github.com/hmgoforth/PointNetLK/blob/8b851c12d851d94bab8145d130a05f17b14ed30a/ptlk/so3.py#L99-L116
(Especially L102.)
The above is based on:
http://www.ethaneade.org/lie.pdf


HSEARCH-3319 WIP: DRAFT: IDEA: TEST: Type-safe field references

https://hibernate.atlassian.net/browse/HSEARCH-3319
These are just some tests I've tried so far to see what's what and what's where 😃
So far, I'm thinking about enclosing the field path, type and value-convert in a field reference.
An actual entity property would be an extension of this reference where it could be either an attribute (FieldAttributeReference) or an 'object" containing other attributes.
If it is a simple attribute, then it would provide the methods to get ValueConvert.NO or ValueConvert.PARSE variants of references...
I'm also thinking if we should open these details on the interface (the field path, type and value-convert) or hide them in the implementation and do something similar to LuceneSearchPredicate#from but HibernateSearchFieldReference#from and reject non-search references 🤔
I also suspect we do not want to break the API 😈 sooo maybe what I've tried on the match predicate can work?

It got me thinking... What if we create a set of interfaces:
interface AggregableTypedFieldReference<T>
interface SearchableTypedFieldReference<T>
interface ProjectableTypedFieldReference<T>
interface HighlightableTypedFieldReference<T>
interface SortableTypedFieldReference<T>
interface TypedFieldReference<T>

And then, for each field, we create a custom implementation of the field reference, adding the interfaces based on what the field allows...
This way, if the field is not projectable, the user will not be able to pass it to the field projection as the interface will be missing, and so on
Or it'll just generate too many classes and isn't really needed? (alternatively, we create classes for all possible combinations of the options and use them (Maybe we can generate these as part of the metamodel, rather than maintain them manually).

Context for @gavinking : we're discussing the "metamodel" interfaces to be used in Hibernate Search for "type-safe" query building -- basically the equivalent of JPA's Attribute/SingularAttribute/etc.

It got me thinking... What if we create a set of interfaces:
interface AggregableTypedFieldReference<T>
interface SearchableTypedFieldReference<T>
interface ProjectableTypedFieldReference<T>
interface HighlightableTypedFieldReference<T>
interface SortableTypedFieldReference<T>
interface TypedFieldReference<T>

And then, for each field, we create a custom implementation of the field reference, adding the interfaces based on what the field allows... This way, if the field is not projectable, the user will not be able to pass it to the field projection as the interface will be missing, and so on

I had thought of that, and indeed it seems very nice... I'd be interested in @gavinking's opinion though. I suspect there's a very good reason not to have done this in JPA and we're simply missing it :)
One thing that makes this solution kind of weak is that the proposed interfaces are still quite broad-scoped. A field being "aggregable" doesn't necessarily mean you can run a terms aggregation on it -- it has to be a text field for that.
We could create one interface per possible operation -- basically one interface per trait -- but would this be wise?

Or it'll just generate too many classes and isn't really needed? (alternatively, we create classes for all possible combinations of the options and use them (Maybe we can generate these as part of the metamodel, rather than maintain them manually).

Definitely too many classes if done naively. We need to use the same class definition for all fields that share the same traits (not the same type, just the same traits!). I suspect that would only lead to about dozen classes even on complex applications, even if we went with one interface per trait.

I had thought of that, and indeed it seems very nice... I'd be interested in @gavinking's opinion though. I suspect there's a very good reason not to have done this in JPA and we're simply missing it :)

Well, we actually do have something like that in the Jakarta Data static metamodel.
The reason it's not particularly useful in JPA is that it maps to SQL and  in SQL essentially every type is sortable, projectable, aggregable, etc.
That said, there is value in having things like TextualAttribute, NumericAttribute, etc, though it's very much specific to the type system you're trying to model.

Right, okay. So I think we could go with one type per trait @marko-bekhta .
I'd suggest creating a follow-up issue for backend-specific traits, because that is going to be lots of fun. We may end up merging pojo-base into the engine.

Note that I guess I kinda slightly oversimplified the situation with JPA, since actually there are some constraints on what you can do with different types of expressions, but they are encoded into constraints on type parameters of methods of CriteriaBuilder.
This works, but it's a solution that does involve some verbosity. @beikov has proposed introducing typed expression interfaces to JPA,though they're not really precisely the sort of "traits" you're thinking about here.


Rename nullAccessor to getNull

Addresses #661

Hey this is a breaking change, so if we are going to release a new version in needs to be a major bump

Is it worth forcing a bump? Shouldn't be too hard to stay backwards compatible by still supporting the old accessors, perhaps emitting a deprecation message?

I don't think it's worth a version bump. +1 for generating a depreciation message. Can someone else do this? I'm not super free for this type of a work for a week or two.


【Android】How to use custom Cluster on Android CHIP TOOL SDK?

Android chiptool based on TE9 tag cannot send custom clusters. Has the interface been implemented yet，
is there anyone who can help me?

same issue. Any update?


Add NFS export/import pod examples.

This PR adds two pods:

NFS exporter: exports static directory with index.html
NFS client + web server - serves the index.html imported via NFS

I am not sure what are the rules here, these are items worth noticing:

Copyright header in examples/nfs/exporter/run_nfs. Every source file should have a license header, right?
Both Dockerfiles are Fedora based.

~400 MB images; similar to dockerfile/nginx used in other examples, so probably OK.
The images are hosted in my personal github repo, should it move somewhere else?

It's really the minimal working example:

There is no replication controller for the NFS server.
There is no service for the web server (NFS client).

Everything is in v1beta3 syntax.

If you signed the CLA as a corporation, please let us know the company's name

I work for Red Hat, Inc.

LGTM.  Thanks for the example.  Any chance you can do a follow up PR that turns this into an e2e test?


[runners-flink] #28258 Wait infinitely if the duration value is less …

…than 1ms in FlinkDetachedRunnerResult
This PR addresses issue #28258. If the provided duration value will be less than 1ms, the while loop condition will be always True

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

assign set of reviewers

@je-ik would you mind taking a look at this one?

Run Java_PVR_Flink_Batch PreCommit

The change LGTM, failing check seems not related, but I'd like to see the precommit pass. @damccorm do you see why the dataflow check fails?

I am not sure, looks like there are some intermittent flakes with the suite though. This change is almost definitely not the culprit, so I'd lean towards us just filing an issue for testMaxThreadMetric and not blocking the PR. I also kicked it again to see if we can get a green run

OK. LGTM, @ddebowczyk92 thanks for the fix!


docs(readme): add missing ampersand in clone command

That makes sense. Thanks for all these obvious POSIX PRs :sweat_smile:


Add  src directory

Does my coding partner follow JS best practices?

A complete To-Do-List project for Review Based on
JavaScript best practices.
DRY, KISS, and YAGNI rules.
HTML & CSS best practices

Great job on the project. Kudos for:

Keeping your JS code to best practices
Observing DRY, KISS, and YAGNI rules

However, you might want to consider implementing HTML5 semantic code for the following section (perhaps incorporate header, main, and/or footer sections):
[

Today's To Do

      <form id="form">
        <input class="new-task" type="text" placeholder=" Add your list..." minlength="2">
        <button class="submit" type="submit">↵</button>
      </form>

    <button class="clear-all">Clear all completed</button>

](https://github.com/principles31/Code_Review/blob/e2f3e49efd0c4246fb75f90d0e8d13f985dd5a68/src/index.html#L11-L29)

@felixodette Thanks for the feedback.


I2C NACK

Version of ssd1306 in use (if applicable): 0.3.0-alpha.2
MCU/other hardware in use: stm32f446re nucleo board
Display resolution and interface i2c, 128x64

Description of the problem/feature request/other
Randomly gets NACK back over I2C. I didn't spend much time debugging, I was trying to get a little Rust logo to bounce back and forth between sides of the screen and noted that it would get about half way before a NACK i2c error.
I hacked this together to tinker with rust, rtfm, and this sweet little display so perhaps I just did something wrong. I did look at the i2c signaling on my scope and it looked clean.
Test case (if applicable)
//#![deny(warnings)]
#![no_std]
#![no_main]

use core::convert::TryInto;
use panic_semihosting as _;
use cortex_m::iprintln;
use rtfm::cyccnt::{Instant, U32Ext as _ };
use stm32f4xx_hal::{prelude::*, i2c::I2c, gpio::{Alternate, AF4, gpiob::{PB8, PB9}}, stm32};
use embedded_graphics::{prelude::*, pixelcolor::BinaryColor};
use ssd1306::{prelude::*, Builder as SSD1306Builder};

const PERIOD: u32 = 1_000_000;

#[rtfm::app(device = stm32f4::stm32f446, peripherals = true, monotonic = rtfm::cyccnt::CYCCNT)]
const APP: () = {

    struct Resources {
        #[init(0)]
        n: u32,
        itm: cortex_m::peripheral::ITM,
        disp: GraphicsMode<ssd1306::interface::i2c::I2cInterface<stm32f4xx_hal::i2c::I2c<stm32f4::stm32f446::I2C1, (stm32f4xx_hal::gpio::gpiob::PB8<stm32f4xx_hal::gpio::Alternate<stm32f4xx_hal::gpio::AF4>>, stm32f4xx_hal::gpio::gpiob::PB9<stm32f4xx_hal::gpio::Alternate<stm32f4xx_hal::gpio::AF4>>)>>>,
        im: Image<'static, BinaryColor>,
    }

    #[init(schedule = [tick])]
    fn init(mut cx: init::Context) -> init::LateResources {

        // Initialize (enable) the monotonic timer (CYCCNT)
        cx.core.DCB.enable_trace();
        // required on devices that software lock the DWT (e.g. STM32F7)
        unsafe { cx.core.DWT.lar.write(0xC5ACCE55) }
        cx.core.DWT.enable_cycle_counter();

        let mut itm = cx.core.ITM;

        // semantically, the monotonic timer is frozen at time "zero" during `init`
        let now = cx.start; // the start time of the system

        // Schedule `tick` to run 8e6 cycles (clock cycles) in the future
        cx.schedule.tick(now + PERIOD.cycles()).unwrap();

        //iprintln!(&mut itm.stim[0], "init @ {:?}", now);

        let rcc = cx.device.RCC.constrain();
        let clocks = rcc.cfgr.sysclk(48.mhz()).freeze();
        let gpiob = cx.device.GPIOB.split();

        let scl = gpiob.pb8.into_alternate_af4();
        let sda = gpiob.pb9.into_alternate_af4();

        let i2c = I2c::i2c1(
            cx.device.I2C1,
            (scl, sda),
            400.khz(),
            clocks
        );

        let mut disp: GraphicsMode<_> = SSD1306Builder::new().connect_i2c(i2c).into();

        let im: Image<BinaryColor> = Image::new(include_bytes!("./rust.raw"), 64, 64);

        disp.init().unwrap();
        disp.flush().unwrap();
        //disp.clear();
        //disp.flush().unwrap();
        disp.draw(im.into_iter());
        disp.flush().unwrap();

        init::LateResources {
            itm: itm,
            disp: disp,
            im: im,
        }
    }

    #[task(schedule = [tick], resources = [itm, n, im, disp])]
    fn tick(cx: tick::Context) {

        let now = Instant::now();

        *cx.resources.n += 1;
        let x_coord: i32 = (*cx.resources.n % 128).try_into().unwrap();

        cx.resources.disp.draw(cx.resources.im.translate(Point::new(x_coord, 0)).into_iter());
        cx.resources.disp.flush().unwrap();

        cx.schedule.tick(cx.scheduled + PERIOD.cycles()).unwrap();
        //iprintln!(&mut cx.resources.itm.stim[0], "tick(scheduled = {:?}, now = {:?})", cx.scheduled, now);
    }

    extern "C" {
        fn UART4();
    }
};

test case dependencies
[dependencies]
cortex-m = "0.6.1"
cortex-m-rt = "0.6.10"
cortex-m-semihosting = "0.3.3"
cortex-m-rtfm = "0.5.0"
panic-semihosting = "0.5.3"
embedded-graphics = "0.6.0-alpha.2"
ssd1306 = "0.3.0-alpha.2"

stm32f4xx-hal = {version = "0.6.0", features = ["stm32f446"]}
stm32f4 = {version = "0.8.0", features = [ "stm32f446", "rt" ]}

Thanks for taking the time to post a complete test case! I'll take a look on my display when I can.

Thanks for making a sweet embedded library! Let me know if there's anything I can test for you

Will do! I don't have a scope (which is lunacy tbh) so I'll let you know :slightly_smiling_face:

I just spent the last hour in vain trying to get the vanilla schedule.rs example working on my Blue Pill (STM32F103, so not the same CPU) to no avail. I do however have an STM32F411RET6 board I'll try to reproduce your issue on which I'll try when I'm next at home.
Have you got any further on your side? Can you try running your code on a different dev board to see if it's the HAL/chip maybe? Also, have you tried running in --release mode, or with a lower I2C frequency?

I did try 100 khz i2c previously without success. I have an nrf52 board I can try and an stm32f303 nucleo board I can also try, will try and make time today for that

I gave your example code a test on my STM32F411 board and it works fine in --release mode. I can't get my setup to work with a non-release build so I can't test that.
One thing I did do differently was to use the Git repo directly, not a release on crates.io. Can you give that a go with
[dependencies.stm32f4xx-hal]
git = "https://github.com/stm32-rs/stm32f4xx-hal.git"

I also found and fixed an issue I had where nothing would show on the display without adding .set_open_drain(). That might also help you. Details here: stm32-rs/stm32f4xx-hal#120.

I'll try that out, thanks!

@jamwaffles just an update from me on this, did spend a good amount of time playing with this last night, but couldn't get things to build properly with alpha.2. crates.io and cargo don't seem to obey anything after the last point release version, it automatically updated emebedded graphics to alpha.3 which broke this crate for me. I tried to do everything via git and fixing things up without much luck. I'll try again once this is updated to use the newer embedded graphics crate and will attach a logic analyzer.
Can recommend anything sigrok supports if you don't have one yourself.

Cheers for the update. I released ssd1306 version 0.3.0-alpha.3 yesterday which hopefully fixes the versioning issue via #103. Can you try that version (and maybe delete Cargo.lock or do a cargo update after) and see if you get anywhere? Apologies for the breakage.

Can recommend anything sigrok supports if you don't have one yourself.

Aye I found a knockoff 8 channel one down the back of my couch lol. Haven't had time to test it yet. Let me know how you get on!

I think I'm going to chalk up the remaining issues with this display to me either destroying it by tossing it around like the aliexpress cheapo it is, I get a line down the middle of the screen but I don't believe that's a driver or e-g issue. Cheers! Thanks for the help

There's a growing corpus of issues with I2C generally so yeah, not sure it's this driver.

I get a line down the middle of the screen

Is it bi-colour? IIRC you sent a gif and it was a blue/yellow display? They have a physical gap between the blue and yellow areas which is annoying.

Yes its a bi=colour display with yellow/blue


Nav Shortcuts

Could you provide a way to get to the top of the list of operations quickly?  Our list of Operations is over 100 and if you go to the bottom of the list you have a lot of scrolling to get back to the top.  Maybe some sort of hover button that appears at the bottom of the nav when you scroll down that will take you back to the top?  Or a link next to the word Operations that is now sticky that says Top to take you back to the top?

I wonder if we should do something similar to the stripe API experience: https://stripe.com/docs/api/payment_methods
Two modes:

all expanded, let's you collapse them
only one tag expanded at a time, selecting a different one opens that section with the list but closes the other sections

I'd venture that would be a better experience, would that be an acceptable solution?

I think it would get closer, but I think we would still have a struggle because of how many Operations we have.  The scrolling just gets excessive.  Anything that would aid in navigating up the page quicker for the user would be a great help.  The best I can do now is suggest using the Home button on the keyboard, but that's tricky because you have to make sure to click one of the operations to make it work.

How many operations per tags do you have?

187...it is higher than we want, we are trying to consolidate them into fewer tags.  Even after we do that, I don't believe we will be considerably lower...maybe down to 150?

150 operations per tag? You probably like 10~20 tags? So you have over 1000 operations in your one API? Wow.
Right now I'm thinking the easiest thing to implement would be a "clickable link" next to the OPERATIONS header. Fwiw, you can overwrite the operations header (because it is a slot) and already add that, you don't have to wait for us to add something in here to support that.
(There might even be a slot at the bottom of the API, if there isn't, perhaps that could be the easiest thing for us to add instead.)

Sorry, I may have misread your question.  I equate operations = tags, is that incorrect?  I have about 7 paths per tag.  But still, we have A LOT of endpoints on our API, maybe not 1000, but it is up there.
Do you have some sort of example of how to accomplish the clickable link?

ha, no an operation is like get /resource/endpoint not a tag. 7 paths per tag, :+1:. at 150 paths, and ~7/tag that's still ~21 tags.
If you only have 21 tags being displayed a time + 7 paths, that's only ~28 "clickable objects". I wouldn't think "srcoll to top" would be necessary.
as far a clickable link, in 0.8.300 I've added a slot for operations-header. Here's how you can override the header and add a clickable button to "scroll to top"
<openapi-explorer>

OPERATIONS

<button onclick="onClick()" style="padding-left: 10px; color: #FBAF0B; text-decoration: none; font-size: 16px;">click me</button>

</openapi-explorer>

In your case, you'll obviously want this in react, but I'm sure that's no problem to dynamically set the explorer-location attribute from javascript.

Ok, so based on your definitions, I have 517 unique paths and I am hoping to get down to 150 unique tags, so I will have 150 collapsable items that are showing in the left hand nav, that's why I have the scrolling issue.  Sorry I wasn't speaking the same terms.  I think this should clarify it now though.
I will start testing with the 0.8.300 build and use your example to see what I can come up with and report back.  Thanks again for your help.  It is very appreciated!

I know it isn't everything, but with the suggestion I previous made and a new change in 0.8.301 to have the Stripe like collapse experience, I think this is going to be a lot better

@wparad could this be made so you can specify if you want to have the Operations section loaded so that they are all collapsed by default or expanded by default?  Right now it defaults to expanded, but it would be nice to be able to have that customizable, especially now with the new change you made.  I can open a separate ticket if you want?

@wparad could this be made so you can specify if you want to have the Operations section loaded so that they are all collapsed by default or expanded by default? Right now it defaults to expanded, but it would be nice to be able to have that customizable, especially now with the new change you made. I can open a separate ticket if you want?

@silverbullettruck2001 :+1: separate ticket


fix: show correct mainstat options after reopening relic modal

Pull Request

Description

Fixed a minor (and kinda unimportant :P) issue where the main stat options displayed when adding or editing a relic could be from a different part.
How to reproduce:

Add a new relic or edit a relic
Choose a part with main stat options (i.e. Body, Feet, PlanarSphere, LinkRope)
Close the editing window / modal
Reopen the window
Enjoy creating a Head relic with Elemental Damage main stat

Related Issue

None

Checklist

[x] I have added commit messages that are descriptive and meaningful.
[x] I have tested the changes locally.
[ ] I have reviewed the code changes.

Screenshots

Ooh that's a good catch - thank you for finding that!

Added a minor fix for the event handler order & sent the changes to beta.


Add proper symbolic equality checks for broadcasting

Previously, broadcasting with symbolic shapes would not do symbolic equality checking when checking broadcasting. For example, the following arrays would not broadcast together:
A: shape [N,]
B: shape [N * (j + 1) - N * j]

I'm pretty sure that there are many other cases where this is being done incorrectly, but this helps for my use case for now.

BTW, I don't have merge rights


Identity scaffolder readme should contain instructions to run EF Core imgrations

If you run the identity scaffolder you get a pretty cryptic error about not being able to connect to the database because of a login failure. This is because you need to run migrations. But you're starting without identity you probably don't have the database error page and there isn't anything in the readme about needing to run a migration. We should update the readme about the need to run a migration.

Fixed by #767


JDBC fetchSize change

@ashikaumanga the code changes look promising.
I have a question, consider a table which has 10M rows. I start JDBC source connector with fetchSize=10K. Does this change loads only 10K records into Kafka or iteratively load all 10M records?

it will load all 10Mil records  reading 10k per each batch
On Sat, Oct 12, 2019, 12:59 PM pushpavanthar<EMAIL_ADDRESS>wrote:

@ashikaumanga https://github.com/ashikaumanga the code changes look
promising.
I have a question, consider a table which has 10M rows. I start JDBC
source connector with fetchSize=10K. Does this change loads only 10K
records into Kafka or iteratively load all 10M records?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ashikaumanga/kafka-connect-jdbc/pull/1?email_source=notifications&email_token=AAOJ7TYX4374MZ6UEHUKGYDQOFDRPA5CNFSM4HZHN3J2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEBBU25Y#issuecomment-541281655,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAOJ7T56EJGVXN6DPU4QEXLQOFDRPANCNFSM4HZHN3JQ
.


Multiple Raven Instances?

Is there a way to configure multiple Raven instances? For example: sending a special subset of errors to one DSN and most errors to another DSN.

In case there's anything interesting there, I recently built a system to support one or many API authentications for a different project: https://github.com/modernmsg/giftbit/pull/7

I think Raven is currently set up as a singleton. Maybe @dcramer can weigh in on whether we want to do this - it would make testing a little easier for us I think.

We need to figure out what our story is for this in general. In a lot of larger projects (monorepos) it makes sense to be able to route errors. The solution could be that the individual client can take care of it, but that makes it very complex. The better solution is a "meta client":
class MetaClient:
    def send(event):
        this.getClientForEvent(event).send(event)

This is a bit awkward, but really what we want is to take advantage of the SDK's ability to inject error handlers, but have the actual processing of data and sending happen in an individual SDK instance that is bound to a single DSN.


Increasing the timeout for one test

One test testDeadlockDetected_TwoDifferentLockInstances  causes problem while compiling, where the timeout happens.
I increased the timeout from 10 to 11 and problem resolved
@Test     @Timeout(value = 11)     void testDeadlockDetected_TwoDifferentLockInstances() throws InterruptedException {

Thanks for sharing @metao1 :-)


Evaluating DFLOWFM BMI as a NextGen Formulation

Short description explaining the high-level reason for the new issue.
Steps to compile DFLOWFM model, BMI shared libraries, and BMI driver to test functionality (single thread)

Please go ahead and download my latest forked version of DFLOWFM, which includes a BMI directory in the following pathway on GitHub: https://github.com/jduckerOWP/DFLOWFM_NOAA_BMI
Inside the forked version of my DFLOWFM branch above, please follow the instructions highlighted in the README.md file to compile the DFLOWFM model, BMI shared libraries, and the DFLOWFM BMI driver.
Once you have completed these steps, please go ahead and comment on this issue and I will provide a small DFLOWFM model setup to test the BMI driver for NextGen initiatives moving forward. We can go back and forth on requests needed by the model engine team to integrate the DFLOWFM BMI as a functioning model within the current NextGen model engine framework.

Updated documentation and Wiki pages have been created as a guide for compiling DFLOWFM source code and the BMI. Please refer to this moving forward DFLOWFM_BMI_wiki_pages


unset feature events after layer remove

tracked down this issue https://github.com/CartoDB/cartodb/issues/10542 until the feature events
despite I could easily have checked the layerModel in https://github.com/CartoDB/cartodb.js/blob/v4/src/vis/map-cursor-manager.js#L70 to prevent the undefined I thought something could still be not ok, I realized we were firing featureOut events on the layer we had removed
I don't really know if this change will bring unintended consequences but looks like unbinding the events on layer remove fixes this, let's discuss the tests tomorrow @alonsogarciapablo
/cc @xavijam @javisantana @nobuti

LGTM, much better 👍

still not ok :/


fix connection example

The documentation example for the connection as is fails to compile
java.lang.IllegalArgumentException: Host for when using mongodb+srv protocol can not contain a port
Changing it to MongoConnectionType.Classic resolves this error.
And updates MongoClient.fromConnection example to provide [IO] as the Async[F]

Thanks for the fix!
Looks like the port number in MongoConnection needs to be optional as well.


Input geom 0 is invalid: Self-intersection at or near point

Hello gboing.
I have seen the issue #270 but I'm not sure it is the same issue.
Request
For some location, the method create_footprints_gdf has an issue.
You can find below an example of request.
results = osmnx.footprints.create_footprints_gdf(polygon=None, north=51.26658135394529, south=51.152831680560726, east=4.55191769225323, west=4.4076010491502684, footprint_type='building', retain_invalid=False)
The issue
I got these errors when I do this request :

TopologyException: Input geom 0 is invalid: Self-intersection at or near point
shapely.errors.TopologicalError: The operation 'GEOSDifference_r' could not be performed. Likely cause is invalidity of the geometry <shapely.geometry.polygon.Polygon object at >

If I add .buffer(0) for temp_poly=footprints[outer_poly]['geometry'] and temp_poly=temp_poly.difference(footprints[inner_poly]['geometry'].buffer(0)), the issue disappear but it is not satisfactory.
I use Python 3.7 on windows.
Thank you a lot.

I think this is the same as issue #270.
Your code generates this error:
TopologyException: Input geom 0 is invalid: Self-intersection at or near point 4.4621621060636354 51.214826758346931 at 4.4621621060636354 51.214826758346931
If you look at OpenStreetMap at that point
(https://www.openstreetmap.org/#map=19/51.21486/4.46238) the castle's outer boundary is made up of two lines.
As in #270 OSMnx currently tries to turn them both into individual polygons but the shorter one creates a self-intersection. buffer(0) may 'fix' the self-intersection but it still won't return the correct geometry for the outer edge of the castle.

Thanks @AtelierLibre, did that geom.buffer(0) suggestion resolve it? (That fix has often worked for me in other, previous, but similar circumstances). If so, would you like to create a PR?

@gboeing The exisiting create_footprints_gdf only correctly handles polygons formed from single closed ways. The geom.buffer(0) may 'fix' the invalid polygons created from chained open ways and avoid the error but it won't create the correct shape for the building.
I potentially have a bit of time to look at this now and I was thinking it could be done in two steps:

Amend the existing create_footprints_gdf to fail gracefully i.e. not try to polygonise chains of open ways and warn that this is what it is doing.
Implement this algorithm to deal with multipolygons properly.

I'm suggesting two steps as I think the second one might take some time. Does that sound okay?

@AtelierLibre that sounds good, and thanks again for you help with this functionality! It's much appreciated.

resolved in #289

Thanks a lot !


utils/repology.rb: fix "String can't be coerced into Integer"

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.
[ ] Have you successfully run brew style with your changes locally?
[ ] Have you successfully run brew tests with your changes locally?

brew bump errors out with:
Error: String can't be coerced into Integer
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/utils/repology.rb:12:in `+'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/utils/repology.rb:12:in `query_api'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/utils/repology.rb:42:in `parse_api_response'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/dev-cmd/bump.rb:41:in `bump'
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb:112:in `<main>'

because query_api expects a String and last_package_index is an Integer (see line 44)

Thanks for the quick fix!


Fix/attach references - fixes #1130

Another potential option would be to listen to the is render model available stuff in steamvr.
But how do we abstract that into a generic SDK event? at the moment the SDK classes are static methods and they don't re-emit any events.


Use KubeContext from cluster-standup-teardown

What this PR does
Changed

Updated cluster-standup-teardown to v1.0.2
Made use of new clusterbuilder.KubeContext() function
Updated readme requirements

Removed

Removed KubeContext const from each test suite

Blocked by https://github.com/giantswarm/cluster-test-suites/pull/276
Checklist

[x] Update changelog in CHANGELOG.md.

Trigger e2e tests

/run cluster-test-suites

/run cluster-test-suites

/run cluster-test-suites

Failures are flakes unrelated to this change. I'm going to add the skip label


Remove all synchronous versions of asynchronous methods

This includes FileSystem, WriteStream, and ReadStream operations.

I think I changed my mind about this task. It's okay for things to be synchronous.


added kates edits

Content must go through a pre-merge checklist.
Pre-Merge Content Checklist
This documentation has been checked to ensure that:

[ ] The title, template, and date` are all set
[ ] Does this PR have a new menu item (anywhere in templates/*.hbs files) that points to a document .md that is set to publish in the future? If so please only publish the .md and .hbs changes in real-time (otherwise there will be a menu item pointing to a .md file that does not exist)
[ ] File does not use CRLF, but uses plain LF (hint: use cat -ve <filename> | grep '^M' | wc -l and expect 0 as a result)
[ ] Has passed bart check
[ ] Has been manually tested by running in Spin/Bartholomew (hint: use PREVIEW_MODE=1 and run npm run styles to update styling)
[ ] Headings are using Title Case
[ ] Code blocks have the programming language set to properly highlight syntax and the proper copy directive
[ ] Have tested with npm run test and resolved all errors
[ ] Relates to an existing (potentially outdated) blog article? If so please add URL in blog to point to this content.

Might be worth squashing the commits, or giving the second one a more specific message.  (Not a blocker and the content is fine.)

Superseded by https://github.com/fermyon/developer/pull/713


Standardize activity

We should standardize how we display activity across our products — in particular the wallets. Creating the one issue to track design work, we can split into one issue per product once ready for implementation.

components: https://www.figma.com/file/Li7qK8ZIG9c5dKSNOPO4iCtv/❖-Design-System?node-id=2582%3A3171
examples: https://www.figma.com/file/MQgs9NBbmzFcosnu9Itvp6/standardized-activity?node-id=49%3A4566

Design needs finalization in spec. Currently just in drafts.


python3Packages.alerta: add missing dependency

Motivation for this change
Following from https://github.com/NixOS/nixpkgs/pull/98881, this finally fixes the Alerta Hydra failure.
ZHF: #97479
https://hydra.nixos.org/build/127654289
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

WFM macos 10.14, non-nixos linux x86_64
@ofborg build python37Packages.alerta python38Packages.alerta


Match registered users sending emails to tracker and add them to "created by"

Kind of a random feature suggestion/request I guess, and relatively new to GitHub so please bear with me. I was able to add the above feature by trying to match the user with an email if "best_task" is none (So it only tries to find a match if a new task is being created). I'm using django-todo as a public-ish support management tool.
The goal for me was to make it so users could send an email to the tracked email address and if they were in the system, the sender would show up in the task as "created by". This would allow comments/replies to be sent to back to them in response. Its only helpful if users already have an account, but for me most users communicating with the tracking email will be registered.
I'm not sure if there was already a good reason this is not implemented, but I'd be happy to submit a pull request if you think it would be a good thing to add!

@fross123 This sounds like a very good idea. I'd be happy to take a look at your pull request. Thanks in advance!


Add end-dec data separation dec-target separation

Add end-dec data separation dec-target separation

Priority: None
Created: September 19, 2022 at 10:36PM
via iOS Reminders Additional Life list

In the target_split function
keys <- can be selected by config file
y_data <- same as target, but in differenced scale.


Fix three vulnerabilities

Closes #441
Do we need a changelog for upping versions?
Basics

[ ] I added a line to /doc/CHANGELOG.md
[ ] The PR is rebased with current master.
[ ] Details of what you changed are in commit messages.
[ ] References to issues, e.g. close #X, are in the commit messages.
[ ] The buildserver is happy.

Checklist

[ ] I have installed and I am using pre-commit hooks
[ ] I fully described what my PR does in the documentation
(not in the PR description)
[ ] I fixed all affected documentation
[ ] I fixed all affected decisions
[ ] I added unit tests for my code
[ ] I added code comments, logging, and assertions as appropriate
[ ] I translated all strings visible to the user
[ ] I mentioned every code or binary not directly written or done by me in reuse syntax
[ ] I created left-over issues for things that are still to be done
[ ] Code is conforming to our Architecture
[ ] Code is conforming to our Guidelines
(exceptions are documented)
[ ] Code is consistent to our Design Decisions

Review

[ ] I've tested the code
[ ] I've read through the whole code
[ ] Examples are well chosen and understandable

Do we need a changelog for upping versions?

Yes, from the security perspective this is one of the most important information of a Changelog.

Please also add the missing changelog of the other PR here.

This also fixes the currently existing link error, my pre-commit reformated the whole protocoll.


Updates md output rendering of headings, Closes #4380

This PR updates md output rendering of headings.
Closes #4380

Great job @nicodecleyre, we'll try to review it ASAP!


feat: As an Admin, I want to revoke a Portal that was registered

What does this PR do?
Adds a "revoke" method to the PortalRegistry contract to revoke an improperly used contract
Related ticket
Fixes #437
Type of change

[ ] Chore
[ ] Bug fix
[X] New feature
[ ] Documentation update

Check list

[X] Unit tests for any smart contract change
[X] Contracts and functions are documented

What is the idea behind this ? I can understand having a revoke function where the portal owner can revoke the portal they created. But having it as the contract owner I don't think is a good idea

Codecov Report
Attention: 2 lines in your changes are missing coverage. Please review.

Comparison is base (a464ff0) 94.24% compared to head (c607390) 93.82%.

:exclamation: Current head c607390 differs from pull request most recent head eb5cdd9. Consider uploading reports for the commit eb5cdd9 to get more accurate results

Files
Patch %
Lines

contracts/src/PortalRegistry.sol
81.81%
1 Missing and 1 partial :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##              dev     #439      +/-   ##
==========================================
- Coverage   94.24%   93.82%   -0.43%
==========================================
  Files          19       19
  Lines         313      324      +11
  Branches       68       71       +3
==========================================
+ Hits          295      304       +9
- Misses          9       10       +1
- Partials        9       10       +1

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


Fix zlib issue

I was running into the following error, while trying to run bazel run //:parse -- generate -r pwd -s 3rdparty/workspace.bzl -d dependencies.yaml. It happens because this project depends on version 3.8.0 of com_google_protobuf which in turn depends on zlib. The particular zlib url used in version 3.8.0 is no longer active.
ERROR: An error occurred during the fetch of repository 'zlib':
   Traceback (most recent call last):
	File "/home/ubuntu/.cache/bazel/_bazel_ubuntu/b26ed7439bb0d97834fc365137090839/external/bazel_tools/tools/build_defs/repo/http.bzl", line 111, column 45, in _http_archive_impl
		download_info = ctx.download_and_extract(
Error in download_and_extract: java.io.IOException: Error downloading [https://zlib.net/zlib-1.2.11.tar.gz] to /home/ubuntu/.cache/bazel/_bazel_ubuntu/b26ed7439bb0d97834fc365137090839/external/zlib/zlib-1.2.11.tar.gz: GET returned 404 Not Found
ERROR: /home/ubuntu/.cache/bazel/_bazel_ubuntu/b26ed7439bb0d97834fc365137090839/external/com_google_protobuf/BU

sorry for the latency here!
Thanks for sending this!
I've merged https://github.com/bazeltools/bazel-deps/pull/314
which also has this fix so I'll close this one but I really appreciate you taking the time to send this and hope you'll continue to send PRs!


Use develop branches of packages on develop branch

Closed in https://github.com/raxod502/radian/commit/5b21de3551f7a7f0da27a4a20e6996de2871c9d5, https://github.com/raxod502/radian/commit/aa28933cac1747a0ab79e2b149b2f7ad88043807, https://github.com/raxod502/radian/commit/223abc524f693504af6ebbc70ad2d84d9a6e2d1b.


Switch to CMake build system

Switch to using cmake build system

We've had a CMake build system and CMPAddPackage along with the nuget package since 1.6.


updated cards

Updated #740 and now ReadMoreButton is working!! Changes of #711  are visible on the website.

Thank you so much @007aneesh..LGTM👌


Update django dependency

Now, in poetry dependencies set version 3.2. May set >=3.2.12,<5.0.0?

Also, added information about how to install library via pip/poetry.


Pulsar X

I've started a new minimal branch due to some issues that have come up with Pulsars, while working on Eldar War Engines and Heresy-era War Engines.
Short version - it's going to make things a lot easier if Pulsar isn't a fixed 'number/die roll' of shots, but can be varied depending on the unit, so D3, or D3+1, or D6 etc.
For example the Pulse Laser arm weapons on the Revenant Titans have 'D3 x anti-tank shots (each)'. If these aren't the same as a Pulsar with D3 shots (a single super-heavy weapon), it makes a pair of Revenants unexpectedly powerful compared to a Phantom as they would be harder to suppress, inflict more Blast markers, and have more Firepower in firefights.
Do you have any strong preferences between Pulsar X and Pulsar (X)?

Sounds sensible to me.👍
I'm definitely in favour of parenthesis where an ability has a variable value, and of course it'd be consistent with Transport (X) and Hitch (X) — so, Pulsar (X).
I suggest attributes thus:

{pulsar-x}: Pulsar (X)
{pulsar-d3}: Pulsar (D3)
{pulsar-d3plus1}: Pulsar (D3+1)
{pulsar-d6}: Pulsar (D6)

...and so on for any other variations that we decide we want. I can add these to the playbooks soon if you like — no particular reason not to, given that this is more than just an idea to rough out.

Pull request opened.

@IJW-Wartrader I took a moment to update the playbook with the new variations on the {pulsar} attribute. I don't intend to remove the plain {pulsar} attribute — I think it'll still be useful even after we've replaced most existing references with {pulsar-x}.
 It's awkward, because we're referring to a specific rules item in the fashion of plain prose (where plain 'Pulsar' would normally be better, or "Pulsar (X) weapon" — although we've avoided adding 'weapon' to date because of the doubling up we'd get in "Close Combat Weapon weapon" if we were to apply it consistently. One way or another, it seems that we have to break consistency/make an exception somewhere for the text to read 'right' in all cases).
While we should use {pulsar-x} wherever possible, I think that there are some cases where plain {pulsar} may remain the neatest way out of the conundrum.


sidecar fails to marshall json for accesslog and metrics service

#17661 fixed the decoding of JSON arguments into the proto after #17495 [though the entire thing used to work before #17495 and #17478 ]. After #17661 the gateways are now getting the proper JSON configs and pilot agent is able to decode them into the RemoteService proto. However the sidecars are now failing to decode the data!
The gateway receives this as the cli arg (camel case)
2019-10-08T01:14:35.923815Z	info	FLAG: --envoyAccessLogService="{\"address\":\"oap.istio-system:11800\",\"tlsSettings\":{\"mode\":\"DISABLE\",\"subjectAltNames\":[]},\"tcpKeepalive\":{\"interval\":\"10s\",\"probes\":3,\"time\":\"10s\"}}"

and correctly decodes it after #17661 . However, the sidecar is receiving
2019-10-08T01:19:03.215249Z	info	FLAG: --envoyAccessLogService="{\"address\":\"oap.istio-system:11800\",\"tls_settings\":{},\"tcp_keepalive\":{\"probes\":3,\"time\":{\"seconds\":10},\"interval\":{\"seconds\":10}}}"

which has snake case and types.Duration object itself instead of a string for the "time" and "interval" fields. This is presumably caused by https://github.com/istio/istio/blob/master/install/kubernetes/helm/istio/files/injection-template.yaml#L139 that uses structToJSON to serialize the proto into a JSON object. However, jsonpb in https://github.com/istio/istio/blob/master/pilot/cmd/pilot-agent/main.go#L588 does not like this format.
What is perplexing is how did this work in the past? [access logging worked for us certainly. Not sure if the TLS settings or tcp keep alive worked or not]. And why did this break after #17478 [if that is the culprit].

cc @nmittler / @joeyb / @ramaraochavali

@rshriram when you say that sidecars are now failing, are you seeing this on CI? Do you have any links?

@rshriram it might be the same issue underneath as https://github.com/istio/istio/issues/17600
The json tags inside the proto tag are CamelCased but the json tag by itself are snake cased. That's how any field with _ in proto get converted in go.

see #17675 for fix for this issue.


Feature: Add s3:// as a supported storage root for batch files.

Feature scope
Targets (data type handling, batching, SQL object generation, etc.)
Description
Extend the Batch feature to support AWS s3 as a supported storage root.
Other changes that would be good to ship with this feature:

Add cleanup_files=true|false option for Batch config on the target side. False is currently the default behavior for Batch messages. Making it configurable would allow users flexibility on whether they want to keep the batch files after processing them.

@jamielxcarter - Is this a feature you might be interested in contributing?
I just spoke with @edgarrmondragon, and at minimum we'd need to add https://github.com/PyFilesystem/s3fs as a (probably optional or 'extra') python dependency, plus adding some tests.
One possible implementation is to assume that the S3/AWS creds are already discoverable via the underlying S3 libraries (via AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_DEFAULT_REGION, or another method) and then just pass the S3 path to the target using the same convention.
The underlying PyFilesystem library does have S3 capabilities - so in theory you just need to auth successfully and have the extra libraries installed.

@aaronsteers - Yes very much so. I'll open up a PR and start contributing when I can! Thanks for the guidance, I'll start there.


Window default button function placement dependency

In my code I had the following, where dialogue is an layout with an OK button:
    ...
    panel_layout(panel, dialogue);
    window_defbutton(w, ok);        //DOES NOT WORK!
    window_panel(w, panel);
    window_title(w, "Funtus");
    window_origin(w, pos);
    ...

The ok button does not show up as a default button. However, if I write
    ...
    panel_layout(panel, dialogue);
    window_panel(w, panel);
    window_defbutton(w, ok);        //WORKS!
    window_title(w, "Funtus");
    window_origin(w, pos);
    ...

it works fine.
So the placement does matter. If it isn't a bug, it should be documented.

Before window_panel(w, panel); your window is an empty container and window_defbutton() does nothing, because any button exists in the window. For this reason exists window_defbutton() and not button_set_default(). Really in both cases the SDK is working fine.

I accept that it is working, but... having made all the definitions before instantiating the window, it makes sense that the default button declaration/definition also would be taken into account when creating the window.
I believe a note to the effect that the call to window_defbutton(...) must be made after the window has been created should be added to the documentation.

Added a tip in function documentation: https://nappgui.com/en/gui/window.html#f28


Use of British English in library

I love this library very much, but one thing that bothers me is the use of British English in the code, while American English is standardized in coding.
For example, the word colour is used, instead of the American English color:
colourMap = {},

Another example, where inconsistency between the two occurs:
// compute the center of some circles by maximizing the margin of
// the center point relative to the circles (interior) after subtracting
// nearby circles (exterior)
function computeTextCentre(interior, exterior) {}

If HTML, CSS, JavaScript, and basically every other language use American English, then why does this library not follow that standard?
I understand changing this would possibly introduce compatibility issues, but the longer you wait the worse the impact will be.

I'm actually using Canadian English spelling -  in British English function names like normalizeSolution would be  normaliseSolution instead. Having said that, Canadian English isn't exactly well known and I can understand how you might have gotten it confused =)
I agree about being consistent with CSS and HTML for the public API though - it could be a source of friction for most people using this library. I'm on vacation until September, I'll see about adding support for Americans when I get back.

I apologize for getting Canadian English and British English mixed up. I'm not a native English speaker myself. I personally prefer British English over American English on most occasions, however, I feel that - in programming - American English should always be used, for standardization purposes, obviously.
Anyway, thanks for getting back to me. Enjoy your vacation.

in my fork at https://github.com/upsetjs/venn.js. I added support for both: https://github.com/upsetjs/venn.js/blob/eb3e1c2c6a227a485af79a932db056f867e2e3b7/src/index.d.ts#L170-L175


Clean up config handling

Let's be honest, the config code is a bit of a mess. Let's clean it up by:

[ ] Separating out the os-specific code for the addon_dir from the initial config file creation
[ ] Move the config dir creation check out of the addon service
[ ] Consider creating traits for the config struct to house most of the config functions
[ ] Remove or consolidate other config functionality

Yeah, basing the path off the current user should be easy enough. Ultimately on the first run I'd like it to auto check several paths and pick one if it exists. Otherwise be able to manually set the path through the UI like option 3 with a basic setup/onboarding screen. TBH the existing config handling is a bit of a mess because I just wanted to get it working.
Also, thank you for the interest in this project. Let me know if you have any other feedback or contributions and I'll gladly consider it.

@MonospacedFonts I pushed a new release last night with some updates to the config and AddOn directory selection (among other things). It's kind of basic for now, but if you get a chance to install it, let me know if it works for you and I'll close this issue.

Unfortunately I haven't hooked up the "Install" button from the browse section yet. So I'm a bit surprised an addon is attempting to install. I looked up "I was blocking" and apparently that's a deleted addon so it won't be possible to install. Would you mind sending a zip of your .config/eso-addons dir so I can check it out?

I didn't see anything too strange in the files but thanks for sending them. I would recommend updating to the latest version and see if the problem persists. Since the topic as deviated from the original issue I'm going to close this. Any remaining issues can be discussed separately.


Fix OverflowException when estimating the progress remaining time

Also add a unit test (Should_Report_Max_Remaining_Time_For_Extremely_Small_Progress) to demonstrate how it could happen and to ensure that TimeSpan.MaxValue is used instead of an OverflowException being thrown.

Opened on the wrong repository.


Create docker input plugin

Similar to Sematext Docker Agent:

Capture logs from docker remote API
Parse messages with Logagent parser
Enrich logs with container labels, env vars etc.
Enrich logs with Kubernetes and Swarm metadata

Is this issue open I would like to tackle it

Plugin docs: https://sematext.com/docs/logagent/input-plugin-dockerlogs/
Published in Docker image to collect Docker logs: https://hub.docker.com/r/sematext/logagent/


Don't allow for blocks in the future

Instead this must be handled in the network layer.

See also #284.

This will be part of the design of the Chain DB and the chain sync client. The design is in place (see semi-formal spec), closing this as it's not a separate task anymore.


I failed when I run train_128.py

the error is
img = cv2.cvtColor( img, cv2.COLOR_RGB2YUV )
cv2.error: D:\Build\OpenCV\opencv-3.2.0\modules\imgproc\src\color.cpp:9781: error: (-215) scn == 3 || scn == 4 in function cv::cvtColor
when I tracking the wrong, I find that the reason is  no files in ./images/line and ./images/color.
your code is
path2 = os.path.join(self._root2 + "_b2r/", self._paths[i])
but there is not anything in path2.
what should i do?

Its line file data augmentation, so put line image file extracted with another param into line_b2r folder also.

you mean that I need my own pictures with colorful and lineful pair, then write their names in .\cgi-bin\paint_x2_unet\dat\images_color_train.dat?

yes see also
https://github.com/pfnet/PaintsChainer/issues/29

thanks


GetProductInfo not returning iOS products

I cannot get a list of products or purchase items when debugging locally with the Debug build.
If I upload the app to TestFlight, I can at least get products back (have not tested purchase yet).
Is there an issue with this plugin when using the Debug build?  I went back and I listened the Merge Conflict podcast, and it sounded like James had this same problem.   However, he didn't provide a clear resolution.
Things I have verified

the development profile has App Store provisions.
the development profile, phone, and signing certificate all line up in when building under Debug
The sandbox account authenticates

What else am I missing?   I am using subscriptions, and my stomach is turning over thinking about having a dev cycle that involves having to upload to Testflight in order to test things out.

I have also facing the same issue did i need to do some special configuration

did you sign your debug build? I dont know about iOS but on android you need to sign your build with the same key as you upload on the store and your app must be already in the store(beta, alpha at least)

Hey, i have the same problem, subscription buy works in debug but no Infos from GetProductInfoAsync -> i cant debug the code it feels like it freezes even try catch dont return anything

Anyone figure out how to resolve this? This also effects our Testflight builds.

Does it work in production?

I'm having the same problem when debugging in android, I never get my products. My app is in Internal Testing and I get nothing back. I even opened a SO question about it:
https://stackoverflow.com/questions/65332635/unable-to-fetch-inapp-products-for-xamarin-android-using-plugin-inappbilling-pac/65348286#65348286

Unable to reproduce, is good here


filter/update_tables.py fails silently, discarding error output from pfctl

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I have searched the existing issues and I'm convinced that mine is new.

Describe the bug
/usr/local/opnsense/scripts/filter/update_tables.py fails silently, for example when trying to handle a blocklist of more than 32768 entries (see #4239). There is no error message when invoking the table update from the Web UI (by applying an alias change). No output appears in the log.
Additional context
update_tables.py contains several invocations of subprocess.run with capture_output=True. The doc says this means stdout and stderr will be captured separately. However, update_tables.py does not pick up any stderr output.
I'd suggest to either

change capture_output=True to stdout=subprocess.PIPE, stderr=subprocess.STDOUT, or
handle stderr output

on each invocation.
Environment
OPNsense 20.7

This worked before, it should reflect the error to the user when there isn't enough memory for example. This looks like a typo here https://github.com/opnsense/core/blob/ce2b145185aed9a9306380a46f773d211623df45/src/opnsense/scripts/filter/update_tables.py#L163-L172 introduced in https://github.com/opnsense/core/commit/867856733bdb17268adfb405aee26d779df35cd4
stdout should have been stderr.
Thanks for reporting, I'll close the issue with the commit fixing it.

I see. If stdout is being ignored intentionally, it could be made clear (and avoids a pipe resource) by specifying stdout=subprocess.DEVNULL, stderr=subprocess.PIPE.
Note that the other pfctl calls (-T show and -T kill) could still fail silently.

I know, but these are less crucial in general, we can send output to the log, but in this case probably wouldn't really help. The configuration error (not enough memory) happens quite often which is the situation 99% of the users trip into.
About the stdout / stderr, that's just how it's supposed to work according to the docs:

If capture_output is true, stdout and stderr will be captured. When used, the internal Popen object is automatically created with stdout=PIPE and stderr=PIPE. The stdout and stderr arguments may not be supplied at the same time as capture_output.

Yes, the doc is right, but that way you have a dangling pipe for stdout with no one reading from it. This will deadlock your process once there's enough output to fill the pipe's buffer. The docs have this warning:

Warning Use communicate() rather than .stdin.write, .stdout.read or .stderr.read to avoid deadlocks due to any of the other OS pipe buffers filling up and blocking the child process.

The implication of this would be larger than the update_tables.py script, since in reality we haven't witnessed issue of this kind and the same documentation contains examples reading directly from the pipe as well, I would rather prevent adding more logic now. The same document also seems a bit ambiguous on when  Popen.communicate() is used internally.

I know you can get away with the simple model in subprocess.run most of the time. Problems start, for example, when there's unexpected runaway output of the command invoked. Or when output grows to a size exceeding the OS's pipe buffer. If so, it becomes hard to diagnose. I've experienced this more than once, and it's a general unixoid thing, not even Python-specific.
If output is meant to be ignored anyway, you'd just be safe with stdout=subprocess.DEVNULL, stderr=subprocess.PIPE.

no, you won't, since as mentioned earlier it's not a valid option. I'm not going to discuss this further, as far as I know it's not needed to wrap it, since run() encapsulates Popen.communicate() internally.
https://github.com/python/cpython/blob/5654f83b9706af88040f515791f1cdc5d81cd9d6/Lib/subprocess.py#L491

OK, I'm pretty sure its just a misunderstanding as capture_output=True is just a shortcut for stdout=subprocess.PIPE, stderr=subprocess.PIPE, and the question remains why you'd prefer to leave an unread pipe open, but let's leave it at that.

just read the python source an you'll see

I have read the source, I don't see that it contradicts what I have tried to convey.
The buffer filling up and blocking the process cannot be seen in the Python interpreter/library code (not even on the C level) as it happens behind the scenes in the popen(3) library function: After a [v]fork(2) system call, the stdin/stdout/stderr descriptors of the child process are connected to file descriptors of the parent process, which are then represented by the above Python std* file objects. Whenever an output file descriptor is open but never read, further output blocks the process once its buffer fills up. Connecting such a file descriptor to /dev/null prevents this.
But again, I'm not trying to push anyone.

Maybe there's some miscommunication, the only thing I tried to tell you here is that you can't set stderr or stdout while using capture output:
https://github.com/python/cpython/blob/5654f83b9706af88040f515791f1cdc5d81cd9d6/Lib/subprocess.py#L482-L485
Next it uses  process.communicate to capture the output into both byte or string buffers (depending configuration), which should prevent any type of locking
https://github.com/python/cpython/blob/5654f83b9706af88040f515791f1cdc5d81cd9d6/Lib/subprocess.py#L491
If you're using Popen directly, the doc states you should not use read() or write() directly, which isn't what we're doing (anywhere in the code as far as I know).
So either we have a hypothetical discussion of what should be best when not using subprocess.run() or there's a miscommunication of how subprocess.run() handles the underlaying pipes (which should be safe according to their own source and docs).
Just trying to point you in the right direction, but if you still don't see my point, I suggest we just keep it that way as I'm pretty sure we should change anything other than what was broken (reading stdout in stead of stderr).
As far as I can find it always reads both channels (stderr, stdout), no matter if you're going to use the output and uses communicate() to fetch the results.

I absolutely agree with you on not mixing capture_output with stdout/stderr. That's why the initial issue description reads

change capture_output=True to stdout=subprocess.PIPE, stderr=subprocess.STDOUT

which was meant to say "replace the capture_output shortcut entirely". And later on the intention was to replace capture_output=True with stdout=subprocess.DEVNULL, stderr=subprocess.PIPE where stdout should be ignored.
Verifying the _communicate function
https://github.com/python/cpython/blob/5654f83b9706af88040f515791f1cdc5d81cd9d6/Lib/subprocess.py#L1370
I stand corrected and you are right that both outputs are read completely in a way that's blocking-free (via separate threads). Sorry for my wrong assumption that stdout/stderr are file-like objects being read on demand.
So employing my above suggestion would save some resources (two extra threads plus output memory) by avoiding the call to _communicate (note the underscore) entirely. But leaving it as it is now does no further harm. Thanks!