Case sensitive when using filtering

Describe the issue:
When a user searches for an application, the search is case-sensitive; so the intended application will not be displayed. You can refer to the following video for more details.
https://github.com/wso2/product-is/assets/46097917/525b5022-f527-4fb9-abd2-b1131fc7f9c6
Expected behaviour:
Filtering should be case insensitive
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: 7.0.0 M3 (Reproducible in 6.1.0)
Database: H2

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Is this FIPS possible to support VS2010 project?

Hi, master. These days I'm reading Programming Game AI by Example and I'm working in the demos now (see the [SAMPLE MATERIALS]/[Source Code] in the URL), trying to build them with FIPS.
The newest demo project is vs2010 and mostly can work fine with FIPS and vs2017(my development environment). FIPS is fantastic.
What make me feel hard is the luabind demo. luabind is combined with lua-5.1.3 luabind-?? and boost-??. When I use the latest version boost_1_72_0, I got Error C2665
E:\GitHub\Programming_Game_AI_by_Example\code\Common\luabind\luabind/object.hpp(556): error C2665: 'boost::operator ==': none of the 4 overloads could convert all the argument
types (compiling source file E:\GitHub\Programming_Game_AI_by_Example\code\Buckland_Chapter6_Scripting_Source\ScriptedStateMachine\main.cpp) [E:\GitHub\Programming_Game_AI_by_E
xample\fips-build\code\win_d\Buckland_Chapter6_Scripting_Source\ScriptedStateMachine.vcxproj]

To fix this error, I found the best way is using the matched version of boost, like boost_1_48_0 published in 2011. So there is no building script for vs2017 in boost_1_48_0.
Everything tell me I need install VS2010 and build the boost, then  build luabind demo.
BUT...
I check the fips/config/*.yml, find the oldest version for building in windows is winXX-vs2013-XXX.yml.
So, that is where the title question come from:  Is this FIPS possible to support VS2010 project?
If possible, I want to give it try.

I have made a try.
Build the boost_1_48_0 with VS2010 by it's original building script, then I get the include&library path which luabind need.
And I build luabind demo with fips using VS2017 compiler. It works.

Hi, by using the *-vstudio-* build configurations instead of one of the specific *-vs2017-* (etc), fips should select the "default Visual Studio version" on your system (so if you only have VS2010 installed, it should pick this).
An alternative is to add local build-config files to your main project (like here in the sokol-samples: https://github.com/floooh/sokol-samples/tree/master/fips-files/configs), copy one of the *-vs2017-* configs from fips to your project directory (under fips-files/configs) and then change the cmake generator to Visual Studio 10 2010:
https://github.com/floooh/sokol-samples/blob/31f09afcbb0ebcff75b19a31ba63e68eb5cba42c/fips-files/configs/sapp-d3d11-win64-vs2015-debug.yml#L3


Update QR code doc fwlink

From @danroth27 on July 20, 2017 5:54
We need to update https://go.microsoft.com/fwlink/?Linkid=852423 to point to the QR code doc https://github.com/aspnet/Docs/issues/3780
Copied from original issue: dotnet/templating#1121

From @DamianEdwards on August 16, 2017 3:0
The doc is now live but the FW link hasn't been updated. Needs to point to https://docs.microsoft.com/en-au/aspnet/core/security/authentication/identity-enable-qrcodes
@danroth27

It is already updated.


Add Save Command

This command is for saving edited icon to a 16 x 16 PPM file.

Closed Nov 14, 2015 at 10:51 AM


CTRL+Z doesn't edit back

This seems to be a bug since ages.
Context:
Ubuntu 18.04 on Lenovo legion y520-15ikbn.
Version: 1.34.0
Commit: a622c65b2c713c890fcf4fbf07cf34049d5fe758
Date: 2019-05-15T21:55:35.507Z
Electron: 3.1.8
Chrome: 66.0.3359.181
Node.js: 10.2.0
V8: 6.6.346.32
OS: Linux x64 4.15.0-20-generic snap
This bug appeared

VSCode Version:  1.34.0
OS Version: Ubuntu 18.04

Steps to Reproduce:

Open a file, do some change
Try to edit from command line pressing CTRL+Z

Does this issue occur when all extensions are disabled?: Yes/No
Yes. It does still appear once all extensions are disabled.
I indeed in order to test disabled all of them.

Does the Undo option from the Edit menu work? If yes, maybe you have bound Ctrl+Z to a different command. Launch "Keyboard Shortcuts" from context menu of gearwheel near bottom left corner. Click "Record Keys" icon. Type Ctrl+Z. What command gets listed?

Please also see this guide https://github.com/microsoft/vscode/wiki/Keybinding-Issues for how to track down keybinding issues.

@gjsjohnmurray  yes it does work from the menu. Also on the Keyboard Shortcuts it is the right "binding".
By the way I found the issue. I do have a German keyboard, and though I set it in the OS( to use the German keyboard mapping) then as CTRL+Y works as CTRL-Z ( in German Z and Y positions are switched) vscode is "see" my keyboard as an International USA one, that make sense as I guess is the default.


feat(helm): #471 - Expose rules and aggregateRule in ClusterRole

#471 Is requesting to allow value overrides for ClusterRole rules. I also have a use case using aggregationRule so I have added them together in this PR.

Hi @grzesuav @AmitKumarDas , I am leaving this as a draft because I am thinking about adding tests for helm charts. I have used https://github.com/helm/chart-testing-action and think this would be a good addition to metacontroller repo. Thoughts?

@mjsmith1028 good idea. I thing what would be good is single "root" package (jsonnet/helm/anything else)which would be cusotmizable and allow creation two other kinds - helm charts and raw manifests. Need to do some research in that space.

As I understand, currently the helmtest does linting and tries to install chart on kind cluster, right ? I think it is worth to always run this test, as i.e. metacontroller code can change with some runtime option, and we forget to update the chart. In this case I would like to catch this behaviour

As I understand, currently the helmtest does linting and tries to install chart on kind cluster, right ? I think it is worth to always run this test, as i.e. metacontroller code can change with some runtime option, and we forget to update the chart. In this case I would like to catch this behaviour

You are right, this makes sense. I can take off the conditional testing 👍

Hi @grzesuav , this PR is ready for review and merge if you are comfortable. 👍

@mjsmith1028 can you rebase on latest master ? Cannot automatically merge

@mjsmith1028 can you rebase on latest master ? Cannot automatically merge

thanks @grzesuav , I just rebased :)

:tada: This PR is included in version 2.5.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Mobile Footer Tweaks

This PR might be a dup of https://linear.app/agora-app/issue/AGORA-3201/fix-floating-footer

My PR that builds on top of this: https://github.com/voteagora/agora-next/pull/625


Problem with steam application

It is a weird issue that was not present before. When I move the steam window to a special workspace it works but then when I change my workspace ( move between workspaces ) I can see the steam application which was already moved to the special workspace for 3 seconds and then it dissapears. Here is the video if u cannot understand what I mean-
https://user-images.githubusercontent.com/128170542/231753194-2b9cf850-1ebb-4fe2-b5e8-e38ca0e0b8ad.mp4
EDIT : I updated the nvidia-hyprland-git package from the aur. I had to do yay -Y --gendb && yay --save --devel which will automatically update the package next time if a new commit is made to the hyprland repo. So everything is up to date.
As you can see on 0:06 I moved the steam application to a special workspace. On 0:08 you can see that when I try to change my workspaces I can see the steam application popping up out of nowhere and then dissapearing. It shouldn't pop out like that if it is moved to a special workspace. I should only see that workspace when I use the togglespecialworkspace keybinding.

Same on an Multi-Monitor-Setup. When changing workspaces on the second monitor, the workspace focused before the last change on workspaces on the first monitor will appear. E.g. On 1st Monitor change from WS1 to WS3. Than WS1 will appear for 1 second when changing WS on Monitor 2.

I don't use muti-monitor setup but I am also facing this issue on single monitor.

The latest commits seem to have solved the problem. Unfortunately, they also introduced a new problem. To change a WS in Waybar now requires two left mouse clicks after the first WS change. After switching, hovering is no longer registered. A right click anywhere on the Waybar "solves" the problem. Until the next WS change (via mouse).
If you have more than one monitor, the WS change via mouse on all other monitors becomes impossible. A left click makes the mouse jump to the center of the screen on which the last WS change via mouse took place.
@MrDisguised maybe change the Issue-Title? I feel this is not related to Steam.

If you have more than one monitor, the WS change via mouse on all other monitors becomes impossible. A left click makes the mouse jump to the center of the screen on which the last WS change via mouse took place.

Right click first, pro-tip. But yes, I am aware

The latest commits seem to have solved the problem. Unfortunately, they also introduced a new problem. To change a WS in Waybar now requires two left mouse clicks after the first WS change. After switching, hovering is no longer registered. A right click anywhere on the Waybar "solves" the problem. Until the next WS change (via mouse).
If you have more than one monitor, the WS change via mouse on all other monitors becomes impossible. A left click makes the mouse jump to the center of the screen on which the last WS change via mouse took place.
@MrDisguised maybe change the Issue-Title? I feel this is not related to Steam.

Oh it's ok :+1: I am little bit busy rn so I will edit the title of the issue when I get time dw :+1: .

I am using the hyprland-nvidia-git package and I am facing graphical glitches when I try to move a window to special workspace. -
https://user-images.githubusercontent.com/128170542/232233059-c97da6dc-a920-475b-8795-eb4297984d79.mp4

WTF

fixed xD
d6c4ae71d082eecefac40216b0a1b236daa3c0ab

@MrDisguised fixed xD
d6c4ae7

That was kinda funny lol.

Anyways, the original issue has been fixed, so I am closing this.


Fix authentication to amazon alexa

Added new error message to bypass during normal auth to amazon alexa

Beautiful, thank you. Will merge tomorrow. Hopefully I will find some time to release as well.

Beautiful, thank you. Will merge tomorrow. Hopefully I will find some time to release as well.

I test release today, it work fine now. thx for fast release


Is it possible to call msys2 from bash?

The current GitHub actions for Audacious support Ubuntu and macOS with a build matrix.
I would like to add Windows here with MSYS2.
Attempt: https://github.com/radioactiveman/audacious/commit/30316531e669d393463eb3ff30aa1ccb11759a18
-> Job run: https://github.com/radioactiveman/audacious/actions/runs/3982612562/jobs/6827228075
The MSYS2 Meson command works fine when running from PowerShell (see 'Configure v1'),
but I would like to reuse the bash script run-action.sh on all platforms.
Is this somehow possible?
Currently the step 'Configure v2' fails with: /usr/bin/bash: line 1: meson: command not found
Any help or suggestions are appreciated. Thanks. :)

I am not sure why it was written that way. Generally, I copy this template https://www.msys2.org/docs/ci/ and build on top of that. If there is a build procedure in that project I can try to add msys2 actions.

It's written that way to share most of the logic and avoid a ton of similar workflow steps with conditions for the OS and build system.
Idea:
1. configure
2. build
3. test
4. install
instead of
1. configure (Meson, Ubuntu)
1. configure (Autotools, Ubuntu)
1. configure (Meson, macOS)
1. configure (Autotools, macOS)
...
My idea is to add only the msys2/setup-msys2@v2 step in the existing workflow and handle everything else in the custom actions.
Adding a separate workflow.yml file for MSYS2 is not the issue. I don't need assistance there, thanks. :)
But is it possible to call MSYS2 from the action which is started in a bash shell?

The solution is to run the script with the MSYS2 shell instead of bash on Windows.
This is easy since composite actions also support if conditions meanwhile.
Example:
steps:
  - run: '$GITHUB_ACTION_PATH/run-action.sh "${{ inputs.action }}" "${{ inputs.os }}" "${{ inputs.build-system }}"'
    if: (!startsWith(inputs.os, 'windows'))
    shell: bash

  - run: '$GITHUB_ACTION_PATH/run-action.sh "${{ inputs.action }}" "${{ inputs.os }}" "${{ inputs.build-system }}"'
    if: startsWith(inputs.os, 'windows')
    shell: msys2 {0}

Changes for Audacious Plugins: https://github.com/audacious-media-player/audacious-plugins/commit/95cee3dd3863b96e467a16621ecdc92f95852254
--> Slim workflow file for all platforms / build systems.
Marking as solved. :)


fix: wrong repository navigation link on refactor issue template 🛠

Close #1440
Checklist:

[x] I have linked the PR to the correct issue.
[x] I have read the Contribution Guidelines
[x] I have built and tested the changes, and they do not break or show any errors.

@Vaishnavi-Patil2211 your review is appreciated 🙌🏻

Please merge this PR @Vaishnavi-Patil2211

Add screenshot


[IDEA] Remove sharex=False in figure 2-13?

This isn't a bug, but rather a possible suggested improvement. In figure 2-13 the option sharex=False is used to handle a bug that used to occur in matplotlib.
The argument sharex=False fixes a display bug: without it, the x-axis values and label are not displayed (see: https://github.com/pandas-dev/pandas/issues/10611).
That issue has been resolved. So there's no longer the need to include that argument. This is a possible improvement, the code still works perfectly.

I just noticed as well that this is now not needed.


Serenity/JS 3.0 - New website - Replace ESDoc with Docusaurus

We've reached the limits of what ESDoc is able to offer, and since the project is no longer maintained, we should switch to a more modern documentation generator.
I've experimented with Docusaurus v2 and it seems like the best candidate for what we're after, so:

static generator for the Serenity/JS Handbook
support for blog / announcements
support for API docs generation (via TypeDoc and the TypeDoc API plugin)

It would be great to include website replacement in 3.0 (or shortly after that) since we had to review all the articles anyway #1157
Results of my quick PoC:

New website has dependencies on:

https://github.com/milesj/docusaurus-plugin-typedoc-api/pull/35
https://github.com/milesj/docusaurus-plugin-typedoc-api/issues/36

cc: @viper3400
Scope

[x] New homepage
[ ] Migrate Serenity/JS Handbook from the old website
[ ] Update Readme files

[ ] assertions
[ ] console-reporter
[ ] core
[ ] cucumber
[ ] jasmine
[ ] local-server
[ ] mocha
[ ] playwright
[ ] protractor
[ ] rest
[ ] serenity-bdd
[ ] web
[ ] webdriverio

[x] Aggregate changelogs and migration guides in one place
[ ] Prepare a contributors' guide
[ ] New GitHub Sponsors page
[x] Refactor Serenity/JS modules so that the directory structure matches the documentation structure (#1258)
[x] Document public APIs (#1258)
[ ] Update API docs

[ ] Review all methods that declare @throws to benefit from https://github.com/milesj/docusaurus-plugin-typedoc-api/issues/61
[ ] Review all methods that declare a "tip" to benefit from https://github.com/milesj/docusaurus-plugin-typedoc-api/issues/62

Looks promising 👍

The website engine is now migrated from ESDoc to Docusaurus on main. The website will be published as part of the Serenity/JS 3.0 release.


UI displays upgrade options from different catalog for OpenEBS

Setup

Rancher version:
Browser type & version:

Describe the bug

To Reproduce

Install OpenEBS from helm3-library catalog in cluster using old UI.
Go to installed apps of the cluster in dashboard.

Result
The "Upgradable" column will show a version not available in the catalog ember uses to install openebs. If the upgrade is attempted an error will be encountered.
Expected Result

Do not show upgradable unless there are upgrade options in actual catalog. If upgradable cannot be supported since it was installed with old catalog that is fine as well.
Screenshots

Additional context

Detailed Description

Context

Working on making it so users can manage apps using the dashboard that were originally created in ember UI.

This is a related issue to #4120. The issue in this case with OpenEBS is caused by the App utilizing a chart (2.5.1) that no longer exists in the default repositories.
There is a PR (#4332) that will disallow the user to update/edit an App that was created using the old UI. Instead it will redirect them to the Cluster Management section which utilizes the old UI.

@ronhorton
Dev template

Navigate to old UI /g/clusters, for example: https://localhost:8005/g/clusters

Select Apps in the navigation and click on Launch

Choose OpenEBS from the helm3 library

Launch the app

Return to the cluster app page in the new dashboard, for example: https://localhost:8005/c/local/apps/catalog.cattle.io.app

Select the Edit/Upgrade action for the OpenEBS app

PASS Verified in 2.6.3-rc3

In 2.6.2 rancher, enabled legacy feature flag
installed openebs.
verified openebs installed on cluster
upgraded to 2.6.3-rc3
enabled legacy feature flag
Navigated to Cluster from step 2
Navigated to Project > Apps

opendbs is installed and up-to-date


AV/RangeError IoC as singleton

A class is registered as a non-interfaced singleton in the IoC
The container is freed
An out of range or AV is raised

This pull request fixes the above

Thanks!


Fix command deletion

delete commands (from edit command menu) is currently broken and deletes the wrong command. This is likely due to the custom sorting I had to implement to get it to list correctly.

Fixed - old code was parsing one digit so it only handled 1-9. Got rid of termion just using Inquire.


Make CustomIdentified constructor signature consistent with other constructors

Currently the constructor signature appears as following:
class CustomIdentified(Identified):

    def __init__(self, type_uri: str = None, *, name: str = None,
                 sbol_type_uri: str = SBOL_IDENTIFIED) -> None:

Note that all other constructor signatures put the name argument first.

It is not the case that "all other constructor signatures put the name argument first". Here are some classes whose constructors do not put the name argument first: Range, Cut, EntireSequence, SubComponent, ComponentReference, ExternallyDefined, LocalSubComponent, SequenceFeature, and VariableComponent. There are more, like Participation and Constraint.
I'm actually not sure why type_uri is allowed to be None. I was going to say it is required, but the constructor arguments indicate that it is optional. I suspect code will break if type_uri is not specified, but I don't know that for sure.
Let's leave this issue open in order to investigate whether it is ok for the type_uri argument to CustomIdentified to be unspecified.

It is not the case that "all other constructor signatures put the name argument first". Here are some classes whose constructors do not put the name argument first: Range, Cut, EntireSequence, SubComponent, ComponentReference, ExternallyDefined, LocalSubComponent, SequenceFeature, and VariableComponent. There are more, like Participation and Constraint.
I'm actually not sure why type_uri is allowed to be None. I was going to say it is required, but the constructor arguments indicate that it is optional. I suspect code will break if type_uri is not specified, but I don't know that for sure.
Let's leave this issue open in order to investigate whether it is ok for the type_uri argument to CustomIdentified to be unspecified.

It's more an argument about consistency for consistency's sake.  For example,  the constructor for CustomTopLevel in the same file puts name first:
class CustomTopLevel(TopLevel):

    def __init__(self, name: str = None, type_uri: str = None,
                 *, sbol_type_uri: str = SBOL_TOP_LEVEL) -> None:

Now, for keyword arguments, to a certain extent, the order doesn't necessarily matter.  Although a user is not obligated to use the keywords and could call a function relying only on the order of the arguments.
Finally, having the name parameter first is just what I am used to, which isn't necessarily a strong argument.  However, as a convention in original libSBOL and libSBOLj, the identity parameter was always the first parameter.

It's more an argument about consistency for consistency's sake.  For example,  the constructor for CustomTopLevel in the same file puts name first:
class CustomTopLevel(TopLevel):

    def __init__(self, name: str = None, type_uri: str = None,
                 *, sbol_type_uri: str = SBOL_TOP_LEVEL) -> None:

Now, for keyword arguments, to a certain extent, the order doesn't necessarily matter.  Although a user is not obligated to use the keywords and could call a function relying only on the order of the arguments.
Finally, having the name parameter first is just what I am used to, which isn't necessarily a strong argument.  However, as a convention in original libSBOL and libSBOLj, the identity parameter was always the first parameter.

The difference is that name (now identity, see #135) is a required argument for CustomTopLevel (and TopLevel) objects. Non-TopLevel objects like CustomIdentified the name (now identity) argument is optional. That is why name (now identity) comes after the required type_uri argument in the CustomIdentified constructor.
For constructors that require a name (now identity), that argument comes first. For constructors where name (now identity) is optional, it appears in the argument list after all required arguments.
I think this is a change from SBOL2, and the examples you cite are SBOL2 libraries. SBOL3 Best Practices (Section 7.2 of the SBOL 3.0 specification) explains how identities of compliant non-TopLevel objects are to be constructed.

The difference is that name (now identity, see #135) is a required argument for CustomTopLevel (and TopLevel) objects. Non-TopLevel objects like CustomIdentified the name (now identity) argument is optional. That is why name (now identity) comes after the required type_uri argument in the CustomIdentified constructor.
For constructors that require a name (now identity), that argument comes first. For constructors where name (now identity) is optional, it appears in the argument list after all required arguments.
I think this is a change from SBOL2, and the examples you cite are SBOL2 libraries. SBOL3 Best Practices (Section 7.2 of the SBOL 3.0 specification) explains how identities of compliant non-TopLevel objects are to be constructed.


JSON format

I found a bug of my JSON encoder. padding_length and padding should not be included in frame_payload if padding is not defined in its frame format. I will fix this
Cc: @jblazquez

Looks good to me.


Install qt5-base didnt support export feature properly

installing qt5-base in x64-windows triplet successful
2, used vcpkg export command for qt5-base and used it in different machine,
In different machine , try to run "qmake --version" from the exported folder/installed/x64-windows/tools/qt5

it shows the lib path of original system path where it is actually built

this is fixed in PR https://github.com/Microsoft/vcpkg/pull/2892.  You don't even have to rebuild to test out that PR, all you need to do is create the following qt.conf file in the tool's folder (so tools/qt5 for qmake & qml, and the same file again in tools/qt5-tools for designer & linguist):
[Paths]
Prefix = ../../
Documentation = share/qt5/doc
Headers = include
Libraries = lib
Binaries = tools/qt5
LibraryExecutables = tools/qt5
Plugins = plugins
Qml2Imports = qml
Data = share/qt5
ArchData = share/qt5
HostData = share/qt5
HostBinaries = tools/qt5

@apattnaik0721013 if you have a minute to add a qt.conf file with the content as described above to your exported vcpkg tools (vcpkg-export/installed/your-triplet/tools/qt5 in your case) and report in it would be greatly appreciated.

Hi @apattnaik0721013 , thanks for reporting this issue!
Please open a new issue if this is still a problem for you.
Thx.


[topgen] Currently unavoidable warning ("device peri in Xbar main is connected to another Xbar")

Running make -C hw top, we currently spit out several copies of:
WARNING: device peri in Xbar main is connected to another Xbar

As far as I can tell, there's no way to connect up our chip the way we want without triggering this warning. So we either need to add a "yeah, I know" flag to the tool to silence it, or remove the warning altogether.
@eunchan: I think you added this warning in commit c745294243. Could you explain what it's trying to say? (I'm definitely not an expert on this part of the tooling!)
This currently blocks landing PR #5026, which fixes several bugs in our CI linting flow.
@msfschaffner: FYI

I think this should be INFO rather than warning. :)


feat: Add support for Vitest workspace

Resolves #376

Also, could you update the options section of the readme.md with these change?

I was lost for a moment, so I have to ask. Did I guess correctly - you meant the Default column?

And I would love to have another section in the Coverage-Thresholds Section of the Documentation with this warning:
Warning
Currently, this action does not import the vite-configuration, but parses it as string to extract the coverage-thresholds by an regexp. In other words: All thresholds need to be directly defined in the config-file given to this action through the vite-config-path input. E.g., when using workspace to extend a parent-configuration, the thresholds can not be defined in the parent-config.

No problem, I added at the top of aforementioned section. Is this where you wanted this warning to display?

@xeho91 : Yep, perfect, thank you!
There was a list minor formatting issue, but I just went ahead and fixed that myself to not trouble you any further.
As soon as the code-scan is succesfull, I will merge and release this.
Thank you very much for this contribution! ❤


ambient: optimize endpointSliceAddressIndex

In a moderate scale cluster with O(6k) pods this results in a roughly 6x reduction in CPU and 6x reduction in allocations. See graphs below.
Comments inline explain why this is a useful optimization
Before:

After:

Note the Y axis is not the same in the pictures

Putting on hold, trying a better approach


RuntimeError: CUDA error: an illegal memory access was encountered

I tested img with shape (1,3,678,1020) on 2x bicubic SR task when using tile mode, error occured:
Traceback (most recent call last):
File "/home/baifree/pycharm-community-2021.1.2/plugins/python-ce/helpers/pydev/pydevd.py", line 1483, in _exec
pydev_imports.execfile(file, globals, locals)  # execute the script
File "/home/baifree/pycharm-community-2021.1.2/plugins/python-ce/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "/home/baifree/codes/denoise_research/HAT-main/hat/test.py", line 11, in
test_pipeline(root_path)
File "/home/baifree/anaconda3/envs/torch1.8.2-py36/lib/python3.6/site-packages/basicsr/test.py", line 40, in test_pipeline
model.validation(test_loader, current_iter=opt['name'], tb_logger=None, save_img=opt['val']['save_img'])
File "/home/baifree/anaconda3/envs/torch1.8.2-py36/lib/python3.6/site-packages/basicsr/models/base_model.py", line 48, in validation
self.nondist_validation(dataloader, current_iter, tb_logger, save_img)
File "/home/baifree/codes/denoise_research/HAT-main/hat/models/hat_model.py", line 171, in nondist_validation
self.crop_merge(self.img)
File "/home/baifree/codes/denoise_research/HAT-main/hat/models/hat_model.py", line 126, in crop_merge
outputlist = [self.crop_merge(patch) for patch in inputlist]
File "/home/baifree/codes/denoise_research/HAT-main/hat/models/hat_model.py", line 126, in
outputlist = [self.crop_merge(patch) for patch in inputlist]
File "/home/baifree/codes/denoise_research/HAT-main/hat/models/hat_model.py", line 123, in crop_merge
output_batch = self.net_g(input_batch)
File "/home/baifree/anaconda3/envs/torch1.8.2-py36/lib/python3.6/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/baifree/codes/denoise_research/HAT-main/hat/archs/hat_arch.py", line 978, in forward
x = self.conv_after_body(self.forward_features(x)) + x
File "/home/baifree/codes/denoise_research/HAT-main/hat/archs/hat_arch.py", line 964, in forward_features
x = layer(x, x_size, params)
File "/home/baifree/anaconda3/envs/torch1.8.2-py36/lib/python3.6/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/baifree/codes/denoise_research/HAT-main/hat/archs/hat_arch.py", line 619, in forward
return self.patch_embed(self.conv(self.patch_unembed(self.residual_group(x, x_size, params), x_size))) + x
File "/home/baifree/anaconda3/envs/torch1.8.2-py36/lib/python3.6/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/baifree/codes/denoise_research/HAT-main/hat/archs/hat_arch.py", line 530, in forward
x = self.overlap_attn(x, x_size, params['rpi_oca'])
File "/home/baifree/anaconda3/envs/torch1.8.2-py36/lib/python3.6/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
result = self.forward(*input, **kwargs)
File "/home/baifree/codes/denoise_research/HAT-main/hat/archs/hat_arch.py", line 425, in forward
attn = attn + relative_position_bias.unsqueeze(0)
RuntimeError: CUDA error: an illegal memory access was encountered
python-BaseException
Process finished with exit code 1
Could you please give us some help.

same issue

same issue


drawer doesn't redraw on breakpoints

waiting for https://github.com/vuejs/vue/commit/1cf02efda206185cb72bbaafb00037fa6269e3f3


nginx: [emerg] no servers are inside upstream

Hi all,
I try to use nginx-proxy, but doesn't works.
docker exec -ti nginx-proxy bash
root@2913f58b4a98:/app# nginx -t
2017/06/02 14:07:50 [emerg] 73#73: no servers are inside upstream in /etc/nginx/conf.d/default.conf:50
nginx: [emerg] no servers are inside upstream in /etc/nginx/conf.d/default.conf:50
nginx: configuration file /etc/nginx/nginx.conf test failed

here the /etc/nginx/conf.d/default.conf
 29 # HTTP 1.1 support
 30 proxy_http_version 1.1;
 31 proxy_buffering off;
 32 proxy_set_header Host $http_host;
 33 proxy_set_header Upgrade $http_upgrade;
 34 proxy_set_header Connection $proxy_connection;
 35 proxy_set_header X-Real-IP $remote_addr;
 36 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 37 proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto;
 38 proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl;
 39 proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port;
 40 # Mitigate httpoxy attack (see README for details)
 41 proxy_set_header Proxy "";
 42 server {
 43         server_name _; # This is just an invalid value which will never trigger on a real hostname.
 44         listen 80;
 45         access_log /var/log/nginx/access.log vhost;
 46         return 503;
 47 }
 48 # mail.plusdispo.docker
 49 upstream mail.plusdispo.docker {
 50 }
 51 server {
 52         server_name mail.plusdispo.docker;
 53         listen 80 ;
 54         access_log /var/log/nginx/access.log vhost;
 55         location / {
 56                 proxy_pass http://mail.plusdispo.docker;
 57         }
 58 }
 59 # plusdispo.docker
 60 upstream plusdispo.docker {
 61 }
 62 server {
 63         server_name plusdispo.docker;
 64         listen 80 ;
 65         access_log /var/log/nginx/access.log vhost;
 66         location / {
 67                 proxy_pass http://plusdispo.docker;
 68         }
 69 }

Do you have an idea ?

I faced the same issue with empty upstream definitions. I'm using docker-compose to bring up some containers and had tried running the nginx-proxy as per the instructions with docker run.
I think this is down to the nginx-proxy having a different network to the container you want to proxy. Adding the nginx-proxy to the docker-compose configuration worked ok for me. Later I realised that I could add additional networks to the nginx-proxy container (with docker network connect) and this works too.
As per issue #848, perhaps the best bet would be to use the host network.

@ajtucker
Yes,  try my folk if you like:  https://github.com/Neilpang/nginx-proxy

@Neilpang @ajtucker
I just tested neilpang/nginx-proxy docker image and it fix upstream definitions problem !
Now, i can start different docker-compose.yml with separate networks.
Maybe you could suggest a merge request with your fix :)

@quadeare
Here is a PR,  https://github.com/jwilder/nginx-proxy/pull/849

Thank @Neilpang
I have found a workaround. Add in my DockerCompose file this : network_mode: bridge on each service.


Naming tweaks for ImageAnalysis

Move TypeScript client into @azure-rest namespace.
Change operation name from Buffer to ImageData, since Buffer is a loaded term and may be confused or wrongly hint toward some built-in types or interface (e.g. "buffer protocol" framework in Python). If we look at emitted SDKs, this change is internal only for C#, Python, and Java. It does affect public API name for the RLS JS SDK.

This rename will break ALL SDK customers. I'm not sure it's worth it.
How many customers will this negatively impact?

I believe none. But maybe I missed something.

The service isn't based on this TypeSpec, but rather is hand written by a different team and is not changing as a result of this.
(It uses a single "analyze" and the content type to determine what the request is, and to make auto-gen work we needed to use different method names in the TypeSpec)
For Java, C#, and Python the method is hidden and hand written overloads of "Analyze" exist that call the internal methods.
For JS the RLC the type names of the query parameter classes change, so anyone using TypeSpec to define their query parameters will be impacted.
The SDK (Which we'd planned to put its first release on this current release train) is in preview.

I'll accept the feedback that the change isn't worth it. Given the above the disruption seemed small.


[Liminal] Add Liminal character sheet

Changes / Comments
Added a new character sheet for the Liminal RPG.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[ ] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.


Default counting line color if we add more than colors defined

When the line color is black, its hard to see the directional arrow (black on black). I think the easy fix is not to have black lines.

Hi.. thanks, very minor but keep it on the backlog... the fix will be to just change the default from black to some other color
I'm sure you know you can add more counting lines colors in the config.json: https://github.com/opendatacam/opendatacam/blob/master/documentation/CONFIG.md#customize-counter-colors

Fixed in development. See also https://github.com/opendatacam/opendatacam/pull/498


BUG: evaluate-busco brakes when input mags > ~1,300

The actual problem is vega, the plotting engine. See this post.
Error message:
altair.utils.data.MaxRowsError: The number of rows in your dataset is greater than the maximum allowed (5000).
Try enabling the VegaFusion data transformer which raises this limit by pre-evaluating data
transformations in Python.
    >> import altair as alt
    >> alt.data_transformers.enable("vegafusion")
Or, see https://altair-viz.github.io/user_guide/large_datasets.html for additional information
on how to plot large datasets.
Plugin error from moshpit:
  The number of rows in your dataset is greater than the maximum allowed (5000).
  Try enabling the VegaFusion data transformer which raises this limit by pre-evaluating data
  transformations in Python.
      >> import altair as alt
      >> alt.data_transformers.enable("vegafusion")
  Or, see https://altair-viz.github.io/user_guide/large_datasets.html for additional information
  on how to plot large datasets.

So the plotting breaks not with 5,000 mags but actually with around 1,360.
setting alt.data_transformers.disable_max_rows() will increase the limit to around 1,580.
Above these, it will still output a blank plot.
I wsay "around" because depending on the number of mags * samples this number might vary.

Possible solution?

Make new plots for every ~1,000 mags and put them in different tabs in the HTML? Anyway, 1,000 mags is too much data to actually look at and get insight from.

Just as a reference what Pau is trying to plot are 5,260 MAGs, distributed among 150 samples which contain a median of 30 MAGs, (min 1, max 127).

@misialq this would in Pau use case create around 11 tabs. Would that be ok?

Hmmm, I'm thinking now that actually it's more complicated than saying how many MAGs you want to display - they are grouped per sample, right? We don't want to split MAGs from the same sample between two tabs - would this be possible?
I don't think the number of tabs is a problem per se... It's either that or one thousand of rows in less tabs... That's why I thought to make it configurable, but maybe the default could still be something higher (like 1k) if you think that's better. I have not seen a visualization with so many MAGs so it's a bit tough to imagine what this would look like...

@misialq

We don't want to split MAGs from the same sample between two tabs - would this be possible?
I would make it so that doesn't happen. Selecting samples iteratively until the threshold is reached.

I have not seen a visualization with so many MAGs so it's a bit tough to imagine what this would look like...
I can send you the one that is on the limit haha. I ll do it over Slack.

I don't think the number of tabs is a problem per se...
The other option that I am looking into is having a dropdown menu from which users can select which range of samples to look at (like in the second tab of the chekm viz), e.g. the first 500, the second 500, and so on. As you said the number of MAGs per range can be left configurable.

Sounds good - I like the solution with a drop-down or something similar - let me know when you have something to look at 😎

As the solution included the vegafusion transformer which caused trouble at conda installation (also, technically it is not available for all platforms yet) I'm reopening this - we'll need to find a different one.


command bus does not call MonitorCallback#reportFailure when no handler can be found for command

The problem is present in all command bus implementations. Create test and fix for:

[ ] SimpleCommandBus
[ ] DistributedCommandBus
[ ] DisruptorCommandBus

Also validate that the exception is correctly passed into the CommandCallback.

Pushed a commit that fixes this.
@abuijze: before submitting a PR, a few questions/remarks:

looked into whether the exception is passed correctly into the CommandCallback: currently an exception is raised directly and the CommandCallback is not invoked. The JavaDoc for both CommandBus#dispatch explicitly documents this behavior. Do we keep it this way?
DistributedCommandBus does not raise an NoHandlerForCommandException but raises a CommandDispatchException, shall I fix this as part of this issue too?
while fixing this, I found the following inconsistency: in general (afaik), all CommandBusses should use the command message that is the result of the dispatch interceptors to look up the command handler and for the message monitor; only the SimpleCommandBus implements this correctly, the DistributedCommandBus uses the original command message for both, the DisruptorCommandBus uses the original command message for the message monitor. Concrete question: shall I fix this as part of this issue or create a new one?

@OscarScholten,

the first one is the hardest one. In most implementations, the sending component is aware of the commands that can be handled in the cluster. However, it is not inconceivable that certain implementations don't have this overview. However, I suggest leaving it the way it is right now (throwing exceptions directly). Implementations that don't have this overview will then just have to report exceptions in the callback.
Yes, please do.
I think it's fine to change this behavior as part of this ticket. It should be uniform for each implementation. I agree to use the result of the dispatch interceptors to report with the monitor. That result is also the message that should be used to locate the handler. I am fine with changing that as part of this ticket.

Done!


activeStyle does not work

activeStyle property for the hash routing does not work. I have reproduced it in the following url
https://codesandbox.io/embed/w0op0r5ov7 . In code sand box it does not also scroll. I have got the scrolling working but the active link is not taking the style given.

This is an issue with React Router, it seems like the fix is merged in master but not released yet.
See https://github.com/ReactTraining/react-router/issues/6877

This should be fixed in v2.2.0


drivers: sam_can: fixed MCAN Register Base Address

Before that fix, the default mrba was used; additionally the offset of "0" to the actual mcan memory location was used.
Fixes #68472

Please use regs as previously adviced.

should be ready, as expected

@henrikbrixandersen ... understood, I will make the changes according your requestes.

@tswaehn Ping?

@tswaehn Do you plan to return to this PR? Zephyr v3.7.0 deadline for bug fixes is getting close. I'd like to see this one included.

@tswaehn Do you plan to return to this PR? Zephyr v3.7.0 deadline for bug fixes is getting close. I'd like to see this one included.

yes, I will try to get it done.

alright, after pull, merge, push and all these things I finally lost my changes, so im giving up on this.

I think, I covered all requested changes.


Text styling

Implementation for sfeir-open-source#22.

can you also make sure the unit tests are still in sync and up to date?

Everything done.

☸ Build auto-deployed at: https://xlayers-9b3a5cc.angular.run


[Bug]: Page name is displayed  as "NULL" in the Duplicate Key error

Is there an existing issue for this?

[X] I have searched the existing issues

Description
When the user tries to create a application after searching for a name of an application thta does not exists the user is displayed with an error
Steps To Reproduce

Navigate to the main page of Appsmith, where all the applications are located.
Type the name of an existing application in the search bar and click on “search”.
Click on the “Add new application” button, which will display an error.

Public Sample App
No response
Environment
Release
Issue video log
No response
Version
Release

@sribalajig Please check the above comment.

Closing the issue as it does not exist.


substituite julia variables in REPL mode

close #121
@davidanthoff, please test it.

Seems to work, so cool!! Thanks a ton for the quick turnaround!


Pressing checkmark on keyboard clears the value of the field

  TextFormField _phoneField() {
    MaskedTextController maskedTextController =
        new MaskedTextController(mask: '000-000-0000');

    return TextFormField(
      controller: maskedTextController,
      decoration: InputDecoration(
          labelText: 'Phone',
          helperText: 'Please use the format XXX-XXX-XXXX.'
      ),
      keyboardType: TextInputType.phone,
    );

The checkmark button on the keyboard should just remove the cursor from the field and hide the keyboard. Not sure why it's clearing the value from the input. Note: happens with other keyboardTypes as well.
On flutter beta channel, flutter_masked_text 0.6.0

Hi!
Sorry, I can't reproduce this issue. Probably was fixed in flutter.
I created a video trying to reproduce and ask for more information:
https://screencast-o-matic.com/watch/cFXleBrcKu

This bug is happening with me.
Flutter version 1.1.9
Dart version 2.1.1

Also happening to me.
The text field is cleared after dismissing the keyboard.
Tested with the same code @dwolfhub wrote.
Flutter 1.0.0 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 5391447fae (3 months ago) • 2018-11-29 19:41:26 -0800
Engine • revision 7375a0f414
Tools • Dart 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

@benhurott, thanks for making this! Ok, I can reproduce this on iPhone 5 and Android simulated and on my Samsung s10. I've stripped all my logic out of the code and still the issue happens. Should you need more information, please feel free to check in.

Putting the controller in a variable (global or local) doesn't fix this for me.  Here's what I'm using:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.7.8+hotfix.4, on Mac OS X 10.14.2 18C54, locale en-CA)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 10.1)y long time...⢿
[✓] iOS tools - develop for iOS devices
[✓] Android Studio (version 3.5)
[!] IntelliJ IDEA Community Edition (version 2019.1.3)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
[✓] VS Code (version 1.37.1)
[✓] Connected device (3 available)

In case this helps anyone, I fixed this in the following way:
MoneyMaskedTextController _valueController = MoneyMaskedTextController();
_valueController.afterChange = (String previous, String next) {
      _valueController.updateValue(double.parse(next));
};

I too face the same issue of value get disappeared in flutter on clicking the checkmark. Can you please help to figure it out?

I got the solution. Thank you...


Added getBlood component

Added the GetBlood component and capitalized the getBlood import in the home page as well .
I also changed the pencil.svg to include the pencil icon, and added the heartbeat.svg needed.
I also capitalized the getBlood in the home page.
These are screenshots of the component on different screens

Thanks, You did an Amazing Job.


Build-ability for arm64 platform

It would be extremely helpful to be able to build on arm64/aarch64 docker platform to enable local native use on Apple Silicon and other arm64 platforms without requiring rosetta2 or qemu emulation.

Implementation started.


v1.1 Update Plan

New Features

Looping Toggle (Add song to end of queue after finished playing)
Shuffle Toggle (Shuffles queue query or playlist load you do)
Prepend Toggle (Prepends queue query or playlist load you do to queue)
Cover Toggle (Display cover art when song begins to play)
Add entire library to queue
Folder Query option (Returns files within folder provided)
Queue List Display is paginated to 20 per page
Stop Update & Fast Update option
Role Set can now set all people that have a Discord Role rather.
Detect new users and add them to DB
Volume option
Join command with no parameter will join voice channel user who used the command is in or first voice channel it finds.
Installer & Config Setup
New Update Notification
Playlist query option

Patches

Pretty and uniformed messages.
More error messages rather than silence.

Bugs Fixed

Queue List now displays properly when large
Join command no longer gets confused with text channels.

Comments
This update will cover a few things people want, provide more clarity for failed inputs, have less messy replies, and add some more convenience.
I would like to do support @mention, however mentions are broken for nicknames in the discord.js library so there's a need to wait for that to be fixed before adding in support.

No longer coming due to MusiQueue (#3).


KonMari the interactive table

rename "Interactive tutorials" as "Interactive Lessons & Challenges"
divide table into "Learn a Tech Stack" & "Capture the flag (CTF)"

but does it spark joy in your heart? ✨ 😂 ❤


rocksdb: Fix partial synced inactive WAL

What is changed and how it works?

Issue Number: Close https://github.com/tikv/tikv/issues/16705

What's Changed:
Fix partial synced inactive WAL

Related changes

[ ] PR to update pingcap/docs/pingcap/docs-cn:
[x] Need to cherry-pick to the release branch

Check List
Tests

[x] Unit test
[ ] Integration test
[ ] Manual test (add detailed scripts or steps below)
[ ] No code

Side effects

[ ] Performance regression: Consumes more CPU
[ ] Performance regression: Consumes more Memory
[ ] Breaking backward compatibility

Release note

Fix partial synced inactive WAL

/merge

/test


Avoid confusing term in API Priority and Fairness concept

Fix: #36393

@divya-mohan0209 I believe this PR is ready to be merged. Any more suggestions from your end?

/approve


readme files and directory setup

fix:#30

i just create the readme file and put all the steps there how we move in directory.

i just create the readme file and put all the steps there how we move in directory.

i just create the readme file and put all the steps there how we move in directory.


Update spice-client-jvm to 0.5.15

About this PR
📦 Updates com.outr:spice-client-jvm from 0.5.5 to 0.5.15
📜 GitHub Release Notes - Version Diff
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.outr", artifactId = "spice-client-jvm" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.outr", artifactId = "spice-client-jvm" }
}]

labels: library-update, early-semver-minor, semver-spec-patch, version-scheme:semver-spec, commit-count:1

Superseded by #318.


Issues with Light mode

When using jamfcpr in Light system appearance, the package list is not displayed correctly.
Seems as if the text color is hardcoded to white instead of using system appearance.

Should be resolved with v1.0.2 - thanks for details.


Add ydFu to sig-docs-zh-reviews

I want to applied to join sig-docs-zh-reviews.
Application related links: https://github.com/kubernetes/org/pull/3436
Thank you!
/cc @tengqm
Signed-off-by: ydFu<EMAIL_ADDRESS>

/approve

/lgtm


[WIP] Add APIcast SelfManaged implementation

This PR implements the APIcast custom resource to be able to deploy APIcast self-managed in a standalone way without the full 3scale infrastructure.
One notable change in comparison with the apicast self-managed templates that we provide is that this operators is Kubernetes-native, allowing us to deploy in Kubernetes OperatorHub.
The APIcast CR structure is totally different and independent than the included APIcasts in the whole 3scale api management infrastructure deployed through 3scale-operator (https://github.com/3scale/3scale-operator)
Some remarks on the decisions taken and the motivations of them:
Image Management
Due to we want to be Kubernetes-native we cannot use ImageStreams anymore.
The way  to reference an image in Kubernetes-Native environment is by specifying the desired docker image URL reference in the Deployment where the image is referenced.
A policy on how the image is pulled can be configured through the ImagePullPolicy of the Deployment kind (https://kubernetes.io/docs/concepts/containers/images/)
Possible values for ImagePullPolicy are:

Always: means that kubelet always attempts to pull the latest image. Container will fail If the pull fails
Never: means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present
IfNotPresent: means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails

None of the available options really fits with the use case where the referenced image is a docker image floating tag, which is the way we have been managing APIcast releases until now when providing apicast self-managed.
This seems to be confirmed by the fact that the Kubernetes documentation says that "latest" tag (a floating tag) should not be used https://kubernetes.io/docs/concepts/containers/images/#updating-images
We don't want to use "Always" as the pull policy because new versions of the image would be pulled in the case where APIcast pod would be redeployed or scaled up. This would make the obtainment of the image non-controlable which we don't want
We don't want to use "IfNotPresent" because in case we were to update the image floating tag then we would never obtain the new image because it would be already present on disk
We don't want to use "Never" as never obtaining the image would mean we could never update it.
The only option that I can think of right now is using a fixed tag image, and release a new operator version each time there's a new APIcast self-managed image. The downside of that approach is that even for CVE image rebuilds we would have to release a new operator version (also for bugfixes and new 3scale releases in apicast-selfmanaged).
Secrets and Configuration management
Now APIcast is deployed through a Deployment and not through a DeploymentConfig(only available in OpenShift).
In order to try to make application-level configuration in APIcast flexible and not tied to the operator code, a secret can be provided via the APIcast CR that contains the environment variables that the APIcast pod will contain. NO specific environment variable names are specified in the code and no defaults are set either for the pods.
This secret is then referenced in the Deployment with the "EnvFrom" attribute. The downside in that approach is that changes in the Secret do NOT trigger changes in the Deployment. This behavior is a limitation/behavior is native to Kubernetes. This would mean that when changing a secret that is referenced in the Deployment the changes would not be effective in the pods of the deployment unless the user manually redeploys the pods of the Deployment.
To try to solve this limitation imposed by Kubernetes, the following approach has been taken:

The PodTemplate annotations section of the Deployment is updated with the resourceVersion of the secret that uses
In order to detect changes on the Secret provided via the CR an OwnerReference is set to them by the Operator and also a Watch of the secrets owned by the operator has been added. This also means that even though the secret is originally created by the user, it will be removed when removing the APIcast related CR.
When a change is detected in the referenced Secret by comparing the existing Secret resourceVersion and the saved one in the PodTemplate annotation section then this annotation is updated, triggering a new redeploy of the Deployment pods making the changes effective

This also applies to the 'apicast--admin-portal-endpoint' secret that is only managed by the Operator and it is not intended to be edited by the users.
Also other watches and controllerreferences are added on other secrets that have to be provided in the CR as fields.
Deployment Management
OpenShift's DeploymentConfig's allowed the redeployment of the pods at least through the UI. With Deployments it seems it is not possible to manually redeploy a Deployment (https://kubernetes.io/docs/concepts/workloads/controllers/deployment/).
If for some reason a user wants to redeploy pods in a Deployment without having really changed anything in the deployment then the solution would be for example adding an arbitrary "dummy" annotation in the PodTemplate to force Kubernetes detecting a change that redeploys it.
Operands resource names management
In order to try to make multiple instances of an APIcast CR available in the same project, all the resources created by the APIcast operator when deploying a CR will have the "apicast-" prefix. For example, if the APIcast CR you deploy has the name "myapicast" then the Deployment that is created by the operator will have the name "apicast-myapicast"
Upgrade Management
For potential changes that might appear in the future in the Operator that we don't want to be reconciled an upgrade procedure is coded as part of the Operator logic that will have to contain the needed changes for every operator release that needs them. This means that new code will for the upgrade will have to be implemented each time there are this kind of changes.
For the moment there's logic that sets the current operator version that the CR belongs to via an annotation named "apicast.apps.3scale.net/operator-version".
In case the annotation is not set in the CR the operator will set it. In case it is already set in the Operator and it does not match the deployed operator version the upgrade procedure will be triggered and when it is finished the annotation will be updated with the existing deployed operator version
Public hostname exposure
There's a field in the APIcast CR named "ExposedHostname" that allows making possible the ability to make the APIcast endpoint available from outside the cluster.
The way it does this is by creating an Ingress associated to the underlying APIcast's Kubernetes Service.
Take into account that creating the service does not always necessarily means that the endpoint is accessible automatically. Frequently it requires that the user will have to create and configures the desired IngressController themselves before/after deploying APIcast, which is a totally different action and not responsibility of this operator. The operator is responsible to provide the ingress so the endpoint can be made public, but how it is made public it is up to the user depending on their needs.
You can read more about the relations between Ingress and Ingress Operator here https://kubernetes.io/docs/concepts/services-networking/ingress/#what-is-ingress and some of the available Ingress Controllers that are available here https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/
Also it has to be taken into account that if the user decides to configure TLS at the Ingress level only the port 443 is configured an TLS termination is assumed. This is a limitation of Kubernetes Ingress objects themselves. More information here https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
Reconciliation
Only fields directly referenced by the CR (or that have a side-effect from them) are reconciled.
Status section management
No fields in status have been implemented yet. If we deem that necessary we'll implement them in another PR

I add an example of an APIcast CR:
apiVersion: apps.3scale.net/v1alpha1
kind: APIcast
metadata:
  name: example-apicast
spec:
  replicas: 1
  adminPortal:
    urlSecretKeyRef:
      name: apicast-admin-portal
      key: url
    accessTokenSecretKeyRef:
      name: apicast-admin-portal
      key: accesstoken
  environmentConfigurationSecretRef:
    name: apicast-environment
  image: quay.io/3scale/apicast:nightly

The apicast-admin-portal and apicast-environment secrets must have been created before and the apicast-admin-portal secret with the specified keys.
Another example with an exposed hostname as an Ingress would be:
apiVersion: apps.3scale.net/v1alpha1
kind: APIcast
metadata:
  name: example-apicast
spec:
  replicas: 1
  adminPortal:
    urlSecretKeyRef:
      name: apicast-admin-portal
      key: url
    accessTokenSecretKeyRef:
      name: apicast-admin-portal
      key: accesstoken
  environmentConfigurationSecretRef:
    name: apicast-environment
  image: quay.io/3scale/apicast:nightly
  exposedHost:
    host: "myhost.com"

First of all. good job :medal_military:
My general comments before reviewing the code, based on design decision exposed in this PR:
Image management
Fully agree on following k8s best practices and avoiding use of floating tags like latest. Indeed, secfixes and bugfixes will require new operator releases.
Good you exposed image in the CRD. However, as well as 3scale Operator, we have to make it clear that it is only meant for devtesting. Users should not use image field in the CR or would miss secfixes, bugfixes or even upgrading capabilities.
Secrets and Configuration management
I have serious doubts about the implemented solution. I guess the motivation is to make some configuration (not all, like admin portal url) operator code independent. The tradeoff is a complicated (complicated always comes along with error prone) mechanism based on watching a secret and detecting secret changes to redeploy a deployment based on a trick which is updating annotation.
What I suggest: KISS (keep it short and simple). Why not include them in the CR and propagate as env values??
env:
    - name: DEMO_GREETING
      value: cr.demo_greeting
    - name: DEMO_FAREWELL
      value: cr.demo_farewell

CR is a great interface to expose configuration parameters that the user eventually will want to update (and to be reconciled). Exceptions to that general rule? Credentials or sensitive information (in secrets) or configuration params not supported in reconciliation (in config maps??). I would start thinking about which configuration parameters are we going to support for reconciliation? which ones are left out of reconciliation?
You get out-of-the-box redeployment of the operand. The downside? I do not think it is at level of operator source code maintenance. I would think about CRD's would change adding new params. But that is expected too. Removing params or updating param names will break backwards compatibility anyway we implement.
I highly recommend rewriting this first implementation as simple as possible.
Operands resource names management
Good about namespacing :+1: . It is likely a user will want to deploy 2 CR's, one for staging and another for production.
Upgrade Management
I would leave this for the moment. We can leave the code as it is, but we can review it later.
Reconciliation
We are still learning about this complex procedure. So far, the best and most flexible implementation approach is that one you propose: reconciliation on k8s resource fields which value is directly or indirectly product from CR fields.

Hi @eguzki ,
Thank you for your feedback.
Regarding your comment about

Secrets and Configuration management

using CR fields instead of ConfigMap/Secret, I don't really see the Secret approach that bad.
I'll try to say why:
The motivation for that is to have the operator code independent of the environment variable names as much as possible indeed.

I guess the motivation is to make some configuration (not all, like admin portal url)

Admin portal URL has to be taken into account separately due to this information is mandatory, is a Secret (should not be provided in the CR), cannot be known in advance by the operator and in my opinion is "conceptually" different than the application-level environment variables (the url could be provided by another operator etc.).

The tradeoff is a complicated (complicated always comes along with error prone) mechanism based on watching a secret and detecting secret changes to redeploy a deployment based on a trick which is updating annotation.

I don't think this is that uncommon:

A common pattern in an Operator, when you are interested on acting upon changes on resources that are managed by the Operator is to add a Watch into those resource types. Those are called secondary resources. You have an example in the operator-sdk repository itself https://github.com/operator-framework/operator-sdk-samples/blob/master/memcached-operator/pkg/controller/memcached/memcached_controller.go#L54 although you'll observe that in several operator repositories
The pattern of keeping an account of some specific "version" or state of an object to act upon changes on it doesn't seem to be uncommon either. For example, Kubernetes itself in its APIConventions https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md says:

Some resources report the observedGeneration, which is the generation most recently observed by the component responsible for acting upon changes to the desired state of the resource. This can be used, for instance, to ensure that the reported status reflects the most recent desired status.

You can see an example of this for example in the Deployment resource types, and I also have seen it in other projects.
I've also seen other approaches that try to keep note of the changes on a managed resource. For example the openshift registry operator saves a checksum of them in an annotation https://github.com/openshift/cluster-image-registry-operator/blob/5a6d42a35f978671c21d65fb95305952bb036ab8/pkg/resource/deployment.go#L83
and I've also seen the storage of the checksum of the spec itself too in some other project.

The pattern of making a change in a Deployment by changing the PodTemplateSpec does not seem to be really uncommon neither, as there's no other mechanism provided in Deployments and this might be desirable anyway. See previous link where they do it too for example. I've also found another example where in Kubernetes 1.15 they've implemented a "kubectl rollout restart" command to automatically rollout a new deployment and the way they do it is by adding an annotation too https://github.com/kubernetes/kubernetes/pull/76062/files so it's not really that uncommon.

I don't really see it as that bad of an option.
We also really seem to need an implementation of this at least for the admin-portal part, as it is provided as a secret. How else would you do that part?
I agree that the approach is not perfect but that seems what we have available with how Kubernetes Deployment works and references to Secrets/ConfigMaps and reaction to object changes work. Of course there might be bugs related to this (as with any other functionality) and if it causes big problems we would have to reconsider it, but even in that case at this moment I don't see a good solution for when you have sensitive data as we shouldn't specify the secrets directly in the CR.
About being directly an environment section as an array of environment variables, my reservations about that approach are:

If you look at it, the environment in the CR I implemented is a Secret and not a ConfigMap. We might have environment variables that are sensitive. In that case the best thing is that they are referenced by a secret as we don't want to specify the sensitive data in the CR itself. If they are referenced by a secret you still need to know when the secret changes and restart the deployment upon it.
If some environment variable is not inherently reconcilable out of the box (it could happen for example if the environment variable is "deploy-only" or implies changes in the infrastructure colaterally) I thin the problem would happen in both the Secret and direct CR env specification approach. I don't think there's a difference in that case. It should be documented accordingly in that case for both cases that is non-reconcilable if you specify it, and if it requires referencing that specific envvar name in the code to give a special treatment to it, it would be needed in both cases.
Once you have an array you have to begin taking into account the order of it throughout your code and merging of different sections of the CR that end up in the same environment section.

CR is the primary interface exposed to the user to trigger updates you want the operator perform. I think anything you allow the user to change in the deployment configuration, should be exposed in the CR. infraestructure level attributes like "replica" count and "application" level attributes like some environment variable, becase they are all part of deployment config or service or imagestream you want to control. I disagree making that differentiation between infrastructure and application level params. Application level params are part of the deployment and you want the operator to have control over them. Validation, specific procedures and so on in operator logic.
You do not want the user to manually update your owned k8s resources. You want the operator to do that. Therefore, expose them in CR. Exceptions? As I said before, of course, sensitive data. Of course access token should not go in CR. And you are right saying we still need to watch on secrets if we allow reconciliation of those sensitive data. For instance, if we allow changing accesstoken, the secret that accesstoken exist must be watched and information propagated to the deployment config or whatever. The mechanism you implemented seems to be valid (let's see it in action...) and I agree it should be used to reconcile secrets. What I do not see is putting in secrets parameters exposed to the user not sensitive. The CR was meant for those parameters. Using secrets you would lose CR (openapi) validation, extensions being developed in OCP to edit CR's yamls with a better user experience UI, etc...
Therefore, attributes exposed to the customer:

Sensitive data that needs to be reconciled: in secrets and secrets are watched and reconciled with the mechanism implemented.
Sensitive data install only:  in secrets and secrets are not watched
Attributes that need to be reconciled: in CR. CR fields that are env variables in deployment configs, are copied as they are, so reconciliation is easy and straightforward
Attributes install only: in config maps

Specifically to our use case:

Admin Portal URL and access token should be reconciled and they should exist in the same secret. Otherwise reconciliation would happen in more than one step and it would be nice to avoid that transitive period we are creating with two secrets.
List all parameters that can be reconciled and put them in the CR, like THREESCALE_DEPLOYMENT_ENV
Leave the rest of the parameters install only y some config map. Are there any? Since there is no storage, maybe everything should be able to reconcile.
I am not sure Admin Portal URL should be mandatory field. We do not want to allow deploying apicast with THREESCALE_CONFIG_FILE?? Why not? The customer would like to create configmap with the config file and the deployment runs apicast without THREESCALE_PORTAL_ENDPOINT.

Regarding

Admin Portal URL and access token should be reconciled and they should exist in the same secret. Otherwise reconciliation would happen in more than one step and it would be nice to avoid that transitive period we are creating with two secrets.

Ok. I can't see a specific reason right now that mandates having them separated.
I've pushed a new commit that contains this change. At the end of the PR I'll redo history to squash it.

Regarding

List all parameters that can be reconciled and put them in the CR, like THREESCALE_DEPLOYMENT_ENV

By doing so instead of placing all of them into all of them in a secret this has the following implications:

Each time we want to support a new APIcast deployment envvar we'll have to add new changes in the CRD. This also means that we will have to upgrade the CRD
We risk being in a situation where we realize we might want to reorganize some set of parameters in a different section. This implies a change in a CRD that would break compatibility, which normal upgrade processes cannot perform and do not seem to be supported right now in operator-sdk in an automated way (it seems one of the solutions is using webhooks which are currently not supported there)

I understand your point of view where it has the following favourable points:

The user does not need to create a separate secret for fields that do not contain sensitive data, having them in the CR is more comfortable. This point however implies that for sensitive data we might end up with more than 1 secret for that sensitive data instead of the originally required 1 secret only for them.
We can take advantage of OpenAPI validation

I'm not entirely convinced that this is a better solution than the proposed one using secrets, but let's give it a try... I'll make the needed changes.

Regarding

I am not sure Admin Portal URL should be mandatory field. We do not want to allow deploying apicast with THREESCALE_CONFIG_FILE?? Why not? The customer would like to create configmap with the config file and the deployment runs apicast without THREESCALE_PORTAL_ENDPOINT.

I already had a PR in progress that would take care of that. I'll work on that in another PR though so lets exclude this point from this PR. That change will make us decide whether the Admin URL should be mandatory or not. There are several tradeoffs that we will have to end discussing.

Regarding,

Leave the rest of the parameters install only y some config map. Are there any? Since there is no storage, maybe everything should be able to reconcile.

At this moment I don't know.
With the new CR inclusion approach of the fields I'll look what I find. I'll begin by configuring the same fields that the template offers for the envvars and see what I find

I've replaced the AdditionalEnvironment secret to direct CR spec fields.
I've added the ones that are provided with the existing OpenShift template that we have excluding OAuth2 which are in process to be deprecated.
There is some commented code that will be cleant up but before doing that I'd like that we review the current state of the PR.

I do not see the reconciliation logic for the secret having info about admin portal url.
If it is not implemented yet, I suggest we leave it for another PR to avoid making this PR too big.

Regarding the reconciliation logic for the secret having info about admin portal url, you should see the code in the "reconcileAdminPortalCredentials" method in apicast_logic_reconciler.go
Also, in the reconcileDeployment method you should see the reconciliation of the corresponding annotation

you need to rebase before merge

I changed the unconventional error checking and rebased commits.
Ready for review

I've updated the PR to join the accesstoken and url field in the same secret field and only use one secret for AdminPortal.
I've also done some refactorings

I've updated the PR to use LocalObjectReference instead of SecretReference for the AdminPortalCredentialsRef attribute in apicast_types.go
The reason for this is that when an operator is namespaced scope (watch changes in a specific namespace) it only watches changes of the object in the specified namespace. The client provided by the operator-sdk also is only able to retrieve objects from the specified namespace and not from other namespaces. So, it only makes sense to provide a name for the secret, as we wouldn't be able to retrieve/watch changes of a secret in another namespace.

Regarding sorting the arrays, I'll do it in another PR :+1:


Remove inline JavaScript from less

This change enables to use less 3 without having to allow inline JavaScript (lessc --js and javascriptEnabled option).

Coverage remained the same at 80.53% when pulling 7d9fbf93ab05de3d20cb3c543de12bcfa0c1cc44 on less-without-js into 893c3abee535eb49d660e8beac86652812479a76 on develop.

Changed commit message of 5066cedf5ebd7ea38122a9b4a090ae9d176f643e to make it an fix instead of feature.


Optimize MultipartEntityBuilder#generateBoundary

I've changed generateBoundary to use ThreadLocalRandom instead of creating a new Random every time, and I've replaced the StringBuilder with the faster CharBuffer.

@michael-o ThreadLocals must be used with extreme caution and generally should have a very specific, short life span, like duration of an HTTP request / response exchange in a Servlet environment. I need to take a very close look at ThreadLocalRandom before I can make up my mind. The rest looks just fine.

@michael-o No, I don't have any numbers. I just thought it was an easy improvement to make.
@ok2c ThreadLocalRandom is not really a regular ThreadLocal that's used to store a temporary state. The purpose of ThreadLocalRandom is to avoid synchronization. Basically all the new Random() calls can be safely replaced with ThreadLocalRandom.current() without negative side effects. Here's the official documentation.

@slisaasquatch Fair enough. Merged.


Add/update grafana tokens

Manually triggering https://github.com/2i2c-org/infrastructure/actions/runs/2515304896 revealed that some clusters were missing grafana tokens to be used by that action.
This adds those tokens and also updates the token for one cluster (uwhackweeks I believe) that had a token, but didn't have enough permissions (the action might need the token to have admin permissions not just editor, as a 403 error was returned by the grafana-dashboards deployer)?

the action might need the token to have admin

That seems to be correct based on https://infrastructure.2i2c.org/en/latest/howto/operate/grafana.html#setting-up-grafana-dashboards


Does this support watch live preview?

As in view tables? Sure, that's internal to Clickhouse. Progress reporting is not yet implemented if that's what you mean, feel free to open an issue with details if you are interested in that.


Liquid tag for images

I want a simple way to add images to my blog posts without going through the hassle of resizing the image and writing height and width attributes in the HTML  tag, so I implemented a Liquid tag called image. If the image's dimensions are larger than a maximum width or height, it will create a new image and save that version in the output directory.
I guess the test makes it clear:
Scenario: Shrink image that is wider than threshold
  Given I have an "index.html" page that contains "{% image test.png max_width=20 %}"
  And I have an 100x50 image file "test.png"
  When I run jekyll
  Then I should see "<img src=\"/test_20x10.png\" width=\"20\" height=\"10\" />" in "_site/index.html"
  And the _site/test_20x10.png file should exist
  And the _site/test.png file should exist

This can be used for inline images or thumbnails. It's possible to specify a template for the  tag, so you can add style to it and make it a link to the full-size image etc. All of this depends on the RMagick gem.
The implementation is here: http://github.com/vilcans/jekyll/tree/image_tag
WARNING: This is not finished and I may rebase it later on. Note that it is not secure and it's probably possible to write evil input that will be able to read or write any file. Not good for gh-pages.
If there's a chance that this will be included in the main branch, I'll take the time to fix these shortcomings. Is anyone interested?

:+1: Wish someone would fix this up. Having to resize images manually is a chore...


Couldn't update to latest version (1.5.2)

Trying to update to latest version (1.5.2) we get a following error message:
Execution failed for task ':compileJava'.
> Could not resolve all files for configuration ':compileClasspath'.
   > Could not resolve com.contentstack.sdk:java:1.5.2.
     Required by:
         project :
      > Could not resolve com.contentstack.sdk:java:1.5.2.
         > inconsistent module metadata found. Descriptor: com.contentstack.sdk:java:1.5.2-SNAPSHOT Errors: bad version: expected='1.5.2' found='1.5.2-SNAPSHOT'
      > Could not resolve com.contentstack.sdk:java:1.5.2.
         > Could not get resource 'https://jcenter.bintray.com/com/contentstack/sdk/java/1.5.2/java-1.5.2.pom'.
            > Could not HEAD 'https://repo.jfrog.org/artifactory/libs-release-bintray/com/contentstack/sdk/java/1.5.2/java-1.5.2.pom?referrer'. Received status code 409 from server

We're using gradle and using following config:
repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    implementation 'com.contentstack.sdk:java:1.5.2'
}

It seems to be that there is a version mismatch in the repositories, 1.5.2 vs 1.5.2-SNAPSHOT?

Thanks @ondrejfuhrer for raising the issue. We’re looking into it and we’ll push a fix as early as possible.

Hi @ondrejfuhrer, we’ve resolved the issue. Please work with the latest version.
Thank you for helping us in improving our Java SDK

Thank you for quick resolution 👍


[T4A4][W15-B3]Chew Zi Ling

Ready for review

@ChewZL
Some comments added. Please ack & close the PR after reading comments.


Add geoms and select proj 2

This PR contains your 2 last commits 59263b4 and 3451adc which somehow ended up in my repo, but not in yours.
h3-worldmap % git lg 7                                                                                [add-geoms-and-select-proj-2|…1]
* 59263b4 (HEAD -> add-geoms-and-select-proj-2, origin/add-geoms-and-select-proj-2)(2022-04-14 18:32:04 +0200)(Olivier Lange)Adds the geometry-src|coll attributes
* 3451adc(2022-04-14 17:34:33 +0200)(Olivier Lange)Removes dev logging messages
* 04db1fb (upstream/add-geoms-and-select-proj-2)(2022-04-14 17:25:44 +0200)(Olivier Lange)Adds stroke-width styles
* a4cb017(2022-04-14 17:25:32 +0200)(Olivier Lange)Adds topojson-client to dependencies
* fd42978(2022-04-10 16:42:30 +0200)(Rudi Farkas)add file land-50m.json, add fetched property this._land

Those two commits 59263b4 and 3451adc  were on my dev station, and appeared as not pushed in my terminal:
% git hist
* 59263b4 - (HEAD -> add-geoms-and-select-proj-2) Adds the geometry-src|coll attributes (il y a 13 jours) <Olivier Lange>
* 3451adc - Removes dev logging messages (il y a 13 jours) <Olivier Lange>
* 04db1fb - (origin/add-geoms-and-select-proj-2) Adds stroke-width styles (il y a 13 jours) <Olivier Lange>
* a4cb017 - Adds topojson-client to dependencies (il y a 13 jours) <Olivier Lange>
* fd42978 - add file land-50m.json, add fetched property this._land (il y a 2 semaines) <Rudi Farkas>

I now just pushed them to the add-geoms-and-select-proj-2 branch of this repo (olange/h3-worldmap) and GitHub automatically marked this PR as merged and closed it.
I can't neither recall nor understand how they came to your forked repo.


Crd Readme and multi support

Codecov Report
Attention: 28 lines in your changes are missing coverage. Please review.

Comparison is base (05d8488) 48.23% compared to head (58c2cb6) 47.55%.
Report is 1 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #144      +/-   ##
==========================================
- Coverage   48.23%   47.55%   -0.68%
==========================================
  Files          20       20
  Lines        1754     1779      +25
==========================================
  Hits          846      846
- Misses        768      793      +25
  Partials      140      140

Files
Coverage Δ

pkg/kor/multi.go
0.00% <0.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


fingerprint of signing key in signed messages

Lastly I noticed, that FlowCrypt was adding the fingerprint of the issuer key to the signature. This could be added inside of PGPainless, but again, I doubt that this is the cause of the issue.

Originally posted by @vanitasvitae in https://github.com/pgpainless/pgpainless/issues/160#issuecomment-890405862
Is that actually possible to include a full fingerprint in signed messages? I was only aware of LongID shared this way. Is there a new format that allows sharing fingerprint?
What exactly does PGPainless do and what exactly does OpenPGP.js do?
Thank you!

Apparently there are the following methods of denoting which key made a particular signature:

Issuer Key-ID: the short key-id of a subkey (eg. Issuer: 0935E20FDC99D986). MUST NOT be used for V5+ keys.
Issuer Fingerprint: The long representation of a key identifier. This is versioned, so there are different representations possible:

V4 fingerprint: 20 octets of the keys fingerprint
V5 fingerprint: 32 octets of the keys fingerprint

PGPainless (or rather BC) by default only includes an issuer key-id packet, but it is possible to add a V4 issuer fingerprint packet as well. OpenPGP.js apparently does this by default. Maybe we should upstream a change to BC to include issuer fingerprint by default?

Excellent. Either we can ourselves add a full fingerprint by default, or we can upstream this to BC (or both, until BC merges).
Are we able to also retrieve full fingerprint from signed message?
I didn't know this, excited that it's possible to get fingerprint out of newer format messages. We still keep getting it by longid in all of our apps, even if there is in fact fingerprint available, due to my ignorance.

PGPainless will now include the issuer-fingerprint into message signatures by default.
If you want to retrieve a fingerprint from a signature, you can use SignatureSubpacketsUtil.getIssuerFingerprintAsOpenPgpV4Fingerprint(signature).

SignatureSubpacketsUtil.getIssuerFingerprintAsOpenPgpV4Fingerprint(signature)

Does this return a null, or throw, when it's not available?
What if it's a v5 finerprint?

If no v4 issuer fp is present it will return null.
Good call with v5 fingerprints! I just changed the code to return null instead of throwing.

At some point I should start thinking about support for v5 keys inside of pgpainless. Once this is implemented in BC having simultaneous support for different versions will become quite a task :D

If no v4 issuer fp is present it will return null.
Good call with v5 fingerprints! I just changed the code to return null instead of throwing.

It would be better to have a method that works the same regardless if it's V5 or V4 fingerprint. This level of detail should not be exposed to PGPainless user, I think.

The library consumer probably wants to use OpenPgpMetadata.getVerifiedSignatures() anyways.

The library consumer probably wants to use OpenPgpMetadata.getVerifiedSignatures() anyways.
Edit: The result is a Map<SubkeyIdentifier, PGPSignature>, where the key contains the fingerprint of the signing key, regardless of whether it was included in the signature or not.

What will happen here if the signature did not include full fingerprint, and instead included just a longid?

In this case we use the longid to get the right signing key, verify the signature and then retrieve the fingerprint from the key itself.

This obviously only works if the user provided the right key to verify the signature.

In theory, this should also work with signatures that did not include any hints to the signing key at all (eg. wildcard key-ids), but in practice PGPainless might not be able to figure this out properly. This is because we first verify the signing key integrity, before we verify the signature itself. However, for wildcard key-ids we need to do it the other way round (first try every available key to figure out which one was actually used to create the sig, then check if it was elligible).
At some point we should fix this as well, but for the time being I guess wildcard sigs are rare enough to be ignored for now.


Rendering with antialiasing?

I want to render images with antialiasing and according to the images on this page, that's what shape-rendering:optimizeSpeed is supposed to do:
https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/shape-rendering
But when I set ShapeRendering to SvgShapeRendering.GeometricPrecision, nothing happens:
http://i.imgur.com/3zdpLvF.png
Am I doing it wrong?
Edit: Nevermind, I figured it out. Code for Google:
svgDoc.ShapeRendering = SvgShapeRendering.GeometricPrecision;
using (ISvgRenderer r = SvgRenderer.FromImage(image))
{
    float scale = image.Height / svgDoc.Height;
    r.ScaleTransform(scale, scale);
    r.SmoothingMode = SmoothingMode.AntiAlias;
    svgDoc.Draw(r);
}

Closing - solution is there.


vectorized fix array constructor function change origin column from block

when get a column from block, and calculate result column
don't need to change the origin column, maybe it's still need used.
Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

ADD test for the case

please add test case

run buildall

run p0

run p0


Globally disabled validation is still validating some forms

We are lazy loading Angular UI grid (not ng-grid, the beta of UI grid) using OC Lazy Load (not sure if that bit is relevant or not).
When we turn on filtering in the grid it adds text boxes to the top of the grid header.  Those text boxes are used to filter the columns / rows and do not have form-group class.
We decided we wanted to turn off validation globally and then just apply it via the form  tag to those forms we want validated.  This is not working and I've confirmed it's still trying to validate these input boxes.
We've upgraded to 1.18.5 and that fixed the form validation being shut off for other sub forms, but not for this one.

I've removed all of the lazy loading stuff and it still does it, so definitely not OcLazy load.

A further problem.  Not only is it validating form elements that it should not be . . . but one of the forms that it isn't validating also won't validate when we set the form to validate by adding
auto-validate-enabled="true"
to the form tag.
Either we are doing something hideously wrong, or it's totally broken.

Hi,
Unfortunately I'm on holiday until mid next week so can't really look at this but if you could do me a reproducing plunker I will look at it and fix the library as soon as I get back.
One thing to note (as the documentation needs updating) is that the attribute auto-validate-enabled does not exist.  To enable / disable a form you would use the attribute disable-dynamic-validation="false" on the form element.  There is a single directive that is applied to a form which collects all the options for the library so you might want to have a look here.
https://github.com/jonsamwell/angular-auto-validate/blob/master/src/directives/autoValidateFormOptions.js#L11
Try that new attribute and let me know hot you get on.
Thanks,
Jon

OK.  Here is the Plunker
http://plnkr.co/edit/bF0TDi2MvLNea4QpuPco
To recap, here's what we are seeing:

Setting validator.enable(false); turns off validation for forms but does not keep the validator from throwing errors for inputs that do not have parent form-group class
There appears to be no way truly globally disabling validation and then turning it back on for only certain forms.

What we'd like to see:
We'd like to be able to disable global validation, in this mode the validator would do NOTHING unless it found a form tag with a property that turns it on for that form.  If there are sub forms under that form then it would not validate those unless they had that property as well.  And above it, it should not be throwing errors on input's that do not have a form-group class unless they are in a form that is being validated.  Note: that those errors make typing in those boxes very difficult as keystrokes get thrown away and you have to press keys repeatedly (firefox, maybe others)

I've fixed a few issues and the plunkr appears to be working fine now with the new release file (v1.18.6).
Let me know if you are still having any issues.

Jon, thank you so much for getting to this.  You've fixed the main issue of it trying to validate inputs that are not inside of forms but there is still a bug with turning off validation all together then just enableing it for individual forms.
I've updated the plunker
http://plnkr.co/edit/bF0TDi2MvLNea4QpuPco?p=preview
Notice that we are turning validation off in the config and that the Username and password form now does not have any special validation flags set to turn it on and yet it is still being validated.
Let me know if I'm missing something.

Great I'll take a look.

Try change autoValidateFormOptions.js file:
replace line 15 :
if (validator.isEnabled() === false && parseBooleanAttributeValue(attrs.disableDynamicValidation) === false) {
with
if (validator.isEnabled() === false && attrs.disableDynamicValidation === 'false') {

@slupekdev That would do the same thing.  Or am I missing something?

@slupekdev - I seem what you meant with the above code.  Thanks for looking at the issue.
This issue is now fixed in latest release https://github.com/jonsamwell/angular-auto-validate/releases/latest


OFAC: Invalid address

'0xa7e5d5a720f06526557c513402f2e6b5fa20b00' is too short to be a valid address.

I do agree that's an invalid address, but I triple checked and that's what they give as an address. See https://www.treasury.gov/ofac/downloads/sdnlist.txt

Correct address: https://etherscan.io/address/0xa7e5d5a720f06526557c513402f2e6b5fa20b008 (see https://www.elliptic.co/blog/four-compliance-takeaways-from-blockchain-insights-one-million-russian-troll-farms-influence-us-election)


Add shoulda-matchers and model tests

Tests for validations and associations on users, games, platforms, and releases.
This article helped a lot :D https://semaphoreci.com/community/tutorials/how-to-test-rails-models-with-rspec

RubyGems.org is having some caching issues so I ran the tests locally and everything seems fine, merging.


how make the image  rotate back that they are right ways

how make the image  rotate back that they are right ways

face_recognition.load_image_file that image always  sideways or upside-down images

With only so few information it will be hard to help you.
I would take a guess and think that the images are saved in the orientation that you receive them and they contain a EXIF Property which tells them to be rotated when viewed.
Either access the property and rotate them accordingly or ensure they are saved in the desired orientation and remove the EXIF property.
This numpy function should be of help:
https://docs.scipy.org/doc/numpy/reference/generated/numpy.rot90.html

rotating images can be done using this code
inside api.py function load_image_file should rotate image if EXIF tag is not 1, before doing face detection, otherwise faces in incorrect orientation cannot be detected

    from PIL import Image, ExifTags

    img_path = "somefile_path"

    pil_image = Image.open(img_path).convert("RGB")
    img_exif = pil_image.getexif()
    ret = {}
    orientation  = 0
    if img_exif:
        for tag, value in img_exif.items():
            decoded = ExifTags.TAGS.get(tag, tag)
            ret[decoded] = value
        orientation  = ret["Orientation"]

    # fix orientation
    # if 8, 90 degree
    # if 3, 180 degree
    # if 6, 270 degree
    if orientation == 8:
        pil_image = pil_image.rotate(90, Image.NEAREST, expand=1)
    elif orientation == 3:
        pil_image = pil_image.rotate(180, Image.NEAREST, expand=1)
    elif orientation == 6:
        pil_image = pil_image.rotate(270, Image.NEAREST, expand=1)

Hi
below post from @ageitgey  about the handling EXIF rotation in your code.
https://medium.com/@ageitgey/the-dumb-reason-your-fancy-computer-vision-app-isnt-working-exif-orientation-73166c7d39da
hope this helps.

You can use the jitter parameter in order to increase the type/method of distortion. It will recognize photos with different rotation.

@alessiosavi I tried increasing jitter but it doesn't work.

Which was the value? Higher or lesser than 300?

So in order to work, I should increase it to 300 at least?

This number drive the times that the image are augmented. If you increase the jitter you have more chance to perform a rotation and recognize the face.