Feature Request: Download sub only vods

Hi, first of all, thank you for this wonderful piece of software. I would love to see implemented in the future a way link our twitch accounts to download sub only vods of those channels we are subscribers.
I don't know how complex/hard is the issue so maybe I am asking for something not possible, but after the DMCA wave most channels putting their vods behind closed doors and this feature would be truly helpful.
Anyway, thank you for your hard work and sorry for my bad English.

It's quite straight forward in case you submit the user's credentials (username, token) in certain requests.

I recommend both of you reading through #419 😄
There is a reason why TL 1.8 happened and why sub-only downloads were removed from it.
 If they don't play copyright protected music, there's no problem.  I have no intention of helping people thinking stealing copyright protected music is ok. Context: I am also a musician with an album out in the world, so I am a little bit biased here 😄

@Franiac I'm fully aware of that thread.
However, I personally use the same code base to download VoDs for a long time now:
(1) lookup the channel's vods (kraken/ helix)
(2) request an access token (api)
(3) download the playlist (usher)
(4) download the video chunks (from the mirror specified in the playlist)
The only changes I did over time:

I moved from kraken to helix. kraken should still work fine but helix is way more convenient.
Your requests look more standardized and you have to do less normalization on the results too.
I had to update my token. OAuth ... now is called Bearer ... at some places.
I'm not exactly sure anymore why Twitch did that change, but you can even read about it on the Twitch developer pages.
I had to slightly modify some regexes to properly extract the mirrors mentioned above.

Of course Sub-Only VoDs still only can be downloaded in case the auth refers to a channel that's eligible to see the VoD.

@Codereaders That is very interesting since we were trying everything possible to get it working again and failed. Helix is definitely better but lacking a lot of stuff still. You still cannot get the resolutions and framerates for example. That is one giant clusterfuck in Kraken that need a lot of edgy normalization.
Do you have your code open source or is it just a private project? Because if it works I would not have to re-validate every little step in case I re-introduced sub-only downloads to TL. Do you have anything on GitHub?

No, I haven't published my code yet. It's basically a containerized php application.
So not necessarily what end users expect to deal with. However, I can put the relevant parts online for you soon.
What information exactly are you missing? The resolution and the frame rates can be extract from the playlist provided by usher.
There should definitely be a better way, to get those information via a proper api, but for now it works fine.

Maybe you could just upload the entire code to a private repo an give me access? Your project stays hidden this way. I used to program PHP, so I surely can dig out the relevant parts. I am interested in how you get the access tokens, how you determine if the VOD is sub-only and what the requests are in order to retrieve the playlist array.

Any updates on this?

I was actually able to get this to work in the latest version with out any issue...
I added a single line to TwitchService.CreatePrivateApiWebClient
wc.Headers.Add("Authorization", "OAuth <my_token>");
I got my token from looking at a gql request my browser performed when loading a "sub-only" broadcast. I can't see why it wouldn't be possible for the app to be able to authenticate for the local user and access the broadcasts?

@Tanerax We have to verify. I removed sub-only downloads from TL because the token that came back from the auth API was not accepted. Sure the token from the browser works as you say but if TL authenticates for the user, the token will be different and that was the primary issue. The API did not accept the token as a subscriber regardless of actually being one or not. So for a valid test you would actually have to authenticate via the API and get a completely new token from there. The browser token does not verify anything, unfortunately.

Ok guys, I need some help. There is a new BRANCH in which I have re-implemented sub-only video downloads.
I cannot really test this because I don't know any channels that hide their videos behind the paywall.
If you're a dev, you can compile the branch and test/debug it directly.
For all others: There is THIS file. Unzip it and run TwitchLeecher.exe. Don't overwrite any installed TL, that will brick the installer in the future. The test version will show up as 1.8.4. That will change on a real release.

Hey! Just tried it, I'm subbed, but I get this message:
"This video is sub-only but you are not subscribed to 'streamer'!"

@sdynam0 Can you tell the channel name please. Maybe I just use my Prime to sub for testing purposes.

@sdynam0 Or would you be so kind to test another version with logging enabled (TL will write a file with some non personal logging information to track, what's going on)

I made a new version with logging:
TL with logging
As soon as you click on "Download" on a video, a file named "tl.log" should get written the the TL directory (where the .exe is).

Hi guys,
I just gave it a go on my machine, log below.
I'm a sub of: "markettraderstv"
{"data":{"videoPlaybackAccessToken":{"value":"{"authorization":{"forbidden":false,"reason":""},"chansub":{"restricted_bitrates":["160p30","360p30","480p30","720p60","audio_only","chunked"]},"device_id":null,"expires":1632810980,"https_required":true,"privileged":false,"user_id":null,"version":2,"vod_id":1058435233}","signature":"c6933fa01933b59b4d848b52773a33cb0f71c553","__typename":"PlaybackAccessToken"}},"extensions":{"durationMilliseconds":89,"operationName":"PlaybackAccessToken","requestID":"01FGKD7CNEJPFKNDJ0GPKE8ZWT"}}

@m4ryou5h Did you authorize TL via the Twitch icon in the titlebar?

@m4ryou5h Did you authorize TL via the Twitch icon in the titlebar?

Yes, I did.
I just revoked the authorisation and re-authorised again and got the same errore message.
TL below. I hope that helps
{"data":{"videoPlaybackAccessToken":{"value":"{"authorization":{"forbidden":false,"reason":""},"chansub":{"restricted_bitrates":["160p30","360p30","480p30","720p60","audio_only","chunked"]},"device_id":null,"expires":1632814165,"https_required":true,"privileged":false,"user_id":null,"version":2,"vod_id":1058435233}","signature":"ea736a39611866b6dea5a13df389591b344c1b12","__typename":"PlaybackAccessToken"}},"extensions":{"durationMilliseconds":79,"operationName":"PlaybackAccessToken","requestID":"01FGKG8JFPA4WYBHY94PTDD9R0"}}

Again a new version:
TL with logging
The problem is, the "privileged" flag in that JSON mess should be true and not false if TL is authorized.

@Franiac yes, you're correct, the flag should be true.
What endpoint do you use to request token and signature? Any of the old ones or the gql API endpoint?
Could you show the request you do?

@Codereaders Check here line 213
We had an issue in the past with this, I remember very clearly. We needed to add the query parameter. But then the Authorization header was OAuth but that does not work anymore. Bearer works but then privileged ist false. I don't really know, what the problem is.

I use both the OAuth as well as the Bearer token in my application. For some endpoints I ended up setting the Bearer token for others (such as the gql endpoints) I use the OAuth token. Which for my cases is the same token just having it prefixed differently.
Pretty much simplified it comes down to this:
$request_url = "https://gql.twitch.tv/gql";
$request_method = "POST";
$request_headers = [
    'Accept' => "application/json",
    'Client-ID' => $client_id,
    'Authorization' => $oauth
];

$request_body = (object)[
    "operationName" => "PlaybackAccessToken",
    "variables" => (object)[
        "isLive" => false,
        "login" => "",
        "isVod" => true,
        "vodID" => "{$video_id}",
        "playerType" => "channel_home_live"
    ],
    "extensions" => (object)[
        "persistedQuery" => (object)[
            "version" => 1,
            "sha256Hash" => "0828119ded1c13477966434e15800ff57ddacf13ba1911c129dc2200705b0712"
        ]
    ]
];

For the response I simply extract the signature and the token, no matter what else is being set:
return (object)[
    "sig" => $response->data->videoPlaybackAccessToken->signature,
    "token" => str_replace("\\", "", $response->data->videoPlaybackAccessToken->value)
];

In addition, I also extract the sig and token but so far I could judge if the video is sub-only or not and provide a message according to the outcome.
There were 2 possibilities in TL 1.7.3:

privileged is true => sub-only video
restricted_bitrates array is filled => sub-only video

Question: If you run your software, what is privileged saying? Because if you get true, something different must be off.

So, I finally found a sub only VoD on a channel that I was subscribed to.
I discovered something interesting:
non-subonly + Bearer token
{"authorization":{"forbidden":false,"reason":""},"chansub":{"restricted_bitrates":[]},"device_id":null,"expires":TIMESTAMP,"https_required":true,"privileged":false,"user_id":null,"version":2,"vod_id":VOD_ID}

non-subonly + OAuth token
{"authorization":{"forbidden":false,"reason":""},"chansub":{"restricted_bitrates":[]},"device_id":null,"expires":TIMESTAMP,"https_required":true,"privileged":false,"user_id":USER_ID,"version":2,"vod_id":VOD_ID}

subonly + Bearer token
{"authorization":{"forbidden":false,"reason":""},"chansub":{"restricted_bitrates":["160p30","360p30","480p30","720p30","audio_only","chunked"]},"device_id":null,"expires":TIMESTAMP,"https_required":true,"privileged":false,"user_id":null,"version":2,"vod_id":VOD_ID}

subonly + OAuth
{"authorization":{"forbidden":false,"reason":""},"chansub":{"restricted_bitrates":[]},"device_id":null,"expires":TIMESTAMP,"https_required":true,"privileged":true,"user_id":USER_ID,"version":2,"vod_id":VOD_ID}

For some of the responses the USER_ID and the restricted bitrates haven't even been set.
I removed some information of course and put in placeholders (TIMESTAMP, USER_ID, VOD_ID).
The scopes.. well, I'm sure not all of them are required:
"scopes":["chat_login","user_presence_friends_read","user_read","user_subscriptions","channel_commercial","channel_editor","channel_feed_edit","channel_feed_read","channel_feed_report","channel_read","collections_edit","communities_edit","communities_moderate","user_edit","user_entitlements_read","user_follows_edit","user_friends_edit","user_friends_read","user_presence_edit","user_subscriptions_edit"]

@Codereaders That makes no sense, if I use OAuth on non-sub-only videos, I get a 401 WebException. What do you do differently than me?
But your test shows exactly my previous implementation: Either privileged is true or the array is filled.

@Codereaders Important question: Do you use the token from the browser or do you also get the token from the API? Becasue that also seems to make a big difference.

This is the exact code I ran for my previous tests:
import requests

class GQL(object):

    _base_url = "https://gql.twitch.tv/gql"

    def __init__(self, client_id, authorization):
        self._client_id = client_id
        self._authorization = authorization

    def get_video_access(self, video_id):
        endpoint = f"{self._base_url}"
        method = "POST"
        params = {}
        data = {
            'operationName': 'PlaybackAccessToken',
            'variables': {
                'isLive': False,
                'login': '',
                'isVod': True,
                'vodID': f"{video_id}",
                'playerType': 'channel_home_live'
            },
            'extensions': {
                'persistedQuery': {
                    'version': 1,
                    'sha256Hash': '0828119ded1c13477966434e15800ff57ddacf13ba1911c129dc2200705b0712'
                }
            }
        }
        headers = {
            'Client-Id': self._client_id,
            'Authorization': self._authorization
        }

        response = requests.post(endpoint, json=data, params=params, headers=headers)

        if 200 <= response.status_code and response.status_code < 300:
            result = response.json()
            signature = result['data']['videoPlaybackAccessToken']['signature']
            token = result['data']['videoPlaybackAccessToken']['value'].replace("\\", "")
            return signature, token
        raise Exception("cannot query the gql api")

The token I used for testing was the one from the website. But for certain applications I use the client id + token you can request from the API.

I do this:
Call this url the integrated browser in TL:
https://id.twitch.tv/oauth2/authorize?client_id=37v97169hnj8kaoq8fs3hzz8v6jezdj&redirect_uri=http://www.tl.com&response_type=token&scope=user:read:subscriptions&force_verify=true

The Client-ID is my TL CLient ID.
The response gives me a token. With that token I call:
https://gql.twitch.tv/gql

with headers:
Client-ID -> 37v97169hnj8kaoq8fs3hzz8v6jezdj
Authorization -> Bearer <token>

This results in:
{
    "error": "Bad Request",
    "status": 400,
    "message": "The \"Client-ID\" header is invalid."
}

The same request with OAuth results in:
{
    "error": "Unauthorized",
    "status": 401,
    "message": "The \"Authorization\" token is invalid."
}

Ok, the nI tried Client-ID from the website:
Client-ID -> kimne78kx3ncx6brgo4mv6wki5h1ko
Authorization -> Bearer <token>

This actually works... BUT... then I call the following in oder to receive the playlist:
https://usher.ttvnw.net/vod/{0}.m3u8?nauthsig={1}&nauth={2}&allow_source=true&player=twitchweb&allow_spectre=true&allow_audio_only=true

{0} -> vodID
{1} -> sig
{2} -> token
And that results in:
[
    {
        "url": <STRIPPED>,
        "error": "Manifest is restricted",
        "error_code": "vod_manifest_restricted",
        "type": "error"
    }
]

So no matter what I do, I cannot get it to work 😞

Wait you're using your app's client id to request the access token+sig?
You have to use both the user's client id + token.
If you just have their token you can perform a validation request:
curl -X GET 'https://id.twitch.tv/oauth2/validate' -H 'Authorization: Bearer <access token goes here>'

{
  "client_id": "wbmytr93xzw8zbg0p1izqyzzc5mbiz",
  "login": "twitchdev",
  "scopes": [
    "channel:read:subscriptions"
  ],
  "user_id": "141981764",
  "expires_in": 5520838
}

Yes, you HAVE to use the app Client-ID because if you open up the url in a browser with their website CLient-ID, the redirect does not work and you don't receive a token + sig.
The validation works for the received token. But still the gql endpoint won't work after that

I'm not familiar with all the different authorization flows but in case you receive the users' (auth) tokens, it seem to be fine.
For the authorization flow you have to use your app's token, of course, but later on, when you switch to actions performed in the name of the user (requesting the token+sig for the VoD), for my understanding you have to use the user's client id and token. I mean it's still your app that requests (technically) the VoD but the behalf of the user.
By the way naming all tokens "token" makes it a bit odd to read. x)

https://id.twitch.tv/oauth2/authorize?client_id=37v97169hnj8kaoq8fs3hzz8v6jezdj&redirect_uri=http://www.tl.com&response_type=token&scope=user:read:subscriptions&force_verify=true

I understand what you are saying. The above flow results in a user token, not an app token. There is no Client-ID for a user.
The Client-ID (in my case 37v97169hnj8kaoq8fs3hzz8v6jezdj) is the ID given by Twitch for your app (Twitch Lececher). You need this Client-ID in order to actually do the authorization workflow. With the CLient-ID you then retrieve the user auth token in order to make requests on befalf of the user. There are also App tokens in oder to make requests on behalf of the app. But this is never the case in TL. User or app tokens have nothing to do with the Client-ID. Whenever I use a token in TL, it is a user token.

The above flow results in a user token, not an app token. There is no Client-ID for a user.

Correct, and that's the next call to do:
curl -X GET 'https://id.twitch.tv/oauth2/validate' -H 'Authorization: Bearer <user access token goes here>'

It's response contains the user's client id which then can be used together with their token to request token+sig.

Problem is, I actually don't know what to do.

Problem is, I actually don't know what to do.

Just want to say I appreciate your hard work and this feature is definitely a must-have. I'll see what I can contribute on the technical side. If you have new builds, I'm willing to try it out.

@spencerhuang Appreciate it. We are at the exact same spot where we were at the end of #419.
I am thinking about just putting a textfield in the "Authorize" where you actually can copy the browser cookie token. This would be the same workaround as the original pull request but I currently see another way.
I cannot get a token via API that allows me to download anything sub-only from usher.
So basically I could roll out a new sub-only TL version that would come along with a little documentation on how to get the token from the browser devtools. That sucks solid dick because average Joe doesn't know any of this and question issues with "I cannot find token pls help" will be a thing. That's actually what I did NOT want (and therefor declined the original PR).
Me not happy... 😞

I'm not sure if this is helpful, but I'm using "Get cookies.txt" chrome extension to export twitch cookies and then I pass it as an argument to download sub-only videos via youtube-dl
https://chrome.google.com/webstore/detail/get-cookiestxt/bgaddhkoddajcdgocldbbfleckgcbcid

There is also this extention here (also for multiple browsers) that is even open source: [https://www.editthiscookie.com/](Edit This Cookie). Really easy to get the auth token from there. Might be helpful to look at the source code for a possible implementation into TL?

@HeyMika You cannot get cookies from a browser "from the outside". That would be a serious security issue. Extentions also need the permission to read cookies. I think, a general documentation would be the best since noone really wants to go through the hassle installing an extention in order to get a little token.

@Franiac I think going for the second solution is a more user friendly way. About the professionalism, both solution aren't really. The first one requires to do everything yourself what is in my opinion not professionally either so going for the second one is from those two solutions the best. There has to be some indicator that the token and any login detail is not send anywhere if this would be integrated.

I got this working now in the "helix" branch. will be released soon with TL 2.0

If someone wants to check it out, the helix branch is compilable and should run without problems.

Thanks! It seems I was able to compile it and log into my Twitch account but unfortunately you have to be subbed to the person to download their sub-only vids. I archive a lot of different streamers so this doesn't really work for me but I'm sure a lot of people will be happy they have the option of downloading VODs from the streamers they support now 😄 In the meanwhile I'll continue using Dave's fork since it still has the option of downloading sub-only VODs without a subscription.

You can use that fork until February 18th. Twitch will start shutting down API V5 then.
Sidenote:
Downloading publicly available videos is an accepted grey area. Twitch does not really hunt down such programs. Downloading videos behind a paywall, though, is 100% illegal. So even if it works and there is something in the future that would TL enable to download such videos, I would not implement it. Streamers have a reason why they want their videos behind a paywall and that should be respected in all cases. So actually I am glad, Twitch removes that option. I myself would be pissed if someone could just download my sub-only videos without even logging in.

Yeah that's totally understandable, if you have moral reasons for not wanting to implement it then it's perfectly fine since it it your program after all ^^ I did see that the Helix API and GQL API both support getting the sub-only VODs as well though, so hopefully Dave comes back to implement that and fix the issue with muted VODs.

Not without authentication...

Not without authentication...

Oh, I'm not really sure how they did it, but they use the GQL API here for getting sub-only VODs.
https://github.com/Alissonsleal/TwitchSubVod/pull/131


Hardcoded header in IVFWriter

Hi,
Why header in IVFWriter is hardcoded? When i try to save a video from using examples, then the video is set to 640x480 with 30fps. Number of frames is set to 900, so the video is always 30 seconds long, even i record a shorter one. Recorded video is accelerated when open in desktop player.
Thanks
func (i *IVFWriter) writeHeader() error {
	header := make([]byte, 32)
	copy(header[0:], []byte("DKIF"))                // DKIF
	binary.LittleEndian.PutUint16(header[4:], 0)    // Version
	binary.LittleEndian.PutUint16(header[6:], 32)   // Header Size
	copy(header[8:], []byte("VP80"))                // FOURCC
	binary.LittleEndian.PutUint16(header[12:], 640) // Version
	binary.LittleEndian.PutUint16(header[14:], 480) // Header Size
	binary.LittleEndian.PutUint32(header[16:], 30)  // Framerate numerator
	binary.LittleEndian.PutUint32(header[20:], 1)   // Framerate Denominator
	binary.LittleEndian.PutUint32(header[24:], 900) // Frame count
	binary.LittleEndian.PutUint32(header[28:], 0)   // Unused

	_, err := i.stream.Write(header)
	return err
}

Hey @kacperjurak
The IVFWriter atm is really just a quick hack so we can write to disk, I would love a PR to improve it some more! Maybe when you call Close() it will finalize the header values.
Right now it is hard to fill in a lot of detail since we are dealing with live video, and things like resolution are impossible to fill in. The resolution can change at anytime during the stream.

@kacperjurak
master has been updated to count the number of frames written, does this fix the playback speed for you? Also note that you need to refresh/close the tab for the file to finish writing (otherwise we write a temporary header)
Please re-open if you are still have issues! thanks for using pion :)
cc: @Antonito who did all the work here!
thanks!


[plot] Add a threshold to avoid to zoom when we click

On GUI which requesting clicking a lot people often zoom when while they would like to click.
A threshold in delta mouse position already exists.
A temporal one could fix the problem (when the zoom option is activated). 200 or 500ms (between mouse down and mouse up) is enough i think.

Worth trying it.
A temporal threshold during which the mouse position threshold is larger might also be an option.


Add jshint option to disable "Missing '()' invoking a constructor. (W058)"

I'd like so see a jslint option to turn off:
Missing '()' invoking a constructor. (W058)
I'm not interested in hearing warnings when new Foo is used in my code.

It's perfectly valid ECMAScript.
The () is redundant when new is already present.
No one is going to try turning that into new Foo bar like the issue with if ( foo ) bar(); being incorrectly turned into if ( foo ) bar(); baz();.
Worrying about someone forgetting new and writing Foo is pointless since Foo() is also a bug in the code so requiring () won't help anyways.
new Foo is not bad coding style in this local project. In fact the code in this project quite consistently omits () on constructors with no args so jshint only omits warnings for code that doesn't follow the local coding style.

I shouldn't have to write /* jshint -W058 */ at the start of every file when I have a perfectly good .jshintrc file that I could put a named jshint option into.

Just to point that in the code below, I'm getting this error too, when it shouldn't (right?).
new (Function.prototype.bind.apply(Neomap, [Neomap].concat(_.toArray(arguments))));

+1 for an option. I also like less punctuation when not needed.
if (makeNode) node = new Node

vs
if (makeNode) {
  node = new Node();
}

I really don't think the first example is harder to read or error prone, and is perfectly clear.

@GSchutz Your example should have that error, because you're using new without the parens. We can modify your example to make it more evident why you get the error by taking everything out of the outer-most parens, so your code is equivalent to:
let something = Function.prototype.bind.apply(Neomap, [Neomap].concat(_.toArray(arguments)));
new (something)

which simplifies to
let something = Function.prototype.bind.apply(Neomap, [Neomap].concat(_.toArray(arguments)));
new something // no parens here, so you get the error.

where something is obviously a function.


Add tests for view types.

Display types should all have getDisplay (which not all do at the moment...)
Value types should have getValue, which returns a raw computed value and getDisplay which returns a human readable value.
Data types should all have getField, getValue and getDisplay (and potentially others) that usually just pass through to the underlying data type specified from the ref option.

I don't think I've run into too many problems with this code.  Most of it is relatively straight forward.  Adding these tests is a lower priority compared to the other test issues ( #40 , #39 , #38 )


OSError: could not find or load spatialindex_c-32.dll

Hello,
I am having trouble getting passed the check and actually running BlueSky. The error i get is
OSError: could not find or load spatialindex_c-32.dl, specifically:

I downgraded python to 3.6.4 and I have tracked the problem down to rtree, however i really do not know how to fix it. My OS is Windows.
I have tried reinstalling rtree, no luck. I have also treid to downgrade it but it has not worked.
Any help would be appreciated.

Hi, how did you install python? From python.org, using Anaconda, or something else?

Hey jooste, thank you for the quick resonse. I installed python by downloading an .exe file from python.org

Update,
I managed to resolve the issue. I installed the package from the cmd terminal insted of the one from VScode and it did the trick. However i am faced now with my original problem. I thought downgrading my python should have solved this error.

Hi Jooste,
So when i run the check now i do not seem to get any issues:

However, there is still an issue. When i run BlueSky.py the previos image is the main screen along with:

I am kinda stuck and dont really know what to do i really want to use the visualisation capabilities

Ah, there is actually an error in the terminal output in your screenshot (can't open file ...). You are getting this error because you aren't running bluesky from it's main folder, but from one folder up. Because of this bluesky can't find it's own main python file, and might also have issues with other files. Try starting it from d:\BlueSky\bluesky and see if that fixes it!


Publish npm package

github action to publish open scd core on npm
@openscd/create-plugin: init CLI for external plugin authors

It would be nice if this gets publisched by a openscd-user (personal/organisational user)


Building from Dockerfile not working

nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04 is currently missing and the alterantive I found (ogvalt/cuda:9.0-cudnn7.0-devel-ubuntu16.04) throws the following error:
 > [16/25] RUN apt-get install -y python3.6 python3.6-dev python3-pip python3.6-venv:
#0 0.275 Reading package lists...
#0 0.872 Building dependency tree...
#0 0.990 Reading state information...
#0 1.080 E: Unable to locate package python3.6
#0 1.080 E: Couldn't find any package by glob 'python3.6'
#0 1.080 E: Couldn't find any package by regex 'python3.6'
#0 1.080 E: Unable to locate package python3.6-dev
#0 1.080 E: Couldn't find any package by glob 'python3.6-dev'
#0 1.080 E: Couldn't find any package by regex 'python3.6-dev'
#0 1.080 E: Unable to locate package python3.6-venv
#0 1.080 E: Couldn't find any package by glob 'python3.6-venv'
#0 1.080 E: Couldn't find any package by regex 'python3.6-venv'
------
Dockerfile:33
--------------------
  31 |       add-apt-repository ppa:deadsnakes/ppa
  32 |     RUN apt-get update
  33 | >>> RUN apt-get install -y python3.6 python3.6-dev python3-pip python3.6-venv
  34 |
  35 |     # setup python environment
--------------------
ERROR: failed to solve: process "/bin/sh -c apt-get install -y python3.6 python3.6-dev python3-pip python3.6-venv" did not complete successfully: exit code: 100

According to [Nvidia's support policy](this https://gitlab.com/nvidia/container-images/cuda/-/blob/master/doc/support-policy.md), it appears those old docker images are removed from dockerhub. Maybe a more recent docker image could work?

Thank you @MarcCote , I was able to create a container but when I tried to check i-Thor using python docker/check_thor.py, The program gets stuck forever at this point:
oot@7cbffc1b6484:/opt/alfworld#   python docker/check_thor.py
thor-201909061227-Linux64: [|||||||||||||||||||||| 100%   1.6 MiB/s]  of 390.MB
Found path: /root/.ai2thor/releases/thor-201909061227-Linux64/thor-201909061227-Linux64
Mono path[0] = '/root/.ai2thor/releases/thor-201909061227-Linux64/thor-201909061227-Linux64_Data/Managed'
Mono config path = '/root/.ai2thor/releases/thor-201909061227-Linux64/thor-201909061227-Linux64_Data/Mono/etc'
Unable to preload the following plugins:
	ScreenSelector.so
PlayerPrefs - Creating folder: /root/.config/unity3d/Allen Institute for Artificial Intelligence
PlayerPrefs - Creating folder: /root/.config/unity3d/Allen Institute for Artificial Intelligence/AI2-Thor
Logging to /root/.config/unity3d/Allen Institute for Artificial Intelligence/AI2-Thor/Player.log

@FrozenWolf-Cyber, do you start the X server? https://github.com/alfworld/alfworld#run-headless

Oh mb, sorry for the confusion, I actually wanted local install, so I tried python docker/docker_run.py and changed the default image to default_image_name = 'vzhong/alfworld' but got this error:

executing shell command
non-network local connections being added to access control list
WARNING: Published ports are discarded when using host network mode
docker: Error response from daemon: unable to find user frozenwolf: no matching entries in passwd file.
Executed with code  32000
non-network local connections being removed from access control list

So using vzhong image what is the guide to use alfworld-play-thor ?

Looping in @vzhong in case, you haven't found a solution yet.

I have not tested my image with THOR actually, just ALFWorld text environment. The problem you're seeing may not be related though.. it seems like it's expected a non-existent user.  @FrozenWolf-Cyber ? Can you try using the default docker user?


Simple feature request, so please make it fast.

This is A simple feature request.
Can you please add a feature like after doing /login password
In the config, we could set command so that we can execute a command like: tp {player} 78 45 321
so this will become a bungee tp login without bungee being installed.
Similar to tp login in bungee
Hope you adds it :)

and please reply even if you don't like or not, please reply

Hi, @Aadi-mone!
Interesting idea. I'll add in a future update of OpenNLogin.

#43

thanks nick,
and just one more question, will this take too long like a month or more?
because I requested this same feature in other plugins and no others replied like this.
this reply is really appreciated.
and please notify me when done so I can rate the plugin 5 stars :)

thanks

@nickuc
Hello nick, Hope you're doing well,
it has been a while, is the update complete or it will take more time?
I am waiting.


Would it be possible to add inference from trained model to ASRfromScratch.ipynb?

This Colab:
https://colab.research.google.com/drive/1aFgzrUv3udM_gNJNUoLaHIm78QHtxdIz?usp=sharing
has training from scratch but it doesn't supply a completely concrete example of inference from scratch using the just-trained model.   In Section 5 it shows concretely how to use a presupplied pretrained model.  It gives concepts on how to do the same with the just-trained model but it doesn't actually do it.  There is this discussion:
https://giters.com/speechbrain/speechbrain/issues/1017
and this CoLab:
https://colab.research.google.com/drive/1137MD-gAERblRAVhxDnwNXV3YyAiwtxV?usp=sharing
which give prescriptions on ways of doing inference but neither concretely applies the just-trained model to do inference by

loading the newly trained from scratch model from .ckpt files (not using the trained model still in memory)
applying the loaded model to do transcription

It would be really nice if you could update the first GitHub so it finishes up on the training and eval steps provided to provide an inference step using the stored just-trained model that operates on a .WAV file name to produce text.
It would also be great if the CoLabs were stored as .ipynb's in the GitHub in a tutorial section.

Hi,
we might want to consider doing this, but we might not decide to go for it in the end. Why ? Simply because this would force us to have different tutorials to maintain on the same subject i.e. if the inference process changes one day, we will have to keep track of all the tutorials that must be changed. I took a look again at the inference tutorial. If you apply it like this to the template or ASR from scratch tutorial, it will work. You can either create a function that transcribes a dataset (dirty but good for prototyping) or simply use our EncoderDecoderASR interface. If your model is too custom, you can also develop your own interface.
Please try, and if you do not succeed, we can help with that.

Hello
After training the ASRFromScratch I wanted also use the trained model for inference, at first I used the EncoderDecoderASR interface with a modified hyperparams.yaml (inspired by HuggingFace. Unfortunately, it didn't succeeded and the transcribe_file method always returns "TTTTTTT", when I debugged the code I found that the encoded_output is all "nan"s, then I dug deeper to find that the InputNormalization module returns tensor[0], the cause I found is that it only returns the expected values when self.training == True. If someone is interested and can help on this I can share more insights.

I stopped looking into SpeechBrain because the tutorials are on CoLab and code is on GitHub and models are on HuggingFace and the tutorials do not show how to train a model on a local PC with local GPU from scratch and do inference with the models on a single input.  A complete set of tutorials in Jupyter Notebooks in GitHub that run on a local PC GPU out of the box and are fully explicit about how to train and do inference using a local model trained from scratch are necessary to make SpeechBrain accessible.  By local I mean every step, VAD, LM, ASR and so on without reference to pretrained models.  Absent that I think SpeechBrain will not gain traction with anybody but the 3 or 4 people that wrote it.

FYI, you can find more info on this tutorial about how to do inference with trained SpeechBrain model
Inferring on your trained SpeechBrain model
Regards

Dear @catskillsresearch, thank you for this point of view. We would like to let you know that SpeechBrain already is widely used within the community and peoples are entirely satisfied with it, at least with respect to their needs. Now, if it is not your case, then I truly hope that you'll find what you need with all the other excellent existing toolkits such as ESPnet, NeMo, Fairseq, or now Coqui. SpeechBrain has already been used to teach DL + Speech to Master's students that successfully trained various models from scratch, locally.
Your remarks will be discussed during our next meeting, however, personal considerations such as I think SpeechBrain will not gain traction with anybody but the 3 or 4 people that wrote it. aren't really useful to this discussion and almost insulting to the 79 current contributors.


Added craig's FFT code.

Our library really makes things easy to build. Doing this in numpy would've been way hard. Cool!


react-to-react-dom does not work with es6 import

Files are simply skipped due this code:
        root
            .find(j.CallExpression)
            .filter(p => isRequire(p, coreModuleName))

In order to workaround es6 imports there should be something like:
        root
            .find(j.ImportDeclaration)

I'm dumb in AST, so I can't make a PR.

There should be at least partial support for this (see #42).  Can you provide an example of the source that is being skipped, please?

➜  /tmp cat example.js
import React from 'react';

class Foo extends React.Component {
    randomMethod() {
        React.findDOMNode(this.refs.foo).style.display = 'none';
    }

    render() {
        return
foo
;
    }
}
➜  /tmp jscodeshift -t rcm/transforms/react-to-react-dom.js example.js
Processing 1 files...
Spawning 1 workers...
Sending 1 files to free worker...
All done.
Results:
0 errors
1 unmodified
0 skipped
0 ok
Time elapsed: 0.842seconds
➜  /tmp cat example.js
import React from 'react';

class Foo extends React.Component {
    randomMethod() {
        React.findDOMNode(this.refs.foo).style.display = 'none';
    }

    render() {
        return
foo
;
    }
}

Thanks. I'll see if I can get a PR in this afternoon.

@miraage I just realized this may be intentional.

It does not support ES6 modules or other non-CommonJS systems. We recommend performing the findDOMNode conversion first.
readme

Have you tried running findDOMNode before react-to-react-dom?

Sure. It worked awesome on code with this.getDOMNode(), but not React.findDOMNode().

The react-dom codemod just hasn't been updated. You can send a pull request to add the detection for import statements, just like other codemods do, like the class codemod.

I'm going to take a stab at this in a minute. There's a util file that I thought all the codemods were using for this sort of thing. I'll try and sort them out.

Looks like there were no tests for react-to-react-dom, so it's slow going teasing it apart without breaking anything.  I've got a fork that I'm working on I'll submit for a PR, but it won't be quick.

@reergymerej thank you.

You're welcome. I wouldn't close this yet though. ;)


installation guide and procedure to generate profile

hi jessfraz, I  am new to Docker and AppArmor, after a long research I was able to find a profile generator but I am unable to understand the procedure in readme file can you please create a step by step guide and also explain how to generate a profile for a service running in a container using Bane and even how to install bane.

It is in the section "installing a profile"
$ sudo bane sample.toml
Profile installed successfully you can now run the profile with
docker run --security-opt="apparmor:docker-nginx-sample"
now let's run nginx
$ docker run -d --security-opt="apparmor:docker-nginx-sample" -p 80:80 nginx
On Jun 2, 2017 14:02, "sujjit1991"<EMAIL_ADDRESS>wrote:

hi jessfraz, I am new to Docker and AppArmor, after a long research I was
able to find a profile generator but I am unable to understand the
procedure in readme file can you please create a step by step guide and
also explain how to create a profile of a container using Bane and even how
to install bane.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jessfraz/bane/issues/13, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABYNbMnVsff234873b2_I9TU61cTcr7Mks5sAHhMgaJpZM4NuyEw
.

Installing is downloading a binary from the links also in the readme. They are prebuilt and downloadable


only show proof-view when interacting with a script

current behavior: load proof-view as soon as a script is opened.
new: wait until interaction (e.g. stepForward)

Proposed function: add an option to settings.json, called "startCoqtopOn", to select between "script-open", "interaction", or "start-command". Respectively, coqtop will start once a document is first opened, the user initiates script-navigation/interaction, or when an explicit [key-bindable] command is given by the user (e.g. resetCoq). Make "interaction" the default.


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/1072 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target.git

Docs Build status updates of commit c3d2925:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error: RepositoryUnauthorizedWithSourceCommit] Git data access to 'https://github.com/opstest2/docs-archive-test-source' (branch: Release_Archive_main_2022-03-07-07-55-29) is not authorized.. It looks like this might be the first time user: v-alji submitted a pull request to this repo. Before user can run builds in a pull request, he/she can enable 'v-alji' GitHub account in Docs by visiting Docs Portal (https://ops.microsoft.com). After enabling his/her account (v-alji), close and then reopen this pull request to start another build.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


[BUG] Hyperlink broken for Private AKS cluster creation details

Rancher Server Setup

Rancher version: 2.7.5-rc1
Installation option: Helm

If Helm Chart, Kubernetes Cluster and version: AKS with Kubernetes v1.25.5

Information about the Cluster

Kubernetes version: v1.26.0
Cluster Type: AKS cluster

User Information

What is the role of the user logged in? Admin

Describe the bug
This issue was found during validation of version 2.7.5-rc1.
When provisioning a private AKS cluster (selecting the 'Enable Private Cluster' option), a pop-up appears with the following message:
AKS private clusters is an advanced use case which requires Rancher to be running on the same NAT as the AKS
nodes. Before enabling private clusters ensure you have read through the AKS cluster provisioning docs for
instructions on configuring AKS so nodes may communicate with Rancher.

Including the link AKS cluster provisioning docs, which returns a 404 error.
To Reproduce

Using Rancher UI, provision a new AKS cluster
Configure the cluster to be private: Networking Options -> Show advanced options -> Enable Private Cluster

Result
Link to documentation AKS cluster provisioning docs returns 404 - Not found
Expected Result
Hyperlink should be updated for Private AKS cluster creation details
Screenshots

Additional context
This issue has also been identified for other providers:

rancher/dashboard#9002

@gaktive This is a partly issue with the docs - we need to link to a versioned doc link - otherwise when we release the next minor version (2.8), any 2.7 install will link to those docs, not the 2.7 docs.
Looks like the link we were using has changed - the link Paul shows is the correct link - although I think we should link to the private cluster section - i.e.   for. 2.6:
https://ranchermanager.docs.rancher.com/v2.6/how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/aks#private-clusters
Note, there is no redirect for 2.7 - so the link we would want:
https://ranchermanager.docs.rancher.com/v2.7/how-to-guides/new-user-guides/kubernetes-clusters-in-rancher-setup/set-up-clusters-from-hosted-kubernetes-providers/aks#private-clusters
returns a 404.

Some connection to https://github.com/rancher/rancher-docs/issues/662


Fix for issue #845 - missing role config file for franklinkim.newrelic

Fixes issue #845 where the user gets a "Deprecation Warning" - Replacing the missing config.yml file from franklinkim.newrelic fixes this.

@vml-jbartlett - Hmm... are you using Ansible 2.2? I haven't seen this issue; but any problems with the newrelic role should be fixed upstream in that role's repository: https://github.com/weareinteractive/ansible-newrelic

@geerlingguy - The problem wasn't with the NewRelic repo itself, but the fact that the config file was missing from the role in DrupalVM. The config.yml file is blocked from upload due to the blanket ignore in the root .gitignore file - therein, not uploading into the hub from your local environment.
None of our projects even use NewRelic, but as this file was missing, we received the error anyway. When I ran ansible-galaxy install -r requirements.yml --force and found the file (the only one missing) and the error has since disappeared.
To test this, rename or remove the NewRelic config file from your local and run a new install to see if the error appears. It should come up after the vagrant startup at the start of the playbook provision run.

Ooooh... I see. Reopening, will test and merge :)


MSID: 89054 Version: 2 DOI: 2<IP_ADDRESS>3693

[PLACE MANUSCRIPT AND EDITOR DETAILS HERE WHEN AVAILABLE] See step 3
[PLACE PDF URL HERE WHEN AVAILABLE] See step 7
Step 1. Inform bioRxiv
Who can help: @QueenKraken, @nlisgo, @scottaubrey

[x] Manuscript is in data hub index (https://data-hub-api.elifesciences.org/enhanced-preprints/docmaps/v1/by-publisher/elife/get-by-manuscript-id?manuscript_id=89054)

Step 2. Create preview of manuscript
Who can help: @fred-atherden, @nlisgo, @scottaubrey

[ ] Manuscript is available for preview (https://prod--epp.elifesciences.org/preview/89054/v2)

[ ] Trigger import for staging: https://prod--epp.elifesciences.org/import
[ ] Sync data folder with s3://prod-elife-epp-data/data
[ ] Trigger import for staging: https://staging--epp.elifesciences.org/import
[ ] Sync data folder with s3://staging-elife-epp-data/data
[ ] Pull request created to enhanced-preprint-data
[ ] Post link to pull request below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-manuscript
Step 3: Awaiting public reviews and QC
Who can help: Production team

[ ] QC passed or QC not needed

Who can help: Editorial team

[x] Public reviews available on sciety (https://sciety.org/articles/activity/10.1101/2<IP_ADDRESS>3693)
[ ] Manuscript and editor details at the top of this issue (Supplied by Editorial team)
[ ] Reviews returned by EPP - https://prod--epp.elifesciences.org/api/reviewed-preprints/89054/v2/reviews

Example
"msas": "Genetics and Genomics", "Neuroscience"
"msid": "84628"
"version": "1"
"preprintDoi": "10.1101/2<IP_ADDRESS>4241"
"articleType": "Reviewed Preprint"
"status": "Published from the original preprint after peer review and assessment by eLife."

"Reviewed Preprint posted": "2023-01-02"
"Sent for peer review": "2022-10-28"
"Posted to bioRxiv": "2022-11-21" (link: "Go to bioRxiv": "https://www.biorxiv.org/content/10.1101/2<IP_ADDRESS>4241v1")

Editors:
Reviewing Editor
Michael B Eisen
University of California, Berkeley, United States
Senior Editor
Michael B Eisen
University of California, Berkeley, United States

Step 4: Modify manuscripts.json (no PDF)

[ ] Reviewed preprint is published to EPP (https://elifesciences.org/reviewed-preprints/89054)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[ ] Request that a doi be registered

[ ] Post link to #enhanced-preprint comment below

Pull request: [PLACE LINK TO PULL REQUEST HERE]
#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]

Instructions to modify manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/publish-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/334/files
Once the pull request is merged in it should be available a few minutes later.

Request that a doi
Post the following in #enhanced-preprint:
@Fred can you register a doi for https://elifesciences.org/reviewed-preprints/89054

Step 5: Awaiting search reindex

[ ] Reviewed preprint is avaliable on journal homepage (https://elifesciences.org)

The search reindex is triggered once an hour. We need the reviewed preprint to be indexed as the search application serves the journal homepage.

Additional info
If needed, the jenkins pipeline to reindex search can be triggered sooner.
https://alfred.elifesciences.org/job/process/job/process-reindex-reviewed-preprints/

Step 6: Published! Request PDF generation

[ ] Post the link to the PDF url at the top of the issue

[ ] Post link to #enhanced-preprint comment below

#enhanced-preprint comment thread: [PLACE LINK TO COMMENT HERE]
Post the following to the #enhanced-preprint on slack:
@Ryan Dix-Peek please can you generate a PDF for https://elifesciences.org/reviewed-preprints/89054

Step 7: Introduce PDF to data folder and git repo

[ ] PDF is avaliable at https://github.com/elifesciences/enhanced-preprints-data/raw/master/data/89054/v2/89054-v2.pdf

Detailed instructions: https://github.com/elifesciences/enhanced-preprints-data#add-a-pdf
Step 8: Add PDF url to manuscripts.json

[ ] Reviewed preprint PDF is available for download (https://prod--epp.elifesciences.org/reviewed-preprints/89054)

[ ] Pull request created to enhanced-preprint-client
[ ] Pull request switched to "Ready for review"
[ ] Post link to pull request below

[PLACE LINK TO PULL REQUEST HERE]

Instructions to add PDF url to manuscripts.json

Visit: https://github.com/elifesciences/enhanced-preprints-client/actions/workflows/add-pdf-url-to-manuscript.yaml
Click: Run workflow
Complete the form and click "Run workflow"
A successful run should result in a new pull request at https://github.com/elifesciences/enhanced-preprints-client/pulls
Open the pull request and click the "Ready for review" button to trigger tests
Once the tests pass and you are happy with the changes the PR can be merged

Example pull request: https://github.com/elifesciences/enhanced-preprints-client/pull/397/files
Once the pull request is merged in it should be available a few minutes later.

Step 9: Done!

[ ] Kettle is on!

Moving back to Create preview of manuscript.
@KJT08 FYI, Create preview of manuscript is a step that can't be skipped as we need to load the preprint content to the publishing platform before it can be published (I never properly explained this before, so apologies). If the reviews have been posted shortly after the ticket has been raised, please can you move it to Create preview of manuscript and add a comment saying the reviews have been posted so that I can prioritise loading it?


[streaming] [wip] Fault tolerance prototype (for limited case)

This is the first limited case prototype for streaming fault tolerance. The intention is to provide at least once processing for both states and messages from Kafka. On failure a whole new ExecutionGraph is submitted to the cluster continuing from the last known Kafka offset.
The PR contains three separable tasks:

Logic in the JobManager and TaskManager to emit barrier triggering state checkpointing and a new actor to monitor the state (mostly @senorcarbone)
New functionality for the record readers handling barriers and state handling on the stream vertex side (mostly @gyfora)
Low level Kafka API connector for resetting the offset on failure and storing it as a state (mostly @mbalassi)

Heads-up:

@senorcarbone has a bug on the JM side
Kafka state is hard-coded in the stream vertex
The last Kafka commit is unfinished
All three of us are still working on the issue

hold on, will commit an update very soon. :P

Nice first prototype. From my first tries, it seems to work with respect to checkpointing Kafka state in a pipelined (non-blocking) fashion and to reuse it.
Here are a few things I think should be addressed, to make sure that we get high code quality for this sensible piece of the system.

This seems to have reproducibly broken the TaskManagerFailureRecoveryITCase.testRestartWithFailingTaskManager. Probably through the additional "restart()" call in the execution graph. I am confused why it does not break more.

This Pull Request "sneaks" in a new job type flag, which marks jobs as "batch" or "streaming". I think this is definitely much needed, and we should make this more prominent.

Some commits introduce a completely new code style. I have recently written a mail to the mailing list with a discussion about more homogeneity in the project. This is a good example, where there is no good reason not to stick with the common style from the rest of the code. Makes the code much more readable if there is a common style behind it.

Related to the previous comment, there are quire a few unnecessary reformattings, which actually take code that was in the original common style, and change it to a different uncommon style.

There are many "printStackTrace" command and logging in general is neglected a bit. For a complex mechanism like this, it is super crucial as soon as you need to debug a deployed case.

Comments are missing big time. This code

Messages received by the JobManager/TaskManager which are dedicated for another actor can be "forwarded". That keeps the original sender, which helps in routing answers.

I would suggest to rename the "StreamStateMonitor" to something along the lines of "StreamCheckpointCoordinator".

The TaskManager and JobManager have quite a few different messages to handle, would be nice to do more communication endpoint to endpoint (state tracker to source). Not urgent, may be a future refactoring.

Along the lines of getting/maintaining a more coherent code base, I would vote to make new classes in the flink-runtime project in Java. Actors via "UntypedActor" are not too bad in Akka/Java.

I think the best way of desiging a resilinet system is to not make a distinction between the first execution, a recovery execution, a rebalance execution, ... They all should function the same way. There should be no dedicated code paths and flags "onRecovery". The only difference here is that initially, the state is empty, which can be modelled as state as well.

For the sake of structure, can you also squash a few cleanup commits and prefix all commits consistently with issue numbers and component (https://cwiki.apache.org/confluence/display/FLINK/Apache+Flink+development+guidelines)

thanks for the review Stephan! The synchronous call to executionGraph restart was a very sneaky thing, I committed it by mistake while trying some things out and it's most probably why the test case fails, my bad. I addressed some of the quick changes  you mentioned already to my last squashed commit.

Thanks for the review, @StephanEwen. We have addressed the issues you have mentioned and squashed the commits a bit. Hopefully the PR is ready to  merge.

A setNumberOfExecutionRetries(int) method is really needed in the StreamExecutionEnvironment. I'm adding it to a separate upcoming PR working on [1].
[1] https://issues.apache.org/jira/browse/FLINK-1669

Looks good. I will make a final pass and merge it...

Testing so far indicates all issues are fixed. Rebasing worked without problems...

Last check on Travis before merging.
There are a couple of followup changes I would propose, let's start a separate thread about this on the mailing list.


MS-60B+ effect decode glitch

decode_effect.py glitches on a few of the installed effects, seems related to characters in name.
Traceback (most recent call last):
  File "/home/simon/zoom-zt2-sdw-github/zoom_fx_ms-plus/ms-60b/../../decode_effect.py", line 244, in <module>
    main()
  File "/home/simon/zoom-zt2-sdw-github/zoom_fx_ms-plus/ms-60b/../../decode_effect.py", line 121, in main
    config = zoomzt2.ZD2.parse(data)
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/construct-2.10.70-py3.11.egg/construct/core.py", line 404, in parse
  File "/usr/local/lib/python3.11/dist-packages/construct-2.10.70-py3.11.egg/construct/core.py", line 416, in parse_stream
  File "/usr/local/lib/python3.11/dist-packages/construct-2.10.70-py3.11.egg/construct/core.py", line 428, in _parsereport
  File "/usr/local/lib/python3.11/dist-packages/construct-2.10.70-py3.11.egg/construct/core.py", line 2236, in _parse
  File "/usr/local/lib/python3.11/dist-packages/construct-2.10.70-py3.11.egg/construct/core.py", line 428, in _parsereport
  File "/usr/local/lib/python3.11/dist-packages/construct-2.10.70-py3.11.egg/construct/core.py", line 2770, in _parse
  File "/usr/local/lib/python3.11/dist-packages/construct-2.10.70-py3.11.egg/construct/core.py", line 428, in _parsereport
  File "/usr/local/lib/python3.11/dist-packages/construct-2.10.70-py3.11.egg/construct/core.py", line 820, in _parse
  File "/usr/local/lib/python3.11/dist-packages/construct-2.10.70-py3.11.egg/construct/core.py", line 1721, in _decode
construct.core.StringError: cannot use encoding 'ascii' to decode b'PITCH SHIFT\xff\xe5'

The other effects decode as:
effects_sort.txt

This is the same problem as #76
Affects these effects
-rw-rw-r-- 1 simon simon     0 Sep  6 20:40 B_MOCT.ZD2.txt
-rw-rw-r-- 1 simon simon     0 Sep  6 20:40 B_OCTAVE.ZD2.txt
-rw-rw-r-- 1 simon simon     0 Sep  6 20:40 B_PITCH.ZD2.txt
-rw-rw-r-- 1 simon simon     0 Sep  6 20:40 B_PLY_LT.ZD2.txt
-rw-rw-r-- 1 simon simon     0 Sep  6 20:40 B_PLYOCT.ZD2.txt
-rw-rw-r-- 1 simon simon     0 Sep  6 20:40 HPS.ZD2.txt

This is due to the long GroupName for 'PITCH_SHIFT', 11 characters.
00000050  00 00 00 00 00 00 00 00  01 31 2e 31 30 00 00 07  |.........1.10...|
00000060  50 00 00 07 48 50 53 00  00 00 00 00 27 b6 3e 50  |P...HPS.....'.>P|
00000070  49 54 43 48 20 53 48 49  46 54 ff e5 00 00 00 00  |ITCH SHIFT......|
                                         ^^ ^^
00000080  49 43 4f 4e b6 00 00 00  42 4d b6 00 00 00 00 00  |ICON....BM......|
00000090  00 00 3e 00 00 00 28 00  00 00 17 00 00 00 1e 00  |..>...(.........|

Fixed.

Crap, broke other stuff... working on it. :-0

Hopefully fixed now.


feature request: removing reactions

Hey, I think it would be great if we could also remove reactions. Cheers!
This could also be done in the form of replacing them, like in peter-evans/create-or-update-comment

Hey @joshuajeschek, this seems reasonable.
It might take me a few weeks to get to this, but I'd also accept a PR if someone else gets to it first.


Incorrect drag image in some cases

Dragging from a folder onto the desktop shows the drag image coming from the Desktop DOM image (with its icons) in the wrong position. In Safari 18.

Also drag images from folders looks different in Windows 10 now it seems?

This doesn't seem to be an issue in my testing now. Maybe the image just didn't update for some reason, but I need better recreation steps to know why.

This still happens on iOS 18 when dragging a single video to the desktop. The drag image is random text from the desktop icons.


Extensions to VariableLength: support arrays whose length is determined by another field

This change updates the VariableLength class to support variable length fields where the length is determined by another field in the packet. For example, you could have fields data1_len which sets the length of the data array, and then data2_len which follows it and sets the length of the data2 array. I have been told that some instruments generate these types of packets, which were currently unsupported by the array_shape="expand" method.
I added a new test for this and all the previous tests pass.  I updated the user's guide for variable length packets and added to the changelog.

   import ccsdspy
   from ccsdspy import PacketField, PacketArray

    pkt = ccsdspy.VariableLength([
         PacketField(
              name='SHCOARSE',
              data_type='uint',
              bit_length=32
         ),
         PacketField(
              name='data_len',
              data_type='uint',
              bit_length=8,
         ),
         PacketArray(
              name="data",
              data_type="uint",
              bit_length=16,
              array_shape="data_len",  # links data to data_len
         ),
         PacketField(
              name="checksum",
              data_type="uint",
              bit_length=16
         ),
    ])

Codecov Report
Base: 92.42% // Head: 92.73% // Increases project coverage by +0.30% :tada:

Coverage data is based on head (c384486) compared to base (a5708b4).
Patch coverage: 97.82% of modified lines in pull request are covered.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #57      +/-   ##
==========================================
+ Coverage   92.42%   92.73%   +0.30%
==========================================
  Files           5        5
  Lines         383      413      +30
==========================================
+ Hits          354      383      +29
- Misses         29       30       +1

Impacted Files
Coverage Δ

ccsdspy/packet_fields.py
84.74% <80.00%> (-0.97%)
:arrow_down:

ccsdspy/packet_types.py
94.26% <83.33%> (-0.66%)
:arrow_down:

ccsdspy/decode.py
97.14% <100.00%> (+1.09%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

@ehsteve Let me know what you think of this at a high level. There's a lot of dense code added, no pressure to review it

Closes #58

Build of Updated documentation (hidden from public):
https://ccsdspy.readthedocs.io/en/var-length-prev-field/user-guide/variablelength.html

Hey @ddasilva maybe I'm not understanding something but given that the packet length is already in the ccsds header, isn't it always possible to work out the length of a variable field with this new functionality. Seems to me like any data length field is redundant unless you are relaxing the requirement on having only one expanding field.

That is correct, you have multiple variable length fields per packet.

And there is a unit test that does just this!

I updated the user guide to show the example having two reference-based variable fields, and added a statement to the user guide about how there is not a limit to the number of these reference-based variable fields, but there is for expanding fields.
https://ccsdspy.readthedocs.io/en/var-length-prev-field/user-guide/variablelength.html

@ehsteve I merged this because several weeks went by and I assumed you didn't have any comments on this. If you have comments, let me know and we can go back to discuss


Welcoming transfer students

It would be nice to have some material for "transfer students", e.g., students that learned programming using e.g. Java or Python.  Something a bit like what I have at https://spots.augusta.edu/caubert/teaching/general/java/

Pages like https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java could be useful.

Java
C# and Java are similar enough that I would not expect too much difficulty for the adjustment from Java to C#. It's a little difficult for me to suss out exactly what I would recommend as, also being a transfer student, I did not take 1301. I would have also had my comparable class a decade ago, so I am fuzzy on that side of things as well.
What I would focus on would be the cliff note version of 1301. If certain libraries or functions are brought up, denote what they were and link to the docs page for them. I would also maybe go down the list of everything used in 1301 and call out differences in library structure, e.g. "In Java this task required library x and y; in C# you can do all of this with library z." or vice-versa.
It's been a while since I've written in Java, but re-looking into it, one difference would be that while in Java, nothing from java.lang needs imported, i.e. you can use System.out.println with no imports, but in C#, System must be imported to use Console.WriteLine would be an example of what I am referring to.
It might also be worth comparing import and package with using and namespace.
Python
With this, it might be first worth comparing how compiled and scripting languages differ. It would also be worth introducing typing and perhaps getting into why, despite not having declared types, types still existed in Python- they were just handled behind the scenes. For instance:
def add_and_print(x):
    x += 1

    print(x)

x = 2

add_and_print(x)

print(x)

will display:

3
2

and:
def add_and_print(x):
    x.append(5)

    print(x)

x = [1,2,3,4]

add_and_print(x)

print(x)

will display:

[1,2,3,4,5]
[1,2,3,4,5]

This is because, even without typing, types still exist. Primitives are still passed by value, objects are still passed by reference (and strings are still objects that pass by reference but have safety measures in place so that they seem to be treated like primitives- though that arguably is too much at this stage).
Another key distinction with Python, is there is no "main" that is getting written in; one just codes in the file with nothing really declared for where the code that is being executed sits. Python knows to ignore what follows the def with the tabs denoting how long that function code lasts for. What is not tabbed in is where the main stream of code is again. So, just a mention of what { and } are used to denote and the fact that that tabs, while still used for organization, do not actually signal to the compiler where various sections begin and end. Additionally, in Python does not require ; to mark the end of a line, so I would also suggesting calling that out as well.
If you are unfamiliar with Python and how it's "main" works, this code will do the same thing as the above:
x = [1,2,3,4]

def add_and_print(x):
    x.append(5)

    print(x)

add_and_print(x)

print(x)

The only thing python cares about is that add_and_print() is declared prior to it's use. Otherwise, it will let you go in and out of what's in "main" as much as you want. I would not recommend for organizational reasons, but it will let you.
Otherwise, I would say it can be very similar to the Java section, to where only the functionalities discussed in 1301 really need to be covered.
Overall
I would start by formulating a list of what was covered in 1301 and what from that is essential for a student to progress in 1302. With no context for what is covered in 1301, I'll need more information on that course to delve into this in more detail.

And as an aside, if you want an understanding of how cursed Python will let you code things:
x = 0

if x == 0:

    x = 2

    def add_and_print(x):
        x += 1

        print(x)

add_and_print(x)

print(x)

will also work, but:
x = 2

if x == 0:

    x = 2

    def add_and_print(x):
        x += 1

        print(x)

add_and_print(x)

print(x)

will throw an error because add_and_print() only get defined if  x== 0. That said, a really bad design, but I guess where you could practically use it:
x = 2

if x == 0:

    def add_and_print(x):
        x += 2

        print(x)

else:
    def add_and_print(x):
        x += 1

        print(x)

add_and_print(x)

print(x)

will print

3
2

and:
x = 0

if x == 0:

    def add_and_print(x):
        x += 2

        print(x)

else:
    def add_and_print(x):
        x += 1

        print(x)

add_and_print(x)

print(x)

will print

2
0

Again, would not recommend, but it's kind of a manner in which you could leverage it allowing you to declare functions not off the "main".

With my mind on that behavior, something actually worth calling out to students coming from Python is that scope of variables exists in C#. So something like:
y = 0

if y == 0:

    x = 0

    def add_and_print(x):
        x += 2

        print(x)

else:

    x = y * 1

    def add_and_print(x):
        x += 1

        print(x)

add_and_print(x)

print(x)

will still be fine in Python because x still exists outside the scope of if. Once it is declare, it is just declared.


addWorkspaceFolder / removeWorkspaceFolder are not effective API

Testing #37133
fyi @jrieken .

observe that a WorkspaceFolder has three fields: uri, name and index.
observe the reading API: export let workspaceFolders: WorkspaceFolder[] | undefined;

IMHO, the editing API seems out of place:

removeWorkspaceFolder takes as argument a single WorkspaceFolder; why a single one ?
addWorkspaceFolder also takes in a single WorkspaceFolder; why ? It also ignores the index property; how to add something at the beginning of the array ?

e.g. of difficulty:

how to implement replace folder at i with another folder. i.e. workspaceFolders[i] = newWorkspaceFolder:

remove N folders where folder.index >= i, i.e. call removeWorkspaceFolder N times
add N folders back again i.e. call addWorkspaceFolder N times

IMHO a much simpler API would be a setWorkspaceFolders(newWorkspaceFolders: WorkspaceFolder[])

@egamma one idea is to put our new API to proposed API first to better understand the requirements from other extensions. Would that be ok?

@jrieken @alexandrudima without having this coded up yet, what about this:
export function setWorkspaceFolders(folders: (WorkspaceFolder | { uri: Uri; name?: string; })[]): Thenable<boolean>;
Where a folder can either be an existing WorkspaceFolder or a new one.
It avoids having to introduce a separate createWorkspaceFolder method with all the associated issues and it is still long running as before. The downside I see is that we need to tackle the corner cases, e.g. someone could pass in the URI of an existing WorkspaceFolder but with a different name so we should update the name of that workspace folder I guess.
Another downside is that the simple case of adding or removing a single WorkspaceFolder is a lot more work for an extension author...

If full power is needed we should go for something splice'ish. Maybe updateWorkspaceFolders(index, deleteCount, add:{uri, name}[])

@jrieken yeah I like that for the reason of not having the ugly or-type between WorkspaceFolder and  {uri, name}

Continues via https://github.com/Microsoft/vscode/issues/35407


Merge all upstream changes until WLED 0.14.4

The following build breaker is not part of this pull request but is required to compile:
https://github.com/Aircoookie/WLED/pull/4142/commits/2264cc5d10aae1fff21bf34782a09ff5291c9c3d

Hi
There are problems with Github Action (outdated) and because you have submitted PR from the master instead of new branch I couldn't fix them in the easy way. So created new PR. Thanks for pointing on build-breaker. Current PR for 0.14.4 is here: https://github.com/awawa-dev/HyperSerialWLED/pull/10 . Unfortunately it's not stable on esp32. But release based on 0.14.0 is stable so far: https://github.com/awawa-dev/HyperSerialWLED/releases/tag/h0.14.0


Assertion failed

Getting this when I'm running the scene viewer from Visual Studio in debug mode. In release mode I get a black screen and the app crashes after a while.

br,
Sami

hi there, could you please send us the content of your console output so we can debug this issue further, thanks.


CLUE implementation in GPU gives only outliers

After the merging of https://github.com/key4hep/k4Clue/pull/35/, the implementation on GPU will return no clusters, but only outliers.
This currently does not break the tests (which check only if the code run without errors), but it needs to be fixed with a subsequent PR.
To test it:
# source key4hep environment
source /cvmfs/sw.hsf.org/key4hep/setup.sh

# get nvcc 11.4, if needed
source /cvmfs/sft.cern.ch/lcg/contrib/cuda/11.4/x86_64-centos8/setup.sh

# then setup this project
git clone --recurse-submodules https://github.com/key4hep/k4Clue.git
cd k4Clue
cmake -S . -B build
cmake --build build

./build/src/clue/main data/input/aniso_1000.csv 20 25 2 1 1 1

As additional information, I have tried to add the following printouts: https://github.com/ebrondol/k4Clue/compare/geometryTemplateGPU_rebase...ebrondol:k4Clue:GPUdebug?expand=1
which they work fine before the PR, but after the template modifications, the ones in the kernel_calculate_density functions are not printed out.


proper regex for win 2022

The failing images that cause the error have an diffrent name for the  OsVMImage 'windows-2022'
need to account for that
Pull Request Checklist
Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:
See the detailed list in the contributing guide.

[ ] C++ Guidelines
[ ] Doxygen docs
[ ] Unit tests
[ ] No unwanted commits/changes
[ ] Descriptive title/description

[ ] PR is single purpose
[ ] Related issue listed

[ ] Comments in source
[ ] No typos
[ ] Update changelog
[ ] Not work-in-progress
[ ] External references or docs updated
[ ] Self review of PR done
[ ] Any breaking changes?

@gearama Nice catch, thanks for fixing!!


OCM-3677 | fix: cluster-autoscaler enabled for HCP

When creating a HCP cluster, or when handling it in day2 operations, `rosa`` CLI allows handling of cluster-autoscaler resource even though it's not yet supported.
This displays an error and exits the program for those cases.

/cc @sunzhaohua2

/lgtm

/lgtm


Fixed the error message when the wrong bitmap font size is selected

Fixes the issue that was a first wrongfully reported in #1474 and then identified as wrong error message.
Tasks

[ ] Tested on Linux
[X] Tested on Windows
[ ] Tested on macOS
[ ] Tested on iOS
[ ] Tested on Android

How to test this PR?
Follow the instructions in #1474

If anyone is willing to give this a review, @Qu3tzal, @texus, @LaurentGomila


change to bolster spell to +2 can't be turned off

i have a wizard with bolster spell and favorite metamagic bolster spell. i turned off the change to make it +2 and it is still +2 - or +1 with favorite metamagic bolster spell.
i attached a save. to reproduce just try to metamagic any spell with bolster and it will be +2 despite having favorite metamagic - or you can respec the mythic and it will be +2.
Manual_175_bolster_spell_bug.zip

I am not able to reproduce, Nor do I see how this could be the case in code. You WILL need to rebuild the meta magic spells if you prepared them as a +2 cost instead of a +1, though the same is true if you prepared as +1 instead of +2.

i tried rebuilding spells, tried a full respec. despite having canceled the fix to bolster it's +2 or +1 with favorite.

And to clarify you have disabled this setting, saved (this should happen automatically but do it manually to be safe) and restarted the game.

There are other fixes to bolster in Fixes that do not affect cost

yes i disabled this setting.

Then I have no idea but it is not TTT. No code runs involving bolster cost adjustment if that setting is disabled. Unfortunately I cannot load your save, I assume due to other mods, but in all my test files it works exactly as expected.


[microTVM] Improve code reuse in Corstone300 conv2d tests

This pull request contains two changes:

Adds support for specifying an out_layout to the Tensordot-based convolution schedules for Arm Cortex-M. This is useful, as when compiling models like MobileNetV1, we will want to alternate between NHWC and NCHW layers (see this comment for more).

Re-organizes the Corstone300 tests for regular, grouped, and depthwise conv2d to use a shared base class. This removes a lot of code re-use that used to exist in tests/python/relay/strategy/arm_cpu.

I chose to make these changes as one PR instead of two, since I had to change some of the testing logic to support the out_layout parameter (and copying that into four places would be kinda gross). Would love a look from @mkatanbaf!

When reorganizing the tests, I noticed there was duplicate code in tests besides the conv2d ones. Each file has its own calls to relay.op.nn.[operator], which are constructed the same way and then passed to compile_and_run.

Would it make sense to create an even-more-abstract class that handled graph creation and running for all the tests in this directory, not just the conv2d variants?
I would prefer to test our schedules by comparing them to external operator implementations - say, the Tensorflow ones - rather than by comparing them to our x86 schedules. It would be much simpler to do this as well.

* Would it make sense to create an even-more-abstract class that handled graph creation and running for all the tests in this directory, not just the `conv2d` variants?

When I was working on adding corstone to the platforms supported by the project API, we talked about migrating from this test structure and use Project API for these tests too. But then the fvp transport layer was not as stable as we have hoped for, and we didn't continue that work at that time. One argument in favor of creating a more abstract class is that it makes it easier to change the test structure.

Thanks for the review @mkatanbaf! I'm a big fan of the current test runner and of the AOTTestModule and compile_and_run helper functions - they've proven to be stable, and when running the tests locally they're relatively fast too.
It is possible we change the test structure in the future though - your argument makes sense. Creating a more abstract class is probably OOS for this PR, but I'd be open to it in the future.

@guberti the problem with current test setup is that we cannot test it on hardware out of the box. So ideally we want to move to project API for corstone so we have the same standard API for testing Zephyr/Arduino/Corstone300 or any other microtvm platform with ARM chip

@mehrdadh thanks for explaining, that makes sense. Tests should pass now, would you mind reviewing and merging?

Thanks for the review @areusch! Your comments should be addressed by fed35c2.


Small Syntax Highlighting Inconsistencies with CSS/SCSS

Issue Type: Language Service Polish/Bug Report
An annoying thing that has been bugging me since I started using SCSS with VSCode is the small inconsistencies with themes when it comes to SCSS and CSS. Specifically, I'm going to be talking about attribute selectors and brackets as well as some bugs I found

VSCode Version: 1.27.0-insiders
OS Version: Windows 10 1803, 17134.228

Note, using default dark to explain my examples
Reproducing Attribute Selector problem

In CSS Language, type something like this:

p[data-theme="xd"] {}

In VSCode, the quotes are highlighted correctly (in that brownish colour) and so are the brackets, note this.
Switch it to SCSS mode, the brackets aren't highlighted in that colour, the quoted text is uncoloured and the attribute selector isn't highlighted in blue. After inspecting TM Scopes, it seems they are slightly different, which doesn't make sense to me since SCSS is essentially an extension to CSS, so surely they should have the same foundations?
Screenshots:
CSS Mode:

SCSS Mode:

Reproducing Brackets problem

In CSS Language, type something like this:

a:nth-child() {}

In VSCode, the brackets are highlighted the same as the pseudo-class.
Switch it to SCSS mode, the brackets aren't highlighted in that colour; it is the same problem: TM Scopes
Screenshots:
CSS Mode:

SCSS Mode:

Finally, there is a weird error which occurs, this is very common with Math(s) functions such as calc() where for some reason, eventually the numbers don't get highlighted properly. To repro:

In SCSS, type this:

p {
  font-size: calc(10px + (56 - 10) * ((100vw - 320px) / (1920 - 320)));
}

It highlights correctly for the most part (just that for some reason the * and / which are both operators don't seem to have a scope. Same issue occurs with CSS mode)
Switch to CSS mode and the 1920 and 320 at the end don't get highlighted, regardless of units.
TM Scopes yet again?
Screenshots:
CSS Mode:

SCSS Mode:

Benefits of investigating:

Would help with themes
Solve missing polishes for a better overall look

Does this issue occur when all extensions are disabled?: Yes

Not relevant

The css grammar and scss grammar are separate, so there can be differences. We get them from external repos, so it's not in our control.
Both emit punctuation scopes for the bracket.
But what results in the different color is that for css the meta.selector.css scope matches to a color.
That's actually a bug with the default theme, as meta scopes should not be used to colorize.

So I probably see if I can remove the meta.selector coloring from out default themes.
That's likely not what you wanted.
If you like bracket coloring, I suggest adding a custom rule with the coloring you want
"editor.tokenColorCustomizations": {
		"textMateRules": [
			{
				"scope": "punctuation",
				"settings": {
					"foreground": "#FF0000"
				}
			}
		]
	}

I fixed our default themes to not colorize 'meta.selector. That fixes the a:nth-child() {}` example.
I filed https://github.com/atom/language-css/issues/147 against the css grammar for the calc example
I created https://github.com/atom/language-sass/issues/257 against the scss grammar for the p[data-theme="xd"] {} example

Cool thanks!


[Bug]: Updating Github personal access tokens

Describe the bug
Github adds a limit to the fine-grained Personal Access Tokens, expiring them after a year (max limit). Once they are expired and regenerated, how do I update these in the plugin? I couldn’t find an option to update/reauthenticate via the command palette.
Relevant errors (if available) from notifications or console (CTRL+SHIFT+I)
No response
Steps to reproduce
Wait for tokens to expire, update/create new one on Github.
Expected Behavior

Add a way to update the tokens if needed
Add a note in documentation

Addition context
No response
Operating system
macOS
Installation Method
None
Plugin version
2.24.0

Does the authentication already fail, or are you still able to push/pull. If not, please share any error messages. May you share your global git config without personal information to see which credential helper you use?


Values for optional_scan_interval

Great work!
just a questions. What are possible and meaningful value for optional_scan_interval?
Best

Hi,
the unit is in seconds -> so with:
scan_interval: 600
the data will be pulled every 10 minutes.


Add Fossil SCM integration

Please add the support of Fossil SCM (the great Swiss Army knife with DVCS, Wiki, Bugtracking, Notes and Web Interface by the author of SQLite)

Hi, @cidious. It is a good idea, thank you! But now I am not ready to do Fossil integration by myself. I will wait pull request for it.


fix issue #1305

Pull Request Type
What kind of change does this PR introduce?
[X] Solved an issue/task
[ ] Bugfix
[ ] Feature
[ ] 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?

Issue Number: #1305
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 our forkcommitmerge.io website repository. The repository contain real issues that you can help to resolve or create some of your own if you see any bugs or want to add new features to the site, etc. 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!


Issues when removing padding

Sketch 49, Paddy2 v0.2:

Select a background shape layer.
Click padding +.
Uncheck padding.
Delete padding.

Two issues occur:

The Paddy icon is removed, but the normal layer icon does not appear.
"Ignore for spacing / padding" is checked by itself.

Thanks again @aparajita!
I'm able to reproduce this.
Cheers 👍

Hey @aparajita – this should be fixed in the v0.3 build 👍


[DOCFIX] Improve security docs

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/2164/
Test PASSed.

@bf8086

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/2174/
Test PASSed.


Setup with Buefy/Bulma

I'm configuring vue-starter with Buefy based on its customized config: https://buefy.github.io/documentation/customization which would give the flexibility to override variables and create a custom build from their SASS/SCSS files.
I also used the hints from here. However so far I couldn't manage to selectively disable the use of css modules just for Buefy/Bulma to get the global classes in the output. In the webpack.base.config.js I can set modules: false but that's not exactly what I want to achieve. Buefy/Bulma should be global while all the other SCSS should remain module-scoped. What's the trick for this? Thanks!

Update: using oneOf with resourceQuery: /module/ in the webpack config and including buefy in a separate <style> block without the module argument helps. Details here. Perhaps worth mentioning this in the docs because most CSS frameworks expect the availability of global CSS classes while vue-starter relies on CSS modules.


Revert disabling of ctas test

Closes #3476
I was able to reproduce this in the EGX environment after running it exactly the same way the job does.
It looks like it boils down to a config we couldn't easily unset spark.sql.hive.metastore.version and spark.sql.hive.metastore.jars. If I point the job at configs without the two, spark picks the "builtin" version, which seems ideal, so we don't have to match hive client jars to the versions of Spark we are testing.
I also reverted "spark.sql.legacy.createHiveTableByDefault": "false", and tested that it works without this diff as well.

build


[storage] expose latest ledger info

Motivation
Why not? (more serious, need this to optimize leader reputation)
Have you read the Contributing Guidelines on pull requests?
Y
Test Plan
Existing tests.
Related PRs
(If this PR adds or changes functionality, please take some time to update the docs at https://github.com/libra/website, and link to your PR here.)

@bors-libra r=msmouse

:pushpin: Commit c5e5df1 has been approved by msmouse

:hourglass: Testing commit c5e5df10679af8809325eeaa3719829218a51fee with merge 73aa95dd5aa2bc2b6c387d17bd1397e9402444e7...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: msmouse
Pushing 73aa95dd5aa2bc2b6c387d17bd1397e9402444e7 to master...


Title should be always showed as long is nothing is selected

This is a very minor change that I find rather useful - I think it makes more sense to always show the title as long as nothing is selected (and only after that show "1 / X selected"). For now if we choose multiple select mode without folders, title is never shown (which is actually an unexpected behavior for developer, since we set the title but never see it) - it took me a couple of minutes to understand where is my title suddenly gone until I remembered that the only thing I've changed was multiple selection. Title is a brief explanation for user about what he is supposed to do now (for instance what are these pictures are about or where do they come from) so I think it is crucial to show it for the first time the user sees image picker activity.
The change is trivial - modify getTitle method inside RecyclerViewManager to this
int selectedImagesCount = imageAdapter.getSelectedImages().size();
 if (config.getMode() == ImagePicker.MODE_MULTIPLE && selectedImagesCount > 0)
 {
            return config.getLimit() == ImagePicker.MAX_LIMIT
                    ? String.format(context.getString(R.string.ef_selected), selectedImagesCount)
                    : String.format(context.getString(R.string.ef_selected_with_limit), selectedImagesCount, config.getLimit());
}

@chpasha fair enough. I take some different implementation though. For making this behavior optional, you have to set your imageTitle explicitly.
ex:
ImagePicker.create(this).imageTitle("Tap to select").start(CODE);

Unless you set it, the behavior still the same as previous version.
PS: This introduce some breaking changes too in how the default title is obtained. (maybe affecting your code)
Cheers!

Released @ https://github.com/esafirm/android-image-picker/releases/tag/1.8.0


DXVK doesn't work with Intel HD Graphics Windows Vulkan driver..

now that DXVK is sane enough to generate both d3d11.dll and dxgi.dll using it on Windows for testing is much easier..
As my previous reports show multiple games work/or at least launch to menu and also ComputeMark..
Nvidia has improved from crashing to working the sample apps included (d3d11-compute & trinagle)
but still some bugs are left as for example ComputeMark2 renders all tests black screen saying failing
err: DxvkComputePipeline: Failed to compile pipeline
Anyway more stange is on Intel iGPUs all basic samples ( dxgi-factory d3d11-triange d3d11-compute) fail
the problem is don't crash.. the executable launched from command line doesn't return..  and worse is that all file logs (like dxgi-factory_dxgi.log) are empty (0bytes) even seeing while executing app or after forced close
of course I have tests Intel Vulkan driver with Windows apps and it works correctly is not a problem of having it installed incorrectly..
also this driver I use 4933 has lots of extensions (https://vulkan.gpuinfo.org/displayreport.php?id=2529#extensions)
so I assume all you need are there..
Software information
all fail dxgi-factory d3d11-triange d3d11-compute
System information

GPU: Intel HD 530
Driver: Intel graphics driver <IP_ADDRESS>33
Wine version: none run native
DXVK version: latest up to https://github.com/doitsujin/dxvk/commit/26ef59dd6f3740f53dd4fdbae76144d0e0c96604

Log files

d3d11.log: produced files are empty
dxgi.log: produced  files are empty

The information on the Intel driver on the wiki applies to both Linux and Windows.
All Intel drivers currently lack depth bounds and UAVs, and without those features DXVK won't work.

Ah OK I saw ANV driver not supported not remembered Windows driver is about the same..

Can you post vulkaninfo output? My guess is that DXVK is trying to use some features that the driver doesn't support, which is actually the case on ANV driver at the moment.

I'd recently wanted to find out whether there is a difference between Intel ANV and Intel for Windows.
I uploaded a GPU report for Windows here, and one on ArchLinux here. depthBounds are not supported on either.

The issue is about calling vkCreateInstance on his driver ends up calling your dxgi CreateDXGIFactory or CreateDXGIFactory1 method which also ends up calling vkCreateInstance:
I solve assuming first call to CreateDXGIFactory* is from app others are from Intel Vulkan driver:
very crude hack:
feel free to improve:
note I have seen in AMD or Nvidia Vulkan driver binaries also DXGI and CreateDXGIFactory references but may be they end up loading correct DXGI from Windows system folder..
may be it's an Intel bug and should be pointed to them..
--- C:\dxvk\igpu2\dxvk\src\dxgi\dxgi_mainori - copia.cpp	2018-03-02 17:37:04.831000000 +0100
+++ C:\dxvk\igpu2\dxvk\src\dxgi\dxgi_main.cpp	2018-03-02 18:04:17.604000000 +0100
@@ -22,12 +22,39 @@
}
}
+typedef HRESULT (__stdcall PFN_trueCreateDXGIFactory1)(REFIID riid, COM_Outptr  void **ppFactory);
+typedef HRESULT(__stdcall PFN_trueCreateDXGIFactory)(REFIID riid, COM_Outptr  void **ppFactory);
+
extern "C" {

static int counter1 = 0;
DLLEXPORT HRESULT __stdcall CreateDXGIFactory1(REFIID riid, void **ppFactory) {

return dxvk::createDxgiFactory(riid, ppFactory);

counter1++;

  if (counter1 > 1)

  {

  	HMODULE lib = LoadLibrary("c:\\windows\\system32\\dxgi.dll");

  	PFN_trueCreateDXGIFactory1 *fp = (PFN_trueCreateDXGIFactory1*) GetProcAddress(lib, "CreateDXGIFactory1");

  	// cast p to the approriate function pointer type (fp) and call it

  	return fp(riid, ppFactory);

  	FreeLibrary(lib);

  }

  else

  	return dxvk::createDxgiFactory(riid, ppFactory);

}
DLLEXPORT HRESULT __stdcall CreateDXGIFactory(REFIID riid, void **ppFactory) {

counter1++;

  if (counter1 > 1)

  {

  	HMODULE lib = LoadLibrary("c:\\windows\\system32\\dxgi.dll");

  	PFN_trueCreateDXGIFactory *fp = (PFN_trueCreateDXGIFactory*)GetProcAddress(lib, "CreateDXGIFactory");

  	// cast p to the approriate function pointer type (fp) and call it

  	return fp(riid, ppFactory);

  	FreeLibrary(lib);

  }

  else

return dxvk::createDxgiFactory(riid, ppFactory);
}
}
\ No newline at end of file

I'll close this as I have no intention to support a workaround only for Intel's Windows driver.

To clarify...Intel GPU hardware doesn't support depth bounds test.  Drivers would have to emulate the feature with software, and none of them - on any OS - do that today.  So, this resolution basically means "DXVK won't work on Intel GPUs".
It seems a bit odd to require a feature that's optional even in DX12...

@kaydenl The depth bounds requirement was a mistake that I fixed several months ago, and DXVK works on ANV. It doesn't work on the Windows driver because it tries to create a DXGI factory, but it does so with DXVK's dxgi.dll and not the one provided by Microsoft, which results in an infinite recursion.

Oh, nevermind then.  Thanks!  Someone was confused and asking us to support that feature for DXVK.  Sounds like we don't need to.

@doitsujin That someone was me. @kaydenl Thanks for taking the time to comment on this. I appreciate it. :)


[WIP] Ingestion prep:  subscription backfill endpoint

Codecov Report

Merging #276 (f3459a0) into master (b311a44) will decrease coverage by 2.25%.
The diff coverage is 4.34%.

@@            Coverage Diff             @@
##           master     #276      +/-   ##
==========================================
- Coverage   45.46%   43.21%   -2.26%
==========================================
  Files         110      110
  Lines        5109     5114       +5
==========================================
- Hits         2323     2210     -113
- Misses       2612     2746     +134
+ Partials      174      158      -16

Flag
Coverage Δ

integration
?

unittests
43.21% <4.34%> (+0.27%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

internal/subscription/core.go
13.98% <0.00%> (-0.23%)
:arrow_down:

internal/topic/core.go
23.00% <0.00%> (-0.21%)
:arrow_down:

internal/subscription/model.go
100.00% <100.00%> (ø)

pkg/messagebroker/factory.go
33.33% <0.00%> (-33.34%)
:arrow_down:

pkg/messagebroker/kafka.go
10.46% <0.00%> (-29.93%)
:arrow_down:

internal/subscriber/model.go
35.34% <0.00%> (+1.72%)
:arrow_up:

internal/stream/stream.go
33.67% <0.00%> (+6.63%)
:arrow_up:

Continue to review full report at Codecov.

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


Can't upload agent zip file to restore

hello,
I am trying to restore my agent from a backup zip file but when i click upload and select the zip file it won't upload the file.

as you see the window remain like that and don't progress for uploading.

You need to type RESTORE as the text box suggests and then you'll be able to select the Restore button.
Closing due to no direct issue with the sample itself. This is a general question and is better suited for Stack Overflow -- Github issues are for reporting bugs contained in Actions on Google samples or client libraries, thank you for understanding.

ok, thank you fro your time
Le lun. 22 avr. 2019 à 23:53, Sarah Dwyer<EMAIL_ADDRESS>a
écrit :

You need to type RESTORE as the text box suggests and then you'll be able
to select the Restore button.
Closing due to no direct issue with the sample itself. This is a general
question and is better suited for Stack Overflow -- Github issues are for
reporting bugs contained in Actions on Google samples or client libraries,
thank you for understanding.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/actions-on-google/dialogflow-facts-about-google-nodejs/issues/30#issuecomment-485565705,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIREV5X4QTLMD2BGLWPEKBLPRYXWPANCNFSM4HHLLUHA
.

thanks - awful UI though - why is greyed out?!


Preserve sudo passed in config section

The sudo option was getting reset, and would not respect option set
in molecule.yml.