Remind first time contributors to add name to CONTRIBUTORS.md

Resolves https://github.com/AnalyticalGraphicsInc/cesium-concierge/issues/84
For this to work in the Cesium repository, we have to add to contributorsUrl to the Concierge settings in that repository. That url should be:
https://api.github.com/repos/AnalyticalGraphicsInc/cesium/contents/CONTRIBUTORS.md

This works by just checking the username of the account that opened the PR and parses CONTRIBUTORS.md to check all the usernames in there. A future PR can also abstract this method as a way to tell if this is a first time contributor to display other helpful messages, (as opposed to having to say "If this is your first PR do this" every time).
For tests, I added two separate tests to check the cases of when it should post a reminder vs when it should not. Let me know if those should be combined into one test or if this is good! I tested this on a personal private repository and it does correctly post and successfully detects a username in CONTRIBUTORS.md.

@OmarShehata, thanks for the pull request! Maintainers, we have a signed CLA from @OmarShehata, so you can review this at any time.
I noticed that CHANGES.md has not been updated. If this change updates the public API in any way, fixes a bug, or makes any non-trivial update, please add a bullet point to CHANGES.md and comment on this pull request so we know it was updated. For more info, see the Pull Request Guidelines.

:sparkles: :sparkles: :sparkles:I'm the Cesium Concierge and I'm here to test things. :sparkles: :sparkles: :sparkles:

All issues should be resolved now. I plan on adding contributorsUrl to the Cesium configuration once this is merged (the url now should just be CONTRIBUTORS.md).

Investigating failing tests.

Should be ready now @ggetz !

I've simplified the username check as requested!

Thanks @OmarShehata, looks good to me! Please merge in master.

Resolved the merge conflict, so should be ready to merge now!

Awesome! Let's deploy and update the Cesium template!


Customize Landing page UI issues

Affected module
Does it impact the UI, backend or Ingestion Framework?
UI
Describe the bug
A clear and concise description of what the bug is.

[ ] While customizing the widgets in edit mode the page contains a lot more space at the bottom.
[ ] Even on the UI Landing page the space can be seen for that persona.
[ ] While saving the customization, the page is still in edit mode.

To Reproduce
Screenshots or steps to reproduce
https://github.com/open-metadata/OpenMetadata/assets/66266464/71b6a518-ad3a-4643-8e1a-849ab0a052da
https://github.com/open-metadata/OpenMetadata/assets/66266464/49dfd35c-4f5e-4a97-8314-12b9e84de66a
Expected behavior
A clear and concise description of what you expected to happen.

Space should not be present in case of no- widgets
After saving it should end the edit mode and re-direct to that persona page.

Version:

OS: [e.g. iOS]
Python version:
OpenMetadata version: [e.g. 0.8]
OpenMetadata Ingestion package version: [e.g. openmetadata-ingestion[docker]==XYZ]

Additional context
Add any other context about the problem here.

Closing this ticket as it is expected to still be in the edit mode after saving and the spacing issue is because of the pipeline widget we removed earlier, but still present in the add widget because the data is available in the DB.


[Suggestion] Emit the event "rebalance in progress" in the consumerGroup

Hi, Guys
I want to listener the event when the consumer group is rebalancing, because is useful to send metrics and see what is going on with the consumer group.
Maybe this can be added here, If you thing this is a good idea i can send a PR :D
Thanks,

There is the GROUP_JOIN event which is fired for this purpose. Every time the group rebalances, every consumer joins back in with the assignments it received from the leader, which is when this event is fired.
If there's some way where that event is not sufficient, it would be great if you could explain your use case for an additional event, how it would differ from the current one, etc.

@JaapRood Thanks  for you replay, that's exactly what i need. I will try with that event.

@jarcodallo no problem! Assuming that'll work just fine, I'll close this for now. Feel free to re-open if you find you have use case that isn't covered by this event!


Add Task Shuffle

This uses the transpose trick originally described in https://github.com/dask/dask/issues/417 by @shoyer to affect a shuffle using the task scheduling framework.  This is slower than partd on a single machine but can work with the distributed scheduler.
This operates in log(n) / log(32) full memory copies and n_partitions * 32 * n_copies tasks.

In [1]: import dask.bag as db

In [2]: from dask.bag.core import shuffle_task

In [3]: b = db.range(160, npartitions=16)

In [4]: b2 = shuffle_task(b.map(lambda x: x % 10), max_branch=2)

In [5]: b2.visualize('shuffle-2.png')
Out[5]: <IPython.core.display.Image object>

In [6]: b2 = shuffle_task(b.map(lambda x: x % 10), max_branch=4)

In [7]: b2.visualize('shuffle-4.png')
Out[7]: <IPython.core.display.Image object>

Added a dataframe task-based shuffle

I tried this out and ran into a serialization error.  Something was pulling in globals.

Alright, this appears to function decently well.  Review appreciated.

@jcrist can I ask for your review on this?

General comments:

This is very clean and readable. Nice work.
Needs tests to ensure tokens are sufficiently hashed (different for different args, same for same args).
Docs should be updated to reflect the changes.

All issues handled I believe.

+1.

Squash and merging.  I expect this to generate some bugs in shuffles as we try this against real problems.


XSS.EscapeOutput sniff: Fix issue #933 - namespace separators.

This simple change means that namespace separators will be be ignored completely by the check for output escaping which fixes the immediate issue.
For a more thorough fix, the logic of the function would need to be refactored to take namespaced functions into account as well, but that's for another day.
Fixes #933

Works perfectly for my case :-)


Gov Azure foundation upgraded FW hub - Route testing

Describe the issue
Work with SecOps to test various aspects of the routing to ensure they are seeing all traffic and identify any areas of necessary remediation
Additional context

May not need routing updates but testing is necessary to ensure there is no Azure 'auto-routing' around the newly updated hub firewall set
Part of the SecOps post-fw update verification work

Definition of done

Identify tests that would have to be run by SecOps to ensure the hub-spoke project workload network architecture and others on our end to verify those or test further
Work with SecOps to have them run those tests\log reviews
Work with Networks if SecOps lacks information from packet routing coming from on-prem
Ensure direct routing to the Azure gateway occurs
Share Azure diagram and compare to AWS diagram for interest and learning - team meeting to compare and discuss

Issue reviewed with SecOps concerning routing and their updated Checkpoint firewall.  There may be an issue with how routing is coming in from the gateway and the VPN BGP configuration.  Made request to Networks tier-3 group, however there was resistance to investigate.  Will attempt to explain the troubleshooting being done with them at next opportunity.  Have made the request and will move it forward however possible (may require raising the issues profile with that team at some point)

Issue has been roadblocked by NCCS -Tier 3 group availability to help us gather configuration information on the current BGP settings and troubleshoot, along with information on how VPN link disconnects are detected\treated.  Have asked David Ell to check in with Charles Middleton on this and try to get some of the Tier 3 team's time to go over this.  Assigning as blocked until this group's availability is resolved.

May bring this one in if I can secure a specialist route tester for other ticket to help with this and try to bypass blockage by OCIO Networking here

confirmed by Jon, still relevant

This will be needed once the equinix fabric is deployed

Now redundant due to parallel development process of the new LZ platform.  Closing ticket


doc: silence curl for macOS Catalina acid test

Fixes: https://github.com/nodejs/node-gyp/issues/2148

Checklist

[x] documentation is changed or added
[x] commit message follows commit guidelines

Description of change

Silences the curl part of the curl|bash command that's copy pasted into the user's CLI for less noisy output.

:thumbsup: 4fc8ff1


Fix the typo in the docs

@kvmw Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@kvmw Thank you for signing the Contributor License Agreement!

Merged within e4e1003dd8c091e42c138f4e4a5966e92cf33f9a.


RNTrackPlayer not working on Android

Hello,
I'm building an app with RNTP, everything is fine on iOS, but on Android it doesn't seems to work at all.
On application start I see in AndroidStudio a logging loop of this :
D/RNTrackPlayer: onPositionDiscontinuity: 1
    onTimelineChanged: 1
D/RNTrackPlayer: onTrackUpdate
    onTimelineChanged: 0
    onStateChange
D/RNTrackPlayer: onEnd

When a want to add a track in the playlist nothing happens.
I can't see what I'm doing wrong as everything is ok on iOS.
Can someone give me a hand here?

@zedissime , can you share your code?

@zedissime , can you share your code?

First of all thank your for your attention,
I've got a component containing the player, which will add event listeners when the component did mount.
    TrackPlayer.setupPlayer({}).then(() => {
      TrackPlayer.getState().then(this.onStateChange); //Initialize
      this.getCurrentTrack(); //Initialize
      TrackPlayer.updateOptions({
        capabilities:        [
          TrackPlayer.CAPABILITY_PLAY,
          TrackPlayer.CAPABILITY_PAUSE,
          TrackPlayer.CAPABILITY_STOP,
        ],
        compactCapabilities: [
          TrackPlayer.CAPABILITY_PLAY,
          TrackPlayer.CAPABILITY_PAUSE,
          TrackPlayer.CAPABILITY_STOP,
        ],
      });
      this.listeners.state = TrackPlayer.addEventListener('playback-state', this.onStateChange);
      this.listeners.trackChange = TrackPlayer.addEventListener('playback-track-changed', this.onTrackChanged);
      this.listeners.queueEnded = TrackPlayer.addEventListener('playback-queue-ended', this.onQueueEnded);
    });
  }```

In my main index.js, I register the playback service as described in the docs

```AppRegistry.registerComponent('<app-name>', () => App);
TrackPlayer.registerPlaybackService(() => TrackPlayerService);```

And my service looks like this :

import TrackPlayer from 'react-native-track-player';
const TrackPlayerService = async () => {
TrackPlayer.addEventListener('remote-play', () => {
console.log('remote-play');
TrackPlayer.play();
});
TrackPlayer.addEventListener('remote-pause', () => {
console.log('remote-pause');
TrackPlayer.pause();
});
TrackPlayer.addEventListener('remote-next', () => {
console.log('remote-next');
TrackPlayer.skipToNext();
});
TrackPlayer.addEventListener('remote-previous', () => {
console.log('remote-previous');
TrackPlayer.skipToPrevious();
});
TrackPlayer.addEventListener('remote-stop', () => {
console.log('remote-stop');
TrackPlayer.destroy();
});
};
export default TrackPlayerService;

I don't know if it's what you was looking for.

I don't know if it's what you was looking for.

No. Sorry I should be more specific .. Can you share your code for play a track?
Your configuration code seems to be well configured.

It's really a simple code, in fact the logs I did mention on my first post are appearing on application start. So I think it's not related to the code for adding tracks.
addTracks(parts, date) {
    console.log('___________________ADDTRACKS___________________');
    const tracks = parts.map((part) => {
      return {
        id:      part.id,
        artwork: part.poster_url,
        url:     part.audio_file_url,
        title:   part.display_name,
        artist:  date,
      };
    });
    TrackPlayer.add(tracks).then(() => {
      TrackPlayer.play();
    });
  }

Did you trace the playback-state events ?

Yes on application start, it's constantly switching from 1 to 0 see this screeshot

I had the same.
First of all, like I said https://github.com/react-native-kit/react-native-track-player/issues/482#issuecomment-471310671, I had to change this line https://github.com/react-native-kit/react-native-track-player/blob/108a6ed0094770aaac878cd2b7fdfb3a1a0bc2e4/android/src/main/java/com/guichaguri/trackplayer/service/player/ExoPlayback.java#L180 to return PlaybackStateCompat.STATE_BUFFERING;
And then, I did it:
const STATE_ANDROID = ["none", "stopped", "paused", "playing", "", "", "loading"]

...

if (status === TrackPlayer.STATE_PAUSED) {
            this.setState({ status_buffer: Platform.OS === "ios" ? TrackPlayer.STATE_PAUSED : STATE_ANDROID[data.state] });

            const currentTrack = await TrackPlayer.getCurrentTrack();
            const position = await TrackPlayer.getPosition();

            if (currentTrack !== undefined && position === 0) {
                if ( Platform.OS === "android" ) {
                    this._play();
                    this.setState({ status_buffer: STATE_ANDROID[3] });
                }
            }
}

Well, I know is not the best approach but this is the way I found to play songs on android on app that I'm building...
I hope that help

Thanks a lot, I'll try this asap.

So a few days later,
As the example provided in this repo was correctly working, I did not wanted to changes the package code as @ithustle suggested.
In fact, I did setup the TrackPlayer in his component did mount TrackPlayer.setupPlayer(). If I remove this everything is fine (both Android & iOS).

Humm. I see. Maybe as soon as possible there will be a new version release with this change because I made a PR with it.
Thats curious ... I tested right now (Android) removing TrackPlayer.setupPlayer() and works fine. Inclusive on app start playback-queue-ended event isn't fired.
CC: @Guichaguri

After some tests, I think that TrackPlayer.reset() also makes the loop log described on my first post.
I was using it (probably wrongly) when the user kills the player.
So in order I did :
TrackPlayer.stop(); // to eventually stop the current playing track TrackPlayer.reset(): // to reset the player
But when I do that (still for Android), the reset() method makes RNTrackPlayer logging and it not longer respond to any method.

In my case, the reset() method caused the same issue too.
Removing of a setup() method call didn't help.


Grammatical Errors  and Typo in Documentation

Description
Describe the bug:
The documentation contains several grammatical errors and a noticeable typo that need to be addressed for improved clarity
Expected behavior:
I expect the documentation to be free of grammatical errors and typos, ensuring a clear and coherent message for users.
Actual behavior:
The documentation currently contains grammatical errors and a typographical mistake, which hinder the comprehension and overall quality of the content.
Reproduction Steps
Steps to reproduce the behavior:

Go to the documentation page (readme.md).
2.Navigate to the section related to [doubt section and GSSOC'23 Issue TimeLine ].
Read through the content, paying attention to grammar and spelling.
Identify the grammatical errors and the typo.

Expected result:
The documentation should demonstrate correct grammar and spelling throughout the text, maintaining a professional and polished appearance.
Screenshots

We can improve this more for clarity
Additional Context
Under GSSOC23 assign this to me thank you!

I would like to work on this project. Please assign it to me.

@ankitjt can you check this issue? pls assign this issue to me under gssoc

I have selected this project. I would like to get started. Please guide me
further regarding this.
On Sun, Jun 4, 2023 at 6:19 PM Akanksha Pandey @.***>
wrote:

I would like to work on this project. Please assign it to me.
—
Reply to this email directly, view it on GitHub
https://github.com/akshitagupta15june/Moksh/issues/649#issuecomment-1575557015,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A733Y26DMZWUA4YQ43XESMTXJR74VANCNFSM6AAAAAAYX7LCJY
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

@akshitagupta15june can you check this issue?

@ankitjt sorry for mentioning you for the 2nd time. can you check this issue? I want to work on this under gssoc

Ok


UDF Container Restart not Triggering Numa Container Restart

related to https://github.com/numaproj/numaflow/issues/1592

I wanted some more details on what scenario was this bug raised for?
Additionally till that time, From some local testing I tried the following scenarios and had a couple of observations

Reduce UDF
When trying with a manually induced panic in the user code, we see the that the numa container restarts as well

	var counter = 0
	for range inputCh {
		counter++
	}
	panic(1)

Numa container then panics with the following error and restarts.
panic: Got an error while invoking ApplyReduce{error 26 0  gRPC client.ReduceFn failed, Retryable: error reading from server: EOF}

goroutine 191 [running]:
go.uber.org/zap/zapcore.CheckWriteAction.OnWrite(0x0?, 0x0?, {0x0?, 0x0?, 0xc00083a9e0?})
        /Users/skohli/go/pkg/mod/go.uber.org/zap@v1.26.0/zapcore/entry.go:196 +0x54
go.uber.org/zap/zapcore.(*CheckedEntry).Write(0xc0006ff110, {0x0, 0x0, 0x0})
        /Users/skohli/go/pkg/mod/go.uber.org/zap@v1.26.0/zapcore/entry.go:262 +0x24e
go.uber.org/zap.(*SugaredLogger).log(0xc0005a1218, 0x4, {0x0?, 0x0?}, {0xc0008c0ee0?, 0x0?, 0x0?}, {0x0, 0x0, 0x0})
        /Users/skohli/go/pkg/mod/go.uber.org/zap@v1.26.0/sugar.go:316 +0xec
go.uber.org/zap.(*SugaredLogger).Panic(...)
        /Users/skohli/go/pkg/mod/go.uber.org/zap@v1.26.0/sugar.go:159
github.com/numaproj/numaflow/pkg/reduce/pnf.(*ProcessAndForward).invokeUDF(0xc0003668c0, {0x2a78860, 0xc000672410}, 0x0?, 0xc0002f1b40, {0x4047617158?, 0xc000430790?})
        /Users/skohli/numa/numaflow/pkg/reduce/pnf/pnf.go:155 +0x39a
created by github.com/numaproj/numaflow/pkg/reduce/pnf.(*ProcessAndForward).AsyncSchedulePnF in goroutine 1
        /Users/skohli/numa/numaflow/pkg/reduce/pnf/pnf.go:131 +0x1f9

The behavior is similar for the python SDK where the numa container restarts because of the error is reduce, but due to the exception handling in the SDK we do not exit out and only propagate the error.
Do we want the Python UDF to restart/exit out in such a scenario as well?

Map UDF
For both the SDKs in a Map UDF if we induce a panic/exception in the user code. The Numa container treats that as a retry-able error and keeps trying the mapFn again without any restarts.

From a design perspective, is this the condition where we are expecting the numa container to restart in this scenario?
Currently we do not allow the user to propagate any error from their end, as a scenario we could think about that if required.
cc @vigith @yhl25 @whynowy

@kohlisid https://github.com/numaproj/numaflow/issues/1592 issue made us open the other one.

After checking the issue these are the points that we need to cover
Foremost, The main thing to consider is that in any scenario or error we should not have data loss.
Like updated in the previous comment, we can see that the condition is very well handled for map and reduce.
I verified the data loss condition for map today by adding a transient panic in the user code. The UDF container would restart and we were able to still see all the data in the sink after the processing starts again.
sink.log
Now considering a source, specifically a user defined source which is used here there are two points
1) On seeing an panic in the UD Source code, the UD source container should restart or not?
This behavior should be consistent for all the SDKs.
Ideally we should be restarting the UD Source container for handling the case where it can help to recover from any transient issues that could have occurred, if the user is not handling them explicitly. This would establish the gRPC connections, and if the user code has recovered we should be able to see the messages getting processed again.
This should be done for both ack and read.
If the issue is persistent, we would anyway get into a crashback loop and the data would not processed. The important points here are to log out the errors/exceptions properly so that the logs can be checked for the exact issues.
As seen in the above issue, we see that we are consuming the error and not restarting this should change. if the user has implemented exception handling in their code, that would be in their own accord.
If we do not restart we leave the onus on the Numa container to make sure that we are able to retry in case the error was transient.
Currently, we do have a mismatch in our SDKs for this behavior, I will create an issue to track and fix that.
2) The need for Numa to restart?
We should not need to restart the Numa container as we keep looping and keep reading the next batch.
In a case if we got some errors while reading, if there are any partial messages that were read out of the whole batch and we were even able to ack them, then the offsets would be updated correctly anyway.
In the other case even if there is an error with ack, As we keep reading in a loop untill explicitly stopped, we would request a reread of these same offsets and rely on Dedup while trying to write them again on the buffer if we had written them in the first iteration as well.
Though, there is an onus on the UD source writer to ensure this read/ack consistency in their code as well.
@whynowy Do you think we can keep some kind of rule or enforcement similar to what we were chatting about?
As an enhancement, we could add a retry mechanism on Ack on seeing an error. This could help for the cases where the ack did not go through because of a transient error. And then we would not need to retry the read for those messages again, reducing the dedup as well. We do not have that right now, was there a specific reason for this though?

As a next step if this is the behavior we want to go ahead with, We can confirm on this by creating a UD Source for Kafka, or using Nagas code along with a restart patch.
It would be good to check this for our inbuilt sources as well if we are covering acks/read correctly in such a scenario. And whats the expectation for the source types.
@whynowy @vigith @yhl25 Does this seem consistent with your understanding as well?

https://github.com/numaproj/numaflow-python/pull/160


Fix #2034, Perform autoswap on last deployment when there are multiple webhook triggers

Only last deployment would trigger autoswap, below deployment log are from a sequence of consecutive webhook triggeded deployment, and it end up two deployments, and  only the last deployment will trigger autoswap.
[
{
log_time: "2016-06-09T01:40:46.7414829Z",
id: "152386e8-3918-4082-85db-66c3ceeb9949",
message: "Updating submodules.",
type: 0,
details_url: null
},
{
log_time: "2016-06-09T01:40:46.8884516Z",
id: "98b8215c-56b6-4a8e-9a06-f00b55bceceb",
message: "Preparing deployment for commit id '5e5cc1dfc4'.",
type: 0,
details_url: null
},
{
log_time: "2016-06-09T01:40:47.170165Z",
id: "4000547a-cc5b-4870-b3e0-d534dbb84f55",
message: "Generating deployment script.",
type: 0,
details_url: "https://kudutry.scm.azurewebsites.net/api/deployments/5e5cc1dfc45e7779982907d6d3bcbf1f1aeb47ec/log/4000547a-cc5b-4870-b3e0-d534dbb84f55"
},
{
log_time: "2016-06-09T01:40:47.2651707Z",
id: "24335ab5-7768-44ec-b2e3-31db3ef57f09",
message: "Running deployment command...",
type: 0,
details_url: "https://kudutry.scm.azurewebsites.net/api/deployments/5e5cc1dfc45e7779982907d6d3bcbf1f1aeb47ec/log/24335ab5-7768-44ec-b2e3-31db3ef57f09"
},
{
log_time: "2016-06-09T01:42:02.8921909Z",
id: "62bd4945-3cde-4295-8468-a131c83b4aba",
message: "Running post deployment command(s)...",
type: 0,
details_url: null
},
{
log_time: "2016-06-09T01:42:03.0176962Z",
id: "fde50c62-cc0c-4f0f-a12e-ef3e6dd508c5",
message: "Deployment successful.",
type: 0,
details_url: null
},
{
log_time: "2016-06-09T01:42:05.6152969Z",
id: "2d14e0ed-432f-4cab-b15a-985afcda8b89",
message: "Requesting auto swap to slot - 'production' operation id - 'AUTOSWAPf495cba5-eca4-4b0b-8d3d-47cd551541a3' deployment id - '5e5cc1dfc45e7779982907d6d3bcbf1f1aeb47ec'",
type: 0,
details_url: null
}
]

[
{
log_time: "2016-06-09T01:39:08.6699873Z",
id: "63b879a7-fc59-45c7-818a-0da209a8a952",
message: "Updating submodules.",
type: 0,
details_url: null
},
{
log_time: "2016-06-09T01:39:08.763638Z",
id: "783ceb5b-d73e-421a-bfb2-1bfebce42d9d",
message: "Preparing deployment for commit id 'a74a0fd8b1'.",
type: 0,
details_url: null
},
{
log_time: "2016-06-09T01:39:09.0356331Z",
id: "1bad9fb3-cb96-46e6-911b-382cefe43719",
message: "Generating deployment script.",
type: 0,
details_url: "https://kudutry.scm.azurewebsites.net/api/deployments/a74a0fd8b1d1fbebad942a788ca67febe37467a8/log/1bad9fb3-cb96-46e6-911b-382cefe43719"
},
{
log_time: "2016-06-09T01:39:10.0201723Z",
id: "bc309b72-afdb-4225-9019-29a5ab76b486",
message: "Running deployment command...",
type: 0,
details_url: "https://kudutry.scm.azurewebsites.net/api/deployments/a74a0fd8b1d1fbebad942a788ca67febe37467a8/log/bc309b72-afdb-4225-9019-29a5ab76b486"
},
{
log_time: "2016-06-09T01:40:42.7940499Z",
id: "b8b8b33a-b2a8-4904-b926-f08ea7ab34a9",
message: "Running post deployment command(s)...",
type: 0,
details_url: null
},
{
log_time: "2016-06-09T01:40:43.0284176Z",
id: "340aaeb4-51d9-408d-b055-d0d792561bf6",
message: "Deployment successful.",
type: 0,
details_url: null
}
]

:shipit:


DRILL-3583: Added a deprecated UserException#build method to avoid fu…

…ture mishaps
@parthchandra please review.

Addressed Hakim's comments.

LGTM +1 (non-binding)

+1


Add support for testrunner configuration via vim-projectionist

It is now possible to configure testrunners via a vim-projectionis
configuration file. This allows for an easy per project basis
configuration of your testrunners.
This fixes #406
Make sure these boxes are checked before submitting your pull request:

[x] Update the README accordingly
[x] Update the Vim documentation in doc/test.txt

Thanks for submitting the pull request! I will try to find time soon to look at it in more detail.

This patch is not working for me. Here is my configuration:
{
  "*.spec.js": {
    "alternate": "{}.js",
    "test-runner": {
      "javascript": "jest"
    }
  }
}

The vim-test heuristic tries to run the karma test runner.

I have tested it mainly with gradle/maven as this was my usecase. With those you can set the g:test#java#runners variable to configure which runner to use. I just noticed that the js test runners try to detect which test framework you have installed via the projects package.json.
This was clearly an lack of testing on my side.
The question is how we should resolve this. Either we implement the check for the g:test#javascript#runner variable in the js test runners (and all the others) as well, or come up with some global mechanism to do this dynamically. And should it be possible to override the autodetection via the package.json?

The question is how we should resolve this. Either we implement the check for the g:test#javascript#runner variable in the js test runners (and all the others) as well, or come up with some global mechanism to do this dynamically. And should it be possible to override the autodetection via the package.json?

I think what you want is some logic that works like that this pseudo code:

if test-runner is defined in projections OR package.json contains blah then use this runner

Let me know if you need any help with this as I worked on the package.json logic

I would like to generalize the logic. It would be nice if each runner would define a method returning language it is for and a second one the name it has. Then we can filter all runners according to the projectionist values + return values of the new methods. The resulting runners can then be processed as before.
This way we would not break existing configurations (I hope i didn't miss something).

This is still a WIP but he new version now filters the runners before testing them. This should fix the issue with the nodejs runnres.
Another change is that the projectionis settings won't set global variables. This should prevent some strange side effects when using the projectionist settings (leaking of settings).
There is still some work to be done.

The code should probably be refactored a bit
Look through the code of all test runners and see if this change breaks anything

@lourenci could you retest if your usecase works?

@patrickpichler, for the test case I've posted it is ok. :) I'll use your branch in my daily routine and keep you posted on something wrong. Thank you.

After looking through the runners, I notice that quite a few are using
some global variables. This could lead to some strange behaviours. The
big issue is, that fixing most of this usages would break existing
workflows.
I think it would be best to add basic support for vim-projectionist with
this PR and introduce the other changes to the test runners in their own
PRs.

@janko could you maybe look over the code and provide some feedback?


Initial open-sourcing commit of the MultiValueDictionary

The MultiValueDictionary is an experimental collection that was first released the summer of 2014 as a Nuget package. This commit releases the source code of the MultiValueDictionary tied into .NET Core with the intention of it being considered as an addition to System.Collections.Generic in CoreFX.

All code is open sourced from the original package with only changes made to get it functioning. As such, some things will need to be changed to better match the style of CoreFX (e.g. the tests).
I based the csproj, project.json, folder structure, and strings.resx heavily on that of System.Collections.Generic in CoreFX so that they may be easily merged in the future. This is why Strings.resx has some strings that aren't used by the MVD
Addition of performance tests required an update of BuildTools from 70 to 107.
The MVD released earlier had tie-in functions to ILookup like ConvertToLookup. I removed those with the intention of adding them as extension functions in ILookup instead of being in MultiValueDictionary. The reason for this is that System.Collections.Generic shouldn't reference System.Linq but System.Linq can reference System.Collections.Generic.
The design decisions around the MVD were made at point where .NET was very different than it is today. Some things might be worth reconsidering now that .NET Core exists.

BTW, please feel free to merge in, just open an issue to discuss the two design points at the API review.

Thanks @KrzysztofCwalina will do


'Table.create' w/ WRITE_TRUNCATE issue

BigQuery
Linux Mint 18.3
Python 3.6.3

 Name: google-cloud-bigquery
 Version: 0.28.0
 Summary: Python Client for Google BigQuery
 Home-page: https://github.com/GoogleCloudPlatform/google-cloud-python
 Author: Google Cloud Platform
 Author-email<EMAIL_ADDRESS> License: Apache 2.0
 Location: /home/jason/virtualenvs/ds/lib/python3.6/site-packages
 Requires: google-auth, google-resumable-media, google-cloud-core, requests, google-api-core

Traceback (most recent call last):
  File "/home/jason/virtualenvs/ds/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line
2910, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-8-bdd446f5f7d8>", line 245, in <module>
    table = bq_client.create_table(table)
  File "/home/jason/virtualenvs/ds/lib/python3.6/site-packages/google/cloud/bigquery/client.py", line
264, in create_table
    method='POST', path=path, data=resource)
  File "/home/jason/virtualenvs/ds/lib/python3.6/site-packages/google/cloud/_http.py", line 293, in
api_request
    raise exceptions.from_http_response(response)
google.api_core.exceptions.Conflict: 409 POST
https://www.googleapis.com/bigquery/v2/projects/infusionsoft-looker-
poc/datasets/lead_scoring_phase_2/tables: Already Exists: Table infusionsoft-looker-
   poc:lead_scoring_phase_2.unconverted_leads

Below is a code snippet that shows how I attempt to set configs (maybe there is a better way, but I've found 3 or 4 different supposed answers on the net, none of which work. I've redacted the query and the schema as those shouldn't have anything to do with the issue. Thanks in advance for any assistance you can provide!

from google.cloud import bigquery as bq

#### CONFIGURATIONS ####################################################
########################################################################
# general configs
TEST=False

# bq configs

# schema for the table we're updating
BQ_SCHEMA = [
    ...
]

BQ_QUERY = """
...
"""
#### CREATE THE BQ TABLE ###############################################
########################################################################
# create a bq client to connect via
bq_client = bq.Client()

# get a reference to the existing dataset
dataset_id = "lead_scoring_phase_2"
dataset_ref = bq_client.dataset(dataset_id)
dataset = bq.Dataset(dataset_ref)

# create the table to today's data using the specified schema
table_id = "unconverted_leads"
table_ref = dataset.table(table_id)
table = bq.Table(table_ref,
                 schema=BQ_SCHEMA)
table = bq_client.create_table(table)

# configure the query job
job_config = bq.QueryJobConfig()
# set the output table
output_dataset_ref = bq_client.dataset(dataset_id)
output_table_ref = output_dataset_ref.table(table_id)
job_config.destination = output_table_ref

# query configs
# overwrite previous results
job_config.write_disposition = "JOB_WRITE_TRUNCATE"
# use standard sql
job_config.use_legacy_sql = False
# allow large results
job_config.allow_large_results = True
# do not flatten results
job_config.flatten_results = False
# don't use query caching
job_config.use_query_cache = False
# set query priority; choices {"BATCH", "INTERACTIVE"}
job_config.priority = "INTERACTIVE"
# # dry run for testing
# if TEST is True:
#     job_config.dry_run = True
# else:
#     job_config.dry_run = False

# run the query
query_job = bq_client.query(BQ_QUERY,
                            job_config=job_config)

# batched jobs may not be run immediately but interactive should,
# but we still need to wait
while query_job.done() is False:
    print("waiting for query to finish.")
    time.sleep(3)
    continue
print("query finished.")

Using GitHub flavored markdown can help make your request clearer.
See: https://guides.github.com/features/mastering-markdown/

@jmwoloso Two issues:

Your code is blowing up in the call to bq_client.create_table with a 409 Confict error, because the table already exists.  Unlike with jobs which implicitly create tables, there is no WRITE_DISPOSITION configuration for the call.  Just wrap the call in  a try: ... except: pass block, e.g.:

from google.api_core import exceptions
...
    try:
        table = bq_client.create_table(table)
    except exceptions.Conflict:
        pass

Further down, you configure the query job with an invalid string constant for the write disposition.  The actual literal is 'WRITE_TRUNCATE', but you would be better off using the enumerated constant, e.g.:
job_config.write_disposition = bq.WriteDisposition.WRITE_TRUNCATE

Similarly for the priority:
job_config.priority = bq.QueryPriority.INTERACTIVE

@tseaver Hello and thank you for the response. I get the following traceback when I use the WRITE_TRUNCATE constant.
Traceback (most recent call last):
  File "/home/jason/virtualenvs/ds/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2910, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-2-63d3aa69cff0>", line 263, in <module>
    job_config.write_disposition = bq.WriteDisposition.WRITE_TRUNCATE
AttributeError: module 'google.cloud.bigquery' has no attribute 'WriteDisposition'

@jmwoloso Could you try upgrading bigquery to 0.31.0 via some sort of pip install -U?

@chemelnucfin Looks like those constants were added to the top-level package after bigquery-0.31.0 was released (and we have no release which includes them).
@jmwoloso You could import them via the jobs module, e.g.:
from google.cloud.bigquery import jobs
...
job_config.write_disposition = jobs.WriteDisposition.WRITE_TRUNCATE
...
job_config.priority = jobs.QueryPriority.INTERACTIVE

updated to 0.31.0:
bq.__version__
Out[4]: '0.31.0'

then:
from google.cloud.bigquery import jobs

results in:
Traceback (most recent call last):
  File "/home/jason/virtualenvs/ds/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2910, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-6-c21eba2fd003>", line 1, in <module>
    from google.cloud.bigquery import jobs
ImportError: cannot import name 'jobs'

@tseaver I figured it out. The import statement should be:
from google.cloud.bigquery import job

or it can be accessed with my original import via:
# overwrite previous results
job_config.write_disposition = bq.job.WriteDisposition.WRITE_TRUNCATE

ditto for priority
thanks again for your help. all works now.


Missing code for chapter 12. Cloud Native Batch

Could the code examples for chapter 12. Cloud Native Batch be added please?

Sorry about that. You can find my normal cloud native batch examples here: https://github.com/mminella/cloud-native-batch


Add NPM Keywords

I think important things reported here are still missing:

Keywords are missing.

Originally posted by @omitar in https://github.com/oasislabs/oasis.js/issues/273#issuecomment-530670501

Closing this. Feel free to re-open with new keyword suggestions.


Visual issues with the plugin section and just the whole window.

Upgraded my pc to Windows 11 and this started happening, anyone any ideas?
Everything is up-to-date tho all software, the system itself.
Tried different compatibility settings for the client, nothing seems to work.

I'm retarded, I missed the whole issue in the list read over it, sorry!
Use this issue for further notice!
https://github.com/runelite/runelite/wiki/Disable-Hardware-Acceleration


chore: remove orphan webpack.common.js, fixup 01df30c

When bennyp asked on Polymer Slack "Do you have another webpack config at play?" https://polymer.slack.com/archives/C03PF4L4L/p1573397539207100?thread_ts=1573317952.153300&cid=C03PF4L4L

Thanks! The setup needs to be updated a lot anyways. Not sure when I get to it.

Thanks! The setup needs to be updated a lot anyways. Not sure when I get to it.

:+1: good to know you have improvement ideas. Do you think you could list some in plain text? Maybe our team can file additional PRs for at least some of it, since we're still actively using your Aybolit build stack - it's simple and it works, and nothing obviously better has really surfaced yet. Even though many other frameworks are now converting towards LitElement (example https://github.com/boltdesignsystem/bolt/pull/1540), so maybe something migration worthy will appear soon.


"code" command-line utility isn't restoring the previous session

VSCode Version: 1.41.1
OS Version: Windows 10

When I'm done for the day I just shutdown without closing code and let Windows shutdown close everything for me. The next day I'll run start /B "" code path/to/my/project as part of a batch file and vscode will open my directory, but won't have any of my previous tabs open.
Steps to Reproduce:

Open folder in VSCode using start /B "" code path/to/my/project. Open tabs and use normally.
Shutdown computer without manually closing VSCode. Let Windows shutdown process close VSCode.
Restart computer
Reopen folder in VSCode using start /B "" code path/to/my/project. Previous session tabs are not restored.

I've checked similar issues to this and have set Hot Exit to onExitAndWindowClose, but the problem still occurs.

Please remove it immediately and make it your top priority. To me this is almost equally offensive as a swastika.

He think it's funny to imitate this.

/duplicate https://github.com/microsoft/vscode/issues/12058


[OTHER]  /tests/profile.spec.js #9384

Is this a unique feature?

[X] I have checked "open" AND "closed" issues and this is not a duplicate

Is your feature request related to a problem/unavailable functionality? Please describe.
We want to tests if the persisting click count is correct in the profile links.
Proposed Solution
`import { Profile, Link } from "@models/index";
test("Link clicks increase", async ({page}) => {
await connectMongo();
await page.goto("/eddiejaoude");
const startingLink = await Link.findOne({  url: "https://twitter.com/eddiejaoude" })
const previousClickCount = startingLink.clicks;
console.log("previousClickCount", previousClickCount)
const profileLink = page.locator('a').filter({ hasText: 'Twitter: Follow me' })
await profileLink.click();
await page.waitForTimeout(1000);
const currentLink = await Link.findOne({ url: "https://twitter.com/eddiejaoude" })
expect(currentLink.clicks).toEqual((previousClickCount + 1));
});
`
Screenshots
No response
Do you want to work on this issue?
Yes
If you want to work on this issue...
The following tests confirms that the click count that is persisted actually updates and is correct by simulating real user interaction with our application.

test("Link clicks increase", async ({page}) => {
  await connectMongo();
  await page.goto("/eddiejaoude");

  const startingLink = await Link.findOne({  url: "https://twitter.com/eddiejaoude" })

  const previousClickCount = startingLink.clicks;
  console.log("previousClickCount", previousClickCount)

  const profileLink = page.locator('a').filter({ hasText: 'Twitter: Follow me' })

  await profileLink.click();
  await page.waitForTimeout(1000);
  const currentLink = await Link.findOne({ url: "https://twitter.com/eddiejaoude" })

  expect(currentLink.clicks).toEqual((previousClickCount + 1));
});
```

I am closing this Issue as the PR for it has been merged.


How to do auth for public buckets

Environment details

OS: OSx 10.13.6
Node.js version: 12.2.0
npm version: 6.9.0
gcp-metadata version: 1.0.0

Steps to reproduce
We are using google cloud storage SDK to fetch object keys from any public bucket in an electron-based app. The code snippet that we have is-
const gcs = new Storage({
    projectId
  });
  const objects = await gcs.bucket(bucketName).getFiles();
  return objects[0];

Private buckets work fine where we also pass the services.json. Public buckets work with same code as above in dev mode but in prod builds we get the following error-
GET http://metadata.google.internal./computeMetadata/v1/instance net::ERR_NAME_NOT_RESOLVED
Error: Unexpected error determining execution environment: Failed to fetch
    at GoogleAuth.<anonymous> (/Users/ritikrishu/Documents/Projects/sixgill/hl-opencv/dist/mas-dev/HyperLabel.app/Contents/Resources/app.asar/node_modules/google-auth-library/build/src/auth/googleauth.js:164)
    at Generator.throw (<anonymous>)
    at rejected (/Users/ritikrishu/Documents/Projects/sixgill/hl-opencv/dist/mas-dev/HyperLabel.app/Contents/Resources/app.asar/node_modules/google-auth-library/build/src/auth/googleauth.js:20)

Also, I wonder if the host name here is correct, https://github.com/googleapis/gcp-metadata/blob/aa708dd9788cf12e084be1a9bdfe8594288710ae/src/index.ts#L12. http://metadata.google.internal does not look right.
Thanks!

it works for me as well, in dev env. But in prod builds, it doesn't.
I'll try to give you a debuggable sample soon.

@ritikrishu is your prod environment running under a proxy? This caused problems in another issue here

@ritikrishu is this still an issue? I'm going to close since I couldn't reproduce, but I'm happy to re-open if we can get more information. Thanks!


Add: Custom tags and prefix in Prometheus Mixin

Add some customization like in kubernetes-mixin.
We could use a configuration like that :
{
  _config+:: {
    // prometheusSelector is inserted as part of the label selector in
    // PromQL queries to identify metrics collected from Prometheus
    // servers.
    prometheusSelector: 'job="prometheus"',

    // prometheusHAGroupLabels is a string with comma-separated labels
    // that are common labels of instances belonging to the same
    // high-availability group of Prometheus servers, i.e. identically
    // configured Prometheus servers. Include not only enough labels
    // to identify the members of the HA group, but also all common
    // labels you want to keep for resulting HA-group-level alerts.
    //
    // If this is set to an empty string, no HA-related alerts are applied.
    prometheusHAGroupLabels: '',

    // prometheusName is inserted into annotations to name the Prometheus
    // instance affected by the alert.
    prometheusName: '{{$labels.instance}}',
    // If you run Prometheus on Kubernetes with the Prometheus
    // Operator, you can make use of the configured target labels for
    // nicer naming:
    // prometheusNameTemplate: '{{$labels.namespace}}/{{$labels.pod}}'

    // prometheusHAGroupName is inserted into annotations to name an
    // HA group. All labels used here must also be present in
    // prometheusHAGroupLabels above.
    prometheusHAGroupName: '{{$labels.job}}',

    // nonNotifyingAlertmanagerRegEx can be used to mark Alertmanager
    // instances that are not part of the Alertmanager cluster
    // delivering production notifications. This is important for the
    // PrometheusErrorSendingAlertsToAnyAlertmanager alert. Otherwise,
    // a still working test or auditing instance could mask a full
    // failure of all the production instances. The provided regular
    // expression is matched against the `alertmanager` label.
    // Example: @'http://test-alertmanager\..*'
    nonNotifyingAlertmanagerRegEx: @'',

    grafana: {
      prefix: 'Prometheus / ',
      tags: ['prometheus-mixin'],
      // The default refresh time for all dashboards, default to 60s
      refresh: '60s',
    },
  },
}

Note: The CI failure should be fixed by running make fmt.

If this is in line with what the K8s mixin is doing, fine with me.
@metalmatze @paulfantom @povilasv, as the busiest recent contributors to the K8s mixin, what do you think, is this creating better alignment?

Thanks everyone.

Don't suppose this is still fresh enough to rework and have a more specific grafana keyword to avoid overlap with main grafana configs.
See thread from mention for more details.
https://github.com/brancz/kubernetes-grafana
Perhaps changing:
_config.grafana
to
_config.mixinGrafana
?

There are ways to keep the _config from different mixins separate.
https://github.com/grafana/jsonnet-libs/blob/master/prometheus-ksonnet/mixins.libsonnet is an example how we do it at Grafana Labs.
I assume you run into issues with the Prometheus operator? Perhaps @brancz or @paulfantom have some tricks up their sleeves.
WRT rework: There is a vague master plan in some brains to rework all the mixins to work more "mixin-like" and avoid fields in a _config map. We still have to flesh this out and suggest to the masterminds behind mixins.

Yeah, this was reported in the kube-operator/kube-prometheus repo, which is pulling in both this repo and brancz/kubernetes-grafana.
It was reported on older releases. Has not been confirmed on master afaik.
Will review mixins for better workaround than overwriting lib. Thanks!

as @toscott mentioned, I reported this on kube-prometheus ( https://github.com/prometheus-operator/kube-prometheus/issues/847 ).
Since this change breaks the out of the box behavior I assume this needs to be fixed there as well (instead of leaving it to the users).
I'm not sure how to apply what @beorn7 shared in a kube-prometheus environment.

It's not as bad as I described it in this issue anymore, but there is still some left to refactor in kube-prometheus indeed: https://github.com/prometheus-operator/kube-prometheus/issues/566


735 alphabetical dropdowns

Resolves #735
Description
This PR puts all relevant dropdown lists in the diaper app into alphabetical order.
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
We tested locally in the browser.

@Nirvikalpa108 we need to fix (or have rubocop fix) the style violations.


Finally a React like library for Android

This is the react I have been looking for for my Flux.

Wow! And I have been thinking about bringing Flux architecture to android+Anvil somehow: https://github.com/zserge/anvil/issues/7#issuecomment-90494380
I will definitely look at DroidFlux.
Btw, if you want to submit an example of DroidFlux+Anvil - please do a pull request to zserge/anvil-examples repo!

I will do so. Still wrapping my head around Anvil and finishing up DroidFlux in the interim as well.


Inconsistent product naming

I find it a bit confusing that this wallet app has inconsistent naming across different touch-points:

the original announcement used "Flow Reference Wallet": https://flow.com/post/flow-reference-wallet-unlocking-flows-potential-with-a-fully-open-source-reference-wallet-for-builders
the documentation uses "Flow Reference Wallet": https://frw.gitbook.io/doc
the chrome extension is named "Flow Reference": https://chrome.google.com/webstore/detail/flow-reference/hpclkefagolihohboafpheddmmgdffjm
the apple app is named "Flow Ref": https://apps.apple.com/ca/app/flow-ref/id1644169603
the new website calls it "Flow Core Wallet": https://core.flow.com

So there are at least a few variations (some just abbreviations, but still) of the name:

Flow Reference Wallet
Flow Reference
Flow Ref
Flow Core Wallet

I guess this inconsistency is probably due to some kind of naming change. I'd think it'd be great to consolidate the naming as much as possible, to avoid confusion. Even I'm not sure what to call it, but "Flow Core Wallet" seems to be the main name, I also like it the most.
Other than that, I think this is an awesome wallet app, the best there is on Flow!

cc: @JeffreyDoyle


Dispatch tasks to right executors that have tasks' input HDFS data

What changes were proposed in this pull request?
CC @foxish @ash211 @tnachen
Fixes the task dispatching layer problem discussed in #206. But only the node locality part for now:

Task dispatching: Once it gets executors, Spark Driver will dispatch tasks to executors. For each task, the Driver tries to send it to one of right executors that has the partition of the task on local disk or local rack. For this, the Driver builds the hosts-to- tasks and racks-to-tasks mapping with the datanode info from the namenode, and later looks up the maps using executor host names.

This layer is broken. Spark Driver will build the mapping using the data node names. Then it will look up the maps using the executor pod host names, which will never match.

With this change, we now translate executor pod IPs to physical cluster node names and use the physical names for looking up the hosts-to-tasks map. Note this patch relies on #214 that switches executors to use pod IPs for registration.
How was this patch tested?
Ran the DFSReadWriteTest job with the combined patch of this and #214. The driver log says we successfully found the preferred tasks to the right executors. Task 0 to executor pod <IP_ADDRESS> on kube-n4 and Task 1 to executor pod <IP_ADDRESS> on kube-n7.

2017-04-02 16:41:39 INFO  KubernetesClusterManager$$anon$1$$anon$2:54 - Got preferred task list ArrayBuffer(0) for executor host <IP_ADDRESS> using cluster node name Some(kube-n4)
2017-04-02 16:41:39 INFO  KubernetesClusterManager$$anon$1$$anon$2:54 - Starting task 0.0 in stage 1.0 (TID 2, <IP_ADDRESS>, executor 1, partition 0, NODE_LOCAL, 6156 bytes)
2017-04-02 16:41:39 INFO  KubernetesClusterManager$$anon$1$$anon$2:54 - Got preferred task list ArrayBuffer(1) for executor host <IP_ADDRESS> using cluster node name Some(kube-n7)
2017-04-02 16:41:39 INFO  KubernetesClusterManager$$anon$1$$anon$2:54 - Starting task 1.0 in stage 1.0 (TID 3, <IP_ADDRESS>, executor 2, partition 1, NODE_LOCAL, 6156 bytes)

Looks like there's still a scalastyle failure on the import ordering.  See the "Imports" section of http://spark.apache.org/contributing.html for the expected ordering

@ash211

This looks like it might also improve node locality for two executor pods colocated on the same k8s node.

Ah, I didn't think about that. Do you have an example in your mind for such a scenario? Maybe external shuffle service?
One thing to note is that there are other locality-related maps in the base class. For instance, pendingTasksForExecutor below is keyed by executor IDs, not by pod IPs. We may look at these together for other locality related scenarios:
  private val pendingTasksForExecutor = new HashMap[String, ArrayBuffer[Int]]

  // Set of pending tasks for each host. Similar to pendingTasksForExecutor,
  // but at host level.
  private val pendingTasksForHost = new HashMap[String, ArrayBuffer[Int]]

  // Set of pending tasks for each rack -- similar to the above.
  private val pendingTasksForRack = new HashMap[String, ArrayBuffer[Int]]

I'm not entirely sure just overriding getPendingTasksForHost is enough though, have you observed that with this change locality is enabled for within-node pods and disabled for cross-node pods?

I tested this with a Spark DFSReadWriteTest job, which writes to HDFS and then reads. I observed that reader tasks go to right executors who wrote the data to the local disks. But I didn't pay attention to the multiple executor pods on the same node scenario.  The job used only two executors and they were on different nodes.

@ash211

Looks like there's still a scalastyle failure on the import ordering. See the "Imports" section of http://spark.apache.org/contributing.html for the expected ordering

Thanks for the pointer. The ordering finally makes sense to me.

Thanks for the reviews so far. I addressed the comments in the latest diff. PTAL.
In the meantime, I'll run the DFSReadWriteTest job again to see if it still works :-)

Doing a bit more testing, I have uncovered a bug in this change. The addition of executor pod watcher thread will make the driver hang in case error was happening.
I was accidentally running DFSReadWriteTest job with an existing directory given as a command line argument.

$ /usr/local/spark-on-k8s/bin/spark-submit --verbose --class org.apache.spark.examples.DFSReadWriteTest --conf spark.app.name=spark-dfstest --conf spark.executor.instances=2 --conf spark.hadoop.fs.defaultFS=hdfs://hdfs-namenode-0.hdfs-namenode.kube-system.svc.cluster.local:8020 /usr/local/spark-on-k8s/examples/jars/spark-examples_2.11-2.1.0-k8s-0.1.0-SNAPSHOT.jar /etc/hosts /user/root/dfstest/13

The driver tries to write to the dir and then crashed complaining about the existing dir:

Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://hdfs-namenode-0.hdfs-namenode.kube-system.svc.cluster.local:8020/user/root/dfstest/13/dfs_read_write_test already exists
at org.apache.hadoop.mapred.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:132)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1.apply$mcV$sp(PairRDDFunctions.scala:1191)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1.apply(PairRDDFunctions.scala:1168)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopDataset$1.apply(PairRDDFunctions.scala:1168)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
at org.apache.spark.rdd.RDD.withScope(RDD.scala:362)
at org.apache.spark.rdd.PairRDDFunctions.saveAsHadoopDataset(PairRDDFunctions.scala:1168)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopFile$4.apply$mcV$sp(PairRDDFunctions.scala:1071)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopFile$4.apply(PairRDDFunctions.scala:1037)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopFile$4.apply(PairRDDFunctions.scala:1037)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
at org.apache.spark.rdd.RDD.withScope(RDD.scala:362)
at org.apache.spark.rdd.PairRDDFunctions.saveAsHadoopFile(PairRDDFunctions.scala:1037)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopFile$1.apply$mcV$sp(PairRDDFunctions.scala:963)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopFile$1.apply(PairRDDFunctions.scala:963)
at org.apache.spark.rdd.PairRDDFunctions$$anonfun$saveAsHadoopFile$1.apply(PairRDDFunctions.scala:963)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
at org.apache.spark.rdd.RDD.withScope(RDD.scala:362)
at org.apache.spark.rdd.PairRDDFunctions.saveAsHadoopFile(PairRDDFunctions.scala:962)
at org.apache.spark.rdd.RDD$$anonfun$saveAsTextFile$1.apply$mcV$sp(RDD.scala:1488)
at org.apache.spark.rdd.RDD$$anonfun$saveAsTextFile$1.apply(RDD.scala:1467)
at org.apache.spark.rdd.RDD$$anonfun$saveAsTextFile$1.apply(RDD.scala:1467)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151)
at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112)
at org.apache.spark.rdd.RDD.withScope(RDD.scala:362)
at org.apache.spark.rdd.RDD.saveAsTextFile(RDD.scala:1467)
at org.apache.spark.examples.DFSReadWriteTest$.main(DFSReadWriteTest.scala:113)
at org.apache.spark.examples.DFSReadWriteTest.main(DFSReadWriteTest.scala)

And the driver just hangs there. Looking at what threads are still active in the driver JVM, you can see OkHttp threads associated with the watcher:

bash-4.3# jstack 50 | grep tid= | grep -v daemon
"DestroyJavaVM" #67 prio=5 os_prio=0 tid=0x00007f1cd46d9800 nid=0x34 waiting on condition [0x0000000000000000]
"OkHttp WebSocket https://kubernetes.default.svc/..." #51 prio=5 os_prio=0 tid=0x00007f1cd401e000 nid=0x63 waiting on condition [0x00007f1cafbaa000]
"OkHttp https://kubernetes.default.svc/..." #50 prio=5 os_prio=0 tid=0x00007f1cd265a000 nid=0x62 runnable [0x00007f1caf53e000]
"VM Thread" os_prio=0 tid=0x00007f1ccf81d800 nid=0x39 runnable
"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007f1ccf6fc000 nid=0x35 runnable
"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007f1ccf6fe000 nid=0x36 runnable
"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007f1ccf6ff800 nid=0x37 runnable
"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007f1ccf701800 nid=0x38 runnable
"VM Periodic Task Thread" os_prio=0 tid=0x00007f1ccf8e2800 nid=0x41 waiting on condition

FYI, befor this change, you would see the shutdown hook kicking in after such an error and clean-up happens normally:

2017-04-07 01:19:14 INFO  SparkContext:54 - Invoking stop() from shutdown hook
2017-04-07 01:19:14 INFO  ServerConnector:306 - Stopped ServerConnector@72f46e16{HTTP/1.1}{<IP_ADDRESS>:4040}
...
2017-04-07 01:19:15 INFO  KubernetesSparkRestServer$KubernetesSubmitRequestServlet:54 - Received stop command, shutting down the running Spark application...
2017-04-07 01:19:15 INFO  ShutdownHookManager:54 - Shutdown hook called
2017-04-07 01:19:15 INFO  ShutdownHookManager:54 - Deleting directory /tmp/spark-ba801dd3-4ee5-4832-8e80-f86798f1961a

I wonder how we can handle this bug? I was looking for a way to launch OkHttp threads as daemon thread. So far no luck.

Fixed the driver hanging issue in two places.

Supplies a custom thread factory that sets watcher threads to be daemons.
Sets the ping period to zero. This avoids launching the "OkHttp WebSocket" ping thread, which is not a daemon (And there is no way to set it to be a daemon. We may want to change the upstream code)

With this, we don't see OkHttp threads in the grep output below:

bash-4.3# jstack 49 | grep tid= | grep -v daemon
"main" #1 prio=5 os_prio=0 tid=0x00007f2291d64000 nid=0x33 in Object.wait() [0x00007f229119c000]
"VM Thread" os_prio=0 tid=0x00007f2291e9c800 nid=0x38 runnable
"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007f2291d7b000 nid=0x34 runnable
"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007f2291d7d000 nid=0x35 runnable
"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007f2291d7e800 nid=0x36 runnable
"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007f2291d80800 nid=0x37 runnable
"VM Periodic Task Thread" os_prio=0 tid=0x00007f2291f60800 nid=0x40 waiting on condition

@ash211 @tnachen This PR is ready for another look. PTAL if I addressed your comments properly. Thanks!

Thanks @ash211 for the review. I addressed remaining comments. So maybe good to merge after Jenkins passes.

My bad, I resolved the merge conflict incorrectly.

@mccheah you mentioned you wanted to look at this a last time before merging?

It would be nice to have unit tests around this logic, but KubernetesClusterSchedulerBackend might not lend itself to be easily unit-tested right now. We can follow up on that in a separate patch - we can refactor the scheduler backend and test it in such a future diff.

@mccheah Thanks for the review. I was on the borderline for many things you commented on. Good to learn what we prefer.
And I agree unit tests will be nice for this PR. I'll work on that in a followup.

rerun unit tests please

Thanks for the reviews. Maybe it's ready for merge?

@ash211 @mccheah I wonder if we have more comments to address. This PR itself is not urgent, but it has overlapping code with other PRs like #244. Merging in this earlier may help settle other PRs as well.

Sorry for the delay here @kimoonkim -- this still looks good so I'll merge when this latest build passes

@ash211 Thanks for the merge!

Filed square/okhttp issue #3339 for the web socket ping thread.


Support for new ESP32 USB Soft Host Library ?

Hi YuuichiAkagawa
Thank you for your time working on this project
It works really well for my ESP32 - USB Host Shield Mini 2.0 setup
However there is new library from sdima1357, make it possible to connect ESP32 directly to USB devices without the USB Host Shield:
https://github.com/sdima1357/esp32_usb_soft_host
And an Arduino version here:
https://github.com/tobozo/ESP32-USB-Soft-Host
So is it possible to make your Arduino-UHS2MIDI library work in combination with this new ESP32-USB-Soft-Host library ? If you can it would be much appreciated !
Thank you

So is it possible to make your Arduino-UHS2MIDI library work in combination with this new ESP32-USB-Soft-Host library ?

No. This library only works with the USB Host Shield Library 2.0.
You will need to develop your own MIDI class driver and MIDI transport layer.

Ah ok thank you !


Activating Open Collective

Hi, I'm making updates for Open Collective. Either you or a supporter signed this repo up for Open Collective. This pull request adds backers and sponsors from your Open Collective https://opencollective.com/crystal ❤
It adds two badges at the top to show the latest number of backers and sponsors. It also adds placeholders so that the avatar/logo of new backers/sponsors can automatically be shown without having to update your README.md. [more info]. See how it looks on this repo.
You can also add a "Donate" button to your website and automatically show your backers and sponsors there with our widgets. Have a look here: https://opencollective.com/widgets
P.S: As with any pull request, feel free to comment or suggest changes. The only thing "required" are the placeholders on the README because we believe it's important to acknowledge the people in your community that are contributing (financially or with code!).
Thank you for your great contribution to the open source community. You are awesome! 🙌
And welcome to the open collective community! 😊
Come chat with us in the #opensource channel on https://slack.opencollective.com - great place to ask questions and share best practices with other open source sustainers!

I'd leave off making any changes for now, until @bcardiff or someone at manas clarifies how they want to handle this. There's still bountysource and sponsors on either platforms should maintain parity.

Any update?

The sponsors are listed in https://crystal-lang.org/sponsors/ and link is included in the readme.
Since there are other means to do money contributions we think is best to handle them as they are in the website.
My apologies for never replying to this PR.


Edit: MTV (Vietnam)

Channel ID (required)
MTV.vn
Channel Name
MTV (Vietnam)
Alternative Names
No response
Network
No response
Owners
Paramount Networks EMEAA; IMC Group
Country
VN
Subdivision
No response
City
No response
Broadcast Area
c/VN
Languages
vie
Categories
Music
NSFW
None
Launched
2011-07-01
Closed
2023-01-01
Replaced By
No respone
Website
http://mtvwe.com
Logo
https://i.postimg.cc/bN5xXtg1/1703289379082.png
Notes
No response

Please update your request:

category name should be in lowercase
the size of the logo should not exceed 512x512px

https://github.com/iptv-org/database/blob/master/CONTRIBUTING.md#channels


Fixed broken build (compile level). Added SilverWare modules to BOM.

Hi,
Can we try to stabilize SilverWare build in the first place? Ideally also add the Travis CI build.
For now, I have fixed the compilation errors.
Cheers!

Thank you for doing that. This is my goal, however, too many commitments you know ;-) I have a dedicated time to concentrate on it now.


No messages when I runing kong command

os: centos7
kong: v1.1.2

$ which kong
/usr/local/bin/kong

$ kong --help
# no messages
$ echo $?
4

$ kong version
# no messages
$ echo $?
4

$ kong
# no messages
$ echo $?
4

What problems with my kong application?

$ cat /usr/local/bin/kong
#!/usr/bin/env /usr/local/openresty/bin/resty

pcall(require, "luarocks.loader")

package.path = (os.getenv("KONG_LUA_PATH_OVERRIDE") or "") .. "./?.lua;./?/init.lua;" .. package.path

require("kong.cmd.init")(arg)

I'm unable to reproduce
yum update -y
yum install -y wget
wget https://bintray.com/kong/kong-rpm/rpm -O bintray-kong-kong-rpm.repo
export major_version=`grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release | cut -d "." -f1`
sed -i -e 's/baseurl.*/&\/centos\/'$major_version''/ bintray-kong-kong-rpm.repo
mv bintray-kong-kong-rpm.repo /etc/yum.repos.d/
yum update -y
yum install -y kong
kong version
1.1.2
kong version --vv
2019/05/09 15:54:35 [verbose] Kong: 1.1.2
2019/05/09 15:54:35 [debug] ngx_lua: 10013
2019/05/09 15:54:35 [debug] nginx: 1013006
2019/05/09 15:54:35 [debug] Lua: LuaJIT 2.1.0-beta3
1.1.2
kong --help
No such command: --help

Usage: kong COMMAND [OPTIONS]

The available commands are:
 check
 config
 health
 migrations
 prepare
 quit
 reload
 restart
 roar
 start
 stop
 version

Options:
 --v              verbose
 --vv             debug

cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
uname -a
Linux 04c78c6a5df8 4.4.0-1079-aws #89-Ubuntu SMP Tue Mar 26 15:25:52 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

@hutchic ，The means that after I installed Kong according docs, no responsing to running it, no messages to display, no error to show.
How strange! I met this problem for the first time. Everything is ok about installing.
So, I echo $?, $? == 4.

try --vv see if it will give us any debug output

Also no messages to display:
$ kong -vv
$ echo $?
4

I'm not sure what else to do I can successfully install and run Kong using the exact sequence I listed (and not seeing similar reports to this). Can you list the full output of how you installed / setup Kong? Can you try a new server / clean slate?

@hutchic  I did this on other machine，it's ok. So it's not the issue of Kong, it's the problem of my machine.


Bring cubelist "extract_strict" into line with other Iris methods

There's a tweak to CubeList.extract_strict which makes it return a single cube as it is, instead of return a "list of one cube".
We just documented this more fully
But, as mentioned there I don't personally like returning different types of object from different operations, which I think is a bit of an anti-pattern...
IIRC this is why we have provided other functions in multiple convenience versions,
like "load or load_cube" and "cube.coords or cube.coord"  : these forms combine convenience + syntactic elegance with better clarity as to the exact function + interface.
Even more relevant, right here in CubeList, we have merge() / merge_cube() and concatenate / concatenate_cube.
In this case, there is a bit of an obstacle in the dual choice between "cube or cubes", and "strict or not".  I guess we are not going to have all of "extract, extract_strict, extract_cube, extract_cube_strict" ...
To be definite, I propose we should drop extract_strict altogether,
and replace it with extract_cube and extract_cubes.
I think that works, and would be much more in line with the other methods.
So, for examples of usage change :

extract_strict(some_constraints)  -->  extract_cubes(some_constraints).
extract_strict(one_constraint)  -->  extract_cube(one_constraint).

extract_cubes would also be consistent with load_cubes :+1:

#3715 addresses


feat: Implement codegen for source verification providers

Similar to #47  but with from a branch in hookdeck/terraform-provider-hookdeck instead of the branch from my fork.

hey @leggetter, let me know if there's any blocker from this PR before we can merge? Would love to avoid conflicts in case the SDK upgrade is bigger than expected, if possible.


Server Inventory-file not documented

This key error is logged when using a modification of the example.yaml as the genisys config

File is no longer required with MeteorJS frontend.


Remove copy of not available go.sum in Dockerfile

thx for that!
the build images are currently being pushed
also did a change in the skaffold file:
 local:
    useDockerCLI: true

this eases the usage on m1 machines, allowing you to configure the target platform
export DOCKER_DEFAULT_PLATFORM=linux/amd64
skaffold run


Ils parlent de nous section edit

J'ai changed le config.yml pour ajouter ce lien https://www.techniques-ingenieur.fr/actualite/articles/comment-lia-permet-de-detecter-plus-rapidement-les-incendies-129238/?utm_source=linkedin&utm_medium=social&utm_campaign=72-WM-FY1LKDN&utm_content=ap_qgnbyezfjr et ce logo https://cdn.techniques-ingenieur.fr/lucy/ti/cdn.prod.v2.1.0/images/logo-eti.png

Hi there ! Thank you for your quick PR !
Before merging, could you just add a screenshot here to see how it render  ?
Thanks !

Hi there ! Thank you for your quick PR !
Before merging, could you just add a screenshot here to see how it render ?
Thanks !

Hi there ! Thank you for your quick PR !
Before merging, could you just add a screenshot here to see how it render ?
Thanks !

Let me know if you'd like more changes.


Conditional block not stripped if there are conditions inside of it?

I have a simple example, where my class derives from Resource.
It has a function like this:
func _init() -> void:
	if Engine.is_editor_hint():
		if type_exists("EditorInterface") and EditorInterface.has_method("get_inspector"):
			var selection = EditorInterface.get_inspector().get_edited_object()
			print(selection.name)

But the exported build is still throwing an error about EditorInterface not existing, meaning that code is still being included.
If I don't have that inner condition, then that is_editor_hint() block gets excluded fine, I tried with just print() inside there instead.
Is this feature not supposed to strip everything within the if Engine.is_editor_hint(): conditional block?
I also tried just stripping the function using the #~if OS.has_feature("my_feature") option but I guess it can only strip top-level variables and not functions or code inside of functions?
Thanks!

@Invertex Hello, thanks for your question!
I can't reproduce this locally, the plugin handles it correctly:
func _init() -> void:
    if Engine.is_editor_hint():
        if type_exists("EditorInterface") and EditorInterface.has_method("get_inspector"):
            var selection = EditorInterface.get_inspector().get_edited_object()
            print(selection.name)

preprocessed to:
func _init() -> void:
    pass

Which Godot version are you using: 4.2.2 stable or 4.3 beta 2? If the latter, then I should update the documentation, since the default export mode in 4.3 (Binary Tokens) is not compatible with the plugin.

Ah yes, I am using 4.3-beta2. That is a shame it doesn't work with the tokenization option, I assume there's no way to hook into the compilation pipeline before it starts the tokenization process?
When I build in "string mode" in 4.3,  some plugins don't seem to compile well yet work fine when tokenization is one, so string isn't really an option, and I'd prefer not to use it for the sake of helping protect my code from casual deconstruction.
Thanks for the response and clarification on that though!


Downloading to custom set folder

Absolutely love the M5Launcher but could it be possible to make the place where the bins download to choosable? I have my own folder for it and it’s kinda annoying that it goes into an extra folder

I'll see to it in the next update..


Improve vscode dev container experience

Describe the problem you are trying to solve
Currently the dev container support for tremor is good but working natively on OS X
and natively in the dev container requires some compromises which cost developer
time. The enhancements below should reduce the context switching overheads
Describe the solution you'd like

[x] Add support for linux-tools perf
[x] Add support for Brendan Gregg's flamegraph
[x] Add support for valgrind
[x] Allow Mac OS X and vsc dev container to co-exist with different cargo target paths
[x] Integrate perf/flame/valgrind with benchmark system
[x] Investigate dev container setup tweaks for Mac Os X dev environments

Notes

[ ] Optional. Consider adding convenience scripts as appropriate

Resolved by #99 with convenience scripts to be added

closing this as it's marked as resolved in the prior comment


UI update, dark mode + misc. changes

:shipit:

thank you pepperpot i love you platonically please bear my children


Feature/api v3 updates

PR Overview
This PR will address the following Issue/Feature: #9
This PR will result in the following new package version:

0.2.0 - Columns deleted
Please detail what change(s) this PR introduces and any additional information that should be known during the review of this PR:

When I was updating docs I realized my src_amazon_ads.yml didn't align with the staging and nor did the seeds. I updated them to be in line with what the staging models actually utilize.
The rest of the changes stem from the connector release notes:

Features

Added a new column, native_language_locale, to the keyword_history staging tables.
Made the following changes to the campaign_history table:

Added three new columns, budget, budget_type, and effective_budget
Removed the campaign_type, daily_budget, placement, and premium_bid_adjustment columns

Updated documentation with descriptions of the new columns.

Under the Hood

get_*_column macros now set the data type of the id column from INTEGER to STRING.
Updated testing seed data to reflect the column changes.

PR Checklist
Basic Validation
Please acknowledge that you have successfully performed the following commands locally:

[x] dbt compile
[x] dbt run –full-refresh
[x] dbt run
[x] dbt test
[x] dbt run –vars (if applicable)

Before marking this PR as "ready for review" the following have been applied:

[x] The appropriate issue has been linked and tagged
[x] You are assigned to the corresponding issue and this PR
[x] BuildKite integration tests are passing

Detailed Validation
Please acknowledge that the following validation checks have been performed prior to marking this PR as "ready for review":

[x] You have validated these changes and assure this PR will address the respective Issue/Feature.
[x] You are reasonably confident these changes will not impact any other components of this package or any dependent packages.
[x] You have provided details below around the validation steps performed to gain confidence in these changes.

confirm columns come through. See ticket for dataset used.

Standard Updates
Please acknowledge that your PR contains the following standard updates:

Package versioning has been appropriately indexed in the following locations:

[x] indexed within dbt_project.yml
[x] indexed within integration_tests/dbt_project.yml

[x] CHANGELOG has individual entries for each respective change in this PR

[x] README updates have been applied (if applicable)

[ ] ~DECISIONLOG updates have been updated (if applicable)~
[x] Appropriate yml documentation has been added (if applicable)

dbt Docs
Please acknowledge that after the above were all completed the below were applied to your branch:

[x] docs were regenerated (unless this PR does not include any code or yml updates)

If you had to summarize this PR in an emoji, which would it be?

:dancer:

Thanks for the suggestions! I made those and also updated the casting of ids to strings in the staging models.


pkg/healthv2: reduce unecessary healthv2 debug log volume.

Despite it just being debug logging, we still emit a lot of similar logs, generally from components that do many ok updates such as:
agent.datapath.agent-liveness-updater.timer-job-agent-liveness-updater
These logs don't represent any interesting event (i.e. state change) so we can restrict logging to only if we need it.

/test


Encoding multipart form data

There's an asynchronous function that the wrapper currently doesn't support: multipart form uploads.
I wrote a short extension to rectify this for my project, which is available here.
The returned Observable<UploadRequest> can be then flatMapped into rx.data() or other RXAlamofire methods.
If you think it's useful, please consider including it in the library. I can turn this into a PR if that helps.

Hey @vzsg , Thanks for the code !
I think this is highly useful and I'd personally love to see it as a full-fledged PR.
The only thing I'm wondering on is if the naming of the method makes sense - Since we want to remain as close as possible to original Alamofire terms so it's easier to discover. So I would imagine this making more sense as some overload of upload. What do you think ?

I'm okay with changing the name to match the original. (Locally I went with the verbose name so others can clearly see that this is not the actual upload yet, but I don't have a preference.)

Sorry for the uber-delay on replying here. Was this ever addresses or this feature is still needed?

Well, I'm still using my extension in production, and it didn't magically appear in this repo, so yeah, I think this is still on. :) All that's missing is a nice name for the new function.

I made the PR using Alamofire's naming and part of their documentation.
Please review if you have the time.


[BUG] cluster member can create namespace, but has no access to view it after creation

Describe the bug

cluster member can create namespace, but has no access to view it after creation，
To Reproduce
Steps to reproduce the behavior:

create a user, choose Standard User
assign a harvester cluster to the new user and select cluster member

login with this user and go to the harvester cluster
at this point you can only see the resources in the harvester-public namespace, and you cannot edit them (as expected)
go to Project/Namespace page, and create a project (cluster-member-project)
Create a namespace (cluster-member-namespace) in the cluster-member-project

at this point the user can create resources under cluster-member-namespace

Problem 1: The Create button is not displayed in the volume page  (backend issue)
Problem 2: Users should not create resources in the harvester-public namespace, but the image creation page can select harvester-public   (UI issue)

go to Project/Namespace page,  Create a namespace that does not belong to any Project  （such as test-no-namespace）

refresh page,  This user does not have permission to view test-no-namespace  （backend issue）

Expected behavior

Support bundle

Environment:

Harvester ISO version:
Underlying Infrastructure (e.g. Baremetal with Dell PowerEdge R630):

Additional context
Add any other context about the problem here.

Problem 1: The Create button is not displayed in the volume page (backend issue)

unable to reproduce, user can see the Create button in the volume page

refresh page, This user does not have permission to view test-no-namespace （backend issue）

even if it's not a Harvester cluster, it has the same behavior, so I'm not sure if this is the behavior that Rancher itself expects

Try to reproduce the issues on master-8f01b558-head (7/14).
For the three problems highlighted in this issue.

Problem 1: The Create button is not displayed on the image and volume page while already having project namespace assigned to the cluster member use
Problem 2: Users should not create resources in the harvester-public namespace, but the image creation page can select harvester-public  -> This would be the current design
Problem 3: Create a namespace that does not belong to any Project and refresh page, this user does not have permission to view test-no-namespace -> This would be the expected behavior

Problem 1 can't be reproduced, when a cluster member privilege user have assigned the project and namespace
This user can see create button on the volume and image page

Since the only problem here can't be reproduced, thus close this issue.


Fix CI 'fail to apply patch' error

Currently, all CI actions on LCW fail with the following error:
**ERROR** Failed to apply patch for package @nuintun/qrcode at path

    node_modules/@nuintun/qrcode

  This error was caused because @nuintun/qrcode has changed since you
  made the patch file for it. This introduced conflicts with your patch,
  just like a merge conflict in Git when separate incompatible changes are
  made to the same piece of code.

  Maybe this means your patch file is no longer necessary, in which case
  hooray! Just delete it!

  Otherwise, you need to generate a new patch file.

  To generate a new one, just repeat the steps you made to generate the first
  one.

  i.e. manually make the appropriate file changes, then run

    patch-package @nuintun/qrcode

  Info:
    Patch file<EMAIL_ADDRESS>    Patch was made for version: 3.3.0
    Installed version: 3.3.5

This needs to be fixed.

TODO: Fix lint errors - https://github.com/digitalcredentials/learner-credential-wallet/actions/runs/5802192110

Github PR: https://github.com/digitalcredentials/learner-credential-wallet/pull/477

@dmitrizagidulin - do you confirm fix?

Confirmed with @dmitrizagidulin


Missing Content-Encoding: gzip Header for Files with .gz Extension

Description/Steps to reproduce
The Content-Encoding: gzip header should be included even when the file extension already contains .gz, but it is currently missing, causing the functionality to fail.
Version information
Windows, macOS, or Linux?
MacOS
What version of the program are you using?
Version 1.2.12 (31)
Screenshots
If applicable, add screenshots to help explain the issue.

Please include a screenshot of the response headers in the network tab. This shouldn't be possible
https://github.com/terreng/simple-web-server/blob/068dc2510f7d1cf6e42e85db868bfc50f81110c3/mime.js#L296

Based on my understanding, I don't think we should add the Content-Encoding: gzip header to all files across the board, because I do think it would mess up downloading .gz files. If you try to directly download example.gz, it should just download the file as-is, but I think that adding this header would cause the browser to try and decompress it first.
That said, there seems to be a pattern of adding .gz to the end of an existing file extension. Like Build/WebGL.framework.js.gz in this case. Right now this file is getting served as application/gzip. I think it should instead be served with text/javascript and Content-Encoding: gzip.
Ethan, could you implement that? If the file ends with .gz, try removing it and checking if the remaining string still has a valid file extension. If it does, like in the case of .js.gz, then use the content-type of js and add the content-encoding header. If not, then keep the content-type as gz and don't add a content-encoding header.
So in summary:
example.gz

Content-Type: application/gzip
Content-Encoding: (none)

example.js.gz

Content-Type: application/javascript
Content-Encoding: gzip

I can look at doing this

@ethanaobrien I totally forgot that we already have the "Serve precompressed .gz and .br files" option, but it's just off by default. I think we should turn it on by default.
That said, the existing option didn't seem to work for me. I made a file called example.js.gz, but when I tried to access example.js I just got a 404.
I think the existing option would also need to be modified to allow you to load .gz files directly if the .gz follows another file extension, like we were talking about before.
So if you have a file called example.js.gz, then loading either /example.js or /example.js.gz should work:

Content-Type: application/javascript
Content-Encoding: gzip

(Unless example.js exists by itself, in which case serve that)
But if you have a file called just example.gz, then only loading that path should work.

Content-Type: application/gzip
Content-Encoding: (none)

With the precompression option enabled, then I think it's already supposed to mostly work this way, except that currently loading example.js.gz will give content type application/gzip.
Here's the relevant part of the code:
if (this.opts.precompression) {
    let found = false;
    const ac = this.request.headers['accept-encoding'];
    if (ac.includes('gzip')) {
        let file = this.fs.getByPath(entry.fullPath+".gz");
        if (file && !file.error) {
            entry = file;
            this.setHeader('Content-Encoding', 'gzip');
            found = true;
        }
    }
    if (ac.includes('br') && !found) {
        let file = this.fs.getByPath(entry.fullPath+".br");
        if (file && !file.error) {
            this.setHeader('Content-Encoding', 'br');
            entry = file;
        }
    }
}

And also the part of the code that chooses what content-type to serve.

@terreng At the moment, It only serves a pre-compressed file if a non-compressed version is found, and the requesting request says it supports it.
Doing it if without checking for a non-compressed file can lead to differing behaviors in browsers that either have the feature disabled, or do not support it. How should we handle this issue?

In this case with the Unity export, I don't think it includes a non .gz version, which means it just doesn't work on browsers that don't support gzip. That said, I'm pretty sure all the browsers do support it.
If there's only a .gz file, then the only choice we have is to serve that with gzip encoding, and it just won't work on unsupported browsers. But that's not a problem with the web server, that's on the user. So I think it's fine if we just don't handle that issue.

Thanks for the report! This will be fixed in the upcoming 1.2.14 release.


button doesn't seem to do anything when you add a trust line manually

Has been resolved a while ago. Thanks


resolves #78 disable timeout by default and raise exception instead of nil

Pains that MENTOS_TIMEOUT was causing to people:
https://garfieldnate.github.io/blog/2015/07/20/hacking-through-an-octopress-update/
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=923986

Pains that MENTOS_TIMEOUT was causing to people:
https://garfieldnate.github.io/blog/2015/07/20/hacking-through-an-octopress-update/
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=923986


task6,task7

hi
after commit to git hub the new pull request is not viewing for me only the view request is showing hence
how to update in tracker

@singeethamsricharan
Task -1
Code verified. provide a annotations
Task -2
Code verified. provide a annotations
Task -3
Code verified. provide a annotations
Task -4
Code verified. provide a annotations
Task -5
Code verified. provide a annotations
Task -6
Code verified. provide a annotations
Task -7
Code verified. invalid output
Task -8
Code verified. invalid output
Note:
Provide a code is correct task folders. Mismatch  in the folders
Annotations in UiPath are comments or notes added to activities to explain what they do. These annotations help make the workflow more understandable for anyone who might be reading or maintaining the workflow in the future


"user:create" -  "TypeError: Cannot red property 'split' of null"

I am getting "TypeError: Cannot red property 'split' of null" upon "user:create" operation. The user is created, no problem at that part. Just the return message is indicating some kind of a problem.
OS - Ubuntu Desktop 20.04.03 (installed on VirtualBox 6.1.32)
sfcc-ci - 2.9.1
node - 14.17.3 (installed with nvm)

Thanks for raising! @fy2sysnotify please review https://github.com/SalesforceCommerceCloud/sfcc-ci/pull/296


Allow user to return to paginated quotes page they were on

When user clicks on a quote from a paginated page, add return_to param so that they are taken back to that paginated page when they decide to hit the back button.

Fixed: https://github.com/garciadanny/words/commit/918ea6dbf875d0acb41faeb6e73e239070434940


Use is_alive in favour of isAlive for Python 3.9 compatibility.

Fixes #12 . is_alive is present in both Python 2 and 3.

Already fixed!


Display 'stored Procedure' not 'Stored Procedure' when creating a new Stored Procedure

Repro Steps:

Create a new Cosmos DB with Gremlin API.
After creating successfully, create a new database ->Create a new graph.
Expand the new created graph ->Right click 'Stored Procedures' node and select 'Create Stored Procedure'.
Check the prompt.

Expect:
Display 'Enter a unique Stored Procedure ID'.
Actual:
Display 'Enter a unique stored Procedure ID'.

Good catch, although I'd say it should be: Display 'Enter a unique stored procedure ID'.

Ah~ oh ~. Got it. Thanks for your update :).