Babel runtime

Out of the box Babel support

This would be great, I've been struggling with the babel example locally, creating a function thats too big.

We'll have to npm install --production to get rid of all the babel deps unfortunately, or require that babel is installed globally, so it could be pretty slow :(

I've just been using a build hook like:
cp ../../package.json package.json && npm install --production && ../../node_modules/.bin/babel src -d lib

To get it small.

nice yea im not sure there's a better way. typically I'd say this isn't a big deal since that's something you'd do in CI but it definitely feels awkward with something like Apex and rapid deploys hrmmmm

We did a similar thing but with function-level vs. root-level package.json where the root level contained all dev deps and function level contained runtime deps. Then you can simply run npm install at the function level.

Obvs, this starts to add complexity when dealing with tacking on all this deps handling for JS vs. what one might want in the Java world...

Ahh good call, that makes sense to me, not having to wipe them each time would definitely be ideal haha

decided this is probably not a good idea for now, there are too many ways to compile babel, I think the emails are fine for now

Changed my mind, might add a "webpack" and "babel" runtimes that will work like the examples, people can just create their own webpack config if they want to override stuff

I would not recommend using browserify for server-side code
I don't think babel should come as a default, it seems too magic for me
I don't see why an apex project have to be different than a normal node project, ie:

to install my dependencies, I run npm install
to have babel, I set it up on my project

This stuff wouldn't be applied for the node runtime, it would end up being a new runtime since there's compilation involved. If you don't use webpack or browserify your functions will be much larger than necessary from dev deps, unless you run npm install --production every build

Oh, good I'm happy with a new runtime ;)

pretty much done I just have to look into some weird browserify issue or switch to webpack instead

browserify isn't meant for server side stuff
global is replaced by windows
All native module are mocked

Right forgot that it mocks, damn, webpack it is... shame

Looks like we should be good, there are some options to disable

Too much of a hack without the plugin refactoring, moving to v0.8.0

Not sure if you guys have seen https://docs.npmjs.com/cli/prune

FYI Webpack doesn't play nice with the node aws-sdk (See https://github.com/aws/aws-sdk-js/issues/603).  This is probably the most often used library in the context of nodejs/lambda, so we would need a simple out of the box solution for that.

@rotemtam shit, good to know thanks for pointing that out! Node / npm is a surprisingly bad fit for Lambda so far it seems

@tj I recently came across the same problem as @rotemtam. And it seems it doesn't play nicely with browserify either (https://github.com/aws/aws-sdk-js/issues/696).
However the aws-sdk comes preinstalled in Lambda instances: http://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html
So what I eventually did is make webpack treat it as an external library, and it's working fine so far. See the webpack config below:
module.exports = {
  entry: './src/index.js',
  target: 'node',
  output: {
    path: './lib',
    filename: 'index.js',
    libraryTarget: 'commonjs2'
  },
  externals: {
    'aws-sdk': 'aws-sdk'
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        loader: 'babel',
        exclude: [/node_modules/]
      },
      {
        test: /\.json$/,
        loader: 'json-loader'
      }
    ]
  }
}

awesome thanks @vdel26

@vdel26  +1 works great

Webpack has been working for me. The only problem I have come across so far (besides treating aws-sdk as external) is the 'gm' module making assumptions about its runtime environment having 'package.json'. I worked around this by forking gm and removing the offending line as it is not critical for correctness.

I highly suggest rollup over webpack / browserify for it's tree-shaking abilities (if possible), it can dramatically lower the size of the zip. http://rollupjs.org/
I believe can be used independently, or as a transform to either webpack / browserify.

for browserify: https://github.com/nolanlawson/rollupify
for webpack: https://github.com/egoist/rollup-loader

If you're considering using rollup, you could use jspm as a lightweight, standards-based alternative to webpack/browserify. It uses rollup for bundling behind-the-scenes, and provides some other conveniences besides.
https://jspm.io

Clean package management solution (standards-compliant & works with NPM)
Compiles to multiple targets (CommonJS, ES5, etc.) out-of-box
Easy to configure to use Babel, TypeScript, or others as its transpilation backend, which would make it easier for Apex to support TypeScript or other things for which a jspm plugin exists
Compile+Build: jspm build app
Local Testing: jspm run app (runs in local Node)

Hi @skorlir. I've tried to find a good setup using JSPM for Apex but it turns out that due to limited support for Node it's not a good fit. I think baking in Browserify with Babel would make the most sense. What do you think @tj?

@schickling really? I've been able to get it working pretty well (in limited use cases) just by using
jspm build app --node

@skorlir it always failed for me when packages required native dependencies like child_process.

@schickling
//main.js
import * as child_process from '@node/child_process'

console.log(child_process)

jspm build app --node
works for me.

I'm still for it if we can come to a consensus on what a good default would be, node is in a weird flux of options right now. I believe "Serverless" just uses browserify? It seemed just fine in the examples

A Thorough Argument for Using JSPM and SystemJS
I've been using JSPM ("js package manager") and SystemJS ("universal module loader" based on the old ES6 Loader spec, and now promising support for the forthcoming WHATWG Loader spec) on Node apps and have not had a bad a time of it. That said, there are documented caveats. I haven't yet tried it, but to work around these imperfections SystemJS has implemented conditional loading. Although it is not yet documented, conditional loading could very well solve the problem @tj identified with using Browserify since it would let you explicitly select the "native" Node version of a module. At the very least, it can be said that @guybedford is committed to making JSPM and SystemJS work with the Node ecosystem, and the roadmap depicts a brighter future.
The reason I haven't tried conditional loading, btw, is becuase I haven't had to. There's a fairly clean workaround available today. For actual Node libs, can get away with using the JSPM "nodelibs" modules, like nodelibs-child_process. All you have to do is install them like any other JSPM package, and then code like
import child_process from 'child_process'

console.log(child_process)
// do stuff with child_process

will automatically resolve to the Node version (@node/child_process in SystemJS parlance) when the code is run in Node, and will throw an error when the import is resolved in the browser. For Apex, that's perfectly ok behavior. All I had to do was jspm i child_process and then everything works as expected.
There are currently a large number of nodelibs packages, including "fs", "process", "console", etc. covering (from what I can tell) most of the Node library.
For modules that aren't part of the Node library, things usually "just work." When they don't, the current solution is "overrides" for mapping dependencies differently between Node/browser. I was able to come up with one for the AWS SDK, for instance. (Which was quite a bear - the SDK is full of rather confounding JS hacks that feel old and crufty.) This only works for the browser, however.
So how do we get things that don't "just work" to work in Node?
Node: the "Special Case" of the ES6 Ecosystem of Today
Every ES6 setup involving transpilation that I have seen (Webpack, Browserify, SystemJS, ...) is inherently browser-oriented. In my experience, however, JSPM/SystemJS provides easier access to escape hatches than Webpack - and Browserify provides none.
Here are some common situations, and corresponding JSPM/SystemJS workarounds.

"aws-sdk" breaks any form of bundler (Webpack, SystemJS, anything using Rollup) because dynamic requires (more on this in the next bullet point) break everything.

How to get around it:

First, npm i aws-sdk. Even though you're using JSPM. Bear with me.
Then, import AWS from '@node/aws-sdk'. This forces SystemJS (the module loader) to grab the Node version. That's what @node syntax in an import means.
... Profit?

Any Node module using code like:
for (var f in fs.readdirSync('./lib') { require(f) }

will fail. This is true for every bundler. (This is the underlying reason that aws-sdk doesn't play nice.)

How to get around it:

Differs case-by-case. Usually using the @node trick and installing the dep using npm works.

Node modules with actual native C bindings (eg things using node-gyp) will probably (?) fail too.

How to get around it:

Don't use modules that need to be built as a binary?
Just kidding. There's a SystemJS plugin for Node binaries. Haven't tried it, but people are apparently using it.

Comparison to Alternatives
Webpack
Here's the hack for getting the AWS SDK to work with Webpack. Compared with @node, I personally think it's a lot worse.
I haven't tried to use Webpack with Lambda/Apex, but after seeing that long, long thread about trying to get the AWS SDK to load correctly I was not keen to try it. It's nice to be able to run my code locally, too, without having to upload it to Lambda first. With the Webpack workaround, you lose that. With JSPM/SystemJS, if I run jspm run app, my code runs - no deploy required.  This will make testing much, much easier.
Browserify
Can't use Node libs. IMHO, this disqualifies Browserify entirely. Browserify has no intent to become a bundler for Node targets anyway - "browser" is in the name, after all.
Suggested Approach

a. Try to manage your 3rd party dependencies with JSPM. jspm i npm:<pkg name> for instance. This actually works pretty often, but when it fails...
b. When that fails, manage your 3rd party dependencies with npm and use @node syntax for imports. (You can still use regular relative path imports for your own modules.)
Use Apex hooks to make the build work. I'm using {"build": "jspm build app --node", "clean": "rm -rf build.*"} as my hooks, and it works splendidly with the handler set to "build.default" (jspm builds by default output to a "build.js" file in the project root).
apex deploy and you're done.

I can upload a sample jspm.config.js to show how I have configured things. There's not much to show, though. If you jspm init in a directory and accept the defaults, you'll have something very close to my setup.
On AWS in General
It's noteworthy that none of the stuff I say is likely to work at all with Node v0.10.x, the default build target for Apex. You gotta explicitly set the runtime to "nodejs4.3".
And it's noteworthy, too, that AWS Lambda only supports the most recent unexpired LTS release of Node. Not the most recent to-be-LTS release, because that would be v6 (whose LTS window officially begins in October).
 Lots and lots of polyfills.
The SystemJS babel plugin (plugin-babel) handles this automagically. If you want more control over your polyfills, you can specify a .babelrc and the SystemJS build will respect it. For instance, if you want to add in a babel plugin for transforming async/await syntax into generators, you can put that in your .babelrc. (I have.)

@skorlir thanks for the details, if you're interested maybe a ./example with jspm would help people getting started. For now I think there's so many choices and differing configurations that trying to bake anything into core might just be more confusing than using hooks on their own

I know very little of the js eco system however wanted to share my $.02. I have been using apex with babel & webpack with great success. The required webpack config to work around the AWS issue is simple:
  externals: {
    'aws-sdk': 'aws-sdk'
  }

When running locally I don't use webpack I run the es6 files directly using jest and the babel transformer. When not running tests babel-node works well too.

@crumley That's a lot easier than what I saw. Can you write unit tests that use the SDK when you configure webpack that way? If so, that would be pretty impressive.

The way I have jest configured the tests run against the es6 code on disk
and not the output from webpack. This makes for much easier testing.. on
the other hand the as built artifact is not tested. Choose your poison.
On Wed, Jul 6, 2016 at 3:50 PM skorlir<EMAIL_ADDRESS>wrote:

@crumley https://github.com/crumley That's a lot easier than what I
saw. Can you write unit tests that use the SDK when you configure webpack
that way? If so, that would be pretty impressive.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apex/apex/issues/217#issuecomment-230902048, or mute
the thread
https://github.com/notifications/unsubscribe/AAJvtOWhdAAeVg9njwkZniuNPHnjFldiks5qTBUCgaJpZM4HUeIW
.

Here is an alternative approach using browserify and es2040, which is basically a pre-configured babel set. This is also excluding the aws-sdk and uses the previously mentioned browserify --node flag making it effectively a bundler. Works great.
{
  "runtime": "nodejs4.3",
  "handler": "main.handle",
  "hooks": {
    "build": "../../node_modules/.bin/browserify --global-transform ../../node_modules/es2040 --node --exclude aws-sdk --standalone handle --outfile main.js index.js",
    "clean": "rm main.js"
  }
}

@crumley I tried using externals but it did not do the trick for me.
This vanilla webpack config produces the standard aws-sdk error of Cannot find module 'domain'..
module.exports = {
  entry: './index.js',
  target: 'node',
  output: {
    path: './lib',
    filename: 'index.js',
    libraryTarget: 'commonjs2'
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        loader: 'babel',
        exclude: [/node_modules/]
      },
      {
        test: /\.json$/,
        loader: 'json-loader'
      }
    ]
  }
}

And by just adding externals I get another error Error: function response: Handler 'handle' missing on module '_apex_index'.
module.exports = {
  entry: './index.js',
  target: 'node',
  output: {
    path: './lib',
    filename: 'index.js',
    libraryTarget: 'commonjs2'
  },
  externals: {
    'aws-sdk': 'aws-sdk'
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        loader: 'babel',
        exclude: [/node_modules/]
      },
      {
        test: /\.json$/,
        loader: 'json-loader'
      }
    ]
  }
}

Any ideas on what that could be?

Was just glancing at Apex and saw that @tj asked above what serverless does. Serverless has a plugin that ties WebPack deep into the build process.
It works with serverless offline for serving (and watching for code updates/repacking) locally, and it means I can use TypeScript through a WebPack plug-in, and also run any other WebPack plug-ins.
I'm currently using serverless, but I saw Apex in reference to blog TJ wrote, so I thought I'd check it out.


Need to upgrade Nodejs and python version for lambda function

nodejs14.x and  python3.7 are no longer supported for creating or updating AWS Lambda functions.
function Names

BucketNotificationsHandler
LogRetention
CustomS3AutoDeleteObjectsCustomResourceProviderHandler

I have the same problem

Do you know how to upgrade nodejs14.x to  nodejs20.x?
Can't deploy the app: Resource handler returned message: "The runtime parameter of nodejs14.x is no longer supported for creating or updating AWS Lambda functions.

Hello all! Thanks for reporting this issue.
We have recently updated this demo (#21) to address the outdated AWS Lambda runtimes mentioned in this issue, as well as other dependency upgrades. Please pull the latest changes from this repository and try deploying the CDK stack once again.
Thanks!


Android: Modifying focus outline bounds

Requires API Proposal
This issue requires a new API. An API proposal should be added and discussed before proceeding with implementation. The API proposal can be added in the comments of this issue or linked as a separate issue.
Description
There is currently no way to modify the focus outline without also modifying the view's visible bounds.
On Android, this can be an important feature in some circumstances, as in older versions of Android (API 24 and lower) the way Talkback triggers a "click" is to fire a synthetic touch event at the center coordinates of this box.
React Native version:
v0.63
Expected Behavior
An API would need to be created that would allow setting the focus bounds. When this API was used, the focus bounds should be adjusted to match the values passed in.
Android Details
This is a difficult issue to solve on Android, as there is currently no way to modify the focus bounds of a view.  You can however modify the focus bounds of a virtual view created via an Accessibility Delegate such as AndroidX's build in ExploreByTouchHelper.
To solve this in RN you'd need a way to specify that the outputted View for a component should have an accessibility delegate attached that creates a virtual view identical to the original view, except with different bounds. This would require some deep diving into the system that translates JS components into native Views, and thorough testing to make sure that when creating a virtual view that all properties are correctly passed along.
iOS Details
On iOS this is significantly easier than Android.  It would simply require modifying the accessibilityFrame property on the native View.

I'm going to close this out as I don't think the complexity of implementing this on Android is worth the value provided by this feature.
Basically on Android this will require using virtual views rather than normal views, and supporting these for general purpose use would be quite complicated, as they would need to be attached to some non-virtual parent element, and parent elements can't mix children which are virtual and real, so using this on one element would require that all siblings are also virtual views.


Add PHP 8.0 Attribute mapping support

Hi guys, this is my first contribution here 👾

Q
A

Type
feature

BC Break
no

Fixed issues
#2337

Conflicts with
#2243 (some changes are duplicated there but we need ti check for conflicts or differences)

Summary
This PR adds AttributeDriver to allow mapping documents using PHP 8 Attributes to align with ORM functionality.
The driver is actually same as the AnnotationDriver and using custom Reader.
I noticed some annotations are not documented in the Annotations Reference page:

@DiscriminatorValue - not documented at all
@Inheritance - not documented at all, seems not used anywhere Deleted in https://github.com/doctrine/mongodb-odm/pull/2344/commits/5b4a286b382cae356d8f2e29a6200cb596de216c
@QueryResultDocument - fixed in #2347

Progress

[x] Add the Driver
[x] Annotate all Annotations/Attributes with @NamedArgumentConstructor and add constructors
[x] Test the mapping against existing drivers
[x] Mention the new driver in the documentation
[x] Review Annotations that are not present in the Annotation Reference

Notes

All annotations are now using @NamedArgumentConstructor and thus strict_types and Enum checks are skipped (see https://github.com/doctrine/annotations/blob/f96567ba9e3848f59256b473d730e5ba39d81bfe/lib/Doctrine/Common/Annotations/DocParser.php#L569). I removed the tests relying on these features as they are no longer relevant.
#[Document]'s indexes property cannot be used with PHP Attributes as nested Attributes are not supported. This property is deprecated anyway and top level #[Index] attribute should be used instead.
#[Indexes] attribute cannot be used for the same reason but it is deprecated too.

Thank you for the work done so far! @beberlei could I ask you to help out with reviewing this since you made the same change in ORM?
I'm a little strapped for time right now, but we'll try to give feedback as quick as possible. We definitely want this feature in ODM, so thank you again for getting this started!

@beberlei You are right but the #[Indexes] and #[Document(indexes: ...)] are the only places we use nested annotations and both are deprecated. That's why I'd suggest to keep it simple and keep the attribute hierarchy flat in the future. I saw the ORM implementation where mapping relies on nested annotations but since we are dropping existing nested annotations soon, I don't think it's worth implementing that in AttributeDriver.

That makes sense then, i never used the ODM before and am clueless about use of nested annotations there, just wanted to make sure that its adressed

OK I revisited all annotations and compared with changes from #2243 - there were a few places where I missed the default values or properties that shouldn't be set in constructor.
The only problematic one is Indexes which I can't make work with NamedArgumentConstructor because $value can be an array or a single item and can be constructed either by passing an array of indexes or a list of arguments like:
@Indexes(@Index, @Index, @Index so I left it intact as it's deprecated anyway.

I think we're fine not supporting #[Indexes] until initialisers are done. In the meantime, people have other ways to map indexes using attributes. Let's just make sure to call this out in our docs so that people know they can't just change annotation syntax into an attribute syntax without making some minor tweaks.

Just wanted to let you know I'll get to this PR somewhen next week. I'm a bit swamped at work before going on vacation ;)

@Ahummeling:

So I feel like I've already gone into too much technical detail already, feel free to ignore / resolve my comments at will. This is my first code review I've done outside of my own company. If my comments seem strange or out of place, please let me know, so I can work on it.

If you hadn't mentioned it, I wouldn't have been able to tell. For the benefit of everyone reading this, reviewing code for OSS projects follows the same principles as every other code review you do for your job: you check if the implementation is sound, test coverage is sufficient, and whether edge cases are covered. There's no additional magic involved, except for the butterflies in your stomach after merging and potentially breaking things for many developers :)

@malarzm @alcaeus @franmomu @beberlei @Ahummeling Thank you for your inputs, I feel like we are close to make it final! Can you do another round just to make sure it's all working properly?

@IonBazan the test failure on a sharded cluster seems unrelated - this might be a case of us not using the correct write concern for those tests on a sharded cluster. I'll investigate separately but have kicked the build to see if it passes now.

@franmomu @malarzm happy to merge this if one of you gives it another seal of approval :)

@IonBazan one last thing: could you please rebase your branch atop current 2.3.x? I'd like to al least get rid of merge commits from the history, also there were commits for CI that are no longer needed. Ideally the commit history should make sense on its own, but probably it's too late now so we may squash everything together :)

@malarzm I managed to squash and edit some of the commits to get rid the ones that have been reverted so the history makes more sense now. I kept co-author info where @franmomu helped. Let me know if it needs further squashing.

Thanks @IonBazan! Great work here!


#1060 Cart Fixes

Resolves #1060 and others (e.g. #718 and #997)

This branch runs cart updates about 10x slower than master, I'm going to do some digging and see if I can figure out why and/or find a more optimal solution..

The fixes that implement #997 look good

Ooo good catch, that was lazy of me. I'm inclined to go the server-side route, mostly b/c I'm more comfortable w/ Ruby. I'll see if I can get those done tonight.

I think that the prepare_catalog_index_vars can take an equipment model as a parameter... I'm not sure if that will break things but let's see :-)

Ok, so that totally worked (adding / removing cart items , but I've discovered a new bug. Updating the cart dates when looking at the Equipment Model show view calls PUT /equipment_models/update_cart, which ends up being handled by EquipmentModelsController#update, which isn't permitted for guests so it just hangs (unauthorized JS). When doing it from the catalog you're calling PUT /catalog/update_cart, which is handled by CatalogController#update_cart and is permitted to guests.
Another issue: empty cart doesn't update the catalog counts; we should probably just have it refresh the page instead (although I'm working on fixing the JS).

Ok, I'm actually not sure that that made anything faster, but also emptying the cart kills the datepicker for some reason (even though I copied the code from reload_all). I'll try to investigate more tomorrow.

Ok, fixed the datepicker but still aren't getting the availability string to update when we empty the cart. The reason is because we're checking for params[:controller] == 'catalog' but cart/empty is handled by ApplicationController#empty_cart, so that check doesn't work. This is an issue on master as well, so I'm not sure what to do... we might just change the route. I'll see how that works.

OK! I fixed it by changing the 'empty_cart' button to pull from params[:controller] so the check works. I've also figured out why we were having those authorization errors in the equipment model view for guests; the routes equipment_model/update_cart and equipment_model/delete_cart are getting picked up by earlier routes based on the method (put or delete) and are therefore going to other controller actions (e.g. EquipmentModelsController#update or EquipmentModelsController#destory). I'm wondering if we can do a generalized matcher for update_cart or empty_cart? I'll check it out.

Ok, I think this is now working, and cart updates are pretty snappy locally. I rebased off of master and there were a bunch of conflicts, so I hope I mantained functionality. I created a backup of the original branch 1060_cart_fixes_backup just in case. Ready for re-review!

As a note, I've moved all of the cart update JS to update_cart (from reload_all, but I think that was only used for empty_cart. It's very possible that having both regular cart updates and cart emptying in the same file doesn't make sense (particularly since we need to refresh all of the equipment model divs anyway), so we can easily separate them again.

On second thought, I'm doing that :-).

ok done :-)

This is great!!! It's so slick watching the availability counts update live. Only one thing though, after the button becomes disabled you can still click it and stuff gets added to the cart anyway.. ?

Hmm so the reason why you can still click is b/c it's a link, not a button, so adding the disabled class doesn't change anything. Working on it.

Ok, this should work. If you guys want to re-review catalog_controller.rb and update_cart.js.erb (I took out some old code from when everything was using update_cart) then I can squash and merge. Thanks!

looks awesome!! :shipit:

great, squashing / merging!


Move TOC after title page in pdf preview

Partially addresses: https://github.com/NASA-IMPACT/nasa-apt-frontend/issues/443
@wrynearson Please also verify that view mode is working same as before

Let's wait for other features in the ticket, I'm working on those too!


[DEV] fix views for home/dash/login

See https://github.com/ubclaunchpad/club-manager-client/issues/22.
Fix the views such that they are the full height and width of the page.

this is what the login looks like.

https://github.com/ubclaunchpad/club-manager-client/pull/29/checks?check_run_id=1324119751
says that there's a period at L19 of App.tsx but I dont see it.

@jedyeo this message is always confusing - I think it means delete the extra space at the end of the line

fixed lint issues

Please review the scss files, there was a weird naming conflict if I tried to name the container container wrapping the h1 header in Dashboard.tsx. Let me know if there's another name you would prefer for it.


This should be fixed.


nixos/matrix-synapse: Remove webclient from default listener

Motivation for this change
webclient only allows serving a web directory under /_matrix/client additionally it makes no sense to set without also setting web_client_location
This only incentivizes running the client under the same domain as the homeserver.
Which is not recommended due to CORS.
Anyone wishing to use the redirection feature can add the webclient listener themselves. But this doesn't seem often used for anything.
Things done
Removed webclient from listener configuration.

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

The webclient option will be removed in synapse 1.53.0. See https://github.com/matrix-org/synapse/releases/tag/v1.51.0


jackson update 2.9.9

why, see https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.9

Thanks for the PR and for putting this on our radar! We changed the way we store shared versions (they're now in dependencies.gradle), but I've gone ahead and updated the jackson version there and pushed that change.


Question: playlist- support

Hello! Since I don't find anywhere else to ask, I'll ask here:
I don't have an KaiOS- phone yet, but I'm thinking of buying one. But the music app is kind of crucial. And since I have a lot of playlists I want to listen to... So, is it possible to make playlists on the computer, and then transfer them onto the phone/sd-card? Or mount the phone/sd-card on the computer and then make the playlists there? I use linux as my daily OS.
Regards
MitraMai

You can't create a playlist on computer then transfer it but K-Music support create, update & duplicate playlist


Clean up inconsistent project structures

The structures of the different submodules have somewhat diverged. We should do the little effort to make them consistent.

This issue was moved to rheem-ecosystem/rheem#17


Implement TerminateProcess

This PR implements the TerminateProcess function which is part of #69.

[Current coverage][cc-pull] is 95.93%

Merging [#76][cc-pull] into [master][cc-base-branch] will decrease coverage by -0.78%

Powered by Codecov. Last updated by [ea36202...bd2a823][cc-compare]
[cc-base-branch]: https://codecov.io/gh/opalmer/pywincffi/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/opalmer/pywincffi/compare/ea36202d6352b27739cc65149615a61addc297a3...bd2a823c2c693fe8ee595f3daeafef8b83110988
[cc-pull]: https://codecov.io/gh/opalmer/pywincffi/pull/76?src=pr


setting first player

Hi,
Is there a way to set the first player after editing a position? Right now it seems that only Black can play first. I use it to edit problems, and I have been removing the pass manually when White goes first.
On a related note, would you consider allowing one to set the PL tag?
Thanks

That's a great idea! Do you have some suggestions as how to let the user set the PL tag? Maybe in edit mode on the edit bar? Or somewhere else?

Well, I think the only place one would need to set PL is on the root node (game properties). As such, while it can definitely be in the edit mode, it may needlessly clutter that interface. I like the edit mode simplicity as it is right now.

I note that PL tags that already exist are not honoured at the moment. Strictly speaking any node should be able to have a PL tag, which would override whatever logic Sabaki uses to determine whose move it is.

I don't think PL is root node only. It's a 'setup property' along with AE, AW and AB (see spec), so one should be able to set it on any node.

@fohristiwhirl: Sabaki should honor existing PL tags. Checking... Hm, PL[W] is working, but PL[B] is not. This is a bug.

Okay then, the edit mode seems like the appropriate place if you wanna retain the full generality of the spec.

Another idea is to repurpose the current player indicator:

Currently, clicking the indicator will make a pass (and thus switching the player). Instead, we can just change the player (adding PL tag if necessary) without making a pass.

I find that a bit unexpected and therefore likely to confuse. If I understand correctly, you propose to modify the play-like mode: each click corresponds to making a move --- either placing a valid color stone in a valid position or pass. While I remember wondering how to pass the first time (clicking on the player indicator did not strike me as the way to play pass), I don't think changing the meaning of the indicator click to inserting a PL (which is not a game event, but rather  something that goes against the natural development of the game or the implementation of different rules) would improve upon the matter. Besides, how will one generate a pass then? Use a click modifier (ex. Ctrl-click) on the same button? Add another button? I think that would be a bit opaque to the user: even though the situation on the board would look the same the generated SGF will be different, and it may trigger a different treatment in another SGF consumer (different semantics).

I think we have a misunderstanding.
The (intended) way to make a pass is to click on the hamburger menu and choose 'Pass'. The click on the current player indicator is just a shortcut if you will. I'm not suggesting to completely replace passing!
My thoughts are as follows: If the current player indicator is clickable, one would expect it to change the current player. Currently, Sabaki interprets this as 'Make a pass'. But I think it would be even more natural to insert a PL tag instead. (Change current board state instead of creating a new node)
Nevertheless, I agree that suddenly changing the behavior is a breaking change and probably a bad idea. What are your thoughts on this?

I'm not @georgemarrow but I completely agree with your suggestion: making a pass is semantically very different from setting PL, and forcing the current player indicator represents the latter much more than the former.
Here's one compelling UX argument: everything about the current player indicator represents a toggle, so you would expect that hitting it twice returns you to the exact same state you were in. But – whoops! – if you try to do that, you'll be prompted to remove dead stones. In fact, if you hit the current player indicator by accident, you have to go all the way to the tree view to undo that. This completely breaks expectation for that kind of UI element. However, if it simple toggled PL, it would behave the way you'd expect.
My $0.02!

@yishn  I see now what you meant. I think it would be a welcome change that would align better the present icon with the button semantics, as @apetresc also pointed out. I am not sure about delegating the pass to the right-side menu only, but I think your suggestion as stated is an improvement.

If the goal is to still have a convenient way to input a pass move, how about adding a shortcut for it? (Unless I'm missing one that already exists). ⌘P or something.

I can add a keyboard shortcut for that. Thanks for your input everybody!


refactor NetworkPortRange into a pointer

Even if the port range is not declared, the current network status will also include portRange. Such as,
    externalAddresses:
    - ip: 47.98.xxx.xxx
      portRange:
        protocol: TCP
      ports:
      - name: "8000"
        port: 544
        protocol: TCP
    internalAddresses:
    - ip: <IP_ADDRESS>
      portRange:
        protocol: TCP
      ports:
      - name: "8000"
        port: 8000
        protocol: TCP

To avoid that, refactor NetworkPortRange into a pointer.

/LGTM


Teckin SP22 - nothing happens

Nothing happens....
I connect my phone to the newly created vtrust-flash AP, I set the plug to start flashing, I press Enter.... and all I get are dots. Below arte the log files.
NOTE, all logs start with a ^C  --> I am NOT touching the keyboard, so I'm not sure this is coming from.
This is a freshly installed Raspberry Pi 3B.
Anybody any ideas where I might be going wrong?
root@raspberrypi:/home/pi/tuya-convert# python -V
Python 2.7.13
root@raspberrypi:/home/pi/tuya-convert# python3 -V
Python 3.5.3

smarthack-mqtt.log
root@raspberrypi:/home/pi/tuya-convert/scripts# cat smarthack-mqtt.log
^C1553327860: mosquitto version 1.4.10 terminating
1553327865: mosquitto version 1.4.10 (build date Wed, 13 Feb 2019 00:45:38 +0000) starting
1553327865: Using default config.
1553327865: Opening ipv4 listen socket on port 1883.
1553327865: Opening ipv6 listen socket on port 1883.

smarthack-smartconfig.log
module.js:549
    throw err;
    ^

Error: Cannot find module 'debug'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/pi/tuya-convert/scripts/smartconfig/smartconfig.js:16:15)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)

smarthack-web.log
root@raspberrypi:/home/pi/tuya-convert/scripts# cat smarthack-web.log
^CTraceback (most recent call last):
  File "./fake-registration-server.py", line 132, in <module>
    main()
  File "./fake-registration-server.py", line 128, in main
    tornado.ioloop.IOLoop.current().start()
  File "/usr/local/lib/python3.5/dist-packages/tornado/platform/asyncio.py", line 148, in start
    self.asyncio_loop.run_forever()
  File "/usr/lib/python3.5/asyncio/base_events.py", line 421, in run_forever
    self._run_once()
  File "/usr/lib/python3.5/asyncio/base_events.py", line 1388, in _run_once
    event_list = self._selector.select(timeout)
  File "/usr/lib/python3.5/selectors.py", line 445, in select
    fd_event_list = self._epoll.poll(timeout, max_ev)
KeyboardInterrupt
Listening on port 80
[I 190323 07:57:55 web:2246]☼ 200 GET / (<IP_ADDRESS>) 7.76ms

smarthack-wifi.log
wlan0: STA 6c:c7:ec:XX:XX:XX IEEE 802.11: disassociated
wlan0: AP-STA-DISCONNECTED 6c:c7:ec:XX:XX:XX
^Cwlan0: interface state ENABLED->DISABLED
wlan0: AP-DISABLED
nl80211: deinit ifname=wlan0 disabled_11b_rates=0
Backing up /etc/dnsmasq.conf...
Writing dnsmasq config file...
Creating new /etc/dnsmasq.conf...
Writing hostapd config file...
Configuring AP interface...
Applying iptables rules...
Starting DNSMASQ server...
RTNETLINK answers: File exists
Starting AP on wlan0 in screen terminal...
Configuration file: /etc/hostapd/hostapd.conf
Failed to create interface mon.wlan0: -95 (Operation not supported)
wlan0: Could not connect to kernel driver
Using interface wlan0 with hwaddr b8:27:eb:26:1e:fa and ssid "vtrust-flash"
wlan0: interface state UNINITIALIZED->ENABLED
wlan0: AP-ENABLED
wlan0: STA 6c:c7:ec:XX:XX:XX IEEE 802.11: associated
wlan0: AP-STA-CONNECTED 6c:c7:ec:XX:XX:XX
wlan0: STA 6c:c7:ec:XX:XX:XX RADIUS: starting accounting session 881F7A79914AF2D6
wlan0: STA 6c:c7:ec:XX:XX:XX WPA: pairwise key handshake completed (RSN)

same for me

same for me - blue blinking LED - after hitting "Enter" after 2-3 seconds the LED turns off followed by many dots in the console without doing anything.

@erichegit As mentioned in another post, the LED is supposed to stop flashing after a couple of seconds - to me it seems your device is making a successful connection to the AP - so it sounds to me like you are one step ahead of me :-)

@gmcbrien Try pulling the latest version, I've merged the Python based SmartConfig
@dave-castle Need more details, pull the latest version, try again, and open an issue with your logs
@erichegit Yes, @gmcbrien is correct, the LED should stop blinking when it pairs successfully. Pull, test again, and post logs

Very good @kueblc - I pulled the latest build and it works perfectly! Many thanks!

Very happy to hear it, thanks for the feedback! Others, please open a new issue for any other problems.

after pulling latest build it worked for me immediately. Great Job, thanks!

Awesome, thanks for the feedback

maybe dumb question but how to go on after successful flashing, i compiled ESPHome bin, uploaded to my rasp into the /tuya-converter/files/ dir, but if i typed curl http://<IP_ADDRESS>/flashURL?url=http://<IP_ADDRESS>/files/temp_flash.bin, I got this
pi@raspberrypi:~/tuya-convert $ curl http://<IP_ADDRESS>/flashURL?url=http://<IP_ADDRESS>/files/temp_flash.bin
File Not Found

My bad, I forgot to update the README. I'll update this soon. Try http://<IP_ADDRESS>/flash3?url=http://<IP_ADDRESS>/files/temp_flash.bin instead.

thanks - I can confirm flashing with a Raspbian Stretch image is now working :+1:
BUT - I miss a step.
Even when I use your link "temp_flash.bin" I only get "Hello World" when going to <IP_ADDRESS> or the info page on <IP_ADDRESS>.
What to do next=?
With hardware flashing I was used to provide SSID + pwd to access the device after flashing directly via webbrowser - please can you update this steps in the readme?

This is already in the README

Currently a Sonoff-Tasmota v6.5.0 basic build is already included. It will open an WiFi access point named sonoff-XXX.

@kueblc - how can the vtrust-flash WLAN be turned off after flashing?
Restarting the Pi is one option, but I would like a command to turn off the hotspot.
That's what stop_flash.sh is for

I had the same problem: smartconfig failed, the LED kept blinking. In the end I had to use the offical Tuya android app to get the plug to connect to the vtrush-flash wifi. I was using 99a317efd72b51566ccf774efb645b843d7ed8cb.
I noticed only one difference between the packets smartconfig.py sends and the original Tuya app: The app uses EUSWIlyA7wC5iD as the token_group instead of US000000000101.

The app sends a unique token and secret for each pairing attempt. It doesn't really matter what we use as we are not actually registering the device to the cloud and instead running our own fake registration server, which couldn't care less what the token, secret, and region are.
Did you connect a device to the vtrust-flash AP while running smartconfig.py?

I first ran start_flash.sh and followed the instructions, but the plug did not connect. Manually calling main.py again didn't help either. Only when using the Tuya app I was able to get the plug to connect.
If required, I can provide a packet dump of what the Tuya app sends, as well as a flash dump of the original firmware.


Fix for non-unique partial files shadowing each other

closes #2459
Current behaviour of express-hbs is to load all partials with . filter
which allows files with same name but different extensions to be mapped
to the same name. This way one partial is shadowing the other.
Fix now is to give a warning at start up if more than one file resolves
to the same name.

This was alternatively fixed by barc/express-hbs#93


Doctrine cache 2

Fixes #611
I ported those 2 Classes over from the 1.x versions of the cache bundles.
As it's a straight copy with some slight modifications I'm not 100% sure how licensing works here, maybe someone can enlighten me on that :)

Ok scratch that, aparently they deprecated it for PSR-6/16 which is implemented by the symfony cache, so lets use that instead.

Any reason CI is not starting on this btw?

Hello, I don't know, I am barely maintaining this project now :sweat_smile:
Must related to the new policy of Travis.
Otherwise, I wanted to remove this feature from the bundle and just document how to configure all of this explicitly.

I mean this PR basically removes it for doctrine >= 2.9 tbh.
Older versions would still work so you still have BC.

@B-Galati @snc @curry684 Can I be a co-collaborator in this project?

Yes that would be awesome, both me and @B-Galati stepped in to fix a lot of outdated stuff for the 3.x transition, but I'm also very short on time past months. I'll drop @snc a line.


readme: fix correct link in scala index

Well, I do not know what the link to sbt-fs2-grpc is yet 😀


Distance to empy error

Describe the bug
Hi,
I'm testing volvo2mqtt on my XC60 2024 PHEV.
Integration works correctly except field distance to empy.
In volvo2mqtt log there is :
INFO : Failed, Distance to Empty is unfortnately not supported by you vehicle.
Other fileds (fuel level, eletric range, etc..)  are supported (and I receive correct data)
Expected behavior
I tested Volvo API
https://api.volvocars.com/connected-vehicle/v2/vehicles/VIN/statistics
and I receive correct data in field distanceToEmptyTank (that represents distance to empy value) :
"distanceToEmptyTank": {
"value": 550,
"unit": "km",
Version info:
v1.8.13

Another API change! Thanks for reporting. I will fix this tomorrow.

Yes, I suppose that fix is in volvo.py
elif sensor_id == "distance_to_empty":
if util.keys_exists(data, "distanceToEmpty"):
ID is changed from distanceToEmpty to distanceToEmptyTank
By..

Jep, this is the fix. Nothing special

Please test v1.8.14 :)

Perfect, it works
Thanks


Support authentication when resolving image digest

This is all that was needed to run ec validate image against a private repository. All other places seem to handle authentication already.

I tested against a private repo, and it does work.


[FEATURE] Provide CodeBuild Job Links in seedfarmer apply Debug Mode at the Start of Deployment

Is your feature request related to a problem? Please describe.
When running seedfarmer apply in debug mode, the CodeBuild job link is currently only provided after a job fails. This delay in providing the link hampers the troubleshooting and review process for module deployments.
Describe the solution you'd like
I would like the seedfarmer apply command in debug mode to consistently provide the CodeBuild job link for each module deployment, regardless of the job's outcome. Ideally, the link should be included in the output from the start, enabling users to quickly access job details and logs.
Describe alternatives you've considered
Manually searching for the CodeBuild job associated with each module deployment is an option, but it is time-consuming and disrupts the workflow.

@zaremb I believe we can always proved the Codebuild URL if in debug mode...but unfortunately only after the build has completed (in seedfarmer).   I can do some research on CodeSeeder regarding providing this data earlier, but preliminarily i know we can support the URL after successful job completion


Optional long-polling based segment announcement via HTTP instead of Zookeeper

This PR  introduces following configurations.
//to be used at coordinators and brokers to use an implementation of ServerInventoryView that
//syncs segments list over HTTP instead of zookeeper
druid.announcer.type=http

//to be used at historicals and realtime tasks to stop pushing segment updates to zookeeper
//false by default
druid.announcer.skipSegmentAnnouncementOnZk=true

I'm keeping those undocumented for now. We will use them on our big internal clusters first before asking users to use.
changes -
All nodes, that serve segments e.g. historicals and realtime indexing tasks, provide a "/druid/internal/v1/segments" HTTP endpoint that can incrementally provide the list of segments being served by that node, this uses Async IO so jetty threads are not held waiting. To power this endpoint, following method is added to DataSegmentAnnouncer interface.
  /**
   * Returns Future that lists the segment load/drop requests since given counter.
   */
  public ListenableFuture<SegmentChangeRequestsSnapshot> getSegmentChangesSince(SegmentChangeRequestHistory.Counter counter);

On coordinator/brokers side, HttpServerInventoryView class is introduced which is equivalent to BatchServerInventoryView but syncs the segment inventory using the mentioned HTTP endpoint. Server discovery
is still done via zookeeper. ServerInventoryView is made an interface and its old contents are moved to AbstractCuratorServerInventoryView .
TODO: (subsequent PRs)

reserve some jetty resources for "/druid/internal/v1/segments" endpoint
In HttpServerInventoryView, switch the server discovery also to HTTP and make it pure HTTP.

If I understand correctly, you update segments by calling httpClient.go(url) for each server in the servers list infinitely inside a thread pool.
To my knowledge, the httpClient.go() use a connection pool which actually using ImmediateCreationResourceHolder. This resourceHolder holds an objectList whose size is configed by broker.numConnections. httpClient.go takes first connection from the head of objectList and give it back and add the connection to the end of objectList when httpClient.go() finished.
In this way all connections holed by this resourceHolder are active(or hot?), whether this is a kind of waste if the druid cluster is a not a busy cluster?
If the cluster is not a busy cluster, can a connection is in disconnected state(disconnected by historical/realtime node when over the idleTimeOut) when attempt to use this connection to get segment list? In this case a new connection is created(renew), will it cause performance issue if lots of connections need to be renew?

@kaijianding thanks for taking a look. you are right about the connection usage and yes coordinator/broker would be using one connection from HttpClient per historical/realtime all the time.
On a non-busy cluster or in the worst case coordinator/broker would have to create one connection per historical/realtime every 4 mins ( default config in HttpServerInventoryViewConfig ). But, They will be created sequentially and not in parallel.
However, it turns out that this problem can be very easily fixed by changing the get/giveBack behavior of ResourcePool.ImmediateCreationResourceHolder to LIFO instead of current FIFO. It can be done by replacing https://github.com/metamx/http-client/blob/master/src/main/java/com/metamx/http/client/pool/ResourcePool.java#L237 by objectList.addFirst(object). I will do a PR to fix that.
btw, I have also made few updates in SegmentListerResource to make it async and not hold any jetty threads while in wait.

Related https://github.com/druid-io/druid/pull/2368

removing the discovery of historical/realtime nodes from zookeeper is gonna relate with https://github.com/druid-io/druid/issues/2312 (as described in https://github.com/druid-io/druid/issues/2312 ) . I am looking into that and that would be done in a separate PR.

@himanshug  according to your idea, through looping asking segments from historical/realtime nodes background ,how to avoid holding stale segment infos on coordinator/brokers side if not looped in time while a query occurred ?

@weijietong brokers/coordinators would not have stale segment info because they are running inifinite (no wait) loop to get latest segment information from historical/realtime nodes.... historical/realtime nodes "hold" the request till there is new information to provide or timeout provided in the request is reached.

@himanshug a general comment - it would be good to put some comments on important classes, variables and methods. For example, a high level design comment on HttpServerInventoryView, some comments on SegmentChangeRequestHistory, usage of hash in Counter, reason of passing waitingFutures in SettableFuture etc. This would make it easier to understand the code and help the person changing the code not make mistakes.
I have gone through the code at high level and it looks good me to so far.

@pjain1 added some docs for clarification

@himanshug, I know I said on the dev sync today that I thought this should remain undocumented, but I changed my mind. I'm still ok with it only being reviewed by people from your organization, but I think it should be documented as experimental. That way other folks could help try it out too.

@cheddar I also introduced DataSegmentServerAnnouncer and removed server announcements from DataSegmentAnnouncer implementation. Now only node who really serve segments will announce themselves in inventory and not random peon task processes.

@gianm I still think we should keep it undocumented for now and not confuse regular users with a feature which is just to optimize things and haven't been used at scale yet. We will try and document it in next release probably.

👍


K8s Dev UX: Push to File (M1) GA MVP

h2. Overall Outcome
Customer serves secrets through volume mounted files to an existing application workload deployed into K8s.  This only requires modifying the application deployment manifest and not the application itself.  This essentially matches Novartis’ primary desired use-case.
h2. Epic/Release Outcome
This second project and release includes some additional features, primarily file path configuration and full customer templates.  We believe this results in a compelling minimum scope.  Additionally, it completes the definition of done at “Certified”/GA level for all implemented features.  This means that push to file would now be warranted/supported for production use by CyberArk.
User Stories:

US-7 (custom file path + name)
US-9 (custom file templates)

h2. References

PRD: [Conjur Developer Experience|https://cyberark365.sharepoint.com/:w:/r/sites/Conjur/_layouts/15/Doc.aspx?sourcedoc=%7B956DB935-7E3D-4D88-B964-188BCB6F7729%7D&file=Conjur%20Developer%20Experience%20for%20K8s%20PRD.docx&action=default&mobileredirect=true]
Feature Doc: [K8s Dev UX: M1|https://cyberark365.sharepoint.com/:w:/r/sites/Conjur/Shared%20Documents/SDLC/Projects/Integrations/Kubernetes%20Developer%20Experience/Feature%20Doc%20-%20Kubernetes%20Developer%20Experience%20M1.docx?d=wb782e509693f408685a65d477a0f4abd&csf=1&web=1&e=Xwmx0B]
Solution Design: [K8s Dev UX: Push to File|https://github.com/cyberark/secrets-provider-for-k8s/blob/main/design/m1_push_to_file_design.md]

https://ca-il-jira.il.cyber-ark.com:8443/browse/ONYX-11206


GraphQL

Description

This pull request introduces the ability to query your Runway resources/models with GraphQL.
Enabling
GraphQL won't be enabled on resources by default, it'll have to be explicitly enabled with a simple config setting:
// config/runway.php

'resources' => [
  \App\Models\Product::class => [
    'name' => 'Products',
    'blueprint' => 'product',

    'graphql' => true,
  ],
],

Example Query
{
  products {
    data {
      id
      name
      slug
      price
    }
  },
  product(id: 4) {
    name
    price
  }
}

To Do

[X] Base GQL Queries
[X] Base GQL Type
[x] Better way of deal with IDs and other non-blueprint columns
[x] Figure out why queries are not showing in GraphiQL Explorer
[ ] Write a new 'GraphQL' page in the documentation (add to Oxygen once merged)
[ ] Support for the BelongsTo fieldtype
[ ] Support for the HasMany fieldtype

Related Issues

Closes #54

Hmm, can't seem to get Runway's relationship fieldtypes to work in GraphQL, here's an example of a query I'm doing on the BelongsTo fieldtype:
{
  product(id: 4) {
    id
    name
    brand_id
  }
}

And this is the response I get back from GraphQL:
{
  "errors": [
    {
      "message": "Field \"brand_id\" of type \"runway.graphql.types.brand\" must have a sub selection.",
      "extensions": {
        "category": "graphql"
      },
      "locations": [
        {
          "line": 5,
          "column": 5
        }
      ]
    }
  ]
}


More than 10 drive not working.. please fix it

I have added 25 drive and its showing on dropdown. when i select the drive after 10th drive, it's not working.. please someone help to fix it..

Fix it in the next version

I have added 25 drive and its showing on dropdown. when i select the drive after 10th drive, it's not working.. please someone help to fix it..

How did you add multiple TDs ? there is only 1 spot for refresh token.but each TD has is own token.
how to edit index.js for this ?
tnx.

I have added 25 drive and its showing on dropdown. when i select the drive after 10th drive, it's not working.. please someone help to fix it..

How did you add multiple TDs ? there is only 1 spot for refresh token.but each TD has is own token.
how to edit index.js for this ?
tnx.

All TD should be in same account

I have added 25 drive and its showing on dropdown. when i select the drive after 10th drive, it's not working.. please someone help to fix it..

How did you add multiple TDs ? there is only 1 spot for refresh token.but each TD has is own token.
how to edit index.js for this ?
tnx.

Fix it in the next version
Dear @Aicirou

when will you release the next version ? I'm using Dark Mode of Your Theme.. It looks great but not fully satisfied with mobile version. Please make it more response in mobile and make  size option in mobile would be great !


NAT rulebase export issue

Exporting NAT policy
Getting information from show-nat-rulebase
Retrieved 50 out of 4341 rules (1%)
Retrieved 100 out of 4341 rules (2%)
Retrieved 150 out of 4341 rules (3%)
Retrieved 200 out of 4341 rules (4%)
Retrieved 250 out of 4341 rules (5%)
Retrieved 300 out of 4341 rules (6%)
Retrieved 350 out of 4341 rules (8%)
Retrieved 400 out of 4341 rules (9%)
Retrieved 450 out of 4341 rules (10%)
Retrieved 500 out of 4341 rules (11%)
Retrieved 550 out of 4341 rules (12%)
Retrieved 600 out of 4341 rules (13%)
Retrieved 650 out of 4341 rules (14%)
Retrieved 700 out of 4341 rules (16%)
Retrieved 750 out of 4341 rules (17%)
Retrieved 800 out of 4341 rules (18%)
Retrieved 850 out of 4341 rules (19%)
Retrieved 900 out of 4341 rules (20%)
Retrieved 950 out of 4341 rules (21%)
Retrieved 1000 out of 4341 rules (23%)
Retrieved 1050 out of 4341 rules (24%)
Retrieved 1100 out of 4341 rules (25%)
Retrieved 1150 out of 4341 rules (26%)
Retrieved 1200 out of 4341 rules (27%)
Retrieved 1250 out of 4341 rules (28%)
Traceback (most recent call last):
File "/app/tools/ExportImportPolicyPackage/import_export_package.py", line 73, in
export_package(client, args)
File "/app/tools/ExportImportPolicyPackage/exporting/export_package.py", line 65, in export_package
nat_data_dict, nat_unexportable_objects = export_nat_rulebase(show_package.data["name"], client)
File "/app/tools/ExportImportPolicyPackage/exporting/export_nat_rulebase.py", line 13, in export_nat_rulebase
rulebase_rules, general_objects = get_query_nat_rulebase_data(client, {"package": package})
File "/app/tools/ExportImportPolicyPackage/exporting/export_objects.py", line 184, in get_query_nat_rulebase_data
if "Automatic Generated Rules : " in rulebase_item["name"]:
KeyError: 'name'

Is it possible you have nat sections in the exported rulebase that don't have a name?

Is it not allowed to use this name?

It's a feature in the Smart Console that shows the user that text instead of leaving it empty if a name wasn't set, the section object itself doesn't have a name. I recommend adding names to such objects and then running the tool again.

ty
i will add name to such objects


Add citation info

What is/are the canonical citation(s)? A citation.bib should be added to, e.g., the cmn/zhs/ subdirectory, and also to the main directory if there is one about the hierarchical grammar approach.
Then the cmn/zhs/METADATA file should be updated with this info, and the canonical citation should be selected on the wiki (I just added a few citations from Sanghoun's website; add more if available).

And after updating the METADATA file, perhaps regenerate the table for the grammar catalogue, which currently doesn't have any entry for Zhong (just ManGO)

Thanks Mike.  ZZ: I think the GEAF paper should probably be the canonical
citation, right?
On Sun, Oct 1, 2017 at 3:06 AM, Michael Wayne Goodman <
<EMAIL_ADDRESS>wrote:

And after updating the METADATA file, perhaps regenerate the table for the grammar
catalogue http://moin.delph-in.net/GrammarCatalogue, which currently
doesn't have any entry for Zhong (just ManGO)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/delph-in/zhong/issues/4#issuecomment-333329349, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABD8xuKhraDfLY3rIUX_xp4spHgI1IDdks5snpE_gaJpZM4PpqL7
.

--
Francis Bond http://www3.ntu.edu.sg/home/fcbond/
Division of Linguistics and Multilingual Studies
Nanyang Technological University

Dear folks!
I also think the GEAF paper is the right citation for now.
Sanghoun
나의 iPhone에서 보냄

오전 11:30, Francis Bond<EMAIL_ADDRESS>작성:

Thanks Mike. ZZ: I think the GEAF paper should probably be the canonical
citation, right?
On Sun, Oct 1, 2017 at 3:06 AM, Michael Wayne Goodman <
<EMAIL_ADDRESS>wrote:

And after updating the METADATA file, perhaps regenerate the table for the grammar
catalogue http://moin.delph-in.net/GrammarCatalogue, which currently
doesn't have any entry for Zhong (just ManGO)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/delph-in/zhong/issues/4#issuecomment-333329349, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABD8xuKhraDfLY3rIUX_xp4spHgI1IDdks5snpE_gaJpZM4PpqL7
.

--
Francis Bond http://www3.ntu.edu.sg/home/fcbond/
Division of Linguistics and Multilingual Studies
Nanyang Technological University
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Ok I selected the GEAF publication as the primary one in ZhongTop. The following still needs to be done to close this ticket:

[ ] Add citation.bib to Zhong repo (top-level or under cmn/zhs/, as appropriate
[ ] Update METADATA
[ ] Add grammar catalogue entry (or entries, for the other Zhong grammars like yue and zht)


PEM block types

I would like to export constants for block types rather than hard-coding the text.

Yeah, I'm fine with that. :wink:


Allow extension to control whether interactive window editor group is activated via options

This PR is required to fix https://github.com/microsoft/vscode-jupyter/issues/6496
TLDR the Jupyter extension needs the ability to set focus to the interactive window, in order for the embedded NotebookDocument to show up in window.activeNotebookEditor so we can use NotebookEditor.revealRange to scroll to a specific cell

Looks good to me.


AjaxFileUpload - Files over 20mb

The AJAX Control Toolkit \ 17.1.1
The installation method

[ ] Installer
[X ] NuGet package
[ ] A custom build from the source code

Minimal steps to reproduce the bug
<ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload" runat="server" onuploadcomplete="AjaxFileUpload_UploadComplete" ThrobberID ="myThrobber" MaximumNumberOfFiles="1" AllowedFileTypes="wma,mp3,m4a,wav" ClearFileListAfterUpload="true" OnClientUploadStart="UploadStart" OnClientUploadComplete="UploadComplete" />
Actual result
In 17.1.1...
<script type="text/javascript">
//<![CDATA[
Sys.Application.add_init(function() {
    $create(Sys.Extended.UI.AjaxFileUpload.Control, {"allowedFileTypes":"wma,mp3,m4a,wav","clearFileListAfterUpload":true,"clientStateField":$get("cphPageContent_ModalStudentAudio_AjaxFileUpload_ClientState"),"contextKey":"{DA8BEDC8-B952-4d5d-8CC2-59FE922E2923}","enabled":true,"maximumNumberOfFiles":1,"postBackUrl":"/test/student_audio?id=9290","serverPollingSupport":true,"uploadHandlerPath":"/AjaxFileUploadHandler.axd"}, {"uploadComplete":UploadComplete,"uploadError":UploadError,"uploadStart":UploadStart}, null, $get("cphPageContent_ModalStudentAudio_AjaxFileUpload"));
});
//]]>
</script>

This works with files < 20mb, and fails when over. *

Expected result
In 16.1.1...
<script type="text/javascript">
//<![CDATA[
Sys.Application.add_init(function() {
    $create(Sys.Extended.UI.AjaxFileUpload.Control, {"allowedFileTypes":"wma,mp3,m4a,wav","clearFileListAfterUpload":true,"clientStateField":$get("cphPageContent_ModalStudentAudio_AjaxFileUpload_ClientState"),"contextKey":"{DA8BEDC8-B952-4d5d-8CC2-59FE922E2923}","maximumNumberOfFiles":1,"postBackUrl":"/test/student_audio?id=9287","serverPollingSupport":true}, {"uploadComplete":UploadComplete,"uploadStart":UploadStart}, null, $get("cphPageContent_ModalStudentAudio_AjaxFileUpload"));
});
//]]>
</script>

Browser(s) used
Chrome/Edge
A site deployment method

[X ] VS development web-server,
[X ] IIS

Hi @JayH77
I tried to reproduce this issue with this sample project:
AjaxFileUploadLargeFilesTest.zip
However, I successfully uploaded files which are over 20Mb.
Would you please update this project or provide your own to illustrate described issue?

Hi @MikhailTymchukDX
I'm away until Monday, so will try to do this then.
Many thanks

Just had a quick change to test.
Your project won't allow me to upload files 1.4mb and 8.3mb but will allow a 40.2mb.
What do you need?

@JayH77
Would you please provide files that failed to upload so that I can research them?

Hi,
I can do, but I found an error pattern. It might be unrelated to size (I can't fully test as I'm no a different PC, will confirm Monday) but on this PC I can't upload wma files. Let me know if you need me to send one.

I'm sure this is because the .wma extension is not allowed by default starting with v17.1.1.
Please add the following code line to your Web.config:
<ajaxControlToolkit additionalUploadFileExtensions="wma" />

For a complete list of allowed extensions, please see this article: https://github.com/DevExpress/AjaxControlToolkit/wiki/AjaxFileUpload-setup#allowed-file-extensions
I look forward to your response.

I've updated the sample project, so you can upload wma files:
AjaxFileUploadLargeFilesTest.zip

Yes, that's working - thanks.
I'll double-check this resolves my issue on the other computer on Monday.
Thanks

Glad to hear it!
I consider the problem solved, so I'm closing this issue.
If it's not, feel free to comment so I can reopen it and we can continue our research.


Only update changed attributes

When updating a resource (POST /{id}), the Ruby library seems to (I don't speak Ruby) send only the properties that were actually updated (or skip the updated altogether if there were none). Should the Java library do this too?

Yes, I think this behaviour should be in the java library as well.

This will entail a bit more work as it is not a generally expected practice in Java SE. It will require either some kind of AOP and/or bytecode manipulation and reflection (introducing additional library dependencies), or verbosely manually wrapping all POJO setters with some code that records each update.
Discuss whether the budget and time frame permit this.

What is the expected practise in Java SE? Are all properties sent back to the server regardless of whether they have changed or not?

In terms of a HTTP API, only sending changed properties is of course desired functionality. I was referring to tracking changed POJO properties in general: unlike in Ruby, there are no facilities in Java SE to easily (transparently, with minimal overhead) do this. (Tracking changed properties is a more common practice in Java EE where some kind of AOP functionality is usually provided via libraries.)
The bottom line is that tracking change properties can be done, but at the cost of:

additional 3rd-party dependencies, and
bytecode manipulation might have to be used (either that, or manually adding code to all setters of all POJOs).

Both points might be an issue if we're targeting Android clients (among others) with our SDK. But if this turns out to be a problem, we can probably make updating only changed attributes optional in the SDK (so e.g. desktop clients can use it and Android clients can choose not to).

See if this can be done in a simple way. An additional (possibly lightweight) dependency is preferable to a lot of boilerplate.
This is not just a convenience but may be required because the server may return an authorization failure (no permission) if some properties are attempted to be set, even if they are not changed (but double-check this; what would be an example?).


Wrong information in result

Hi, first of all thanks for your onvif library.
I am not sure if this some error or hardware issue. When calling :
var vsources = await media.GetVideoSourcesAsync();
it returns one result, then checking vsources[0].Imaging.Exposure.Mode.ToString()
it shows "AUTO" while the option set in the IP camera is "MANUAL". Similarly
other options like BLC etc return default / wrong values.
Can you please suggest what could be wrong here? is there some other setting / option / method to call?
Thanks!

Update: It is working fine. It seems that the default IP administration (app/screen) should be kept closed, when using the call.


Build error on arm64 - BindingFlags not found

Issue Title
BindingFlags not found when building for arm64. CS7069: Reference to type 'BindingFlags' claims it is defined in 'System.Reflection', but it could not be found
General
When building for arm64, we get a build error for BindingFlags
CS7069: Reference to type 'BindingFlags' claims it is defined in 'System.Reflection', but it could not be found
The same code builds find for other configurations.
The repo/pull request where this can be repro'd can be found below.
https://github.com/Microsoft/microsoft-ui-xaml/pull/288

@wfurt any idea?

There were few cases when things moved between corefx and coreclr and you would get strange errors when caught in wrong snapshot. That would not explain why other platforms would work. I assume you build in same tree? When cross-compiling or changing target OS or ARCH, make sure you clean whole build tree.
If you still have issue please post exact steps and perhaps bit of logs so we can try to reproduce it.

Not actionable, closing.


Updating javadocs for applyValueStyles

Description
Updating javadocs for applyValueStyles
Overview of Changes

Javadoc update

Type of change

[ ] Documentation update

How Has This Been Tested?
None.
Additional Notes
None.

You did it @lopezton-anthem!
Thank you for signing the Anthem Opensource Software CLA.


Tracking end of call while recording

Hey guys can you help me, with some strange case.
After my bot is answering on a call I start recording audio, and if I try to break a call while my bot is recording audio  method [RecordAsync] do not return, also [CallOnUpdated] is not raising too

if I try to break a call while my bot is recording audio

Can you elaborate on this please?  If a call is ended/removed from the ICallCollection, all associated operations should be terminated.  How are you "breaking" the call?

@ksikorsk Case step by step:

QA from his account calling to bot
Bot answering the call and start recording
QA  Hang up the call

@ksikorsk my bot can join a call but I don't get a call "terminated" notification and of course OnUpdated event is never called. What could be the problem in your opinion?

Same problem here, any updates about this?

Also here, would love to hear about it

We've tried to get raw data from socket connection during the call, and if you trying to do the same, make sure that you are participant of TAP program.

Seriously graph doesn't send a call with the notification when the call ends? In CallHandler class there is CallOnUpdated method that should handle call terminated event


The current thread is not associated with the renderer's synchronization context

I have server side blazor project where I am using server side rules engine editor. when I deployd this application on server, time to time I am getting error: 'The current thread is not associated with the renderer's synchronization context'. I think that problem is for StateHasChanged() is called withoud
'InvokeAsync'. It should be called like that: 'InvokeAsync(()=>{ StateHasChanged() })'. If there is some another better solution for this issue, someone help me pls.

You've likely determined this by now, but for posterity, this is the correct solution InvokeAsync(StateHasChanged). This explains what's going on https://blazor-university.com/components/multi-threaded-rendering/invokeasync/

Please re-open if this is still an issue.


How about add /proc/loadavg parse support ?

Looks like "/proc/loadavg" file isn't parsed at now.
It's useful from this to get current system load.

Agreed. We currently parse this directly in node_exporter, but it'd be nice to move that code out and into procfs instead.
https://github.com/prometheus/node_exporter/blob/master/collector/loadavg_linux.go


Overwriting pixels

Removing the "done" status from a finished nucleus if its pixels are overwritten

I think the other option here would be to not allow pixels from a finished nucleus to be overwritten, forcing the user to remove the done status manually before doing so. This would probably be more consistent behavior (not allowing done regions to be edited at all).
What do you think @JustKeepClimbing ?

hi @davidborland , I agree with your suggestion (manually have tracer remove the 'done' status). @vedadayananda suggested this because our presently agreed upon tracing technique is to 'smooth out' the surface of the nuclei. This sometimes is not apparent when two nuclei are sharing pixel boundaries. For now, I think this issue can be addressed by either A) preventing tracers from overwriting 'done' pixels or B) having a message pop up that says something like, "Would you like to overwrite 'done' pixels? If so, the 'done' status for this nucleus will be removed." .. with 'Yes' or 'No' options so that the tracer is still making the decision.

Implemented option A. We can revisit if we want to try option B instead.


Use tatin's exclude facility to remove ⎕IO.apla and ⎕ML.apla from builds

The files ⎕IO.apla and ⎕ML.apla are used by Link, but are not necessary in a tatin package, as this can be set in the config. The current version of tatin relies on zip which isn't UTF-8 friendly when dealing with filenames.
Use exclude to stop these files from being included in a tatin build of nuget, whilst retaining them in the repository such that it can also be used without tatin.

Fixed in 67207954ee3c127ae9a5f807c8e82caa7162a6d4


fix(watch): ignore lazy option in simple watch

Good catch. Could you please add a test case for this?

Test added.


Issue #358 new scale rt ps

Two new node instance RTPs pre.scale.done and scale.iaas.done.
Connected to #360

@konstan The branch related to this PR is about #358 but this PR is connected to #360.
Do you know why ?

Yes, this was a wrong issue number in the name of the branch :(


Update Filecoin bot spec - do not limit to 2 accounts

📝 Description
Filecoin bot was configured to only use 2 accounts, there's no reason for it so we can leave it to the default 5 accounts
❓ Context

Impacted projects: ``
Linked resource(s): ``

✅ Checklist

[x] Test coverage
[x] Atomic delivery
[x] No breaking changes

📸 Demo

🚀 Expectations to reach
Please make sure you follow these Important Steps.
Pull Requests must pass the CI and be internally validated in order to be merged.

Replaced by https://github.com/LedgerHQ/ledger-live/pull/910


Update license headers for 2024

Added -i and --black to docformatter. Previously, docformatter didn't change the files when the hook failed, but with -i it does now
Updated add-license-headers to v0.2.4
Removed .reuse directory (no longer needed with this version)
Added 2024 to the license headers

@klmcadams It looks like your commit wasn't signed. Can you create another PR with a signed commit? The project settings won't allow merging without signed commits.


Print output before command has completed

During commands like upload that take some time, it would be nice to be able to show the stdout information produced by the command before the function returns - is this possible to achieve?

Hello,
I don't think this is possible due to the way arduino-cli works. AFAIK, it only prints the output right before exiting. So I don't see any way to do this.
Do you know a board that actually makes arduino-cli progressively print text on the console ?

Ok, thanks for your reply! I was thinking of the output reporting progress and completion of the compilation, contact with the board and initiating flashing. For STM32 boards for example, Arduino-CLI exhibits this behaviour.


Server: GridServiceHealthMonitorJob can pile up deployments

Given a failing health check, GridServiceHealthMonitorJob will just blindly create new deployments if the service overall health drops too much. In case of mis-configured (or anyway heavily failing) health check this can cause service deployments to pile up heavily with these kind of log entries
I, [2017-04-24T11:48:10.369721 #11]  INFO -- GridServiceSchedulerWorker: delaying foo/bar/some-service deploy because there is another deploy in progress

These will probably also mean timeouts with distributed locks:
W, [2017-04-24T11:52:45.536157 #11]  WARN -- Module: timeout after waiting 10.0s of 10.0s until: lock check_deploy_queue:580ddcc376f5980007001319 is available
W, [2017-04-24T11:52:45.763583 #9]  WARN -- Module: timeout after waiting 10.0s of 10.0s until: lock check_deploy_queue:580ddcc376f5980007001319 is available
W, [2017-04-24T11:52:45.794109 #11]  WARN -- Module: timeout after waiting 10.0s of 10.0s until: lock check_deploy_queue:580ddcc376f5980007001319 is available
W, [2017-04-24T11:52:45.805272 #11]  WARN -- Module: timeout after waiting 10.0s of 10.0s until: lock check_deploy_queue:580ddcc376f5980007001319 is available
W, [2017-04-24T11:52:46.810364 #9]  WARN -- Module: timeout after waiting 10.0s of 10.0s until: lock check_deploy_queue:580ddcc376f5980007001319 is available
W, [2017-04-24T11:52:46.812494 #9]  WARN -- Module: timeout after waiting 10.0s of 10.0s until: lock check_deploy_queue:580ddcc376f5980007001319 is available
W, [2017-04-24T11:52:46.845791 #11]  WARN -- Module: timeout after waiting 10.0s of 10.0s until: lock check_deploy_queue:580ddcc376f5980007001319 is available
W, [2017-04-24T11:52:56.563669 #11]  WARN -- Module: timeout after waiting 10.0s of 10.0s until: lock check_deploy_queue:580ddcc376f5980007001319 is available
W, [2017-04-24T11:52:56.793793 #9]  WARN -- Module: timeout after waiting 10.0s of 10.0s until: lock check_deploy_queue:580ddcc376f5980007001319 is available
W, [2017-04-24T11:52:56.815847 #11]  WARN -- Module: timeout after waiting 10.0s of 10.0s until: lock check_deploy_queue:580ddcc376f5980007001319 is available
W, [2017-04-24T11:52:56.844696 #11]  WARN -- Module: timeout after waiting 10.0s of 10.0s until: lock check_deploy_queue:580ddcc376f5980007001319 is available

GridServiceHealthMonitorJob should check if there is already a pending deployment for the given service and only if not create the deployment.

The GridServiceHealthMonitorJob should not consider an unhealthy service as needing deployment if it has pending deploys: https://github.com/kontena/kontena/blob/v1.2.0/server/app/jobs/grid_service_health_monitor_job.rb#L33
 def deploy_needed?(service)
    ...
    if health_percent < expected_health
      service.running? && !service.deploy_pending?
    else
      false
    end
  end

Is this logic broken somehow?

possibly yes, GridService#deploy_pending? only checks if there are deploys with started_at=nil. Now when the GridServiceSchedulerWorker check the deploy "queue", it marks deploys with some timestamp for started_at when it picks them up from the queue and only after a 30 "wait" marks them back at not started if there were previous ongoing deploys.

I think it should rather check finished_at being nil, not sure if that would have any side-effects though.

That sounds saner to me.

Fixing the GridService#deploy_pending? to avoid the GridServiceHealthMonitorJob spam is a good idea, but it seems like that kind of deploy spam also exposes another bug in the GridServiceSchedulerWorker... the deploying? check also picks up any other pending deploys during that 30s. This causes all of the GridServiceDeploys for a GridService to get stuck, and the service will not get deployed anymore...

A GridService is deployed:
D, [2017-04-24T18:01:19.219552 #14485] DEBUG -- GridServiceHealthMonitorJob: service=redis-unhealthy health=0.0 deploy_pending=false
I, [2017-04-24T18:01:19.223824 #14485]  INFO -- GridServiceHealthMonitorJob: service health too low, triggering full deploy for development/null/redis-unhealthy

Some GridServiceSchedulerWorker picks up the GridServiceDeploy, marks it as started_at, takes the check_deploy_queue dlock for the GridService, and starts performing the deploy:
I, [2017-04-24T18:01:19.342830 #14485]  INFO -- GridServiceDeployer: starting to deploy development/null/redis-unhealthy
I, [2017-04-24T18:01:19.453981 #14485]  INFO -- GridServiceInstanceDeployer: Deploying service instance development/null/redis-unhealthy-1 to node core-01 at 2017-04-24 15:01:19 UTC...
D, [2017-04-24T18:01:19.986539 #14485] DEBUG -- GridServiceInstanceDeployer: waiting 1.0s of 300.0s until: service development/null/redis-unhealthy-1 is running on node development/core-01 at 2017-04-24 15:01:19 UTC

Meanwhile, before the deploy completes, the same GridService gets re-deployed:
D, [2017-04-24T18:01:20.287823 #14485] DEBUG -- GridServiceHealthMonitorJob: service=redis-unhealthy health=0.0 deploy_pending=false
I, [2017-04-24T18:01:20.290590 #14485]  INFO -- GridServiceHealthMonitorJob: service health too low, triggering full deploy for development/null/redis-unhealthy

Some other GridServiceSchedulerWorkers pick up that GridServiceDeploy, marks it as started_at, and then attempts to take the check_deploy_queue dlock:
D, [2017-04-24T18:01:21.065715 #14489] DEBUG -- Module: waiting 0.6s of 10.0s until: lock check_deploy_queue:58fe08b9de35785cd200000a is available

Meanwhile, even more deploys get queued:
D, [2017-04-24T18:01:23.482476 #14485] DEBUG -- GridServiceHealthMonitorJob: service=redis-unhealthy health=0.0 deploy_pending=false
I, [2017-04-24T18:01:23.486851 #14485]  INFO -- GridServiceHealthMonitorJob: service health too low, triggering full deploy for development/null/redis-unhealthy

I, [2017-04-24T18:01:23.494959 #14485]  INFO -- GridServiceInstanceDeployer: waited 4.0s of 300.0s until: service development/null/redis-unhealthy-1 is running on node development/core-01 at 2017-04-24 15:01:19 UTC yielded GridServiceInstance

D, [2017-04-24T18:01:25.130112 #14485] DEBUG -- GridServiceHealthMonitorJob: service=redis-unhealthy health=0.0 deploy_pending=false
I, [2017-04-24T18:01:25.134306 #14485]  INFO -- GridServiceHealthMonitorJob: service health too low, triggering full deploy for development/null/redis-unhealthy

Once the initial service deploy completes:
I, [2017-04-24T18:01:29.244643 #14485]  INFO -- GridServiceDeployer: service development/null/redis-unhealthy has been deployed

Some other GridServiceSchedulerWorker gets the check_deploy_queue dlock for the service:
 I, [2017-04-24T18:01:29.264757 #14489]  INFO -- Module: waited 8.7s of 10.0s until: lock check_deploy_queue:58fe08b9de35785cd200000a is available yielded String

And then it calls service_deploy.grid_service.deploying?... but this picks up all of the other pending GridServiceDeploys that have been picked up by the other workers, each of them having started_at set:
I, [2017-04-24T18:01:29.272482 #14489]  INFO -- GridServiceSchedulerWorker: delaying development/null/redis-unhealthy deploy because there is another deploy in progress

This happens for each of the pending deploys:
I, [2017-04-24T18:01:29.281760 #14489]  INFO -- Module: waited 5.7s of 10.0s until: lock check_deploy_queue:58fe08b9de35785cd200000a is available yielded String
I, [2017-04-24T18:01:29.314103 #14489]  INFO -- GridServiceSchedulerWorker: delaying development/null/redis-unhealthy deploy because there is another deploy in progress
I, [2017-04-24T18:01:29.360172 #14493]  INFO -- Module: waited 4.2s of 10.0s until: lock check_deploy_queue:58fe08b9de35785cd200000a is available yielded String
I, [2017-04-24T18:01:29.385816 #14493]  INFO -- GridServiceSchedulerWorker: delaying development/null/redis-unhealthy deploy because there is another deploy in progress

At this point, the service is screwed, and it won't get deployed anymore:
D, [2017-04-24T18:01:30.137231 #14485] DEBUG -- GridServiceHealthMonitorJob: service=redis-unhealthy health=0.0 deploy_pending=false
I, [2017-04-24T18:01:30.139887 #14485]  INFO -- GridServiceHealthMonitorJob: service health too low, triggering full deploy for development/null/redis-unhealthy
I, [2017-04-24T18:01:30.203485 #14493]  INFO -- GridServiceSchedulerWorker: delaying development/null/redis-unhealthy deploy because there is another deploy in progress
D, [2017-04-24T18:01:31.330360 #14485] DEBUG -- GridServiceHealthMonitorJob: service=redis-unhealthy health=0.0 deploy_pending=false
I, [2017-04-24T18:01:31.333296 #14485]  INFO -- GridServiceHealthMonitorJob: service health too low, triggering full deploy for development/null/redis-unhealthy
I, [2017-04-24T18:01:31.410615 #14493]  INFO -- GridServiceSchedulerWorker: delaying development/null/redis-unhealthy deploy because there is another deploy in progress

With a sufficient number of overlapping service deploys, even after the GridServiceSchedulerWorkers after(30) { service_deploy.set(:started_at => nil) } happens, it doesn't help:
D, [2017-04-24T18:01:59.275154 #14489] DEBUG -- GridServiceSchedulerWorker: resetting delayed development/null/redis-unhealthy deploy
I, [2017-04-24T18:01:59.297971 #14493]  INFO -- GridServiceSchedulerWorker: delaying development/null/redis-unhealthy deploy because there is another deploy in progress
D, [2017-04-24T18:01:59.314599 #14489] DEBUG -- GridServiceSchedulerWorker: resetting delayed development/null/redis-unhealthy deploy
I, [2017-04-24T18:01:59.329628 #14485]  INFO -- GridServiceSchedulerWorker: delaying development/null/redis-unhealthy deploy because there is another deploy in progress
D, [2017-04-24T18:01:59.386733 #14493] DEBUG -- GridServiceSchedulerWorker: resetting delayed development/null/redis-unhealthy deploy
I, [2017-04-24T18:01:59.420794 #14489]  INFO -- GridServiceSchedulerWorker: delaying development/null/redis-unhealthy deploy because there is another deploy in progress
D, [2017-04-24T18:02:00.203921 #14493] DEBUG -- GridServiceSchedulerWorker: resetting delayed development/null/redis-unhealthy deploy
I, [2017-04-24T18:02:00.289977 #14493]  INFO -- GridServiceSchedulerWorker: delaying development/null/redis-unhealthy deploy because there is another deploy in progress
D, [2017-04-24T18:02:01.411922 #14493] DEBUG -- GridServiceSchedulerWorker: resetting delayed development/null/redis-unhealthy deploy
I, [2017-04-24T18:02:01.453983 #14489]  INFO -- GridServiceSchedulerWorker: delaying development/null/redis-unhealthy deploy because there is another deploy in progress

Because at this point there is a large number of pending GridServiceDeploys, at least some of which are going to have started_at set whenever any deploy wakes up...

Created issues for the two GridServiceSchedulerWorker bugs revealed by this case, which cause service deploys to get stuck:

Service deploys can get stuck if there are several pending deploys for a service that is already being deployed #2212
Service deploys can get stuck if there is a pending deploy while a service deploy is running for more than 10 seconds #2213

Pending the fixes in #2221, if this happens and it triggers a storm of pending deploys, workaround is to kontena service stop, and let them clear away.


docs: 📚 fix building-blocks section url

Pull Request Test Coverage Report for Build 159129821

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.672%

Totals

Change from base Build 156572287:
0.0%

Covered Lines:
244

Relevant Lines:
244

💛  - Coveralls

Pull Request Test Coverage Report for Build 159441816
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.672%

Totals

Change from base Build 156572287:
0.0%

Covered Lines:
244

Relevant Lines:
244

💛  - Coveralls


Duplicate text with component list-group

Hi,
I see that possible to "duplicate" text with list-group and radio.
Look here : https://www.codeply.com/go/v3jktzrNId
On the first page load, just click on "Profile" then "Home", you can see the Profile text in the Home.
I have Windows 10 Pro with Chrome Version 60.0.3112.101 (Build officiel) (64 bits)

Fixed by : https://github.com/twbs/bootstrap/pull/23087
and will be available in our next release thanks 👍


Simplified code, fixed bugs

Added asset images and svg images rendering.

@n3o2k7i8ch5
kindly be specific what did you fixed or added in the code
don't add same code with just spaces

closing this pr

Fixed loads of small issues and simplified the code, reusing some functions in place of repetitions.
Needed to use this library for generating pdfs with a wide variety of html objects, often nested.


Cow: Watch allfunnypuns.com

Cow requests the watch of the watch_keyword allfunnypuns\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

allfunnypuns\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by double-beep in Charcoal HQ


fix: do not run GC every update cycle

Description
When testing VEX support, I noticed Scanner V4 DB's CPU was periodically active. Looking at the Scanner V4 Matcher logs, I realized that the GC is run upon every successful update cycle, even if that means there was nothing updated (success in this case just means there were no errors).
This PR now limits the GC to only run upon update cycles that not only don't error out, but also actually update something.
It's not perfect, as it's still possible a Matcher replica that does nothing towards updating the vulnerabilities runs the GC[1], but that's ok, as it's not nearly as common as this scenario.
[1] Imagine there are two Matcher replicas and there are new vulnerability updates. It is possible (highly unlikely, though) that only one of the Matchers handles all the updates when reading the "multi-bundle". But, if this were to happen and somehow both Matchers were able to get the GC lock without any kind of contention, then both Matchers will run a GC cycle. This is highly unlikely, so it's ok to ignore. We should care more about the way more common case that there are no vulnerability updates, and we still run the GC for no real reason.
I also found we needlessly require a pgxpool when creating a vuln updater, so I remove that here, too
User-facing documentation

[x] CHANGELOG update is not needed
[x] documentation PR is not needed

Testing and quality

[x] the change is production ready: the change is GA or otherwise the functionality is gated by a feature flag
[x] CI results are inspected

Automated testing

[x] modified existing tests

How I validated my change
Here is what I saw in my VEX PR testing:

Here is what I see now:

Note the scale of the graph. This shows activity every few hours, instead of every few minutes

Am curious what the GC is doing when nothing needs cleanup, are those cycles perhaps trying to determine what to clean? Any debt there? (unrelated to this PR)

Yes. We just call Claircore's GC method, so not much we can do from here aside from not calling it so often. The docs say:
// GC is split into two phases, first it will identify any update operations
// which are older then the provided keep value and delete these.
//
// Next it will perform updater based deletions of any vulns from the vuln table
// which are not longer referenced by update operations.
//
// The GC is throttled to not overload the database with cascade deletes.
// If a full GC is required run this method until the returned int64 value
// is 0.

https://github.com/quay/claircore/blob/v1.5.31/datastore/postgres/gc.go#L56


Editor becomes unresponsive and slow after few minutes

Issue Type: Performance Issue
Open a Jupyter Notebook, after few minutes the editor slow down eating all the cpu (and filling the log files).
Extension version: 2022.2.1030672458
VS Code version: Code 1.65.2 (c722ca6c7eed3d7987c0d5c3df5c45f6b15e77d1, 2022-03-10T15:36:26.048Z)
OS version: Linux x64 5.13.0-39-generic
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz (8 x 2300)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offopengl: enabled_onrasterization: disabled_softwareskia_renderer: enabled_onvideo_decode: disabled_softwarevulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
4, 4, 3

Memory (System)
31.15GB (12.10GB free)

Process Argv
--verbose . --enable-proposed-api genuitecllc.codetogether --crash-reporter-id b7a8e658-5841-410c-b238-68977988cc60

Screen Reader
no

VM
0%

DESKTOP_SESSION
ubuntu

XDG_CURRENT_DESKTOP
Unity

XDG_SESSION_DESKTOP
ubuntu

XDG_SESSION_TYPE
x11

Process Info
CPU %	Mem MB	   PID	Process
   15	   191	 16059	code main
    0	    32	 16062	   zygote
    0	   128	 16094	     gpu-process
    0	    32	 16063	   zygote
    0	     0	 16065	     zygote
    0	   128	 16235	       window (undefined)
    0	    64	 25399	       issue-reporter
    0	    32	 16106	   utility-network-service
   15	  1021	 16122	   window (● MergeExperiments.ipynb - mass-match - Visual Studio Code)
    2	   447	 16145	   extensionHost
    0	    96	 16285	     /usr/share/code/code --ms-enable-electron-run-as-node /home/santini/.vscode/extensions/ms-python.vscode-pylance-2022.3.4/dist/server.bundle.js --cancellationReceive=file:9b222e972ace3452a5129ace741c69fcfa5ccf0ac5 --node-ipc --clientProcessId=16145
    0	   255	 16296	     /usr/share/code/code --ms-enable-electron-run-as-node /home/santini/.vscode/extensions/ms-python.vscode-pylance-2022.3.4/dist/server.bundle.js --cancellationReceive=file:17ab41539c71b44ad99ada987417066175193234c0 --node-ipc --clientProcessId=16145
    0	   415	 16497	     electron_node cChUxTSLrinx.js
    7	   191	 16531	     /usr/share/code/code --ms-enable-electron-run-as-node /usr/share/code/resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=16145
    5	   287	 16631	     /usr/share/code/code --ms-enable-electron-run-as-node /home/santini/.vscode/extensions/ms-python.vscode-pylance-2022.3.4/dist/server.bundle.js --cancellationReceive=file:64c6d7356ab68093ada685e91cd688af4fba9110d2 --node-ipc --clientProcessId=16145
    0	   159	 16190	   shared-process
    0	    64	 16207	     ptyHost
    0	    64	 16256	     fileWatcher
    0	     0	 25418	     /bin/sh -c /usr/bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command=
    0	     0	 25419	       /usr/bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command=

Workspace Info
|  Window (● MergeExperiments.ipynb - mass-match - Visual Studio Code)
|    Folder (mass-match): 5 files
|      File types: ipynb(3) txt(1) py(1)
|      Conf files:;

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
pythonvspyl392:30443607
pythontb:30283811
pythonvspyt551cf:30345471
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
vscoreces:30445986
pythondataviewer:30285071
vscod805:30301674
pythonvspyt200:30340761
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593:30376534
vsc1dst:30438360
pythonvs932:30410667
wslgetstarted:30449410
vsclayoutctrt:30451275
dsvsc009:30452663
pythonvsnew555:30457759
vscscmwlcmt:30438805
vscgsvidc:30447482
pynewfile477:30463512

Here is a screenshot of the top command (only one VS Code window open).

@mapio Thanks for filing the issue. Could you check something quick? Could you disable the Jupyter extension, reload the window and try the same thing? Just trying to isolate the issue a bit better.

As a quick note, there was just a recent stable vscode release that had a leak fix in it for notebooks. Might be good to check for an update and seeing if the issue still repros.

Sorry for the delay (we are in so different time zones). I've tried but it's very hard to tell since deactivating the extension makes it impossible to work with the notebook. Just opening the window and leaving it open for a while seems not to trigger the problem. Usually the CPU spikes after a while I actually edit the file…

Could you disable the Jupyter extension, reload the window and try the same thing?

Sorry for the delay (we are in so different time zones). I've tried but it's very hard to tell since deactivating the extension makes it impossible to work with the notebook. Just opening the window and leaving it open for a while seems not to trigger the problem. Usually the CPU spikes after a while I actually edit the file…

Might be good to check for an update and seeing if the issue still repros.

Unfortunately the problem persists even with version 1.66.0 (e18005f0f1b33c29e81d732535d8c0e47cafb0b5/x64).

I'm not sure where this comes from. Here is the situation

the bug is making the editor unusable. I like vscode so much that I'm promoting it with all the students and colleagues I meet; this time though, I'm about to abandon it unless until the bug is fixed.
I'm more than willing to provide any info (dump, logs…). Tell me what is needed and I'll try to comply.
It's very hard, on the other hand, to provide a minimum viable reproducibility test case, due to the fact that the problem arises, albeit regularly, after few tens of minutes of work on large files.
I've reported some other information here https://github.com/microsoft/pylance-release/issues/2530

@mapio Per this comment here: https://github.com/microsoft/pylance-release/issues/2530#issuecomment-1088395470
I'm going to close this bug as it looks best addressed by the pylance team. If it's not a pylance specific issue just comment back here and I can reactivate.