ES6 at Last

This PR contains all of the actual code changes to make ES6 work. In order to make this change actually reviewable, the es6-staging branch has all of the boilerplate changes that affect every Sandcastle demo and requirejs module. That leaves only ~115 files left for review, many of which are trivial changes or renames.
Here's a high level summary of all the areas that changed:
What does ES6 modules mean for internal Cesium development?
At a high level:
requirejs is gone, define is gone. You now import code via the import directive. i.e.
import Cartesian3 from './Cartesian3.js';

Instead of returning your object at the end of the file, you use export. Cesium uses default exports for it's internal modules i.e.
export default Cartesian3;

use strict is gone, modules are always strict.
While we use ES6 modules, Cesium still forbids the use of ES6 features, such as "new Promise", async/await/etc..
Other good stuff: Obviously this means way less boilerplate code, but how much?  We've cut over ~25k lines of code for our code base!  No more giant define blocks at the top of the file, no more wasting 20 minutes because your variables were out of order either!  The size of Cesium's npm and release packages have also dropped by ~9MB, and I think we can get them even smaller.
eslint
There are a handful of new .eslintrc.json files, mostly to identify the files that are still AMD modules (Sandcastle/Workers). These are needed because you can't change the parser type with a comment directive (since the parser is the thing reading the file). We can finally detect unusued modules!  So those have all been cleaned up as well.
requirejs -> rollup & clean-css
requirejs, almond, and karma-requirejs have all been removed.  We now use rollup for building and minifying (via uglify) JS code and clean-css for css.  These changes are fairly straight-forward and just involve calling rollup instead of requirejs in the build process.
Overall build time is significantly faster. CI is ~11 minutes compared to ~17 in master.  Running makeZipFile on my machine takes 69 seconds compared to 112 seconds in master. There's probably plenty of room for additional optimization here too.
We wrote an published a small npm module, rollup-plugin-strip-pragma, for stripping the requirejs pragmas we use out of the release builds. This is maintained in the Tools/rollup-plugin-strip-pragma directory.
As for what we produce. The built version of Cesium is now a UMD module. So it should work anywhere that hasn't made the jump to ES6 yet.  For users that were already using the "legacy" combined/minified approach, nothing changes.
One awesome thing about roll-up is that it compiles all of the workers at once and automatically detects shared codes and generates separate bundles under the hood.  This means the size of our worker modules shrink dramatically and Cesium itself will load them much faster. The total minified/gzipped size of all workers in master is 2.6 MB compared to 225 KB in this branch! This should be most noticeable on demos like Geometry & Appearances which load lots of workers for the various geometry typs.
roll-up is also used to build Cesium Viewer, which is now an ES6 app.
We use clean-css via gulp and it is also a straightforward change from requirejs that requires no special mention.
Workers
While the spec allows for ES6 Web Workers, no browser actually supports them yet. That means we needed a way to get our workers into non-ES6 form. Thankfully, roll-up can generate AMD modules, which means we now have a build step to compile our Worker source code back into AMD and use the existing TaskProcessor to load and execute them. This build step is part of the standard build task and is called createWorkers. During development, these "built" workers are un-optimized so you can still debug them and read the code.
Since there is a build step, that means if you are changing code that affects a worker, you need to re-run build, or you can use the build-watch task to do it automatically.
The ES6 versions of Worker code has moved into Source/WorkersES6 and we build the workers into their "old home" of Source/Workers. cesiumWorkerBootstrapper and transferTypedArrayTest which were already non-AMD ES5 scripts remain living in the Workers directory.
Surprisingly little was changed about TaskProcessor or the worker system in general, especially considering that I thought this would be one of the major hurdles.
ThirdParty
A lot of our ThirdParty either already had a hand-written wrapper for AMD (which I updated to ES6) or had UMD which created problems when importing the same code in both Node and the browser. I basically had to update the wrapper of every third-party library to fix these problems.  In some cases I updated the library version itself (Autolinker, topojson). Nothing to be too concerned about, but future clean-up would be using npm versions of these libraries and auto-generating the wrappers as needed so we don't hand-edit things.
Sandcastle
Sandcastle is eternal and manages to live another day in it's ancient requirejs/dojo 1.x form.  Sandcastle now automatically uses the ES6 version of Cesium if it is available and fallsback to the ES5 unminified version if it is now.  The built version of Sandcastle always uses CesiumUnminified, just like master.  This means Sandcastle still works in IE11 if you run the combine step first (or use the relase zip)

Removed Cesium usage from Sandcastle proper, since it wasn't really needed
Generate a VERSION propertyin the gallery index since Cesium is no longer being included.
Remove requirejs from Sandcastle bucket
Update bucket to use the built version of Cesium if it is available by fallbackto the ES6 version during development.
Standalone.html was also updated

There's a bit of room for further clean-up here, but I think this gets us into master.  I did not rename bucket-requirejs.html because I'm pretty sure it would break previously shared demos.  We can put in some backwards compatible code later on if we want. (But I'd rather just see a full Sandcastle rewrite).
Specs
Specs are now all ES6, except for TestWorkers, which remain standard JS worker modules. This means you can no longer run the unbuilt unit tests in IE11. No changes for Chrome and Firefox.
Since the specs use ES6 modules and built Cesium is an ES5 UMD, I added a build-specs build step which generates a combined ES5 version of the specs which rely on Cesium as a global variable. We then inject these files into jasmine instead of the standard specs and everything works exactly as it did before.  SpecRunner.html has been updated to inject the correct version of the script depending on the build/release query parameters.
The Specs must always use Cesium by importing Source/Cesium.js, this is so we can replace it with the built Cesium as describe above.
There's a bunch of room for clean-up here, such as unifying our two copies of jasmine into a single helper file, but I didn't want to start doing that clean-up as part of this already overly big PR.  The important thing is that we can still test the built version and still test on IE/Edge as needed.
I also found and fixed two bugs that were causing failing unit tests, one in BingMapsImageryProviderSpec.js (which was overwriting createImage andnot setting it back) and ShadowVolumeAppearance.js (which had a module level caching bug). I think these may have been the cause of random CI failures in master as well, but only time will tell.
For coverage, we had to switch to karma-coverage-istanbul-instrumenter for native ES6 support, but that's it.
Finally, I updated appveryor to build Cesium and run the built tests under IE.  We still don't fail the build for IE, but we should probably fix that if we want to keep it going.
NodeJS
When NODE_ENV is production, we now require in the minified CesiumJS directly, which works great because it's now a UMD module.  Otherwise, we use the excellant esmpackage to load individual modules, it was a fairly straightforward swap from our old requirejs usage.  We could probably drop esm too if we don't care about debugging or if we provie source maps at some point.
What's next?
I tried to change as little formatting as possible to make a code review possible, however we now have uneeded indentation throughout our code. We should look into doing a code-wide autoformat, probably using eslint rules or one of the standard tools that work with it (this would also make it easy to maintain consistent formatting going forward). CC #5369
We should now be able to provide source maps for our users to make debugging with the minified JS code possible (not to mention make our lives easier). I'll write up an issue
Should update https://cesium.com/docs/tutorials/cesium-and-webpack/ or perhaps it is so trivial it's no longer needed.
Allow ES6/7 features: We should be able to keep our minimal build step policy and still use newer features like async/await/Promise/etc.. This is because Chrome/Firefox/Safari all support these features natively.  We would then only run the final output through Babel as part of the combine/minifyRelease processes. This would make our code a lot nicer with almost no overhead during day to day development (but more research is needed).
I need to review our developer documentation and make any minor updates so it's not wrong.  Ultimately, I realized while doing this that we need better infrastructure documentation over all.
And of course, lots of clean-up possible, I mentioned some of it above but I'll write separate issues as I go through my notes.
I'm sure I left out some details and I'm sure there were some next steps that I meant to write down and have since forgot, but I think the above should give everyone a fighting chance to review this PR.
I'm going to continue self-reviewing everything but this is ready for final review from whomever is wiling to take the time to look.
Fixes #8122

Thanks for the pull request @mramato!

:heavy_check_mark: Signed CLA found.
:grey_question: Changes to third party files were made.

Looks like a file in one of our ThirdParty folders (ThirdParty/, Source/ThirdParty/) has been added or modified. Please verify that it has a section in LICENSE.md and that its license information is up to date with this new version.

:grey_question: Unit tests were not updated.

Make sure you've updated tests to reflect your changes, added tests for any new code, and ran the code coverage tool.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.
[ ] Works (or fails gracefully) in IE11.

For anyone that doesn't clone our repository but wants to try this out:
pre-release zip: http://cesium-dev.s3-website-us-east-1.amazonaws.com/cesium/es6-at-last/Cesium-1.61.0-es6-at-last32318.zip
npm package: http://cesium-dev.s3-website-us-east-1.amazonaws.com/cesium/es6-at-last/cesium-1.61.0-es6-at-last32318.tgz
Source/Cesium.js is the ES6 entry point you'll want to import

@mramato Use js-beautify in the gulp task 'convertToModules' to clean up the indent issues.

or, say, Prettier :)

Leaving the indenting for now is intentional.  Prettier is one of the tools we want to look at. (will also add js-beutify to the list)  But we definitely want to do it as a separate PR with no other changes than formatting, otherwise it makes stuff hard to review, so it won't be part of the initial submit.
We also have some special formatting needs because stuff like 4x4 matrices in our code are formatted for readability and we want to be able to maintain that. A blanket reformatting is going to introduce other messiness as well we'll want to clean up.

Yeah, and I totally agree with doing that later.
FWIW, here's Prettier's docs on ignoring files and chunks of code:
https://prettier.io/docs/en/ignore.html

I noticed classes are being exported with export default ExportedName. Using export const ExportedName = ... instead would allow for IDE features like VSCode's intelliSense and WebStorm to do autocompletion while typing.. A quick search came up with this article with other reasons to stop using export default: https://humanwhocodes.com/blog/2019/01/stop-using-default-exports-javascript-module/

I have some thoughts, so I'll try to capture them as I read through the notes:

First and foremost: this is awesome, it must have been a ton of work but I'm glad you all did it!
@puckey covered this but I don't see a lot of export default anymore.
Have you considered distributing a built esm.js artifact?  As an ES6 consumer of Cesium, I can either consume the UMD artifact and lose tree-shaking (I think?) or consume the original ES6 source and have to spend build time minifying it myself.  I get around this today by building a webpack DLL once, but again that means I lose tree-shaking.  If I could consume minified ESM then tree-shaking would still work but I wouldn't have to minify myself on every build.
I was surprised to see you didn't take this opportunity to get rid of ThirdParty completely. Just curious, what's the advantage of including these libraries in your distro?
Have you tried enabling sourcemaps in rollup?  Last time I had to set this up it was just a matter of toggling a single setting in the config file.  I'll keep an eye out for that issue you mentioned.

I'm about to go on holiday but if you're still working on this when I get back, I'll try consuming this version and report on my experience.

First off, thanks for the feedback @puckey and @thw0rted, nothing here is set in stone and ultimately this is an incremental change designed to get us to ES6 and put us in good shape for further enhanmcenets down the road. The reason we're waiting until after Oct 1st to merge is so that it has a whole month to stew and improve before the Nov 1st release, so keep your thoughts coming throughout the month.
I'll try and answer your questions to the best of my ability, but I'm by no means an expert of ES6 so we're completely willing to change things up if there is good technical/objective reasoning behind it. If you any other links to help educate me on current best practices they would be greatly appreciated.

I don't see a lot of export default anymore.

It was easier to write a script that used default exports, but now that everything is working (and if there is a good reason to change things) then I'm not against switching.  However, my current thinking is that export default being used internally by Cesium's modules is an implementation detail. Source/Cesium.js, which I considered the ES6 entry point, uses named exports for all of Cesium's API.  So what would the benefit be to switching the individual files to provide? Do we think users are going to want to include individual ES files directly instead?  Since it's probably only an hour or two's worth of work, we probably don't need to over think it, I just want to develop a better understanding first.  I'll check out @puckey's link and do a little research, but if anyone has any other material on this, that would be great.

Have you considered distributing a built esm.js artifact?

I'm not sure what you mean here.  Are you talking about a ES6 module where everything is combined and minified?  I tried that but treeshaking didn't work with it, perhaps I'm missing something. If there is a way to combine/minfify into a single ES6 JS file that still allowed for treeshaking, then I would consider not shipping the Source directory at all.

I was surprised to see you didn't take this opportunity to get rid of ThirdParty completely. Just curious, what's the advantage of including these libraries in your distro?

One thing at a time. It would have added even more work to start using ThirdParty libraries directly from npm and there would have zero impact on our users. This is definitely a change I want to make, but probably as 1 PR per library since some of them would be non-trivial updates.

Have you tried enabling sourcemaps in rollup? Last time I had to set this up it was just a matter of toggling a single setting in the config file. I'll keep an eye out for that issue you mentioned.

I have every intention of getting sourcemaps support in, and I suspect it will be trivial.  I just haven't had a chance to look into it yet and educate myself on them in general. Will probably happen in a separate PR (and in time for the Nov 1st release)

I'm about to go on holiday

Hope it's somewhere fun. Even if we do merge this PR before you get back to it, please don't hesitate to provide additional feedback and thoughts.
Thanks again!

@mramato The export default issue is concerning IDE's being able to pick up property / method names from re-exported objects.
Try this in VSCode:
foo.js
export const foo = {
  bar: 'bar',
  baz: 'baz',
};

masterIndex.js
export { foo } from './foo.js';

myProject.js
import {  foo } from './index.js';

Then at the bottom of 'myProject.js' type foo..  Intellisense should give you bar and baz.
Now go back and change export { foo } from './foo.js';  to export {default as foo} from './foo.js.
Intellisense will not be able to pick up bar and baz since you're passing an object containing foo, not the original foo module.

I will say it's not just an IDE issue, but it's more apparent there since there isn't really any performance difference or scoping issues (that I've seen).

1.) The link about export default has some good points, but I don't think it's black and white.  I personally like named exports because I don't always structure my code as one-file-per-thing.  It's especially relevant in TypeScript because I might export one class from the file, but also a few related constants and maybe some interface definitions for options-objects, etc.  If I'm in the habit of never using export default, I just assume I need to do named imports and never wind up with import Foo, {FooConstructorOptions} from "./foo".  I do it for consistency, but it's not a hard rule.  Also, per TJ's comments about IDEs, with named exports I can just start typing the name of something that's in my workspace but not imported yet, and the IDE will notice and make the import for me, which is nice.
2.) As for the ESM rollup output, I'm new to writing ES6 libraries too so take what I'm asking with a grain of salt.  At the very least, I'm sure that what's in this branch now will work better than what I have today.  I'll try to chip in here as I learn more about best practices for this.
3.) I asked about the ThirdParty thing because I encountered a problem a few months back that wound up being a known issue in one of your dependencies (zip.js) that was resolved years prior (see #8092).  I figure if you use NPM to manage dependencies instead of doing it manually, it's easier to keep current, and thus this sort of thing is less likely to happen.

@puckey I just checked and this implementation will work fine in VSCode Intellisense.  I think they must have updated the logic recently.
@thw0rted I removed those comments due to checking ^^^.

Another note, NodeJS requires either .mjs extension or package.json with type:'module' .
I'm trying to test a few things using the --experimental-modules flag and I ran across this.

Matt said in his exposition that they're using esm to load modules in Node.  I haven't had to yet but it was my impression that you can load .esm.js or just .js that happens to be a module, using esm.  I don't currently consume Cesium from Node but might in the future, so I'll follow this part with interest.

@thw0rted I tried esm but there seems to be some issue with Node v12.x.  @mramato What version of node did you test against?

It's entirely possible it is my own code that is causing the issue, I did not bother isolating it, just converted everything over to .mjs.

Another note, NodeJS requires either .mjs extension or package.json with type:'module' .

Right now nothing should change for Node from an external perspective. You should just be able to require it in as usual.  I tested this with both 10, 12, and 12 with --experimental-modules.  I assume node has support for "legacy" commonjs modules, and that's what we're still providing. Once Node finally brings modules out of experimental, I don't think it would be hard to support them, but probably a future PR.
That being said, I did just find an issue with NODE_ENV=production that's on our end, but will hopefully be an easy fix.

@mramato Sorry, I meant the individual modules, requiring the cjs final bundle works fine.  No problem either way, but maybe consider type:module as a fairly pain-free way to facilitate.
BTW,  ko = module.exports;  in knockout-3.5.0.js causes issues, not that this really matters in Node but something I saw while doing tests.

BTW,  ko = module.exports; in knockout-3.5.0.js causes issues, not that this really matters in Node but something I saw while doing tests.

Yes, that's what I'm fixing. It actual does matter because it creates problems when we NODE_ENV=production and we use the optimized version of Cesium for performance.

@mramato Two other things I had to change to be able to pull it up in Node without modifications, checking if ko is defined in knockout-es5.js and knockout is defined in SvgPathBindingHandler.js.

@TJKoury I just pushed a fix. I had to tweak the manual shim around protobuf and knockout to avoid polluting the global namespace and module.exports in Node.  It's these types of problems that make using the third party libraries straight from npm a problem.

@mramato works great.  Any objection to putting "type":"module" in the package.json?

No objections, just need to think through and understand the implications and test it all our (and perhaps generate a separate index.mjs).

Got this working in Terria without any major difficulties. Good work @mramato!
Terria is a mix of CommonJS and ES6 modules at the moment, so I did have to change all the requires in the CommonJS modules from require('whatever/cesium/module') to require('whatever/cesium/module').default. I guess maybe esm papers over that difference in a proper node context?
Speaking of which, if you haven't already, it might be handy to publish this branch to npm under a beta tag (i.e. set your version in package.json to 1.62.0-beta-1 or whatever and run npm publish --tag beta). That way it can be tested with a proper install from npm.

Recommend in the built shader files using template literals and removing the \n artifacts:
//This file is automatically rebuilt by the Cesium build process.
export default  `
#ifdef QUANTIZATION_BITS12
attribute vec4 compressed0;
attribute float compressed1;
...

vs.
//This file is automatically rebuilt by the Cesium build process.
export default "#ifdef QUANTIZATION_BITS12\n\
attribute vec4 compressed0;\n\
attribute float compressed1;\n\

ecommend in the built shader files using template literals and removing the \n artifacts:

Outside the scope of this PR and won't work on IE11.  Remember, we don't transpile down code other than import/export (at least not yet).

That way it can be tested with a proper install from npm.

I was thinking of doing this right after we merge up so we basically have the next release + this change with nothing else.  You can also just stick http://cesium-dev.s3-website-us-east-1.amazonaws.com/cesium/es6-at-last/cesium-1.61.0-es6-at-last32321.tgz in package.json for the same thing (but obviously doesn't come from npm servers).

Terria is a mix of CommonJS and ES6 modules at the moment, so I did have to change all the requires in the CommonJS modules from require('whatever/cesium/module') to require('whatever/cesium/module').default. I guess maybe esm papers over that difference in a proper node context?

@kring This sounds more like a quirk of whatever loader you are using more than anything else.  What system are you using?  I wonder if switching to named modules would have any affect or if it would simple require require('whatever/cesium/module').Cartesian3 instead (which would actually be worse in my opinion).

@mramato , @kring : that's pretty standard behavior any time you're mixing import behavior between different module formats (CommonJS, AMD, ESM).  Or at least, it's the way Webpack (and presumably other loaders) implement it.

Now that 1.61 is out, I would like to get this merged up to master ASAP.  So if anyone has any critical feedback or strong opinions about changes that affect the end user, please let us know sooner rather than later.  Once this is in master we will absolutely continue to improve it, I'm just trying to avoid any more huge sweeping changes.
@OmarShehata, thanks for volunteering to do a formal review here. Can that happen soon?  I really wanted to this in master like today, but by the end of the week is probably more realistic.

I am using this branch in my celestrak.com build; no issues to report.

Awesome, thanks @TJKoury!

While doing some self review, I realized that Cesium.js has some subtle difference (which don't matter in practice) from master.

Shaders are put at the top level instead of a sub-object, but they were always private to begin with.  So instead of Cesium._shaders.AcesTonemappingStage it's not Cesium._shadersAcesTonemappingStage I think this is fine since they are still private and it makes the code similar.
Third party libraries that had special characters in names, such as Cesium['knockout-3.5.0'] are now exported as Cesium.knockout_3_5_0  This is because ES6 restricts export names to valid identifies.

None of these issues are part of the official API, just something I noticed and wanted to bring up.
Currently the CombinedUnminified version in this branch is bigger than master and I have no idea why (it's significantly less lines of code)  Trying to figure out the difference.

I'm planning on taking a look and doing some testing tomorrow.

@mramato I ran into the ._shaders issue as well; in my working copy I had put all those in a _shaders object that was exported, but since nothing in Cesium uses those in that nomenclature as you mentioned.
Happy to continue testing this branch in production.  Thanks again for cranking this out so quick.

You mentioned writing an issue to generate source maps to get better stack traces for minified Cesium. Did you write that up? If not please do, that'll help a lot when debugging people's issues.

#8245

Should we add "This file is generated" to the Workers/* just like we do with shaders? I can imagine a developer accidentally modifying that file instead of WorkersES6.

Not sure how helpful it will be, but it was easy enough to add so I did it.

So ESM is a legit npm dependency of Cesium that gets bundled and ships with the library? So this opens up a path to getting rid of ThirdParty/ and having those all as npm modules? If so, can you write up an issue for that?

No, ESM is just how we load the unbuilt version of Cesium into Node.JS which is makes node-based development easier to debug.  It's not even required if we just always wanted to use the combined version there. It is not bundled or shipped with anything.  This is no different than how we used to depend on requirejs on the node side.
Switching to npm dependencies for Cesium's Source/ThirdParty is not trivial or something we will probably do anytime soon.  The fact that we need to support both Node and the Browser as well as shim some of the libraries makes it tough.  There's also stuff in Source/ThirdParty that isn't even on npm.

I am leaning towards not using export default, just because of this explicit naming philosophy, that you know for sure no one can do import blah as 'Cartesian3' and confusing others on the team, but I don't know if this has any adverse consequences.

Nothing stops people from doing this even with named exports, the syntax is just slightly different.  In fact, if we did this then everything we import CesiumMath would be a special case because it would be Math as CesiumMath.  If someone can provide a good technical reason for avoid default exports, I'm all ears, but so far it seems like an opinion thing and it's just not worth the time to do the change.  I'm not even against it, it is just another sweeping change that doesn't seem to have rhyme or reason (or time investment) to make.

I haven't yet tried how much easier this makes running Cesium in a new webpack/parcel project, but I want to try that and report here.

Any changes to https://cesium.com/docs/tutorials/cesium-and-webpack/ and a PR into https://github.com/AnalyticalGraphicsInc/cesium-webpack-example would be greatly appreciated.

@mramato @OmarShehata Not trying to be pushy, but as I mentioned above adding "type":"module" allows all of the converted modules in the subfolder to be used natively in node with the --experimental-modules flag.
No need for esm, no side effects.

@TJKoury it's on my list, no worries.

I think this is all :+1: from me. @mramato if you have time to look into why standalone mode isn't working here that'd be great, but I'm also willing to merge this and have a priority-next-release issue to fix that. That way it can get more testing in master sooner than later.

@OmarShehata I'm debugging the standalone thing now. It only affects built sandcastle, but could be the sign of a larger issue when trying to auto-detect CESIUM_BASE_URL. (also have some other changes from your review to push).  I'll bump when ready

@TJKoury I did an initial attempt of adding `"type": "module" to package.json, but it didn't work. If you can write up an issue (or open a PR) with more context we'll happily take a look at it in time for Nov 1.  We just need any solution that supports Node 10 and 12 both ES6 and commonjs.

@OmarShehata I believe I addressed all of your issues or otherwise replied to your feedback.  Thanks for the review and catching a few things I missed.
This should be ready.

@mramato make sure to use node --experimental-modules to load ES6 modules.

If you still are having issues I'll open an issue.

If you still are having issues I'll open an issue.

Yes, please do.  I haven't done anything with ES6 modules in Node yet so I'm sure it's something simple I'm missing.

:crossed_fingers:

There's now a blog with more details about this transition up on https://cesium.com/blog/2019/10/31/cesiumjs-es6/


need a way to run tests on dependencies

Currently cargo test only runs tests for the top level package. I need some way to run tests for some of the dependencies. In servo these would be at least the path dependencies (which we have to work around lack of multiple [lib] sections). But it would also be nice to run them for arbitrary dependencies.

@alexcrichton What do you think about supporting running tests recursively, that is, for the package specified and all its dependencies? Say, cargo test --recursive? Should I open a separate issue if that sounds sensible?

Hm, perhaps we could start of with accepting multiple -p flags? It's hard to say where --recursive should stop as you probably don't want to run tests on your entire dependency graph.

I do!

My two cents.
cargo test --recursive

Which equals to:
cargo test --recursive --depth=1

And optionally one of these for unlimited depth test:
cargo test --recursive --depth=-1
cargo test --recursive --depth=0
cargo test --recursive --depth=full
cargo test --recursive --depth=unlimited


how we use sdp for dynamic layout

when we are setting dynamic image view on linear layout we need to give some top difference, how we use sdp

You can follow the example.

when we are setting dynamic image view on linear layout we need to give some top difference, how we use sdp

w

You can follow the example.

we need to add image dynamically by java code


TextInput lineHeight handling is incorrect

Description
Due to inconsistencies of NSLayoutManager configuration across RN, <Text /> and <TextInput /> components do handle line height in a slightly different way. More specifically, the resulting line heights of a <Text /> component seem to be correct, while <TextInput />s one is off by some fraction.
The offending places seem to be https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Text/TextInput/Multiline/RCTUITextView.mm#L52 and
https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Text/TextInput/RCTBaseTextInputShadowView.mm#L274 – notice both are missing setting usesFontLeading to NO (contrary, it gets set in other places, e.g. https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Text/Text/RCTTextShadowView.mm#L223).
The reproduction is really trivial – please see the snack attached. Notice how the two columns of texts are perfectly aligned on the web and is not really aligned on iOS, although both elements share the same style attribute.
The same issue happens on Android, but it is probably caused by something different, as the amount by which the texts are off is smaller.
Steps to reproduce

Set custom line height to a <TextInput /> component
Measure the actual line height (using a screenshot)
Notice the difference

React Native Version
0.73.6
Affected Platforms
Runtime - iOS
Output of npx react-native info
System:
  OS: macOS 14.3
  CPU: (12) x64 Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
  Memory: 47.86 MB / 32.00 GB
  Shell:
    version: 3.2.57
    path: /bin/bash
Binaries:
  Node:
    version: 20.11.1
    path: ~/.nvm/versions/node/v20.11.1/bin/node
  Yarn:
    version: 4.1.1
    path: /usr/local/bin/yarn
  npm:
    version: 10.2.4
    path: ~/.nvm/versions/node/v20.11.1/bin/npm
  Watchman:
    version: 2<IP_ADDRESS>
    path: /usr/local/bin/watchman
Managers:
  CocoaPods: Not Found
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.5
      - iOS 17.5
      - macOS 14.5
      - tvOS 17.5
      - visionOS 1.2
      - watchOS 10.5
  Android SDK: Not Found
IDEs:
  Android Studio: 2023.2 AI-232.10300.40.2321.11567975
  Xcode:
    version: 15.4/15F31d
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 13.0.1
    path: /usr/bin/javac
  Ruby:
    version: 3.3.0
    path: /Users/anton/.rvm/rubies/ruby-3.3.0/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.73.6
    wanted: 0.73.6
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: true
  newArchEnabled: true

Stacktrace or Logs
N/A

Reproducer
https://snack.expo.dev/YI-C2DqB4yUmxW9Eb0cWW
Screenshots and Videos

Basically a duplicate of https://github.com/facebook/react-native/issues/39145

Basically a duplicate of #39145

Oh yeah, very much looks like it is. I can prepare a PR disabling the font leading everywhere – we currently have a patch applied to our app and it seems to resolve the issue.

Closing this to keep the conversation focused on the same place. Let's move over to #39145 ok? 👍


q_weight= 0.1

Set q_weight= 0.1  ，The purpose is the same order of magnitude as the voltage deviation value？ Can it be understood that the weight of voltage deviation and power loss is 0.5 respectively

(1)voltage_weight=1.0，q_weight= 0.1，If it is defined by weight, why does it not add up to 1.
(2)The reinforcement learning method is multi-objective, while the traditional method is single objective. Can their results be compared? Since want to set the traditional method as multi-objective, it involves the weight of voltage deviation and line loss. Thank you very much for your answer.

(1)voltage_weight=1.0，q_weight= 0.1，If it is defined by weight, why does it not add up to 1. (2)The reinforcement learning method is multi-objective, while the traditional method is single objective. Can their results be compared? Since want to set the traditional method as multi-objective, it involves the weight of voltage deviation and line loss. Thank you very much for your answer.

(1) First, from the optimization view, the q_weight just plays the role of adjusting the balance of importance between two objectives.
(2) Second, we would argue that the objective function is part of the traditional method. Besides, in OPF actually it considers more information than RL, e.g., the network topology. While droop control does not consider power loss, the relationship between voltage and q is manually tuned. Therefore, in our expeiments we think the comparison is fair.


keep gost specific variable under macro

In tls_process_cert_verify():
'gost_data' variable is used only when gost is enabled during the compilation. Keeping this variable under  ifndef OPENSSL_NO_GOST

+1

+1

5ca17d8 pushed; thanks!


179269520 document highlight

Since comments can only be made on whole documents for the moment, we will highlight the entire currently viewed document, and the corresponding chat comment thread.

PR fixes snuck in a fix for problem subtabs font size to be more on spec.


Multiple inheritance with Dagger components solution

Just create bridging module :)

This PR was released with 0.22.1


version `GLIBC_2.32' not found on Debian bullseye

Describe the bug
I am unsure if this tool can be used on desktops, but I tried to install the extension on Debian bullseye, and when running an actions cache command, the command fails with the following logs:
$ gh actions-cache list
/home/jo/.local/share/gh/extensions/gh-actions-cache/gh-actions-cache: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/jo/.local/share/gh/extensions/gh-actions-cache/gh-actions-cache)
/home/jo/.local/share/gh/extensions/gh-actions-cache/gh-actions-cache: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/jo/.local/share/gh/extensions/gh-actions-cache/gh-actions-cache)

And it seems Debian bullseye have a previous version of glibc:
$ sudo apt-cache policy libc6 libc-bin
libc6:
  Installed: 2.31-13+deb11u5
  Candidate: 2.31-13+deb11u5
  Version table:
 *** 2.31-13+deb11u5 500
        500 http://deb.debian.org/debian bullseye/main amd64 Packages
        500 http://deb.debian.org/debian bullseye-updates/main amd64 Packages
        100 /var/lib/dpkg/status
libc-bin:
  Installed: 2.31-13+deb11u5
  Candidate: 2.31-13+deb11u5
  Version table:
 *** 2.31-13+deb11u5 500
        500 http://deb.debian.org/debian bullseye/main amd64 Packages
        500 http://deb.debian.org/debian bullseye-updates/main amd64 Packages
        100 /var/lib/dpkg/status

Steps to reproduce the behavior

Install the extension on Debian bullseye
Run gh actions-cache list
See error

Expected vs actual behavior
I would expect the extension to work on Debian bullseye.

Thank you @jooola for bringing this up. As per our preliminary investigation, we suspect the issue is happening as the package was compiled using ubuntu-22 which uses GLIBC_2.32 whereas Debian is still on GLIBC_2.31.
Will you be able to confirm if 1.0.2 for the extension is working fine on Debian bullseye?

After uninstalling and pinning the version to 1.0.1, the extension is indeed working.

Thanks for the confirmation @jooola we will need some more time to finalize changes.

The problem here appears to be that the linux/amd64 version is built with CGO_ENABLED=1, whereas for linux/arm64 (at least) it is not.
$ cd $(mktemp -d)
$ curl -sLO https://github.com/actions/gh-actions-cache/releases/download/v1.0.3/linux-arm64
$ curl -sLO https://github.com/actions/gh-actions-cache/releases/download/v1.0.3/linux-amd64
$ go version -m ./linux-amd64 | grep CGO_ENABLED
        build   CGO_ENABLED=1
$ go version -m ./linux-arm64 | grep CGO_ENABLED
        build   CGO_ENABLED=0

Is there a reason the linux/amd64 version is not built with CGO_ENABLED=0?

Something similar also seems to be happening un ubuntu20.04 when using larger dedicated runners:
Current runner version: '2.303.0'
Runner name: 'ubuntu-[2](https://github.com/google/xls/actions/runs/4634539949/jobs/8200889388#step:1:2)0.04-64core_1eb[3](https://github.com/google/xls/actions/runs/4634539949/jobs/8200889388#step:1:3)2a3c1924'
Runner group name: 'large-runner'
Machine name: 'runner'

See the error message below:
/home/runner/.local/share/gh/extensions/gh-actions-cache/gh-actions-cache: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/runner/.local/share/gh/extensions/gh-actions-cache/gh-actions-cache)
/home/runner/.local/share/gh/extensions/gh-actions-cache/gh-actions-cache: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/runner/.local/share/gh/extensions/gh-actions-cache/gh-actions-cache)

Given that a fix for this has been committed into main, is there an update to be shared on when the next version, including the fix, might be released?


Create standard directory structure

Standardise the directory structure for the services

Closed as per https://jira.verbis.dkfz.de/browse/GDEV-63


NULL Items

What is your Quests version / build number (do not say "latest")?
3.8.8-b75
Describe the problem and how to replicate it. Any console errors to post using Pastebin.com?
Make a quest that has a deliver to NPC as a stage
If applicable, can you provide an example quest from quests.yml _using Pastebin.com
No
It will always print NULL as an item when you create a delivery quest and go to set items

I'm unable to replicate this. Could be an issue with your locale files (within the /lang folder) or a particular item isn't supported. Either provide an example quest or give specific instructions on how to replicate the issue (what item you used, any special properties, etc.).

My Server version is 1.8.8 and I am running TacoSpigot, I completely wiped all the files, and tried it, same issue.

@Larskei-dev Thanks, but again, either provide an example quest or give specific instructions on how to replicate the issue (what item you used, any special properties, etc.).


Possibility to change zooming speed?

Is there possibility to change zooming speed?

Hi @DamianBusz,
Yes, depending on which animation library you use to wrap react-simple-maps, you can specify the speed of the zoom yourself. For some of the examples I used react-motion, which is spring-based, so it's a bit tricky, since you can only specify the spring behaviour (stiffness and damping), but you could use something like react-move, which would allow you to specify the duration of the animation.

Hi @zimrick ,
Thank you for your fast answer! I will try and let you know.


Version 3.0 - Now we're in Class!

Greetings all!
The version 3 class based layout is done and it actually works. I've stripped out some funcitonality and we're still underoing major testing, but as of today (15-8-2024) we're operational!
I've broken the functionality up into several files for easier review. Each file is composed of one class, please feel free to work on anything you'd like here, but please test first!

After several days of slaving away at this, I am finally done with Version 3. This was my goal from the start as it's much easier to extend the application once it's in this modular layout.
I have fixed the vast majority of existing issues, I'm actually so relieved this is done.


Twig Template Loading Error - v2.0

Using the latest version of Craft 3 and Craft Cheat Sheet.
Just downloaded it and attempting to visit mysite.test/cheatsheet results in the following error:
Twig Template Loading Error – craft\web\twig\TemplateLoaderException
Unable to find the template “_includes/fieldMacros.twig” in "cheatsheet" at line 2.

It's quite possible it's some misconfiguration or weird setup on my site so please don't hesitate to ask for log files or whatever to make debugging easier...

Hey Jalen. Did you install it via the plugin store? Another method?
Erik Reagan
Co-Founder, Director
Focus Lab, LLC
http://focuslabllc.com

Hey! Via the plugin store.

Same here. I run latest Craft on xampp.

It's quite possible it's some misconfiguration or weird setup on my site so please don't hesitate to ask for log files or whatever to make debugging easier...

That's an interesting statement. Did you install or set things up in a peculiar manner?
If it's okay I may end up hitting you up in Slack in the next day or so to speed up some back and forth just as a heads up. :)

@jalendport @pogorzels Can one (or both) of you share your composer.json and composer.lock files from the root of your project? I'd like to explore the overlaps and see if there may be a conflict with another plugin at play.
Feel free to share them here or email them to<EMAIL_ADDRESS>

@jalendport I just published 2.0.2 which I believe will resolve this. Let me know if that's not the case though. Thanks!

I have v2.0.2 installed, and I get a similar error, but on lines 139-145. The plugin could not load _includes/fieldMacros.twig in /craft/vendor/focuslabllc/craft-cheat-sheet/src/templates/frontEnd/cheatsheet.html.

@DiederikVanHoorebeke We had an error in the version tagging that may have cause the update to not work correctly. Can you try updating the plugin via composer and see if that fixes the problem?

@DiederikVanHoorebeke Apologies. I forgot we hadn't published to Packagist yet. You should be able to use composer now and not receive that message.

I'm afraid it didn't help...
I uninstalled the plugin in the CP and did the following:
$ composer clearcache
Cache directory does not exist (cache-vcs-dir):
Clearing cache (cache-repo-dir): ~/.composer/cache/repo
Clearing cache (cache-files-dir): ~/.composer/cache/files
Clearing cache (cache-dir): ~/.composer/cache
All caches cleared.
$ composer require focuslabllc/craft-cheat-sheet
Using version ^2.0 for focuslabllc/craft-cheat-sheet
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing focuslabllc/craft-cheat-sheet (2.0.2): Downloading (100%)
Writing lock file
Generating optimized autoload files

Then I installed and configured the plugin to get:

I'm getting this error also, on a fresh install of Craft3 and a fresh install of this plugin. I don't use Composer at all; the Craft3 install was from the zip, if that makes any difference. The plugin install was through the admin panel and plugin store.

Thanks guys. Reopening as we investigate further.

You can fix this by changing it to a full path here:
                     {{ view.renderTemplateMacro('cheat-sheet/frontEnd/_includes/fieldMacros.twig', csMacros[fieldClass], [
                            {
                                'sampleTag' : sampleTag ~ '.' ~ field.handle,
                                'field'     : field,
                                'whitespace': whitespace
                            }
                        ])|raw }}

Once a template starts rendering, there’s no guarantee that something else won’t be rendering something, so you can’t count on just changing the template path.
Also in the controller, you could make it a little more robust with some sanity checking/error logging:
    public function actionFieldCheatSheet()
    {
        // Only show the cheat sheet if we're in dev mode
        // Otherwise throw a 404 to the browser
        if (!YII_DEBUG) {
            throw new NotFoundHttpException();
        }

        $plugin = Plugin::getInstance();
        $view = Craft::$app->view;

        // Stash the old template mode, and set it AdminCP template mode
        $oldMode = Craft::$app->view->getTemplateMode();
        try {
            Craft::$app->view->setTemplateMode(View::TEMPLATE_MODE_CP);
        } catch (Exception $e) {
            Craft::error($e->getMessage(), __METHOD__);
        }
        $view->setTemplateMode(View::TEMPLATE_MODE_CP);
        $view->registerAssetBundle(CheatSheetAsset::class);

        $params = $plugin->fields->getTemplateData();
        $templatePath = 'frontEnd/cheatsheet';

        // Render the template with our vars passed in
        try {
            $htmlText = Craft::$app->view->renderTemplate('cheat-sheet/' . $templatePath, $params);
        } catch (\Exception $e) {
            $htmlText = Craft::t(
                'cheat-sheet',
                'Error rendering `{template}` -> {error}',
                ['template' => $templatePath, 'error' => $e->getMessage()]
            );
            Craft::error($htmlText, __METHOD__);
        }
        $view->setTemplateMode($oldMode);

        return $htmlText;
    }

Update: this error was encountered when a few other plugins were present in a Craft install. @khalwat came in clutch (above) with a simple fix. The patch has been released with a fix to this in 2.0.3.


issue with multiple-cursors

I have this issue even if I disable all my packages except multiple-cursors and rustic.

Any ideas?
GNU Emacs 28.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.23, cairo version 1.16.0)
rustic                         20201113.2056

Which multiple-cursors are you using ? I've tried it with mc/mark-next-like-this and can't reproduce it.

I was using mc/mark-next-like-this. I'll try to reproduce it again.

I think I've seen similar issues with mc in the past, but I don't think it's related to rust. Sometimes mc behaves a little weird.
rustic now depends on rust-mode and I'm sure if this was related to rustic, rust-mode code(it was duplicated in rustic before) is the reason and not rustic functionality.
If anybody encounters mc problems again, please open an issue at rust-mode. Thanks for the bug report.


Provide the possibility to recover a state of a map

It would be great if we had the possibility to get back to a previous version of a map. I feel we had something in the first designs for the Builder, but not 100% sure. In any case it would be a super nice feature for the future and it would be tackle with Snapshots.
cc @CartoDB/builder-backend @CartoDB/design

Somewhat related to this is to add the possibility to export the published copy of a map: #10303
From backend, this should be relatively easy to implement, as we designed mapcaps with this in mind. I think exporting a mapcap can be done with a minor (one line) modification but it is untested, and restoring the mapcap should not be too hard either, we just need to be careful to not change the id's of the various elements.

Can't users just refresh/leave the page and any edits since the map cap are gone? This happens to me a number of times when I accidentally Chrome "multi-touch back swipe", and you go back to Builder and all your edits are gone because you didn't "mapcap" them. It's annoying sometimes but in this case it's more a "feature" than a "bug", no? Or is this ticket something different?

@andrewbt Uhm, that shouldn't be happening. All changes are automatically and immediately saved (you can see the requests in the network console). Publishing saves a static copy for the embed, but the builder works on the latest changes.
What you are describing sounds like a bug. Can you report it? Do you have more details? The more likely causes are some of the requests failing silently, or a browser cache issue.

@nygeog wasn't this exactly what I unfortunately accidentally did to your gas stations map yesterday evening? We hit the back button and you lost all your analyses and such? I'll see if I can get some more detail @javitonino . Definitely happens to me fairly regularly.

As mentioned, this could be implemented with mapcaps, but AFAIK, we are not doing anything with it. If the need arises, we can revisit.


How to understand W^UK can be absorbed into W^Q and W^UV can be absorbed into W^O？

Here's a recommended blog for you: https://spaces.ac.cn/archives/10091.
@cc752424640


fixed to not update 'category' and 'language' columns if it is a pubm…

…ed paper

It is confusing. Lol
Can I reassign it to you?

I thought primaryId will always be PMID if it is a pubmed paper

Haha, I think it's already okay as-is (without making any changes to the code, but I didn't know that until I was reviewing what you did, sorry about that).
The dqm_entry['primaryId'] is what comes from the DQM files directly, right, it hasn't been processed and modified by the code ?  The DQM should use the PMID as the primaryId if the paper has a primaryId, but in the past I've uploaded files that weren't doing that, so I know it's possible, and I haven't tried to validate that if there's a PMID in cross_references, that it is also the primaryId.  There might be something like that in parse_dqm_json_reference.py but I'm not sure.  Since I was trying to account for DQMs potentially not putting the PMID in the primaryId, I wrote the stuff in the previous paragraph 2, but I wasn't sure how to document it.  I think currently the script already doesn't get to line 699 if there's a PMID, so I think the check isn't adding anything, but it might still be useful to have later, so I can approve it.

Yes, I just checked the code. The addition doesn't do anything. I will close this PR. Thanks for clarification.

@sweng66 Oh, not at all.  Sorry I didn't realize that before you wrote it.  It would probably still be helpful to document whatever you figured out.  I liked the comment you had in the code on this PR, it seemed helpful.  The whole xml_processing would probably use more comments or documentation.


Saving/Loading document

Hello,
Thanks for the library.
Just wondering if we can load/save from the disk
the computed embedding and models (!)
Thanks !

Hi @arita37, to save the model you can use model.save_pretrained("your-model-name")
To save the embeddings computed you can use Pickle or Joblib :)


Use the token secret instead of DAT ID in deployment launcher

Description

upgrade platform sdk to 13.7.1
use the token secret instead of DAT ID in deployment launcher

Tests
ran deployments, confirmed a secret is set instead of the DAT ID
Documentation
changelog update
Primary reviewers
If your change will take a long time to review, you can name at most two primary reviewers who are ultimately responsible for reviewing this request. @ mention them.

Closing this in favour of:
https://github.com/spatialos/gdk-for-unity-fps-starter-project/pull/165


RunUnitTests.py uses port 80

Hi,
trying to get unit tests running in my pipeline.
On my local Windows PC:
Used CoffeMachine project and added a Unit Test configuration using B&R Technology Solution.
Made Unit test config "Active configuration", changed HW to X20CP0484, enabled Simulation and downloaded compiled project to ARsim.
Tried "Reload list of available tests" on Unit Test Page. This failed due to <IP_ADDRESS> port 80 being used by some Windows services.
So i changed the Web Server port in Hardware.hw to a free port on my system.
Now i was able to configure and run the "Samples" unit tests that were added by B&R Technology Solution.
Pushed this to git.
Ran jenkins pipeline. Pipeline fails with:

"C:\Users\vboxuser\AppData\Local\Jenkins.jenkins\jobs\BRAutomationPipeline\branches\BRproject\builds\17\libs\8ddb9de58b6693df3d25366012843019264201573970707833bb19fe8d6a4655\resources/
scripts/RunUnitTests.py", line 62, in readTests
resp = requests.get('http://<IP_ADDRESS>:80/WsTest/')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\vboxuser\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\api.py", line 73, in get
return request("get", url, params=params, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\vboxuser\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\vboxuser\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\vboxuser\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\vboxuser\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", line 519, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='<IP_ADDRESS>', port=80): Max retries exceeded with url: /WsTest/ (Caused by NewConnectionError('<urllib3.connection.HTTPConnection
object at 0x0000019F2B5E49D0>: Failed to establish a new connection: [WinError 10061] No connection could be made because the target machine actively refused it'))

So RunUnitTests.py defaults to port 80 when accessing the ARsim.
What is the intended way to solve this?

Add second Unit Test Configuration to project that uses port 80 and is only used for the automation pipeline? (need to maintain two unit test configurations)
Close all services on my local machine that use port 80? (which is tedious because it needs to be done after every restart)
Clone the BnR-Jenkins-Helper-Library, change the port in RunUnitTests.py and reference my clone to jenkins?(would need to keep an eye out for changes in BnR-Jenkins-Helper-Library which would need to be pulled into my clone)

Best solutions in my eyes would be:

Make the used port configurable in jenkinsfile
BnR-Jenkins-Helper-Library to determine used port by reading Hardware.hw file

Any thoughts on this?
Thanks
Till

Hi Till, did you see this document? I have not tried it myself but maybe there some hint that will help.
https://github.com/br-automation-com/BnR-DevOps-Package/tree/main/Automation and Build Server

Hi Stephan, yes thats the document I am following. It does not go into details that specific. Thanks anyways!

with commit 28c4aa1665895fedadfc78c5aad3899f3bf18042, the port can now be specified when running unit tests by adding the port: '80' argument.
If the port argument is not specified then it will use the default of 80


Undefined method setAttributeNames() when creating Instance via the Laravel validator() helper

Larastan Version: 0.6.0
--level used: 3

Description
When creating a validator instance via the validator() helper, the following error is thrown:
Call to an undefined method                                                                                Illuminate\Contracts\Validation\Factory|Illuminate\Contracts\Validation\Validator::setAttributeNames().
In code I set a custom attribute name based on the localization used for the application.
Laravel code where the issue was found
    public function process(Request $request): RedirectResponse
    {
        $validator = validator($request->all(), [
            'message' => 'required',
        ]);

        $validationAttributeNames = [
            'message' => trans('g.label.message'),
        ];

        $validator->setAttributeNames($validationAttributeNames);
        $validator->validate();

        // Further method implementations
     }

I hope you can help me out!
Kind Regards!

Hi,
Weird, this error shouldn't happen on level 3. I thought errors related to union types are started reporting on level 7.
Anyways, this is a feature request for a new extension for validator helper function.
For now you can use
/** @var \Illuminate\Contracts\Validation\Validator $validator */
$validator = validator($request->all(), [
    'message' => 'required',
]);

// Rest of the code

to resolve it.
I'll try to implement the new extension later.


Add opensuse repo for git installation through package manager

Signed-off-by: Joe deKoning<EMAIL_ADDRESS>

I don't see much for SLES wrt 390.  Not sure if 390 and SLES is a combination anyone has tried as of yet??
The git 2.15 compiled from source in the GIT_Source role doesn't have all the dependencies.  Clones using https links fails.  The same general location would work for 390 as well as sles11, if those are wanted in the future.
Marked as WIP as I need to test and verify that this works.

@jdekonin Safe to merge now?

Yes this is good to go.

@sxa555 I'll wait for your approval


validation loss not decreasing after 25k steps, Fine-tuning with small target data

@bshall Thank you for this great work.
validation loss not decreasing after 25k steps, Fine-tuning with small target data (~1-hour dataset).
the best model (25k steps) not working properly. content transferred ok, but the pitch was not converted from the source to the target. and the target speaker's tone does not close.
@bshall can you please give your suggestions?
Thanks

What hyperparams did you use @mraj96?


Pagination Regex Interferes with IP address [bug] + Lack of "starting page" or Zero-Based counter support [feature request]

So a few issues here.  They seem tied to https://github.com/paulirish/infinite-scroll/issues/6 and https://github.com/paulirish/infinite-scroll/issues/460

When trying to set up an ajax infinite scroll, the lib made me default to an absolute url ( with FQDN or IP address ) and would not accept a relative url.  Not a big deal [ would have been nice to see this documented ]

When I started with an infinite scroll, it kept breaking.  I finally figured out why. It was a combination of the URL and having a Zero-based counter for pages.
// infinite scroll doesn't like zero based pages!
var url = "http://<IP_ADDRESS>/api/call?page=1"
["determinePath", Array[2]  ]
0: "http://1"
1: "<IP_ADDRESS>/api/call?page=1"
// infinite scroll does like 1 based pages!
var url = "http://<IP_ADDRESS>/api/call?page=2"
["determinePath", Array[2]  ]
0: "http://<IP_ADDRESS>/api/call?page="
1: ""
// want to start on page 5? NO YOU CAN NOT!
var url = "http://<IP_ADDRESS>/api/call?page=5"
["determinePath", Array[2]  ]
0: "http://1"
1: "<IP_ADDRESS>/api/call?page=5"

Attached is a jsfiddle.  It defaults to creating the error ( on page=1 ).  You can see that by increasing the next page to "2", everything works fine.  if you go to 3 or above, it breaks again.
http://jsfiddle.net/w8vnb/
Note: you have to open the browser console to see the the logged messages
I think this all this could be elegantly fixed by allowing for a "start page" setting.  If the infinite scroll is initialized with a start-page of "0", then the "next page" is 1; if it starts with page "5", then 6.  If you do nothing, no worries.

Thank you for reporting this issue.
Infinite Scroll v3 is out!. It's an all new re-write, so take a look at how to upgrade from v2.
Infinite Scroll v3 has better parsing and use of page numbers. You can use relative paths. You can start on latter pages, not just the first. See pageIndex property
I recommend upgrading to v3. Please open a new issue if you run into trouble with Infinite Scroll v3. 🌈🐻


Interesting idea. Why do you call the library async, when you are not using await in the doc?

Hi,
Interesting idea. Question: why do you call the library async, when you are not using await in the doc? i.e. you write:
create = AsyncCreate(api_key=os.environ["OPENAI_API_KEY"])
messages = [
    Message(
        role="user",
        content=f"Hello ChatGPT, Give a brief overview of the Pride and Prejudice by Jane Austen.",
    )
]
response = create.completion(ChatCompletionRequest(prompt=messages), client_timeout=Timeout(1.0, read=10.0), retries=3)

If this library was async, wouldn't there be an await in front of creation.completion? Like:
response = await create.acompletion(ChatCompletionRequest(prompt=messages), client_timeout=Timeout(1.0, read=10.0), retries=3)

Also, I can see the method is not marked async https://github.com/itaim/openai-async-client/blob/e54981409aaffe1532cefd7f48678583a297be25/openai_async_client/openai.py#L75
I want to use this on an asyncio webserver, so need to be able to call this async. Thoughts?

You are right, I apologize for the confusion.
It was designed to be used by within a non asyncio app and to accelerate workload processing.
I will make the documentation clearer regarding this aspect.
With a small modification it could support await/async.
Maybe I'll find the time to support both use cases.


Remove: Telerik.Fiddler.Everywhere.Insiders version 1.2.0-insiders

Microsoft Reviewers: Open in CodeFlow

URL: https://downloads.getfiddler.com/win/Fiddler Everywhere 1.2.0-insiders.exe
OK
(Automated message - build 912)


AltBeaconLibrary sample service start on boot

Based on testing on various Android 4.3 and 4.4 devices, we noticed there's an issue with running AltBeacon service upon device boot. It works fine if demo app is run by user or put into background mode. Service is started upon boot (it's visible in Android running services list) , but no events are triggered and doesn't seem to initiate either monitoring or ranging.

@bokzy - Let me see if I'm understanding you correctly.

Install demo app
Reboot Android device
AltBeacon service is started upon boot
You aren't able to tap into monitoring or ranging events without manually starting the client app

Is that correct?

Hi Chris, thanks for your quick reply.
It's exactly as you wrote, we tried to tap into every event that should be triggered upon service startup or when beacon gets in the range, but to no avail. Service keeps running, though.

Hi @bokzy. I just updated the library to the latest release from AltBeacon.org - version 2.1.2. See if that helps. I'm going to try some internal testing as well.

Well actually this version of demo doesn't even keep running after boot (previous one at least kept service running, although no beacon ranging occurred) .

@bokzy - If you're looking at Samples/Android, all I did was update the underlying library. The Sample doesn't explicitly address boot scenarios. Apparently there were some changes regarding backgrounding that may have affected how the service starts and stops when backgrounded. That may mean, that new code needs to be introduced in order for backgrounding to work like you'd expect. I'm still doing testing, but if you have additional samples that I can try, I'd be happy to try them out myself.

@bokzy - I have a working sample in a new branch. Please take a look:
https://github.com/chrisriesgo/Android-AltBeacon-Library/tree/updated-reference/Samples/Android/AndroidAltBeaconLibrary.Sample
Upon reboot, when a beacon becomes available, the sample app launches. Also, if the app is backgrounded, but not force-closed, and a beacon appears, a notification is sent.
It took me a while to figure out that my androidmanifest.xml wasn't correct which is probably why you didn't see the app behaving correctly to begin with. Let me know if this helps.

@bokzy - I'm going to close this issue since I'm able to pick up beacons upon boot. Please reference the latest Samples/Android in master.


an error with refresh browser not vaild

platform: windows10
browser: chrome
when i use it, i click that Permission button, I can listen piano sound, but I go to vscode, that is not run, I need refresh page and retry to click, and not to use it

Cloud you please provide more detailed information? Please run VSCode command: > Help: About and copy & paste the output to here.

Close due to no more respond, feel free to reopen this issue.


Installation issue

I am trying to install kaleido in a docker image. The dockerfile is as follows:
FROM python:3.9-alpine

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV CRYPTOGRAPHY_DONT_BUILD_RUST 1

RUN apk update \
    && apk add --virtual build-deps gcc make python3-dev musl-dev \
    && apk add --no-cache libffi-dev postgresql-client postgresql-contrib postgresql-dev bash git curl g++ libxslt-dev linux-headers coreutils \
    && apk add build-base libzmq zeromq-dev jpeg-dev zlib-dev libjpeg cairo-dev cairo cairo-tools pango-dev gdk-pixbuf-dev fontconfig gdal geos

RUN apk add --no-cache make
RUN apk add --update netcat-openbsd

ADD ./requirements.txt /tmp/

# Install PyPi dependencies
WORKDIR /tmp
RUN pip install --upgrade pip && pip install Cython==0.29.24 && pip install kaleido
RUN pip install uvicorn[standard]==0.14.0
RUN pip install -r requirements.txt

RUN apk del build-deps

ADD . /code/

RUN mkdir -p /storage/static
RUN mkdir -p /storage/media

RUN chmod -R a+rw /storage

ADD entrypoint.sh /
RUN chmod +x /entrypoint.sh

ADD worker-entrypoint.sh /
RUN chmod +x /worker-entrypoint.sh

WORKDIR /code/

EXPOSE 8000
EXPOSE 8001

However, when I run docker-compose up, the process exits with the following error:
ERROR: Could not find a version that satisfies the requirement kaleido (from versions: none)
ERROR: No matching distribution found for kaleido

NOTE: I am running docker on a Mac with Monterey OS

I'm having the same error; however, I'm just trying to pip install from plan virtual env.

env:

I was able to get it working by changing the definition of my Dockerfile, which is now based on python:3.9 instead of python:3.9-alpine.

Thanks for your interest in Kaleido. We are currently working on an overhaul that might address your issue - we hope to have news in a few weeks and will post an update then. Thanks - @gvwilson

so where are the news? still cannot install on alpine


OverflowError: Python int too large to convert to C long

import deepmatcher as dm
import torch
torch.cuda.is_available()
import pandas as pd
pd.read_csv(r'E:\project\deepmatcher\examples\sample_data\itunes-amazon\train.csv').head()
train, validation, test = dm.data.process(
path='E:\project\deepmatcher\examples\sample_data\itunes-amazon',train='train.csv', validation='validation.csv',test='test.csv')
model = dm.MatchingModel()
Windows system
How to deal with this problem？

find util.py
#csv.field_size_limit(sys.maxsize)
then you can solve this problem

I assume this is fixed, please reopen if you still have issues.


feat(skin): add a new css flex box based portlet layout

Checklist

[x] the individual contributor license agreement is signed
[x] commit message follows commit guidelines
[x] documentation is changed or added
[x] view conforms with WCAG 2.0 AA

Description of change

CSS Flex allows for fine grained control how how elements appear in one dimension (x or y), and gives course grain control over the appearance in the other dimension (y or x).
There is a absolute width flex layout where: the layout gives portlets a constant size, and requests that the flex give an even amount of space between portlets in a row (still allowing for a custom page gutter to be set).
The flex layout will pack as many portlets into a row as possible, portlets that do not fit are pushed to the next row.
If the screen size shrinks below the default size, each portlet will automatically switch to 100% screen width, to avoid overflow scroll or content clipping.
There is also a series of layouts that roughly match the existing bootstrap column layouts.
Where each portlet is given a percentage width, that is applied only on specific screensizes.
This is different from the existing bootstrap grid in that portlet height will be evened out across each row.
resolves UP-4982

👍 I can not wait to see more ... 😃

Update
I have enhancements to the REST API and to the options in the Customize Drawer essentially working locally.
@ChristianMurphy -- we've been talking about the use of Flex layouts with app launchers that (typically) have the no-chrome (hamburger) chrome style selected;  but we can't count on the idea that they will only be used this way.
Take a look at this screen capture...

This image shows the (default) student user layout in flexColumns=3.
I think we need some padding/margin between the <section> elements in the Flex layouts -- portlets with regular chrome look "jammed together."

Updated:
App Launchers look about the same:

Content Portlets now have spacing, and automatically stretch (additional vertical spacing on shorter portlets) to make the row sizes even.

@ChristianMurphy, @cousquer, et al. -- AFAIK, this update is complete and ready to merge.  I've done some local testing, but I'm planning to do a bit more between 2017/12/29 and 2018/01/02.  (I'm hoping to merge by Tuesday, Jan. 2nd at the latest.)
@ChristianMurphy -- I need a few more .svg icons.


Discuss: Alternative tools

Do you consider using Rome instead of prettier and eslint？

I've only just glanced at Rome but it seems like an interesting tool. However, there are a few reasons I went with ESLint and Prettier.

Ubiquity - Most developers will have heard of ESLint and Prettier. Everyone knows how to setup an ESLint or Prettier config and when it comes to providing a template that provides reasonable defaults, having ubiquitous tools is helps reduce the cognitive overhead that comes with making changes to or using the software.
Unix Tools Philosophy - "The tools philosophy was to have small programs to accomplish a particular task instead of trying to develop large monolithic programs to do a large number of tasks". In other words, having specific tools for the job without worrying about the coupling between them. Rome does seem like a good alternative but the main issue it presents is that it bundles tools with different purposes together. In the event that someone wants to use Prettier instead of the included Rome formatter, well, at worst, they have conflicting formatters that requires one of them to be removed and at best unused code is bundled that can't be removed without also removing the linter.
Template Flexibility - The template itself does not include much aside from the configs. Replacing ESLint and Prettier, or any other tool for that matter, is encouraged and should be done to help tailor the template to the given problem domain.


Better documentation for the plugin API

Hey all, I am writing Suman, which is a test harness like Mocha and Jasmine, but much improved, especially for backend testing. I am looking to run Suman tests in the browser. I am almost there, but I want the Suman test harness to work with Karma. Note that Suman does not use global variables, so I am hoping that Suman can call the Karma API, not the other way around.
I posted this question on SO:
https://stackoverflow.com/questions/46868214/how-do-i-make-a-karma-compliant-test-harness-for-the-browser

My guess is that the Karma test runner does not hook in Mocha and Jasmine, rather the reverse.
so I assume Mocha and Jasmine call something like this:
window.__karma__.testCasePassed(data);
window.__karma__.testCaseFailed(data);
and then Karma will report these events.
I am writing Suman and I want to figure out if I can make Suman Karma compliant.
When I look through the Mocha and Jasmine codebase however, I am not seeing the evidence I am looking for.

My question is - does Karma have some documentation as to how to hook into Karma? I am hoping that Karma has an API that I can call. It would be to my dismay if Karma hooks into Mocha and Jasmine's globals, instead of Mocha and Jasmine calling Karma directly.

I see this:
https://developers.soundcloud.com/blog/writing-your-own-karma-adapter
but it's from 2013, is there something more up-to-date?

Ok it looks like I should follow the examples here:
https://github.com/karma-runner/karma-jasmine
https://github.com/karma-runner/karma-mocha
and I should create:
https://github.com/karma-runner/karma-suman
is that about right? Any advice?

Yes follow the examples.  Advice: think about karma as an orchestrator and transport for a nodejs to browser system. The job of your adapter is to fire the tests and pass the results through the karma callbacks to the reporters. So the interface to karma-runner is very minimal. The test framework and the reporters are more complex that karma.

@johnjbarton thanks, just one question for you
I am looking for more complete documentation on the karma API
https://karma-runner.github.io/1.0/dev/plugins.html
if you look at that link, it only lists the API for the result() call, but I really could use more info on the exact API for the complete(), error() and info() calls.

.complete the client completed execution of all the tests
.error an error happened in the client
.info other data (e.g. number of tests or debugging messages)

AFAIK there is no more information on this API.  The API is not "exact".  Broadly the calls are sent from your framework plugin to a reporter plugin. karma-runner does not care very much what those two ends talk about.  It just not karma-runners business, so does not get involved.
There are some constraints.  For example info info.total should not be null:
https://github.com/karma-runner/karma/blob/de55bc63205c656eb5f5534894aa4ae92228efb8/lib/browser.js#L129
But for the most part the API that matters is the reporter plugin API.
Which of course is also not documented.  I would look at the dots reporter and get your framework to work with it.  Then pick up the reporter you expect your users to use.
I guess the result API is more like
var oneTestResult = {
                description: test.name,
                log: errMsgs,
                skipped: false,
                pending: false,
                success: errMsgs.length === 0,
                suite: [],
                time: test.getElapsedTime()
            };

ahh ok good idea, I will look at the dots reporter

@johnjbarton so once I get karma-suman closer to a production-ready state, is there some test suite I can use to verify the implementation behaves properly? Do you know if there are some good pre-existing tests that I can use to test karma-suman, the way that karma-mocha, karma-jasmine are tested? Thanks.

@ORESoftware I wouldn't expect so: unit test would just involve your karma-suman files and e2e tests would involve passing a suman file to karma in a config and verifying the reporter or log output.  You should be able to find a e2e test to use a a template.


QA: for data migration (3.12 to 3.13) testing execute the following

use an older version of the grid-client-ts e.g 2.0.0 or 2.1.0 to deploy all kinds of solutions (using scripts)
use the new.playground.dev.grid.tf to see if things are properly migrated or not

related to:
https://github.com/threefoldtech/tfgrid-sdk-ts/issues/8

data migrated with success
tried to deploy using version 2.0.0
solutions tried : "single vm , k8s"
single vm:

k8s :

still no progress
waiting for 3.13 to be deployed on qa net

Are the scenarios done for this one?

Are the scenarios done for this one?

Yes, the test cases have been added within the Grid Upgrade test suite to be run before the release.
And after the upgrid, beside verifying the deployments themselves, the migration data will also be verified in TC2074 - Verify Data Migration VMs and solutions and TC2083 - Verify Data Migration Kubernetes and Caprover.


Dynamically Load Stylesheet at runtime

Hi,
What is the best method to load an existing stylesheet at runtime? This method would have to be called in response to a user action. Or should I simply be overwriting the file  using [NUISettings<EMAIL_ADDRESS>

You can use +[NUIRenderer changeStylesheet:] to load a different stylesheet at runtime.


Reflex runs very slow, does not refresh automatically and gives errors

Describe the bug
Once I have started the project with Reflex, when I try to do a reflex run it takes a long time to compile the project that is still empty (only with the template blank), and all the dependencies are downloaded again every time you stop the server and restart it to start with reflex run. Additionally, the automatic refresh does not work when you make a change to the project.
Occasionally it fails once the server is up with reflex run (capture is attached).
To Reproduce
Have the project created with reflex (reflex init), and do a reflex run.
Expected behavior
Let the reflex run command run faster and automatically reload when it detects a change in the project.
Screenshots

Specifics (please complete the following information):

Python Version: 3.12.1
Reflex Version: 0.3.8
OS: Windows 11
Browser (Optional):

Additional context
I'm using windows with wsl and have created a virtual environment within the project, all as detailed in the reflex documentation.

Seems like you're running your app which lives on the windows file system from WSL. There are some compatibility issues with both file systems. As a resolution, it is recommended to run your app from the same file system it lives. Eg, To run your app from WSL, move your files or create a project on the WSL file system.

Similar experience on the compilation time/refresh on macOS


close popper by click away

Hi! I need to close popper by click away, how can I achieve it?

https://material-ui.com/utils/click-away-listener/

@oliviertassinari oyy I understood my mistake, I tried wrap Popper component with ClickAwayListener instead of Popper content 🤦♂ Thank you 🙏


Migrate to Jane Street 0.14

It's that time again!  There's a new Jane Street package release and we ideally want to be tracking it.
This is hard-blocked by https://github.com/MattWindsor91/travesty/issues/12 and soft-blocked by ocamlformat not supporting 0.14 yet

Done now.


Loot Tables With No Tier 1 Rarity Bugged

Using /loottable 37704 (which only has 1 item and it is Tier 4) has all tiers disabled.
It would also be nice if /loottable would default to the lowest available tier.

In Commit  08074ba I fixed the tier buttons.
In Commit aea56cd the bot now defaults to the lowest available tier.


Fix token amount - token allowance comparison

Fixes #1008  .
Changes proposed in this PR:

fixed allowance check in approve
added allowance check in buyDT/buyDTWithExactOcean/addDTLiquidity/addOceanLiquidity methods so we do not call approve if not necessary

I will clean it up


GraphQL file generation in studio pipelines

Depends on https://github.com/finos/legend-engine/pull/1218

Looks like the generated .graphql outputs are not correct. In engine, didn't we change the behavior from a single file with all the GraphQL types vs a file per GraphQL type.


[Android] Implement API getFavicon

Implement getFavicon API for users to get favicon on current page.
BUG=XWALK-4919
Signed-off-by: Yan, Shaobo<EMAIL_ADDRESS>

@lincsoon @wuhengzhi  PTAL

I'd like to not use "Signed-off-by:", it's the kernel commit standard, but not crosswalk's.

@xzhan96  thx for remind. Updated.

LGTM for others, thanks.

@fujunwei PTAL

LGTM

@lincsoon @halton Please help merge this PR. thx.

ping @lincsoon  @halton


#31 num 0 is int (tests)

Closes: #31

@Graur let it be here until eo includes 0.eq 0.0 => false to release

@Graur could you please take a look?
Failed to execute goal org.eolang:eo-maven-plugin:0.28.0:assemble (compile) on project eo-math: Execution compile of goal org.eolang:eo-maven-plugin:0.28.0:assemble failed: Tag 'master' doesn't exist or the list of all tags was not loaded correctly

@maxonfjvipon I tried to run build with the eo-math project's EO version and with 0.28.2 - they both passed. So, could you try to rerun your build again? Maybe just by changing the EO version

@Graur I think it's good to merge. We can close: #31 and #44

@rultor merge

@rultor merge

@yegor256 OK, I'll try to merge now. You can check the progress of the merge here


Broker Service Type fallback support

Current Behavior
The broker deploys NATS service as type Loadbalancer
Desired Behavior
Add support for falling back to NodePort when Loadbalancer is not supported

Resources

Alternatives / Additional Context

@kumarabd This is complete, yeah?

yes this is complete


Partner Profile:   Move Program address (if different) to just below the agency information.

Summary
Move Program address (if different) fields to just below the agency information in the partner profile.
Why
Consensus From partnerbase working group meeting 20220713 that the fields belong in that order
Details

will need to update edit and show for both banks and partners
The appearance of these fields is controlled by the banks through "Edit My Information".   Whatever choice the bank has made re the "agency stability" section of the profile must be preserved for these fields.
the fields involved are program_address1, program_addres2, program_city, program_state, program_zip_code

Suggested approach / advice
Create a new partial for program address (if different), inserting it at the beginning of the optional partials list.  Will need a migration to update the organizations' choice of partials appropriately
Criteria for completion

[ ] Program address (if different) fields moved to just below the agency information in all 4 cases
[ ] Tests supporting this behaviour

Taking a look at this to see if this is doable for me. Adding photos and my thoughts along the way to perhaps provide more information for someone else if they want to take a shot at it.

I first wanted to look at this from the perspective of a partner, so I logged in with the creds for the verified partner<EMAIL_ADDRESS>
I am assuming that the show for a partner is where you are logged in as a partner and you click on my organization in the sidebar.

I am assuming that the edit for a partner is when you are logged in as a partner and you click on Edit My Organization in the left hand sidebar.

So I am assuming that I am removing the Program Address (if different) from the Agency Stability partial and creating its own partial that should go directly after the Agency Information. This partial will only render if the fields program_{address1, address2... etc} have values. Relevant file: app/views/partners/profiles/show/_agency_stability.html.erb
On the edit page, I need to create a new partial - despite the Agency Stability and Program Address cards being visually disconnected, they are still in the same partials. Relevant file: app/views/partners/profiles/show/_agency_stability.html.erb

@confused-cabbage Hi! If you aren't still working on this I would like to take a stab at it!
@scooter-dangle Can you clarify what you mean by: "Move Program address (if different)"? Thank you!

Hey @jadekstewart3 Just going through old issues and found your question on this one.   The label of the field is "Program address (if different)".  Does that clear things up?  Also -- I think it's been more than long enough for you to take it on if you still want it.

@cielf Sure, I'd be happy to take this on!


Update README.md

Minor bug in python README.md example (misplaced paren)

@facebook-github-bot shipit

sodope!

sorry, will be spamming this thread trying to get our bot to cooperate :)

@facebook-github-bot shipit


Newsletters: add 189 (2022-03-02)

(Opening this PR a bit early since I've been late the past couple weeks.  I'll update this description with the regular todo list once there's more news/content to add.)

Pushed edits for @adamjonas feedback (thanks!) plus the rest of the content.  There was only one notable merge this week, and it was super easy to describe, so I just wrote it rather than trying to dole it out among the several people signed up to write summaries this week (I hope that's ok!).
I also added releases/RCs and topic links, so if there are no additional reviewer comments, this should be ready for merge on Wednesday morning.  Thanks!

May I suggest to please add the recent Wasabi Wallet 2.0 Testnet Release.

Hey @MaxHillebrand !
We only report on releases and RCs weekly for infrastructure software listed in our notable code changes section.  Other client software updates are covered in our monthly client and services section.
I do think the mailing list post may merit inclusion since we've covered wabisabi before but it's too late for this newsletter and, in any case, we'd really want to give other people on the mailing list a chance to provide comments and criticisms---I see the Optech Newsletter as more focused on summarizing excellent technical discussions rather than promoting anything in particular (even really cool stuff like a wabisabi implementation).  I'll put it on my list to review for next week, but to realisitically give enough time for people to try the software and post to the mailing list, I doubt we'll cover it earlier than the March 16th newsletter.
I hope that explanation makes sense.  Congrats to you and the whole Wasabi team on the release!

thank you @harding - that sounds great to me!


Blank output in the Inference while using a customize trained T5 model

Hi,
When I am using the normal version of the t5 models like 't5-small' or 't5-base'. It is working fine and I am getting the output. But when I tried my customized trained t5 base model for my data. After the kernl optimization, the output is blank.
Can you please look into that or do you have any idea about that?

Hi @gaurav21s
By blank, you mean all the outputs are empty-zeroed tensors ? Do you have any warning / error messages ?

Hi Jonathan,
By blank means, it was giving blank space in the output.
On Thu, Jan 5, 2023 at 3:46 PM Jonathan Marchand @.***>
wrote:

Hi @gaurav21s https://github.com/gaurav21s
By blank, you mean all the outputs are empty-zeroed tensors ? Do you have
any warning / error messages ?
—
Reply to this email directly, view it on GitHub
https://github.com/ELS-RD/kernl/issues/226#issuecomment-1372026014, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AQKIAQZQLV3HAFYCQIPTHCLWQ2NOPANCNFSM6AAAAAATOR6YKI
.
You are receiving this because you were mentioned.Message ID:
@.***>

I was running the inference for testing and the tokenizer was working fine
but when I was getting output after the decode it was just blank space.
On Thu, Jan 5, 2023 at 6:22 PM Gaurav Shrivastav <
@.***> wrote:

Hi Jonathan,
By blank means, it was giving blank space in the output.
On Thu, Jan 5, 2023 at 3:46 PM Jonathan Marchand @.***>
wrote:

Hi @gaurav21s https://github.com/gaurav21s
By blank, you mean all the outputs are empty-zeroed tensors ? Do you have
any warning / error messages ?
—
Reply to this email directly, view it on GitHub
https://github.com/ELS-RD/kernl/issues/226#issuecomment-1372026014, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AQKIAQZQLV3HAFYCQIPTHCLWQ2NOPANCNFSM6AAAAAATOR6YKI
.
You are receiving this because you were mentioned.Message ID:
@.***>

Can confirm this problem exists also in e2e t5 tutorial, if one changes t5-small to 't5-base, the output of .generate` in the last cell (after optimization) would all be 0.
For environment, I used this repo's Dockerfile to create VScode dev container inside Windows wsl2 with RTX3090-24GB.

Thanks for your reports, I can confirm this bug and we're investigating it.

@jonathlela can you share a reproduction at the NMSNorm kernel level ?

@jonathlela I have the same issue with optimized t5-base. You mentioned that disabling "replace_layer_norm_rms" fixes the issue. Where should I set replace_layer_norm_rms=False?

T5 weights are in BF16, triton 2.0 does not support fully BF16, we're waiting for the fix to be propagated.
https://github.com/openai/triton/pull/1306

Hello @jonathlela
https://github.com/openai/triton/pull/1306 as the PR is merged, would using most recent openai triton with kernl resolve this issue?

Hello @jonathlela
Would there be other large models we can try with Kernl?
It seems like larger version of T5 model type does not work due to this issue.
Also GPT model also seems to have errors: https://github.com/ELS-RD/kernl/issues/146
Could we try GPT model? Is the above issue fixed?


Fixed regression causing throw unloading sagas

The original RBP tested descriptor for existence before attempting to cancel it.
In this TS version that check is not there (I assume removed in the conversion to TS?)
In production builds of this website my saga's throw when unloading.  I don't know whether they are unloading twice or why this is happening but this change is consistent with original code and fixes the issue
React Boilerplate
Thank you for contributing! Please take a moment to review our contributing guidelines
to make the process easy and effective for everyone involved.
Please open an issue before embarking on any significant pull request, especially those that
add a new library or change existing tests, otherwise you risk spending a lot of time working
on something that might not end up being merged into the project.
Before opening a pull request, please ensure:

[ ] You have followed our contributing guidelines
[ ] Double-check your branch is based on dev and targets dev
[ ] Pull request has tests (we are going for 100% coverage!)
[ ] Code is well-commented, linted and follows project conventions
[ ] Documentation is updated (if necessary)
[ ] Internal code generators and templates are updated (if necessary)
[ ] Description explains the issue/use-case resolved and auto-closes related issues

Be kind to code reviewers, please try to keep pull requests as small and focused as possible :)
IMPORTANT: By submitting a patch, you agree to allow the project
owners to license your work under the terms of the MIT License.

didnt realize that. thanks


bug: bug: $ionicSlideBoxDelegate.next() causing an exception on versions after RC3

Type: bug
Platform: all
When calling any function that moves to the next slide such as this one
$ionicSlideBoxDelegate.next()
This is the exception that I get...
TypeError: Cannot read property 'length' of undefined
at circle (http://localhost:8100/vendor/ionic/js/ionic.bundle.js:8050:21)
at slide (http://localhost:8100/vendor/ionic/js/ionic.bundle.js:8079:14)
at ionic.views.Slider.ionic.views.View.inherit.initialize.slide.select (http://localhost:8100/vendor/ionic/js/ionic.bundle.js:8432:7)
at http://localhost:8100/vendor/ionic/js/ionic.bundle.js:105:46
at Array.forEach (native)
when diving into the code, the slides variable gets undefined.
Codepen: http://codepen.io/dellheng/pen/QbMaaN
You will see error in this order:

click "Show second image"
click "Show images from start" button

The error only appear in first time the next() or slide() method is called for the first time. This does not happen on RC3
RC3 Pen (Works): http://codepen.io/dellheng/pen/mJMzvR
Please refer to the automatically closed issue: #3807

Greetings @karthikiyengar!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

We had this issue when we upgraded from beta 12 to 1.0.1
The reason was because we immediately assigned it to the scope in the controller like this
$scope.next = $ionicScrollDelegate.next;

But it worked if we hid it behind a method like
$scope.next = function () {
    $ionicScrollDelegate.next();
});

I have the exact same issue. @Deminetix fix does not work for me, does anyone have any ideas?

Did you try delaying it's assignment?

May I know if there if the root cause of this issue is identified, so that we can go ahead and fix it?
I'm not really sure as to how hiding the next() call behind a function affects the functionality.

We are using this with no issues, and its been tested on our whole device
suite. The act of hiding it behind a method which is called on
$ionicView.enter allows the slidebox to initiate first. This is still a bug
but it has a workaround. I'll have a look as to why this happens in the
next week or so and report back
On Thu, Aug 6, 2015, 3:46 PM karthikiyengar<EMAIL_ADDRESS>wrote:

May I know if there if the root cause of this issue is identified, so that
we can go ahead and fix it?
I'm not really sure as to how hiding the next() call behind a function
affects the functionality.
—
Reply to this email directly or view it on GitHub
https://github.com/driftyco/ionic/issues/4041#issuecomment-128250973.

Thanks, @Deminetix. We have the same issue and have hid $ionicScrollDelegate.next(); behind a method but it doesn't fix the issue. Perhaps we're not calling it correctly from $ionicView.enter? Could you provide an example of how you're accomplishing that?
Thanks for your help!

Same problem here. The slide() method works when you try to open the first image and then the second image. It breaks when you try to slide to the second image and reports error 'Cannot read property 'length' of undefined'.

Hey everyone, we just landed a new slider component that solves this issue. It's in master and will be in 1.2 To use it today, do this:
Will be back porting the delegate to work with it soon, but going to close since this should be solved now.
<ion-slides options="options" slider="data.slider">
  <ion-slide-page>
  </ion-slide-page>
</ion-slides>

and your JS:
controller('MyCtrl', function($scope) {
      $scope.options = {
        loop: true
      }

      $scope.data = {};

      $scope.$watch('data.slider', function(nv, ov) {
        $scope.slider = $scope.data.slider;
      })

      $timeout(function() {
        $scope.slider.slideNext();
      }, 1000)

});

$ionicView.enter also fix this issue.


Cannot invoke "java.util.function.Consumer.accept(Object)" because "this.onPageChange" is null when trying to setCurrentPage(1)

Hello !
I don't know how to fix that, maybe I'm just using the function wrong, but I don't think so.
Can someone help me ?

Can you provide the stack trace and/or the snippet of code from your project where the error occurs?

Of course, here it is :
configMenu.setButton(0, 10,new SGButton(new ItemBuilder(Material.BONE)                             .name("Editer les règles")                             .build())                             .withListener(event -> {configMenu.setCurrentPage(1);})                     );
The error refers to those lines on SGMenu.java :
public void setCurrentPage (int page) {         this.currentPage = page;         this.onPageChange.accept(this);     }