GitStorage

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

239 of 239 (100.0%)  changed or added relevant lines in 8 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.007%) to 98.374%

Totals

Change from base Build<PHONE_NUMBER>6:
0.007%

Covered Lines:
55527

Relevant Lines:
56445

💛  - Coveralls


hana: provide more driver information

link to more specific driver documentation. use help.sap.com search instead of deep link
show some frequently used driver properties

to be reworked


"No description" error is slightly confusing to read

This applies to the current release of the orb-tools orb, which I think it 11.6 but also some older versions.
If you have something without a description, this is the error provided by the review job:

Orb components are not invalid without descriptions, but these descriptions appear on the Orb Registry for documentation and provide a better experience.

While the first half of that sentence is technically correct, it feels oddly worded to me.
I'm not great with writing but maybe something like this?
"Orb components are not invalid without descriptions, but these descriptions appear on the Orb Registry for documentation and provide a better experience."
"While descriptions are optional in orb schema, they are strongly recommended when publishing to the Developer Hub. Orb components descriptions become documentation which provides a better experience for everyone.

Just to ref to the direct code in case someone wants to take a stab:
https://github.com/CircleCI-Public/orb-tools-orb/blob/02a882d119446dc7c5e9861e3201b621238e7ad3/src/scripts/review.bats#L17-L31
I like your suggestion (the last sentence) @felicianotech !

I'll also note, this sort of double negative pattern is also used here and both could be refactored in a single PR maybe?
https://github.com/CircleCI-Public/orb-tools-orb/blob/02a882d119446dc7c5e9861e3201b621238e7ad3/src/scripts/review.bats#L138

On it, thanks folks! Slapping it on to #181


Add Yeoman generator and example; fix bugs from npm link, npm start

This adds a yeoman generator to help new devs quickly scaffold a react-server instance.  Yeoman generators have to start with generator-, and generator-react-server is already taken -- we could do generator-reactserver or generator-rs, but I thought generator-corvair might be more memorable.
This also resolves a couple of issues I encountered along the way.
dougwade packages/example-corvair ‹add-yeoman-generator*› » npm start

><EMAIL_ADDRESS>start /Users/doug.wade/react-server/packages/example-corvair
> node server.js

Start server...
Listening on port 3000
Started!
(node) OutgoingMessage.flush is deprecated. Use flushHeaders instead.
Warning: React.renderToString is deprecated. Please use ReactDOMServer.renderToString from require('react-dom/server') instead.
2016-02-10T08:43:07.681Z - error: [react-server.core.renderMiddleware] Error rendering element 0 message=TRITON_CONFIGS environment variable required to start server., stack=Error: TRITON_CONFIGS environment variable required to start server.
    at module.exports (/Users/doug.wade/react-server/packages/example-corvair/node_modules/react-server/target/server/config.js:17:11)
    at getNonInternalConfigs (/Users/doug.wade/react-server/packages/example-corvair/node_modules/react-server/target/server/renderMiddleware.js:904:19)
    at bootstrapClient (/Users/doug.wade/react-server/packages/example-corvair/node_modules/react-server/target/server/renderMiddleware.js:809:13)
    at writeElements (/Users/doug.wade/react-server/packages/example-corvair/node_modules/react-server/target/server/renderMiddleware.js:773:4)
    at doElement (/Users/doug.wade/react-server/packages/example-corvair/node_modules/react-server/target/server/renderMiddleware.js:601:3)
    at /Users/doug.wade/react-server/packages/example-corvair/node_modules/react-server/target/server/renderMiddleware.js:609:11
    at /Users/doug.wade/react-server/packages/example-corvair/node_modules/react-server/node_modules/continuation-local-storage/context.js:74:17
    at _fulfilled (/Users/doug.wade/react-server/packages/example-corvair/node_modules/react-server/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/Users/doug.wade/react-server/packages/example-corvair/node_modules/react-server/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/Users/doug.wade/react-server/packages/example-corvair/node_modules/react-server/node_modules/q/q.js:796:13)

is less than ideal, since we don't call it Triton anymore.
and then also
[00:46:45] 'test' errored after 66 ms
[00:46:45] Error in plugin 'gulp-jasmine'
Message:
    Cannot find module 'superagent'
Details:
    code: MODULE_NOT_FOUND

npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>license should be a valid SPDX license expression
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/iojs" "/usr/local/bin/npm" "link"
npm ERR! node v5.6.0
npm ERR! npm  v3.6.0
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>prepublish: `gulp build && gulp test`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>prepublish script 'gulp build && gulp test'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the react-server package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     gulp build && gulp test
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs react-server
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls react-server
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/doug.wade/react-server/packages/react-server/npm-debug.log

happened on npm link, so I added all the peer dependencies as dev dependencies to make it easier to develop locally.

Talked w/ @doug-wade IRL (virtually). The gist is:

I suggested moving the examples to the top-level as a sibling of packages/, where the expected use case is something like:

git clone ....:react-server.git
cd react-server/examples/someExample
npm install && npm start

It's not obvious to me that we need to publish an example server to npm where the source isn't readily available. Seems like it would be more useful w/ the source checkout, and this gets us out of having to work around name collisions w/ other example-y npm packages.

Doug clarified for me that the goal of the yeoman generator is to bootstrap a small, functional react-server(which was probably obvious, but I'm dense sometimes). I suggested generator-react-server-bootstrap as an alternative name?

Doug clarified for me that the goal of the yeoman generator is to bootstrap a small, functional react-server

I'm a little confused about this goal. I'm pretty sure (although not certain) that the projects generated from this generator won't have any client-side interactivity. When I followed the README.md instructions, for example, I got a project that would generate server-side renderings, but it didn't bundle code or even put script tags in the HTML, so it did nothing on the client side. Is the goal to have this example be interactive on the client side? What about things that are not strictly necessary, like code splitting?

@aickin I don't necessarily think the generator is complete. I would think that in order for us to call it "complete enough" we'd want client-rendering at the very least. Code splitting seems like a nice-to-have. I'm working on adding the gulp plugin we use as a package here as well.

 You should sign our Contributor License Agreement in order to get your pull request merged.

Let's get this working with @aickin's CLI (#17).
It's got a bunch of stuff that helps with newbie-friendliness:

Nicer routes.js format
No need for a server.js
Hot loading
...

Can be set up to work via npm run, I think?

@doug-wade If you want an extremely minimal example of a project working with react-server-cli, I have a "Hello, World" project in my react-server-examples repo to look at. (And based on your excellent suggestion, it launches with npm start!)

@aickin actually, this TODO mvc project is a much more reasonable scaffold for building a real app on top of -- mind if I generate that instead?

Embarrassingly, I'm not sure it's working at the moment; last time I looked at it there were some glitches, and I haven't had a chance to look at it again. If you want to have at it, though, feel free.

As is, the HelloWorld app is throwing 500s
dougwade ~/example » npm start

><EMAIL_ADDRESS>start /Users/doug.wade/example
> node server.js

Start server...
Listening on port 3000
Started!
2016-02-23T07:47:43.886Z - error: [react-server.core.renderMiddleware] Failed to navigate after FAILSAFE_ROUTER_TIMEOUT page=HelloWorld, path=/
[object Object]
2016-02-23T07:48:18.299Z - error: [react-server.core.renderMiddleware] Failed to navigate after FAILSAFE_ROUTER_TIMEOUT page=HelloWorld, path=/
[object Object]

And instead of the expected Hello World!, I'm getting [object Object], so this still needs some work before it can merge

I had that problem earlier this week, and I vaguely recall that it had something to do with ES6 imports interacting strangely with require (although I may be wrong about that; my memory is terrible).
For me, the hello world app works out of the box if I do:
git clone https://github.com/aickin/react-server-examples.git
cd react-server-examples/helloworld
npm install
npm start

Does that work or fail for you?

Oh, I think I may see the issue. In the helloworld example, npm start maps to react-server-cli, whereas in this template it maps to server.js.
The issues is that the routes file format that I used in the example can't be fed directly into reactServer.renderMiddleware; it needs to first be transpiled to get client side code-splitting trickiness.

I'm really struggling to understand how react-server-cli is supposed to work.  I'm getting the following error
dougwade ~/example » npm start

><EMAIL_ADDRESS>start /Users/doug.wade/example
> react-server-cli

module.js:341
    throw err;
    ^

Error: Cannot find module 'react-server'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Object.<anonymous> (index.js:21:15)
    at Module._compile (module.js:413:34)
    at loader (/Users/doug.wade/react-server/packages/react-server-cli/node_modules/babel-register/lib/node.js:128:5)
    at Object.require.extensions.(anonymous function) [as .js] (/Users/doug.wade/react-server/packages/react-server-cli/node_modules/babel-register/lib/node.js:138:7)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)

npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/iojs" "/usr/local/bin/npm" "start"
npm ERR! node v5.6.0
npm ERR! npm  v3.6.0
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start: `react-server-cli`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script 'react-server-cli'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the example package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     react-server-cli
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs example
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls example
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/doug.wade/example/npm-debug.log

I tried fixing it by adding a peer dependency on react-server, but the error persists.  I don't want to add an actual dependency on react-server, since then the cli would have a different instance of react-server than the one that the generated package has, which is clearly bad.  I've posted the generated boilerplate to a separate repo to make this easier to review: https://github.com/doug-wade/example-reactserver.  Note that I'm on node 5.6.0, so peerDependencies are handled differently (better) than they were in npm 2.

Also, I'd like the generator to support different js transpilers, like coffescript and clojurescript; how do I do that with react-server-cli?

The version of react-server-cli checked in to npm doesn't have bin in the package.json, so you need npm start to map to ./node_modules/react-server-cli/bin/react-server-cli instead of react-server-cli. I did that and got it to run, although I then hit an error because Simple.js doesn't import React.

Also, I'd like the generator to support different js transpilers, like coffescript and clojurescript; how do I do that with react-server-cli?

There's no way to do that right now, though it could be added as a feature!

@aickin So to change the transpiler to a non-supported one, you have to open a pr with us first?  Seems a little onerous...
And I npm linked a patched version of react-server-cli that fixed the bin issue and still got the error -- I'm worried you're using a separate instance of react-server in your local testing than what the client instantiates.

Seems a little onerous...

Agreed. I struggle with the correct API here, and I think there's a balance between complexity and functionality. I worry that opening up the entire webpack config as an API is way too broad, and allows folks to do things that can easily shoot themselves in the foot and/or make it really difficult to upgrade react-server, but, as you note, adding loaders at runtime is a totally reasonable feature request. I could imagine allowing folks to pass in additional loaders, I think.

And I npm linked a patched version of react-server-cli

Did you link it globally or locally? As a reminder, react-server-cli doesn't work when globally installed.

Actually, here's an idea to see what's going on that's different between our systems. The following commands start up the server on my system:

git clone https://github.com/doug-wade/example-reactserver.git
cd example-reactserver/
npm install
./node_modules/react-server-cli/bin/react-server-cli

For me, this starts up the server, and then if I go to http://localhost:3000/ I get an error with Simple.js not including React (which is a different issue). Does this work the same for you?

dougwade ~/example-reactserver ‹master› » npm install                                                                                1 ↵
npm WARN<EMAIL_ADDRESS>No repository field.
dougwade ~/example-reactserver ‹master› » ./node_modules/react-server-cli/bin/react-server-cli
module.js:341
    throw err;
    ^

Error: Cannot find module 'react-server'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at Object.<anonymous> (index.js:21:15)
    at Module._compile (module.js:413:34)
    at loader (/Users/doug.wade/react-server/packages/react-server-cli/node_modules/babel-register/lib/node.js:128:5)
    at Object.require.extensions.(anonymous function) [as .js] (/Users/doug.wade/react-server/packages/react-server-cli/node_modules/babel-register/lib/node.js:138:7)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)
dougwade ~/example-reactserver ‹master› » node -v                                                                                1 ↵
v5.6.0

@aickin react-server-cli is definitely broken for node 5
dougwade ~/example-reactserver ‹master*› » node -v                                                                                1 ↵
v4.3.1
dougwade ~/example-reactserver ‹master*› » rm -rf node_modules
dougwade ~/example-reactserver ‹master*› » npm install
npm WARN package.json<EMAIL_ADDRESS>No repository field.
npm WARN deprecated<EMAIL_ADDRESS>Deprecated.
npm WARN peerDependencies The peer dependency<EMAIL_ADDRESS>included from express-state will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
\
><EMAIL_ADDRESS>install /Users/doug.wade/example-reactserver/node_modules/react-server-cli/node_modules/webpack/node_modules/watchpack/node_modules/chokidar/node_modules/fsevents
> node-pre-gyp install --fallback-to-build

[fsevents] Success: "/Users/doug.wade/example-reactserver/node_modules/react-server-cli/node_modules/webpack/node_modules/watchpack/node_modules/chokidar/node_modules/fsevents/lib/binding/Release/node-v46-darwin-x64/fse.node" is installed via remote
<EMAIL_ADDRESS>node_modules/react-dom

<EMAIL_ADDRESS>node_modules/superagent
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
<EMAIL_ADDRESS>node_modules/react-server
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS>
<EMAIL_ADDRESS>node_modules/babel-plugin-transform-runtime
└──<EMAIL_ADDRESS><EMAIL_ADDRESS>
<EMAIL_ADDRESS>node_modules/react
├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
<EMAIL_ADDRESS>node_modules/babel-preset-react
├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
<EMAIL_ADDRESS>node_modules/babel-preset-es2015
├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
<EMAIL_ADDRESS>node_modules/react-server-cli
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS>├──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>└──<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>dougwade ~/example-reactserver ‹master› » npm start

><EMAIL_ADDRESS>start /Users/doug.wade/example-reactserver
> react-server-cli

module.js:327
    throw err;
    ^

Error: Cannot find module 'react-server'
    at Function.Module._resolveFilename (module.js:325:15)
    at Function.Module._load (module.js:276:25)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (index.js:21:15)
    at Module._compile (module.js:409:26)
    at loader (/Users/doug.wade/react-server/packages/react-server-cli/node_modules/babel-register/lib/node.js:128:5)
    at Object.require.extensions.(anonymous function) [as .js] (/Users/doug.wade/react-server/packages/react-server-cli/node_modules/babel-register/lib/node.js:138:7)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)

npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/iojs" "/usr/local/bin/npm" "start"
npm ERR! node v4.3.1
npm ERR! npm  v2.14.12
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start: `react-server-cli`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script 'react-server-cli'.
npm ERR! This is most likely a problem with the example-reactserver package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     react-server-cli
npm ERR! You can get their info via:
npm ERR!     npm owner ls example-reactserver
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/doug.wade/example-reactserver/npm-debug.log
dougwade ~/example-reactserver ‹master*› » ./node_modules/react-server-cli/bin/react-server-cli                                                                                1 ↵
2016-02-23T21:27:02.764Z - warning: [react-server-cli/index.js] PRODUCTION WARNING: the following current settings are discouraged in production environments. (If you are developing, carry on!):
2016-02-23T21:27:02.765Z - warning: [react-server-cli/index.js] -- Hot reload is enabled. Pass --hot=false, pass --production, or set NODE_ENV=production to turn off.
2016-02-23T21:27:02.766Z - warning: [react-server-cli/index.js] -- Minification is disabled. Pass --minify, pass --production, or set NODE_ENV=production to turn on.
2016-02-23T21:27:02.766Z - warning: [react-server-cli/index.js] -- NODE_ENV is not set to "production".
2016-02-23T21:27:05.399Z - notice: [react-server-cli/startServer.js] Starting servers...
2016-02-23T21:27:05.399Z - info: [react-server-cli/startServer.js] Starting hot reload JavaScript server...
2016-02-23T21:27:05.425Z - info: [react-server-cli/startServer.js] Starting HTML server...
2016-02-23T21:27:05.480Z - info: [react-server-cli/startServer.js] Started HTML server on port 3000
2016-02-23T21:27:05.592Z - info: [react-server-cli/startServer.js] Started hot reload JavaScript server on port 3001
2016-02-23T21:27:05.592Z - notice: [react-server-cli/startServer.js] Ready for requests on port 3000.
Hash: 22a0d3906fbc6214957a
Version: webpack 1.12.14
Time: 108ms
               Asset     Size  Chunks       Chunk Names
HelloWorld.bundle.js  22.3 kB       0       HelloWorld
chunk    {0} HelloWorld.bundle.js (HelloWorld) 64 bytes [rendered]
    [0] multi HelloWorld 64 bytes {0} [built] [4 errors]

ERROR in multi HelloWorld
Module not found: Error: Cannot resolve module 'webpack-dev-server/client' in /Users/doug.wade/example-reactserver
 @ multi HelloWorld

ERROR in multi HelloWorld
Module not found: Error: Cannot resolve module 'webpack/hot/only-dev-server' in /Users/doug.wade/example-reactserver
 @ multi HelloWorld

ERROR in multi HelloWorld
Module not found: Error: Cannot resolve module 'react-hot' in /Users/doug.wade/example-reactserver
 @ multi HelloWorld

ERROR in multi HelloWorld
Module not found: Error: Cannot resolve module 'react-hot' in /Users/doug.wade/example-reactserver
 @ multi HelloWorld

And I still suspect its not sharing its react-server instance with the example-reactserver

@aickin I'd much prefer to generate a gulpfile that handles transpilation, and then generate one with one of: coffeescript, clojurescript, babel, or no transpiler based on a response to an inquirer question.  Then, clients who want to use SML or F# or whatever can swap out the transpilation step in the gulpfile with their transpilation step.

react-server-cli is definitely broken for node 5

Hmmm... I've mostly tested it on node 5, and just ran both my hello world and your hello world (after patching the React import in Simple.js) successfully in node 5.5.0, so I don't think that's it, or at least it's not the only factor.
OK, let's step back for a second. What do we know is different between our machines? I can think of two things that I know:

npm version. Looks to me like you're using a 2.x version, while I'm using a 3.3.12.
react-server-cli is npm linked on your machine and not on mine.

Is there anything else that you know of?
I'm looking suspiciously at the npm difference, given that the problem is with resolving libraries. Would you mind switching to npm 3 and re-running the test above? Are there things I should try on my machine?
Thanks, and sorry for the hassle.

It's totally npm; with npm 2.14.20 I was able to repro the issue where it can't find webpack-dev-server:
ERROR in multi HelloWorld
Module not found: Error: Cannot resolve module 'webpack-dev-server/client' in /Users/sashaaickin/code/example-reactserver
 @ multi HelloWorld

I'll file an issue and probably look at it in the next day or two (I'm in a hackathon today which is going to take up most of my time).

Declined in favor of https://github.com/redfin/react-server/pull/90

I still like the idea of a generator...


Token endpoint should permit all HTTP OPTIONS requests to support CORS.

This is the same issue documented in https://github.com/spring-projects/spring-security-oauth/issues/184. That ticket was closed and marked as fixed, but I believe this fix was removed in subsequent updates. The fix was supposedly committed in 8d1e947545adad7524f7a5b173a3067efad6c52f, yet removed in d3819e2e5414019ab9e5cb1207fc6a54f239dd55. Was this intentional? If so, why?

FYI the solutions in http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cors.html do not work, because the token endpoint is intercepted before it reaches the MVC handler.
The workaround I found using Spring Boot 1.3 and Spring Security OAuth2 2.0.8 would be to remove @EnableAuthorizationServer, and supply a overridden AuthorizationServerSecurityConfiguration as below:
//workaround for https://github.com/spring-projects/spring-security-oauth/issues/330
@Configuration
@Import(AuthorizationServerEndpointsConfiguration.class)
public class CorsEnabledAuthorizationServerSecurityConfiguration extends AuthorizationServerSecurityConfiguration {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        super.configure(http);
        CorsConfigurationSource source = corsConfigurationSource();
        http.addFilterBefore(new CorsFilter(source), ChannelProcessingFilter.class);
    }

    private CorsConfigurationSource corsConfigurationSource() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedOrigin("*");
        config.addAllowedHeader("*");
        config.addAllowedMethod("POST");
        //more config
        source.registerCorsConfiguration("/**", config);
        return source;
    }
}

Yea I noticed that Spring Boot 1.3 broke CORs support for Spring OAuth2. I
too have to implement a custom authorization configuration. Would be nice
if this ticket was reopened and reevaluated.
On Feb 22, 2016 6:43 AM, "greyfairer"<EMAIL_ADDRESS>wrote:

FYI the solutions in
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cors.html
do not work, because the token endpoint is intercepted before it reaches
the MVC handler.
The workaround I found using Spring Boot 1.3 and Spring Security OAuth2
2.0.8 would be to remove @EnableAuthorizationServer, and supply a
overridden AuthorizationServerSecurityConfiguration as below:
//workaround for https://github.com/spring-projects/spring-security-oauth/issues/330
@Configuration
@Import(AuthorizationServerEndpointsConfiguration.class)
public class CorsEnabledAuthorizationServerSecurityConfiguration extends AuthorizationServerSecurityConfiguration {
@Override
protected void configure(HttpSecurity http) throws Exception {
    super.configure(http);
    CorsConfigurationSource source = corsConfigurationSource();
    http.addFilterBefore(new CorsFilter(source), ChannelProcessingFilter.class);
}

private CorsConfigurationSource corsConfigurationSource() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    CorsConfiguration config = new CorsConfiguration();
    config.addAllowedOrigin("*");
    config.addAllowedHeader("*");
    config.addAllowedMethod("POST");
    //more config
    source.registerCorsConfiguration("/**", config);
    return source;
}

}
—
Reply to this email directly or view it on GitHub
https://github.com/spring-projects/spring-security-oauth/issues/330#issuecomment-187136113
.

This ticket is still open, but has a pretty low priority. I don't think you need any custom security configuration (the CORS filter is not a Security filter, and I already remarked in an earlier comment). You can just add one with a path that suits you (e.g. matching only the token endpoint).

@dsyer you mean something like this:
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
	@Override
	public void addCorsMappings(CorsRegistry registry) {
		registry.addMapping("/oauth/token").allowedOrigins("*");
	}
}

I tried that first, but the AuthorizationServer endpoints don't seem to be affected by this WebConfig.

I'm actually surprised that didn't work but it's not what I meant. You can just add a @Bean of type CorsFilter and map it to /oauth/token.

I have a custom OncePerRequstFilter (basically CorsFilter, except this was written before it existed in Spring Boot, and I have it registered as a bean. The issue was that the Spring Security filter chain was placed before the CorsFilter, so HTTP OPTIONSto any of the OAuth endpoints would just 401 without passing the client credentials. I ended up doing an@Order(-1000)` on the filter, and that seemed to do the trick. Kind of a hack though.

It wouldn't be a hack if you used the CorsFilter from Spring with a more targeted URL path. So at least we agree that there is an avalaible solution (and since we don't in general want to encourage browsers to use the token endpoint, I might leave it at that).

So I've tested what you described above, and unless I'm doing something wrong, this does not work (I still get 401 when doing an HTTP OPTIONS request to any endpoint).
The code can be seen here: https://github.com/ccampo133/spring-boot-oauth2-demo/tree/cors
I have registered a CorsFilter bean in Application.java. Everything else is just standard OAuth2 configuration boilerplate. In the test ApplicationTests.java you'll notice I do a simple integration test requesting HTTP OPTIONS to the token endpoint, and asserting that the status is 200 and the Access-Control-Allow-Origin is not null. Unfortunately, this test is failing with the most recent versions of Spring Boot and Spring Security/Spring Security OAuth.
@dsyer, could you please take a quick glance at this?
Regarding the remark about browsers: In the case of a highly trusted client (lets say your main page is a Javascript app), and it's using the resource owner password credentials grant type, they will need access to the token endpoint with CORS support. I understand your sentiment, but I wouldn't be so quick to write it off.

By definition practically a JavaScript client is not trusted, so it's still a corner case from my point of view.
If your filter is not firing you probably have the security filter registered with a lower order?

I'm not sure if you looked at the code, but there is no messing with the security filter ordering. Everything is either the Spring Boot defaults or very minimally configured.
https://github.com/ccampo133/spring-boot-oauth2-demo/blob/cors/src/main/java/oauth2demo/config/OAuth2Config.java
https://github.com/ccampo133/spring-boot-oauth2-demo/blob/cors/src/main/java/oauth2demo/config/WebSecurityConfig.java

Yeah, so you added a filter with not order, meaning unordered, meaning it runs after all the ordered filters. You need to regained it with an order before the security filter (whose order is defined by spring boot using a constant, by default).

Right which is why my in my previous answer, setting @Order(-999) worked since it injected the filter at the front of the chain. Just seems to me like a weird solution, considering CORS support via an unordered filter worked back when I posted this issue (Dec 2014; see my comment here https://github.com/spring-projects/spring-security-oauth/issues/330#issuecomment-66471162). I'm not sure if this is a Spring Boot issue of Spring Security OAuth issue honestly, but a breaking change happened somewhere along the line.

In Dec 2014 the security filter was probably unordered too, so it was random which one came first. At least now you have some control.

+1 to solve this problem

We have a micro service architecture with a Spring oAuth2 service and an api-service infront. The API service process all incoming requests (except for the once to the oAuth-service) and redirects them to the correct micro service if access is granted.Our own webpage and apps uses a password grant flow and the frontend framwork sends unauthorised OPTIONS-requests prior to the POST to oauth/token/
If I try the "hacks" described above (Having my SecurityConfig extending AuthorizationServerSecurityConfiguration instead of WebSecurityConfigurerAdapter) in order to allow unauthorised OPTIONS-requests, our custom AuthenticationProvider is no longer registered (the AuthenticationManager does no longer register the ResourceOwnerPasswordTokenGranter). Thus these methods have side effects.
Are we using this all wrong, or why else is there a resistance from Spring developers side to allow for configuration of unauthorised OPTIONS-requests?

+1
Why this issue is still opened? Is spring-security-oauth not developed anymore?
P.S. I have the same issue, as I understand server doesn't handle OPTIONS request properly and I cannot find a working solution, so server is not responding with allow origins *.

I am using Swagger UI in a dev environment to authorize with the Resource Owner Password Flow against a protected resource server. Under these circumstances, Swagger UI actually is a "highly trusted client" for me and the unsupported CORS preflight gave me some headaches. So I want to share my workaround and give this issue some more context.
I placed a Spring Security filter chain before the AuthorizationServerSecurityConfiguration and let it match only for OPTIONS /oauth/token requests to permit them.
@EnableWebSecurity
@Order(-1)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http.requestMatcher(new ELOAuthRequestMatcher("isCorsPreflightRequest()"))
        .authorizeRequests().anyRequest().permitAll();
  }

  @Bean
  public FilterRegistrationBean<SimpleCorsFilter> someFilterRegistration() {
      FilterRegistrationBean<SimpleCorsFilter> registration = new FilterRegistrationBean<>();
      registration.setFilter(new SimpleCorsFilter());
      registration.addUrlPatterns("/oauth/token");
      return registration;
  }

  // [...]

}

public class ELOAuthRequestMatcher extends ELRequestMatcher {

  public ELOAuthRequestMatcher(String el) {
    super(el);
  }

  @Override
  public EvaluationContext createELContext(HttpServletRequest request) {
    return new StandardEvaluationContext(new ELOAuthRequestMatcherContext(request));
  }

}

public class ELOAuthRequestMatcherContext {

  private final HttpServletRequest request;

  public ELOAuthRequestMatcherContext(HttpServletRequest request) {
        this.request = request;
    }

  public boolean isCorsPreflightRequest() {
    return request.getMethod() != null && "OPTIONS".equalsIgnoreCase(request.getMethod())
        && StringUtils.endsWithIgnoreCase(request.getRequestURI(), "/oauth/token");
  }

}

For some reason, the Origin header is not sent from Swagger UI (maybe included with version 3). Therefore, the provided CorsFilter is not working here:
public static boolean isCorsRequest(HttpServletRequest request) {
  return (request.getHeader(HttpHeaders.ORIGIN) != null);
}

Instead, I wrote a Filter that fits my needs.
public class SimpleCorsFilter implements Filter {

  @Override
  public void init(FilterConfig filterConfig) throws ServletException {}

  @Override
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
      throws IOException, ServletException {
    HttpServletResponse httpServletResponse = (HttpServletResponse) response;

    // configure as needed
    httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
    httpServletResponse.setHeader("Access-Control-Allow-Headers", "*");

    chain.doFilter(request, response);
  }

  @Override
  public void destroy() {}

}

A CORS preflight support (and an Origin header from Swagger UI...) would have made things easier for me.

@dsyer I think this is not that much of a corner-case, since the implicit grant type seems to have been mostly replaced by an authorization code grant, with a call without a client secret. Even for browser clients.
Some info:
https://oauth.net/2/grant-types/implicit/
"It is generally not recommended to use the implicit flow (and some servers prohibit this flow entirely). In the time since the spec was originally written, the industry best practice has changed to recommend that public clients should use either the authorization code flow without the client secret, or use the PKCE extension instead."
Or:
https://stackoverflow.com/questions/13387698/why-is-there-an-authorization-code-flow-in-oauth2-when-implicit-flow-works-s

Hi, @leonardocordeiro. It is unlikely, given that this project will reach EOL in a few days.
Please consider trying out Spring Authorization Server instead. There you can use Spring Security's built-in CORS support and ensure that the CorsFilter (and thus the OPTIONS requests) comes before the the token endpoint filter.


Convert to a toolbox (like create-react-app)

We want to try to convert this boilerplate api into a toolbox. This approach will help hide the configuration of all of these underlying build/test/dev tools. This will help lower the cognitive load on teams and will help people focus on creating their app instead of configuring typscript, linter, test framework, dev server, etc...
We should look at create-react-app for reference.

This boilerplate is still useful for generating typescript projects. Work for this issue will be done in https://github.com/alteryx/create-typescript-app


Detox cucumber example

[ ] This is a small change
[ ] This change has been discussed in issue #<?> and the solution has been agreed upon with maintainers.

Description:
This PR adds an example for detox cucumber integration. Details on how to run it has been mentioned in the README file.

Hey there, thanks for submitting this PR,
Having these examples is great, but I'm not sure the Detox repo is the place for them.
unfortunately we can not accept it, as we can not maintain it, due to lack of time, since this kind of example will defocus our efforts on every RN upgrade, same reason we don't have expo app example.
Instead of this PR, it would be probably more manageable to have this example in a separate repo.
I'm will be closing this PR now.

@rotemmiz,
Sure, Got the point and I have moved the example into a different repo.
Is It okay If I raise a PR against documentation mentioning the cucumber-detox integration steps and pointing to my repo?

@mathanpec Sure, please create a PR with a link to the repo. Thanks


 Task ID not found in the title of the PR, supported formats:
{ task type }#{ number }
{ task type }{ number }

Available task types: task, t, vx, issue, i, us, hu (case insensitive)
Examples:

task#123

Issue123

US#123

WARNING: Could not create a deploy configuration. Task ID not found in the title of the PR, supported formats:
{ task type }#{ number }
{ task type }{ number }

Available task types: task, t, vx, issue, i, us, hu (case insensitive)
Examples:

task#123

Issue123

US#123

A new configuration was created for libreacademia80. You can deploy it here.

A new configuration was created for openacademy80. You can deploy it here.

The instance created for openacademy80 with task id t98 has been deleted.

The instance created for libreacademia80 with task id t98 has been deleted.


Global Query Filter not working

I am using the SQLite provider in an xamarin app targeting netstandard 2.0 on monodroid80.
I have some records that have a status id.
I am attempting to provide a conditional global query filter.
modelBuilder.Entity<Callfile>().HasQueryFilter(e => !_filteringOn || e.StatusId == 1);

Basically when _filteringOn is false, I dont want to apply any filtering.
When _filteringOn is true, I want the status id == 1 filter to be applied.
When I use my DbContext, If I set _filteringOn to true, and do dbContext.Callfiles.ToList() - it doesn't return me any records. If i look at the individual callfile records though, they all have a status id == 1.
If i remove the global query filter - I get all the records as expected.
Further technical details
EF Core version:
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.1" />
    <PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.3" />

Database Provider: (e.g. Microsoft.EntityFrameworkCore.SqlLite)
Operating system:
IDE: (e.g. Visual Studio 2017 15.4)

@dazinator  I've run into this same type of thing - what I found also is that the DbContext caches the Modeling - meaning OnModelCreated is called once, the first time the context is spun; and not again as the results of that initial call are cached and re-used for performance.
You can disable this caching but for obvious performance reasons you don't really want to do that.
The solution I came up with was to inherit my primary context into a second context. The first contains all those global filters that you'll always want (eg. soft deletes) and the second, derived context adds the optional filters. Then, in my injection logic; I can determine which context to deliver based on the knowledge of whether I need the additional filtering or not, like so:
services
	.AddDbContext<MyRootDbContext>()
	.AddDbContext<MyExtendedFilteredDbContext>()
	.AddScoped(sp =>
		SomeVarDoINeedAdditionalFiltering == true
			? sp.GetRequiredService<MyExtendedFilteredDbContext>() as IMyDbContext
			: sp.GetRequiredService<MyRootDbContext>() as IMyDbContext);

Hope this helps!


Add back docker publish process with lightweight image

Resolves #6134 by adding a new lightweight 'publish' image which doesn't need to include all of the dev-time dependencies for yarn/node, etc.
This has the following benefits:

simplifies the build and publish pipeline
speeds up CI
reduces security vulnerabilities and begins to address  #3203 (related to #6062)

In future, this will also enable us to use lighterweight python base images, since we're not relying on dependencies that end users don't need.
For compatibility with prior images, all of the foundational expectations are still met:

port 500 declared
default workdir = /project
entrypoint = meltano
default cmd = ui

Testing before merging
TIL you can test workflow_dispatch jobs before merging to main, but you have to do so in the CLI:
https://stackoverflow.com/a/67840292/4298208
gh workflow run workflow --ref branch-name -f myparameter=myvalue

Codecov Report

Merging #6158 (483a534) into main (fa6c148) will not change coverage.
The diff coverage is n/a.

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

@@           Coverage Diff           @@
##             main    #6158   +/-   ##
=======================================
  Coverage   90.60%   90.60%
=======================================
  Files         268      268
  Lines       18763    18763
=======================================
  Hits        17001    17001
  Misses       1762     1762

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 fa6c148...bf360f1. Read the comment docs.

The SHA-** labeled image is working well!
I'm moving forward with publishing the public images.

@pandemicsyn and @edgarrmondragon - I am going to go ahead and merge this now that the docker images are published - but I'd appreciate any feedback and advice for further improvements.
Thanks!
https://github.com/meltano/meltano/issues/6134#issuecomment-1152758274


Future times with realtive-time-to-go and time-to-go elements

The use case for this commit is when you wish to display time relative to expected future dates such as in the case of expiry dates.
This is implemented via to new elements, realtive-time-to-go and time-to-go.
This commit also make the 'just now' string configurable via a just-now attribute.

There is future time support now with time-until elements.

thanks for the update @mislav


[CI] Check for changelog

Proposed changes:

Resolve https://github.com/RasaHQ/rasa/issues/8450

Status (please check what you already did):

[X] Fail the check if there are unexpected files in changelog/. Note that the expected files are README.md. .gitignore, and _template.md.jinja2. We fail the check if there are files other than the listed three files. See the testing run here.
[X] Success the check if no unexpected files in changelog/. See the testing run here.
[x] The check only runs on pull request where the head branch starts with 'prepare release'. This test could be done by merging https://github.com/RasaHQ/rasa/pull/8502 into branch assert_release_includes_all_changelog_entries, which is this PR. See the testing run here.

@virtualroot The last test was passed. The changelog step skipped in this PR as expected. 🎉
If you already added the new job Check for changelog to 'required', we can merge this.


Adding UNC path feature to Pipeline Artifact Task + Adding DPA V2 task

    public const string ArtifactSize = "artifactsize";

fix casing if you don't mind

Refers to: src/Agent.Plugins/PipelineArtifact/PipelineArtifactConstants.cs:6 in 6873b9e. [](commit_id = 6873b9e0673e45aba9650cd02230d2b52a487665, deletion_comment = False)

public class PipelineCacheServer

no changes in this file?

Refers to: src/Agent.Plugins/PipelineCache/PipelineCacheServer.cs:25 in 6873b9e. [](commit_id = 6873b9e0673e45aba9650cd02230d2b52a487665, deletion_comment = False)


Defines module for React-jsinspector

Summary:
Defines module for React-jsinspector that for swift modules to integrate with.
to fix https://github.com/expo/expo/issues/28209, any podspec depends on HermesExecutorFactory should use  add_dependency(s, "React-jsinspector", :framework_name => 'jsinspector_modern') to add dependency. otherwise it will encounter the header not found issue because use_frameworks will change "jsinspector-modern" to "jsinspector_modern".
to depend on React-jsinspector from expo-modules-core, we need it to define as a module.
otherwise, it will have the error
The Swift pod `ExpoModulesCore` depends upon `React-jsinspector`, which does not define modules. To opt into those targets generating module maps (which is necessary to import them from Swift when building as static libraries), you may set `use_modular_headers!` globally in your Podfile, or specify `:modular_headers => true` for particular dependencies.

Changelog:
[IOS] [CHANGED] - Add DEFINES_MODULE for React-jsinspector.podspec
Test Plan:
ci passed

@cipolleschi could you help to take a look for this change when you get a chance?


Consider changing the go-packages-function default to 'go-packages-go-list (and what to do about go-package-native)

The current default for 'go-packages-function is 'go-packages-native. Based on the variable documentation, I think the rationale for that was that go-packages-go-list was historically slower than go-packages-native for many environments.
Modules seem to change the equation. At least in my environment when I'm working in a module project, go-packages-native is painfully slow compared to go-packages-go-list. I think part of this is there is a lot more stuff that the go tool has been sticking in $GOPATH/pkg in recent releases that we aren't currently skipping. There can now also be multiple versions of packages in there due to modules.
I also think that go list is probably faster for modules than it used to be for GOPATH packages as now it can cull packages that are not in go.mod dependencies.
Another issue with go-packages-native is it doesn't understand the module pathnames under pkg. So for example it includes the following incorrect package name for me right now:
<EMAIL_ADDRESS>
I think it makes sense to switch the default 'go-packages-function to 'go-packages-go-list and to mark go-packages-native as deprecated.

I agree. I'd go as far as to say that go-package-native is plain broken. It was a good idea when GOPATH was all we had, people putting other stuff in $GOPATH/pkg made it slower, the Go build cache broke it slightly, and modules break it a lot. The only way go-package-native could work correctly nowadays is if we implemented a lot of go list's logic in elisp. And we really shouldn't do that.
go-packages as a whole isn't very relevant nowadays, anyway. Its main use is for go-import-add, and the majority of people use goimports for that now, and will use LSP eventually. Switching to the slower but correct go-packages-go-list should be fine.

I think the rationale for that was that go-packages-go-list was historically slower than go-packages-native for many environments

That is indeed why go-packages-native was added. It was at least an order of magnitude faster.


DLL load failed while importing _nifty: The specified module could not be found.

Hi,
I just installed the latest version (2.0.0a3) but I got an error and napari gui doesnt load.
please see below:
(plseg) C:\Users\user1>plantseg --napari
INFO: P [MainThread] 2024-10-02 11:22:22,631 plantseg - Logger configured at initialisation. PlantSeg logger name: plantseg
INFO: P [MainThread] 2024-10-02 11:22:23,267 plantseg.utils - You are using the latest version of PlantSeg: 2.0.0a3.
Traceback (most recent call last):
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Scripts\plantseg-script.py", line 9, in <module>
    sys.exit(main())
             ^^^^^^
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Lib\site-packages\plantseg\run_plantseg.py", line 74, in main
    launch_napari()
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Lib\site-packages\plantseg\run_plantseg.py", line 43, in launch_napari
    from plantseg.viewer_napari.viewer import run_viewer
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Lib\site-packages\plantseg\viewer_napari\viewer.py", line 4, in <module>
    from plantseg.viewer_napari.containers import (
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Lib\site-packages\plantseg\viewer_napari\containers.py", line 3, in <module>
    from plantseg.viewer_napari.widgets import (
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Lib\site-packages\plantseg\viewer_napari\widgets\__init__.py", line 1, in <module>
    from plantseg.viewer_napari.widgets.dataprocessing import (
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Lib\site-packages\plantseg\viewer_napari\widgets\dataprocessing.py", line 9, in <module>
    from plantseg.tasks.dataprocessing_tasks import (
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Lib\site-packages\plantseg\tasks\__init__.py", line 13, in <module>
    module = importlib.import_module(f'{__name__}.{module_name}')
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Lib\importlib\__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Lib\site-packages\plantseg\tasks\segmentation_tasks.py", line 5, in <module>
    from plantseg.functionals.segmentation import (
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Lib\site-packages\plantseg\functionals\segmentation\__init__.py", line 1, in <module>
    from plantseg.functionals.segmentation.segmentation import (
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Lib\site-packages\plantseg\functionals\segmentation\segmentation.py", line 3, in <module>
    import nifty
  File "C:\Users\user1\AppData\Local\miniforge3\envs\plseg\Lib\site-packages\nifty\__init__.py", line 4, in <module>
    from ._nifty import *
ImportError: DLL load failed while importing _nifty: The specified module could not be found.

Hello ,
I also have the same problem !

Hi all,
I have not yet tried to install plantseg on Windows, I will write back as soon as I test it.

Hi all,
I stumbled upon this and would like to share feedback for a similar issue we've heard on this topic.
In short, the (latest) build version 5 for nifty seems to not work on Windows at the moment.
The current workaround to avoid this issue is to use the previous build version (4), i.e. supported for python 3.8, 3.9, 3.10 and 3.11 - using a wildcard for the build version.
Hence, one has to make sure to install nifty in their environment supporting aforementioned python versions using:
$ mamba install -c conda-forge nifty=1.2.1=*_4

Hope that helps! :)

Awesome, thanks for the feedback @anwai98!

I was not able to reproduce the issue on my windows machine, but with the updated installation docs the installation should work in any case. Please reopen this issue if the problem persists.


RFC: Revise Store/Folder/Message interface

Originally, K-9 Mail's design for the Store/Folder/Message classes was based on the JavaMail API. Over the years we modified our classes a lot but never threw away the parts that didn't work well for K-9 Mail.
I want to change this. Specifically, I want 'modules' to return objects that contain exactly the data that is needed by the caller. And to avoid lazy-loading or additional requests as much as possible.
Some ideas:

Get rid of LocalStore and LocalFolder. Treating the database like a remote store only causes us pain and requires
lots of boiler plate code.

Create a new interface and refer to messages by its database ID instead of using MessageReference.
Hand specialized value classes to UI; containing only data necessary to render the UI.

Extract a class from Message that contains state information (flags, server uid, folder, etc.). Message should
only be concerned with storing the message data (header + body). This should also allow us to get rid of most if not
all checked exceptions on Message methods.
Simplify Store and Folder interfaces. We have very specialized needs for synchronization. All other use cases are
secondary.
The way we synchronize messages is rather specific to the Store type. We probably want to move away from Store
feature flags to separate synchronization implementations.

Having a very specialized interface will make k9mail-library even less useful for others. Later, we probably want to extract another library with just the basic operations for remote stores. But for now that shouldn't be our concern.
I'd love to get everyone's comments on these ideas or even alternative suggestions on how to improve the current situation.

Sounds good, need to think about a good way to break this down into smaller, manageable steps. Haven't worked with the K9 database code much. Looks like actually adding a centralised DB access layer could be the first step. The current access code is scattered around a bunch of different classes, with lots of ad-hoc querying (I guess that's you're referring to as lazy loading). Specific value types for a subset of user interfaces / screens are also a good idea, helps avoid bloat by adding all needed properties in one class. Maybe they could compose nicely where you can get subsets of the data and aggregate it on another layer.
Introducing a whole ORM type solution might be a little bit too much but some sort of lightweight query builder / query interface would be good.
Maybe there's an isolated new feature where this approach could be tried to get an idea first instead of trying to tackle the full refactoring in one go? Is your idea of 'modules' a separate feature of the app which would manage its own db access?
The Message / remote synchronization refactorings you mention afterwards are a separate concern though and could be started afterwards?

Introducing a whole ORM type solution might be a little bit too much but some sort of lightweight query builder / query interface would be good.

We currently have LocalSearch which is a description of what messages to search/display, e.g. all unread messages of folder X. The code to generate a query from it for the EmailProvider content provider is a bit hacky though.
Speaking of EmailProvider, I haven't explicitly mentioned that, but I definitely want to get rid of it. At least for internal use. We might want to clean it up and keep it around to allow third-party apps to access K-9 Mail's messages, though.

Maybe there's an isolated new feature where this approach could be tried to get an idea first instead of trying to tackle the full refactoring in one go?

I opened this issue mainly to get a better idea on where we want to go. Once we have a better idea we definitely need to break this down into smaller steps.

Is your idea of 'modules' a separate feature of the app which would manage its own db access?

I was using the word 'modules' to refer to the remote store part and the local store part. I want to modify both parts to return value types that are useful to the caller, rather than sticking to the JavaMail-inspired types.

The Message / remote synchronization refactorings you mention afterwards are a separate concern though and could be started afterwards?

Yes. I mentioned it because it is loosely connected to the topic at hand. Currently I'm working on adding Exchange ActiveSync support. And it doesn't look like the (remote) Store/Folder architecture is a very good fit for that protocol. But if EAS will be a completely separate "backend" we might as well have different, more specialized ones for IMAP and POP3.


[ble mesh] can´t provision ble_mesh_node example using "nRF mesh" android app after upgrading to v0.6.1 ble mesh SDK  (IDFGH-1088)

Environment

Development Kit:      [ESP32-DevKit DO IT 30 pin]
Module or chip used:  [ESP32-WROOM-32]
IDF version :  v4.0-dev-297-g54ecdca32
Build System:         [Make]
Compiler version: 1.22.0-80-g6c4433a5
Operating System:     [Windows|]
Power Supply:         [USB]

Problem Description
Using the ble_mesh_node example (under \examples\bluetooth\ble_mesh\ble_mesh_node) from the ble_mes_release/esp-ble-mesh-v0.6.1, I am no longer able to provision the Esp32 node using the "nrf Mesh" android app. I can see the device by scanning, but when I try to provision it, the app displays the "connecting" message for about 10 seconds, and then quickly displays the error message: "Error on connection state change"
When running the same example from the v0.5 branch, I was able to provision and get/set the generic onoff server states without issue using the nRF mesh app.
What I tried, but none of this solved the issue:

Using 2 of my co-workers smartphones with the app fresh installed
Clearing app data for the nRF mesh app
Disabling the GPIO_18 interrupt code on "board.c"

Expected Behavior
Device is provisioned and it is possible to set/get the generic onoff states using the nRF mesh android APP, the serial monitor connected to the esp32 shows that provisioning has been performed
Actual Behavior
app displays the "connecting" message for about 10 seconds, and then quickly displays the error message: "Error on connection state change". No message appears on the esp32 serial monitor.
Steps to repropduce

compile and flash the Esp32 with the ble_mesh_node as it is
open the nRF mesh android app, click on the plus sign.
the ESP-BLE_MESH device shows on the scan list.
Click on the esp-ble-mesh entry

Code to reproduce this issue
There's no added code. using the stock ble_mesh_node example
Debug Logs
I (30) boot: ESP-IDF v4.0-dev-297-g54ecdca32-dirty 2nd stage bootloader
I (30) boot: compile time 16:58:30
I (31) boot: Enabling RNG early entropy source...
I (36) boot: SPI Speed      : 40MHz
I (40) boot: SPI Mode       : DIO
I (44) boot: SPI Flash Size : 4MB
I (49) boot: Partition Table:
I (52) boot: ## Label            Usage          Type ST Offset   Length
I (59) boot:  0 nvs              WiFi data        01 02 00009000 00006000
I (67) boot:  1 phy_init         RF data          01 01 0000f000 00001000
I (74) boot:  2 factory          factory app      00 00 00010000 00100000
I (82) boot: End of partition table
I (86) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x2b1d4 (176596) map
I (157) esp_image: segment 1: paddr=0x0003b1fc vaddr=0x3ffbdb60 size=0x033cc ( 13260) load
I (162) esp_image: segment 2: paddr=0x0003e5d0 vaddr=0x40080000 size=0x00400 (  1024) load
0x40080000: _WindowOverflow4 at C:/msys32/home/helld/esp/esp-idf/components/freertos/xtensa_vectors.S:177
9
I (164) esp_image: segment 3: paddr=0x0003e9d8 vaddr=0x40080400 size=0x01638 (  5688) load
I (175) esp_image: segment 4: paddr=0x00040018 vaddr=0x400d0018 size=0x8916c (561516) map
0x400d0018: _flash_cache_start at ??:?
I (378) esp_image: segment 5: paddr=0x000c918c vaddr=0x40081a38 size=0x0fed0 ( 65232) load
0x40081a38: ets_update_cpu_frequency at C:/msys32/home/helld/esp/esp-idf/components/esp32/clk.c:214
I (416) boot: Loaded app from partition at offset 0x10000
I (416) boot: Disabling RNG early entropy source...
I (416) cpu_start: Pro cpu up.
I (420) cpu_start: Application information:
I (425) cpu_start: Project name:     ble_mesh_node
I (430) cpu_start: App version:      1
I (435) cpu_start: Compile time:     May  2 2019 16:58:18
I (441) cpu_start: ELF file SHA256:  e649ae80fa205494...
I (447) cpu_start: ESP-IDF:          v4.0-dev-297-g54ecdca32-dirty
I (454) cpu_start: Starting app cpu, entry point is 0x40081040
0x40081040: call_start_cpu1 at C:/msys32/home/helld/esp/esp-idf/components/esp32/cpu_start.c:267
I (0) cpu_start: App cpu up.
I (464) heap_init: Initializing. RAM available for dynamic allocation:
I (471) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM
I (477) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
I (483) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
I (489) heap_init: At 3FFBDB5C len 00000004 (0 KiB): DRAM
I (495) heap_init: At 3FFCA2D0 len 00015D30 (87 KiB): DRAM
I (501) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (508) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (514) heap_init: At 40091908 len 0000E6F8 (57 KiB): IRAM
I (520) cpu_start: Pro cpu start user code
I (203) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (204) ble_mesh_node: Initializing...
I (214) BTDM_INIT: BT controller compile version [b638fbb]
I (214) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (314) phy: phy_version: 4100, 6fa5e27, Jan 25 2019, 17:02:06, 0, 0
I (764) ble_mesh_node: esp_ble_mesh_prov_cb, event = ESP_BLE_MESH_PROV_REGISTER_COMP_EVT
I (764) ble_mesh_node: ESP_BLE_MESH_PROV_REGISTER_COMP_EVT, err_code 0
I (764) ble_mesh_node: BLE Mesh Node initialized
I (774) ble_mesh_node: esp_ble_mesh_prov_cb, event = ESP_BLE_MESH_NODE_PROV_ENABLE_COMP_EVT
I (784) ble_mesh_node: ESP_BLE_MESH_NODE_PROV_ENABLE_COMP_EVT, err_code 0
attachments:
sdkconfig.zip
ble_mesh_node.zip

Hi,
thats very strange, because i dont have any problems with nRF mesh, but im having issues with provisioning using espressif EspBleMesh app on android. With v0.5 ive got no problem to provision with that app, but now when android app is trying to change mtu then log on screen shows its only 23, which is not enough to provision ble mesh node.

Hello.
That should be very strange indeed, because I just tested with the Espressif EspBleMesh app and it worked without issues, and that should eliminate the possibility of a faulty ESP32.

I decided to fully investigate this "weird" issue, and tred to perform provisioning using a combination of:

sdk v0.6.1 node example/sdk v0.5 node example
old board (used for a week with leds connected directly)/ new board (only used one led with a 290 ohm resistor)
"nRF mesh"  / "Bluetooth Mesh by Silicon labs" android app for provisioning
my phone (motorola x Force) / friend's phone (moto g5), always deleting app data before performing the test.

The results are:
-the sdk version used and the board selected did not influence on the results
-I could provision the node  using any phone with the silicon labs app
-I could not provision the nodes using my phone (moto x force) with the nRF mesh app, but I could provision it using the Silicon labs app.
So, It looks like the failure lies within my phone, and not with the espressif BLE stack.
Closing it as there's nothing to be done with the expressif BLE mesh stack.


Improve generated pages routing

Description of feature request
The routing for generate pages doesn't seem to work very well. They seem out of order and make it hard to find the index page when editing or viewing since their is a back button but no home button
Describe the requirements to close this feature request

[ ] The generated navigation should be easier to use
[ ] the updated navigation should be applied to all of the pageTypes and tested on each one.
[ ] Explain the changes made and show examples in this issue once completed and ready to close.

This has been completed for the tailwindcss pages, but needs to be implemented for the none page type pages

Instead of having a "back" button on the view page, i changed it to "Home", as often you are redirected to the view page, and if you try to go back you have to go back to edit, than hit back again if you want to go to the index page.


Road towards relay compatibility

Just putting some thoughts down of currently missing features:
Unique Object IDs
Relay wants to be able to (re-)fetch any object in the graph by a unique ID via a root query named node:
node (id: "user123") {
  id
  name
}

Relay methods: fromGlobalId/toGlobalId
See: https://github.com/relayjs/relay-starter-kit/blob/master/data/schema.js#L115
Pagination
On the query side, relay requires first and after arguments (as well as last and before for backwards pagination):
users (first: 10, after: "user123") {
  edges {
    cursor
    node {
      id
      name
    }
  }
  pageInfo {
    hasNextPage
  }
}

edges: describes the collection (https://facebook.github.io/relay/graphql/connections.htm#sec-Edge-Types)
** cursor: would be the unique ID discusses above
** node: the box-standard field selector
pageInfo: an object with meta-data about the current page (https://facebook.github.io/relay/graphql/connections.htm#sec-undefined.PageInfo)
** hasNextPage
** hasPreviousPage: for backwards pagination

Also see: https://facebook.github.io/relay/graphql/connections.htm
Mutation
TBC
I expect graphql-relay-js to help us out with the more intricate details
I hope we can work towards relay compatibility. Please let me know if this is more appropriate for an adapter, e.g. graffiti-mongoose

Moved this to https://github.com/RisingStack/graffiti-mongoose/issues/22 as it's purely a schema builder issue.
Feel free to re-open if you want to keep this to a wider audience.


[Relay][RFC] Resolve cyclic dependency in Closure

see #4139 .
Currently, relay evaluate a function to a closure. It contain both the code of the function, and a mapping of every free variable inside that function, to the value of the free variable. when a closure is invoked, that mapping is used for the free variable. This is needed because the default approach, looking up the value from the environment (also known as dynamic binding), is buggy and will cause incorrect evaluation.
However, when a recursive closure is created, the mapping will contain value of every free variable - including the recursive function, and, subsequently, the closure itself!
I propose to add the following value, a RecValue, and a RecTable.
A RecValue is a shared_ptr of a RecTable, and a size_t index.
A RecTable is a vector of Closure.
Additionally, every closure will now have a Map<Variable, size_t> mapping, which store value of mutually recursive variable

I also think that we should employ a cycle detector in tvm - this method can only eliminate a certain class of cycle, but there will be more as relay program grow more complex. #3423

@MarisaKirisame I can understand the problem, but it would be great if you could give some examples about the solution so that everyone is on the same page
Ideally we want a simple enough solution that can remain stable for a while/

@tqchen it is fixed in #4155 , and it is a small change that is readable.
In case of mutual recursion, the Closure clos; line at 129 will be replaced with tvm::Array<Closure> clos; size_t idx;

i can see the code, but still it would be great if you can add an example explaining the data structure, and how it could fix the problem :)
It would also be great to discuss if we need to specifically produce different types of closure in runtime and if we could canonicalize so we only need one runtime closure

I am confused. Coming from a PL perspective, this is obvious. I am not bragging, but everyone have different perspective, and from my perspective I suffer from curse of knowledge.
We can only keep RecClosure and have its binding = nullptr for non recursive one.
However, it get more complicate at mutual recursion, so I want to have them seperate.

Of course it is not a curse. It is gives you merit to educate others and makes these ideas more accessible :)
I certainly

@tqchen it is possible to merge the two in one and use nullptr, however the design of mutual recursion will require each recclosure to keep both a vector of closure, and index (so it cannot be merged). Hence, I think they should be seprated.
It is indeed ugly, but the principled approach to dealing with this is to employ a cycle detector alongside the shared_ptr.

Coming from a PL perspective, this is obvious.

The solution is in fact not obvious even from a PL perspective. Xavier Leroy, famous for his work on OCaml, outlines multiple closure representations including their handling of recursive and mutually recursive functions.

I assume this is no longer active.


Help with this errror

michael@michael:~/dev/rrt-algorithms/examples/rrt$ python3 rrt_2d.py
Traceback (most recent call last):
File "rrt_2d.py", line 5, in
from src.rrt.rrt import RRT
ModuleNotFoundError: No module named 'src'
Hello,
Can someone please help me with this error? i'm running this on ubuntu 18.04.
Thanks

Which version of Python are you on?
It sounds like you might be on a version prior to 3.3.
Each directory should have a file named __init__.py
For more information, try reading: Traps for the Unwary in Python’s Import System.

I got the same problem. Using Python 3.6.8.

Solved by doing export PYTHONPATH="$(pwd)" in project root.

@muety Hello, I met the same issue. Could you specify how did you solve this problem?

It is solved.
Add the following lines before the 'import'.
import sys
sys.path.append('./rrt_algorithms')

import numpy as np

from src.rrt.rrt_star import RRTStar
from src.search_space.search_space import SearchSpace
from src.utilities.plotting import Plot


OFBIZ-12193 Fixed: Cant search ViewEntity with partial group-by fields

Fixed: Cant search ViewEntity with partial group-by fields (OFBIZ-12193)
For ViewEntities the SELECT statement can only contain function Fields
or the Fields need to be after GROUP_BY as well. The fix constricts the
select Fields for ViewEntities to functionFields and groupByFields.

This has been already pushed, closing


Duration is cast to an integer

Duration will be converted to an integer, loosing float precision in the process.

Fixed in f412ddf40b5e653f1bd7be61e442ebf4acdccb2e


Lens IDE: Two-Factor Authentication

What would you like to be added:
Option to enable Two-Factor Authentication as login when opening Lens IDE, or when it's been idle for X amount of minutes.
Why is this needed:
To increase security by adding authentication, and two-factor authentication should be the ambition.
Environment you are Lens application on:
development

Kubernetes distribution: AKS
Desktop OS: Windows

Is this about Lens Spaces and Cluster Connect or just the IDE; or is this about AWS two-factor?

@Nokel81 General OTP two-factor authentication for the IDE. Not related to AWS.

So to lock down lens between logging in?

@Nokel81 Yes, and/or when it's been idle for X amount of minutes. Naturally opt-in for the two-factor authentication method and it's options.

I guess something new. Basically being prompted for a login, which could be a OTP token, as soon as I open the Lens application - or if it's been idle for some time. I do not use Lens Spaces, which I believe the top right corner is for.

Okay thanks for the clarification. How would this increase security? If someone has access to your computer then they would be able to use kubectl and helm to their hearts content.

True. Implementing a login would at best protect the application from being used without user authentication.
In the future, one could imagine the added kubeconfig's (the actual secret part) would be encrypted using a subset of those authentication credentials, and decrypted and made available when the application is unlocked. I haven't looked under the hood of the application, yet, so apologizes for my arrogance and assumptions of the internal workings.
Anyway, having some kind opt-in of authentication for the application itself would be interesting regardless of the underlying data at rest.


[Bug Report] Can't hear anything with .play after .stop

Describe the bug
I'm not entirely sure if this is a fixable issue or not, may be related to https://github.com/jagrosh/MusicBot/issues/119.  However, doing something similar with Rythm works just fine.
If you're in a voice channel and use .play to start a song, then disconnect the bot with .stop; subsequent .play commands result in the bot connecting to the VC but being silent until you disconnect / reconnect on the VC.
The bot is only on one server.
To Reproduce
Steps to reproduce the behavior:

Run .play music
Run .stop
Run .play music

Expected behavior
I should be able to hear the bot when it reconnects.
Version Info (please complete the following information):

Linux, Docker
Java 1.8.0_221 (server edition)
JMusicBot Version: 0.2.5

(I tried running on Windows without Docker as well with the same result.)

This is a Discord bug, unrelated to JMusicBot.

Ok, do you happen to know how Rythm works around it then?  Doing something similar (!play music / !disconnect / !play music) with it works fine.

Might be related: https://github.com/DV8FromTheWorld/JDA/issues/1068.


Slight deviation from Cipher.update Javadoc when using AES/GCM/NoPadding

This is a minor issue with an easy workaround, but I thought I'd report it.
The Javadoc for javax.crypto.Cipher.update (https://docs.oracle.com/en/java/javase/11/docs/api/java.base/javax/crypto/Cipher.html#update(byte[])) says it returns

the new buffer with the result, or null if the underlying cipher is a block cipher and the input data is too short to result in a new block.

When using Bouncycastle's implementation of AES/GCM/NoPadding, the update method behaves as if the underlying cipher is a block cipher, returning null from Cipher.update if the input is too short. Isn't AES/GCM a stream cipher, and so it should not be returning null from update?

I probably wouldn't call this a feature, but this has never been taken seriously. In the "good old days" a HSM implementing RC4 might return chunks of 4K as otherwise the overheads of passing the text around in smaller chunks would start to dominate the operation. RC4 is obviously a stream cipher, on the other hand 4K is a block... So it's not actually a bug either (well in the implementation, as you'll see I think the JavaDoc should be fixed).
You should always assume with calls to update that the underlying provider may choose not to return output if it decides it doesn't have enough - but even with a "stream cipher", if a tag is at the end of the stream for authentication purposes and AEAD modes were not considered when Cipher was originally defined, the provider will always need to hold onto some data on decryption as it won't know till doFinal() is called that it's actually hit the tag. Looked at that way, the promise of the JavaDoc is not really one that can actually be met.
In these days of Crypto Agility, it's probably better to read the JavaDoc as a warning. This is not something we'll change but I would stick with your work around even if we did. In some, perhaps not so distant, future, another developer will probably praise you for it.

Thanks for explaining.

@srdo Would you please share the an easy workaround?
I think I'm facing the error. My code works with *bcprov but fails with bcprov-lts.

@onacit This is a bit far back so I might be misremembering, but I believe the workaround is that you should call doFinal. The return value of that should contain the bytes you didn't get from update.


[PAYG-920] remove auth flow from authorizing

Description
Please include a sufficiently detailed description of your changes
[Fixes # (issue)]
Type of change
Please select multiple options if required.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code where necessary
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have updated the relevant documentation

Please just update the PR desc with the relevant details. Once merged, the release pipeline for maven repository will be triggered (and a new GitHub release/tag created with the detailed changelog) 👋


Strict concurrency support

Allow using strict concurrency checking in downstream builds

Hi, thanks for this PR. What is the purpose of this change?

I was trying to activate strict concurrency checking in the Hylo LSP and got issues with non-sendable types in Hylo, and trying to fix this I ended up in Swifty-LLVM.
Maybe this is not the right approach, and perhaps I should not try to introduce Sendable in Hylo.
I am pretty new to swift and did get the recommendation to enable strict concurrency checking in my code. And I like the idea of using strict checking. But on the other hand, I could also enable this without changing dependencies (Hylo), and instead using @preconcurrency import.
So I guess it comes down to the following question: Are you guys interested in introducing strict concurrency checking in Hylo?

I am skeptical that we'll ever want to use Swift's actor-based concurrency in our code base. So I would lean toward a no at this point.

Alright, well in that case I don't see any reason to pursue this PR, I will handle things on my end instead!

@kyouko-taiga I think we should reconsider this PR.  It doesn't add enough complexity to be harmful, provided that the types being marked Sendable actually satisfy the necessary semantic requirements, and if it increases adoptability of Swifty-LLVM by other projects, that accrues to possible improvements and more public testing.  That would be a win, even if Hylo doesn't end up using this capability.

I am reluctant because any feature we decide to support is an additional burden we have to cary as we go. That includes  understanding what semantic requirements are expected, which is completely foreign to me at the moment.
I am perfectly happy to spend the necessary efforts if they can serve an actual library user. If one reads these lines, please do not hesitate to re-open! Until then, I'd rather not add conformances to a protocol I do not currently understand.

I think things with value semantics automatically satisfy the semantic requirements Sendable. I was under the impression that @koliyo might be an "actual library user" if we would just accept the PR, and rejecting the PR just ensures we don't have an actual user who is using the capability.  Unless I've misunderstood that, rejecting the PR makes no sense to me, but I'm not going to fight for this.

This also might add a valuable compile-time defense against inadvertent reference semantics.


Error that deletes permissions!

Hey Guys! My server was running fine, but when i tryed to change permissions of TPA and i run my server, it appears this error and deletes (Wipes, reload back) my permissions file.
I don't know what it is but i let you see the error!
Thanks!
System.TypeInitializationException: An exception was thrown by the type initiali
zer for Mono.CSharp.CSharpCodeCompiler ---> System.IO.FileNotFoundException: Win
dows mono path not found: C:\Users\luis\mono\mono\mini\mono.exe
at Mono.CSharp.CSharpCodeCompiler..cctor () [0x00000] in :0
--- End of inner exception stack trace ---
at Microsoft.CSharp.CSharpCodeProvider.CreateCompiler () [0x00000] in :0
at System.Xml.Serialization.XmlSerializer.GenerateSerializers (System.Xml.Seri
alization.GenerationBatch batch, System.CodeDom.Compiler.CompilerParameters cp)
[0x00000] in :0
at System.Xml.Serialization.XmlSerializer.RunSerializerGeneration (System.Obje
ct obj) [0x00000] in :0

Pls help!

HEY GUYS, I FUGURED IT OUT!!!
 NOT COMMAND.
ROCKET AND TPA CHANGED THAT WAS THE PROBLEM, I'LL TRY TO POST A TUTORIAL ON YOUTUBE!
Btw, Thanks!
:D

This is not an error and does not cause the issue you mention

Yeah, I already figured it out! http://pastebin.com/y4YQBj2E
Bit thanks anyway!

But*

In YouTube tutorials theyre wrong! I was following them and splashed to error (All of them)  Check my pastebin for more! :)

Wow you very nice...

@luiscorreia06, yup, don't mind him, he likes to keep his "issues" count as little as possible

@Daniil1288
Firstly this issue is not a rocket bug tho this is the wrong spot to get help. Additionally OP seems to have fixed the issue.

Did you see my pther comment? I already fixed him, http://pastebin.com/y4YQBj2E
Look there, i'll post a video on YouTube to other people can see how to do it now.

@fr34kyn01535, well, he seemed to be pissed (at least to me) because you closed his issue, and I wanted to calm him down a bit :) don't like seeing random people sad