unable to install on windows

my command prompt output after doing npm install:
<EMAIL_ADDRESS>postinstall C:\Users\x\Downloads\wth\reactabular-master
node lib/post_install.js
C:\Users\x\Downloads\wth\reactabular-master\lib\post_install.js:7
execSync(command, {
^
TypeError: undefined is not a function
at exec (C:\Users\x\Downloads\wth\reactabular-master\lib\post_install.js:7:5)
at C:\Users\x\Downloads\wth\reactabular-master\lib\post_install.js:14:9
at Object.oncomplete (fs.js:107:15)
npm ERR<EMAIL_ADDRESS>postinstall: node lib/post_install.js
npm ERR! Exit status 8
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
npm ERR! This is most likely a problem with the reactabular package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node lib/post_install.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls reactabular
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "install"
npm ERR! cwd C:\Users\x\Downloads\wth\reactabular-master
npm ERR! node -v v0.10.29
npm ERR! npm -v 1.4.14
npm ERR! code ELIFECYCLE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\Users\x\Downloads\wth\reactabular-master\npm-debug.log
npm ERR! not ok code 0

my log file:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\Program Files\nodejs\\node.exe',
1 verbose cli   'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli   'install' ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose node symlink C:\Program Files\nodejs\node.exe
5 verbose readDependencies using package.json deps
6 verbose install where, deps [ 'C:\Users\rukshi\Downloads\wth\reactabular-master',
6 verbose install   [ 'classnames',
6 verbose install     'lodash.sortbyorder',
6 verbose install     'annogenerate',
6 verbose install     'annomath',
6 verbose install     'babel',
6 verbose install     'babel-core',
6 verbose install     'babel-eslint',
6 verbose install     'babel-loader',
6 verbose install     'babel-plugin-react-transform',
6 verbose install     'chai',
6 verbose install     'clean-webpack-plugin',
6 verbose install     'css-loader',
6 verbose install     'eslint',
6 verbose install     'eslint-plugin-react',
6 verbose install     'file-loader',
6 verbose install     'gh-pages',
6 verbose install     'highlight.js',
6 verbose install     'html-loader',
6 verbose install     'html-webpack-plugin',
6 verbose install     'isparta-instrumenter-loader',
6 verbose install     'karma',
6 verbose install     'karma-chai',
6 verbose install     'karma-coverage',
6 verbose install     'karma-mocha',
6 verbose install     'karma-phantomjs-launcher',
6 verbose install     'karma-sourcemap-loader',
6 verbose install     'karma-spec-reporter',
6 verbose install     'karma-webpack',
6 verbose install     'lodash',
6 verbose install     'marked',
6 verbose install     'mocha',
6 verbose install     'phantomjs',
6 verbose install     'phantomjs-polyfill',
6 verbose install     'plexus-form',
6 verbose install     'plexus-validate',
6 verbose install     'purecss',
6 verbose install     'react',
6 verbose install     'react-ghfork',
6 verbose install     'react-pagify',
6 verbose install     'react-skylight',
6 verbose install     'react-transform-hmr',
6 verbose install     'schema2object',
6 verbose install     'style-loader',
6 verbose install     'title-case',
6 verbose install     'url-loader',
6 verbose install     'webpack',
6 verbose install     'webpack-dev-server',
6 verbose install     'webpack-merge' ] ]
7 info preinstall<EMAIL_ADDRESS>8 verbose readDependencies using package.json deps
9 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
10 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
11 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
12 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
13 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
14 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
15 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
16 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
17 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
18 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
19 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
20 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
21 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
22 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
23 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
24 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
25 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
26 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
27 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
28 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
29 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
30 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
31 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
32 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
33 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
34 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
35 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
36 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
37 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
38 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
39 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
40 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
41 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
42 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
43 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
44 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
45 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
46 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
47 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
48 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
49 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
50 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
51 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
52 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
53 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
54 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
55 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
56 verbose already installed skipping<EMAIL_ADDRESS>C:\Users\rukshi\Downloads\wth\reactabular-master
57 silly resolved []
58 info build C:\Users\rukshi\Downloads\wth\reactabular-master
59 verbose linkStuff [ false, false, false, 'C:\Users\rukshi\Downloads\wth' ]
60 info linkStuff<EMAIL_ADDRESS>61 verbose linkBins<EMAIL_ADDRESS>62 verbose linkMans<EMAIL_ADDRESS>63 verbose rebuildBundles<EMAIL_ADDRESS>64 verbose rebuildBundles [ '.bin',
64 verbose rebuildBundles   'annogenerate',
64 verbose rebuildBundles   'annomath',
64 verbose rebuildBundles   'babel',
64 verbose rebuildBundles   'babel-core',
64 verbose rebuildBundles   'babel-eslint',
64 verbose rebuildBundles   'babel-loader',
64 verbose rebuildBundles   'babel-plugin-react-transform',
64 verbose rebuildBundles   'chai',
64 verbose rebuildBundles   'classnames',
64 verbose rebuildBundles   'clean-webpack-plugin',
64 verbose rebuildBundles   'css-loader',
64 verbose rebuildBundles   'eslint',
64 verbose rebuildBundles   'eslint-plugin-react',
64 verbose rebuildBundles   'file-loader',
64 verbose rebuildBundles   'gh-pages',
64 verbose rebuildBundles   'highlight.js',
64 verbose rebuildBundles   'html-loader',
64 verbose rebuildBundles   'html-webpack-plugin',
64 verbose rebuildBundles   'isparta-instrumenter-loader',
64 verbose rebuildBundles   'karma',
64 verbose rebuildBundles   'karma-chai',
64 verbose rebuildBundles   'karma-coverage',
64 verbose rebuildBundles   'karma-mocha',
64 verbose rebuildBundles   'karma-phantomjs-launcher',
64 verbose rebuildBundles   'karma-sourcemap-loader',
64 verbose rebuildBundles   'karma-spec-reporter',
64 verbose rebuildBundles   'karma-webpack',
64 verbose rebuildBundles   'lodash',
64 verbose rebuildBundles   'lodash.sortbyorder',
64 verbose rebuildBundles   'marked',
64 verbose rebuildBundles   'mocha',
64 verbose rebuildBundles   'phantomjs',
64 verbose rebuildBundles   'phantomjs-polyfill',
64 verbose rebuildBundles   'plexus-form',
64 verbose rebuildBundles   'plexus-validate',
64 verbose rebuildBundles   'purecss',
64 verbose rebuildBundles   'react',
64 verbose rebuildBundles   'react-ghfork',
64 verbose rebuildBundles   'react-pagify',
64 verbose rebuildBundles   'react-skylight',
64 verbose rebuildBundles   'react-transform-hmr',
64 verbose rebuildBundles   'schema2object',
64 verbose rebuildBundles   'style-loader',
64 verbose rebuildBundles   'title-case',
64 verbose rebuildBundles   'url-loader',
64 verbose rebuildBundles   'webpack',
64 verbose rebuildBundles   'webpack-dev-server',
64 verbose rebuildBundles   'webpack-merge' ]
65 info install<EMAIL_ADDRESS>66 info postinstall<EMAIL_ADDRESS>67 verbose unsafe-perm in lifecycle true
68 info<EMAIL_ADDRESS>Failed to exec postinstall script
69 error<EMAIL_ADDRESS>postinstall: node lib/post_install.js
69 error Exit status 8
70 error Failed at the<EMAIL_ADDRESS>postinstall script.
70 error This is most likely a problem with the reactabular package,
70 error not with npm itself.
70 error Tell the author that this fails on your system:
70 error     node lib/post_install.js
70 error You can get their info via:
70 error     npm owner ls reactabular
70 error There is likely additional logging output above.
71 error System Windows_NT 6.2.9200
72 error command "C:\Program Files\nodejs\\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "install"
73 error cwd C:\Users\rukshi\Downloads\wth\reactabular-master
74 error node -v v0.10.29
75 error npm -v 1.4.14
76 error code ELIFECYCLE
77 verbose exit [ 1, true ]

Node 0.10 isn't supported at the moment given it's so old.
This can be fixed by tweaking the postinstall script. We would need to detect Node 0.10 there somehow and then do the equivalent of require('child_process').execSync there. If you can dig how to do this, I can patch it. Alternatively a PR is welcome.

After updating the node to 4.2.1 I'm getting this error:
C:\Users\x\Downloads\wth\reactabular-master>npm start

<EMAIL_ADDRESS>start C:\Users\x\Downloads\wth\reactabular-master
webpack-dev-server

events.js:141
throw er; // Unhandled 'error' event
^
Error: listen EACCES <IP_ADDRESS>:8080
at Object.exports._errnoException (util.js:874:11)
at exports._exceptionWithHostPort (util.js:897:20)
at Server._listen2 (net.js:1221:19)
at listen (net.js:1270:10)
at net.js:1379:9
at GetAddrInfoReqWrap.asyncCallback [as callback] (dns.js:63:16)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:82:10)
npm ERR! Windows_NT 10.0.10240
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "start"
npm ERR! node v4.2.1
npm ERR! npm  v2.14.7
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start: webpack-dev-server
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script 'webpack-dev-server'.
npm ERR! This is most likely a problem with the reactabular package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     webpack-dev-server
npm ERR! You can get their info via:
npm ERR!     npm owner ls reactabular
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     C:\Users\x\Downloads\wth\reactabular-master\npm-debug.log

log file:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\Program Files\nodejs\node.exe',
1 verbose cli   'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli   'start' ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info prestart<EMAIL_ADDRESS>6 info start<EMAIL_ADDRESS>7 verbose unsafe-perm in lifecycle true
8 info<EMAIL_ADDRESS>Failed to exec start script
9 verbose stack Error<EMAIL_ADDRESS>start: webpack-dev-server
9 verbose stack Exit status 1
9 verbose stack     at EventEmitter. (C:\Program Files\nodejs\node_modules\npm\lib\utils\lifecycle.js:214:16)
9 verbose stack     at emitTwo (events.js:87:13)
9 verbose stack     at EventEmitter.emit (events.js:172:7)
9 verbose stack     at ChildProcess. (C:\Program Files\nodejs\node_modules\npm\lib\utils\spawn.js:24:14)
9 verbose stack     at emitTwo (events.js:87:13)
9 verbose stack     at ChildProcess.emit (events.js:172:7)
9 verbose stack     at maybeClose (internal/child_process.js:818:16)
9 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
10 verbose pkgid<EMAIL_ADDRESS>11 verbose cwd C:\Users\x\Downloads\wth\reactabular-master
12 error Windows_NT 10.0.10240
13 error argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "start"
14 error node v4.2.1
15 error npm  v2.14.7
16 error code ELIFECYCLE
17 error<EMAIL_ADDRESS>start: webpack-dev-server
17 error Exit status 1
18 error Failed at the<EMAIL_ADDRESS>start script 'webpack-dev-server'.
18 error This is most likely a problem with the reactabular package,
18 error not with npm itself.
18 error Tell the author that this fails on your system:
18 error     webpack-dev-server
18 error You can get their info via:
18 error     npm owner ls reactabular
18 error There is likely additional logging output above.
19 verbose exit [ 1, true ]

C:\Users\x\Downloads\wth\reactabular-master>npm start

Why are you trying to run the package in development mode?

Error: listen EACCES <IP_ADDRESS>:8080

That might be environment/permission related. For some reason it's not letting the dev server to run through 8080 but it's hard to tell anything else as I don't have access to Windows.

How do I run the package in the non development mode?

Also if 8080 is blocked, is there another way to npm install using a different port?

@90abyss There's no need to run it. The npm version has been designed to be consumed through Node/browserify/Webpack and such. In Webpack environment you would work like this:

npm i reactabular --save - Save as project dependency.
import {Table} from 'reactabular'- Import where you need it. This assumes ES6 (Babel or similar system). You can also do var Table = require('reactabular').Table;

There's also a source distribution below dist/ if you cannot consume the package through npm for a reason or another.

Hey! As you must have noticed I am a newbie in programming and don't have much idea how to use these frameworks. So can you please help me with this - this is what I have done so far:

npm i reactabular --save to create project dependency. This created nodes_modules folder inside.

my html file:

my JS file:

var Table = require('reactabular').Table;
var data = [
{
name: 'React.js',
type: 'library',
description: 'Awesome library for handling view.',
followers: 23252,
worksWithReactabular: true,
id: 123
},
];
var columns = [
{
property: 'name',
header: 'Name',
classes: {'name-column': true}, // custom CSS classes
},
{
property: 'type',
header: 'Type',
},
{
property: 'description',
header: 'Description',
},
{
property: 'followers',
header: 'Followers',
// accuracy per hundred is enough for demoing
cell: (followers) => followers - (followers % 100),
},
{
property: 'worksWithReactabular',
header: '1st Class Reactabular',
// render utf ok if works
cell: (works) => works && ✓,
},
];
ReactDOM.render(
,
document.getElementById('content')
);
I'm not getting any output after clicking on the html page. Can you please help me?

@90abyss Can you check out my book about the topic? The free portions should help you to get started with Webpack and React. If you want to jump straight in, you can try my boilerplate. It has everything set up.

Thanks a lot kind sir :)

Ok, it's probably safe to close this now. :+1:


fix #88 - component lists rendered with v-for should have explicit keys

This is a simple fix for the webpack warning in issue #88
I know it's not ideal to track columns with the column itself, I think a better way would be to have an internalColumnId as you do for rows with vueTableComponentInternalRowId.

Thanks!


NextVersion error if no new version

Exit 1 and show error if nextVersion detects there is not a new version to release.

If we want to give users a way to gracefully stop CI/CD pipelines if there is nothing to release, we might want to consider adding an is-empty command.
Checking if next-version errored as an indirect means of checking if there is anything to release doesn't feel right to me.

If we want to give users a way to gracefully stop CI/CD pipelines if there is nothing to release, we might want to consider adding an is-empty command.
Checking if next-version errored as an indirect means of checking if there is anything to release doesn't feel right to me.
@roobre, I see your point, but at the same time, I also expect a next-version to give me a next-version or tell me that there is none.

After thinking about it, it is true that next-version should provide some kind of feedback if there is no next version.
However I still think we should protect users from using this as a check for releasability. I've left a few minor comments but, in addition, I would like to suggest the following approach:

Make the next-version command print a warning if the version bump is none
Add a flag (e.g. --fail, or --exit-code) defaulting to false for the command to exit with non-zero code if this is the case.

WDYT about this approach?

Yes, sure, makes sense.

I am not completely sure about this behavior.

My reasoning regarding this is the same as exposed here: https://github.com/newrelic/release-toolkit/pull/112#issuecomment-1274955304.
There are actual erros that can cause next-version to fail, mainly due to some errors extacting tags from the git repo. I think that if we make it error also when there is no next version, users will immediately think they can use next-version errors to tell there is no release to be made, and make the pipeline exit cleanly. This may not be the case if next-version is erroring for any of the reasons explained above (something wrong with the repo), so I think we're training users to do something dangerous here.
I think it is very reasonable for next-version to output a human-readable error when this is the case. Something on the lines of:
Warning: None of the changelog entries produced a version bump, returning current version
v1.2.3
$ echo $?
0

Warning: None of the changelog entries produced a version bump, returning current version

I've added this behavior you comment to the last commit https://github.com/newrelic/release-toolkit/pull/112/commits/899c97ec495168a70e13c9703da1c7bda66281cc, tell me WDYT


xhr.send inside a try catch block

To be safe when handling various kinds of links, the xhr.send should be inside a try catch block

What do you think about this?
IE throw Invalid argument error in different cases: https://www.google.com/search?q=xhr ie invalid argument

:-1: the application developer can try catch on the outside.

Then a good idea to specify this in README. I expected that I would be sufficient to check err parameter in callback.
From REAME:

Your callback will be called with an Error if there is an error in the browser that prevents sending the request.

if xhr.send throws instead of calling the error callback, it's an invocation error and imho it's correctly thrown.
Also, the case you link to seems to affect IEs 6-7
We would have more to talk about if you could give us an actual case of:
xhr throws instead of passing error to the callback when it is correctly called but the request fails.

I have an example with IE 9 when throwing error, but it looks like the problem occurs from localhost address.
Another example, when there are generated errors: when sending sync request with error
https://xhr.spec.whatwg.org/#request-error-steps

If you have it, why not share?
And from the spec I see that the problem only occurs if you're using a synchronous request. So we could consider catching only in that case and deciding if xhr should re-throw or call the error callback.
I'm not convinced that there's a need for it.

I'm seeing this from the xhr.send line when creating a valid request that fails to establish a connection (e.g., the host is down or unreachable). I'm not sure if this qualifies as

xhr throws instead of passing error to the callback when it is correctly called but the request fails.

or if it's something I should be try/catch-ing for, but it was unexpected behaviour.
I'm also running version 1.17.1, so I don't know if that makes any difference. It seems to be the latest version supported by ampersand-sync, which is why I don't know if the issue persists against 2.0.1.

@paddyforan did you set sync: true to make as synchronous XHR request ?

It's unclear to me why a synchronous XHR request would trigger the error handler, while an asynchronous XHR request would throw an exception, but I'll admit this isn't my area of expertise.
This is what I get when I set "sync: true".

@paddyforan
If you set sync: true i would expect send() to throw.
It's very strange that send() throws for asynchronous http requests :S

In case anyone is curious, if you check the screenshot, it's me being silly. The requests that are getting blocked are OPTIONS requests, for CORS, which the library has no control over, AFAIK. It seems Chrome just logs all failed CORS requests as errors? Huh.
Anyways, I'm gonna call this one PEBCAK.

Anyway, thanks for posting back!


Polish translation updates

Add translation for language settings, fix a typo and correct translation of "Chapple" reverb preset

Thanks, merged.


Callout css does not work when importing to frontend

🐛 Bug Report
When trying to use the Callout component in the @hospitalrun/frontend, the CSS does not work.
To Reproduce
Steps to reproduce the behavior:

Import Callout component to some component
Try and use the info, danger, or warning color
See that it is not styled properly

I would like to try solving this, but I'm not exactly sure how to test it. Since the front end and component libraries are separate repos, how can I test what effect the changes to the component library have on the front end? This seems tricky since they are running on completely separate dev servers.
At first glance, it seems that the SCSS isn't being imported or compiled correctly in the build files, either due to a configuration issue with Webpack, or possibly due to an issue with the structure of the class names. The only components that have their own SCSS files are the callout and the toaster. Comparing the two files, it seems that the toaster follows a different naming convention (BEM) than the callout. The toaster uses selectors like div.Toastify__toast.Toastify__toast--success whereas the (broken) callout selectors are like .callout-success. Not sure if this is related to the bug or not.

Checkout the npm link command. You can use this to link a local build of the components repo to your hospitalrun-frontend project.

@jackcmeyer One other question: this is the first project I've worked on where the components and main front end codebase are separate repos. Is it possible to enable live reloading between repos? Meaning that if I change a component in the component repo, the front end updates that component immediately? Or do I need to rebuild the project and relink it every time there is a change? Thanks.

Once you link it, every time you rebuild it should pick up the changes. You should be able to run the components repo in watch mode, so I think you should get a near live reload experience. I believe the only thing you'd need to do is restart frontend repo.

@jackcmeyer I finally figured out how to link the two repos. It was not straight-forward and involved several steps. Perhaps we should add some instructions to the readme? In case anyone is wondering these were the steps:

cd to the components repo and run npm link
cd to the front end repo and run npm link @hospitalrun/components
run npm i in the front end repo and restart the dev server.
You might now see an error message when you go to localhost:3000:

Hooks can only be called inside the body of a function component.
There are three common reasons you might be seeing it:

You might have mismatching versions of React and React DOM.
You might be breaking the Rules of Hooks.
You might have more than one copy of React in the same app.

The reason you are seeing this message is because the component library is trying to run react from it's own node_modules folder, when it should be running the same copy as the front-end repo.  Add the following script to the front-end repo: "prestart": "npm-link-shared ./node_modules/@hospitalrun/components/node_modules . react"
This will tell npm to use the front end repo's version of react for both the front end and the component library
7. restart the dev server and the 2 repos should now be linked correctly.
Let me know if you have a simpler way of doing this. This is just what worked for me.

@jackcmeyer I finally figured out how to link the two repos. It was not straightforward and involved several steps. Perhaps we should add some instructions to the readme? In case anyone is wondering these were the steps I took:
1. cd to the components repo and run `npm link`

2. delete `"@hospitalrun/components": "~1.16.0"` from the dependencies for the front end repo (this should not be committed)

3. cd to the front end repo and run `npm link @hospitalrun/components`

4. run `npm i` in the front end repo and restart the dev server.

5. You might now see an error message when you go to localhost:3000:

Hooks can only be called inside the body of a function component.
There are three common reasons you might be seeing it:

You might have mismatching versions of React and React DOM.
You might be breaking the Rules of Hooks.
You might have more than one copy of React in the same app.

The reason you are seeing this message is because the component library is trying to run React from it's own node_modules folder, when it should be running the same copy as the front-end repo. To fix this you should:
1. run `npm install npm-link-shared -g`

2. Add the following script to the front-end repo: `"prestart": "npm-link-shared ./node_modules/@hospitalrun/components/node_modules . react"`
   This will tell npm to use the front end repo's version of React for both the front end and the component library when you run `npm run start`

3. Restart the dev server and the 2 repos should now be linked correctly.

Let me know if you have a simpler way of doing this. This is just what worked for me.

"@hospitalrun/components" is supposed to work in the workspaces environment. We are waiting for npm v7 to test npm workspaces. As of today, we are using yarn v1 workspaces but they are broken at the moment.
Your findings are awesome and we should take them as a starting point. Would you like to work on a PR that explores how to fix workspaces? There are 3 possible candidates: yarn v2 workspaces; npm v7 workspaces; pnpm workspaces.

@fox1t Yes I can take a look at that over the weekend.


Reviewed contract creation within Asset Manager

Please forward to MvM

Mark, yes please merge my changes to the MVP1 branch.
Thank you.


Ported to .NET Core

I've ported this library to .NET Core. You can find it here:
https://github.com/VahidN/EFSecondLevelCache.Core
This version supports a lot different cache providers including Redis, because it uses the CacheManager library as an infrastructure.

Hi dear @VahidN.
You direct us in the Redis issues in this repository to use EFSecondLevelCache.Core but my project is MVC. Can I use EFSecondLevelCache.Core in a MVC project that Is not MVC Core?!
I want use this library with Redis cache provider. But I dose not know how should configure EF Cache provider to use Redis Cache Provider.
May you please write about how should I set Redis as EF Second Cache?
and
If you know a safe sample of RedisCacheProvider class please give me a link.
Note: I use StructureMap
Thank you.

Can I use EFSecondLevelCache.Core in a MVCproject that is not MVC Core?!

Yes. But you should use EF Core with it and not EF 6.x.
You can use all of the .NET Standard based libraries with Full .NET framework too. If a library supports .NETStandard 1.3, it means it's usable in .NETFramework 4.5.1+ apps and if a library supports .NETStandard 2.0, it means it's usable in .NETFramework 4.6.1+ apps. EFSecondLevelCache.Core supports both of them.


Using ENV Variables in Target Command

Hello,
I am having trouble identifying the correct syntax to apply an environment variable to my salt pipeline in order to feed that to the Salt command.  Essentially, we have an upstream pipeline that sets up a server and a downstream pipeline that runs Salt on that newly configured server.  I am feeding the server name as a Environment variable into the downstream job but having trouble finding how to reference it in salt.  Here is the command I currently am trying:
stage('Apply Salt Rev Configuration') {
       steps {
         salt(authtype: 'pam', clientInterface: local(arguments: 'My APP 1', function: 'grains.append', target: '{{CA_HOSTNAME}}', targettype: 'glob'), credentialsId: 'my-salt-master', saveFile: true, servername: 'myservername.com:8000')
         script {
          env.WORKSPACE = pwd()
          def output = readFile "${env.WORKSPACE}/saltOutput.json"
          echo output
        }
       }
    }

I have tired to also use {{env.CA_HOSTNAME}} and "{{CA_HOSTNAME}}" to no avail.  I have tested the above command by manually providing the server name versus using the CA_HOSTNAME variable and confirmed that the salt config applied correctly.
Is this supported by chance and if so what am I missing?
Thank you for your help!!

Try to use just ${WORKSPACE} or ${CA_HOSTNAME}
One more variant it could be - ${params.WORKSPACE}
Maybe it could help


table_cell callback doesn't pass MKD_TABLE_HEADER

Forgive my newishness if this is a matter which I've overlooked. This is a snippet of my rb file.
class HTML < Redcarpet::Render::HTML
  include Rouge::Plugins::Redcarpet
  ...
  def table_row(content)
    "
" + content + "
"
  end

  def table_cell(content, alignment)
    #This part doesn't work. Alignment remains nil for both header and body cells.
    if alignment === "HEADER"
        "" + content + "	"
    else
        "" + content + "	"
    end
  end
  ...
end

In html.c in rndr_tablecell there is code
if (flags & MKD_TABLE_HEADER) {
	BUFPUTSL(ob, "<th");
} else {
	BUFPUTSL(ob, "<td");
}

The flags also contain MKD_TABLE_ALIGN_CENTER, MKD_TABLE_ALIGN__L, and MKD_TABLE_ALIGN__R for cell alignment.
However, the call back function which occurs in rc_render.c in rndr_tablecell only passes CSTR2SYM("left"), CSTR2SYM("right") or CSTR2SYM("center") to BLOCK_CALLBACK("table_cell", ....)
From this, and the fact that alignment remains nil whether it's a header or not, I can only conclude that the table_cell override in the rb file doesn't get told whether or not it's a header.
Could this information be included in the callback?
I'm currently going through the C code to see if I can suggest a fix for you.

PR created. See https://github.com/vmg/redcarpet/pull/605

Bumping this issue, just ran into it today when trying to customize my table styling.


Create signing server for PA-OSLP

A signing server needs to be created, which receives unsigned messages from the PA via a queue. It returns a signed message to the PA via a queue.
Decouple the signing of messages from the protocol adapter.

create new project 'signing-server'
the project should deployable in tomcat
the project should listen for messages coming in using a queue
the project should sign the message
the projects should send the signed message back to the protocol adapter using a queue

also see SSS/91

All bugs are solved
Documentation on github is added
alle oslp requests work still fine now


fix: make payload:null handling in connection_init consistent between protocols

When client specifies payload: null in connection_init message graphql_transport_ws erored with Invalid connection init payload, while in graphql_ws this case was handled.
Summary by Sourcery
Bug Fixes:

Fixed an issue where graphql_transport_ws would error with "Invalid connection init payload" when the client specified payload: null in the connection_init message, while graphql_ws handled this case correctly.

Hi, thanks for contributing to Strawberry 🍓!
We noticed that this PR is missing a RELEASE.md file. We use that to automatically do releases here on GitHub and, most importantly, to PyPI!
So as soon as this PR is merged, a release will be made 🚀.
Here's an example of RELEASE.md:
Release type: patch

Description of the changes, ideally with some examples, if adding a new feature.

Release type can be one of patch, minor or major. We use semver, so make sure to pick the appropriate type. If in doubt feel free to ask :)
Here's the tweet text:
🆕 Release (next) is out! Thanks to Zverev Konstantin for the PR 👏

Get it here 👉 https://strawberry.rocks/release/(next)


[FEATURE] support POA chain

Is your feature request related to a problem? Please describe.
I currently need to set unsafeMode option to bypass stake validation in order to run on POA chain.
Describe the solution you'd like
Skandha bundler should operate without the need for unsafeMode on the POA chain, I've tested it on Besu.

Is your feature request related to a problem? Please describe. I currently need to set unsafeMode option to bypass stake validation in order to run on POA chain.
Describe the solution you'd like Skandha bundler should operate without the need for unsafeMode on the POA chain, I've tested it on Besu.

Hey there,
Unfortenately Besu and Nethermind do not support custom debug JS tracing.  Only way is to run on unsafeMode for now.
Anyway, we will check what we can do about it!

Is your feature request related to a problem? Please describe. I currently need to set unsafeMode option to bypass stake validation in order to run on POA chain.
Describe the solution you'd like Skandha bundler should operate without the need for unsafeMode on the POA chain, I've tested it on Besu.

Thanks for reporting this.
As described by @arddluma, one of the requirements of ERC4337 is the need to perform javascript tracing on the received UserOps. This feature depends on the underlying support from RPC node. AFAIK, neither Besu nor Nethermind clients have support for custom javascript tracing. Is this something you can verify? If they support tracing, then you should be able to run skandha in safe mode.


[BugFix] Fix spill compilation error

What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：
I encountered compilation errors in my environment caused by link error.
ld: error: undefined symbol: starrocks::Status starrocks::spill::Spiller::trigger_restore<starrocks::spill::IOTaskExecutor&, starrocks::spill::MemTrackerGuard const&>(starrocks::RuntimeState*, starrocks::spill::IOTaskExecutor&, starrocks::spill::MemTrackerGuard const&)
>>> referenced by spiller.h:156 (/home/disk2/code/starrocks/be/src/exec/spill/spiller.h:156)
>>>               spillable_aggregate_blocking_sink_operator.cpp.o:(std::_Function_handler<starrocks::Status (), starrocks::Status starrocks::spill::Spiller::set_flush_all_call_back<starrocks::spill::IOTaskExecutor&, starrocks::spill::MemTrackerGuard>(std::function<starrocks::Status ()>, starrocks::RuntimeState*, starrocks::spill::IOTaskExecutor&, starrocks::spill::MemTrackerGuard)::'lambda'()>::_M_invoke(std::_Any_data const&)) in archive ../output/tmp/RELEASE/libExec.a
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto backported to target branch

[ ] 3.0
[ ] 2.5
[ ] 2.4
[ ] 2.3

run starrocks_admit_test

may not needed? can't repro in a clean build env.

may not needed? can't repro in a clean build env.

reproducible with gcc-10.3 clean build.

@mergify rebase main

@mergify rebase main


Request permission for acunetix plugin

(This PR template only applies to permission changes -- ignore for changes to the tool)
Description
Trigger automated Acunetix scans as part of your web application's build process
https://github.com/jenkinsci/acunetix-plugin
https://issues.jenkins-ci.org/browse/HOSTING-290
Permissions pull request checklist
Always

[ ] Add link to plugin/component Git repository in description above

For a newly hosted plugin only

[ ] Add link to resolved HOSTING issue in description above

For a new permissions file only

[ ] Make sure the file is created in permissions/ directory
[ ] artifactId (pom.xml) is used for name (permissions YAML file).
[ ] groupId / artifactId (pom.xml) are correctly represented in path (permissions YAML file)
[ ] Check that the file is named plugin-${artifactId}.yml for plugins

When adding new uploaders (this includes newly created permissions files)

[ ] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[ ] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[ ] All newly added users have logged in to Artifactory at least once

I recommend you read the readme to this repo again and adapt either the plugin POM, or the permissions YAML file.


Fix ALU valid-ready signal

This PR fixes the valid-ready signal of the ALU example.
The ready signals of inputs A and B must only be ready when:

The accelerator is ready (activated)
The output-ready signal is also ready (means the output is ready to write data)
When both A and B valid signals are asserted, only when A and B are ready.

To make this sort of forced to paper in the software, the snax-alu.c was also updated such that the streamer start and ALU start is close together.

Thank you for the swift fix! Works on my end :)


get backup name from restore spec when handling restore DownloadRequests

Signed-off-by: Steve Kriss<EMAIL_ADDRESS>Fixes #398

@skriss this works, or we could modify the DownloadTarget struct to have a field for the name of the backup. Modifying the struct seems like a lot less code, but it does mean that we'd have to resolve Name and BackupName - would we keep Name or change it to RestoreName? WDYT re approach?

@skriss let's just go with this approach. I'd rather not have the messy name vs restoreName api change.

It’s not used, fwiw
On Mon, Apr 9, 2018 at 1:15 PM Steve Kriss<EMAIL_ADDRESS>wrote:

@skriss commented on this pull request.
In pkg/controller/download_request_controller.go
https://github.com/heptio/ark/pull/409#discussion_r180166837:

update.Status.DownloadURL, err = c.backupService.CreateSignedURL(downloadRequest.Spec.Target, c.bucket, signedURLTTL)

var (

directory string

err       error

)

switch downloadRequest.Spec.Target.Kind {
case v1.DownloadTargetKindRestoreLog, v1.DownloadTargetKindRestoreResults:

restore, err := c.restoreLister.Restores(v1.DefaultNamespace).Get(downloadRequest.Spec.Target.Name)

if err != nil {

	return errors.Wrap(err, "error getting Restore")

}

directory = restore.Spec.BackupName

default:

directory = downloadRequest.Spec.Target.Name

The default case? That should catch anything backup-related (logs,
tarball)
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
https://github.com/heptio/ark/pull/409#discussion_r180166837, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAABYqdwvjG8rVhsfbpfni6n63zw3Tlqks5tm5ckgaJpZM4TELyh
.

Ah, I see what you mean. I removed that case and added a comment to godoc about if/how directory is used within BackupService.

LGTM


Matlab Wrapper Instalation for Ubuntu

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
{ R200 / F200 / SR300 / ZR300 / D400 }

Firmware Version
(Open RealSense Viewer --> Click info)

Operating System & Version
{Win (8.1/10) / Linux (Ubuntu 14/16/17) / MacOS

Kernel Version (Linux Only)
(e.g. 4.14.13)

Platform
PC/Raspberry Pi/ NVIDIA Jetson / etc..

SDK Version
{ legacy / 2.. }

Language
{C/C#/labview/nodejs/opencv/pcl/python/unity }

Segment
{Robot/Smartphone/VR/AR/others }

Can someone please walk me step by step through the process of installing the matlab wrapper for realsense. I dont get what it means by:
Download the Git repository. Opt in the Matlab wrapper for LibRs with cmake .. -D... -DBUILD_MATLAB_BINDINGS:BOOL=ON when configuring CMake.
Build the librealsense_mex target.
After compiling the project, set build/Debug or build/Release as your Matlab working directory. Alternatively copy the +realsense folder from there to a place where Matlab can find it.
If I go into the terminal and do the command above, its cant recognised -D...

Hi @BPunjabi  The RealSense MATLAB wrapper is designed for use with the Windows 10 operahttps://staff.fnwi.uva.nl/a.visser/activities/IMAV/Labbook2018.htmlting system.  I only know of one past case where somebody got in working on Ubuntu.  Please visit the link below and scroll down to the December 4, 2018 heading for installation instructions.
https://staff.fnwi.uva.nl/a.visser/activities/IMAV/Labbook2018.html

Hi @BPunjabi  Do you require further assistance with this case, please?  Thanks!

Case closed due to no further comments received.


Update regional availability of Embedding models

text-embedding-ada-002 v2 is now also available in Australia East.

@mrbullwinkle

Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

Merging now.


[IT-2361] Custom Batch compute environment

Setup a custom batch compute environment to be used with nexflow
tower in a tower launch configuration so that we can avoid some of the
limitations of the tower forge configuration.

Thanks @zaro0508 for this work.  Bruno is on vacation for the next 2 weeks, so I'd like to wait for him to be back to fully test this.
In the interim, I think that we need to have a system for triggering the production deployment rather than relying on the successful deployment to dev (like using github tags/releases).  The reason is this has a big impact on the way interact with Tower, so I'd want to go in and make sure everything works as expected by running test workflows on tower.

By all means @thomasyu888, do what you think is best.  if you need IT help then please enter a jira issue and let us know.


Create convenience method for web5.did.create('ion')

Nothing broken here, but an opportunity for Web5 to erase complexity and be more approachable to newcomers.
One of the first things we do in the QuickStart is have the user create a DID. When using the recommended:
let did = await web5.did.create('ion');

...we are left to immediately delve into conceptual topics that we think would make a stronger experience if we could avoid linking into those concepts:

Why we pass a String in there
What ion is
What a DID Method Name is

Is there some syntactic sugar we can add to the Web5 API which erases this? Perhaps:

web5.did.create(); // No-arg constructor which applies a default we choose, like ion?
web5.did.createIon(); // An Autocomplete version that tooling can help with so we don't need to pass a manual String?
web5.did.create(Web5.DID_METHODS.ION); // A constructor that accepts a type and an enum of those types

Open to other ideas - whatever makes for easier autocomplete and intuitive API, and limits the conceptual weight of someone having to make a choice about DID method types, understanding why, and passing in an untyped String to designate which.

Hey @ALRubinger -- good question and callout.
My preference is:

web5.did.create(); // No-arg constructor which applies a default we choose, like ion?

I'd be ok with making the default ion and would be simple to implement.
@csuwildcat you cool with that?

I personally would prefer not to have a default, in case we ever swap that default. This is a really impactful thing to default, and this would mean a significant breaking change for all downstream lib users if we ever did it.

i think at the very least we should at least have something like web5.did.MethodName.Ion so that developers don't have to know any magic strings (as well as having an easy way for the developer to log in the console what all the method names are)
having a default would be nice as it could let developers just DoTheThing™ web5.did.create() and not even have to worry about a method.
@csuwildcat i do get your concern about us being constrained in changing the default.  what if we had a web5.did.DefaultMethodName so that developers who do care about the default can know what it is and do logic based on it without having do awful stuff like looking at the source or checking the package version

i went ahead with the first part at least :) https://github.com/TBD54566975/web5-js/pull/32

@csuwildcat can you help me understand your decision making process for when using default args is acceptable? i ask because you use them quite a bit in ion-tools. Specifically:
let authnKeys = await generateKeyPair();

this defaults to secp256k1 but you can also provide Ed25519.

Because it's unlikely we'd need to change that default, save a quantum computing break of EC keys, but DID Methods are more of a swappable thing. I'm fine with whatever you all want to do.

Only concern that comes to mind is: does a default DID method kinda feel like when browsers would automatically set themselves as your machine's default browser without asking you?

Let's switch to did:key as the default and not require any args?

did:key is great by me as a default. Lets you send messages, and removes conceptual weight for newcomers. When they wanna be addressable on the decentralized web, that's an appropriate time to intro them to ion and DID methods etc. Great way to move folks up the ladder.
@mistermoe wrote:

Only concern that comes to mind is: does a default DID method kinda feel like when browsers would automatically set themselves as your machine's default browser without asking you?

Eh, not to me bud. The user can absolutely choose - they're choosing the simplest possible case which makes them not need to think about it. I equate it more to a command line that's like: "Enter the date (press [ENTER] to default to current date):" You can do anything but they give you an easy paved path to remove decision making and knowledge to go forward.

@mistermoe What's a worse default - Can we make it so web5-js automatically installs an entire U2 album into your wallet? 🤘🏻

Let's switch to did:key as the default and not require any args?

https://github.com/TBD54566975/web5-js/pull/33 :)

The only aspect about this default that is going to be odd is that outside of the initial introduction to this method, it is rather likely that service endpoints would need to be defined to include a DWN.  Since did:key doesn't support services, it will need to be an ION did.
I would think we'd want to make it as easy as possible for a dev to get started with a DID method that supports discovery and routing of messages to target DIDs.  Since that's ION for now, we may not want to completely hide the type of DID -- even if we make it simpler to use (e.g., with a symbol/enum instead of string).

Bowing out of the part about "which DID method is the best default". Retracting my statement above about that being did:key. I know enough when to leave that to y;all :P My request principally - that we elect a default to slim first user experience. Thanks again for working through this.

We're shipping the Quickstart without this in place; when done, please open an issue on the developer.tbd.website repo to update the Quickstart w/ the newer convenience method.

@frankhinek @dcrousso Could you confirm whether this is in 0.6.0, perhaps solved in separate issues? This is the one we're tracking to update docs, so we'll hold on this dep until resolved.

@ALRubinger after carefully considering the pros and cons and discussing with @csuwildcat and @mistermoe here is the current thinking:
Selecting a Default

I won't rehash the debate on default DID methods.  We're using ION for a series of reasons until/unless another strong contender arises.  We want to encourage developers to select ION because did:key lacks basic security & endpoint publishing features.

Note: In case you are wondering,did:key support was added to Web5 JS primarily to facilitate the DID Connect protocol for applications to securely establish a channel with a remote agent/server hosting a DWN.  It is not intended that we encourage use of did:key for DWN tenants.

Providing a default here means typing 5 less characters, but only for the initial getting started.  There will be developers new to the space don't understand what a "DID" much less "ion" but can copy & paste web5.did.create() or web5.did.create('ion') or web5.did.createIon() with the same effort.  Overtime, we can help them learn more about what these terms mean.

One of the powerful things about ION DIDs is that you can specify service endpoints that allow for decentralized discovery, dereferencing, and routing using DIDs.  After the initial basic tutorials, the web5.did.create() calls will look more like the example below, and it seems unlikely anyone would do this and have no understanding about DIDs or DID methods.
const carolDid = await web5.did.create('ion', {
  services: [
     {
       'id': 'dwn',
       'type': 'DecentralizedWebNode',
       'serviceEndpoint': {
         'nodes': [
            'http://dwn.provider.com',
            'https://your-ngrok-subdomain.ngrok.io/dwn',
         ]
       }
     }
   ]
});

Enum vs. Symbol vs. String

It is unclear that either of these alternatives are objectively more intuitive and seem to be more of an individual style preference:

web5.did.create(web5.did.DID_METHODS.ION)
web5.did.create('ion')

They both involve typing text into a text editor / IDE (symbol being more verbose), are subject to potential for mis-spelling, and both can be suggested as an auto-complete option by providing JSDoc (CJS) or TypeScript types.
Additionally, the future goal is to provide flexibility so that developers can add support for other DID methods beyond those that may be pre-defined in the Web5 JS code base.  We'd like to enable simple registration of new DID method types based on the "scheme:method" (e.g., "did:web").  This could be done with strings or symbols but the preference of the lib core maintainers is strings.

What's wrong with strings?

There are plenty of examples of using strings through web standards and popular libraries.
I won't attempt to produce a long list, but use of strings to specify configuration options and parameters when calling methods in JavaScript is widespread.

Web Crypto API when specifying which algorithm to use.
Veramo DID Manager and Setup Guide

In summary, we're going to leave the current method as is.  Since the DID Manager API is still evolving and there are many new capabilities to be added, we want to get those into the wild and get more feedback from developers.  If there is strong feedback that people are having issues with the use of strings to specify methods, algorithms, and related configuration parameters throughout Web5 JS we can revisit.

Two enhancements made in v0.7.0 that indirectly improve this situation so will close the issue:

As a result of introducing the agent concept in Web5 JS, it is no longer necessary to create a DID just to get started.  It happens automatically
While the command to create a DID is exactly the same as it was (web5.did.create('ion')) the 0.7.0 release involved conversion of the library to TypeScript as noted 3 weeks ago:

...both can be suggested as an auto-complete option by providing JSDoc (CJS) or TypeScript types


Add helper method for throwing on nullptrs and apply where necessary

I implemented this with @RubyNova. Basically a method in the logger that allows you to pass in an object and an error message, then it throws when the object is a nullptr.
Closes #71

Thanks for the fix @mastorm


use the fonts from the new brand visual style

Key changes:

add 2 fonts into this repo (Montserrat and Source Code Pro)
replace the Open Sans with Montserrat all over the code base
use Source Code Pro for code snippets

This change is

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

src/sales-dashboard/top-chart.html, line 14 at r3 (raw file):

font-size: 14px;

I was wondering about this, but it's not used anywhere

Comments from Reviewable

Reviewed 12 of 18 files at r1, 4 of 6 files at r3.
Review status: 16 of 20 files reviewed at latest revision, 2 unresolved discussions, some commit checks failed.

polymer.json, line 13 at r3 (raw file):

"fonts/**/*",

should we have an extension filter here? to avoid packaging and serving the readme

src/row-types/demo-element.html, line 9 at r3 (raw file):

font-size: 13px;

this shouldn't be montserrat

Comments from Reviewable

Review status: 13 of 20 files reviewed at latest revision, 3 unresolved discussions, some commit checks failed.

polymer.json, line 13 at r3 (raw file):
Previously, alvarezguille (Guille) wrote…

"fonts/**/*",

should we have an extension filter here? to avoid packaging and serving the readme

fixed

src/row-types/demo-element.html, line 9 at r3 (raw file):
Previously, alvarezguille (Guille) wrote…

font-size: 13px;

this shouldn't be montserrat

set on the demo-area > #content level

src/sales-dashboard/top-chart.html, line 14 at r3 (raw file):
Previously, alvarezguille (Guille) wrote…

font-size: 14px;

I was wondering about this, but it's not used anywhere

removed

Comments from Reviewable

Reviewed 2 of 18 files at r1, 1 of 6 files at r3, 2 of 2 files at r4, 2 of 2 files at r5.
Review status: all files reviewed at latest revision, all discussions resolved, some commit checks failed.

Comments from Reviewable


Minio deployment remove

Moved to https://github.com/RamenDR/ramen/tree/main/hack.  See https://github.com/RamenDR/ramen/pull/60#discussion_r653887796

Merged into PR #4 closing this one as a result.


LabVIEW Error to Description Conversion

@jkneer has shown me there is a way to get LabVIEW error descriptions through the manager at https://www.ni.com/docs/en-US/bundle/labview-api-ref/page/properties-and-methods/lv-manager/nigetoneerrorcode.html
This could be included in the lv_error module as a utility, for example allowing for using rust code to log LabVIEW errors.
The description is one part of course, as well has this we should consider handling the  and  tags as well as the new multi-error version but these could be follow on changes.

Done this for the LV Status code. Just realised this probably wants some integration with the error cluster.


MassTransit fails to persist saga state via EFCore - invalid operation SqlServerRetryingExecutionStrategy

Is this a bug report?
Yes

Can you also reproduce the problem with the latest version?
Yes, which is ATM 5.5.4
Environment

Operating system: MacOS
Visual Studio version: VSCode
Dotnet version: .NET Core 2.1

Steps to Reproduce

I use EntityFrameworkSagaRepository to integrate with EFCore.
When I fire an event via MassTransit to which my saga is subsribed to, it fails during persisting its state with the message:

Expected Behavior

It should persist saga's state in the database table.
Actual Behavior

Error message (here you can read a reason of such an erro from EFCore):

System.InvalidOperationException: The configured execution strategy 'SqlServerRetryingExecutionStrategy' does not support user initiated transactions. User the execution strategy returned by 'DbContext.Database.CreateExecutionStrategy()' to execute all the operations in the transaction as a retriable unit

I think the problem lays here EntityFrameworkCoreIntegration as it explicitly creates transaction, and based on Microsoft recommendation it has to be created within ExecutionStrategy like here for example
Reproducible Demo

MassTrasitPers.zip

@maldworth any thoughts? I have no clue.

Interesting one, I guess a short term work around would be, just don't use an efcore execution strategy ;).
I've never set the execution strategy with EFCore myself. I'm doing a bit more reading here, looks like they have some option to make "create execution strategy" where you can begin your own transaction in a delegate, I'll have to see if it can easily be easily added to the MT EFCoreIntegration.
First I'll start by making a unit test to reproduce the error, and go from there. Might be a few days/week before I can get to this.

Awesome, thanks. I haven't used that either.

Hi guys,
Please find here MassTrasitPers.zip an example, when an execution strategy is being set, e.g. Retry on failure, then MassTransit fail to persist Saga's state. I'm going to add it to the issue description as well.
Another note, not sure if it's because inproper use of MassTransit, but if I publish two events from saga which are handled by composite event, then I'm getting exception kind of current connection is already being used within another transaction. If I trigger these events not from Saga but from consumers everything is fine.

You really shouldn't do other database transactions within a saga, those transactions should be in consumers. Otherwise you're trying to have two transactions at once. Or you would need to somehow use the same DbContext, but I don't know how to do that.

Hi @maldworth,
Is it feasible to fix current issue with the next minor release (5.5.5) with help of execution strategy when using BeginTransaction()? Current issue is a blocker for introducing Sagas inside the project which I'm working on. Or if you could give an timewise estimation, when we can expect it to be fixed?
And many thanks for your work, I personally find MassTransit one of the major player in .NET world for building distributed applications :)

@Serenya
I haven't had a chance to work on it yet, and I'm honestly a bit on the fence as to whether or not I should. It might be more trouble than it's worth (the execution strategy delegate).
I say "more trouble than it's worth", because I think there's a reasonable alternative. MassTransit has the ability to have retries in it's pipeline. So you can easily enable Retries with the exactly same criteria that EFCore uses, thanks to open source we know what that is with SqlServerTransientExceptionDetector.cs.
So your zip file, I notice you are using optimistic concurrency, so you should definitely add a retry as described in this section in the docs. I've pasted the example below, and I've added one additional retry handle which will give you the EFCore resilience.
x.ReceiveEndpoint(host, "shopping_cart_state", e =>
{
    e.UseRetry(x =>
        {
            x.Handle<DbUpdateConcurrencyException>();
            x.Handle<DbUpdateException>(y => y.InnerException is SqlException e && e.Number == 2627); // This is the SQLServer error code for duplicate key, if you are using another Relational Db, the code might be different
            x.Handle<DbUpdateException>(y => SqlServerTransientExceptionDetector.ShouldRetryOn(y.InnerException)); // This uses the same detector as EFCore Connection Resiliency
            x.Interval(5, TimeSpan.FromMilliseconds(100)));
        }); // Add the retry middleware for optimistic concurrency
    e.StateMachineSaga(sagaStateMachine, repository);
});

The only think you might want to tinker with is the x.Interval, and give perhaps more time for transient errors.
Infact after writing this, I think this might be something I should update the Docs with for people who use SqlServer.

@maldworth,
Thank you for the quick response.
Let me describe current use case for which I need to come with a solution how to integrate MassTransit Sagas. In my specific case situatation is the following, we have an application built on top of microservices. Each microservice has its own boundary-context. Within each microservice there are different flows that represents business processs, an example of which I've shared within zip archive. It's deletion of a company. As each microservice has its own boundary-context, it does have its own single DB schema and EFCore DbContext. DbContext used not only for the purpose of saving Saga state, therefore MassTransit Sagas is relying on DbContext which is pre-configured with retryable option for the part of application which does not serve Saga state persistence.
Major condition is retryable is being set on DbContext level, and question how to make a friendship with MassTransi Sagast in this case. As I'm not experienced with MassTransit, I can't see potential troubles by runnning transaction as a delegate within execution strategy that you've mentioned above. But as far as I understand this project MassTransit.EntityFrameworkCoreIntegration is created to integrate with EFCore. And if official documentation of EFCore tells us the proper way how to use its transaction, then why not rely on it?
I've just checked that this code
 var es =_dbContext.Database.CreateExecutionStrategy()
returns instance of execution strategy. Therefore if we check its type, then following pseudo-code could solve the problem with SqlServerRetryingExecutionStrategy exception:
if (es is typeof(SqlServerRetryingExecutionStrategy))
{
    strategy.Execute(() =>
    {
            using (var transaction = context.Database.BeginTransaction())
            {
...
            }
     }
}
else
{
    using (var transaction = context.Database.BeginTransaction())
    {
...
    }
}

I'm looking forward to hear your opinion regards it.

@Serenya
Yep, that's how I was going to do it.
Each microservice has it's own db schema/context, that's great, but you could go just one step farther and have two DbContexts (or inherit one from the other). Use Migrations on the full one, and not on the other.
services.AddDbContextPool<MyMicroserviceDbContext, MyMicroserviceDbContext>(options => options.UseSqlServer(connection, opts => { opts.EnableRetryOnFailure(); }));
services.AddDbContextPool<SqlDbContext, SqlDbContext>(options => options.UseSqlServer(connection));

Anyways I ended up putting the change in, because there was no gotchas. It just worked.

@maldworth
Thank you for a workaround example! I'm going to introduce it to a team, and hope we start with Sagas in our project :) As soon as your fix is released, I migrate to it.

@Serenya 5.5.5 is now released. Is everything working and can we close this issue?

@maldworth, I could test if when I back from vacation in 2 weeks.

I'll close, feel free to request it reopened if the issue is there post 5.5.5


Autogen not able to search online

Mine is up and running but my assistant keeps telling me ‘it is an AI assistant and so doesn’t have the ability to load local documents or search online.’

did you try another model?

Hi, can you please provide more details of your setup including minimal code/example that reproduces the error.

Hi, can you please provide more details of your setup including minimal code/example that reproduces the error.

That problem solved but now it claims a file in given file path doesnt exist, when it 100% does. can you help?
Relevant code below:
task = """
analyse the sales price listings in the this dataset (r"C:\Users\paddy\wulguru_data_set.xlsx") and give me a breakdown of the sales prices.
"""
And I get:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\paddy\wulguru_data_set.xlsx'

did you try another model?

Trying Mistral 7b model at the moment and it is so slow. Has anyone actually got Autogen working without having to spend 3 days troubleshooting?

Which agents are you using? None of the agents can search online right now, as web search APIs need keys. You can write a web search function with your own key, and configure an agent for function execution.

Hi, can you please provide more details of your setup including minimal code/example that reproduces the error.

That problem solved but now it claims a file in given file path doesnt exist, when it 100% does. can you help? Relevant code below:
task = """ analyse the sales price listings in the this dataset (r"C:\Users\paddy\wulguru_data_set.xlsx") and give me a breakdown of the sales prices. """
And I get: FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\paddy\wulguru_data_set.xlsx'

Is the code executed in docker? If so, it won't have access to that path.

Which agents are you using? None of the agents can search online right now, as web search APIs need keys. You can write a web search function with your own key, and configure an agent for function execution.

I added a web search function in the agentchat_function_call.ipynb example and it worked. but It seems that before web search function added I had some tasks done perfectly without calling the web search function. After web search function added agent easily choose to use web search with the same task. How can I make the assistant agent think carefully whether to use a function or not. I try to modify the system message but seems useless. Should I define more agents and try group chat? Thanks.

Which agents are you using? None of the agents can search online right now, as web search APIs need keys. You can write a web search function with your own key, and configure an agent for function execution.

I added a web search function in the agentchat_function_call.ipynb example and it worked. but It seems that before web search function added I had some tasks done perfectly without calling the web search function. After web search function added agent easily choose to use web search with the same task. How can I make the assistant agent think carefully whether to use a function or not. I try to modify the system message but seems useless. Should I define more agents and try group chat? Thanks.

Can you please provide your code and error so that we can help you better? Improving the function description may also help.

Which agents are you using? None of the agents can search online right now, as web search APIs need keys. You can write a web search function with your own key, and configure an agent for function execution.

I added a web search function in the agentchat_function_call.ipynb example and it worked. but It seems that before web search function added I had some tasks done perfectly without calling the web search function. After web search function added agent easily choose to use web search with the same task. How can I make the assistant agent think carefully whether to use a function or not. I try to modify the system message but seems useless. Should I define more agents and try group chat? Thanks.

Can you please provide your code and error so that we can help you better? Improving the function description may also help.

Sure. Thanks for your reply. My goal is to build an agent who can access functions when it has to do so.
Yesterday I try to use a UserProxyAgent and an AssistantAgent with functions(web search, python, shell). Then the AssistantAgent attends to solve all the tasks using web_search function. But that was not what i wanted. Some tasks could be solved in an easier way without using web_search function.
Now I build a groupchat with three agents: user_proxy, coder with function call, assistant. But now in a situation that the groupchat couldn't stop. Code and Examples attached. Thank you.
agentchat_function_call.ipynb.zip

About termination in group chat, you may be interested in #309

We are closing this issue due to inactivity; please reopen if the problem persists.


add share

How can I test changes to this repo locally? I had tried pushing the dist and dist esm to a branch and then change the package json for the configuration to something like:
"templates-common-library": "github:Esri/templates-common-library.git#ecef707457c7689be41fbe65a6fcf650b2700c32"
As this is how I've done it for other things but can't seem to get it.

@jmhauck  I test it by setting up the config panel locally and then pasting the updated JSON into the test config params file and setting the localEnv.useTestConfigParams to true. Step 6 of this read-me talks about that approach: https://devtopia.esri.com/WebGIS/arcgis-template-configuration


”Aluniș” is listed in the drop-down menu

Description:
"Aluniș" is listed in the drop-down menu alongside its corresponding county and commune, according to the law.
Precondition:
The website is up an running.

Step 1
Type "Aluniș" in the search bar.

Expected results
The location is listed in the drop-down menu as "Comuna Aluniș, MUREȘ".


Section X contains link to Section X in some responsive sizes

URL: http://<IP_ADDRESS>/en/sections/emergency-information/about-covid-19/
The highlighted link points to http://<IP_ADDRESS>/en/sections/emergency-information/about-covid-19/
Visible in widths 768, 1024

I believe this is an instance of this issue: https://github.com/unicef/iogt/issues/370
Rather than the section name appearing in the section, it's the flat menu which appear there when it shouldn't.
It only happens in desktop view, but not in mobile (single column) view. @azahid89 is working on fixing this.

Fixed by #574


git commit: using SCM panel makes pre-commit hook fail

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

VS Code Version: 1.74.3
OS Version: Darwin arm64 22.2.0

Steps to Reproduce:

pre-commit hook with the following hook:

  - repo: local
    hooks:
      - id: pytest
        name: pytest
        entry: coverage run -m pytest
        language: system
        pass_filenames: false
        always_run: true

commit using SCM panel raises the following error:

pytest...................................................................Failed
- hook id: pytest
- exit code: 1

Executable `coverage` not found

The hook above passes correctly if git commit is called from the terminal (as coverage do exists in the active python environment). I expected this to work via SCM as well since selected Python interpreter is the correct one but it seems that git connection is not running the commands under the same environment.

Adding @brettcannon as I believe this might be a known issue.

@lszomoru @brettcannon I found this issue after I created mine (sorry about the duplicate ticket, my first searches were not productive). Closing this one


support passing in environment variables

support passing in env vars

  Starting Management API   /docker-entrypoint.sh: line 53: [: too many arguments   /docker-entrypoint.sh: line 92: /etc/cassandra/cassandra-env.sh: No such file or directory   /docker-entrypoint.sh: line 94: /etc/cassandra/cassandra-env.sh: Permission denied
🤔


Ignore Python 3.11's default getstate implementation

Fixes: #395
Python 3.11 adds a default __getstate__ to all objects, which breaks jsonpickle. See the issue for details.
If jsonpickle wants to keep its current behavior (and not have some objects that serialized as py/reduce in 3.10 turn into py/objectwithpy/state`), the pickler can ignore the default method.
With this the tests should pass on 3.11. (I didn't try with all test dependencies, though.)
Please consider this a draft/suggestion. I'm not a pickling expert by any means.

This makes all the tests in @hroncok 's reduced "no-compilation" set pass at least, confirmed. I'll try a mock package build to see if all tests pass. Not sure if this is the correct/best fix, but it does seem to do the job at least. Thanks.

Ok, it looks good to me. When I pickle an object from 2.2.0 and unpickle in your fork, it returns the correct deserialized object. So, there should be no need for a helper function. I'm all good with this, just waiting on a second opinion from @davvid.

Yeah, that makes sense based on what the change does, I wouldn't expect there to be compatibility issues. This only changes pickler behaviour, and it should only change it such that on 3.11 it now behaves the way it used to with 3.10.

I'm going to merge this beause I like the implementation, and davvid can revert if needed. When do you guys need 3.11 support by @encukou @AdamWill @hroncok? There's some other work I'd like to get in before I release 3.0.0, but if y'all need this patch in a public release soon then that can be arranged (but it'd probably be 2.2.1 or 2.3.0).

Thank you so much for making this happen. Really appreciate the attention to new Python versions.

@Theelx it's not urgent to get it in a public release, I've already backported the patch for our downstream package build. As long as it's on track for the next upstream release, that's all good. Thanks a lot!

Nice fix :-)


gitlab: 17.2.9 -> 17.3.6

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Before https://github.com/NixOS/nixpkgs/pull/350901 since 17.3.x is a "stop release" that must be included in the upgrade cycle

gitaly really wants to have its git built with the install-bundled-git target instead, but that's not very palatable... I'm also unsure whether the dependency tracking will succeed with the bundled binaries embedded in the gitaly binary, but probably...
Definitely WIP

Well, this appears to work, but it's definitely not the intended way to use the bundled git. I'm unsure how much we would need to change to get it to function, however. It would be good to have some more eyes on this.
(We're still using the git target and copying the binaries over for the gitaly binary to embed)


[WIP]Removed unnecessary filtercount functions from explorer views

field subquery_count is used as this does not change with the max_results_per_page flag
closes #1114

So we have a question @chriskacerguis SO this works, fixes the issue butttttt lets say you have a super fun admin that sets the limit to 1, but pagination in the sui gives the illusion that you could set the limit to 20, 100, 1000… would be great to say “oh, no, sorry user, not options, limit locked in at 1”
The max_results_per_page may one day be exposed to the api, which at that point we can use it to inform our pagination limit, but until that timeeeeeeeeeee I vote we merge this in, cuz broken things need to be fixed
cc: @imtayadeway 👋 ❤ , @abellotti 🙇 🍕

@AllenBW did I help you delete code? :heart: :heart: :heart:

YOU DID!!!! <3 <3 <3 @imtayadeway

Created https://github.com/ManageIQ/manageiq-api/issues/136 to track the followon work for to this pr


Workflows are referencing vulnerable actions

Hello, there!
As part of the university research we are currently doing regarding the security of Github Actions, we noticed that one or many of the workflows that are part of this repository are referencing vulnerable versions of the third-party actions. As part of a disclosure process, we decided to open issues to notify GitHub Community.
Please note that there are could be some false positives in our methodology, thus not all of the open issues could be valid. If that is the case, please let us know, so that we can improve on our approach. You can contact me directly using an email: ikoishy [at] ncsu.edu
Thanks in advance

The workflow publish.yml is referencing action gittools/actions/gitversion/setup using references v0.9.9. However this reference is missing the commit 90150b4 which may contain fix to the vulnerability.
The workflow publish.yml is referencing action gittools/actions/gitversion/execute using references v0.9.9. However this reference is missing the commit 90150b4 which may contain fix to the vulnerability.
The workflow test.yml is referencing action gittools/actions/gitversion/setup using references v0.9.9. However this reference is missing the commit 90150b4 which may contain fix to the vulnerability.
The workflow test.yml is referencing action gittools/actions/gitversion/execute using references v0.9.9. However this reference is missing the commit 90150b4 which may contain fix to the vulnerability.

The vulnerability fix that is missing by actions' versions could be related to:
(1) CVE fix
(2) upgrade of vulnerable dependency
(3) fix to secret leak and others.
Please consider updating the reference to the action.
If you end up updating the reference, please let us know. We need the stats for the paper :-)

Hi. The gittools/actions/gitversion/* dependencies were updated to version 0.9.11 in #270 on November 15, 2021 as can be seen in the current publish.yml and test.yml:
https://github.com/SwedbankPay/jekyll-plantuml-docker/blob/34baa3184b929d99db61ca4fd436f8ff9e411ce5/.github/workflows/publish.yml#L30
https://github.com/SwedbankPay/jekyll-plantuml-docker/blob/34baa3184b929d99db61ca4fd436f8ff9e411ce5/.github/workflows/publish.yml#L35
https://github.com/SwedbankPay/jekyll-plantuml-docker/blob/34baa3184b929d99db61ca4fd436f8ff9e411ce5/.github/workflows/test.yml#L23
https://github.com/SwedbankPay/jekyll-plantuml-docker/blob/34baa3184b929d99db61ca4fd436f8ff9e411ce5/.github/workflows/test.yml#L27


IOU - Complete IOU details are not shown in the preview

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Actions Performed:

open the chat for userA to userB at same time
send money from userA to userB
see the received money details in userB

Expected Result:
should show received money and senders name
Actual Result:
not shows received money and senders name
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.2.52-4
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/211664461-c9abbdff-53cb-4866-b427-a46711842a38.mp4
https://user-images.githubusercontent.com/43996225/211664518-4d32a897-1842-4223-bb08-a800ab6eab1b.mov

Expensify/Expensify Issue URL:
Issue reported by: @gadhiyamanan
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1673340503929939
View all open jobs on GitHub

Can reproduce. Taking a look

@Gonals since you applied the engineering label do you think this should be internal or external?

Setting as internal as I'm working on it :)

This issue has not been updated in over 14 days. @abekkala, @Gonals, @mollfpr eroding to Weekly issue.

This has been fixed for a while. Closing

@Gonals can you reopen the issue as  reporting bonus is pending here
cc: @abekkala

@gadhiyamanan I've sent your rehire offer in Upwork for $250

@abekkala I haven't reviewed any PR regarding this issue, so I'm not eligible for the payment. Thanks!

@gadhiyamanan payment was sent and contracted ended. Thank you!

Fix IOU preview for Money sending Expensify/Web-Expensify#36121

Nope! There was no C+ reviewer for this one

Ok, then we're all set here!


Fix concurrency issue in gRPC client streaming pattern(1.1.x)

Purpose
Fix concurrency issue in gRPC client streaming pattern
Fixes #20420
Approach
Make massage framer object thread-local
Check List

[x] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #20570 into ballerina-1.1.x will not change coverage.
The diff coverage is n/a.

@@               Coverage Diff                @@
##           ballerina-1.1.x   #20570   +/-   ##
================================================
  Coverage            15.21%   15.21%
================================================
  Files                   50       50
  Lines                 1341     1341
  Branches               208      208
================================================
  Hits                   204      204
  Misses                1121     1121
  Partials                16       16

Continue to review full report at Codecov.

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


How is shared-state implemented？

According to the paper, godel-scheduler is a shared-state scheduler.  Where can I find the implementation in the code? Particularly how to synchronize the of the global cluster view?

based on list-watch mechanism

Sorry, I've learned about the list-watch but still have difficulties. The list-watch mechanism is mainly through monitoring the events about create, delete, etc. But what puzzles me is how can multiple schedulers get the global cluster view. Does every scheduler supervise all these events so they don't need synchronization; or they synchronize to a central global cluster view at a certain frequency ( the real-time synchronization )? And which struct in the code serve as the central global cluster view? I'm not sure about that.Is it is commoncache in the struct binder or the generationstore or some other struct?

@katoomegumi each scheduler instance watches all events from apiserver(etcd), they don't need to sync up with each other.

@NickrenREN Thanks, and I think it's impossible to sync scheduler's cache for every event. so I think the code define the time internal to sync cache from events. Is it true?
// pkg/scheduler/scheduler.go
// func Run
if utilfeature.DefaultFeatureGate.Enabled(features.SchedulerCacheScrape) {
		// The metrics agent scrape endpoint every 5s and flush them to the metrics server every 30s. To
		// be more precise, scrape cache metrics every 5s.
		go wait.Until(func() {
			sched.commonCache.ScrapeCollectable(sched.metricsRecorder)
			sched.metricsRecorder.UpdateMetrics()
		}, 5*time.Second, sched.StopEverything)
	}

@katoomegumi  No, scheduler can receive every event and react to them (update cache and queue based on events). The code you posted is for collecting metrics, not the syncing cache logic.
btw,  godel scheduler is created on the basis of kubernetes.  you can spend more time on kubernetes and etcd.

@NickrenREN Thanks for the reply. Actually, we are interested in the "watch delay" in godel scheduler, which refers to the duration between event in etcd (e.g., cluster resource change) and each scheduler actually watch the event (update its cache). It is obvious that with higher QPS and larger cluster, the "watch delay" would be more severe... Admittedly, it is an inherent problem of K8S itself, but we wonder if godel made characterizations or specific optimizations of the "watch delay"?
FYI, the related discussion in k8s repo: https://github.com/kubernetes/kubernetes/issues/108556

@Wang-Xinkai hello,  we optimize the "event latency" from two aspects.

one is the server side: we don't use etcd for large scale clusters in Bytedance, we use Kubebrain + ByteKV instead.  This is not done in Godel Scheduler.
another one is the client side: we optimize the event processing workflow in Godel Scheduler,  so that events won't be stuck in delta queue.

Thanks. I have checked the client-side optimizations.
According to my understanding, realistic godel has real-time resource view of its corresponding sub-cluster based on the dual-side optimizations on "event delay"? In such case, the event delay just relates to the network communication cost between apiserver and scheduler.

@Wang-Xinkai  My understanding is: event latency depends on three parts:  1.  apiserver and etcd processing efficiency; 2. network condition between apiserver and client; 3. client processing efficiency.
We are now optimizing 1 and 3 to accelerate the event processing flow.
Network conditon has nothing to do with k8s ecosystem, but in the future, we can explore if we can do something to simplify the interaction process between godel scheduler components. e.g. for now, all godel scheduler components get events from apiserver, can we let them talk to each other directly ? ...

Interesting idea lol. I agree with you on event delay decomposition! Do you have some cursory estimation of the scale of event delay: tens-of-ms, hundreds-of-ms, second-scale? under normal scenarios and extreme high load scenarios.
I mean, if the event delay is huge, the scheduler would be blind to some "free resource" in the cluster during the event delay, that causes great waste of cluster resource (if there are tasks waiting to be scheduled). That's why we are interested in this metric. Thanks.

@Wang-Xinkai IIUC, you are worried about the Node resource update events latency ?

Right, do you have some thoughts about this issue? Or the experiences of the actual latency in realistic clusters? We suspect it affects the resource visibility of schedulers…

@Wang-Xinkai In kubernetes, different resources (node, pods...) have different event transmission links. The number of nodes is not that large, so node resource is less likely to cause latency issues. At least, in Bytedance, we have never meet this kind of problems (our largest single cluster size: 20k nodes, 1000k pods)

okay, thanks for your generous replies. We will use Godel to study more about shared-state schedulers. Keep in touch!

@Wang-Xinkai Cool, if you have any question, feel free to reach out to me


Input still has error styling after changing error conditions

On our site, we are using the Vuetensils input in several places. On one page, we have two inputs, one for a number of days and one for the user to enter a date. The maximum number of days is dependent on the date entered. We have been using the errors prop to handle any errors with this.
We recently noticed that when you enter a number of days that is out of the maximum range, it will expectedly display an error message. However, if you then change the date to later (to accommodate the new range of days), the error will now acknowledge the new maximum in text, but still have the .vts-input-error styling as if there is still an error. I would expect that the red border would no longer show.
Basically, if a value is outside the maximum, an error shows up as it should. If the conditions for throwing the error change, the error styling ought to disappear, but it doesn’t. We were looking for a solution to this.

Reproduced it here. Hopefully I explained things clearly enough in there.
https://codesandbox.io/s/compassionate-architecture-h2xtqd?file=/src/components/HelloWorld.vue:711-762

OK, this is very helpful. Yes, it's clear. I see the issue.
I'll take a look and see what I can do. My initial suspicion is that Vue is responding to its own synthetic event system to update the UI, but because Vuetensils uses native events, the change may not be triggered on the target input, which means the re-validation doesn't run.
I might be able to get around this by explicitly redefining the HTML validation attributes as props which would trigger a re-render, or maybe I can set up some sort of native attribute watcher.
I'm not sure, but I've got some decent ideas where to start.
Thanks again for using the library and helping me improve it :)

@DefinitelyNotAWalrus, can you pull the latest version and see if that fixes the issue for you?

Closing this issue unless I hear back.

Hello, sorry for the late response. My email notifications were not bumping up to the top, so I wasn't aware that you had been responding.
I just updated to the latest version and am still seeing the same issue.

Hmm. That's weird. I did have it working locally, but you're right that it's still not working in that demo. I'll need a bit more time on this.

Ok, this one was a two parter. I got the attr watcher in place last time. But missed the part where I had to wait for the next event loop cycle for the DOM to be updated before validating. Give it a go and let me know @DefinitelyNotAWalrus

That did seem to work for me in Code Sandbox. Thank you!


Simple routing spike

What problem does the pull request solve?
Trello card: https://trello.com/c/P93odeqZ/508-spike-how-to-store-simple-routing-in-the-api
the main doc sets outs the thinking around how we'll introduce routing to the api and runner

We should probably make this an ADR after it's been run past Chris and the tech weekly

I've started turning this into an ADR here: https://github.com/alphagov/forms/pull/63


Sections not supported in block-level table cells with "a" operator

Unfortunately it is possible to put a section header inside a table cell with the "a" operator. The asciidoctor-multipage extension may not handle these sections as expected.
I hope section headers are seldom, if ever, being used inside table cells. Thus, fixing this issue is ultra-low priority. If however you want to see this fixed then this is the issue for you to comment on and/or work on.

I hope section headers are seldom, if ever, being used inside table cells.

Indeed, and even if they are they'll most likely be discrete headings.

The asciidoctor-multipage extension may not handle these sections as expected.

Any chance that the discrete attribute could be checked to skip such headings and prevent breakage? (this should apply to any block, since discrete headings are allows in any block, usually to mimic the style of section headings).

Thus, fixing this issue is ultra-low priority.

Definitely not urgent, but still worth sharing thoughts on this, for the solution might be simple (as proposed above).

@tajmone, good idea; thanks for reminder about discrete headings.


Campfire Perk System

Design and develop the Campfire Perk System.

The following is done:

Perk nodes and lines appear, with VFX and SFX
Background art appears
Navigation bugs appear
Clicking on nodes and getting a description works
Buying perks works
Not being able to buy perks you don't have the children for already works
Appropriate locks on not destroying the tree mid-creation works

To do:

Next and Prev VFX and SFX / response
Exit VFX / SFX / response
Remove debug code
(optional) figure out why the Node Controller appears to be initializing twice (even though it only gets to the rest of the code once and continues as normal)

Hooked up the effects and descriptions of 4 out of 5 perks.

Need to finish the Instincts ability before the final perk can be added.

The Instincts ability is finished, and all perks function.
The Perk System is effectively complete. The only thing remaining is actually giving the player progress when they create campfires.
Would also be a good idea to know what forms to grab from Frostfall.esp, LastSeed.esp, and ArtOfTheCatch.esp ahead of time so that I can grab the point globals.

Done!!!


Add methods allowing masking of Strings

maskStart and maskEnd allow masking the original str by replacing it's
characters with the specified character-mask.
Common usecase is to hide sensitive information from logs, by using it
in toString of classes or in inputs to log calls.

Coverage increased (+0.02%) to 95.262% when pulling 902b761637eb2850f5bf223df92718a824282275 on greenman18523:master into 6850d88880093733c0ba29c371f2c9823256d749 on apache:master.

Hi @greenman18523 thank for your contribution - from my experience this is "must have" functionality for Commons Lang library because in almost all bit projects what I saw was their home grown masking function.
But what I would like to propose is to simplify the api and use one function mask() instead of two maskStart() and maskEnd(). This will simplify code of the functions especially both of them are quite similar. I created a pull request with my alternative implementation #335
Also I created a JIRA ticket https://issues.apache.org/jira/browse/LANG-1400
Please give your feedback,
Thank you

Hello @stokito, thanks for the input. The reasoning of creating two method was for a more intuitive API and to not add too many parameters in just one method. And I also didn't want to create a 3rd method that would just do the main logic without it being able to be exposed (i.e. private).
I like the idea of the mask being in the middle of the string, and I was thinking of incorporating it into the code, but was not sure how useful it would be for others.
An other goal of the way the methods are, is to clearly enforce a minimum amount of masking before being able to show any information. e.g. in the case of a credit card, even if the user has erroneously entered 8 out of the 16 characters, a call to StringUtils.maskEnd("35660020", '*', 12, 4) would not show any sensitive information, but a call to StringUtils.mask("35660020", 0, 4, '*') would expose.
I think that both implementations can be useful for a number of use-cases, some common to both, but some are covered by one of the two implementation.
Of course this can also be achieved by an extra parameter in your implementation. What do you think?

New method added, to cover usacases of https://issues.apache.org/jira/browse/LANG-1400

"must have" ... because in almost all bit projects what I saw was their home grown masking function.

Well, and I had to add another one to address NUTCH-2905 in apache/nutch#704. We had one additional use case: mask only a part of string matched by a regular expression.

Masking might belong in Commons Text, not here in Commons Lang IMO.

As a basic secure functionality it must be in core Java library or better even as a method of String. Security functions are "batteries" that must be included.
Almost all projects that I saw had commons-lang  as a dependency but the commons-text I can't even remember.

As a basic secure functionality it must be in core Java library or better even as a method of String. Security functions are "batteries" that must be included. Almost all projects that I saw had commons-lang as a dependency but the commons-text I can't even remember.

There is no point arguing here what belongs in what JRE class ;-)
We have been moving text based code to Commons Text for some time now while deprecating the original code in Commons Lang. Therefore, I don't see us adding more text based utilities to Lang. Masking is definitely a text concept IMO, as opposed to java.lang level processing.

Closing: No action in 3 years. See reference to Commons Text. Also Java has stock support for replace methods and regular expressions.


support nested dicts

needed for thinking tokens

released in langchain-openai==0.1.24
community release will wait til tomorrow - github having some issues with actions, and there are some dependency failures in experimental that we'll debug before releasing