Rework maps: group map, fullscreen map, gallery map

We have three types of map that fulfill different purposes, but could be improved. Here are some issues with the current implementation:

Fullscreen map (which is the same as mobile map) doesn't have an option to show users and hide stores -> #902

When switching from group map to fullscreen map, it's unexpected for the user that the map view and map content changes -> state would need to be synchronized between them

Group map and fullscreen map could show other groups in some way, e.g. as bubbles. This would bring it closer to the gallery map
There is no way to find out the location of a store on mobile -> #863
At the hackathon in Göteborg, the fullscreen map was sometimes a bit "jumpy" on Chrome. Although the computer was also rather slow, it's good to keep in mind that not all computers are as fast as our dev machines ;)

Feedback from Warsaw:

Tomasz missed an obvious option for exiting the fullscreen map.
He also criticized the missing options to show and hide things.
And that in the mobile version there is no full screen mode at all, and no controls (show/hide users) by default.

The mobile map is the fullscreen map, by the way.
On 16 April 2018 17:50:56 CEST, Janina Abels<EMAIL_ADDRESS>wrote:

Feedback from Warsaw:

Tomasz missed an obvious option for exiting the fullscreen map.
He also criticized the missing options to show and hide things.
And that in the mobile version there is no full screen mode at all,
and no controls (show/hide users) by default.

--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/yunity/karrot-frontend/issues/975#issuecomment-381653424


Cap github commit messages to 1000 characters

I added a little framework for some unit tests as well. Please let me know if you're fine with pytest or if you'd rather use unittest or something else.

Thanks for the contribution. I'll get circleci setup.


feat:redirect link to why section

This PR:

Redirect Learn More link to the why section

Excellent!


kie-server-tests: add update tests for drools

Showing problem with updating of container using updateReleaseId() client method.
PR info: test is about updating container from kjar represented by [1] to new kjar. Both kjars are similar, there is just different kie base name and kie session. Both kjars contain Person class which set specific value as their id.
[1] https://github.com/sutaakar/droolsjbpm-integration/tree/master/kie-server-parent/kie-server-tests/kie-server-integ-tests-drools/src/test/filtered-resources/kjars-sources/container-isolation-kjar1

jenkins retest this

Will be extended in new PR.

Reopened - there were some GitHub issues.

incorporated with https://github.com/droolsjbpm/droolsjbpm-integration/pull/544


Licensebuttons.net issues

The form is currently still civi.

We'll remove the newsletter signup until we have something new to put there.


outdated_appcast scripts: new model

Refs https://github.com/caskroom/homebrew-cask/issues/19121.
@caskroom/maintainers The outdated_appcasts scripts, for those of you that use/plan on using them, now (after this is merged) use a different model with multiple advantages:

Requires less of a time commitment.
You no longer need to warn other maintainers when you plan on running them.
You no longer need to run the whole stack.

This means you may just, for example, run find_outdated_appcasts and let it run, without having to worry about it flooding the repo with new issues. Or you may just run fix_outdated_appcasts and fix just one or two. This ideally will make them be run more often by more maintainers, which means faster updates to casks.
How the new model works (from https://github.com/caskroom/homebrew-cask/issues/19121#issuecomment-187457577):
find_outdated_appcasts:

When starting, check if there’s an outdated appcast-labeled issue.

If yes and it is assigned to someone, try next repo.
If yes and it is not assigned to anyone, recommend running fix_outdated_appcasts. Try next repo.
If no, continue.

Open a new empty issue labeled outdated appcast and assign it to yourself.
Check all appcasts.

If aborted, close the empty issue.

Edit issue with all outdated appcasts.
Unassign yourself.

fix_outdated_appcasts:

When starting, check if there’s an outdated appcast-labeled issue.

If yes and it is assigned to someone, try next repo.
If yes and it is not assigned to anyone, assign yourself. Continue.
If no, try next repo.

Get all outdated casks in issue.
Start fixing them.

If aborted, get list of already fixed casks and remove them from issue. Unassign yourself.

If finished, close issue. Unassign yourself.

As you can see from the diff, this required more additions than edits to the previous scripts, and I worry a bit some parts may not be as clear. bash really showed a weaknesses and inadequacy for this new model, as did ghi in some parts. Many parts need to be so hacky for now, I’m not sure this is completely worth the change, but testing will tell.

Thanks for doing this, @vitorgalvao! I'm away this weekend, but will provide feedback in a couple of days.

Made a small but important change. Smallest repos are now done before big ones. This means the huge amount of casks in this main repo won’t affect the others.

@vitorgalvao How do you have appcasts opening up in your editor? Getting annoyed of Safari always hijacking the URL and offering to add it as a feed (so much so that I manually edit out the open-appcast command)

How do you have appcasts opening up in your editor?

Chrome displays the appcasts, for me.

The more I use this new method, the less I like it. It’s too fidgety, unfortunately, and I’m not sure yet if that’s on ghi or Github’s issues API.
What I do know, for now, is that I’m not liking the unreliability. I’m finding way too many edge cases.
The problem with the previous method was the amount of noise it created, so we should rethink how to fix that.

How about making issues in an empty repo?

That’s the best idea I’ve been able to come up with as well, but it feels inelegant. Apart from that, it might also push us back again to “one developer doing every step”, so we also need a solution for it.
Ideally, some sort of centrally controlled file we can all write to might work, but the only thing I can remember with such a characteristic would involve writing a file to the repo itself. That might not be worse than opening issues, though.

Closing. As bad as it is to throw away the work, I don’t think this is the right solution.
I’ve been playing in my head with a completely different solution for a while, now. I won’t be working on it too soon, but at least I already have some concepts.


Possibly mismatched zipfFactor and avgError in statistics/cmsketch_test.go

Hi!
While struggling with TestCMSketch, I found an interesting fact that values generated with lower zipfFactor are more dispersive (thus lead to more collision) but with lower expected avgErr. This can be inferred by the definition of Zipf distribution.
I have passed case 2 (zipfFactor = 2) and case 3 (zipfFactor = 3), and the avgErrs are all 0. I am sure that hashing results for different rows are independent and I have tried many groups. However, these different groups of hasher all failed in case 1 (zipfFactor = 1.1) with avgErr 10, which really upsets me :)
The numbers of distinct values generated in terms of different zipfFactor are as follows:
zipfFactor: 1.1  len(lMap): 23965
zipfFactor: 2  len(lMap): 420
zipfFactor: 3  len(lMap): 58

It seems that lower zipfFactor should be coupled with higher avgErr. And the incorrect arrErr 10 I got in case 1 looks reasonable giving width = 2048. Is that wrong? I really need some advice.
Thanks!

My miss!
TiDB utilizes Count-Mean-Min Sketch rather than original CMS, which is mentioned in the end of this blog.


Corrected the spanish version of compare-scopes-of-the-var-and-let-ke…

…ywords.spanish.md file

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] All the files I changed are in the same world language (for example: only English changes, or only Chinese changes, etc.)
[x] My changes do not use shortened URLs or affiliate links.

Closes #XXXXX

I've corrected this translation, which for the most part was correct but had a lot of auto-translated things for reserved keywords like "for", "let", etc. That should not be translated, among other things. I'm a native Spanish speaker from Spain.

@SergiOca87 You need to sync your fork to upstream master.  You should not really have been trying to create a PR from your master to FCC's master.  You have soiled your own master.

Hi @SergiOca87
As there has been no response from your end for a while, we are closing this PR.
Feel free to request this PR to be reopened or create a new PR, if you still wish to make the changes you originally added plus any additional change requests asked of you.  Also, remember to update your fork, so you have the latest version of master in case it has changed significantly.
Happy Coding!


No support to specify table for model????

It does not generate properties for model if model name does not match table name. I have model name BankAccountHistory. But my table is called bank_accounts__history. So no properties were generated. I was trying to figure out how to specify table,but unfortunately this package is unusable without this option. May be there is but not documented?

Did you specify the protected $table property? This is required for ide-helper to introspect the respective table.
I just did a limited test and it worked for me.
If it still doesn't work for you, please provide more details:

ide-helper version
laravel version
database driver used
code of your model

Thanks

Closing due to no feedback


[stable/external-dns] trying to register IPv6 address?

Just deployed a few new K8S clusters and installed external-dns (1.0.2) using an image tag of 0.5.5 and 0.5.8 to test.
For some reason, when it goes to register the DNS entry in PowerDNS, it's trying to use an IPv6 address and failing.  The IPv6 it's trying to register is assigned to one of the worker node's eth0 interface, which also has an IPv4 since we don't use v6 here.

influx.prod.cluster./A 'fe80::250:56ff:fe85:8e31': Parsing record content (try 'pdnsutil check-zone'): while parsing IP address, expected digits at position 0 in 'fe80::250:56ff:fe85:8e31'"}"
11/14/2018 4:04:53 PM time="2018-11-14T21:04:53Z" level=error msg="Status: 422 Unprocessable Entity, Body: {"error": "Record influx.prod.cluster./A 'fe80::250:56ff:fe85:8e31': Parsing record content (try 'pdnsutil check-zone'): while parsing IP address, expected digits at position 0 in 'fe80::250:56ff:fe85:8e31'"}"

I believe this is a bug in Rancher K8S, not external-dns as the node is using a self assigned ipv6 address from eth0 instead of the assigned v4 address. I'm going to close this.  Thanks.


Make windows hooks process env changes the same way as unix

This uses the new buildkite-agent env command introduced in #1781, and uses it for hooks on windows machines as well. This change was scoped out of the initial fix, as windows machines weren't affected by the bug, and the effort of testing them would add time between the issue being reported and a fix being issued.
This PR ports the behaviour that we were previously using for hooks running on unix machines to windows machines as well, making the code a bunch nicer and allowing us to delete a whole bunch of useless env processing code.

The tests here are failing because apparently some windows env vars start with an = 🙃
The fix here could either be to silently ignore them, or to special case them in some way. I would slightly prefer to special case them - i don't think our previous implementation properly handled these, but it would probably be good to have the option available.


Anime4K_Upscale_GAN_x2_M seem to be producing some minor artifacts that are not present in the other GAN variants

Not really sure if this is a bug or not, but earlier I was playing with the new GAN shaders and noticed one thing. The X2_M variant of the GAN shader seem to be producing some artifacts here and there, which are not present in any other GAN shaders. To demonstrate, here are some images.

Some noisy old gameplay record 480p->1080p: Zoom in and look at the border of the buttons if you can't notice the artifacts

720p -> 1080p. 400% zoomed view:

And album of the full images for reference: https://imgur.com/a/qV66BA3

All tested with the latest windows build of MPV on default settings on a 1080p display(I don't have 4k  :-x ), running on RTX2060 GPU.
I might be nitpicking but feels odd to me that only one variant of the GAN shaders would produce such artifacts.
And good work on the new shaders. These seem to be much better at keeping grainy textures intact compared to the CNN ones.
Edit: My input.conf:
CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders//Anime4K_Upscale_CNN_x2_L.glsl"; show-text "Anime4K: Upscale L CNN"
CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Upscale_GAN_x2_S.glsl"; show-text "GAN X2 S"
CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Upscale_GAN_x2_M.glsl"; show-text "GAN X2 M"
CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Upscale_GAN_x3_L.glsl"; show-text "GAN X3 L"
CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Upscale_GAN_x3_VL.glsl"; show-text "GAN X3 VL"
CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Upscale_GAN_x4_UL.glsl"; show-text "GAN X4 UL"
CTRL+7 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl;~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl"; show-text "CNN VL"
CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"```

Thanks for the in-depth comparison pictures! I think that it's simply by chance the M shader didn't converge correctly during training. I will try to fix this before the official release of shaders.

In fact I think I can see very tiny (1 pixel) artifacts in the L version too. There might be broader convergence issues from the adversarial training. I will have to investigate. Solving this correctly might take more time as there's no papers that tackle training tiny SRGANs. For now I will try re-training both networks to see if the issue repeats itself.

By my test, upscale GAN x2-UL could produce the best quality while the least artifacts, but it was removed. @bloc97 Could we get another choice to replace GAN x2-UL later?
x2-m x2-UL x3-L
x3-VL x4-UL

That's because GAN x2-UL was trained with small amounts of denoising, I will see if we should support 6 GAN+Denoise upscalers, or let the GAN-Restore handle denoising.

The optimal case would be to delegate all degradations to RestoreGAN shaders, and let the SRGAN work with pristine images. The current problem is that Restore shaders sometimes introduce ringing, blurs out details or do not restore lines enough.
This happens because the restore shader has no idea of the whole image and only works on small patches of the image. It cannot know if the entire image is blurred or whether the blur was intentional and only for a part of the image. This can cause the restore shader to try removing noise or blur where there is no degradation and cause a loss of detail/ringing.
A lazy method was used for the v4.0 restore shaders, by training one shader (non-soft version) on some degradation and another (soft version) on other types of degradation.
By implementing global feature-wise transformations we can hope the new RestoreGAN shaders will not denoise, deblur or add ringing to images that have no degradation.

I went back to check the old GAN x2-UL shader and it does seem to be working great and producing less artifacts for most cases. But it also has some edge cases where it was losing a lot of the minor details on grainy textures (not as much as the CNN shaders but still). Would be great if there was a way to reduce the artifacts while minimizing the loss of details ^^
https://imgsli.com/ODQyMjU/0/1

That's basically what we're trying to do with feature-wise transformations. If the shader can actually know how much compression is in an entire image, it can learn to not remove details when overall noise is low.
Compression and degradation is almost always applied to the entire image, while artistic degradation is usually applied to parts of an image. The important thing is to distinguish between the two by giving the neural network a way to look at the entire image without slowing it down too much.

Upon further examination of the image you provided, it is a very good example of having all kinds of artistic degradation + unintended noise from compression. There are four things:

The gaussian noise (film-grain like noise) should not be removed as it is artistic and intended (you can look at the blurry parts of the image at the top and bottom, they don't have noise) Current Restore shaders would definitively try to remove it, making the image lose detail.
The blur at sides of the images (vignette) is artistic and should not be removed. Current restore shaders will also try to remove it, and wrongly oversharpening parts of the image, causing ringing artifacts.
There doesn't seem to have chroma subsampling, current restore shaders assume always assume 4:2:0 chroma subsampling and will cause color artifacts.
There is JPEG compression, this should be removed as usual, current restore shaders always assume a moderate amount of compression, which does the right thing here.

If you try restore shaders with this image it will fail considerably, as expected. The goal is for the new RestoreGAN shaders to take in account all four cases, so that it can make a better restoration overall.

If the RestoreGANs will be successful at restoring an image without distorting it, the SRGAN shaders will not need to denoise the image. This makes both training and using the shaders much easier, and we would not need a second set of SRGAN+Denoise shaders:
Pristine images from pixiv: Use SRGAN only.
Visual novels: Use SRGAN only.
Degraded images from web: Use RestoreGAN + SRGAN.
Anime: Use RestoreGAN + SRGAN.


Split editor, when coding in the left side,the folding code on the right will auto expand

version:0.40.1

向右拆分.vue文件，在左边script脚本里面写代码，右边script会自动展开

vscode version:1.70.1

Same issue here - splitting opens script on the left and template on the right. Editing the template code on the right would open the template tag on the left.
This is very annoying - I need to go and explicitly close the template tag on the left every time.

Same issue here - splitting opens script on the left and template on the right. Editing the template code on the right would open the template tag on the left.
This is very annoying - I need to go and explicitly close the template tag on the left every time.

VScode version 1.70.2
I think its a VScode problem
but I can't find any solution

I'm experiencing the same issue, very frustrating to have the code presentation shift around unexpectedly.

This is editor issue, please report to https://github.com/microsoft/vscode/issues.


Add non-generic methods for serializing/deserializing

I'm actually looking to use non-generics inside a custom converter. According to the analyzers, I should prefer calling context.GetConverter. Is that supportable?

Ah yes, that's a different use case to be sure. And I'm glad the analyzers stopped you from making the top-level call. Let me look more into it.

For the vs-streamjsonrpc formatter, I'm considering an alternative: making two MessagePackSerializer instances, one for the message envelopes, and one for user data. Would it make more sense for the user to provide a shape provider (my current thinking) that gets passed to call to Serialize and GetConverter; a single custom converter I can register in the user data serializer; or zero or more converters to register in the user data serializer?

I'm considering an alternative: making two MessagePackSerializer instances, one for the message envelopes, and one for user data

That makes a lot of sense. It's the closest analogy to the distinct MessagePackSerializationOptions it did for MessagePack-CSharp.
And just like for that case, you'd still need to inject a few custom converters into the user data instance to handle the exotic types.

Would it make more sense for the user to provide a shape provider (my current thinking) that gets passed to call to Serialize and GetConverter; a single custom converter I can register in the user data serializer; or zero or more converters to register in the user data serializer?

The user should be able to register their own converters (because that provides more customizeability than just providing a type shape). And I suppose there is likely a need for them to provide their own ITypeShapeProvider that we would then use when we make the direct serialization calls.


Complete breaking changes in Azure AD VC, need to re-implement the APIs, the VC definitions and the Azure service

fixed


Why does the schemaFormRedraw use angular.copy() ?

Why does the schemaFormRedraw use angular.copy(scope.initialForm) ? This causes a lot of issues where my variables and watchers detach themselves from the form object I was watching. I modified the library to not use using angular.copy() and it worked fine.
Is it really necessary to call the copying function when the $on('schemaFormRedraw') watcher calls the render(schema, form) function anyway?
Sorry for noob question/ issue structure, first ever issue, I did read the support docs! I dont know how to label this a question either...

It would be nice to get an answer to this. Is there any point at all for the use of the copy? It completely destroys the ability to save the state of any variables outside of the model scope since it detaches form and schema from their original copies. Very difficult to work around and seemingly doesn't have any benefits.

@Lorless we modify the data within our library, if  we used the source object then it would be modified which can cause all sorts of issues. If you search the issue list for closed issues with 'angular.copy' you will find all the previous issues reporting problems caused by that behaviour.
Please re-open if you do not feel the question has been answered sufficiently.

@Anthropic Hi Anthropic, this problem keeps rearing its head at us. The core problem here is how do we maintain the state of the form as we change it? We need to be able to save the state of variables that are on the form. The copy detaches our directives from the form where all our useful options are.
We will also need to insert fields via AJAX requests to get JSON files with the fields we want. Is this even possible? I can see that appendToArray() has the ability to modify the form and keep its state on a redraw.
This issue is related, schema form needs some way to be able to save state without resorting to editing the model.
#526

@Lorless yes state awareness is beneficial. You can always add fields to the form definition that do not need to be a part of the schema and track with those, but state is something I do want myself.
In regard to directives, not sure what you mean, I'm not sure why you would pass directives in to schema-form as they are not valid in a json-schema or in the form definition. You can apply css to container or field that can trigger and attach directives where needed. You can also watch the model object and track changes to it. Are you talking about a custom add-on?

@Anthropic Hi again, in answer to your question, directives themselves aren't being passed into the form but they do exist inside my custom elements. Often these directives have no way to know what context they are in apart from the 'form' variable available in each form element. So we tend to save stuff onto those form elements. Ie {type:'customSelect', key: 'object.name', isActive: false}. We then use a directive that modifies the value of isActive.
The behaviour i have noticed is that the very first schemaFormRedraw event you broadcast resets the fields on the form. So where isActive had been changed to true it is now false again. Any more calls of schemaFormRedraw however do not have the same effect.
Is this behaviour you would expect to see?
This seems like a bug to me. I don't understand why the first redraw would affect variables but subsequent redraws keep them the same. This is really difficult to account for. Im trying to avoid using redraw altogether since it causes so many problems with more dynamic forms but i just cant in this instance.

This may be easier once I add the ability to reference state data, not sure how long that will take though... but then the add-on could set the value in state and not be bothered by a redraw at all. Although it could probably handle that within its own code anyway if you had a state provider.

I've actually got a state provider service already where I'm keeping track of things. I wanted to see whether it was possible to avoid using it as it can be a bit cumbersome. I'll use it for now. Thanks for getting back to me.


A node has the "{DAV:}share" in its ACL list, but this privilege was not reported in the supportedPrivilegeSet list

In version 3.2.0-alpha1, after the installation, when creating a new ('default') calendar in the browser as explained in http://sabre.io/dav/caldav/ the following exception occurs:
3.2.0-alpha1 Sabre\DAV\Exception A node has the "{DAV:}share" in its ACL list, but this privilege was not reported in the supportedPrivilegeSet list
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:sabredav-version>3.2.0-alpha1</s:sabredav-version>
<s:exception>Sabre\DAV\Exception</s:exception>
<s:message>
A node has the "{DAV:}share" in its ACL list, but this privilege was not reported in the supportedPrivilegeSet list
</s:message>
<s:message>...</s:message>
</d:error>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">...</d:error>

Note that the expected entries in 'calendarinstances' are created thouhg. However, this exception is persistent, rendering the functionality broken.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/34198002-a-node-has-the-dav-share-in-its-acl-list-but-this-privilege-was-not-reported-in-the-supportedprivilegeset-list?utm_campaign=plugin&utm_content=tracker%2F294006&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F294006&utm_medium=issues&utm_source=github).

Confirmed. A workaround you can do right now is to call $server->addPlugin(new Sabre\DAV\Sharing\Plugin()); but this should not error, so definitely a bug.

Thanks. The workaround is fine.


perf + find update for gfx908

Generated on rocm 3.5.

Compared with develop for fp32 and fp16 using the DeepBench on rocm 3.5 and MI100 A1 node : spreadsheet
Generally, the PR is good. A lot of fp16 configs are improved, though few configs drops.


new version rxjs do not work for recompose

I use rxjs 6.3.3 with recompose, it give me error of my code:
import rxjsConfig from "recompose/rxjsObservableConfig";
import { Observable } from "rxjs";

setObservableConfig(rxjsConfig)

const MyComp = componentFromStream(props$ => {
    console.log(props$);
    return Observable.subscribe(count => <h1>{count}</h1>);
})

The error happens on:
node_modules/recompose/rxjsObservableConfig.js:11
TypeError: Cannot read property 'Observable' of undefined
   8 | var _rxjs = _interopRequireDefault(require("rxjs"));
   9 |
  10 | var config = {
> 11 |   fromESObservable: _rxjs.default.Observable.from,
  12 |   toESObservable: function toESObservable(stream) {
  13 |     return stream;
  14 |   }

Even if I change the line 11 to:
 fromESObservable: _rxjs.Observable.from,

There is still errors.

I got same issue.
and I found workaround
import { mapPropsStreamWithConfig } from "recompose"
import { from } from "rxjs"

const rxjsConfig = {
  fromESObservable: from,
  toESObservable: (stream) => stream
}

// usage
const mapPropsStream = mapPropsStreamWithConfig(rxjsConfig)

I am having the same issue,

+1

You will need to add the symbol-observable polyfill yourself, and it needs to be loaded before rxjs does.

+1

Here's a short (crappy) working version for typescript + rxjs v6
import { ComponentEnhancer, mapPropsStreamWithConfig, mapper } from "recompose";
import { Observable, from } from "rxjs";

export const mapPropsStream = mapPropsStreamWithConfig({
  fromESObservable: from,
  toESObservable: (stream: Observable<any>) => stream
}) as any as <TInner, TOutter>(
  transform: mapper<Observable<TOutter>, Observable<TInner>>
) => ComponentEnhancer<TInner, TOutter>

# usage
mapPropsStream<number, number>(
  (props$) => props$.pipe(map((n) => n + 1))
)

Essentially, manually define fromESObservable and toESObservable (as @terrierscript suggested), and cast the result from (transform: mapper<Subscribable<TOutter>, Subscribable<TInner>>) to (transform: mapper<Observable<TOutter>, Observable<TInner>>).  Would love to hear if there's a solution that doesn't require casting.


Added e2e testing framework

Addressed #307.
I did a git merge --squash to clean up the history. Let's see if the CI passes this time.

@liyinan926 Now I have no idea why go fmt is complaining. I created the branch for this PR directly off of the latest master. Formatting check didn't report any issues on my local machine.

@liyinan926 CI just passed. Go version was the issue. I created #310 for that.


[FEATURE]: Get how many process share a CPU.

Describe the feature
Can I know how many processes share a CPU in ParallelContext?
In the context of multi-node, each node has 1 CPU-8 GPU.
When using hybrid parallelism, how can I know in this case 8 processes are using 1 CPU?

Can you define what "share a CPU" means?

Do you mean CPU affinity?

I updated the questions.

I see. Generally, this is obtained by torch.cuda.device_count. If we want to store the information in the parallel context (i.e. which ranks are using the same CPU on the same node), we can do this when initializing the global process group.

OK, I will use torch.cuda.device_count, that is enough.

Not sure if you need to consider complicated cases, e.g. using SLURM. SLURM binds one process to one GPU so that device count will always return 1 even if you have 8 GPUs on one node.


addOnTutorialPageChangeListener giving a nullPointerException

I have implemented this tutorial directly in my tutorial activity using this code:
private void replaceTutorialFragment() {
    final IndicatorOptions indicatorOptions = IndicatorOptions.newBuilder(this)
            .build();
    final TutorialOptions tutorialOptions = TutorialFragment.newTutorialOptionsBuilder(this)
            .setUseAutoRemoveTutorialFragment(false)
            .setUseInfiniteScroll(false)
            .setPagesColors(mPagesColors)
            .setPagesCount(TOTAL_PAGES)
            .setIndicatorOptions(indicatorOptions)
            .setTutorialPageProvider(new TutorialPagesProvider())
            .setOnSkipClickListener(new OnSkipClickListener(this))
            .build();
    final TutorialFragment tutorialFragment = TutorialFragment.newInstance(tutorialOptions);
    getFragmentManager()
            .beginTransaction()
            .replace(R.id.container, tutorialFragment)
            .commit();
}

Just like you've done in your MainActivity.java inside the Sample dir.
I also added the following code in the above block:
tutorialFragment.addOnTutorialPageChangeListener(new OnTutorialPageChangeListener() {
        @Override
        public void onPageChanged(int position) {
            Log.d("TAGG","Position: " + position);
        }
    });

to listen to page changes but this is giving me a NullPointerException.
Caused by: java.lang.NullPointerException
    at com.cleveroad.slidingtutorial.TutorialFragment.addOnTutorialPageChangeListener(TutorialFragment.java:199)
    at spoonmoon.com.m******21.TutorialActivity.replaceTutorialFragment(TutorialActivity.java:73)

Also to mention. Without the pageChangeListener the tutorial is working fine.
Am I doing anything wrong?

@srujan7
Currently you can call TutorialFragment.addOnTutorialPageChangeListener only after onCreate method of TutorialFragment was called. We'll check it and figure out if it can be fixed.

So is there any simple way I can listen to page changes? @Iojjj

See Custom Tutorial Layout, but provide our xml layout. This will allow you to get an access to ViewPager and set listener on it.

 I have added the OnPageChangeListener at a delay of 500 millis in background and am handling any exceptions if generated. Will get back and improve whenever gets time.
I'd love to see amendments to be able to add OnPageChangeListener before onCreate.

Hi @srujan7, this issue fixed in version 1.0.8.
Now you can add OnPageChangeListener before onCreate.
With best regards, Cleveroad team.


Use emitter-package-lock.json and @local feed view

Use local feed view in the generated npmrc file
Use eng/emitter-package-lock.json if present

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow

The following pipelines have been queued for testing:java - templatejava - template - testsjs - templatenet - templatenet - template - testspython - templatepython - template - tests You can sign off on the approval gate to test the release stage of each pipeline. See eng/common workflow


chore(main): release 2.4.0

:robot: I have created a release beep boop
2.4.0 (2024-07-12)
Features

Add path flag to download (c01c755)
Move play command under files (98fd433)
Recursive downloads (part of #49) (98fd433)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/davidchalifoux/kaput-cli/releases/tag/v2.4.0 :sunflower:


Topics must be synchronized

Another tip for the documentation:
For visual (RGBD/Stereo) SLAM, all input topics must be synchronized (image, camera_info, odometry).  If the timestamps are not approximately the same then the filter will drop messages and the frontend will do nothing. This can happen if nodes are running on different computers with a clock offset or if some topics are being replayed from a bag.

Sorry for the delayed response. Thanks for pointing this out.
This is expected behavior since the timestamps are used to associate the odometry messages with the corresponding sensor data frames (images, pointclouds, etc.).
I forgot to initially include this in the instructions, so I added a line on this.


DOC: Improve README regarding filenames

Fixes #171

@ElDeveloper Thanks for updating this.

Thanks @fedarko
On (Jun-16-20|17:38), Marcus Fedarko wrote:

Merged #176 into master.
--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://urldefense.com/v3/__https://github.com/biocore/empress/pull/176*event-3451350838__;Iw!!Mih3wA!TGitKSJs2lllApVaekr1Io657y9xNr3fdS-4hIQMv9t8rbW4hX-RgyhaHdMK9bw$


Option to run as m3u editor only

Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
Option to run xTeVe simply as a m3u editor with all the current features except for hdhomerun proxy.
when writing m3u, xTeVe would use IPTV urls and not xTeVe “stream” links to where xTeVe doesn’t have to be running in order for iptv player to play stream.

The URLs must all point to xTeVe so that the buffer settings can be changed without constantly reloading the M3U. If you are looking for an editor, take a look at this:
https://m3u4u.com/


fix request.d.ts CookieJar signature

fixing the CookieJar signature current version describes the underlying tough-cookie api
but it's not the request.CookieJar api https://github.com/request/request/blob/master/lib/cookies.js
made also a pullrequest to the  https://github.com/soywiz/typescript-node-definitions repo

@fkowal Thanks mate!


Critical error thrown: CBackend::create() failed!

Regression?
No
System Info and Version
 System/Version info
<Paste the output of the command here>

Description
wl_registry#2: error 0: invalid version for global zwp_linux_dmabuf_v1 (59): have 4, wanted 5
terminate called after throwing an instance of 'std::runtime_error'
what():  CBackend::create() failed!
Hyprland has crashed :(
How to reproduce
Launch Hyprland from Wayland session
Crash reports, logs, images, videos
hyprlandCrashReport69321.txt

what are you launching it on? we require linux_dmabuf_v1 version 5, which should be supported by mutter and hyprland. Though I guess I can drop it down to 4

fixed in https://github.com/hyprwm/aquamarine/commit/601f6cf95cbe4fef02dc7faf34bba58566c914e9


Calculate polygon area

Question
What API can you use to calculate the area of polygon?
Version of osmdroid the issue relates to:
6.1.5

there isn't one. for large areas, you'll need something complex to account for the curve of the earth, however for smaller areas, basic trig should be good enough. assuming the polygon doesn't
have overlapping sectors, you can calculate the mid point, then calculate the area of triangles between every other point and its adjacent point, then add them up. there should be tons of examples on doing this. there is an api that we have for calculating distance in meters between two lat/lon points.
if you use a math formula, you'll probably have to convert lat/lon to radians first.

OK, thank you


what the value we should add here

[Enter feedback here]

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

ID: 347733dc-a274-7153-050f-684d42852b9f
Version Independent ID: 7a88cfe4-322e-65b5-5c6d-edd6d31e6a20
Content: AZFD0002: Value of AzureWebJobsStorage app setting is invalid. - Azure Functions
Content Source: articles/azure-functions/errors-diagnostics/diagnostic-events/azfd0002.md
Service: azure-functions
GitHub Login: @soninaren
Microsoft Alias: nasoni

@chadirahme  Thanks for reaching out to us and reporting this issue. Please confirm if your  question is related to AzureWebJobsStorage app setting. If Yes, then the Azure Functions runtime uses this storage account connection string for normal operation.  The storage account must be a general-purpose one that supports blobs, queues, and tables.
The accepted value for this is the connection string of the Azure Storage Account as shown below:

Key
Sample value

AzureWebJobsStorage
DefaultEndpointsProtocol=https;AccountName=...

If you have any follow-up question, please do let me know. I would be happy to answer it.

Thank you for your quick response. I found out how I get this value if you would like to update the documentation.

Make sure you have created an Azure Storage account in your Azure portal. This account will be used to store the data related to your functions.
Obtain the connection string: Go to your Azure portal, navigate to the Storage account you created, and locate the "Access keys" section. Copy the "Connection string" associated with the key you want to use (either "key1" or "key2").

@chadirahme Thanks for getting back.
@ggailey777 @soninaren Is this change feasible ? Because we already have the below details in our docs:

For more information, see AzureWebJobsStorage.

@ggailey777 @soninaren Could you please share your thoughts on this once you get a chance ? Thanks in advance.

I don't think it's possible to create a function app without a value for AzureWebJobsStorage which means that either 1) you deleted the storage account you were using or 2) you deleted the app setting itself.
We actually have detailed guidance troubleshooting this error, and I'll add a link to it from the event article.


fix-issue-7

Pull Request Type
What kind of change does this PR introduce?
[x] Solved an issue/task
[ ] Bugfix
[ ] Feature
[x] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[ ] Other... Please describe:
What is the current behavior?
Created a Card using CSS styling.
Issue Number: #1271
What is the new behavior?

Other information

Merged

This is an automated message from Fork, Commit, Merge [BOT].

Thank you for your contribution! Your pull request has been merged. The files have been reset for the next contributor.
What's next?
If you're looking for more ways to contribute, I invite you to check out my other projects. Just click here to find more. These projects contain real issues that you can help resolve. You can also check out the Influences section in the README to find more projects similar to this one.
Also please leave a star to this project if you feel it helped you, i would really appreciate it.
I look forward to seeing your contributions!


TwilioVoice.connect() does nothing

Please include following information for better support
What version of React Native are you running?
"0.54.3",
What version of react-native-twilio-programmable-voice are you running?
"3.14.0"
What device are you using? (e.g iOS9 simulator, Android 6 device)?
iOS 11.2 Simulator
Is your app running in foreground, background or not running?
foreground
Is there any relevant message in the log?
Nothing happens when i call TwilioVoice.connect(params)
If using iOS, which pod version are you using?
1.2.1
Step to reproduce
I followed the steps from here
I've completed till Step 5 from the above link.
I am able to get the token, await TwilioVoice.initWithToken(token) gives initialized true
Then when i call the TwilioVoice.connect(params) method nothing happens, nothing is captured in the listeners as well.
Please help and let me knw what i am missing
Advanced:
Have you tried adding break point in native handlers and see the logs printed?
can share a project with issue?
Did you try to reinstall the pods completely?
The more context you provide around this issue the faster the community can help you.

@fabriziomoscon pls help

needed to enable voip as a background capability in xcode
Open info.plist as source code and enter the following
<key>UIBackgroundModes</key>
<array>
    <string>voip</string>
    <string>fetch</string>
</array>


Example needed for valueID on an ECLASS example

question 46 from excel
Practicioners need an example for use a valueID of an some ECLASS enum, e.g. a color

Example:
02-BA975 degree of protection
and valueId 07-WAA046 for value IP65
Note: when implementing the ECLASS/IEC Importer into the AASX Package Explorer it was discussed that it is not the string "IP65" that is the value but the number defined in ECLASS


Revised the launch file example in README.md documentation

I updated the README.md document file.
Without setting the paremter "frame_id", the node does not publish /velodyne_points topic.
The topic coming from Unity /velodyne_packets contains frame_id: velodyne, but velodyne transform node set frame_id: odom as default. This consistency makes an error of not publishing the velodyne point cloud topic.

related to #17

We should update the CI test with Unity 2020.3.x LTS version.
In any way, this PR does not change the source code itself.
So, I will merge it ignoring the CI / Test error.


Long Error Messages

First of all, thanks so much for your work on Hydrogen. It works brilliantly and it's so much easier to code vs. Jupyter notebook in a browser.
I have two quick questions regarding big output windows.

The output window is narrower when minimap is on, but for people with minimap autohider, the window overlaps with the minimap when it is visible. Any way to force the window to always be narrower even if minimap is set to autohide?

I used the code below to disable scrollbars (don't find them useful at all) but it also disables scrollbar in the Hydrogen output. Any tweaks/shortcuts to scroll down to the bottom of a long message without the scrollbar? Not sure how much work it would be to add a button to do this.

::-webkit-scrollbar {     display: none; }
Many thanks for your help!

The output window is narrower when minimap is on, but for people with minimap autohider, the window overlaps with the minimap when it is visible. Any way to force the window to always be narrower even if minimap is set to autohide?

We set the width here. We cannot use CSS here because the width would be relative to the longest line and not to the visible part of the editor.
We would need to listen for changes to the editor width but I don't know if this is possible. Atom itself doesn't provide a API to listen for width changes.

I used the code below to disable scrollbars (don't find them useful at all) but it also disables scrollbar in the Hydrogen output. Any tweaks/shortcuts to scroll down to the bottom of a long message without the scrollbar?

You can always use the mouse wheel to scroll, even if the scrollbars are hidden.
Or you can add
::-webkit-scrollbar { display: none; }
.hydrogen {
  ::-webkit-scrollbar { display: block; }
  }

to enable them only for hydrogen.

Ow I see, guess it's either not having minimap or not hiding it. Thought it would be easy to make it behave as if minimap was always on.
And thank you for the code!


InvalidStateError: DOM Exception 11: This transaction is already finalized. Transactions are committed after its success or failure handlers are called. If you are using a Promise to handle callbacks, be aware that implementations following the A+ standard adhere to run-to-completion semantics and so Promise resolution occurs on a subsequent tick and therefore after the transaction commits.

When using transactions i get the following exception:

InvalidStateError: DOM Exception 11: This transaction is already finalized. Transactions are committed after its success or failure handlers are called. If you are using a Promise to handle callbacks, be aware that implementations following the A+ standard adhere to run-to-completion semantics and so Promise resolution occurs on a subsequent tick and therefore after the transaction commits

Assuming, db is the database instance that i get in success-handler of openDatabase, here comes the code to reproduce the error. I use this library with SQLite.enablePromise(false).
What i wanted to achieve is to check first, if a specific record is already existing, and depending on this result, perform a UPDATE or a INSERT-statement.
  objectExists( id, table, idColumn = 'id' ) {
    const sql = `SELECT id FROM ${table} WHERE ${idColumn}=? LIMIT 1`;

    return new Promise((resolve, reject) => {
      db.transaction( tx => {
        console.log(1, tx);
        tx.executeSql( sql, [id], (tx, res) => {
          console.log(2, tx, res);
          const existing = res.rowsAffected > 0;
          console.log('Existing', existing);
          return resolve({tx, existing});
        })
      })
    })
  }

  persistShop( shop : Shop ) {
    return this.objectExists( shop.public_id, 'shop', 'public_id' )
      .then( ({tx, existing}) => {
        console.log(3, tx, existing )
        // for now just make an insert regardless wheter this record exists or not because it is broken anways
        const sql = `
          INSERT INTO shop VALUES (public_id, name, picture_url, created)
          VALUES (?, ?, ?, ?)
        `;
        return tx.executeSql( sql, [shop.public_id, shop.name, shop.picture_url, time() ]);
      })
      .catch( (a,b,c) => {
        console.log(4, "CATCH persistShop",a,b,c)
      })
  }

The output on console is:

1 SQLitePluginTransaction {db: SQLitePlugin, error: undefined, success: undefined, txlock: true, readOnly: false…}
2 SQLitePluginTransaction {db: SQLitePlugin, error: undefined, success: undefined, txlock: true, readOnly: false…} Object {rows: Object, rowsAffected: 0, insertId: undefined}
Existing false
3 SQLitePluginTransaction {db: SQLitePlugin, error: undefined, success: undefined, txlock: true, readOnly: false…} false
4 "CATCH persistShop" Object {message: "InvalidStateError: DOM Exception 11: This transact…tick and therefore after the transaction commits.", code: 11} undefined undefined

What happens here is that i can't re-use the transaction after the first call to tx.executeSql.
How to do such consecutive sql-statements within a transaction?

Because transaction is finished and you cannot use it further more.
see the specification here on https://github.com/litehelpers/Cordova-sqlite-storage
WARNING: It is NOT allowed to execute sql statements on a transaction after it has finished. Here is an example from the Populating Cordova SQLite storage with the JQuery API post at http://www.brodybits.com/cordova/sqlite/api/jquery/2015/10/26/populating-cordova-sqlite-storage-with-the-jquery-api.html:

My understanding is that it's impossible to use the Promise-based interface to do a SELECT then UPDATE in the same transaction because the promise returning the SELECT results will always resolve after the transaction has finished. Is that correct?

I am wondering the same thing as @keithito. It would appear so. Maybe one day I'll find the time to look at fixing this...

Because transaction is finished and you cannot use it further more.

@narychen So why return tx in promise function  like this : tx.executeSql( sql, [id], (tx, res))

You do not need to return the promise in transaction, just call it

any solution for transaction through promises?


Need some help to count the number of fruits in the garden

Dear Doctor,
I used this model to count the number of fruit in the garden but the result is not good.
Please help me to improve the model in order to make it more accuracy.
The input images

The output images
01s_box.txt

02_box.txt

03_box.txt

04_box.txt

05_box.txt

06_box.txt

debug.log

Hey,
Before testing, you should resize the images so that the height of the test image is 384, and the width should be adjusted so as to preserve the aspect ratio of the image. FamNet was trained on images with height resized to 384, so it may perform poorly on larger images.

Thanks for your promptly response.
I tried to reduce the size of input images as you mentions. The results are slightly improved, but far from satisfactory.
It seems that the input images has high depth so the side of those fruits are so difference. Do I need to change the image to be more homogeneous or make change to other things?

If the distribution of images on which you're testing our model are very different from the ones in our dataset, performance of FamNet is expected to get worse. That being said, here are few things you can try to improve the performance:

in case of large scale variation, try selecting exemplars from different scales (i.e. pick a large object, medium object and small object).
like you suggested, placing the camera so as to reduce the scale variation of the object should help.
if there's a specific category of objects on which you want to get accurate predictions, it would help if you can label some images from those categories  and finetune our model on those labeled images.

Hello, thanks for your great work. I try to fine-tune your model on my own dataset. How could I generate the density map? It seems that it is not open source yet. Thanks for your work. Any response will be appreciated a lot.

Hey,
If your dataset has dot annotations, you can use any of the publicly available crowd counting density map generation code. For ex, https://github.com/leeyeehoo/CSRNet-pytorch/blob/master/make_dataset.ipynb.


Update CI to include caching

The latest version of the setup-miniconda action has caching support.
We could reduce build times (download times) a bit by caching the packages.

Cool! Please address this as soon as you can.


5-4 map name displays incorrectly

When I was using 5-4 to level some ships I noticed that the map name for 5-4 was displaying incorrectly as is shown below.

ah seems it says "5-undefined" xD

this also applied in every map. just try sortieing to map 2, and it's also give similar output:

It seems to be working correctly in E-3 though

@NicolaosGreene on event maps it's working fine, because there is difficulty ranks
the fault is only on normal map where there is no difficulty there.


decoder: add support for color, style, width and alignment to format

This PR extends the functionality of the --log-format and --host-log-format options implemented in #765 by adding support for color, style, width and alignment options.
The format options are pretty much as described in here:

I can easily imagine assigning static colors, maybe like this "{t:black:bold} [{L:green:dimmed}] Location<{f:yellow:italic}:{l:#5F2A2A:normal}> {s:white:underline}". Note that I A) am using the terms from the colored crate, B) not particularly like that format, it is just what I came up with right now and C) would pick :black:normal as a default.

An example of what the new format could look like is:
{t:>8} [{L:severity:bold}] {f:white:underline}:{l:white:3} {s:werror}

The #5F2A2A variant for colors is not yet supported in this PR - I think the currently implemented options are more than enough.
Something else I still want to implement is support for nested format options or something similar that would allow users to align logs like this:
main.rs:15          This is a log
decoder.rs:345      This is another log

With the current formatting options this is not possible. I think something like {{f}:{l}:20:white:underline} would be a nice syntax to support formatting groups of segments at once.  I'll likely wait for this PR to be merged before working on that though.
One open question is how to implement support for styling String log segments, i.e. how do we allow the user to have something like (HOST) [{L}] {s} where the (HOST) part could be blue, dimmed, etc. It's probably not very important and I can't think of many use cases for this.

Hi @Urhengulas, is there any news about this PR?

Hey, I've been sick and busy with other things recently. Will come back to it next week.

Get well soon :)

Also I just realized that "--host-log-format", "{t} [{L}] {f}:{l} {s}", results in <time> [INFO ] mod.rs:131  device halted without error (note the <time>. But this should not be handled in this PR. In theory it should error, but in the long run we might want to add a host timestamp and then it should work.

Thanks for your feedback :)
I believe I have fixed the issues with the duplicated style specifiers. I also added some tests for that.


Public API Global Roles Kubectl & V1 Can't Edit GlobalRole Via UI When Created Without Display Name

Setup

Component
Version / Type

Starting Rancher version
2.7.6

Upgraded to Rancher
v2.8-aecfe5961e630a8db0e239e00a611227c8886253-head

Rancher commit link
https://github.com/rancher/rancher/commit/aecfe5961e630a8db0e239e00a611227c8886253

Installation option
Helm (high availability)

RKE binary version used
v1.4.8

If Helm Chart k8s cluster
v1.26.7

Cert Details
external tls aws acm

Docker version
20.10.7, build f0df350

Helm version
v2.16.8-rancher2

Downstream cluster type
not applicable

Downstream K8s version
not applicable

Authentication providers enabled
local

Logged in user role
admin

Browser type
Opera GX

Browser version
LVL5 (core: 102.0.4880.74) (x86_64)

Dashboard
master 3389ed6c4

Rancher env setup via
https://github.com/brudnak/aws-ha-infra

Describe the bug
Can't edit a Global Role that was created with kubectl or v1 API with the UI, if it wasn't created with a display name.
To Reproduce

Start with Rancher 2.7.6

Upgrade to Rancher 2.8-head

As admin create a Global Role using kubectl apply with the following manifest
apiVersion: management.cattle.io/v3
kind: GlobalRole
metadata:
  name: global-role-with-inherited
inheritedClusterRoles:
  - cluster-admin
rules:
  - verbs: ['get', 'list']
    resources: ['pods']
    apiGroups: ['']

Notice that display name is not provided

The kubectl apply -f global-role-manifest.yml against the above is successful with being created

Now navigate to the Rancher UI and try to edit the Global Role global-role-with-inherited so that it's a new user default

Result
Unable to edit the global role global-role-with-inherited. It appears this is because a display name is not provided. The Save button is disabled when attempting an edit via the UI. When clicking the global role you also see an error banner "Value" is required. See attached screenshots.

Expected Result
I would expect the UI to default to the name for display name if it's not present "" or nil.  The UI does work this way on the page listing all of the global roles where it lists global-role-with-inherited as both the Name and Display Name
Screenshots

Bug Frequency

Frequency
Selected Option

Consistent (10/10) - A consistent bug can be replicated every time the test is executed.
❎

Frequent (7/10)- A frequent bug can be replicated like 7 out of 10 times when a test is replicated

Occasional (5/10) - Occasional bug is more hard to replicate than a frequent bug.

Once thus far, twice thus far - Few bugs cannot be reproduced every time you run the test.

✅ PASSED
Reproduction Environment
Reproduction not required.
Validation Environment

Component
Version / Type

Rancher version starting
v2.8-fc12e7d779577d10ded1a8e249f51727848b878e-head

Rancher version upgraded
not applicable / fresh install

Rancher commit link
https://github.com/rancher/rancher/commit/fc12e7d779577d10ded1a8e249f51727848b878e

Installation option
Docker

Cert Details
--acme-domain

Docker version
20.10.7, build f0df350

Helm version
v2.16.8-rancher2

Downstream cluster type
not applicable

Downstream K8s version
not applicable

Authentication providers enabled
local

Logged in user role
admin

Browser type
Firefox Developer Edition

Browser version
119.0b5 (64-bit)

Dashboard
master 702c54e96

Webhook version
rancher-webhook:v0.4.0-rc10

Rancher env setup via
https://github.com/brudnak/linode-docker-cattle

:muscle: Test Cases

#
Priority
Description & Link
PASS/FAIL

1
P0
Test 1
✅ PASS

🚨 1 test cases... CLICK TO EXPAND! (For table links to work) ⬅

1 / Status: ✅ PASS

:small_red_triangle: back to top

Test 1 details... Click to expand
Test Steps for Validation

As admin create a Global Role using kubectl apply with the following manifest
apiVersion: management.cattle.io/v3
kind: GlobalRole
metadata:
  name: global-role-with-inherited
inheritedClusterRoles:
  - cluster-admin
rules:
  - verbs: ['get', 'list']
    resources: ['pods']
    apiGroups: ['']

Notice that display name is not provided

The kubectl apply -f global-role-manifest.yml against the above is successful with being created

Now navigate to the Rancher UI and try to edit the Global Role global-role-with-inherited so that it's a new user default

✅ Expected Outcome
I would expect the UI to default to the name for display name if it's not present "" or nil. The UI does work this way on the page listing all of the global roles where it lists global-role-with-inherited as both the Name and Display Name
✅ Actual Outcome
Was able to edit the global role via the Rancher UI after it was created with kubectl.


[BUG]

Describe the bug
в русской локализации в меню настроек
пункт "Donwload sources" называется "Скачать исходный код"(donwload source code) это сильно сбивает с толку
\
in Russian localization in the settings menu
The item "Donwload sources" is called "Скачать исходный код" (donwload source code) this is very confusing
Steps to Reproduce
.
Expected behavior
.
Screenshots
.
Operating System
windows 10
Hydra Version
2.0.1
Additional Information
No response

This will be fixed in the next version. Thanks for reporting

предлагаю перевести как "источники загрузки"

This exact fix was made by @01M. It is already in the main code.
We just didn't release a new version because we are rushing to fix the downloader and then release a new version


when i upload picture sometimes it gives black background as output if picture is smaller or i change the zoom

If you can throw together a codepen/jsfiddle/jsbin, you'll be more likely to get some help.

See #668. Codepen from that issue: https://codepen.io/AlekseiShugalo/pen/XLyKrX

I found that this bug appears in some versions. Use v2.5.1

@AliekseiDev Thank you, was using 2.6.4.


[ENHANCEMENT] Import of simple list with comment support as an alternative to JSON

Please confirm these before moving forward

[X] I have searched for my feature proposal and not found a work-in-progress/duplicate/resolved/discarded issue.
[X] This improvements refers to an existing feature. If you want to suggest a new feature, please use this template
[X] This improvements is not a bug. If you want to report a bug, please use this template

Describe the improvement
JSON format is not really designed to be human readable:
Combined with the fact that Winget package names are not always very readable, this makes it tricky to maintain a list of packages to be installed in JSON format (mainly because it is impossible to add comments).
Combined with the fact that Winget package names are not always very readable, this makes it tricky to maintain a list of packages to be installed in JSON format (mainly because it is impossible to add comments).
Would it be possible to authorise the use of an alternative format in the form of a simple list allowing comments (dotenv for example) as a list of packages?
Describe how this improvement could help users.
Users can easily create and maintain lists of packages (to be deployed on different workstations, for example), while including the appropriate comments.

YAML support will be available with the next release.
Package lists will be exportable both as JSON and YAML files.


Fingerprinting + geolocation (fixed branch name)

See preview here

Content-wise it's the same, right? Do I need to read it again?

@mnmkng The content is all the same


Proxy subfolders

We have a main domain http://domain.com/ which is serving up our main document.
We have added a proxy route (AWS ALB) to serve Raneto from https://domain.com/docs/
We have changed "base_url" to "/docs", but nothing is served from there.
Logs show the following:
0|server   | GET /docs/ 404 4.870 ms - 2180
0|server   | GET /docs/lib/bootstrap/dist/css/bootstrap.min.css 304 2.712 ms - -
0|server   | GET /docs/lib/highlightjs/styles/solarized_light.css 304 1.680 ms - -
0|server   | GET /docs/styles/raneto.css 304 4.797 ms - -
0|server   | GET /docs/styles/ghostdown.css 304 5.429 ms - -
0|server   | GET /docs/lib/jquery/dist/jquery.min.js 304 8.428 ms - -
0|server   | GET /docs/lib/bootstrap/dist/js/bootstrap.min.js 304 9.149 ms - -
0|server   | GET /docs/lib/highlightjs/highlight.pack.min.js 304 9.042 ms - -
0|server   | GET /docs/lib/fitvids/fitvids.min.js 304 8.891 ms - -
0|server   | GET /docs/lib/masonry-layout/dist/masonry.pkgd.min.js 304 9.202 ms - -
0|server   | GET /docs/scripts/ghostdown.js 304 7.922 ms - -
0|server   | GET /docs/scripts/raneto.js 304 8.475 ms - -

We basically want the index of the knowledgebase to be served from "/docs/", not from "/".  Is this possible without modifying the application code?  The load balancer does not have the option to proxy relative paths, from my understanding.
The other alternative is to put another loadbalancer (nginx) on top of this to forward requests and alter the incoming path (from "/docs/" to "/"), but this is overkill in my opinion.  We would possibly need to do a subdomain otherwise, which we're not excited about.
Interested in hearing your ideas. Thanks!

I have fixed this by editing app/index.js and using the express-urlrewrite middleware: https://github.com/kapouer/express-urlrewrite
Here's what I did:

npm install express-urlrewrite
add property to the config: rewrite_prefix: '/docs',
bring in the dependency to app/index.js -> var rewrite       = require("express-urlrewrite");
use the middleware: app.use(rewrite(config.rewrite_prefix + '/*','/$1'));

This takes care of most of the static routes that our users will need. It appears, however, that the login features are now broken, and who knows about the editing capability.
If this is something you guys would like to iterate with me on, I can submit a PR.  Thanks.

Issues relates to login page and editing when using base url hopefully addressed by PR #280.

I can't seem to get this to work.... If I set the base_url to /raneto, the index page loads, but everything else returns HTTP 500 (should be 404? Looking at the logs, it says this page doesn't exist). It looks to be trying to GET /raneto/ for the index page ✔ , and tries for /raneto/styles/raneto.css for example which it fails to find ❌

Yep, I tested it again just now from a fresh clone.
Confirming:

The index page renders
The index page has broken asset links (CSS/JS)
Linked documents/pages do not render any content, instead 404

Please see this branch/PR to address your issue and confirm/deny the fix.
https://github.com/gilbitron/Raneto/pull/312


Add link to superagent-use

superagent-use makes is possible to apply plugins to all requests, instead of just a single request.
My usecase is that I use SuperAgent to request data from an API, which resides on another domain than the application itself.
With this plugin I no longer have to set the hostname for every request, I simply add a global plugin.
Before:
var superagent = require('superagent');
var prefix = require('superagent-prefix')('https://api.example.com');

superagent
  .get('/')
  .use(prefix)
  .end(function(){});

superagent
  .post('/auth')
  .use(prefix)
  .send({user: 'foo', pass: 'bar'})
  .end(function(){});

// etc..

After:
var superagent = require('superagent-use');
var prefix = require('superagent-prefix')('https://api.example.com');
superagent.use(prefix);

superagent
  .get('/')
  .end(function(){});

superagent
  .post('/auth')
  .send({user: 'foo', pass: 'bar'})
  .end(function(){});

// etc..

Thanks


⚠ Bofrost.at has degraded performance

In f03efcc, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2852 ms

Resolved: Bofrost.at performance has improved in 533c432 after 8 minutes.


Open browser to app as part of of dev script

Part of #1653
Visual demonstration

https://user-images.githubusercontent.com/19550456/220887449-d7bcce86-d1e7-4701-a542-86896543cdc3.mov

Please follow the the contributing guide on how to create great pull requests.

It should only open a browser in toolpad dev mode, not in toolpad start
We should monitor stdout for readiness of the app instead of a timeout **
Are all failure modes covered? e.g. what if I start dev mode with a port that's already in use?
It should be opt-outable. I'm currently working on writing tests and I should be able to opt out of the browser opening. Perhaps we can reuse the create-react-app env variable BROWSER=none? Perhaps we can even reuse their openBrowser script? https://github.com/facebook/create-react-app/blob/main/packages/react-dev-utils/openBrowser.js

** One way I'm currently achieving this for the tests is by:
import { Readable } from 'stream';

async function waitForMatch(stream: Readable, regex: RegExp): Promise<RegExpExecArray | null> {
  return new Promise((resolve, reject) => {
    const chunks: Buffer[] = [];
    const onData = (chunk: any) => {
      chunks.push(Buffer.from(chunk));
      const string = Buffer.concat(chunks).toString('utf8');
      const match = regex.exec(string);
      if (match) {
        resolve(match);
        stream.off('data', onData);
      }
    };
    stream.on('data', onData);
    stream.on('error', (err) => reject(err));
    stream.on('end', () => resolve(null));
  });
}

// ...

const match = await waitForMatch(childProcess.stdout, /http:\/\/localhost:(\d+)/);
const port = match ? Number(match[1]) : null

We should monitor stdout for readiness of the app instead of a timeout **
What about polling for some health check?

What about polling for a health check?

👍  Good idea! That would work as well.

@janpot

[x] It should only open a browser in toolpad dev mode, not in toolpad start. toolpad start is for production usage, on servers.

[x] We should poll for a health check

Are all failure modes covered? e.g. what happens if I start dev mode with a port that's already in use?
Doesn't this https://github.com/mui/mui-toolpad/blob/direction-13/packages/toolpad-app/cli/index.ts#L27 deal with this already?

It should be opt-outable.

[x] Added a no-browser flag which opts out from this behaviour

Doesn't this https://github.com/mui/mui-toolpad/blob/direction-13/packages/toolpad-app/cli/index.ts#L27 deal with finding an available port already?

Not if the user provides a port through --port. In that case we assume the user explicitly wants to use this exact port and so we'll error when it's unavailable.

We should poll for a health check

Just want to note that doing a pure healthcheck is in the worst case scenario one second slower than listening on the output of the child process stdout.


docs(helm): change trunc 24 in base charts

The upper limit for a chart name is now 54 characters, instead of
14 or 24 in older versions of Kubernetes. This replaces trunc 24
in the example chart provided to trunc 54 to reflect the new
length available.
Closes #1637

According to https://github.com/kubernetes/kubernetes/pull/29523, the limit is actually 63 chars. Can you confirm, @wilkers-steve?

@prydonius after looking, it does look like 63 is indeed the limit.  I'll let @technosophos chime in before changing it since he filed the issue.  63 is also referenced in a change on the Tiller side regarding resource names it seems, found here: https://github.com/technosophos/k8s-helm/commit/9effe7a50569edadb542b9a6f3c6bc6cb3a4effb

I thought we were reserving several characters for a suffix (- plus 8).

@technosophos oh right, now I see where that comes from! I think the 54 char limit is important for the release name, but the chart templates are truncating the whole {{Release.Name}}-{{Chart.Name}} so the limit here should be 63.

Okay. @wilkers-steve if you wanna do a quick update, I'll merge when it's ready.
Adding this to the 2.1.3 milestone

@technosophos done :)

This LGTM, thanks @wilkers-steve!

Thanks!

Backported for 2.1.3