Add lcl files to hygiene indent ignore list

We don't need to check these for proper indentation since they're generated by another tool.
@khoiph1 Not sure how you got around the precommit hook - it should have given you an error when you tried to commit your changes. Did you see any such error?

Pull Request Test Coverage Report for Build 504914579

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.003%) to 43.126%

Files with Coverage Reduction
New Missed Lines
%

extensions/machine-learning/src/common/processService.ts
2
81.48%

Totals

Change from base Build 504838055:
-0.003%

Covered Lines:
24450

Relevant Lines:
51919

💛  - Coveralls

Pull Request Test Coverage Report for Build 504914579

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.003%) to 43.126%

Files with Coverage Reduction
New Missed Lines
%

extensions/machine-learning/src/common/processService.ts
2
81.48%

Totals

Change from base Build 504838055:
-0.003%

Covered Lines:
24450

Relevant Lines:
51919

💛  - Coveralls


Validate cog push before building and pushing image

If I execute a bad cog push, I want it to fail as soon as possible.
Examples of a bad cog push include pushing without correctly logging in (e.g., logging into the wrong account, login without sudo when sudo cog push is required) or misspecifying a model path.
In such cases, cog push will not fail until after the image has been built and pushed. It would be better if it failed immediately so that the user can quickly identify and correct the issue.

I agree with @joehoover!
For me what would be super helpful is a simple check to tell you "hey you're cog.yaml says gpu:true but you don't have a GPU!", and vice versa, or even just a very verbose status message when I push.
I frequently alternate between gpu:true and gpu:false while developing since I don't have a GPU.
For example,
I use cog build with gpu:false to execute cog run python script/download_weights
(as per Validate cog push before building and pushing image (#1157))
Only to totally forget to set gpu:true before performing a cog push.
Probably me just being forgetful but it'd be nice to have 😅

this is a good meta ticket with lots of issues, I'm going to file a ticket for just the login issue - since it is probably an smaller self-contained fix


Fix vue-remark incompatibility

This resolves the issue from https://github.com/mklueh/gridsome-plugin-recommender/issues/5.
The change feels more like a bandaid than fixing the root cause, but the app builds fine, and I haven't noticed any issue in any of the modes (explore / develop / build), so it's good enough.

@mklueh Would you give this a look?

Hi @JuroOravec , thanks for your pull request, very much appreciated.
I'm not exactly sure what these two lines do, but hats off if they enable vue-remark support😊
Could you help me out with your setup or at best enhance the example if you don't mind?
I'm running into this error:
TypeError: expected input to be a string or buffer
    at Object.exports.toString (/home/user/workspace/gridsome-plugin-recommender/example/node_modules/gray-matter/lib/utils.js:42:11)
    at module.exports (/home/user/workspace/gridsome-plugin-recommender/example/node_modules/gray-matter/lib/to-file.js:39:24)
    at matter (/home/user/workspace/gridsome-plugin-recommender/example/node_modules/gray-matter/index.js:34:14)
    at RemarkTransformer.parse (/home/user/workspace/gridsome-plugin-recommender/example/node_modules/@gridsome/transformer-remark/index.js:47:40)
    at /home/user/workspace/gridsome-plugin-recommender/example/node_modules/@gridsome/vue-remark/index.js:212:36
    at SyncBailWaterfallHook.eval [as call] (eval at create (/home/user/workspace/gridsome-plugin-recommender/example/node_modules/gridsome/node_modules/tapable/lib/HookCodeFactory.js:19:10), <anonymous>:7:16)
    at Collection.updateNode (/home/user/workspace/gridsome-plugin-recommender/example/node_modules/gridsome/lib/store/Collection.js:127:50)
    at RecommenderPlugin.createNodeRelations (/home/user/workspace/gridsome-plugin-recommender/gridsome.server.js:291:20)
    at /home/user/workspace/gridsome-plugin-recommender/gridsome.server.js:152:18
    at Array.forEach (<anonymous>)
    at RecommenderPlugin.createCollectionRelations (/home/user/workspace/gridsome-plugin-recommender/gridsome.server.js:145:27)
    at RecommenderPlugin.loadSource (/home/user/workspace/gridsome-plugin-recommender/gridsome.server.js:138:18)
    at Plugins.run (/home/user/workspace/gridsome-plugin-recommender/example/node_modules/gridsome/lib/app/Plugins.js:141:17)

with this config
        //example 2
        {
            use: '@gridsome/vue-remark',
            options: {
                typeName: 'BlogPostRemark', // Required
                baseDir: './content/blog', // Where .md files are located
                pathPrefix: '/blog-remark', // Add route prefix. Optional
                template: './src/templates/BlogPostRemark.vue' // Optional
            }
        },
        //example 2
        {
            use: 'gridsome-plugin-recommender',
            options: {
                enabled: true,
                debug: true,
                typeName: 'BlogPostRemark',
                field: 'title',
                relatedFieldName: 'related',
                minScore: 0.1,
                maxRelations: 3,
            }
        },

and this template BlogPostRemark.vue
<template>
  <layout>

      <g-link class="border-gray-600 border-2 p-2 my-2" to="/">Back</g-link>

      {{ $page.blogPostRemark.title }}

 0">
      Automatically matched related posts by gridsome-plugin-recommender:
      <posts-widget :posts="$page.blogPostRemark.related"/>

    This post has no similar posts

  </layout>
</template>

<page-query>
query Post ($path: String) {
blogPostRemark (path: $path) {
id
path
title
related{
id
path
title
}
}
}

</page-query>

Thanks

Hey @mklueh

Not 100% sure either. My guess is that the nodes that vue-remark process get passed around twice. When I followed the stack trace, I found that:

In vue-remark in an addNode hook, vue-remark passes node.internal.content to @gridsome/transformer-remark, which then passes it to gray-matter. This fails and gives us the error you've seen when the value of node.internal.content is null. (See source)
Just slightly after it, after vue-remark has parsed the markdown file, it sets node.internal.content to null (see source).
The value of node.internal.content is internal to either gridsome or remark-transform. Don't know what it does, but it looks like things are working when we restore it.

Could you give more details on the example you've pasted in? Following from your suggestion, I just pushed changes to fix the example project (https://github.com/mklueh/gridsome-plugin-recommender/pull/33/commits/e2498ed52dce6a2375b2773e24ca36680574c5d5; see screenshots below).
...But I can't find the example that you've pasted above, with BlogPostRemark and example 2.

Demo - Working example project

Hi @JuroOravec , I see. But I'm a little bit confused now.
What do you mean with
Don't know what it does, but it looks like things are working when we restore it.
Do you have the error too that I'm getting or have you managed to get your change working with vue-remark?
I've checked out your branch and tried to get it working and I wanted to add another example usage to the project. The code I've posted here is not yet committed, but I think it would make sense in case the change is working.

What do you mean with
Don't know what it does, but it looks like things are working when we restore it.

I mean that I don't know why vue-remark sets this value to null on this line, but that my change made things work for me.

Do you have the error too that I'm getting or have you managed to get your change working with vue-remark?

No. Things are working for me when I run the example locally. See the screenshots at the bottom of this post.

I've checked out your branch and tried to get it working and I wanted to add another example usage to the project. The code I've posted here is not yet committed, but I think it would make sense in case the change is working.

I think it would be simpler to do things in steps - first merge the fix, then add the example (or other way around).
That being said tho, I might've found the issue with your example 2. Notice how in the original example I changed the imports. I changed this so the example is using the local version of the plugin, not the version released to NPM.

Okay, got it.
However, I'm usually using the link.sh script which links the local version and uses that instead of the one of the NPM. This should not have been the problem.
I've checked out the latest commit of yours and I'm facing the same issue.

@mklueh Thanks, didn't notice the link.sh before, I've reverted the last commit to use the link.sh script instead.
It's still working on my side. I've tried it with both npm (v8.3.2) and yarn (v1.22.10). I have:

Cleared my node_modules, .cache,  .temp folders. Also remove any package-lock.json if there is any.
Run npm i (or yarn install) in both the root and /example dir.
Run link.sh script from the root dir.
Changed to /example dir and ran all 3, npm run build, npm run explore and npm run build
All worked, I was able to load and navigate around the example website.

Could you try the same?

And yes, I'm using it in a real project. In my project, I've copied the gridsome.server.js from this package, and I've modified the same lines that I've suggested in this MR.
My project is heavily customized, so it might be harder to follow (I'm using TypeScript for gridsome.server and gridsome.config files; and I'm using a modular project layout).
Nevertheless, this is how I use the recommender plugin:

I've copied the gridsome.server file and added the logic on lines 294
This forked plugin is used to generate related blog posts for a) other blog posts, b) project posts
The info on related posts are fetched in Vue components here for blog posts, and here for project posts.
The recommender plugin adds only metadata (node ID). So I've added resolvers that return the node given the info from the recommender. Here is the resolver for blog posts and resolver for project posts
As you can see here and here, the entries I use for the recommendation generation are written in Markdown. The markdown content is rendered using vue-markdown (see here). And I render the recommended (related) posts after the markdown content (see here).

Lastly, this is how it looks when in the UI:

@mklueh Thanks, didn't notice the link.sh before, I've reverted the last commit to use the link.sh script instead.
It's still working on my side. I've tried it with both npm (v8.3.2) and yarn (v1.22.10). I have:

Cleared my node_modules, .cache,  .temp folders. Also remove any package-lock.json if there is any.
Run npm i (or yarn install) in both the root and /example dir.
Run link.sh script from the root dir.
Changed to /example dir and ran all 3, npm run build, npm run explore and npm run build
All worked, I was able to load and navigate around the example website.

Could you try the same?

Hi @JuroOravec , I've tried that but failed on npm run build with the same error.
There might be one more difference: I'm running my web projects in WSL2 Ubuntu, not on my local machine. Not sure if this may be related.
Otherwise, if I disable the recommender plugin, the vue-remark config is working.

Thought I'd chip in and say that I'm seeing the same issue and this PR does indeed fix the issue.
For those who are also seeing this issue, you can pull from @JuroOravec's branch by updating your package.json file to use https://github.com/JuroOravec/gridsome-plugin-recommender#fix--vue-remark-incompatibility


Added optional random seed argument to patterns

You're going to have to merge in the new master to fix the issue with installing conda on travis.
git fetch upstream
git merge upstream/master


When I right click on Images (they already in new tab as single), It only enlarge the image, does not have the 4 these options

How to I fix it?
Thank you!

hey, try reinstall the plugin, and see if that helps 😭

hey, try reinstall the plugin, and see if that helps 😭

Oh, it is worked, thank you very much!


Suggestion: Changing user images

The user pictures shown in the roundels don't appear to be editable which makes it hard to identify who is who. If it is possible already, perhaps add this to the Account Settings page to make it easy to find.

Avatars are currently handled by https://gravatar.com/, if users register their and add an avatar for the datalab "contact email" (settable in the account settings) then it should show up. We could host avatars ourselves but its probably quite low priority for us

Closed by #744 -- though we do need to verify email addresses still


Purpose, behavor, intended usage unclear

What is the purpose of the frame server mode in the API? It sounds like an internal mode switch that would only have meaning to someone familiar with MedaiPlayer's inner function.
Is it the only thing the article mentions - to disable rendering of the content? Would not it be more logical to not bind the mediaplayer to a visual control in the first place when it is used as a frame server, rather than bind it and then disable the rendering?
Is CopyFrameToVideoSurface not intended to be used without frameserver enabled? Its documentation page makes no mention of any such dependency, and in my experiments I am able to copy the frames either way.
What are the details of the VideoFrameAvailable event operation? Are frames served at the rate they can be processed, or at the normal playback rate, or held back until after the one served is consumed?
What counts as "video content" that won't be rendered in a frameserver mode? Is audio a content of the video here, or only the visual frames? If the audio is to render, would it be played back in real time, or would it sync to the corresponding frames? At the moments they are served? At the moments they are copied?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0b657ae4-1a89-0c77-8f1d-376928336991
Version Independent ID: b0ad5a2f-2c4b-8648-a5fe-df295f705a3b
Content: MediaPlayer.IsVideoFrameServerEnabled Property (Windows.Media.Playback) - Windows UWP applications
Content Source: https://cpubwin.visualstudio.com/DefaultCollection/windows-uwp/_git/winrt-api-build?path=%2fwinrt-api-build%2fwindows.media.playback.mediaplayer.yml&version=GBlive&_a=contents
Product: uwp
Technology: winrt-reference
Git Login: drewbatgit
Microsoft Alias: drewbat

Hello, sorry for the delayed response to this issue. The core scenario for frame server mode is to allow apps to use pixel shaders to process video frames. It is not specifically disallowed to call CopyFrameToSurface without frameserver mode enabled, but it's an unsupported scenario and the behavior may be unpredictable. The VideoFrameAvailable function call just tells the caller if there is a frame available for the TransferVideoFrame. Once the TransferVideoFrame method is called then the VideoFrameAvailable will return false. Audio part is rendered on the audio device and the video frame that is available is A/V sync to that audio. If a video frame is not consumed by time a new frame is available then it is dropped.


Tapjoy integration

Closes #995

Testing on device and checking in Tapjoy to see if I see any installs for today (I see 2 from yesterday, but it may take time for the data to populate). Those could potentially be from when we trying out v11 of the cocoapod.. because today I don't see anything realtime. This Getting Started link suggests I should see a session running:

I am still seeing these odd -canOpenURL: failed messages I'll start looking into too:
2016-04-28 09:12:32.635 DoSomething[430:114388] -canOpenURL: failed for URL: "cydia://" - error: "This app is not allowed to query for scheme cydia"
2016-04-28 09:12:32.638 DoSomething[430:114388] Found interface: en0
2016-04-28 09:12:32.639 DoSomething[430:114388] {
    BSSID = "60:e3:27:ad:e8:94";
    SSID = "Batty Boy";
    SSIDDATA = <42617474 7920426f 79>;
}
2016-04-28 09:12:34.069 DoSomething[430:114318] -canOpenURL: failed for URL: "about:blank" - error: "This app is not allowed to query for scheme about"
2016-04-28 09:12:34.094 DoSomething[430:114318] [TJLog level: 4] Events proxy is ready

"Batty Boy" is the name of the network I'm connected to.

Looking into the "This app is not allowed to query for scheme cydia error" -- a potential fix may be the 2nd solution in this SO thread, suggests adding cydia:// as an entry to CFBundleURLSchemes

Closed in favor of SDK 11: https://github.com/DoSomething/LetsDoThis-iOS/pull/1005#issuecomment-215578134


Code optimizations

Moved variable definitions for save path and date string to top of
script.
Removed GetDate function and converted to using built in date time
string format method.
Updated home path to use ~ instead of environment variable.  This makes
it more OS agnostic.
Included SecureCRT IgnoreEscape in the screen capture so as to skip
color escape sequences in the capture.
These updates can be applied to the other scripts as well.  Once this one is approved.  I'll make the updates to the other scripts.

Awesome, thanks!  I'll have to update the other scripts with these changes.

I have the other scripts updated if you want me to commit them.  But if you want to go through it to see what I did, I understand that as well ;-)

Go ahead and submit them.  I already read through what you did on SaveRunning before merging, so I'm good with it.


"Chișcăreni" is listed in the drop-down menu

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

ATTENTION:
Request - "Chișcăreni, Botoșani (Săveni))"
In dropbox, the request is displayed correctly. - "Chișcăreni, Botoșani (Săveni)"
After you click on the text, what is displayed in the window this is different - "Chișcăreni, Botoșani (SĂVENI)"


Admission controller that checks for podpreset support, addresses #922

@derekwaynecarr @pmorie for comments while I work on the unit tests. I've been testing with minikube and different versions while learning about admission controllers along with minikube.

@derekwaynecarr PTAL and let me know if the structure is now what you were expecting.

@vaikas-google I'd like one thing. A nice fat comment at the top of plugin/pkg/admission/podpreset/exists/admission.go that says what this admission controller does.

@vaikas-google I think this is obsolete now, right?

https://github.com/kubernetes-incubator/service-catalog/issues/922 was closed, can this PR also be closed?


OS X "binaries" hard-link against assimp from build machines

Using this packaging job for OS X using fastrtps:
$ ./bin/rviz2_app
dyld: Library not loaded: /Users/osrf/jenkins/workspace/packaging_osx/ws/build/rviz_assimp_vendor/assimp_install/lib/libassimp.4.dylib
  Referenced from: /Users/dhood/Downloads/ros2-ardent-fastrtps/./bin/rviz2_app
  Reason: image not found
Trace/BPT trap: 5

$ otool -L ./bin/rviz2_app | grep osrf
	/Users/osrf/jenkins/workspace/packaging_osx/ws/build/rviz_assimp_vendor/assimp_install/lib/libassimp.4.dylib (compatibility version 4.0.0, current version 4.0.1)

Perhaps the equivalent of https://github.com/ros2/rmw_fastrtps/pull/128/files would apply here

Yeah, @Karsten1987 and I were just seeing that too. I'll have a look into what the issue is, probably just need to set one of the RPATH settings in CMake.

I think the simple answer to this one might be to install assimp on the build machines (I think that's why I didn't see this), though this issue might crop up in the debian packages where we have to build assimp from source due to needing a newer version on Linux.

I've updated the installation instructions, our mac CI setup instructions, and updated the CI machines to have assimp installed. My hope is that this works around the issue for us, and is actually better since it makes the macOS jobs shorter, but I've narrowed down the issue and should be able to find a fix regardless, just not tonight.

I installed assimp on my machine too and now I don't get that error with last night's packaging job so this appears to have worked :+1:
I am running into something else now that I'm looking into (might just be my machine, I'll try on another one):
$ rviz2_app
dyld: Symbol not found: __ZN4YAML11InvalidNodeD1Ev
  Referenced from: /Users/dhood/Downloads/ros2-ardent-rviz/bin/rviz2_app (which was built for Mac OS X 10.12)
  Expected in: /usr/local/lib/libyaml-cpp.0.5.dylib
 in /Users/dhood/Downloads/ros2-ardent-rviz/bin/rviz2_app
Trace/BPT trap: 5

but actually it looks like it has that symbol:
$ nm /usr/local/lib/libyaml-cpp.0.5.dylib | grep Invalid
0000000000002b5a t __ZN4YAML11InvalidNodeC2Ev
0000000000002be8 t __ZN4YAML11InvalidNodeD0Ev
0000000000002b1e t __ZN4YAML11InvalidNodeD1Ev
000000000001f024 T __ZN4YAML7Scanner19InvalidateSimpleKeyEv
000000000001ed98 T __ZN4YAML7Scanner9SimpleKey10InvalidateEv
00000000000300e0 D __ZTIN4YAML11InvalidNodeE
000000000002d200 S __ZTSN4YAML11InvalidNodeE
00000000000300f8 d __ZTVN4YAML11InvalidNodeE

I saw that the build machines didn't have yaml-cpp installed from brew so I uninstalled it on my machine.
Now as long as I do $ export DYLD_LIBRARY_PATH=/Users/dhood/Downloads/ros2-ardent-rviz/opt/rviz_yaml_cpp_vendor/lib:$DYLD_LIBRARY_PATH I can run rviz2_app 😁
@mikaelarguedas said that there's some work going on with yaml-cpp that might address that but even without that: yay!

@dhood thanks for testing, we merge the pr that fixes the yaml-cpp, we need to do one more patch to fix debs and I have a fix for the library path too.

OK. I'll close this issue since FWICT there's no more linking against absolute paths from the build machine.

@dhood I've started a new "ci packaging" job for macOS here:
http://ci.ros2.org/job/ci_packaging_osx/19/
When it's done it should be possible to test out that artifact to see if the linking has been fixed.

ok will do

Hopefully it should work regardless of if yamlcpp is installed or not on the target system right ?
(just to scope the testing cases)

Yaml-cpp from Homebrew is not needed on macOS, but hopefully this will make it so it works even if it is, so yes I think so.

Argh, build machine paths are back (after sourcing setup.bash of http://ci.ros2.org/job/ci_packaging_osx/19/ on my macbook):
$ echo $DYLD_LIBRARY_PATH
/Users/osrf/jenkins/workspace/ci_packaging_osx/ws/install/opt/rviz_yaml_cpp_vendor/lib:/Users/osrf/jenkins/workspace/ci_packaging_osx/ws/install/opt/rviz_ogre_vendor/lib:/Users/dhood/Downloads/ros2-ardent-oct8-rviz-fix/lib

@dhood try with https://github.com/ros2/rviz/pull/147/commits/1c79bbe1c211e586d95dd486d5634da83b050ba9

hmm. http://ci.ros2.org/job/ci_packaging_osx/19/ in theory includes 5cf4b682da395e098afdb798b9b4df79a877a049 but I don't have rviz_assimp_vendor_library_path.sh installed to share/rviz_assimpl_vendor/environment like I expected. If I add it there myself then it looks like https://github.com/ros2/rviz/commit/1c79bbe1c211e586d95dd486d5634da83b050ba9 will do what we want. I'm just surprised that it wasn't installed itself.
Perhaps this condition is the issue (assimp will be found on the buildfarm machines now, right?)

It's not required if you have assimp installed. rviz_assimp_vendor shouldn't do anything on macOS I think.

I got assimp and yaml-cpp mixed up. I do see the env hook for yaml cpp, and if I use $AMENT_CURRENT_PREFIX in it then it works, so I expect https://github.com/ros2/rviz/commit/1c79bbe1c211e586d95dd486d5634da83b050ba9 to have fixed it

That binary is available now, and I just tested it and it works for me.

I'm going to re-close this since I think it's resolved.

yep it is thanks


Customizing Text Content

I'm curious if there is a way to customize the text written during the wizard setup process, i.e "Plug in your Particle device to power it on". There are specific variables exposed that can be changed such as deviceName, productImage etc, but can we change the entire string? While most of the default text is good, I'm curious if we can customize it more to suit our customers.

There are several text customization points as you implied, if you require deeper changes feel free to modify the setup.storyboard file as you please

Much appreciated!

Out of curiousity, is there any plans to implement allowing all of the strings to be edited without having to go in and modify the setup.storyboard file? Is there a reason they aren't all exposed to be changed?
And another question regarding the existing listenModeLEDColorName, I see it written in the documentation as something that you can change, even though it doesnt work. Which makes sense because in the storyboard file it looks like this:
text="The on-board LED should be blinking blue. If not, hold the {mode button} for 3 seconds"
As you can see the park about blinking blue isn't something you can insert in, even though the documentation seems to say that you can.

@idokleinman: is modifying setup.storyboard the way to go really? With every pod update this would be overwritten.

I do agree that modifying the storyboard itself is a makeshift solution.
I think the best way to go is to add some real customization points - basically creating an addressable UILabel in the viewcontroller requiring the modification, adding it to the Customization class and then submitting PR so it can be incorporated in future releases of the SDK. That's my suggestion.
Another option which is related is to export ALL the strings in the setup to an external file, that could also be used for localization in the future and allow the developers to modify this file. Usually done for strings in the code files but could also apply to storyboard strings.

@idokleinman: Please consider that the on-boarding API becomes part of the entire App and must therefore 'fit' in the App. I.e., it needs to look like as one seamless part. That means that all aspects of what is being shown ought to be customizable; font sizes, color, types, positioning, pictures, buttons etc. you name it. To solve this through 'customization points' as you refer to it seems not practical to me.
When I first looked into this aspect of the lib I was a bit taken aback modding the storyboard (since it is part of the lib) But having access to the storyboard allows for all possible visual customization. Since the current storyboard is part of the lib it would be better to have a custom storyboard that is referenced from the library. The mods I made thus far to my solution only required modding the storyboard and no code (with exception to a few minor wiggles). So if we had the custom storyboard referenced from the lib, it is possible to do all necessary mods.  I would do away with all code based customizations and do all customizations through the referenced storyboard.
What may complicate things a bit if the flow of the on-boarding process needs to be customized also. For my current purposes I do not have hard requirements for that ... yet... Although I do have some customers confused by the process (which is very techie for most folks) and therefore injections of a few pages/links with additional help could be handy.
Localization would be made a bit easier if all customization is done through the storyboard as this would mean just one in/export step vs two if code is involved also. Obviously, the rest of the app would need localization also which will require its own methods.

This is escalating to be a very very deep rabbit hole IMO, not sure if all developers need SO much control over every pixel in setup, to the point of changing the flow itself.
Another option, that adheres to what you're suggesting, is Particle providing "setup library" that comes with no mobile setup UI/UX whatsoever, like the Cloud SDK - only a required set of function calls in a certain order, i.e.: detect photon(), scan wifi(), configure wifi(), connect() and the developer will have to (re)build the setup flow/experience himself to his liking. Not sure that's really ideal. Maybe the setup functions could be stripped out from the setup flow so developers requiring FULL customization, like yourself, can do that.

 Perhaps my proposal is flawed (happened before :-) but I would expect that anyone/company in the business of delivering end-user solutions will want to own the entire experience.  In all products I have been part of this was the case. But hey, who am i.
The "setup-lib without UI/UX" and only particular hooks into the process would be a great step.
Question: how does your company make decisions for changes like these? Is there a customer focus group?  I'd hate to push for my personal stuff if nobody cares but I'd equally hate it if what I push is really where it needs to be and nobody listens...
Anyway, as said, I am already partially going this route. If I have time and it makes sense, I will attempt to generalize my changes and perhaps fork the lib for others to use.


Added code to compute insertion indices

Description
This pull request implements some of the code that underpins https://arxiv.org/abs/2006.03371
@andrewfowlie will likely have an opinion on which other pieces of code from
that paper are sufficiently general to make it into this paper
Checklist:

[X] I have performed a self-review of my own code
[X] My code is PEP8 compliant (flake8 anesthetic tests)
[X] My code contains compliant docstrings (pydocstyle --convention=numpy anesthetic)
[X] New and existing unit tests pass locally with my changes (python -m pytest)
[X] I have added tests that prove my fix is effective or that my feature works

I think this is quite nice. So you give the user access to the insertion indexes, then it's up to them how they do the tests on them? Should we also add a method for a user to perform the test?

I think it would be good to at least provide a function that computes the 'p value' and 'rolling p value' in anesthetic.utils as they were determined in https://arxiv.org/abs/2006.03371. You know that code best: would you be able to extract the relevant parts, paste it here, and I'll interface it appropriately to NestedSamples

import numpy as np
from scipy.stats import kstwobign

def p_value(indexes, n_live, iterations=None):
    """
    @returns Kolmogorov-Smirnov test from indexes

    Don't use scipy.stats.kstest as it assumes continuous distributions
    """
    if iterations is not None:
        indexes = indexes[:iterations]

    empirical_pmf = np.histogram(indexes, bins=np.arange(-0.5, n_live + 0.5, 1.), density=True)[0]
    empirical_cmf = np.cumsum(empirical_pmf)
    uniform_cmf = np.arange(1., n_live + 1., 1.) / n_live

    D = abs(empirical_cmf - uniform_cmf).max()
    sample_size = len(indexes)
    K = D * np.sqrt(sample_size)

    r = {}
    r["D"] = D
    r["sample_size"] = sample_size
    r["p_value_asymptotic"] = kstwobign.sf(K)
    return r

def rolling_p_value(indexes, n_live, iterations=None, chunk_k=1):
    """
    @returns Rolling Kolmogorov-Smirnov test from indexes
    """
    if iterations is not None:
        indexes = indexes[:iterations]

    sample_size = len(indexes)
    chunk_size = chunk_k * n_live
    chunks = [indexes[i:i + chunk_size] for i in range(0, len(indexes), chunk_size)]
    tests = [ks_ns(c, n_live) for c in chunks]
    test = min(tests, key=lambda t: t["p_value_asymptotic"])
    index = tests.index(test)
    test["iterations"] = (index * chunk_size, (index + 1) * chunk_size)
    test["n_chunks"] = len(chunks)
    test["p_value_uncorrected"] = test["p_value_asymptotic"]
    test["p_value_asymptotic"] = 1. - (1. - test["p_value_uncorrected"])**test["n_chunks"]
    if test["p_value_asymptotic"] == 0.:
        test["p_value_asymptotic"] = test["p_value_uncorrected"] * test["n_chunks"]
    return test

OK, I have added a version of that code as anesthetic.utils.insertion_p_value, and some tests to both validate, and show users how it works. Whilst the theory is still evolving (e.g. how to deal with a variable number of live points, how to correct properly for the initial and final live points), I will hold off from making a dedicated NestedSamples p-value checking function beyond the NestedSamples._compute_insertion_indexes, but I think it is very helpful to provide users with a p-value test that is appropriate for discrete uniform distributions.

If you're happy with this @andrewfowlie, could you approve again, and I will merge once the tests pass.


[solaris/illumos] add SIGRTMIN and SIGRTMAX

Description
Add these functions, similar to the Linux ones. Also add tests.
Sources
For illumos, the source code is at 1 and documentation is at 2. Blame suggests that Solaris also supports the same calls.
The comment about "no placeholder values" doesn't really apply in this case, just like on Linux, because SIGRTMAX is a dynamic function call.
Checklist

[x] Relevant tests in libc-test/semver have been updated
[x] No placeholder or unstable values like *LAST or *MAX are
included (see #3131)
[x] Tested locally (cd libc-test && cargo test --target mytarget);
especially relevant for platforms that may not be checked in CI

Thanks for the quick review :D


First class callable syntax

I replaced all callables to use the First class callable syntax.
I also fixed some small codestyle issues.

Thanks


[BUG] Can't use with rustfmt installed not by rustup

After https://github.com/dtolnay/cargo-expand/pull/45, cargo-expand only checks rustfmt installed by rustup.
But many people, install rustfmt from the distro package manager, such as the rust package of Arch (include rustfmt).
In this case, cargo can't find rustfmt, then aborted and told user they must install rustfmt with rustup.
It's a REALLY REALLY TERRIBLE idea because it restricts users' freedom to choose their own tool installation method.
Hopefully, you can seriously consider whether you must use rustup.

I think the implementation in this crate is fine.
If someone is interested in the toolchain_find crate supporting non-rustup environments, that should be made as a PR to the toolchain_find crate.


Install package remains installed

SQL Operations Studio Version: 0.31.4

Steps to Reproduce:

When install the package the green button (install/update) is showing after install without reload, instead of blue reload button like visual studio code.

This issue is related to the acquisition experience for 3rd party extensions, (download vsix and install). we have Issue #3874 tracking this in a more general way.


Add "Notes" field to Donate form

From finance: Add a "Notes" field to the form, data to be passed off to Stripe. This is so we can capture info about, e.g., if a donation is specifically for the gala.

this is live on prod


Switched to google maps base

Switched to google maps
@rlh-aagis

@rlh-aagis
I think you forgot to push the changes after doing the merge locally.

I made some major changes since this pull request, I will make a new one.


Update README.rst

Returns None:
blob = bucket.get_blob('/remote/path/to/file.txt')

Returns blob:
blob = bucket.get_blob('remote/path/to/file.txt')

LGTM.
@jgeewax this is certainly not an issue where copyright assignment would matter:  do we need to wait for CLA to be happy before merging?

I signed it!

Thank you for the patch!

@dhermes : In general, the safe bet is to get a CLA signed on everything. I agree it seems silly to require  this for things like typo fixes, but it's still important.


Update history to persist partition config

What changed?
Update history to persist partition config in mutable state and workflow started event and forward it to matching when pushing activity and decision tasks to matching

Why?

How did you test it?

Potential risks

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build 0186dc78-c7ef-486b-a680-61ac41c51181

29 of 30 (96.67%)  changed or added relevant lines in 13 files are covered.
121 unchanged lines in 15 files lost coverage.
Overall coverage decreased (-0.02%) to 57.06%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

service/history/execution/mutable_state_util.go
0
1
0.0%

Files with Coverage Reduction
New Missed Lines
%

common/peerprovider/ringpopprovider/config.go
2
81.58%

common/persistence/executionManager.go
2
78.94%

common/persistence/historyManager.go
2
66.67%

common/cache/lru.go
3
90.73%

common/persistence/serialization/parser.go
4
65.41%

common/persistence/serialization/thrift_decoder.go
4
61.22%

service/history/task/fetcher.go
4
91.24%

common/persistence/statsComputer.go
5
94.64%

service/history/queue/timer_queue_processor_base.go
7
77.48%

service/history/shard/context.go
9
66.7%

Totals

Change from base Build 0186cdbd-336b-4353-a858-d2c036facdb3:
-0.02%

Covered Lines:
85295

Relevant Lines:
149484

💛  - Coveralls


Receiving error "error for tree [null]

Output of restic version
❯ restic version
restic 0.11.0 compiled with go1.15.3 on linux/amd64
How did you run restic exactly?
From my script, backup works but stats and prune don't.
export RESTIC_REPOSITORY="/run/media/marcelo/THEGREY/BACKUPS/tars_linux/" && export RESTIC_PASSWORD_COMMAND="\gpg --quiet --decrypt /home/marcelo/Projects/rest-o/pwd.restic.txt.gpg"
\restic backup --repo "${RESTIC_REPOSITORY}" --force --verbose --exclude-file="${RESTIC_EXCLUDED:-}" --files-from "${RESTIC_INCLUDED}" "${RESTIC_USER_HOME:-}"
restic prune [breaks]
restic stats [breaks]

What backend/server/service did you use to store the repository?
export RESTIC_REPOSITORY="/run/media/marcelo/THEGREY/BACKUPS/tars_linux/" && export RESTIC_PASSWORD_COMMAND="\gpg --quiet --decrypt /home/marcelo/Projects/rest-o/pwd.restic.txt.gpg"
Expected behaviour
Removal of unneeded data with the usage of prune command and get statistics from the repository with the stats command.
The check command is returning various blobs errors
Actual behaviour
❯ restic prune --verbose 3
repository 6d9f087d opened successfully, password is correct
counting files in repo
building new index for repo
[0:00] 100.00%  11878 / 11878 packs
repository contains 11878 packs (408993 blobs) with 58.120 GiB
processed 408993 blobs: 0 duplicate blobs, 0 B duplicate
load all snapshots
find data that is still in use for 51 snapshots
[0:21] 64.71%  33 / 51 snapshots
id<PHONE_NUMBER>000000000000000000000000000000000000000000000000000000 not found in repository
github.com/restic/restic/internal/repository.(*Repository).LoadBlob
	/restic/internal/repository/repository.go:156
github.com/restic/restic/internal/repository.(*Repository).LoadTree
	/restic/internal/repository/repository.go:723
github.com/restic/restic/internal/restic.FindUsedBlobs
	/restic/internal/restic/find.go:19
main.getUsedBlobs
	/restic/cmd/restic/cmd_prune.go:276
main.pruneRepository
	/restic/cmd/restic/cmd_prune.go:158
main.runPrune
	/restic/cmd/restic/cmd_prune.go:62
main.glob..func19
	/restic/cmd/restic/cmd_prune.go:27
github.com/spf13/cobra.(*Command).execute
	/home/build/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:826
github.com/spf13/cobra.(*Command).ExecuteC
	/home/build/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:914
github.com/spf13/cobra.(*Command).Execute
	/home/build/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:864
main.main
	/restic/cmd/restic/main.go:98
runtime.main
	/usr/local/go/src/runtime/proc.go:204
runtime.goexit
	/usr/local/go/src/runtime/asm_amd64.s:1374

❯ restic stats
repository 6d9f087d opened successfully, password is correct
scanning...
error walking snapshot: walking tree<PHONE_NUMBER>000000000000000000000000000000000000000000000000000000: id<PHONE_NUMBER>000000000000000000000000000000000000000000000000000000 not found in repository

❯ restic check
using temporary cache in /tmp/restic-check-cache-801153215
repository 6d9f087d opened successfully, password is correct
created new cache in /tmp/restic-check-cache-801153215
create exclusive lock for repository
load indexes
check all packs
check snapshots, trees and blobs
error for tree [null]:
  id<PHONE_NUMBER>000000000000000000000000000000000000000000000000000000 not found in repository
Fatal: repository contains errors

restic check --check-unused finds various blobs, more than my terminal can show me without a less/more piped. And issues an error at the end:
...
unused blob <data/63a863fd>
unused blob <data/66d14b00>
unused blob <data/dcc78d75>
unused blob <tree/20c594fa>
unused blob <data/158204f3>
unused blob <data/3ff78ad6>
unused blob <data/7e6034c5>
unused blob <data/d3110c55>
unused blob <data/9a1e75c9>
unused blob <tree/49b7fcff>
unused blob <data/3c41fe3e>
unused blob <data/5420f020>
unused blob <data/fab494e9>
unused blob <data/39e39119>
unused blob <data/feb2cec1>
unused blob <data/bcd2e562>
unused blob <data/cdc2d274>
unused blob <data/36e113dd>
unused blob <data/a10905b9>
unused blob <tree/9331a7b5>
unused blob <data/3ecaa4e5>
unused blob <data/56769a41>
unused blob <data/685b08db>
unused blob <data/c34fdde0>
unused blob <data/06dc8a71>
unused blob <tree/ef06d66d>
Fatal: repository contains errors

Steps to reproduce the behaviour
Do a backup, run stats, run prune, run check
Running from my script or manually the backup command works. The mount, find, rebuild-index commands also work.
Mounting and copying some random files from different snapshots from different months worked.
Do you have any idea what may have caused this?
Not really. Just noticed it after updating to 0.11.0. I use a script to back up, prune, check and get the stats before and after the backup, but I do not check the report every time. I think I checked once when I updated to 0.10. Running it manually also shows the errors. I checked both my system filesystem and the external USB 3 HDD, both with BTRFS. Check with btrfs scrub and btrfs filesystem usage
Do you have an idea how to solve the issue?
No
Did restic help you today? Did it make you happy in any way?
...

Thanks for the detailed description. The error looks like something went slightly wrong during backup and restic ended up creating a snapshot with a null tree instead of failing. This is not a problem of the underlying repository storage as that would cause restic to complain about broken packs etc.
Could you run the following command to try to find out which snapshot is affected?
restic list snapshots -q | while read idxid; do \
        restic cat -q snapshot $idxid | jq 'select(.tree | contains ("0000000000000000000000000000000000000000000000000000000000000000"))'; \
done

The most interesting data there is probably when the snapshot was created, because based on that information we might find out which restic version was in use at that point in time.

Could you run the following command to try to find out which snapshot is affected?

Here it is:
❯ restic list snapshots -q | while read idxid; do \
        restic cat -q snapshot $idxid | jq 'select(.tree | contains ("0000000000000000000000000000000000000000000000000000000000000000"))'; \
done

{
  "time": "2020-11-15T22:36:24.252957929-03:00",
  "tree": "0000000000000000000000000000000000000000000000000000000000000000",
  "paths": [
    "/home/marcelo",
    "/home/marcelo/Games/steamapps/compatdata/275850/pfx/drive_c/users/steamuser/Application Data/HelloGames/NMS"
  ],
  "hostname": "tars",
  "username": "marcelo",
  "uid": 1000,
  "gid": 1000
}

Removing it seems to have solved the problem:
❯ restic forget 9f16b858
repository 6d9f087d opened successfully, password is correct
[0:00] 100.00%  1 / 1 files deleted
❯ restic stats
repository 6d9f087d opened successfully, password is correct
scanning...
Stats in restore-size mode:
Snapshots processed:   50
   Total File Count:   15520894
         Total Size:   57.714 GiB
❯ restic check
using temporary cache in /tmp/restic-check-cache-129102296
repository 6d9f087d opened successfully, password is correct
created new cache in /tmp/restic-check-cache-129102296
create exclusive lock for repository
load indexes
check all packs
check snapshots, trees and blobs
no errors were found

❯ restic prune --verbose 3
repository 6d9f087d opened successfully, password is correct
counting files in repo
building new index for repo
[4:03] 100.00%  11878 / 11878 packs
repository contains 11878 packs (408993 blobs) with 58.120 GiB
processed 408993 blobs: 0 duplicate blobs, 0 B duplicate
load all snapshots
find data that is still in use for 50 snapshots
[0:24] 100.00%  50 / 50 snapshots
found 393540 of 408993 data blobs still in use, removing 15453 blobs
will remove 0 invalid files
will delete 1348 packs and rewrite 686 packs, this frees 8.788 GiB
[2:06] 100.00%  686 / 686 packs rewritten
counting files in repo
[2:16] 100.00%  10219 / 10219 packs
finding old index files
saved new indexes as [8a7b0197 213e5495 ad585f40 5c38162c]
remove 5 old index files
[0:00] 100.00%  5 / 5 files deleted
remove 2034 old packs
[0:00] 100.00%  2034 / 2034 files deleted
done

❯ restic check --check-unused
using temporary cache in /tmp/restic-check-cache-072009413
repository 6d9f087d opened successfully, password is correct
created new cache in /tmp/restic-check-cache-072009413
create exclusive lock for repository
load indexes
check all packs
check snapshots, trees and blobs
no errors were found

Rebuilding index seems to be producing different results every execution
❯ restic rebuild-index --verbose=3
repository 6d9f087d opened successfully, password is correct
counting files in repo
[0:00] 100.00%  10219 / 10219 packs
finding old index files
saved new indexes as [536a817e 75b94a63 bb2189ad 10eb9f6b]
remove 4 old index files
removed <index/5c38162c60>
removed <index/8a7b019749> deleted
removed <index/ad585f402e>
removed <index/213e5495f2>
[0:00] 100.00%  4 / 4 files deleted
❯ restic rebuild-index --verbose=3
repository 6d9f087d opened successfully, password is correct
counting files in repo
[0:00] 100.00%  10219 / 10219 packs
finding old index files
saved new indexes as [200d54bd 1881dc38 c8cacd6c e16effb7]
remove 4 old index files
removed <index/10eb9f6b01>
removed <index/bb2189ad01> deleted
removed <index/75b94a6329>
removed <index/536a817e5b>
[0:00] 100.00%  4 / 4 files deleted
❯ restic rebuild-index --verbose=3
repository 6d9f087d opened successfully, password is correct
counting files in repo
[0:00] 100.00%  10219 / 10219 packs
finding old index files
saved new indexes as [0a1b4cf1 ead54fa1 92dde267 484a299b]
remove 4 old index files
removed <index/1881dc3852>
removed <index/200d54bd3f>
removed <index/e16effb78a> deleted
removed <index/c8cacd6c51>
[0:00] 100.00%  4 / 4 files deleted

Thanks for the feedback! It looks like restic created an empty snapshot when you ran it on 2020-11-15. Do you maybe still have an idea what you did on that particular date and which version of restic that was? :stuck_out_tongue_winking_eye: Did you cancel restic with CTRL+C?
I remember there was a bug some time ago which made restic create a snapshot although some fatal error occurred, but I can't seem to find it...

Someone else also reported the same issue in the forum: https://forum.restic.net/t/invalid-repo-id-00-00-not-found-in-repository/3348/4
Their version was also 0.11.0 (although on Windows). I conclude we have some kind of issue with early cancellation in restic...

I'm able to reproduce it, I'll add details later

Add the following patch:
diff --git cmd/restic/cleanup.go cmd/restic/cleanup.go
index 738ec590..8246f81a 100644
--- cmd/restic/cleanup.go
+++ cmd/restic/cleanup.go
@@ -5,6 +5,7 @@ import (
    "os/signal"
    "sync"
    "syscall"
+   "time"

    "github.com/restic/restic/internal/debug"
 )
@@ -76,5 +77,6 @@ func CleanupHandler(c <-chan os.Signal) {
 // given exit code.
 func Exit(code int) {
    RunCleanupHandlers()
+   time.Sleep(10 * time.Second)
    os.Exit(code)
 }
diff --git internal/archiver/archiver.go internal/archiver/archiver.go
index 44081812..86c3996c 100644
--- internal/archiver/archiver.go
+++ internal/archiver/archiver.go
@@ -786,6 +786,9 @@ func (arch *Archiver) Snapshot(ctx context.Context, targets []string, opts Snaps
    start := time.Now()

    debug.Log("starting snapshot")
+
+   time.Sleep(5 * time.Second)
+
    rootTreeID, stats, err := func() (restic.ID, ItemStats, error) {
        tree, err := arch.SaveTree(wctx, "/", atree, arch.loadParentTree(wctx, opts.ParentSnapshot))
        if err != nil {

Run a backup, directly cancel it (so the global context is cancelled). This makes arch.Snapshot() return context.Canceled, which is ignored in the current code. Then, it cancels the derived context, waits for all workers to return, and then ignores the context.Canceled error. At the end, a new snapshot is created, with the returned tree with a null ID. That was fun!
I've pushed a fix as #3155, but I'm not sure how complete it is.

There another requirement here: The backend still has to complete Save() operations even when the passed context is already canceled. Otherwise it's impossible for the broken snapshot to be saved to the repository.

Thanks for the feedback! It looks like restic created an empty snapshot when you ran it on 2020-11-15. Do you maybe still have an idea what you did on that particular date and which version of restic that was?  Did you cancel restic with CTRL+C?
I remember there was a bug some time ago which made restic create a snapshot although some fatal error occurred, but I can't seem to find it...

CTRL + C can definitely have happened. I'm clumsy.

Add the following patch:
diff --git cmd/restic/cleanup.go cmd/restic/cleanup.go
index 738ec590..8246f81a 100644
--- cmd/restic/cleanup.go
+++ cmd/restic/cleanup.go
@@ -5,6 +5,7 @@ import (
    "os/signal"
    "sync"
    "syscall"
+   "time"

    "github.com/restic/restic/internal/debug"
 )
@@ -76,5 +77,6 @@ func CleanupHandler(c <-chan os.Signal) {
 // given exit code.
 func Exit(code int) {
    RunCleanupHandlers()
+   time.Sleep(10 * time.Second)
    os.Exit(code)
 }
diff --git internal/archiver/archiver.go internal/archiver/archiver.go
index 44081812..86c3996c 100644
--- internal/archiver/archiver.go
+++ internal/archiver/archiver.go
@@ -786,6 +786,9 @@ func (arch *Archiver) Snapshot(ctx context.Context, targets []string, opts Snaps
    start := time.Now()

    debug.Log("starting snapshot")
+
+   time.Sleep(5 * time.Second)
+
    rootTreeID, stats, err := func() (restic.ID, ItemStats, error) {
        tree, err := arch.SaveTree(wctx, "/", atree, arch.loadParentTree(wctx, opts.ParentSnapshot))
        if err != nil {

Run a backup, directly cancel it (so the global context is cancelled). This makes arch.Snapshot() return context.Canceled, which is ignored in the current code. Then, it cancels the derived context, waits for all workers to return, and then ignores the context.Canceled error. At the end, a new snapshot is created, with the returned tree with a null ID. That was fun!
I've pushed a fix as #3155, but I'm not sure how complete it is.

Sorry, should I try it? Not sure how to do that.

Sorry, should I try it? Not sure how to do that.

Oh, no, sorry! that was just for the other developers reading along, it's my way to locally reproduce the issue, so it's not a solution but quite the opposite ;)


exporter/jaeger: thrift checksum mismatch on build with go modules

Describe the bug
Project that imports go.opencensus.io/exporter/jaeger and is using Go modules fails on build with:
verifying<EMAIL_ADDRESS>checksum mismatch
--
206 | downloaded: h1:CMxsZlAmxKs+VAZMlDDL0wXciMblJcutQbEe3A9CYUM=
207 | go.sum: h1:692K1/SsOcQvkvMRMdt60FCq2AvKpuQNM6sIeH3mN4s=

To Reproduce
Steps to reproduce the behavior:

Clone this repo https://github.com/jbub/censusthrift.
Run docker build or check the results of a failed build here https://cloud.drone.io/jbub/censusthrift/1/1/2.

Expected behavior
Expected the Go project to be built successfully.
Additional context
Original issue https://github.com/census-instrumentation/opencensus-go/issues/993.

I thought i did init modules with Go 1.12 but apparently i did not ? Anyway, this commit fixed it jbub/censusthrift@d4bcd45.


Fix bug in Split widget layouting when child has a minimum width/height

Me again messing with the Split widget.
This PR changes the way the layout is calculated.
The implementation is able to deal with widgets that have a minimum size, while the current has some minor problems.
In this example a Container with some Text inside a Padding which enforces a minimum width.

The new behavior would be blocking the splitter's position:

This is obviously only one of many solutions to this problem,
we could for example hide one widget if its layout is computed larger than the panel.
But I think that this would be the simplest and most commonly used behavior.
There is only one problem I sadly could not get rid of.
In some cases the layout of the children need to be computed twice per call which kind of goes against the convention of calling each layout method only once, but I wasn't able to figure out how to do it without.

Thanks for continuing to look at the issues with Split! We discussed this bug here in the project's Zulip chat - I'm not sure if you're aware we do a lot of design discussion there. We'd love to have you join us there, if you can.
Currently, I think our opinion was to treat this issue as a bug in Padding, rather than Split, since Padding is returning a Rect which violates the BoxConstraints it was given. The assumption that Split made (and which I think a few other widgets make) is that the child widgets will not violate the BoxConstraints they're given, and Padding is violating that contract.
I'm okay if we decide to go this way instead of - or in addition to - fixing the issue in Padding. A part of the discussion we've been having is whether it's acceptable for children to 'push back' by having a minimum size, as Padding does here. I don't think we've resolved whether we will support minimum sizes pushed 'up' from children - or whether we will support minimum sizes at all.

I have quickly read the comments on zulip and this seems to be a bit more complex design problem.
My PR is a good example why a "pushback" for minimum size is probably not the best solution
worst case example in my implementation:

splitter is moved and Split::layout is called
child1 layout fn is called and returns normally
child2 layout fn is called and it pushes back a minimum size
child1 BoxConstraint will be adjusted to fit child2's minimum size
child1's layout function gets called again
now child1's layout fn might return a minimum size because it was downsized and Split will violate its BoxConstraints because it wants to fit both widgets
child2's layout fn gets called again and we assume it will be now return the same size as before

Thats twice as many calls to layout as there should be since it always needs to be checked that all widgets are satisfied with their new BoxConstraints.
While I agree that in this case it would be the right thing to fix the Padding related bug, there should still be some way for widgets to force a minimum/static size.
Or alternatively give widgets like Split an option to limit the size it can minimize its child to, which might be good enough for some use cases.

Exactly. I think we're on the same page. Minimum sizes set on the parent container (like Split) was a discussion we had, I think a bit earlier in the thread. I certainly agree that it's pretty suboptimal to loop in layout - and it breaks our exactly-once-per-pass design.
I agree we need more ways to allow constraining the layout here, and in other layout widgets in any case.
Another concern we had was the overflow of children outside their parents. The solution I think we were considering was a ClipRect widget, which does what it says - clips it's children. This follows Flutter's design, where druid draws a lot of inspiriation from.

Sorry, I let this one slip by. @kbalt @Zarenor what's the next step here?

Well, since the behaviour is caused by a bug in ´Padding´ and not ´Split´ we should probably close this?

That is an entirely reasonable next step. :)


Mobile & responsive improvements for sidebar

I would like to work on this :)
With this ticket I want to improve the UX of the Sidebar in Backstage for devices, which are not desktop clients. This ticket is not meant to change the UI of the Sidebar - it should just be better useable across devices.
Feature Suggestion

Don't expand Sidebar on click, as it hides most content after already redirecting to the clicked page
Add a wrapper component for the possibility to make plugins scrollable to avoid a cut-off (not the whole sidebar though, like introduced in #3556)

Add Wrapper for SidebarItems. Org-specific items will take as much space as there, but plugins will be scrollable like Shortcuts are right now
Allows the sidebar to be always completely visible & SidebarSettings to be reachable anytime

Context
https://user-images.githubusercontent.com/8904624/123631025-8ceaa480-d816-11eb-9764-612620644fe5.mov

Nice. When you mention the scrollable / size limited stuff, do you mean you'd apply something akin to a min-height to those or something?

Swipe open the sidebar with touch gestures would be nice too, if we don't already have that. I believe the MUI sidebar stuff has support for that now?

When you mention the scrollable / size limited stuff, do you mean you'd apply something akin to a min-height to those or something?

Yes. I replaced the min-height with height for the page & added a wrapper component used for the plugins & shortcuts in the sidebar.

Swipe open the sidebar with touch gestures would be nice too, if we don't already have that. I believe the MUI sidebar stuff has support for that now?

Good point - that would be nice indeed! I went through the MUI docs, found the Drawer & will give it a go. Thanks! :)


Add a variable to control the "share" button in footer

We have 3 buttons in the footer now: "Share", "About" and "Feedback".
"Share" wouldn't be appropriate for many kinds of interviews--should we consider adding a configuration option for this, or is it enough to let people customize the full text of the footer?

Maybe it should be a higher-level flag that says "not sharable interview" which has some semantic meaning and might affect multiple settings.
Related: we should be able to infer whether "share my answers" is available or not based on whether multi_user = True or not

Do we want to have a corresponding "Do you want sharing turned on?" question in the ALWeaver?

https://github.com/SuffolkLITLab/docassemble-ALToolbox/blob/main/docassemble/ALToolbox/data/questions/escape_button.yml

See also #411


Waitlist functionality

From organizer:

When a certain ticket is sold out, Eventbrite creates an auto wait list that gets an email notification when tickets become available again. It even allows me to change the release order priority from the time stamped default order (something I do only when someone's order has gone wrong through no fault of their own).

Also requested by Bårdar Swing Club.

This could be done using the existing invite system. Maintain a list of people. The organizer can release people off the waitlist, which issues an invite to them.

Alternatively, we could add a flag to orders marking them as waitlisted that don't let them check out.

I like the first system for its simplicity and the second for its completeness / the way it ties into orders. But neither would prevent people from cheating the system by adding arbitrary attendees with passes once they're off the list...
Though I guess that would be maybe handled more or less by the pass quantity? Though then you couldn't get on the waitlist after completing an order. Maybe the waitlist should be per-item, as I think @nmorduch had suggested.

I think that could be considered a separate problem, since it already exists as a problem (YDW was unable to prevent people from registering multiple attendees who got off our waitlist) and could also be solved through other means (e.g., my proposal on #68 https://github.com/littleweaver/django-brambling/issues/68#issuecomment-138654948).

This ticket is also related to #358, since in my ideal world, a good solution would solve both.

Also I'm imagining (at some point, maybe not as part of the MVP) a mechanism that would let you toggle between automatically or manually releasing people from the waitlist. But I think the MVP should just have manually since that's easier and covers more use-cases.

More elaborate eventbrite waitlist reference material: https://www.eventbrite.com/support/articles/en_US/How_To/how-to-set-up-an-event-waitlist?lg=en_US

Also, another even would want functionality like this:

you can sign up for a 4-day class if 19 or fewer people are already registered, but if there are already 20, you can be added to a wait list but you can't actually sign up for the class.

This implies to me that you would be able to sign up for a different class while on the waitlist, and would be removed from that class if you get into a conflicting one (this event has morning and afternoon classes). Ideally you might want a "rank your top x priorities" kind of thing. That's bigger functionality than waitlist MVP though.


Compilation failed without any reason :(

I've checked some existing .bat files, but I think everything is fine

It seems that shaderc exits with a non-zero exit code, but no error message is given

So is there a solution?

oh ok

You can also try to see if you can run ./env/MaterialBinTool-0.8.1/shaderc.exe directly

still failed :(

You can also try to see if you can run ./env/MaterialBinTool-0.8.1/shaderc.exe directly

I tried it and not giving any output

it seems failed to run

Try to execute echo $LASTEXITCODE to see the exitcode

I try run the previous version and:

It seems that the illegal instruction exception (0xC000001D) is causing shaderc to not start on your computer

shaderc.exe may be corrupted, try downloading it again from the latest github release

I have added the file SHA-256 to the latest Release description of MaterialBinTool, you can compare it to determine if shaderc.exe is corrupted

It's same but still not can't launch, idk this was caused by my computer or not :(
no need to worry, I can still use previous version of shaderc

What is your CPU?

intel celeron n4000

I reproduced this problem on QEMU and confirmed that the problem is caused by the fact that bgfx currently has the AVX instruction set enabled by default, but your CPU doesn't support it.

Try this recompiled shaderc that doesn't use AVX instructions. if it's ok, I'll upload it to the latest release of MaterialBinTool.
shaderc-NoAVX.zip

It works now!
Thanks!


fix: materializedmetadata moving to mat engine

Materialization Engine should manage the non-schema models in the materialized databases.

Can I merge this now?

I think this needs a different PR on materialization engine open  to be mergable


How to apply tslint.json at generate command

Mac OSX (El Capitan)
env

angular-cli: 0.0.39
node: 5.6.0
os: darwin x64

I changed tslint.json file.
example. I change indent from spaces to tabs
"indent": [
      true,
      "tabs" // this code
]

and then,
I generate component or service,....
I expect created codes are applied tab indent.
but, angular-cli makes files as spaces indent.
What should I do this?

I solved it.
I thought maybe angular-cli uses tslint.json file in generate command.
However, angular-cli would seems to refer .clang-format file.
I append to .clang-format file like this.
Language:        JavaScript
BasedOnStyle:    Google
ColumnLimit:     100
IndentWidth: 4
TabWidth: 4
UseTab: ForIndentation

Is this right?
Should I synchronize both tslint.json and .clang-format files?

None of those files affect file generation. They only affect tslint and clang-format tooling support as they are configuration files for those tools.


prepare-wmt14en2de.sh

this .sh file is for getting WMT17en-de? not WMT14en-de,right?,and what  the valid dataset and test test dataset are?

Correct, by default it preprocesses the WMT'17 training data.
The valid set is newstest2013: https://github.com/pytorch/fairseq/blob/master/examples/translation/prepare-wmt14en2de.sh#L60
The test set is newstest2014: https://github.com/pytorch/fairseq/blob/master/examples/translation/prepare-wmt14en2de.sh#L106

Correct, by default it preprocesses the WMT'17 training data.
The valid set is newstest2013: https://github.com/pytorch/fairseq/blob/master/examples/translation/prepare-wmt14en2de.sh#L60
The test set is newstest2014: https://github.com/pytorch/fairseq/blob/master/examples/translation/prepare-wmt14en2de.sh#L106

Hi sorry I just want to ask, according to https://www.statmt.org/wmt17/translation-task.html , isn't this dataset lacking Rapid corpus of EU press releases dataset to be called WMT 2017?
Thank you!


thuang-style-private-column

Description
I ended up using spacings.large / 14px, otherwise it'd still be too tight somehow. Hope that's okay!

Issue
ch<fill_in_issue_number>
Test plan
Write how your changes are tested, or give a convincing reason why they can't be tested automatically.

Good eye! I think you made the perfect call on increasing the spacing, it looks great

Thanks both!! merginggg


Replace mixin with inventory tick

There's no need for this mod to use a mixin, it can just use the item's inventory ticking method instead to reduce velocity. This helps with compatibility, especially for my mod Moovy.


🧷 Front Matter Description is not used for metadata but summary

Describe the bug
I noticed that the Theme by default tries to use the front matter parameter "summary" to set the metadata description.
If there is none (that was the case for me, do not write summaries manually and have set auto summary length to 0), it uses the overall site description as metadata description.
While I see no inherent problem with that per se, I must make the remark that the theme documentation to the best of my knowledge does not mention that.
In fact, it tells you the exact opposite, namely that as I would have expected that the front matter description parameter is used for setting the metadata description (which it does not).
I am not sure how to best remedy that or what was originally intended?
I am almost assuming that this was a typo of some sort?
Even when using the summary feature, I would rather have the option to set the metadata description separately.
So I guess, the easiest and maybe also intenteded behavior is to just use the description and not summary of an page for the metadata?
To Reproduce
Visit any blowfish.page article site.
Inspect the metadata and notice that the site description is used as a fallback because no summary exists.
Expected behavior
I would expect the description parameter to be used for setting metadata.
Using the site description as fallback seems fine.

To make a long story short, I propose to change:
https://github.com/nunocoracao/blowfish/blob/92f26f9bdd20345767cfe23fa519f12b1c5aaece/layouts/partials/head.html#L17
to:
{{ with .Params.description | default .Site.Params.description -}}
This then would adhere to the documentation in my opinion.
Otherwise, I would propose to change the docs :)
Thanks for the awesome theme!

If you want me do, I can make a proper pull request this time :D

Happy to accept a PR but not with this solution. Let's keep the same logic as of today to avoid breaking changes to existing users. What I mean is:

yes, update docs to whatever the final solution is
keep using the summary in order not to break previous installations
also include description that way it doesn't really matter which one users pick it will get used in the right places

Thoughs?

Based on your requirements I see two potential solutions.
First:
Try to set metadata description as:  .Params.description > .Params.Summary > .Site.Params.description
This relies on the assumption that all people using the summary did not explicitly set a description for the article.
I would argue that should be the case, as I do not see a reason to set the description parameter when using the summary other than wanting that to be the metadescription, because it is not used for anything at the moment I guess.
Second:
The other (very safe) option would be to set the metadata description as:
.Params.Summary > .Params.description > .Site.Params.description
However I feel that does not make a lot of sense for the scenario where I explicitly want to set a different metadescription than the summary. Because in my case, I might want to start using the summaries in the future as they are a nice thing visually on the blog, however I want to be able to set a distinct metadescription.
Third option:
Create an global switch in the params allowing the user to opt for either the first or second option; and set the second option as default.
Please let me know what should be implemented, and I'll try to do it :)

Sorry, I'm vetoing the third one - not because I don't like it - because the theme is getting out of hand with so many possible config combinations, and it's getting hard to test/maintain.
Between 1 and 2 I prefer 2 as that will break less stuff in the wild. I do agree with your argument for having different descriptions.
I would go with

Blowfish will not support having a different summary and description for now
the theme will always rely on the summary for both fields OR the description if available OR the site one

Thoughts?

Yes I can understand why option 3 is not preferred.
I am not sure if I understand correctly:
Basically we should do option two, correct?
That would at least allow users that do not use summaries but descriptions to end up with a more meaningful meta description.

Yes. Option 2. I prefer making sure current users don't have to deal with breaking changes as that is a big pain when it happens.

@nunocoracao I would like to challenge the choice here, I think option 1 was the better one because the description value is significant in SEO practices so I'd like the ability to control it precisely, without losing the summary feature.
Ideally, I'd like the description to be set using the frontmatter to be the picked one, then the summary, and finally the site description.
What do you think?


chore: bdd-spring-1584512022 to 0.0.1

chore: Promote bdd-spring-1584512022 to version 0.0.1

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Fastnlight: Watch affordablecabinetsofcapecod.com

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

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

Approved by Jeff Schaller in Charcoal HQ


Should add Navigation to the business event catalog page

There is no information about how to open business event catalog page.
The navigation path (System administration > Setup > System parameters > Tab Business events - Preview.) should be added before you refer the navigation in Business events - Preview tab (Manage > Rebuild business events catalog).
Thanks,
Izuru

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 655c157f-5478-4c71-7cd4-1b04383264ee
Version Independent ID: 6555a353-87cd-c919-0c3e-dcfc4ede9909
Content: Business events - Finance & Operations | Dynamics 365 | #MSDyn365FO
Content Source: articles/dev-itpro/business-events/home-page.md
Service: dynamics-ax-applications
GitHub Login: @Sunil-Garg
Microsoft Alias: sunilg

@Sunil-Garg please review the issue and update the topic if necessary.
@sericks007 for awareness

Bug 308968 has been logged to track this issue.

This has been updated to show the navigation to the business event catalog. Pls note that after GA, the navigation is no longer via the system parameters.


Allow the installation of PyModPDE using pip

After cloning the package from GitHub allow the usage of the pip tool to install the package in the active python environment

Разрешить установку

implemented with https://github.com/saadgroup/PyModPDE/commit/bf8f40c82d58261ebc481b9e9fab4f89e89f6378


Move client-side application to separate repository

then use bower to install this app (through github), bind the webpack build step to the bower repo for the app

unnecessary for such a simple app


Send user email to frontend upon login

User Story:
As a user, I want to be able to view what email I've logged in as in the app so that I can know if I'm logged in using the email I've chosen.
Acceptance Criteria:

user email is sent to the frontend
email is encoded to base64

This has been implemented so I will close it.


Rename k8s policy to kube-controllers

Description
MVP rename of k8s-policy to kube-controllers.  Once this is approved I'll apply to v2.6 as well.
More to do but I think this is the minimum viable changes required for v2.6.  The rest can come later.

Todos

[ ] Tests
[ ] Documentation
[ ] Release note

Release Note

`calico/kube-policy-controller` has been renamed to `calico/kube-controllers`.

Upgrade note: the Kubernetes self-hosted manifests now configure the `calico-policy-controller` Deployment to have zero replicas and instead deploy a new `calico-kube-controllers` deployment.  Once upgraded to v2.6.0, it is safe to delete the old `calico-policy-controller` deployment via `kubectl delete deployment -n kube-system calico-policy-controller`

The failing test is something we can't do anything about - it will pass once this PR is merged (failing since there's no master checked-in version of the kube-controllers/configuration.md document added in this PR.

Thanks for the review @ozdanborne, @emanic. I've pushed up the changes.


Feedforward parameter bound check

Describe the bug
Dear, developers.
I appreciate your great work.
During the tests, I think there is a loose parameter check in feedforward parameters.
Personally, I think unbounded feedforward parameters (e.g., MC_PITCHRATE_FF, MC_ROLLRATE_FF, MC_YAWRATE_FF) definitely cause bad flight performance or even crash.
In addition, they show bad performance even with small values (e.g., 1.0)
Please note that default is 0.0.
I am talking about not only range check (in program) but also documented ranges in https://dev.px4.io/en/advanced/parameter_reference.html
Even if their values can be changed according to the model or specs, such parameters should be bounded.
Otherwise, some people who don't know the meaning of parameters may put strange values due to a lack of a minimal guidance....
Such parameters can be modified whenever PX4 runs via GCS command.
To Reproduce
With GCS connected to a drone, send param set MC_PITCHRATE_FF or MC_ROLLRATE_FF or MC_YAWRATE_FF with some values (e.g., 10 , 5 )
Expected behavior
It can crash or show oscillating flight patterns...
Log Files and Screenshots
If you need it, I will prepare it. But, it is very easy to reproduce....
Drone (please complete the following information):
SITL with IRIS+ quadcopter model

We would appreciate a pull request!


Fix bug where replication lag grows post primary relocation

Opening as draft - some other options we have to fix this though a bit more involved are:

Moving lag computation surfaced through node/stats to replica only. This will require updates for how lag is computed to enforce backpressure - possibly through a b/g sync.
Move the update checkpoint step inside of the replication event, in this case it would fail & retry the whole event.
Make a periodic bg sync call from primaries to their replicas to publish the latest cp.  Can try and make this smart & only publish to replicas still out of sync.

Thinking we should go ahead with this, and open a separate issue to discuss the right path fwd.

Description
[Describe what this change achieves]
Related Issues
Resolves https://github.com/opensearch-project/OpenSearch/issues/11211
Check List

[ ] New functionality includes testing.

[ ] All tests pass

[ ] New functionality has been documented.

[ ] New functionality has javadoc added

[ ] Failing checks are inspected and point to the corresponding known issue(s) (See: Troubleshooting Failing Builds)
[ ] Commits are signed per the DCO using --signoff
[ ] Commit changes are listed out in CHANGELOG.md file (See: Changelog)
[ ] Public documentation issue/PR created

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

The current solution breaks down when processing the latest received checkpoint as we don't know on the replica if an incoming checkpoint is coming from the former or new primary.
An alternate solution I've been testing here is to simply add a cluster changed listener, and on a routing table change we either process the latest cp or simply update the new primary with the replica's state like so...
    @Override
    public void clusterChanged(ClusterChangedEvent event) {
        if (event.routingTableChanged()) {
            // only consider replicas that have received a checkpoint
            for (ShardId shardId : latestReceivedCheckpoint.keySet()) {
                if (event.indexRoutingTableChanged(shardId.getIndexName())) {
                    final String previousNode = event.previousState().routingTable().shardRoutingTable(shardId).primaryShard().currentNodeId();
                    final String currentNode = event.state().routingTable().shardRoutingTable(shardId).primaryShard().currentNodeId();
                    if (previousNode.equals(currentNode) == false) {
                        IndexShard shard = indicesService.getShardOrNull(shardId);
                        if (shard != null && shard.routingEntry().primary() == false) {
                            processLatestReceivedCheckpoint(shard, Thread.currentThread());
                        }
                    }
                }
            }
        }
    }

This would cover our case here post relocation, guaranteeing that the replica updates the correct node.
Alternatively, we could look up the current primary on the replica, and if its routing entry shows a relocation is in progress invoke update to both old & new nodes.  However, this still leaves us depending on cluster state arriving at a certain time.

Resolved comments made against removed code as obsolete.

❕ Gradle check result for 08d58b7: UNSTABLE

TEST FAILURES:

      1 org.opensearch.search.SearchWeightedRoutingIT.testStrictWeightedRoutingWithCustomString_FailOpenEnabled

Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure.

https://github.com/opensearch-project/OpenSearch/issues/8030

added a changelog entry here as its user facing, needed to rebase to avoid conflict

❕ Gradle check result for e4b35a7: UNSTABLE

TEST FAILURES:

      2 org.opensearch.remotestore.RemoteIndexPrimaryRelocationIT.testPrimaryRelocationWhileIndexing

Please review all flaky tests that succeeded after retry and create an issue if one does not already exist to track the flaky failure.

https://github.com/opensearch-project/OpenSearch/issues/9191


[Snyk] Security upgrade io.dropwizard:dropwizard-migrations from 2.1.1 to 2.1.3

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `maven` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

dockstore-webservice/generated/src/main/resources/pom.xml

Vulnerabilities that will be fixed
With an upgrade:

Severity
Priority Score (*)
Issue
Upgrade
Breaking Change
Exploit Maturity

506/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 3.7
Stack-based Buffer Overflow SNYK-JAVA-ORGYAML-3016888
io.dropwizard:dropwizard-migrations:  2.1.1 -> 2.1.3
No
Proof of Concept

(*) Note that the real score may have changed since the PR was raised.
Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

See if cherry-pick of https://github.com/dockstore/dockstore/commit/69655e089104c282123286b3c5196e7e21259ff5 to develop auto-closes this (probably not)


With Bazel 6 and bzlmod configured rules_python, target determinator complains of invalid characters

When running with Bazel 6 and bzlmod configured rules_python, target-determinator complains of invalid characters in the repository name. rules_python when configured with bzlmod in Bazel 6 generates repository names of the form @rules_python~\d+\.\d+\.\d+\~pip~[user-defined-str].
An example of the error with minor redactions:

failed to process change: failed to load metadata at revision 'before' (sha: <sha>): failed to query at revision 'before' (sha: <sha>) in /runner/_work/repo/repo: failed to parse cquery result: label parse error: repository has invalid characters: "@rules_python~0.21.0~pip~pip//:boto3_pkg"

It looks like this error comes from using Gazelle's label.Parse, which depends on this regex.
I suspect it's unrelated, but I should also mention that I'm running a custom target selection query to pick up py_tests tagged external:
"attr('tags', '\bexternal\b', kind(py_test, //...))"

I already have a fix for this on the Gazelle side. Just waiting for it to be merged: https://github.com/bazelbuild/bazel-gazelle/pull/1508

@purkhusid thanks but your PR doesn't seem to add ~ to the repo regex, so I think it will not resolve this, sadly.


Revert "Add macOS support to snapshot"

Reverts fastlane/fastlane#8468

          1 Warning

:warning:
Big PR

  Generated by :no_entry_sign: Danger

Backing out temporarily until the original contributor can sign the CLA


git errors behind corporate firewall

Hi! Great collection here for Logseq sync via Git!
I setup my private Gitea instance on a webhosting server and for my Windows PC I use my work PC and a corporate firewall. Via our proxy I could make it work with VS Code, but not with the auto-commit feature of Logseq. I deactivated the TLS and both VS Code and Logseq show this warning, but it seems that Logseq Git is not commiting.
Should I add something to the Git Hooks?

Have you asked your company's IT or MIS? I think it would be easier to fix this problem with their help.

Thanks! Auto Commit and Proxy is set. I will check on the Discord server.
VS Code is working under this conditions, Logseq not.
I can't ask our corporate IT :)


TestService.importTest will not work if importing as a new Test, export should also be revisited

The Json structure does not support importing the data if it's importing to a different Horreum instance.
We should look at creating an object structure for both importing and exporting.
This will affect the API so ideally we should try to get it into 0.10...

This is not critical for 0.10.x

In https://github.com/Hyperfoil/Horreum/blob/master/horreum-api/src/main/java/io/hyperfoil/tools/horreum/api/alerting/Variable.java#L26 we reference Lables as a Json array node with only label names. We should use a list of https://github.com/Hyperfoil/Horreum/blob/master/horreum-api/src/main/java/io/hyperfoil/tools/horreum/api/data/Label.java instead.

VariableDAO is only referencing Label name as well. Which means we are limited by having global unique label names...


Colab notebook does not work

Traceback (most recent call last):
  File "test.py", line 77, in <module>
    app.run(main)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 303, in run
    _run_main(main, args)
  File "/usr/local/lib/python3.7/dist-packages/absl/app.py", line 251, in _run_main
    sys.exit(main(argv))
  File "test.py", line 31, in main
    training=False)
  File "/content/arcface-tf2/modules/models.py", line 82, in ArcFaceModel
    x = Backbone(backbone_type=backbone_type, use_pretrain=use_pretrain)(x)
  File "/content/arcface-tf2/modules/models.py", line 32, in backbone
    weights=weights)(x_in)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow_core/python/keras/applications/__init__.py", line 46, in wrapper
    return base_fun(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow_core/python/keras/applications/resnet.py", line 33, in ResNet50
    return resnet.ResNet50(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/keras_applications/resnet_common.py", line 435, in ResNet50
    **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/keras_applications/resnet_common.py", line 411, in ResNet
    model.load_weights(weights_path)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow_core/python/keras/engine/training.py", line 234, in load_weights
    return super(Model, self).load_weights(filepath, by_name, skip_mismatch)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow_core/python/keras/engine/network.py", line 1222, in load_weights
    hdf5_format.load_weights_from_hdf5_group(f, self.layers)
  File "/usr/local/lib/python3.7/dist-packages/tensorflow_core/python/keras/saving/hdf5_format.py", line 651, in load_weights_from_hdf5_group
    original_keras_version = f.attrs['keras_version'].decode('utf8')
AttributeError: 'str' object has no attribute 'decode'

@ma7555 Run below:
pip install 'h5py<3.0.0'
The error is happening due to newer version of h5py.


Ruby aws-sdk dependency need updates

Description
There has been new features introduced, one of them is a usage of credential_source in your shared profile instead of source_profile. That way you can let SDK to pick up a local EC2/ECS role to assume a target one. Currently the following:
AWS="aws --profile ${PROFILE_NAME}"
${AWS} configure set role_arn "${ROLE_ARN}"
${AWS} configure set credential_source "${CREDENTIALS_SOURCE}"

Will produce:
/opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/aws-sdk-core/shared_config.rb:156:in `assume_role_from_profile': Profile jarvis has a role_arn, but no source_profile. (Aws::Errors::NoSourceProfileError)
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/aws-sdk-core/shared_config.rb:111:in `assume_role_credentials_from_config'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/aws-sdk-core/credential_provider_chain.rb:95:in `assume_role_with_profile'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/aws-sdk-core/credential_provider_chain.rb:78:in `assume_role_credentials'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/aws-sdk-core/credential_provider_chain.rb:12:in `block in resolve'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/aws-sdk-core/credential_provider_chain.rb:11:in `each'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/aws-sdk-core/credential_provider_chain.rb:11:in `resolve'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/aws-sdk-core/plugins/request_signer.rb:37:in `block in <class:RequestSigner>'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/configuration.rb:70:in `call'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/configuration.rb:205:in `block in resolve_defaults'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/configuration.rb:57:in `each'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/configuration.rb:57:in `each'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/configuration.rb:204:in `resolve_defaults'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/configuration.rb:200:in `value_at'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/configuration.rb:189:in `block in resolve'
	from /opt/chefdk/embedded/lib/ruby/2.4.0/set.rb:324:in `each_key'
	from /opt/chefdk/embedded/lib/ruby/2.4.0/set.rb:324:in `each'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/configuration.rb:189:in `resolve'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/configuration.rb:177:in `apply_defaults'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/configuration.rb:150:in `build!'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/base.rb:68:in `build_config'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/base.rb:19:in `initialize'
	from /opt/chefdk/embedded/lib/ruby/gems/2.4.0/gems/aws-sdk-core-2.10.90/lib/seahorse/client/base.rb:105:in `new'
	from /home/jenkins/workspace/test@tmp/durable-7147b3d0/script.sh:4:in `<main>'

ChefDK Version
Chef Development Kit Version: 2.4.17
chef-client version: 13.6.4
delivery version: master (73ebb72a6c42b3d2ff5370c476be800fee7e5427)
berks version: 6.3.1
kitchen version: 1.19.2
inspec version: 1.45.13

Platform Version
Mac OS, Debian
Replication Case
Use the configuration above and try to execute anything.

Oh mine, it's actually not yet implemented on their side. Submitted https://github.com/aws/aws-sdk-ruby/issues/1677 - don't know do you want to keep a this one open for tracking or not...

We update the aws sdk fairly frequently, so I'll close this. thanks for the report.


Need to specify "key" attribute

Noticed warning from react when running in dev mode.

The 0.2.1 release does not specify a key attribute for <option>
React thus still generates a warning for those elements.


mapkubeapis failing on helm version "v3.4.2"

Hi
I was delighted to find this tool, but for some reason it doesn't work for me.
Can you please advise?
Thanks
Ariela
helm mapkubeapis rel-name  --namespace ns-name --dry-run
2023/06/19 15:27:17 NOTE: This is in dry-run mode, the following actions will not be executed.
2023/06/19 15:27:17 Run without --dry-run to take the actions described below:
2023/06/19 15:27:17
2023/06/19 15:27:17 Release 'rel-name' will be checked for deprecated or removed Kubernetes APIs and will be updated if necessary to supported API versions.
2023/06/19 15:27:17 Get release 'rel-name' latest version.
Error: failed to get release 'rel-name' latest version: query: failed to query with labels: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"
Error: plugin "mapkubeapis" exited with error

I am facing similar issue! Is there any updates?

The same for me. I run AWS EKS 1.25 and would like to upgrade to 1.26.
The command I use is as following
helm mapkubeapis 1.26 --namespace default --dry-run

getting Error:
2023/10/30 12:19:07 NOTE: This is in dry-run mode, the following actions will not be executed.
2023/10/30 12:19:07 Run without --dry-run to take the actions described below:
2023/10/30 12:19:07
2023/10/30 12:19:07 Release '1.26' will be checked for deprecated or removed Kubernetes APIs and will be updated if necessary to supported API versions.
2023/10/30 12:19:07 Get release '1.26' latest version.
Error: failed to get release '1.26' latest version: release: not found
Error: plugin "mapkubeapis" exited with error

I tried without --dry-run - the same error
Installed with the following command:
helm plugin install https://github.com/helm/helm-mapkubeapis
OS - macOS 13.4.1
Helm - Version:"v3.13.1"
GoVersion - "go1.21.3"
Any idea? BTW by providing only namespace the plugin should scan all resources within the namespace right?

Tried using 1.26.0 as RELEASE and additional flags --kube-context and -kubeconfig - no go :(

Based on deprecation-guide I updated map.yaml
- deprecatedAPI: "apiVersion: autoscaling/v2beta2\nkind: HorizontalPodAutoscaler\n"
  newAPI: "apiVersion: autoscaling/v2\nkind: HorizontalPodAutoscaler\n"
  deprecatedInVersion: "v1.23"
  removedInVersion: "v1.26"
- deprecatedAPI: "apiVersion: flowcontrol.apiserver.k8s.io/v1beta1\nkind: FlowSchema\n"
  newAPI: "apiVersion: flowcontrol.apiserver.k8s.io/v1beta3\nkind: FlowSchema\n"
  deprecatedInVersion: "v1.26"
  removedInVersion: "v1.26"
- deprecatedAPI: "apiVersion: flowcontrol.apiserver.k8s.io/v1beta1\nkind: PriorityLevelConfiguration\n"
  newAPI: "apiVersion: flowcontrol.apiserver.k8s.io/v1beta3\nkind: PriorityLevelConfiguration\n"
  deprecatedInVersion: "v1.26"
  removedInVersion: "v1.26"
- deprecatedAPI: "apiVersion: storage.k8s.io/v1beta1\nkind: CSIStorageCapacity\n"
  newAPI: "apiVersion: storage.k8s.io/v1\nkind: CSIStorageCapacity\n"
  deprecatedInVersion: "v1.24"
  removedInVersion: "v1.27"
- deprecatedAPI: "apiVersion: flowcontrol.apiserver.k8s.io/v1beta2\nkind: FlowSchema\n"
  newAPI: "apiVersion: flowcontrol.apiserver.k8s.io/v1beta3\nkind: FlowSchema\n"
  deprecatedInVersion: "v1.26"
  removedInVersion: "v1.26"

Still doesn't work. No clue what I miss here.

Did you find any workaround for this?