Ability to mimic a read-only state

Currently setting the disabled property to true does not hide the prompt label, which makes sense from a semantic perspective.
Looks like that as it is today, to fully mimic a read-only state I both have to set disabled property to true as well as set the promptLabel to a non-empty whitespace string.
Maybe having either a readOnly property (controlled approach) or hidePromptWhenDisabled property ("set and forget" approach) would be a good middle ground between keeping a more granular  and semantic API but also not forcing the user to keep tabs on the label prompt value so much.
Curious on your thoughts on the matter.

I presume this is partially related to your feature request in #638. You've absolutely got a good idea here, and I'll definitely implement something like this in conjunction with your other idea.

Implemented in 914231a. Will be pushed out with the next version.


Croppie - Images are blurred on mobile phones when cropping.

We reproduced this issue with several different phones:
When i uploaded and cropped via mobile phone resultant images gets blurred.
But when i commented the viewport section in below code i got clear image but it take extra spacing on top
$uploadCrop = $('#upload-demo').croppie({
		viewport: {
			width: 700,
			height: 700,
			//type: 'circle'
		},
		enableExif: true,
		enforceBoundary: false
	});

	$('#upload').on('change', function () { readFile(this); });
	$('.upload-result').on('click', function (ev) {
		ev.preventDefault();
		$uploadCrop.croppie('result', {
			type: 'canvas',
			size: 'viewport'

		}).then(function (resp) {
			popupResult({
				src: resp
			});
		});
	});

Please note that i commented the  line size : 'viewport' in above code.

Please see the sites below and select cover image in mobile phone.
entesarkar.com ==>  image with black strip
entesarkar.com/test1/  ==>  image gets blurred

@io-ma
@thedustinsmith
Please look into this

Sorry for the delay, but I'm not seeing the black strip.  I'm also unable to hit the /test1/ route so I can't test the blurring.

Same issue ! Image got blurred while uploading from the mobile phone .. https://www.modeloca.com/models/lynn
check the profile image .. it's blurred cuz it is uploaded from the phone but if i upload this from the pc it looks okay. Please help!


Ran dep ensure successfully

Fixes #3401

odd circleci thing:
Skipping cache generation, cache already exists for key: dep-cache-bVxdcUqTJfIwdHQvGS5vzDKpNP+sc48AyMIsjaGBFaI=
how come, this is brand new .lock ?
(well thankfully #3348 will fix that)

@ldemailly: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
d72ddbad7fee78a3a6d0ee2b85351382db42a99b
link
/test istio-unit-tests

prow/istio-presubmit.sh
d72ddbad7fee78a3a6d0ee2b85351382db42a99b
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

real fix is #3463


terraform-providers: update scripts

Motivation for this change
Easier to use ofborg to test that they build and then we don't need to bother handling build failures in the script.
Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

cc @zimbatm

When updating providers, I'd rather be notified before submitting the PR.

I've made the build step optional and enabled by default.

@zimbatm Are you okay with the updated changes?

I'll merge this in ~24hrs so it is used during the next automated update.

Looks sane.


When it cannot find a matching binary it should not print out the full usage info

Fixed in v0.18.


use nswindow.center() to center window

Sets the window’s location to the center of the screen. The window is placed exactly in the center horizontally and somewhat above center vertically.

Have you tested and confirmed that it correctly centers the window on the first launch? I remember we used to have window.center(), but it did not work. That was a few years ago though.


feat: List Stack Dependencies

[WIP]

Sample print currently:
DemoAAA
Stack Dependencies: []

DemoBBB
Stack Dependencies: [
    {
        "stackName": "DemoAAA",
        "dependencies": []
    }
]

DemoCCC
Stack Dependencies: [
    {
        "stackName": "DemoBBB",
        "dependencies": [
            {
                "stackName": "DemoAAA",
                "dependencies": []
            }
        ]
    },
    {
        "stackName": "DemoAAA",
        "dependencies": []
    }
]

This could be further improved for long and short display format to limit the information shown.


TACKLE-694: Fix items per page bug

https://issues.redhat.com/browse/TACKLE-694

Oh dang good catch. I should include that fix in https://github.com/konveyor/lib-ui/pull/73 if I ever get back around to it


Use of undeclared Identifier

Describe the bug
After trying to run the flutter iOS runner in Xcode, it fails with the errors:
"Header 'rate_my_app-Swift.h' not found",
"Use of undeclared identifier 'RateMyAppPlugin"
To Reproduce
Steps to reproduce the behavior:
build iOS module (flutter build iOS)
open iOS module in xcode
execute runner in xcode
Expected behavior
running application on simulator
Flutter version used: 1.22.0-1.0.pre
RateMyApp version: ^0.7.2

deleting all caches, running flutter clean and rebuild iOS build seemed to have solved this issue. Closing this ticket.


fix GHA GPG fingerprint

RELEASE_NOTES=n/a

Because we use it later:
GPG_FINGERPRINT: ${{ steps.import_gpg.outputs.fingerprint }}

Got it, thanks!


code question

Hi, I'm back again 😂. I seem to find a bug in this repo, but I'm not really sure.
It is in the predict function of scenerf/models/scenerf.py,
        feats_2d_sphere = [sample_feats_2d(x_rgb["1_1"].unsqueeze(0), pix_sphere_coords, (self.out_img_W, self.out_img_H))]
        for scale in [2, 4, 8, 16]:
            key = "1_{}".format(scale)
            feats_2d_sphere.append(sample_feats_2d(x_rgb[key].unsqueeze(0), pix_sphere_coords, (self.out_img_W//scale, self.out_img_H//scale)))

The input pix_sphere_coords of sample_feats_2d is used for different downsample resolution, but (img_w, img_H) has beed changed.
In sample_feats_2d,  pix_sphere_coords is divided by (img_W, img_H), which will cause the bound of projected_pix becomes much smaller than (-1,1) according to the downsample ratio. This will lead to a lot of zeros in feats_2d.
    projected_pix = (projected_pix / torch.tensor(img_size).type_as(projected_pix).reshape(1, 2)) * 2 - 1
    projected_pix = projected_pix.reshape(1, 1, -1, 2)

Did I make a mistake? Many thanks!

Hey @zhangfang97, thank you so much for bringing this to my attention! I double-checked with my offline code, and you were right - the correct code should be:
feats_2d_sphere.append(sample_feats_2d(x_rgb[key].unsqueeze(0), pix_sphere_coords, (self.out_img_W, self.out_img_H)))

It's not necessary to divide by the scale."

I got it. I'm glad this can work and thank you again!

 Glad I could help.


Fix conflicts of #14 sync with reactjs.org @ 5fdb6a2e

Temporarily closing the PR in favor of ongoing discussions on #14.


Brand work for website

To-Dos

[x] Create Figma components for existing website designs.
[x] Update styling (font size, colors, spacing) for all webpages
[ ] Produce mobile mockups of pre-existing pages.

Hi @AnthonyRollins! Do we have brand guidelines at the moment? I was poking around in drive and came across this, but not sure if these docs are current. Want to make sure I'm using our styles as intended/document essentials in figma

@segacy1 Yes, that is the right folder. I've been using this style guide, as its the most up-to-date.

@AnthonyRollins @thekaveman @angela-tran hey folks! I’m making some progress on the UI library and I wanted to get some feedback on a couple of things before I kept going. The section I'd like feedback on is labeled "Dark Mode Update" here.
There are a few additions that we don't currently use on the live site, but I could foresee them being good to have as we build out the site further. Keep in mind, everything’s still a WIP!
Color Naming Conventions
What I did:
I segmented our color system into a few sections: Actions, Background, Text, and Brand. For dev, I assumed that it was easier for colors to be named by function. For design, I think having colors labeled by name is easier as we might create things that aren’t necessarily tied to function. That is what the brand section is for.
Question:
Does this work for you all? Anything that could be improved for you here?
Light Mode vs. Dark Mode
Questions:

The current styling is all on a black background. Would we want to use only black backgrounds moving forward? Do we want an option for light mode/backgrounds?
 I updated the two secondary colors (purple and indigo) to work better on a black background. Please let me know if that doesn't feel right - I can keep finessing the hues if so.

Buttons + Component Anatomy
What I did:

To keep our buttons scalable for screen sizes and new designs, I created 3 sizes: large, normal, and small.
I added additional states for our two button types (primary/secondary).

Questions:

What do you think about the button info (anatomy/specs) provided and how it’s laid out? Is there any information that you think is missing or unnecessary? Is there another format that would be more intuitive? If this works, I'll use this format for future components
What do you think about having font style specifically for buttons (ex: font is called button-small)?

As a freelancer, whenever I've been dropped into someone else's design system I always appreciate the additional context in figma. Trying to include all the things I wish I had when I've been in those situations!
Thank you!

Color Naming Conventions

I think this looks great, and it will be a lot easier for us to have names for colors, so we don't anyone confused.

Light Mode vs. Dark Mode

Styling in Light Mode I always like the dark background of our branding because it makes all of our bright colors (purple, teal, and green) pop, but I do think there might be a time we would need a white background, so I think we should include styling for a light background.
The color palette I agree that those colors look better on dark backgrounds. I didn't know that our branding was built for a white background.

Buttons + Component Anatomy

I think this all makes sense to me, but I am curious about your thoughts on how the buttons are styled on Hover and pressed. Should we continue to use the styling work we have done there, or do you recommend a different design for when users press or click on the buttons.

@AnthonyRollins since we made this before the workshop and all existing pages will change, should we close this ticket and note that mobile mocks will be included for all pages moving forward?
Styling will also be finalized when Home and About pages are approved, so we can roll that into Q2 as well.
cc: @o-ram

Based on @segacy1's comment above, I am closing this ticket. Mobile mocks will be included for all pages moving forward.
@segacy1 let me know if you'd like any new issues to be opened related to stylings!


I have an idea : Add the all-contributors bot.

Description
I'm suggesting this bot to enhance the count of contributors and what they have done to contribute to this repo.
To add the @all-contributors bot, you should go to this link : https://github.com/apps/allcontributors, and press 'configure'. After, press the organization's name to configure the bot, and I would recommend pressing it for all of the repositories.
Please send any feedback if needed. Thanks (:

Thanks @AvidCoder101.
That's nice and great 🙏
I appreciate.
It has been configured now.
Thanks


Support nested drop targets

TODO:

[x] Barebone enter, leave, single-target drop implementation
[ ] Don't throw when drag/drop is requested but not allowed (See this comment for rationale):

[ ] If canDrag is false, instead of throwing in beginDrag, silently return. Test that.
[ ] If canDrop is false, instead of throwing in drop, silently return. Test that. (See skipped tests.)

[ ] If no drop targets entered, change drop to do nothing instead of throwing. Test that.
[ ] Add test verifying enter throws with an already entered drop target
[ ] Add test verifying leave throws with a non-entered drop target
[ ] Add test verifying enter A, B, C, D and leave B keeps A active, but B, C and D inactive
[ ] Add test verifying that removing an entered drop target midflight has the same effect as calling leave on it
[ ] Add test verifying both drop and endDrag completely clear active drop targets
[ ] Add and test context.isOver(dropTarget, shallow=false) that tells whether we have entered the drop target. With shallow=true, returns true only if that drop target is innermost entered one.
[ ] Change drop implementation that, instead of simply choosing innermost target, will run drop on each nested active target, from the innermost to the outermost. It will skip drop targets for which context.canDrop returns false. Each target will be able to access previous' result in context.getDropResult() and learn if there was a previous one by reading context.didDrop(). Each will be able to either return undefined (means don't touch drop result) or a different object (means replace drop result with the one returned from drop). Test that.

I gave this some more thought and want to change a few things.
I think it's wrong that we currently throw in beginDrag if canDrag returns false, and in drop if canDrop return false. Sure, backend could check that, but what is canDrag is not reliable (e.g. returns true or false randomly on each invocation). Sure, it's a corner case, but it illustrates the point: we should not throw if backend has no way to know in advance whether operation is successful.
Okay, say we change two things:

Instead of throwing, silently return if canDrag is false when invoked from beginDrag action
Instead of throwing, silently return if canDrop is false when invoked from drop action

But there is more to it.
How does canDrop work with enter? I previously suggested that we throw if canDrop is false when entering, but it's a terrible idea! What if we enter a drop zone, and then something changes (like its props) and canDrop starts to return false? It's no longer a valid drop zone at all!
Similarly, what if by the time we drop half the nested drop zones choose to return false from canDrop? Surely backend won't check each of them? The internal drop zone list is not even exposed to the backend.
The logical conclusion from this if following: backend should call enter and leave safely, without worrying what drop zone returns from canDrop. It shouldn't even care about the drop zone's type! If we enter drop zone A, B and then C and D, all nested, but only B and D have compatible types, and only B returns true from canDrop, it shouldn't matter to the backend! It just tells via this.actions.enter that A, B, C and later D are entered. When client code wants to highlight “actionable” drop zones, it asks context.canDrag(handle) and thus will know only B is actionable. Then backend calls this.actions.drop() without worrying where exactly drop occurs. It will be up to DragDropActions code to check context.canDrop for each active drop zone and call its drop handler.
I will amend the TODO list to reflect that now.

TODO:

[x] Barebone enter, leave, single-target drop implementation

[ ] Don't throw when drag/drop is requested but not allowed (See this comment for rationale):

[ ] test

[ ] Check canDrop in enter, not just in drop

[ ] Change currently skipped tests to test for enter throwing instead

[ ] Can we still check if drop throws too with canDrop suddenly starting to return false?

[ ] Add test verifying drop throws when no drop targets entered

[ ] Add test verifying enter throws with an already entered drop target

[ ] Add test verifying leave throws with a non-entered drop target

[ ] Add test verifying leave actually removes passed dropzone from active list as well as any drop zones coming after it (Can probably do that by verifying drop throws after using both enter and leave correctly)

[ ] Add test verifying both drop and endDrag completely clear active drop targets

[ ] Add and test context.isOver(dropTarget, inclusive=true) that tells whether we have entered the drop target. With inclusive=false, returns true only if that drop target is innermost entered one.

[ ] Change drop implementation that, instead of simply choosing innermost target, will run drop on each nested active target, from the innermost to the outermost. Each will be able to access previous' result in context.getDropResult() and learn if there was a previous one by reading context.didDrop(). Each will be able to either return undefined (means don't touch drop result) or a different object (means replace drop result with the one returned from drop).

[ ] Write tests for new drop implementation.

Whoops, sorry for GH spam, hit a button by mistake.


Update d3-scale and d3-scale-chromatic dependency with high severity vulnerability

npm audit shows that this transitively depends on d3-color v2 which has a high CVE. Updating d3-scale to v3.1+ and d3-scale-chromatic to v3 would solve this.
<EMAIL_ADDRESS>><EMAIL_ADDRESS>><EMAIL_ADDRESS>><EMAIL_ADDRESS>
<EMAIL_ADDRESS>><EMAIL_ADDRESS>><EMAIL_ADDRESS>

Ah, sorry, de-interpolate needs to update first

d3-scale latest version 4.0.2 which has d3-interpolate@3
d3-interpolate latest version 3.0.1 which has d3-color@3
d3-scale-chromatic latest version 3.0.0 which has d3-color@3
So this vulnerability should be resolved if we update the packages.


Fix arrayVariance function

There is currently a method called <arrayVariance> that lives in /lib/<arrayVariance>.js.
It is incomplete and needs to be fixed!

This method takes in a number array e.g. [1, 2, 3, 4] and returns the variance of the array
Acceptance Criteria:

Running yarn test <arrayVariance> results in tests passing.
You have written a skeleton method for someone else to work on.
You have written tests surrounding your skeleton method.
Running yarn lint does not print any errors to the console!
Optional: write one or two more tests surrounding the method you are solving to account for potential edge cases.

Please include the skeleton of a new method + an accompanying test for someone else to work on at the time of creating a pull request! A pull request will most likely be denied if it does not contain a skeleton method for someone else to work on! For more information, please read the Contributing Guide.
Thank you so much for your contribution!
If you are unable to view it in your local repo then it is yet to be merged please wait

@BlakeGuilloud I'll take this. But I think the skeleton isn't merged yet.

hey @gballesteros10 ! just merged it in. Go for it!


Does not work if script loads before markup

Describe the bug
If the script is loaded before the DOM is loaded, for each new storage-form tag the forms method will return nothing (since those DOM elements aren't in the tree yet), and the event handler will not be added. It works fine if you load the script after the DOM is loaded, but that's not clear in the documentation, and later additions to the page won't work as expected.
To Reproduce
Steps to reproduce the behaviour:

Add the script link in the <head/> (I know this isn't best practice)
Add the theme-switcher example into the <body/>
Load the page
See that the form does not persist

Expected behaviour
The form should persist
Desktop (please complete the following information):

OS: MacOS Sonoma
Browser Safari
Version 17.2.1

Additional context
I'm using the unpkg link in dev on a static webpage, loaded via file:/// URLs

Could you provide a demo @TALlama? Just a little confused which script is being loaded in the <head>. The demo in the project has the storage-form script loaded in the head and that does appear to work: https://daviddarnes.github.io/storage-form/demo.html

Closing this for now, will reopen once further explanation/example is provided


my way to insert a image tools

bad code not to show...
wait my upload a demo

oh,no  china GFW is ...
i'm not upload the project..

why the new version 0.4.6 has not have Scaling？
。。。。

Because no one has ever implemented image scaling.

you not want to do the first one?

I'm not going to immediately implement every feature request anyone asks for.

will ,ok i wait for you good nows.

Since this is not a bug report or feature request, I am closing it.


Always uses default voice

Hi, I have just started trying to use this by proxy of integrating with Home Assistant which relies on this library. I have been unable to get it to change from the default voice for a language, I think down to the way the voice name tag is being set on line 44:
voice.set('name', 'Microsoft Server Speech Text to Speech Voice ('+name_lang(language)+', +voiceType+')')

According to the docs, the name should be the direct name from the list of languages. VoiceType itself as the param is a bit confusing since in the response when getting the list of voices, VoiceType is simple Neural or Standard.
But without changing the parameter names, a bit of a breaking change, and assuming you get just the name bit in voiceType, I think the line above should simply be
voice.set('name', name_lang(language)+'-'+voiceType)

Sorry, turns out I must have had something else wrong with the request as getting it to work OK now at picking different voices!


WTForms 3.2.1 introduces incompatibility with flask-wtf

Actual Behavior
WTForms 3.2.1 introduced incompatibility with flask-wtf
We see yet another failure with new WTForms - seems that field_flags is now a tuple but it was dictionry and uit causes an internal error when wtforms are used by flask appbuilder. Not sure how to easily reproduce it as it is deepl stack trace with werkzeug -> flask -> flask_wtf -> wtf. I am sorry it might not be minimal, but I see no easy way how to repro other than providing a stack trace from our tests in Apache Airflow
Example failure: https://github.com/apache/airflow/actions/runs/11441304988/job/31829670288#step:7:14662
tests/www/views/test_views_variable.py:219:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/local/lib/python3.9/site-packages/werkzeug/test.py:1146: in post
    return self.open(*args, **kw)
/usr/local/lib/python3.9/site-packages/flask/testing.py:238: in open
    response = super().open(
/usr/local/lib/python3.9/site-packages/werkzeug/test.py:1095: in open
    response = self.run_wsgi_app(request.environ, buffered=buffered)
/usr/local/lib/python3.9/site-packages/werkzeug/test.py:962: in run_wsgi_app
    rv = run_wsgi_app(self.application, environ, buffered=buffered)
/usr/local/lib/python3.9/site-packages/werkzeug/test.py:1243: in run_wsgi_app
    app_rv = app(environ, start_response)
/usr/local/lib/python3.9/site-packages/flask/app.py:2552: in __call__
    return self.wsgi_app(environ, start_response)
/usr/local/lib/python3.9/site-packages/flask/app.py:2532: in wsgi_app
    response = self.handle_exception(e)
/usr/local/lib/python3.9/site-packages/flask/app.py:2529: in wsgi_app
    response = self.full_dispatch_request()
/usr/local/lib/python3.9/site-packages/flask/app.py:1825: in full_dispatch_request
    rv = self.handle_user_exception(e)
/usr/local/lib/python3.9/site-packages/flask/app.py:1823: in full_dispatch_request
    rv = self.dispatch_request()
/usr/local/lib/python3.9/site-packages/flask/app.py:1799: in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
/usr/local/lib/python3.9/site-packages/flask_appbuilder/security/decorators.py:137: in wraps
    return f(self, *args, **kwargs)
/usr/local/lib/python3.9/site-packages/flask_appbuilder/views.py:586: in add
    widget = self._add()
/usr/local/lib/python3.9/site-packages/flask_appbuilder/baseviews.py:1216: in _add
    form = self.add_form.refresh()
/usr/local/lib/python3.9/site-packages/flask_appbuilder/forms.py:327: in refresh
    form = self(obj=obj)
/usr/local/lib/python3.9/site-packages/wtforms/form.py:209: in __call__
    return type.__call__(cls, *args, **kwargs)
/usr/local/lib/python3.9/site-packages/flask_wtf/form.py:73: in __init__
    super().__init__(formdata=formdata, **kwargs)
/usr/local/lib/python3.9/site-packages/wtforms/form.py:281: in __init__
    super().__init__(self._unbound_fields, meta=meta_obj, prefix=prefix)
/usr/local/lib/python3.9/site-packages/wtforms/form.py:49: in __init__
        self.check_validators(validators)
        self.validators = validators or self.validators

        self.id = id or self.name
        self.label = Label(
            self.id,
            label
            if label is not None
            else self.gettext(name.replace("_", " ").title()),
        )

        if widget is not None:
            self.widget = widget

        for v in itertools.chain(self.validators, [self.widget]):
            flags = getattr(v, "field_flags", {})

>           for k, v in flags.items():
E           AttributeError: 'tuple' object has no attribute 'items'

`/usr/local/lib/python3.9/site-packages/wtforms/fields/core.py:133: AttributeError

Expected Behavior
The tests should pass - like they did with 3.1.*
Environment

Python version: 3.9 - 3.12
wtforms version: 3.2.1

Thank you for your report. After looking closer, it seems the issue is due to flask-appbuilder Unique validator using tuple flags.
https://github.com/dpgaspar/Flask-AppBuilder/blob/1d27eb42a4f9b6e19fb3c025327b4110b175eccb/flask_appbuilder/validators.py#L29
They are deprecated and raised warning since 2020, so we remove the deprecation. I suggest you report the issue to flask-appbuilder.

Tuple flags were deprecated in favor of dict flags, and raised warning since 2020, so with 3.2 we removed the deprecated code (#859). I suggest you report the issue to flask-appbuilder.

OK. Thanks for fast response. I will. Daniel is working on FAB 5.0 so I will flag it to him.  In the meantime we limit WTForms to < 3.2

I reported it to Daniel https://github.com/dpgaspar/Flask-AppBuilder/issues/2276 - we work closely with Daniel and I wll make sure to make him aware of it.

Fixed in FAB 4.5.2


Rustic's painted planks have the same recipe as Quark's stained planks

I'm thinking about having Rustic's planks take two pieces of dye instead of one since the colors on them are more intense

resolved in commit https://github.com/belathus/Wanderlust-Renewed/commit/af6a772a03736f3108a4ed1eabb1f309289b0257


[Feature] Add option for highlight copy vs right-click copy

Hey, loving the extension so far. Works great.
I was hoping to understand more about the copying behavior. It seems that right clicking the terminal while something is highlighted is how it's copying the content to your clipboard. As the default behavior in putty is simply highlighting it to copy it to clipboard, I was wondering if it'd be possible to emulate this behavior in your extension.
I know that Windows terminals (cmd, powershell) use the right-click terminal to copy feature, but would it be possible to get an option in the settings.json for changing this copy behavior? Additionally, if it's simply using cmd for the backend, could we change the location of the desired shell application?

Oh, actually, your extension is probably just using whatever shell is configured in the terminal default settings in vscode, isn't it? Didn't think of that.

Yeah, disregard this. It seems that the terminal settings in vscode are what I'm looking for. I'll handle it there.


ScrollPhysics

Hi!
I would like to use a different ScrollPhysics in the SectionView than the default. There is a parameter for it physics, but it appears to be unused. I have tried to set it to physics: ClampingScrollPhysics() which does not bounce on any platform, but it still bounces.
I was wondering whether the physics could simply be passed on to the FlutterListView in the _renderList function?
As a sidenote, physics is used in _getPhysicsIsBounce but the output of that function is not applied anywhere.
Thanks!

@rvanderlinden Thanks for your response. The issue fixed in section_view: ^2.0.5, please update it.

@robert-luoqing Thanks, its working now! :)


data_herp_bycatch issues

Fields in table but missing from the metadata:

neon_trap_id
observation_datetime
taxon_id
taxon_name
taxon_rank
variable_name
value
unit
neon_event_id
release
latitude
longitude
elevation

Fields in metadata but missing from the table:

trapID
setDate
collectDate
taxonID
eventID
taxonRank

This should already been solved, see https://daijiang.github.io/neonDivData/reference/data_herp_bycatch.html


[PIP 79][common,broker,client] Change PartitionedTopicStats to support partial partitioned producer

Master Issue: https://github.com/apache/pulsar/wiki/PIP-79%3A-Reduce-redundant-producers-from-partitioned-producer
Motivation
Please see the PIP document.
This is a part of implementations. Before review it, please check https://github.com/apache/pulsar/pull/10279. After https://github.com/apache/pulsar/pull/10279 is merged, I will rebase to top of master branch.
Modifications

Change PartitionedTopicStats to support partial partitioned producer like this(#10279)

For backward compatibility reason, I introduce new producer property producerStatsKey. If this property is same, then associate publisher stats as same producer at partitioned producer stats.
I think about using producerName instead of introducing producerStatsKey, but I think we should not use it. Because currently producerName is configured by the system(different for each partition) or yourself(same between all partitions). Therefore, if we use producerName as association key, we should change system behavior (I think this is breaking changes) or request to user that "you should set producerName yourself if you want to associate publisher stats per partitioned producer".
If any suggestions, please comment to this PR.
Verifying this change

[ ] Make sure that the change passes the CI checks.

This change added tests and can be verified as follows:

Added test for partitioned producer stats

Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (no)
The public API: (no)
The schema: (yes)

https://github.com/apache/pulsar/blob/c0a48454bf4199943c1ca7cf821e6351843a55ee/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/PublisherStats.java#L49

The default values of configurations: (no)
The wire protocol: (yes)

https://github.com/apache/pulsar/blob/c0a48454bf4199943c1ca7cf821e6351843a55ee/pulsar-common/src/main/proto/PulsarApi.proto#L259
https://github.com/apache/pulsar/blob/c0a48454bf4199943c1ca7cf821e6351843a55ee/pulsar-common/src/main/proto/PulsarApi.proto#L486
https://github.com/apache/pulsar/blob/c0a48454bf4199943c1ca7cf821e6351843a55ee/pulsar-common/src/main/proto/PulsarApi.proto#L636

The rest endpoints: (no)
The admin cli options: (no)
Anything that affects deployment: (no)

Documentation

Does this pull request introduce a new feature? (no)

@equanz Could you elaborate on what the problem is? If each partitioned producer creates producers on a subset of partitions, how do the stats become incorrect?

@Vanlightly Of course. I think the main issue is stats collecting logic( https://github.com/apache/pulsar/blob/3dd9ec528b07ca495a42c020b3bf0824dc67426f/pulsar-common/src/main/java/org/apache/pulsar/common/policies/data/stats/TopicStatsImpl.java#L184-L193 ).
It causes these issues.

If each partition has different number of producers, then calculate publisher stats separetelly

e.g. if full partitioned producer and partial partitioned producer(or simply single producer) are connected to the partitioned topic which has 2 partitions, then broker calclulates 3 publisher stats each other
expect: each partitioned producer is accumulated as single publisher stats

If each partition has same number of producer, then calculate publisher stats as single partitioned producer

e.g. if each partition has single producer(all producers were created separetelly), then broker calculates publisher stats as single publisher
expect: all producers are accumulated separetelly

@equanz Let me know if I understand correctly. We publish aggregated stats, where we aggregate by partitioned producer, and optionally we also publish stats per partition with no aggregation. So the issue is that currently the stats collection code expects each partition to have the same number of producers on each partition, and uses that as a way of aggregating the stats for each partitioned producer.
So we need another way of aggregating by partitioned producer. Moreover, it looks to me like the current strategy is already broken seeing as the numbers won't always match (neither numbers nor order) such as when producers come and go.
Using producer name as an aggregation key is not good because if the producer name is not set by the user, then each internal producer will have a different producer name (generated by the broker).
So the fix is to add another producer identity (producerStatsKey) that is shared across all producers of the same partitioned producer. Then aggregate on that.
The producerStatsKey is set by the broker, to ensure it is globally unique. The partitioned producer creates a single producer when the partitioned producer is started. Then when additional internal producers for other partitions are required, they are created with the same  producerStatsKey as the first producer. That way they all share the same key.
Is that summary correct?
Additional question:

Could we not use the producerName for aggregation and use the same strategy of starting a single producer, then making all others inherit their name from the first (when the user doesn't set the name)?

@Vanlightly

Moreover, it looks to me like the current strategy is already broken seeing as the numbers won't always match (neither numbers nor order) such as when producers come and go.

I think so too. Therefore, not only partial producer stats, but also total producer stats will be calculated correctly by this feature.

Is that summary correct?

Yes.

Could we not use the producerName for aggregation and use the same strategy of starting a single producer, then making all others inherit their name from the first (when the user doesn't set the name)?

We can choose the strategy described above, but I think it will break some existing behavior(currently, internal producer's name aren't same. / if we use the same producerName in the partitioned topic, then they will be aggregated.).
If this change is approved in the community, I'll change the strategy.

I'll try to implement this feature based on above comment (use the producerName for aggregation and use the same strategy of starting a single producer).

Close this PR because https://github.com/apache/pulsar/pull/12401 has been merged.


Delete Id comment lines from etc files

More crud cleaned out.

There are plenty of file in /etc that have old or no copyright stuff. I guess ESF will get around to standardizing all that some day.


Get data on climate forecasts

To start making actual forecasts using models that involved exogenous variables, we will need forecasts for those variables. This issue is a place for us to start looking into options for doing this.

There is so much information on climate/weather predictions available. There are many different groups, a lot of them doing things that overlap, a lot specializing on specific regions or processes, a lot summarizing/ensembling what other have done. etc.
It would be really beneficial if we could get a crash course in climate modelling. How they are made, what their predictions actually comprise and what they can and can't be used for.
That being said, here are two links within NOAA that we'll probably end up pulling data from some day.
NOAA Model Datasets - Lots of datasets from various weather/climate models. Some of them are especially interesting because that have historic forecasts which can be judged against what actually happened.
NCEP EMC -

National Centers For Environmental Prediction's Environmental Modeling Center. The Environmental Modeling Center is responsible for the enhancements, transitions-to-operations, and maintenance of more than 20 numerical prediction systems comprising NCEP's operational production suite.

This R package will probably be useful for this. It's a wrapper for accessing the API of a bunch of NOAA data.
https://github.com/ropensci/rnoaa

Short Term Forecasts
Global Ensemble Forecast Systems (GEFS)
Ensemble forecast of 21 different global models. Resolution of 1-2.5 deg. Released 4 times daily, each one making forecasts for 0-16 days ahead at 6 hour timesteps. Has confidence intervals.
Global Forecast System (GFS)
Single model global forecasts. 0.5 or 1 deg. released 4 times daily, making forecasts at 3 hour timesteps out to 10 days, and 12 timesteps 10-16 days.
Past a few hours it does not have forecasts for on the ground variables (temp & precip) directly.
NWS home page for GFS http://www.emc.ncep.noaa.gov/index.php?branch=GFS
Experimental Forecast with Confidence Intervals
This group at FSU is using GFS ensembles to make confidence intervals of short term forecasts (up to 7 days out). Doesn't look like they make data available.
Long term forecasts
CFSv2 Operational Forecasts with CI's
0.5 deg global forecasts, released 4 times daily. hourly timesteps out to 9 months
NWS uses of the CFFv2 here - http://www.cpc.ncep.noaa.gov/products/CFSv2/CFSv2seasonal.shtml
Abatzogula Lab downscaled 7 month forecast
Uses the North American Ensemble project do create downscaled (4km) grid of the western us daily precip and temp forecasts up to 7 months out. Really nice visuals and website tools. Also looks like easy access to actual data.
NWS Climate Prediction Center three month outlooks.
forecasts 3 month mean temp & total precip for up to 12.5 months into the future. old old old website. There is little actual data to download, just 90's era maps. There is "GIS data", but it's only shapefiles showing the probability of exceeding the long term average, and doesn't seem to even match the old school maps.
European Centre for Medium-Range Weather Forecasts
Hosts many different forecast datasets with global coverage from several days to 7 months out. Includes ensemble forecasts. Some data is free without a login, some available for research use only with a possible small fee.
International Research Institude for Climate & Society
Based at columbia univ. Hosts a lot of climate data in a very confusing website. Most of the NOAA forecast data is hosted here.
APCC Climate Center
Asian Pacific Partnership of 21 countries (including USA) consolidates other climate forecasts and makes an ensemble. Data page here

Done using CMIP5 so closing for now. Definitely interested in the shorter term data forecasting efforts.


Move Frey specific overrides to group_vars file

For now I put the Frey specific overrides in infra/group_vars/all/Frey.yml, it would be way better if Frey would create this file for us.
Some other variables that should reside here are:

ansistrano_allow_anonymous_stats
ansistrano_remove_rolled_back

but there are more, see the frey-specific-changes branches of all the forked roles.

I think this file should reside inside Frey itself, would you agree @tersmitten ?

I rather have it in Frey (see), since it's the same in multiple repositories.

I'm done

Okay so we both agree the vars should go into the Frey repo, and this is just a step towards that? I'll assume yes and merge this already 👍

Okay so we both agree the vars should go into the Frey repo, and this is just a step towards that? I'll assume yes and merge this already

Yes


KAFKA-4064 Add support for infinite endpoints for range queries in Kafka Streams KV stores

@guozhangwang
I had to fix the bug with in-memory ranges being exclusive and RocksDB being inclusive to get meaningful tests to work.

@theduderog you have a checkstyle failure

I don't have a strong opinion.
I see the benefits of a single range(Range<K> range) method.  Its drawback is that users have to construct a new instance of Range<K> every time, which is more cumbersome in terms of using the API.
So:
store.rangeFrom(3)

versus
store.range(Range.from(3))

Perhaps a question to ask is:  Would we need a separate Range class because we expect to add more functions than what rangeFrom(K) and rangeUntil(K) would cover?

cc @ijuma as well

I prefer the method taking a Range personally (it is why I suggested that offline when the discussion was taking place). It is easy to add convenience methods later, if necessary, but hard to remove methods from the interface.

There are some jenkins failures that seems related to the changes.

@guozhangwang I'll fix those.  What you think about the API?

@theduderog - sorry we haven't progressed this at all. Besides the conflicts. I'm in favor of the API as I mentioned above (Obviously!) @enothereska @mjsax @guozhangwang - thoughts?

Yeah good idea. Let's push to get this in asap. @theduderog could you resolve the conflict and then we can take it from there. Sorry for the delay.

ping @theduderog

retest this please

Is range() supposed to be inclusive or exclusive of the endpoint?
The docs say inclusive, the RocksDB implementation is inclusive, but the InMemory implementation is exclusive.
Not to mentioned that Java SortedSet.subSet defaults to exclusive and seems like the more natural choice so it's likely what users expect.

Re: range() I think we can make it consistent as inclusive everywhere, the InMemoryStore's range function seems to be a bug itself. Could you fix it along with this PR?
Re: API, I think I also agree with @dguy and @ijuma on the new Range class that
class Range<K>
   private K from;
   private K to;
   ...
   static <K> from(K key) ...
   static <K> until(K key) ..
   static <K> range(K keyFrom, K keyUtil) ..

which could be generalized later. At the same time we can keep the current function and reimplemented as Range.range(..).

Made a pass over the implementation, LGTM overall.

retest this please

@theduderog retest this does not work for apache repos just FYI :P

thanks, @guozhangwang.  it may have just been a coincidence but it seemed to kick off right after i added that comment

@theduderog Could you file a KIP for this API change as well?

@dguy I'll switch to that for the KIP

Closing this PR due to inactivity.

FYI, this was implemented in #11120


net: testSpliceReaderAtEOF closed connection: got err = splice: invalid argument

When running tests against the new splice code in the net package from 1.11 the syscall appears to be returning an error on CentOS 6.
What version of Go are you using (go version)?
go version go1.11 linux/amd64
Does this issue reproduce with the latest release?
Yes, it appears to have been introduced with 1.11
What operating system and processor architecture are you using (go env)?
The error appears to only occur on CentOS 6 with the standard 2.6.32 kernel. The test passed successfully in a CentOS 6 chroot under a CentOS 7 kernel however, so it seems like it may be related to the older kernel. Also passed on a variety of newer CentOS/Fedora distros without issue.
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/mockbuild/go"
GORACE=""
GOROOT="/usr/lib/golang"
GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build794142517=/tmp/go-build"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"

What did you do?
./run.bash --no-rebuild -v -v -v -k
What did you expect to see?
All tests pass successfully
What did you see instead?
--- FAIL: TestSplice (0.02s)
    --- FAIL: TestSplice/readerAtEOF (0.00s)
        splice_test.go:228: closed connection: got err = splice: invalid argument, handled = false, want handled = true
FAIL
FAIL	net	2.046s

I'm a little confused. Does 92bdfab795a1245d8b81a6e841d5e5aa52f3a790 not handle this correctly by disabling splice on old kernels, or am I reading that commit incorrectly? I don't understand if 2.6.29 or 2.6.35 is the cut-off.
Perhaps @benburkert could clarify?

I am seeing the same issue.

I'm currently investigating on CentOS 6, and I can reproduce the issue.
When I run the readerAtEOF test cold, I get closed connection: got err = fcntl: invalid argument, handled = false, want handled = true. If I run other tests before it, I get closed connection: got err = splice: invalid argument, handled = false, want handled = true as originally reported.
I'll continue investigating.


Mitigate npm spam/phishing

Whether it's an accident or not, seeing this coming through Freshdesk.

Someone [...] is trying to use my email to claim the [...] package on gratipay.com and I'm getting a bunch of request spam. Please deal with this loophole.  https://gratipay.freshdesk.com/helpdesk/tickets/9219

What is this asking me to do? I'm unsure who this [...] is.
https://gratipay.freshdesk.com/helpdesk/tickets/9220

We do have rate limiting already, I think it is 3 emails per minute or similar.

Well, that could end up in 1440 emails per day - so might be worth revising our algorithm.

Alright, what's the right thing to do here?

Since we're working with public emails that haven't been verified with us yet, there's no way we can close this off entirely without neutering the entire feature.

I've marked the account doing the spamming as suspicious.

Considering that you need to be logged in to see the emails and click apply, I think limiting per account wouldn't be outside a realistic possibility.
Or do like Slack does and require that you can only have n unconfirmed emails. So if you click "apply" on three projects that aren't yours, you won't be able to on the fourth one.

Or do like Slack does and require that you can only have n unconfirmed emails. So if you click "apply" on three projects that aren't yours, you won't be able to on the fourth one.

I like this idea.

I'm trying to understand the damage here. How many mails did Spammer send?

I asked at https://gratipay.freshdesk.com/helpdesk/tickets/9219.

Three to the person above, and he is not happy about it.

I've replied:

Hi, []. Chad here, we met at Sustain. Sorry for the spam. :-(
The reason this happened is because your email address at npm is public in the npm API, and we use that information to verify ownership of npm packages in order to make it easy for npm package owners to apply to receive funding via Gratipay. I had lunch with the npm folks the day after Sustain, and they confirmed that until they implement OAuth this is the best method to use.
What this means is that a user who is signed in to Gratipay can see your email address on this page:
https://gratipay.com/on/npm/[]/
And they are able to click a button to (attempt to) claim the package using your email address. Ideally that user is you, but of course that's not the case here.
Our plan to address this spam/phishing loophole is to limit the number of email verifications that a user can initiate, probably to one at a time. That way the most spam messages an individual Gratipay user could send would be one.
Does that sound like an acceptable solution to you?
P.S. We've blocked the particular user who was doing the spamming in this case.

Thanks for the details behind this.  I see you're caught between a rock and a hard place with npm (it's too bad they haven't implemented OAuth yet).  Just thinking outloud, is there a way to tie the npm email to a Github OAuth in the interim?  If not, I suppose limiting to 1 email is fine; but I'd also like to see a report user link in said emails - something like "Didn't initiate this? Report ".  Whenever I see an auth email like the 3 I saw earlier this week, I freak out that something has been compromised (email, account, etc) so I think better messaging in the email would help.

My reply:

Good ideas, []. And I see what you mean about something like this making it look like something has been compromised. I've copied your (anonymized) comments over to our ticket about this. I've been traveling for six weeks (family road trip!) and return home today(!), so I get back to work full-time next week. Hopefully we'll start to have some better protections in place within a few weeks.
Sorry again for the unpleasant surprise. Thanks for helping us think this through!

+1 from @/avoidwork on Twitter, cf. https://github.com/gratipay/project-review/issues/549. @/apanoo marked suspicious.

Just thinking outloud, is there a way to tie the npm email to a Github OAuth in the interim?

Wonder what this means>

If not, I suppose limiting to 1 email is fine; but I'd also like to see a report user link in said emails - something like "Didn't initiate this? Report ".

We have this copy in the email:

Something not right? Reply to this email for help.

... which is presumably how they got to us in the first place. I think that's actually sufficient?

Zooming back out here from https://github.com/gratipay/gratipay.com/pull/4579#issuecomment-324401774 ff. ...

As all services do, we'll just add a note saying 'If this wasn't you, no action is required' at the bottom.

Do we need that {in addition to,instead of} our current "Something not right? Reply to this email for help."?

Generic sign-up email spam is understandable, and won't startle users like an email saying 'May we receive money on your behalf'.

👍

Add 'link/verify' buttons to the emails on the 'claim' page, without requiring the user to go to the emails page and come back.

Isn't this basically what we have now? I guess we have the further streamlining that we verify the email and claim the packages in one email-link-step—a bridge too far, I think you're saying?
Part of what we're up against is that at the top end, packages have about 100 maintainers on file. That's why we put them in a select instead of listing all maintainers, but that takes away from the idea of attaching a button to each maintainer in a listing (otherwise we could use the same layout evolving above on #4579, where we have guaranteed ourselves < 10 email addresses per participant).
What if we varied the action on the package claim page based on the state of the selected address? So it would only read "Apply to accept payments" if the selected address is verified, and it would read "Verify email address" if unverified:
"Ready to apply" mockup

"Ready to verify" mockup

When an email is verified, automatically fish out unclaimed packages related to that address, and take them to the claim page? (or a bulk claim page?)

Then we could surface claimable packages on /verify.html (#4431) to close the loop.

I still think we should only allow one pending verification at a time, to mitigate phishing. I would be comfortable allowing self-service removal of pending verifications if we also tighten the verification window to five minutes. That plus low-level throttling (one user-initiated email per 30 seconds or so) should be pretty good.

I still think we should only allow one pending verification at a time, to mitigate phishing. I would be comfortable allowing self-service removal of pending verifications […]

Actually, it's the combination of these two that especially mitigates phishing. Once you remove a pending verification, it renders the verification link ineffective. The remove-and-readd workaround would only aid phishing if the verification link in the first phishing attempt survived the remove-and-readd. Limiting pending verifications to one at a time forces phishers to serialize their phishing—they can't mass-phish all of npm via Gratipay. They can at best engage in targeted phishing. The five-minute limit on verification links would further mitigate since people not expecting a verification email are fairly likely to take at least that long to notice the message and process what's going on even if they did end up clicking. An additional mitigation would be a confirmation step once back on-site (cf. #4577 vis-a-vis oauth).

I'd also like to see a report user link in said emails - something like "Didn't initiate this? Report ".

For the case where recipient addresses are not associated with Gratipay participant accounts, a generic unsubscribe (https://github.com/gratipay/gratipay.com/pull/4548#issuecomment-324300946) could at least partially address the desire to take action on unexpected claim messages.

The user above at https://github.com/gratipay/gratipay.com/issues/4557#issuecomment-323520050 claimed all their packages as a defense against phishing/spam. Part of bringing back pledging is to bring back locking (hard-opt-out of) all pledges, which would be an alternate and preferable active protection against individual targeted spam/phishing.

I forgot! We already have a bulk-claiming workflow. 😆
https://gratipay.com/on/npm/

@rohitpaulk I think I'm starting to see what you're saying at https://github.com/gratipay/gratipay.com/pull/4579#issuecomment-324401774:

I still think that we should decouple email verification and linking packages. What I propose is:

Only allow users that have verified an email corresponding to a npm package to 'claim' it.
Once we do have a verified email that corresponds to an npm package, allow user to claim the package directly, and send a notice (not verification, just a notice) out to all maintainers. The email body should clearly mention that the Gratipay user is a verified owner of that specific email address.

Now that the email only says 'link<EMAIL_ADDRESS>to the abcd account on Gratipay' - it is (perceived as?) less dangerous. As all services do, we'll just add a note saying 'If this wasn't you, no action is required' at the bottom. Generic sign-up email spam is understandable, and won't startle users like an email saying 'May we receive money on your behalf'.

In other words, phishing depends on email and the messages an attacker can get through to a victim via our service. Both the quantity and the quality of messages matter. We can limit the quantity in various additional ways. We can limit the quality by only ever sending verification messages to unknown addresses. I like that as a policy.
Okay! So ... #4520?

We can limit the quality by only ever sending verification messages to unknown addresses. I like that as a policy.

Though of course sending "claim your free money!" messages to unknown addresses is exactly what we propose to do on #4569. 😬

I guess the difference is that one type of message suggests that the user took an action. If they didn't take it, then they feel unsettled, "Why is this telling me I did something that I don't think I did? Did I really and I forgot? Or am I being hacked?" Whereas the second type of message does not assign agency to the user: "We have money waiting for you if you want it."

Kicking out a PR for the "Ready to verify" idea above at https://github.com/gratipay/gratipay.com/issues/4557#issuecomment-324469116 ... #4584.

Consolidating from @rohitpaulk at https://github.com/gratipay/gratipay.com/pull/4579#issuecomment-324422950:

Okay, so can we hash out the user flow on https://gratipay.com/on/npm/express, then? Do we display all maintainer emails and only allow the user to initiate a message to addresses they've already verified? Do we only display email addresses they've already verified? Do we offer to send an email verification right from the package page? Do we make them click over to the Emails page to add the address there?

Basics, just to get things working:

If user is a maintainer, show 'Claim' button directly. Make it clear that the user is allowed to claim this package because they own that specific address, and also show the list of maintainers that we'll send emails to if they claim the package.
If the user is not a maintainer, show all emails, say that you have to add one of these (link to emails page) as a verified email address on Gratipay. Once verified, come back to this page and you'll be able to claim a package.

Streamlining (building upon the above):

When an email is verified, automatically fish out unclaimed packages related to that address, and take them to the claim page? (or a bulk claim page?)
Add 'link/verify' buttons to the emails on the 'claim' page, without requiring the user to go to the emails page and come back.

If user is a maintainer, show 'Claim' button directly.
If the user is not a maintainer, show all emails
Add 'link/verify' buttons to the emails on the 'claim' page, without requiring the user to go to the emails page and come back.

Done in #4584.

I think with #4579 and #4584 we are back ahead of the spam/phishing risk given our present scale. Leaving open for further mitigations as we continue to scale #4427:

enforce constraints at the API level, not just in the UI
drop the verification window to five minutes
real-time throttling (once we have real-time sending: #4545)

If the user is not a maintainer, show all emails
Add 'link/verify' buttons to the emails on the 'claim' page, without requiring the user to go to the emails page and come back.

I am kind of concerned that this would encourage phishing. If I am a not the most honest person and I see a situation where I can phish to get free money I may take it. I personally think that the packages claimers should verify their emails separately first (it should the one used in the maintainer list for that package(s) that you intend on claiming) and then go through the claiming of the package(s). This may be a longer process but (to me at least ) it reduces the possibility of phishing.

At least some are still getting through. I need to look deeper to see why. Temporarily marked requesting user suspicious, but not sure how this is happening.
https://gratipay.freshdesk.com/public/tickets/f8330d6771ec6fb2663812e1e25b17bf31ccce573457b89c1150ec9cbb36383a
Do we have any method for hard opt-out? We shouldn't store email addresses people don't want us to, even if scraped.

... Although we'd need to store these to not use them...


Voiteștii din Vale/Deal, Gorj (Bălănești) - are not written correctly

ENVIROMENT: ui.orase
URL: https://peviitor-ro.github.io/ui.orase/
Browser: Chrome
Device: Laptop
OS: Windows 10
STEPS TO REPRODUCE:

Open URL in browser
Type "Voiteștii" in the search bar
Looking after "Voiteștii din Vale/ Deal, Gorj (Bălănești)".

EXPECTED RESULTS:
The name of the locality written in the search bar is written correctly based off the law nr. 167/1929
https://legislatie.just.ro/Public/DetaliiDocument/189
ACTUAL RESULTS:
The name of the locality written in the search bar is not written correctly based off the law nr. 167/1929

Fixed! Poti retesta

Retestetd.


fixes #45; implements publicVisible field across implemention

Description
Implements a public visibility field for testcases, to allow the frontend to determine which testcases to display to the user.
Resolved Issue
Fixes #45
Changes

Updates DTO
Adds new rules to validator for DTO
resolves instantiation conflicts of previous usages of the DTO
Adds a single testcase to ensure that we fail if no public testcase is set

Checklist

[X] I have added test cases for my additions (Arguably, more should be added)
[X] New and old tests passed

Closing PR to add the remaining work of #53.


AAS-Environment crashes for special AAS-IDs

I used the AAS environment component in different projects, so with different developers for the AAS files.
The AAS environment of one of the projects crashes at starting. I saw a little difference in the AAS files. Some have as AAS ID something like "http://example..." and the others something like "www.example...". When I use the AAS files with "http://..." in the ID then the environment doesn't crash. When I use "www. .." then it crahses. I also noticed that this naming convention doesn't apply to the submodel ID. Here I can use both and the environment starts without errors.
To reproduce the error I attached my code with both AAS files. In both files the submodel ID is the same (without "http://") :
aas-env-setup.zip

The log points out
Duplicate element id detected with id www.example.com/ids/sm/1225_9020_5022_1974

By adding the "http://" you avoid the Id collision. Thus, the issue is the id duplication between two elements.

To obtain the error message, you must test both AAS files separately. If you test it together than you have a duplicated ID, thats correct.

Thanks for pointing this out. However, I can't reproduce the issue. Can you post a log file?

Okay you are right. In my uploaded example AAS the error doesn't occur. Sorry for this.
But I reproduced the error if I load the projects original AASX package with several AAS inside it again. After deleting some AAS in the package the environment doesn't crash. So it was the configuration of some AAS that wasn't correct. The example code above shows, that one can use both namings and it works.


Deferred operation fix

This pull request includes the following changes:  if vkCreateRayTracingPipelinesKHR
is a deferred operation, the lifetime of the input parameters is extended to cover
related vkDeferredOperationJoinKHR and vkGetDeferredOperationResultKHR
until the return value show the deferred operation is finished. The post handling
of vkCreateRayTracingPipelinesKHR will start after the deferred operation is
finished.

Author mizhen not on autobuild list. Waiting for curator authorization before starting CI build.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

CI gfxreconstruct build queued with queue ID 16581.

CI gfxreconstruct build # 474 running.

CI gfxreconstruct build # 474 failed.

Author mizhen not on autobuild list. Waiting for curator authorization before starting CI build.


Create fibonacci.java

fibonacci and tribonacci series

Thanks for contributing , please follow the Contributing Guidelines and naming conventions in the guidelines accordingly. 🙂
Also, in this case you also need to create a folder for arrays under Algorithms and change your filename as well.
Following naming guidelines is important to maintain consistency.


Production Implementation

Is there a plan or goal in place to migrate this project from pre-prod to production?

My personal checklist would be to finish up #149 and #122 and let those bake for a bit, particularly from the perspective of folks migrating from the old registrar. Once we have some confidence that those features are solid, we'll be in a good position to begin running down the prod checklist and bring the project up for "production" status approval from the SPIFFE Steering Committee.


Add event.key values for special characters

When the user uses whenKeyPressed and attempts to use event.keyCode, it should be replaced with the text equivalent of special keys.
whenKeyPressed{
    event.key == "up" //true when up arrow pressed
   event.key == "space" //true when spacebar pressed
}

It should work with the following special keys:

Enter
Left
Right
Up
Down
Space
Backspace

What about the rest of the keys?

The rest of the keys are automatically set by JavaScript
On Tue, Mar 21, 2017 at 1:02 PM Baran Skistad<EMAIL_ADDRESS>wrote:

What about the rest of the keys?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Scratch-JS/Scratch-JS/issues/53#issuecomment-288147054,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AGck4g0lJRICQsFozHaOt7BXbgDQtsU8ks5roAK_gaJpZM4Mj6xM
.

K.

Solved in #57


test: refine root cause identification test of recovery

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Supplement of #16397.

Increase the delay before checking the recovery event. Hope this can resolve recent CI failure.
Show error message in the query result (instead of comparing them then getting t or f) to provide better observability.

Checklist

[x] I have written necessary rustdoc comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Documentation

[ ] My PR needs documentation updates. (Please use the Release note section below to summarize the impact on users)

Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.

    +   Executor error: Channel closed: exchange from actor 11 to actor 33 closed unexpectedly; worker node 2, gRPC request to stream service failed: Internal error: failed to collect barrier for epoch [6326167373217792,<PHONE_NUMBER>536256,<PHONE_NUMBER>920256,<PHONE_NUMBER>304256,<PHONE_NUMBER>688256,<PHONE_NUMBER>072256,<PHONE_NUMBER>521792,<PHONE_NUMBER>840256,<PHONE_NUMBER>224256]: Actor 32 exited unexpectedly: Executor error: Channel closed: exchange from actor 8 to actor 32 closed unexpectedly; worker node 1, gRPC request to stream service failed: Internal error: failed to collect barrier for epoch [6326167356833792,<PHONE_NUMBER>217792,<PHONE_NUMBER>536256,<PHONE_NUMBER>920256,<PHONE_NUMBER>304256,<PHONE_NUMBER>688256,<PHONE_NUMBER>072256,<PHONE_NUMBER>521792,<PHONE_NUMBER>840256,<PHONE_NUMBER>224256]: Actor 28 exited unexpectedly: Executor error: Chunk operation error: Division by zero

Seems like the error is nested


feat(markdown): Add support for details tag

feat(markdown): Add support for details tag

Question
Response

Version?
v1.4.0

Devices tested?
iPhone 6

Bug fix?
no

New feature?
yes

Includes tests?
no

All Tests pass?
yes

Related ticket?
#528

Screenshots

Before
After

Description
Add support for github <details> markdown tag.
Modify ToggleView component for supporting state-based render

Coverage decreased (-0.6%) to 38.809% when pulling db4390e177ac8833e884007c5d7f92ff811e0440 on ArvinH:feat-markupd-details into 753f60c23a6208894125be15fa17fe0d22cc620b on gitpoint:master.

Coverage decreased (-0.6%) to 38.809% when pulling db4390e177ac8833e884007c5d7f92ff811e0440 on ArvinH:feat-markupd-details into 753f60c23a6208894125be15fa17fe0d22cc620b on gitpoint:master.

Fot test:
<code> in summary:

console.log('test');
try something for summary

<image> in summary:

try something for summary

<li> in summary:

test 1test2

try something for summary

Paladin level 95:

 Summary as detail 😆
nested summary details

top summary details

Hey @ArvinH, just checking on you to see if you're stuck on some technical difficulty for this PR.
No rush if you're busy with something else!

Yeah, I'm kind of busy these days, I'll come back this week!
And I actually had some progress on this one but still looking for a better way to organize my code.

Coverage decreased (-0.01%) to 39.849% when pulling 129e76e6dc07553770eefcb1e46341ed2b894242 on ArvinH:feat-markupd-details into 05c386e9c05f11649fc69280a3d2d5be23b2db49 on gitpoint:master.

Coverage decreased (-0.3%) to 39.599% when pulling 567980e7ce58c62b1cb6db577fd7da3a73198af7 on ArvinH:feat-markupd-details into 05c386e9c05f11649fc69280a3d2d5be23b2db49 on gitpoint:master.

Coverage decreased (-0.3%) to 39.549% when pulling 35b72417c25534c7ad6e7bc9a160f9560f2a489a on ArvinH:feat-markupd-details into 05c386e9c05f11649fc69280a3d2d5be23b2db49 on gitpoint:master.

@ArvinH thank you so much for your work on this PR homie 🥇
I'll give it a thorough review on Android and iOS as soon as I can

Sorry I was too busy these days, didn't have the chance to come back here.
Anyway, I'll have some spare time next week and I guess I'll have time to refactor this and discuss with you on gitter 😎

@ArvinH no worries, we all get busy from time to time :)
I'm currently thinking of completely changing one's ground on markdown:
We currently rely on Github to transform the markdown, and we're dealing with HTML.
This is somehow a bad idea, because if Github changes anything at some point, the app can break.
We're also somehow crippled by react-native-htmlview.
I'd like to get back to real markdown parsing, and extract this component into its own repo/lib (like gitpoint/react-native-markdown-view).
Features:

Use markdown-it for parsing
Ditch react-native-htmlview in favor of our own renderer, built on top of htmlparser2
Support Github markdown in priority, but also other flavours (bitbucket, gitlab, etc..)
Be GitPoint independant
Tests, Tests, Tests, Tests

I've been experimenting with this on my side, but nothing really working for now. I'd love it if you could join next week to dive with me in this :)
(cc @housseindjirdeh, @andrewda, @lex111, @jouderianjr  for feedback)

As #819 was merged, I will close this one. Thanks for @ArvinH's efforts all the same!


Request for cutRoutes Python file

Hi,
Thanks a lot for your open-source codes. I am processing the original Dublin dataset. May I ask if you can kindly share your methods on how to clip the original route file and your python file?
I am looking forward to hearing from you.
Best wishes,
Gavin

SUMO provides many useful tools, like netconvert to extract the subnet, some related links in SUMO documentation:

Edge Removal
Select objects
cutRoutes.py
neteditUsageExamples

And some command examples:

netconvert -s DCC.net.xml -o subnet.net.xml --keep-edges.input-file rect_selected.txt
python $SUMO_HOME/tools/route/cutRoutes.py subnet.net.xml DCC_emitters.emi.xml DCC_routes.rou.xml --routes-output subnet.rou.xml --orig-net DCC.net.xml

Please be aware that this email box is not available now. If you have any contact with me, please send your emails to my current email box @.***).


Proxy dont work with post action

I setup proxy middleware on express. Proxy work as expected with get request. But I can't use login form in anymore.
note: i have rewrite the form action url to my proxy manually.

Setup

server: express

proxy middleware configuration
var apiProxy = proxy('/proxy', {
    target: 'https://m.facebook.com/',
    changeOrigin: true,
    pathRewrite: {  '^/proxy/login.php': '/login.php' },
    onProxyReq: (proxyReq, req, res) => {
        proxyReq.setHeader( 'User-Agent', 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)' );
    }
});

server mounting
var app = express();

app.use(apiProxy);
app.listen(3001);

Can you reproduce this in an isolated setup?
(without the m.facebook.com as target)
Even better if you can provide a working setup in a repo.

I have the same problem

Having the same issue with POST proxys. Give a couple hours and I try to reproduce an example.

FYI - I just tried this - moving above bodyParser... Curious as to why this is necessary?

POST requests are supported. Some issues might occur if your using body-parser for example. In those cases make sure you've configured/mount the proxy prior to the body-parser.

Thank you very much, I probably saved hours of debugging, but I really wonder why this is happening, I'm going to look a little further.


Is there a support react native?

I get this error 'RCTRootView.h' file not found	.
Is there a support react native?

This is a duplicate of #397 - react native should now support native UWPs without requiring the islandwood bridge.  Have you looked at this blog?

Closing this issue as dupe of #397

I keep getting the same error


Update the submission part

Since zenodo updated we did not refresh the after section, it cause some confusion in case of 31695.

Michal, you will need to edit https://github.com/REStud/data-editor/blob/master/after.md to match the new Zenodo UI. Please save screenshots too..
Do this on a separate branch and create a PR.

I did all that and created a pull request.

Finally, I could run the jekyll compilation the screenshots look good.


GPG-Keys don't get deleted when deleting an account

Gitea version: 8733384
Git version: Not relevant
Operating system: Alpine Linux 3.7
Database:

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x] SQLite

Can you reproduce the bug at https://try.gitea.io:

[x] Yes
[ ] No
[ ] Not relevant

Description
When you delete a profile with an existing GPG-Key, you can't use this GPG-Key in a new account again. An error says "A public GPG key with same ID already exists.", and it can't be added.
Deleting a Key alone (not the whole account) and adding it again manually is no problem; My guess is that in the process of the account deletion, the GPG-Keys don't get deleted as well.
Screenshots

PR #5357 provided a quick fix for this problem.
We've already tested it successfully.


template.substituteValues is not a function error when performing a push using latest amplify version

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
v20.10.0
Amplify CLI Version
12.10.0
What operating system are you using?
MacOs
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
Just did an amplify push using the latest version of amplify cli.
Describe the bug
So we noticed this issue a while back when we upgraded the amplify cli version to 12.3.0. At the time we had node v18. We couldn't  perform any push or pull. We always got template.substituteValues is not a function and the operation would fail. We rolled back to the  amplify cli version that was initially working  v12.0.3. We've been using this version since.
Checking back now, months later, and it seems issue is still there in the latest version of amplify ?
Expected behavior
I expected to not get a console error when performing a push locally using the  latest amplify cli version.
Reproduction steps
Upgrade amplify cli to the latest version.
Try perform a push.
Project Identifier
No response
Log output

# Put your logs below this line

Additional information
No response
Before submitting, please confirm:

[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

Hey @vantablanta, thank you for reaching out. Could you provide us some additional information on the error message, by running amplify push with  --debug.
Does the error occur when running push on a resource such as custom/overrides?
could you run amplify diagnose --send-report and provide us the Project Identifier output from the terminal.


arg missmatch in tutorial

http://wren.io/embedding/#executing-wren-code
WrenInterpretResult result = wrenInterpret(vm,
    "System.print(\"I am running in a VM!\")");

...but https://github.com/munificent/wren/blob/master/src/include/wren.h#L293 has three args.

the module parameter was added 6 months ago in commit 8a71735e0f18b2f8f6022f5c8c8fe1044bbc741d you can do a PR to fix it. it's in doc/site/embedding/index.markdown

I'll pass on that for now, but want to thank for the very good documentation ! 👍


Make Sipa Section-agnostic

Many aspects of the content can be changed in a section-agnostic manner. The simplest thing to change would be reformulating strings like „AG DSN Sektion Wundtstraße“ to AG DSN, but I believe there are many things regarding the codi itself that can be done.
The major goal of this is presenting the user different websites (for each section, for instance) which are seemingly the same.

Please call it division in English and not section.

Thanks a lot @sebschrader! Correct me if possible, because my English isn't nearly perfect.
By the way, let me add that this issue mostly addresses strings, which makes it kind of a GUI problem.


Provide a GUI.

Describe the bug
https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon is a gui tool. This is a TUI. Why not create it as a GUI?
To Reproduce

Download,
Compile, and
Invoke https://github.com/Sysinternals/SysmonForLinux.git.

Sysmon version
https://github.com/Sysinternals/SysmonForLinux.git
Distro/kernel version
All.
Sysmon configuration
Default.
Expected behavior
SysMon should provide a GUI.
Additional context
https://github.com/Sysinternals/ProcMon-for-Linux/issues/102#issue-2068898730

Hi - thanks for the feedback. While we don't have any current plans on adding a GUI, I've tagged this issue with the enhancement tags so we can track it. Of course, we love and always welcome contributions from the community as well.


:pencil2: typo

typo in readme

newcomers trying to grok the code

fixed the typo

Codecov Report

Merging #66 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #66   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           5      5
  Lines         102    102
  Branches       26     26
=====================================
  Hits          102    102

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 424a7e5...1f9af69. Read the comment docs.

Would you like to add yourself to the contributors table?

Thanks for this! Feel free to add yourself to the table later if you like :)


Do this bot have some kind of support?

I dont see the dev replying anyone and have some problems with the bot, idk if someone can help.

Quote from README.md:

This project was mostly designed as a proof of concept.

I don't think they will give support anytime soon.


bulwark-qt segfaults on macOS after encrypting wallet

Since the Bulwark app is currently broken, I downloaded  bulwark-<IP_ADDRESS>-x86_64-apple-darwin11.tar.gz and tried to see if I could get it to work. bulwark-qt from this tarball runs fine on High Sierra, and everything worked well until I encrypted my wallet. Encryption went through, the client said it had to restart, and when I tried to start bulwark-qt again, I get
Segmentation fault: 11
Here's a gist of the crash report.

for me it started after install.
started downloading osmething... and now I get:
Bulwark Core quit unexpectedly.

This problem will be fixed in the next version.


feat: add fedimintd tagged version endpoint

Closes https://github.com/fedimint/fedimint/issues/5866
Please refer to the associated issue for the motivation to add this endpoint.
bash-5.2$ fedimint-cli dev peer-version --peer-id 0
{
  "version": "0.5.0-alpha"
}

I assume we don't want to make this authenticated so that Fedimint-observer can use it?

@m1sterc001guy yep, that's exactly the reason :+1:

Backport failed for releases/v0.4, because it was unable to cherry-pick the commit(s).
Please cherry-pick the changes locally and resolve any conflicts.
git fetch origin releases/v0.4
git worktree add -d .worktree/backport-5973-to-releases/v0.4 origin/releases/v0.4
cd .worktree/backport-5973-to-releases/v0.4
git switch --create backport-5973-to-releases/v0.4
git cherry-pick -x b9d8ba7cf856c556c466e2fedc3fddc76e38ac3e


Missing Question Mark icon

Hi,
My question icon seems to be broken/missing. I've just updated from sweetalert to sweetalert2 so it's interesting that's the only icon that's been added from 1 to 2.
I tried it on different browsers with the same result so I don't think it's a cache problem.  I've checked my page source and it's pointing to sweetalert2.all.min.js. Everything else seems OK. Any idea what the problem could be?
TIA,
Alan

What browser do you use here?

The screenshot is Firefox. Other browsers don't have the broken symbol, just a blank area where the icon should be.

Thanks toverux,
I'm not sure what happened but it has started working. I was testing it with swal('The Internet?','That thing is still around?','question') and got the screenshot. However after messing around I tried another dialog with type: question and noticed that it worked. Then went back to the original code and it seems to have started to work as well.
No idea why but my guess it was something to do with the update from 1 to 2.
Thanks again,
Alan


[1pt] Login and Authentication [Backend]

Use devise gem
Create the login (without proper authentication)
The user logs in to the website, only by typing the username

Closes on #26


Report Provider.forUseAtConfigurationTime() deprecation

It is already soft deprecated (@Deprecated annotation).
This issue is about adding deprecation reporting/logging for invocations.
See

https://github.com/gradle/gradle/issues/21796

@bot-gradle test this

OK, I've already triggered the following builds for you:

PullRequestFeedback build

Can't do just yet. See https://github.com/gradle/gradle/issues/21796#issuecomment-1235278383


libfabric support for passive endpoints

libfabric passive endpoint support is missing, specifically a function with the following signature "bind_endpoint_to_queues(struct fid_pep *endpoint)". Also, cmake instructions break when compiling against libfabric using passive endpoints.

Wanted to mention, the macros for controlling passive support create a couple of small issues in  plugins/parcelport/libfabric/libfabric_controller.hpp
The function locality create_local_endpoint() needs to have the variable 'int ret' defined above the #ifdef HPX_PARCELPORT_LIBFABRIC_ENDPOINT_RDM macro call (line 490). This will impact the call to ret = fi_getname(id, local_addr.data(), &addrlen); on line 507.

@ct-clmsn When you say "cmake instructions break when compiling against libfabric using passive endpoints" could you tell me what you are doing? (what cmake invocation is failing).
the libfabric support is ongoing and still only supports a very limited range of providers (so far only cray gni is actually working correctly). and we are only supporting the RDM endpoint type.
The code does compile against the PSM provider (omnipath), but has not yet been tested properly.
The passive endpoint code was originally working with the verbs provider, but we made soe many changes to the code around it when adding support for the gni provider, that it should now be deprecated and removed. The passive endpoint support requires connection oriented endpoints and it is so much easier to use connectionless endpoints that it is unlikely we'll ever add connection oritned endpoint back into the code.
Can you tell me what machine/platform/provider you are trying to use? if it's an infiniband based machine, then we should fix the verbs parcelport and use that (I did previously say I'd look at it, so I'll do so this week).

@biddisco I'll start off by professing a general lack of experience programming or building against OFI and libfabric.  With that understanding, I attempted a very naive build using the cmake flags for HPX that should bake-in libfabric. The bit about cmake being broken was to see if there is an ability to detect what type of providers (ugni, omnipath, passive endpoints, etc) are available? I'm currently building against a mellanox ib cluster.


feat(receiver-mock): drop support for graphite and carbon 2.0

These metrics formats are not supported by our sumologic exporter in the otel collector.
Please confirm if it's safe to remove them (I tried checking it in collection repo, but with no success).

those are supported by fluentd, I would leave it as long as we claim support for fluentd
https://github.com/sumologic/fluentd-output-sumologic

metric_data_format - The format of metrics you will be sending, either graphite or carbon2 or prometheus (Default is graphite )

Fine then. Let's just leave this for later.

@sumo-drosiek what do you mean by that?

We should leave this be and close the PR, then.

I agree, we did not manage to get rid of them in 2 years, so it's nothing urgent and potentially causes more problems than benefits.


Upgrade govuk-frontend to 4.3.0

It looks like as part of this we should add the hidden attribute to the menu button on line 40 of the header component?
See upstream change in govuk-frontend.


"resetStateOnExceptionChange" has no effect as the exception is always "ListenerExecutionFailedException"

Affects Version(s): 2.6.3 & 2.6.4
🐞 Bug report
Using "resetStateOnExceptionChange" does not have any effect since exception.getClass() is always ListenerExecutionFailedException. This feature was recently introduced with #1610
I have following setup:

via  errorHandler.setBackOffFunction((record, ex) -> {...}, exception SocketTimeoutException is defined as "always retry"
a given event hits SocketTimeoutException when processing a event for the first time -> is retried again
later on, the exception-type changes, lets say I am calling a webservice that initially was unavailable but now says "resource not found", which leads to a different exception type

Expectation:

using "resetStateOnExceptionChange", the BackOff type is evaluated again and now does not match "always retry" and the record is handled by the recoverer

What happens instead:

record is retried again, the errorhandler does not realize that the exception changed

Looking at it with a debugger: exception.getClass() is always ListenerExecutionFailedException and never changes. The actual exception is nested one deeper at exception.getCause().

Sample to reproduce:
@Slf4j
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @KafkaListener(id = "gh1653", topics = "gh1653")
    public void listen(String in, @Header(KafkaHeaders.DELIVERY_ATTEMPT) int delivery) throws Exception {
        log.info("Processing {}", in);
        if(delivery>=2) {
            throw new RuntimeException("I have changed since the first attempt. Do not retry me. Attempt "+ delivery);
        }

        if(Integer.valueOf(in) % 2 == 0) {
            throw new SocketTimeoutException("I am retried infinitely. Payload is " + in);
        }

    }

    @Bean
    public ConcurrentKafkaListenerContainerFactory<?, ?> kafkaListenerContainerFactory(
            ConcurrentKafkaListenerContainerFactoryConfigurer configurer,
            ConsumerFactory<Object, Object> kafkaConsumerFactory) {

        ConcurrentKafkaListenerContainerFactory<Object, Object> factory = new ConcurrentKafkaListenerContainerFactory<>();
        configurer.configure(factory, kafkaConsumerFactory);
        factory.getContainerProperties().setDeliveryAttemptHeader(true); // optional, see https://docs.spring.io/spring-kafka/reference/html/#delivery-header
        FixedBackOff noRetryBackOff = new FixedBackOff(0, -1);
        FixedBackOff infiniteRetryBackOff = new FixedBackOff(1_000, Long.MAX_VALUE);
        SeekToCurrentErrorHandler eh = new SeekToCurrentErrorHandler((rec, ex) -> log.error("I am the dlq"));

        eh.setBackOffFunction((record, ex) -> {
            if(ex.getCause().getClass().equals(SocketTimeoutException.class)) {
                log.info("Classified {} as retryable", record.key());
                return infiniteRetryBackOff;
            }
            return noRetryBackOff;
        });
        eh.setResetStateOnExceptionChange(true);
        factory.setErrorHandler(eh);
        return factory;
    }

    @Bean
    public NewTopic topic() {
        return new NewTopic("gh1653", 1, (short) 1);
    }

    @Bean
    public ApplicationRunner runner(KafkaTemplate<String, String> template) {
        return args -> {
            IntStream.range(0, 10).forEach(i -> template.send("gh1653", i+"", i+""));
        };
    }
}

One way to fix this would be to access ".getCause()" in both exceptions.
So from
exception.getClass().isInstance(failedRecord.getLastException())
To
exception.getCause().getClass().isInstance(failedRecord.getLastException().getCause())
But I am wondering if the handled exception should be unwrapped out of "ListenerExecutionException" at an earlier stage?

I have submitted a PR, but I am not particularily happy how the fix looks like. Calling a "getCause()" looks wrong and I would rather have the exception handed down to this function be unwrapped already. But I am not familiar enough with where the correct place of "unwrap cause from ListenerExecutionFailedException" should take place

Sorry; I didn't see your PR before submitting my own. https://github.com/spring-projects/spring-kafka/pull/1655
I don't think we can unwrap the cause any earlier without causing a breaking change.

No problem, I appreciate your fast reaction though! I like your changes better, so I will close this PR

The last bugfix (2.6.4) was released just a few days ago, but do you have an ETA when a 2.6.5 will be released, which would include this fix?

2.6.5 will be released just (usually the day) before the next Boot 2.4.x release (which is not currently scheduled). I would guess late January or some time in February.
If there is a serious bug fix that doesn't have a reasonable work around, we would pull it forward.
In this case, there is a simple work around:
class MyErrorHandler extends SeekToCurrentErrorHandler {

	@Override
	public void handle(Exception thrownException, List<ConsumerRecord<?, ?>> records,
			Consumer<?, ?> consumer, MessageListenerContainer container) {

		super.handle((Exception) thrownException.getCause(), records, consumer, container);
	}

}```

Hey guys :)
it just came across this problem again.
affected version: spring-kafka 3.0.4
(Context: Spring Boot 3.0.4, Spring Cloud 2022.0.1)
the cause of the ListenerExecutionFailedException is always a TimestampedException.
The stacktrace is:
ListenerExecutionFailedException -> TimestampedException -> ListenerExecutionFailedException -> MyException
it starts at

the RecordMessagingMessageListenerAdapter that wraps MyException in a ListenerExecutionFailedException
the KafkaBackoffAwareMessageListenerAdapter wraps the ListenerExecutionFailedException into a TimestampedException
the org.springframework.kafka.listener.KafkaMessageListenerContainer.ListenerConsumer.decorateException wraps the TimestampedException in a ListenerExecutionFailedException

i have not tried the mentioned workaround yet :)
more context:
i use the following spring retry configuration:
@Configuration
class KafkaConfig(
    kafkaAdmin: KafkaAdmin
) : RetryTopicConfigurationSupport() {

    init {
        kafkaAdmin.setAutoCreate(false)
    }

    @ConditionalOnMissingBean
    @Bean
    fun scheduler() = ThreadPoolTaskScheduler()

    @Bean
    fun defaultRetryConfig(
        kafkaTemplate: KafkaTemplate<*, *>,
        @Value("\${spring.application.name}") appName: String
    ) =
        RetryTopicConfigurationBuilder
            .newInstance()
            .maxAttempts(1)
            .dltSuffix(".dlt-$appName")
            .notRetryOn(FatalException::class.java) // send directly to DLT
            .traversingCauses(true)
            .autoStartDltHandler(false) // do not consume DLT topic
            .create(kafkaTemplate)

    override fun manageNonBlockingFatalExceptions(nonBlockingRetriesExceptions: MutableList<Class<out Throwable>>) {
        nonBlockingRetriesExceptions.add(FatalException::class.java)
    }

    override fun configureBlockingRetries(blockingRetries: BlockingRetriesConfigurer) {
        blockingRetries
            .retryOn(RetryableException::class.java)
            .backOff(FixedBackOff(1_000, FixedBackOff.UNLIMITED_ATTEMPTS))
    }```


Is Sernerity framework can be hosted on any MVC 5 supported shared hosting ?

Hello Friends, Please advise me i have already created an HR system in Serenity Framework.
Now i need to host it, i don;t want to host it on azure for now.
can i host it on normal MVC 4,5 supported shared hosting. i am planning to buy but i need to make sure it will work on it.

Just any windows device (also works on linux but lets stay simple) with iis and sql server and you shouldn't have any problems with it....

when i upload any new control to hosting its not showing anything.
any suggestions


Update pylibcugraph weakly connected components call

A breaking pylibcugraph PR updated the function signature of weakly connected components thereby breaking the weak connection of CuPy connected components. Furthermore, both pylibcugraph strongly and weakly connected components no longer returns ordered labels and the starting value is now 0.
This PR updates the pylibcugraph.weakly_connected_components call in cupy connected_components along with the tests to always adjust labels since in most cases, the labels returned by both CuPy and SciPy are un-ordered.
closes #7672

Thank you! Let me bump up the RAPIDS version for CI in this PR.

/test rapids

/test rapids


Isolation of snowflake tables

Status quo:

We have a single snowflake database in use for CI.
Our integration tests set up and tear down tables before and after running the tests, respectively. Across executions of the tests, the tables are always created with the same table name and within the same schema, e.g. dbo and int_table1[0].
Whenever CI is triggered simultaneously by more than one event within a timespan of ~10', at least one of the CI runs will almost surely fail (False Negative) due to interference between both runs. After all, they rely on the same database and same tables.

Solution ideas:

Give tables (pseudo-)unique names, e.g. int_table1_{timestamp} instead of int_table1. Even though our test suite comes with a teardown, we might need to set up a regular cleanup of the snowflake database since the integration test teardown itself might occasionally fail.
Make use of locking[1] for the tables at hand. This would make a CI test execution wait for all previously started to finish.
Implement a mechanism to only create/write to tables if not already existent. This would rely on the assumption that a table is immutable/doesn't change over time. This assumption should in principle be true as of now but might not always be. I imagine that we might need to adapt/get rid off the teardown behaviour.

Any thoughts, opinions and suggestions are welcome!
[0] https://github.com/Quantco/datajudge/blob/main/tests/integration/conftest.py#L62-L68
[1] https://docs.snowflake.com/en/sql-reference/transactions.html#resource-locking

I do like option 3, it'd make the runtime for the snowflake tests slightly faster. I did consider this a long time ago but decided against it at the time. I agree that the assumption of immutable tables rather holds, and if we need to change then, well... we know we have to clean the database manually first.
However, probably option 1 is the cleanest one. Just one question, do you see improper cleanup executions that need a manual cleanup?

Just one question, do you see improper cleanup executions that need a manual cleanup?

On second look I think that I was wrong and that we don't actually have any teardown code - albeit it presumably being easy to add:
https://github.com/Quantco/datajudge/blob/main/tests/integration/conftest.py#L54-L59
Assuming that we add teardown code to the table fixtures, there is still a case distinction to be made:

If all tests pass, teardown should work and no remainder be left in the database.
If all failing tests pass with AssertionErrors, teardown should work and no remainder be left in the database.
If some tests fail due to exceptions other than AssertionErrors it might be that the fixture won't be able to run its post-yield code.

We don't have teardown, but we prepare the state by dropping any existing table first.
For postgres and mssql in CI it doesn't really matter since we start from fresh databases with each run. The preparation step in _handle_table function is a bit more important when local testing and developing new tests.
In snowflake, recreating the tables each time implies some "considerable" slowing down for the full test. Now, since we don't delete the data in the end, and recreate the tables at the beginning, we have the "worst" situation in a way. We pay for storage, and we make the tests slower. Not that it's too worrisome, just pointing it out.
Now, my question is, do we really need/want teardown code?


az vmss update-instances * doesnt work

As title, you get error to tell you state instance-ids or * but indeed I put * in already

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

ID: 0408c294-207a-2b72-7b93-e09121602b75
Version Independent ID: 852cb67b-70c6-b811-3b0a-5d5b84b8a911
Content: az vmss
Content Source: src/command_modules/azure-cli-vm/azure/cli/command_modules/vm/_help.py
Service: virtual-machine-scale-sets
GitHub Login: @rloutlaw
Microsoft Alias: routlaw

You may be running an outdated version of the CLI. Also, certain shells interpret a raw * (such as bash) so you may need to use "*".