LaTeX commands in Zotero should be exported untouched

Report ID:
Z5WUMPLW-euc
Exporter used:
Better BibLaTeX
Expected behavior:
LaTeX commands in Zotero should be exported untouched.
Actual behavior:
LaTeX commands in Zotero are changed during export.
I'm aware of the what is suggested in #124 (<pre>... </pre> and #LaTeX tag) but, in the settings, I don't see any "retain LaTeX on import" option (mentioned in https://github.com/retorquere/zotero-better-bibtex/issues/124#issuecomment-66689336) which would be easier to use.
For instance, \LaTeX{} is exported as {\textbackslash{}LaTeX\{\}. As a consequence, the following exported reference:
@book{MittelbachLaTeXCompanion2006,
  langid = {french},
  location = {{Paris}},
  title = {\textbackslash{}LaTeX\{\} Companion},
  edition = {2},
  isbn = {978-2-7440-7182-9},
  pagetotal = {1008},
  publisher = {{Pearson Education France}},
  date = {2006-02},
  author = {Mittelbach, Frank and Goossens, Michel},
  translator = {André, Jacques and Bellet, Benoît and Charpentier, Jean-Côme and Hufflen, Jean-Michel and Soulet, Yves}
}

with the following .tex file:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{csquotes}
\usepackage{biblatex}
%
\addbibresource{\jobname.bib}
\nocite{*}
%
\begin{document}
\printbibliography
\end{document}

results in (note the undesirable line break):

By contrast, the following .tex file:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{csquotes}
\usepackage{biblatex}
%
\begin{filecontents}{\jobname.bib}
@book{MittelbachLaTeXCompanion2006-bis,
  langid = {french},
  location = {{Paris}},
  title = {\LaTeX{} Companion},
  edition = {2},
  isbn = {978-2-7440-7182-9},
  pagetotal = {1008},
  publisher = {{Pearson Education France}},
  date = {2006-02},
  author = {Mittelbach, Frank and Goossens, Michel},
  translator = {André, Jacques and Bellet, Benoît and Charpentier, Jean-Côme and Hufflen, Jean-Michel and Soulet, Yves}
}
\end{filecontents}
%
\addbibresource{\jobname.bib}
\nocite{*}
%
\begin{document}
\printbibliography
\end{document}

results in:

You're discussing two separate issues.  We can look at both if you want, but they're not one concern; BBT export can't know how an entry got into Zotero (I can't tell whether you typed in an entry manually or it was imported by BBT or something else). BBT export takes the item as it exists in Zotero as its point of departure.
1
This seems like you want to have the option (again) to import
@book{MittelbachLaTeXCompanion2006,
  langid = {french},
  location = {{Paris}},
  title = {\LaTeX Companion},
  edition = {2},
  isbn = {978-2-7440-7182-9},
  pagetotal = {1008},
  publisher = {{Pearson Education France}},
  date = {2006-02},
  author = {Mittelbach, Frank and Goossens, Michel},
  translator = {André, Jacques and Bellet, Benoît and Charpentier, Jean-Côme and Hufflen, Jean-Michel and Soulet, Yves}
}

and have that \LaTeX show up in Zotero as \LaTeX, and not as LaTeX. This is not currently possible but it's feasible to add it.
2
the other is that you want an entry that has Title: \LaTeX Companion in Zotero to be exported as
title = {\LaTeX Companion}

this is already possible by adding the tag #LaTeX to the item.

You're discussing two separate issues. One is what the entry should look like in Zotero after import,

Do you mean after import in Zotero from a website? If so, no, I didn't want to discuss that point.

the other is what an existing Zotero entry should look like when exported.

Do you mean what an existing Zotero entry should look like when exported by BBT to a .bib file? If so, yes, that's what I wanted to discuss.

We can look at both if you want, but they're not one concern; BBT export can't know how an entry got into Zotero (I can't tell whether you typed in an entry manually or it was imported by BBT or something else). BBT export takes the item as it exists in Zotero as its point of departure.

OK.

1
This seems like you want to have the option (again) to import

Import? No, the other way round (see below).

@book{MittelbachLaTeXCompanion2006,
  langid = {french},
  location = {{Paris}},
  title = {\LaTeX Companion},
  edition = {2},
  isbn = {978-2-7440-7182-9},
  pagetotal = {1008},
  publisher = {{Pearson Education France}},
  date = {2006-02},
  author = {Mittelbach, Frank and Goossens, Michel},
  translator = {André, Jacques and Bellet, Benoît and Charpentier, Jean-Côme and Hufflen, Jean-Michel and Soulet, Yves}
}

and have that \LaTeX show up in Zotero as \LaTeX, and not as LaTeX.
This is not currently possible but it's feasible to add it.

Let me explain my workflow: after importing https://www.amazon.fr/Latex-Companion-1DVD-Frank-Mittelbach/dp/274407182X in Zotero, the Zotero title field contained "Latex Companion" that I manually changed (among others changes) into "\LaTeX{} Companion". Afterwards I exported this reference to a .bib file thanks to BBT.

2
the other is that you want an entry that has Title: \LaTeX Companion in Zotero to be exported as
title = {\LaTeX Companion}

Indeed, except \LaTeX should be \LaTeX{}

this is already possible by adding the tag #LaTeX to the item.

Indeed, but it is a per-entry option, which is tedious if one has several items that need this tag. What would be useful is a "retain LaTeX on import" option in the BBT settings, as mentioned in https://github.com/retorquere/zotero-better-bibtex/issues/124#issuecomment-66689336.

Do you mean after import in Zotero from a website?

I mean whenever you import bibtex, regardless of whether it comes from a file or a website.

Do you mean what an existing Zotero entry should look like when exported by BBT to a .bib file? If so, yes, that's what I wanted to discuss.

Yes, that's what I mean.

Let me explain my workflow: after importing https://www.amazon.fr/Latex-Companion-1DVD-Frank-Mittelbach/dp/274407182X in Zotero, the Zotero title field contained "Latex Companion" that I manually changed (among others changes) into "\LaTeX{} Companion".

From the point of view of BBT, it doesn't matter how the item got into zotero, or what you edited when. BBT just looks at the item as it is at time of export. The history of the item is not available in Zotero...

Afterwards I exported this reference to a .bib file thanks to BBT.

...so as far as BBT is concerned, there is no "afterwards".

Indeed, except \LaTeX should be \LaTeX{}

Yes, to preserve the space.

Indeed, but it is a per-entry option, which is tedious if one has several items that need this tag. What would be useful is a "retain LaTeX on import" option in the BBT settings, as mentioned in #124 (comment).

That's where I think we're talking past each other. This option wouldn't help you, because what you're asking concerns export, not import. How an items was imported, or even that it is imported, cannot be known to BBT. What you want is not "retain LaTeX on import", but "treat everything as if it has the #LaTeX tag even when it doesn't"
I can add the latter option, but for the interim, you can select all entries and drag them onto the #LaTeX tag in the tag overview.

I guess I got confused because that both Zotero and BBT can both import and export :$

Do you mean after import in Zotero from a website?

I mean whenever you import bibtex, regardless of whether it comes from a file or a website.

Do you mean import a .bib file into Zotero? I couldn't even imagine it was possible. But that's not my concern.

From the point of view of BBT, it doesn't matter how the item got into zotero, or what you edited when. BBT just looks at the item as it is at time of export. The history of the item is not available in Zotero...

OK.

Afterwards I exported this reference to a .bib file thanks to BBT.

...so as far as BBT is concerned, there is no "afterwards". There is only "now".

Even if the automatic export isn't activated?

This option wouldn't help you, because what you're asking concerns export, not import.

Indeed, sorry.

How an item was imported, or even whether it is imported, cannot be known to BBT.

Understood.

What you want is not "retain LaTeX on import", but "for export, treat everything as if it has the #LaTeX tag even when it doesn't"

Indeed.

I can add the latter option,

Nice, thanks!

but for the interim, you can select all entries and drag them onto the #LaTeX tag in the tag overview.

Indeed, thanks!

I guess I got confused because that both Zotero and BBT can both import and export :$

Yep, but if BBT is installed it takes precedence.

Do you mean import a .bib file into Zotero? I couldn't even imagine it was possible. But that's not my concern.

Yep, very much possible.

...so as far as BBT is concerned, there is no "afterwards". There is only "now".

Even if the automatic export isn't activated?

Automatic export is just a regular export that is triggered by changes to items rather than an UI action by the user -- no other difference. The history of the item (even the change that just happened) is not knowable inside Zotero. The part that does the actual export does not know (can not know) by what mechanism it was invoked.

I can add the latter option, but for the interim, you can select all entries and drag them onto the #LaTeX tag in the tag overview.

I had forgotten -- this is already available. If you set rawLaTag to *, all items will be treated as raw.

I had forgotten -- this is already available. If you set rawLaTag to *, all items will be treated as raw.

Indeed, nice! Nice, but a bit difficult to figure out such an option exist :smile:.
In fact, I cannot think of any situation where one doesn't want rawLaTag set to *.

:robot: this is your friendly neighborhood build bot announcing test build <IP_ADDRESS>51 ("fixes #1380 (even if it didn't ask for it")
Install in Zotero by downloading test build <IP_ADDRESS>51, opening the Zotero "Tools" menu, selecting "Add-ons", open the gear menu in the top right, and select "Install Add-on From File...".

Indeed, nice! Nice, but a bit difficult to figure out such an option does exist 😄.

Hidden prefs are for things that are less commonly used (and because I don't like UI work). It's always OK to ask here.

In fact, I cannot think of any situation where one doesn't want rawLaTag set to *.

if you have rawImports on, then yes, otherwise you'd never want it on. If your title is Is 4 > 3? An investigation and you have rawLaTag = *, you'd end up with
@article{citekey,
  title = {Is 4 > 3? An investigation}
}

which would render to Is 4 ¿ 3? An investigation. Believe it or not but most people don't have raw LaTeX in Zotero, and I only have it when there's stuff like math in the title.

if you have rawImports on, then yes, otherwise you'd never want it on. If your title is Is 4 > 3? An investigation and you have rawLaTag = *, you'd end up with
@article{citekey,
  title = {Is 4 > 3? An investigation}
}

which would render to Is 4 ¿ 3? An investigation.

Good point!
And other, even worse, cases would be for all the TeX special characters: # $ % & ~ _ ^ \ { }, e.g. with title = {Is 4$ better than nothing? An investigation}... except maybe for the \ special character that, I guess, is very rarely used except, precisely, for LaTeX commands.
And, now, we go back to the subject of this issue :smile: "LaTeX commands in Zotero should be exported untouched". Hence, maybe it is worth having something different from rawImports and rawLaTag, dedicated to LaTeX commands...

There's not enough information in Zotero to determine that something could be LaTeX; a backslash is perhaps not common in titles, but when typed into Zotero, it properly means a backslash, and should be exported as \textbackslash{}. "LaTeX commands in Zotero" are exported untouched if you set rawLaTag to *. I am not going to infer that something is LaTeX and other things are not -- LaTeX is hard enough to parse if you can assume it is valid. Semi-valid LaTeX? Big nope on that one.
In general, AFAIC, if you use LaTeX you are a Big Boy/Big Girl and your either have rawLaTag on, or content with the limitations of what can be put in the Zotero fields.
What would you have in mind besides rawImports (which does only structure parsing and auto-tags imported entries with rawLaTag) and rawLaTag=*? If you just want to exclude specific parts of text as raw LaTeX, that can already be done in a postscript.

:robot: this is your friendly neighborhood build bot announcing test build <IP_ADDRESS>55 ("don't auto-tag if rawLaTag is set to *")
Install in Zotero by downloading test build <IP_ADDRESS>55, opening the Zotero "Tools" menu, selecting "Add-ons", open the gear menu in the top right, and select "Install Add-on From File...".

There's not enough information in Zotero to determine that something could be LaTeX; a backslash is perhaps not common in titles, but when typed into Zotero, it properly means a backslash, and should be exported as \textbackslash{}. "LaTeX commands in Zotero" are exported untouched if you set rawLaTag to *. I am not going to infer that something is LaTeX and other things are not -- LaTeX is hard enough to parse if you can assume it is valid. Semi-valid LaTeX? Big nope on that one.

I can understand.

In general, AFAIC, if you use LaTeX you are a Big Boy/Big Girl and your either have rawLaTag on, or content with the limitations of what can be put in the Zotero fields.

Well, I'm not sure average LaTeX users and, even worse, LaTeX beginners could easily find the relevant information. But, once again, I can understand.

What would you have in mind besides rawImports (which does only structure parsing and auto-tags imported entries with rawLaTag) and rawLaTag=*?

Sorry, still didn't read carefully enough and confused Im/Ex-port.

If you just want to exclude specific parts of text as raw LaTeX, that can already be done in a postscript.

OK, nice. IMHO should be (but I would understand if you would ask me to open a new issue for this):

much more easily accessible,
be applied to other "title" fields ("Short title", "Series title") and maybe other ones ("Abstract"?).

Well, I'm not sure average LaTeX users and, even worse, LaTeX beginners could easily find the relevant information. But, once again, I can understand.

BBT has a options available for configuring it. It can be overwhelming to find stuff on the site. All pages do include an "edit this page" button -- if you have suggestions for improvement, that button will create a pull request for the site.

If you just want to exclude specific parts of text as raw LaTeX, that can already be done in a postscript.

OK, nice. IMHO should be (but I would understand if you would ask me to open a new issue for this):
* much more easily accessible,

I'm open to suggestions on the how of that. I'm a little blind on the deficiencies of BBT since I of course know it fairly well.

* be applied to other "title" fields ("Short title", "Series title") and maybe other ones ("Abstract"?).

postscripts are just bits of javascript, you can do a lot of crazy stuff there to generated references. The code can change absolutely everything on the item being generated. There's some docs, but the docs are pretty dev-oriented, so I generally just have people tell me what they want done, and I do it, then post it on the postscript page as a sample.

Well, I'm not sure average LaTeX users and, even worse, LaTeX beginners could easily find the relevant information. But, once again, I can understand.

BBT has a options available for configuring it.

Do you mean through Preferences/Advanced/Config editor?

It can be overwhelming to find stuff on the site. All pages do include an "edit this page" button -- if you have suggestions for improvement, that button will create a pull request for the site.

What I had in mind was a more exposed option in the UI.

If you just want to exclude specific parts of text as raw LaTeX, that can already be done in a postscript.

OK, nice. IMHO should be (but I would understand if you would ask me to open a new issue for this):
* much more easily accessible,

I'm open to suggestions on the how of that. I'm a little blind on the deficiencies of BBT since I of course know it fairly well.

Here too, what I had in mind was an option in the UI for "detect and protect LaTeX math formulas".

* be applied to other "title" fields ("Short title", "Series title") and maybe other ones ("Abstract"?).

postscripts are just bits of javascript, you can do a lot of crazy stuff there to generated references. The code can change absolutely everything on the item being generated. There's some docs, but the docs are pretty dev-oriented, so I generally just have people tell me what they want done, and I do it, then post it on the postscript page as a sample.

OK, I just suggested additional fields where LaTeX math formulas might be found.

BBT has a options available for configuring it.

Do you mean through Preferences/Advanced/Config editor?

Yep. The more esoteric stuff is configurable but not exposed in the UI -- the preferences of BBT have gotten a little overwhelming (it may well be the case that BBT has as many configuration options as Zotero itself at this stage).

What I had in mind was a more exposed option in the UI.

Most is exposed, but as said, the BBT prefs are overwhelming as is, so things that are rarely used aren't.

Here too, what I had in mind was an option in the UI for "detect and protect LaTeX math formulas".

Ah so; no, sorry, definitely not in the way you have in mind. The postscript facility is exposed in the prefs, but individual postscript samples are not, and "detect and protect LaTeX math formulas" is not something I want to bake into BBT. A title like Fish costs between $2 and $200 a kg would consider 2 and  to be math because that snippet uses a fairly naive heuristic. I want the choice of how that works and fixes for particular cases to be under direction of the individual user whose library it concerns. It is always OK to open an issue to ask "how do I do X in a postscript"; I will explain how if you want, or just make the postscript for you. But I'm not baking specific postscripts into BBT.

OK, I just suggested additional fields where LaTeX math formulas might be found.

That's OK, but the choice regarding which fields to apply this to is up to the user. The samples on the docs site are just that -- samples. It is easy (and legitimate) to change them for your particular case into something like
if (Translator.BetterTeX) {
  if (reference.has.title) reference.add({ name: 'title', value: item.title.replace(/(\$.*?\$)/g, '<script>{$1}</script>') });
  if (reference.has.series) reference.add({ name: 'series', value: item.seriesTitle.replace(/(\$.*?\$)/g, '<script>{$1}</script>') });
  if (reference.has.shorttitle) reference.add({ name: 'shorttitle', value: item.shortTitle.replace(/(\$.*?\$)/g, '<script>{$1}</script>') });
}

or perhaps a little more generally
if (Translator.BetterTeX) {
  for (const [tex, zotero] of [['title', 'title'], ['series', 'seriesTitle'], ['shorttitle', 'shortTitle']]) {
    if (reference.has[tex]) reference.add({ name: tex, value: item[zotero].replace(/(\$.*?\$)/g, '<script>{$1}</script>') });
  }
}

I recognize most LaTeX users aren't necessarily javascript coders, which is why I'll write them on request. The postscript exists so that if I say "I don't want to affect all BBT users" I can also say "but here's how you do it anyway".

OK, thanks.


Insufficient smallA is 2 bytes of non-cryptographic randomness instead of 128 bytes of secure randomness

In the javascript SDK "a" is 128 bytes of cryptographically secure randomness but here it is 2 bytes from System.Random, which is not suitable for crypto:
        /// <summary>
        /// Return the Tuple of (A, a) for SRP
        /// </summary>
        /// <returns></returns>
        internal static Tuple<BigInteger, BigInteger> CreateAaTuple()
        {
            BigInteger a, A;
            do
            {
                a = new BigInteger(16, new Random());
                A = g.ModPow(a, N);
            } while (A.Mod(N).Equals(BigInteger.Zero));

            return Tuple.Create<BigInteger, BigInteger>(A, a);
        }

extensions/src/AWSSDK.Extensions.CognitoAuthentication/Util/AuthenticationHelper.cs
System.Random is also used here:
        internal static void GenerateDeviceSaltAndVerifier(string deviceGroupKey, string deviceKey, string password)
        {
            byte[] deviceKeyHash = GetDeviceKeyHash(deviceGroupKey, deviceKey, password);
            Random random = new Random();

            Salt = new byte[16];
            random.NextBytes(Salt);

            Verifier = CalculateVerifier(Salt, deviceKeyHash);
        }

/extensions/src/AWSSDK.Extensions.CognitoAuthentication/Util/CognitoDeviceHelper.cs

We are planning on addressing this today.

Issue has been addressed with:
https://github.com/aws/aws-sdk-net/commit/2a3d53f300975f501439498c501d6ccf42c2433c
https://github.com/aws/aws-sdk-net/commit/f6a85d66edc05300ea8767840c7bf8018ffc3891
0.9.2 of the nuget package is out here: https://www.nuget.org/packages/AWSSDK.Extensions.CognitoAuthentication/0.9.2


Tests for CASSANDRA-9399

These are the tests for [CASSANDRA-9399] (https://issues.apache.org/jira/browse/CASSANDRA-9399), which was committed yesterday.

@mambocab to review

+1! Thanks, @stef1927.

Thanks guys!

This seems to have become impossible to merge. @stef1927 can you resolve the conflicts with master? Then feel free to merge the PR in.

I rebased with master but I cannot merge myself.


Format Document changes the cursor position.

I have set it to format the document when ever I save the file. And I save the file constantly, sometimes just to format the document, other times to save, and other times out of muscle memory for no good reason. So It's annoying that it takes away the cursor from where I'm at each time it happens.

The problem here is with VSCode not being able to place a caret if there are no spaces. Filed #https://github.com/Microsoft/vscode/issues/40676 for the same.

Please fix it

This needs to be fixed in VSCode, https://github.com/microsoft/vscode/issues/13960


Cannot make whole TouchableNativeFeedback component clickable

I am trying to make a slider menu in Android. Therefor I made TouchableNativeFeedback with a View parent and Icon and text children wrapped in. Problem is the whole component isn´t clickable. Only the first 10% from the left hand side is clickable.
I have tried deleting all styling and switch to TouchableOpacity, TouchableWithoutFeedback and TouchableHighlight, but problem still remains.
import React from 'react'
import {View,
Text,
StyleSheet,
TouchableOpacity,
Platform
} from "react-native";
var DrawerMenuItem = React.createClass({
propTypes: {
onClick: React.PropTypes.func,
text: React.PropTypes.string.isRequired,
iconName: React.PropTypes.string.isRequired
},
render: function() {
return(
<TouchableNativeFeedback onPress={this.props.onClick} style={[styles.menuitem, {borderWidth: 1, borderColor: colors.blue}]}>

{this.props.text}

)
}
});
module.exports = DrawerMenuItem;
And in DrawerContent.js:
import React from 'react'
import DrawerMenuItem from './DrawerMenuItem'
import {View,
Text,
StyleSheet,
TouchableOpacity,
TouchableNativeFeedback,
BackAndroid,
ScrollView,
Image,
Platform
} from "react-native";
var DrawerContent = React.createClass({
propTypes: {
onClick: React.PropTypes.func,
resetStack: React.PropTypes.func,
closeDrawer: React.PropTypes.func,
},
_onPress: function(viewToShow){
this.props.onClick(viewToShow);
this.props.closeDrawer();
},
render: function() {
return (
    <View>
      <View>
        <View style={{flex: 1, flexDirection: 'column', justifyContent: 'flex-end'}}>
          <Text>{reduxStore.getState().user.name}</Text>
          </View>
          <Image resizeMode='cover' source={require('../../resources/images/rf_logo_vit.png')}></Image>
    </View>
    <ScrollView showsVerticalScrollIndicator={false} style={styles.menu}>
      <View>
        <DrawerMenuItem onClick={() => {this._onPress('##')}} iconName='line-chart' text={'###'}/>
        <DrawerMenuItem onClick={() => {this._onPress('##')}} iconName='bar-chart' text={'###'}/>
        <DrawerMenuItem onClick={() => {this._onPress('##')}} iconName='bullseye' text={Localize('###')}/>
        <DrawerMenuItem onClick={() => {this._onPress('##')}} iconName='phone' text={Localize('###')}/>
        <DrawerMenuItem onClick={() => {this._onPress('##')}} iconName='file-text' text={Localize('###')}/>

      </View>
      </ScrollView>
    </View>

  );
}

});
DrawerContent is the slider menu and its working. But only the first 10% of the component is clickable. I wish to make the whole component clickable. I mean everything inside TouchableNativeFeedback. Right now it only half of the Icon.

React Native version: 0.31.0
Platform(s) Android (also same problem in IOS)
Operating System: macOS

@facebook-github-bot stack-overflow

Hey @Henny777 and thanks for posting this! @DanielMSchmidt tells me this issue looks like a question that would be best asked on StackOverflow. StackOverflow is amazing for Q&A: it has a reputation system, voting, the ability to mark a question as answered. Because of the reputation system it is likely the community will see and answer your question there. This also helps us use the GitHub bug tracker for bugs only. Will close this as this is really a question that should be asked on SO.


Add a way to know when rendering of an element, and ALL its sub-elements, is finished

This is a meta-issue to replace closed ones.
AS per sorvell's comment,

For efficiency, LitElement renders asynchronously. This makes it possible to batch property updates and integrate updating/rendering with a scheduler that can do chunking.
However, sometimes it's important to know when rendering has finished. While the updateComplete promise is provided for this purpose, for performance reasons it does not recurse into the element's render tree (the elements it creates). This makes it not useful for knowing when an element's complete subtree has fully rendered.

Steve's takle on the issue didn't make it into the main tree.
While proposing possible solution, Steve mentioned this:

Knowing when your subtree is fully rendered is sometimes needed when DOM needs to be measured. When possible, it's always best to wait until requestAnimationFrame to measure DOM. This works well with LitElement since, by default, rendering happens as microtask timing which is always fully completed before any tasks such as requestAnimationFrame or setTimeout. However, sometimes multiple reads from/writes to DOM are necessary to measure correctly. If these writes trigger additional updates/renders, then requestAnimationFrame is not sufficient.

One note I want to stress here is that

The platform answer to this problem is ResizeObserver. Forcing synchronous style/layout in order to measure elements breaks down at scale (...)  Support for this is still pretty limited and polyfilling it is challenging.

Since the original tickets were submitted (#400 and #365), ResizeObserver has been polyfilled although I am not sure about performance.
@justinfagnani I hope this summary nails it.

As noted in my comment, requestAnimationFrame can be used to wait until all elements have updated. This will only not be ideal if you need to make a series of changes that may need to depend on each other, each of which would have to wait for requestAnimationFrame. The reason this is not ideal is because there would then be likely undesirable screen paints before the chain of work is complete.
Does your use case fall into this category?

I updated the original issue, I think I had missed something important.
I think requestAnimationFrame will probably cover most cases. My main gripe with this are two things:

It's not exactly intuitive in its use.

I have done zero work with animation (I know right... I am a server guy at heart... really) and this function is really for:

The window.requestAnimationFrame() method tells the browser that you wish to perform an animation and requests that the browser calls a specified function to update an animation before the next repaint. The method takes a callback as an argument to be invoked before the repaint. Note: Your callback routine must itself call requestAnimationFrame() again if you want to animate another frame at the next repaint. requestAnimationFrame() is 1 shot. You should call this method whenever you're ready to update your animation onscreen. This will request that your animation function be called before the browser performs the next repaint. The number of callbacks is usually 60 times per second, but will generally match the display refresh rate in most web browsers as per W3C recommendation

Which is not exactly overlapping with "Wait till all elements have done their updating"...

It's not 100% clear (to me anyway... I know, small mind) the actual use case when there are problems. For example you write "However, sometimes multiple reads from/writes to DOM are necessary to measure correctly. If these writes trigger additional updates/renders, then requestAnimationFrame is not sufficient." -- I am SURE this has happened to me, but it's difficult to predict and see; and frankly, I am not sure I totally understand 100% of what you mean (and with these problems 100% is the minimum necessary...). If you had endless time, I would beg for a practical example when this would happen. But I realise I am burdening you with yet another request...

Sorry if I wasn't overly helpful. I hope I am voicing other developer's questions as well.

Closing as we have no plans to address this beyond what you can do now: await a task (as described above). If there is a concrete proposal here, it's a big enough feature that should be handled via an RFC.


Add links to doc with hackathon Zoom details.

@larsbarring @efisher008 @davidhassell please could you check and merge if all looks okay.


Bugfix/group chats

There is an issue in the framework's repository which implementation may be helpful to make the code more concise and readable. It's worth to wait for it.

This PR won't be built successfully until https://github.com/kozalosev/goSadTgBot/pull/5 is merged and a new release of the library is released.


Add node run command

This command shells out to run Docker, can also be dry-run to just output the command.
Currently testing this - but worth putting up for review now.
Since there is no monitoring after spawning the container, I'll need to include in the docs about checking calico-node is running after.

@robbrockbank As discussed, from a quick skim this looks functionally OK (with the docker.sock addition). Should @gunjan5 take a look too?


Initial stab at documentation

Rendering available here (remember to refresh pages in browser if visited before).
Signed-off-by: Michael Mattsson<EMAIL_ADDRESS>

I incorporated the commented line into the Makefile itself instead.


no instructions on how to install for windows

it built fine
no issues
I have driver.vrdrivermanifest but I have no clue where to put it

once I know where to put it I can write a batch or python script to install it properly automatically

nevermind

@TheOnlyJoey was building the plugin on Windows yesterday - so hopefully some docs are incoming soon!

thanks for the update
can't wait to try it out :)

any updates on how building is going?

@herosilas12 Please don't spam the github issues, if something will happen you will see it.


FlutterInAppWebView 6.0.0-beta.31 does not work with headers [object ProgressEvent]

Environment

Technology
Version

Flutter version
3.16.2

Dart version
3.2.2

Plugin version
6.0.0-beta.31

Android version
-

iOS version
16.4

macOS version
13.6.1 (22G313)

Xcode version
14.3.1 (14E300c)

Device information:
chrome
Description
The InAppWebView seems don't work with custom headers
Steps to reproduce
Configure an InAppWebView with any url and giving custom headers, the behavior obtained is the following. By removing the headers or giving an empty map it works again.
Images

Stacktrace/Logcat
Error: [object ProgressEvent]
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 327:10  createErrorWithStack
dart-sdk/lib/_internal/js_dev_runtime/patch/core_patch.dart 337:28            _throw
dart-sdk/lib/core/errors.dart 120:5                                           throwWithStackTrace
dart-sdk/lib/async/zone.dart 1386:11                                          callback
dart-sdk/lib/async/schedule_microtask.dart 40:11                              _microtaskLoop
dart-sdk/lib/async/schedule_microtask.dart 49:5                               _startMicrotaskLoop
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 181:7
[WebPlatformInAppWebViewWidget] (Web) WebPlatformInAppWebViewWidget ID 0 calling "onWebViewCreated" using []

Unfortunately, Web Platform is very limited due to its nature.
The plugin works on the web platform using the iframe HTML element, which has a lot of limitations.
That error is caused by CORS policy error, so unfortunately you can't use headers where you can't change 'Access-Control-Allow-Origin' header.
It will work only if the iframe has the same origin.


Support for GCP Artifact Repositories

Google is replacing Container Registry with Artifact Registry and it does not appear this can be used as a repository source, no way to configure authentication.

Was a secret format problem, works like gcr.io


youtube-dll not working

root@mail:/usr/bin# youtube-dl -v -i --no-playlist --no-call-home -x https://www.youtube.com/watch?v=_Mc_OM5oNA8 --verbose
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '-i', '--no-playlist', '--no-call-home', '-x', 'https://www.youtube.com/watch?v=_Mc_OM5oNA8', '--verbose']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.9.2 (CPython) - Linux-5.10.0-13-amd64-x86_64-with-glibc2.31
[debug] exe versions: none
[debug] Proxy map: {}
[youtube] _Mc_OM5oNA8: Downloading webpage
[youtube] Downloading just video _Mc_OM5oNA8 because of --no-playlist
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/youtube.py", line 1794, in _real_extract
    'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 1012, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.``

Similar issue when trying to extract audio:
[debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: ['-x', 'https://youtu.be/UCmURbyWQmg', '--audio-format', 'mp3', '--verbose'] [debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252 [debug] youtube-dl version 2021.12.17 [debug] Python version 3.4.4 (CPython) - Windows-10-10.0.19041 [debug] exe versions: ffmpeg 4.4.1-essentials_build-www.gyan.dev, ffprobe 4.4.1-essentials_build-www.gyan.dev [debug] Proxy map: {} [youtube] UCmURbyWQmg: Downloading webpage ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output. Traceback (most recent call last):   File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\YoutubeDL.py", line 815, in wrapper   File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\YoutubeDL.py", line 836, in __extract_info   File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\extractor\common.py", line 534, in extract   File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\extractor\youtube.py", line 1794, in _real_extract   File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\extractor\common.py", line 1012, in _search_regex youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

From linux the error is different, but the result is the same, download will not initiate
youtube-dl -x https://www.youtube.com/watch?v=UCmURbyWQmg --audio-format mp3 --verbose
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-x', 'https://www.youtube.com/watch?v=UCmURbyWQmg', '--audio-format', 'mp3', '--verbose']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2020.03.24
[debug] Python version 3.8.10 (CPython) - Linux-5.15.0-70-generic-x86_64-with-glibc2.29
[debug] exe versions: ffmpeg 4.2.7, ffprobe 4.2.7, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] UCmURbyWQmg: Downloading webpage
ERROR: UCmURbyWQmg: YouTube said: Unable to extract video data
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/youtube_dl/YoutubeDL.py", line 797, in extract_info
ie_result = ie.extract(url)
File "/usr/lib/python3/dist-packages/youtube_dl/extractor/common.py", line 530, in extract
ie_result = self._real_extract(url)
File "/usr/lib/python3/dist-packages/youtube_dl/extractor/youtube.py", line 1788, in _real_extract
raise ExtractorError(
youtube_dl.utils.ExtractorError: UCmURbyWQmg: YouTube said: Unable to extract video data

#30839 !


Fix snowflake string functions

What type of PR is this?

bug fix
What does this PR do / why is it needed ?

fix snowflake sql translationto use supported sql string functions - contains, startswith, endswith (instead of using like function)
Which issue(s) this PR fixes:

Fixes #
Other notes for reviewers:
Does this PR introduce a user-facing change?

This PR is stale because it has been open for 30 days with no activity. Please remove stale label or add any comment to keep this open. Otherwise this will be closed in 5 days.

This PR was closed because it has been inactive for 35 days. Please re-open if this PR is still relevant.


Fix Quickstart Document about allowCascadingDeletion

What type of PR is this?:
/kind bug
/kind documentation
What this PR does / why we need it:
In Subnamespaces deep dive section of Quickstart Document, it will fail to delete subnamespaceanchors/service-4 because it will not be set cascading deletion explicitly set(--allowCascadingDeletion).
So I've fixed this in this PR.
https://github.com/kubernetes-sigs/hierarchical-namespaces/blob/564b4a968ca2091f27cf0eb51d0cd99190e57db5/docs/user-guide/quickstart.md?plain=1#L678-L690
Tested:
Unit and E2E tests has passed.
In E2E tests, --allowCascadingDeletion has already been set to subnamespaceanchors/service-4 so it will sucess.
https://github.com/kubernetes-sigs/hierarchical-namespaces/blob/564b4a968ca2091f27cf0eb51d0cd99190e57db5/test/e2e/quickstart_test.go#L280-L287

/assign @adrianludwin

@adrianludwin
Hi, thanks for your feedback!
I've fixed it and related explanation about subnamespace.
How about that?

/lgtm

/approve


both alert and silent notifications ios13

hi dear ,
with your code only i can send alert notification without background fetch content , kindly help me to solve this issue , even i set apns-push-type = background but i still not receive it , only receive alert when i change apns-push-type to alert but no silent push notification. my payload is
{
"aps" :  {
"alert" :
{
"title" :"test",
"body" : "hellooooo",
                        },
                        "badge" : 1,
                        "sound" : "default",
                        "content_available" : 1,
                    },
                    "person"
                    {
                        "userIdTo": 12,
                         "ListID" : 0,

                    }

}

Try changing priority from 10 to 5.

I tried it but still not update in background , I set apps-push-type to alert , just I receive the notification without update content in background , only when I open background app refresh from setting it work , but in iOS 12 no need to open this option from settings.

Hi.
How can I send an Header to FcmSender? I don't know how to send apns-push-type or apns-priority

@Sthefanny please read the README. There are some notification model examples that might be helpful. For properties with dashes you can use attribute [JsonProperty("apns-push-type")] and it will be serialized accordingly.


Create testfile.txt

lets see if discord github webhook was set up properly

this is my review comment test

attempt

this is my very real thoughts on this pr


Feature/abortable fetch

Adds #3
Hi there maintainer! I've got an abortable fetch API for you.
The following is important to note:
In order to get the following pattern to work:
const req = frisbee.get('/',{abortToken:'some token'});
...
frisbee.abort('some token')
...
try {
  const res = await req;
}

the abort-y things cannot be registered asynchronously (i.e. after interceptors), which is why this change appears so drastic - it's really not. The majority of it simply moved the async function call in _setup down so I could do some sync stuff first.
Because of the change above, I also had to slightly change the (internal) behavior of registering interceptors and change a few test stubs in interceptor.test.js. Other than adding a dozen tests or so, no other tests were modified and they all still pass, yay!
Coles notes:

It supports Abortable Fetches using AbortController and signal
abortAll() - does exactly what it says - aborts any running or queued (await-ing in an interceptor*) requests
An "enhanced" abort API that uses "tokens" - pass in an abortToken (any symbol) on your options and use it to cancel any running request(s) - yes, it can be more than one - that use that token. The ability to cancel more than one request is useful if you want to make a request in an interceptor, just use the same abortToken that's being passed in with the request options.

You've got a good library going here. Quite light weight (as it should), couple of nifty features ("automagic" jwt and auth). I hope abortable fetches, especially this new abort-by-token API will further people's interest in it.
Feedback very much welcome and appreciated. I'm not too big of an open-source contributor so I hope I'm doing it right.

@akmjenkins thank you so much for your efforts here in improving this package and contributing to open source.  I plan to review this tomorrow.  If you don't hear from me by tomorrow feel free to ping me here or at<EMAIL_ADDRESS> Thanks!!!! 👏

@akmjenkins thank you so much for your efforts here in improving this package and contributing to open source. I plan to review this tomorrow. If you don't hear from me by tomorrow feel free to ping me here or at<EMAIL_ADDRESS>Thanks!!!! 👏

I didn't feel like running prettier over everything and reformatting all your test and src files, but it fails the CI if I don't. You might want to consider a) removing the lint from the npm test or b) just linting and updating all your files so we can issue PRs that pass CI.
Like I said, I'm not a big open source person, so I might've messed something up, too.

I'd also like to propose throwing an error (or maybe something less drastic, like just logging a warning?) if the user tries to abort anything other than a GET request. Aborting a non-GET request is  usually a developer mistake.

Hmm, I really don't think this is very user-friendly.  Curious what others think... the purpose of the API is to be incredibly simple and as close to fetch as possible.

@niftylettuce - no problem, although I'm not really sure what you mean. Frisbee's existing API hasn't been changed at all.
As far as frisbee supporting abortable fetch's goes, right now, frisbee actually does "support" abortable fetches - by simply passing in a signal from an AbortController (which is a WHATWG API that has been developed with significant contention, to put it mildly), but it doesn't do anything to make it easier for the user to abort requests, which is what this PR was about.
Anyway, there's no offence taken here, if you don't feel like it's right for frisbee that's totally cool. I did just want to clear up that the ugly abort API isn't actually mine, it's WHATWGs.

First of all @akmjenkins  -- I want to say that I like the design approach taken here: complies with the standard, and adds some convenience on top. Looks like the abortToken is similar to axios' cancelToken, and the abortAll is comfortable API.
However, one thing I'm concerned about is that this isn't true cancellation: the abortcontroller-polyfill says it's a:

stub that calls catch, doesn't actually abort request

This, plus the limitations on cancelling GET requests only, and the observation that you made about frisbee already supporting AbortController signals, makes me think that maybe this shouldn't go into frisbee.
Cancellation & concurrency is harddd -- I've been using generator-based solutions, because generators can actually be cancelled, unlike async functions or promise chains. ember-concurrency is my favorite. I'm getting used to redux-saga on the react side, and I've also done a bit of work with posterus, which is also pretty fantastic. However, it's clear that there is a lot of responsibility still left to the developer, with or without this change.
Even things like timeouts might be best handled outside of frisbee.

Still going to do some thinking here, but wanted to jot these thoughts down

First of all on my side, no offence will be taken if you shut this PR down :)
Secondly, the "true cancellation" argument is kind of out of scope of this PR. If you've chosen to use fetch (and frisbee) then you're not going to get "true cancellation" as the way the spec is currently written doesn't support it (this is another great read on, again, how contentious the fetch cancellation spec was to settle on). The polyfill only comes into play when the native AbortController is absent anyway, so if you're in a "good" environment that has fetch and AbortController natively, you're still not going to get "true cancellation".
On to cancelling XHRs. The spec for abort() (in the article mentioned above) wasn't written precisely so vendors took liberties in how they implemented it. Some destroyed the actual connection, others left the connection open but just didn't callback when it returned.
The POST issue also exists in XHR as well. Once a request gets to the server, you can cancel it until the cows come home on the client, it's still going to "do the work" it was meant to do on the server (update the database, write sessions, etc), regardless of when the client cancels it.
So if you're not a fan of the implementation of the PR, that's absolutely fine. Let's shut this one down and rewrite it or, just decide to not include it in frisbee for now. But discussing cancellation not working correctly is, like I said, outside the scope.
Finally, AbortController is gross to work with (much like fetch - hence frisbee). If people are going to write wrappers to simplify fetch, they're going to write wrappers to simplify creation and management of AbortControllers.
I do appreciate you taking your time to review the PR!

You bring up some great points. Thanks for the link - I haven't kept up on these topics.
I'm in favor of this PR. I think it's quite user-friendly, considering the sophistication of cancellation in general. It's faithful to the standards, enables AbortController use on all platforms, and provides some nice convenience on top.
My last consideration is making sure everything works on react-native, since that's one of the main selling points of frisbee over other libraries.

@akmjenkins @davidgovea @tb9-Mason I've merged this PR, fixed all tests, and cleaned up the entire codebase.  Please try out v2.0.10 just released to NPM! 🎉 🎉 🎉
npm install frisbee@latest

yarn add frisbee@latest


perf(graph): canvas implementation

using pixi.js to render on canvas, and d3 for simulation events.

lgtm so far, lmk when this is ready to review (i noticed a few things like the graph defaults to the top-left of the canvas briefly before it is centered, dragging nodes not working yet)

yep I'm just finishing dragging and DPI scaling, with the node position at the beginning.

@aarnphm are you familiar with Cytoscape.js? Maybe it will be a better fit for Quartz than pixi.js and d3.
On Cytoscape's website, it is mentioned that Obsidian also uses it. The graph view in Obsidian is really smooth and quite snappy to navigate. It would be really cool if Quartz's graph view was also as fast and smooth as Obsidian ;)

@jackyzha0 just ping you with all feature parity supported, but I might take a look at cytospace, seems like obsidian also uses it instead of the current implementation (I'm not very happy with)

@aarnphm are you familiar with Cytoscape.js? Maybe it will be a better fit for Quartz than pixi.js and d3.
On Cytoscape's website, it is mentioned that Obsidian also uses it. The graph view in Obsidian is really smooth and quite snappy to navigate. It would be really cool if Quartz's graph view was also as fast and smooth as Obsidian ;)

obsidian in fact uses pixi v7 for rendering graph :)

https://github.com/user-attachments/assets/62537d0c-c35b-4bd0-8653-5ee9a82cca7b
Heres a demo from yours

Thanks for your work. But directly bundling pixi.js(745.8kB) into the script will cause the code size to balloon too quickly, which is not a good choice.

script size is completely fine

(we should try to avoid barrel imports where we can though)

Thanks for your work. But directly bundling pixi.js(745.8kB) into the script will cause the code size to balloon too quickly, which is not a good choice.

esbuild tree shakes so we can evaluate the impact there

how should I go about testing this?

Thanks for your work. But directly bundling pixi.js(745.8kB) into the script will cause the code size to balloon too quickly, which is not a good choice.

esbuild tree shakes so we can evaluate the impact there

how should I go about testing this?

https://github.com/jackyzha0/quartz/blob/a5f2f874f75dd53c83b2db883e6871cb84eccf09/.github/workflows/ci.yaml#L48
npx quartz build --bundleInfo

hmm I see will investigate.


How to install this extension

Hello !
I search on internet and idk how to install an extension on scratch from github
Thanks

Third-party extensions are not officially supported, so you'll need to load it in a modded fork.


Perturbative gadgets

Perturbative gadgets are techniques for manipulating representations of qubit Hamiltonians which would be very useful in some contexts. They are particularly interesting in the context of quantum simulation and multiple papers have explored their application to electronic structure specifically. One can use perturative gadgets to reduce the many-body order of a QubitHamiltonian, or change the connectivity graph, or change the types of terms in the Hamiltonian, in a way that leaves the low energy portion of the "gadgetized" Hamiltonian spectra invariant. A few relevant papers in this area would be:
For electronic structure
https://arxiv.org/abs/1311.3967
https://arxiv.org/abs/1706.03637
Various other papers with important gadget constructions
https://arxiv.org/abs/quant-ph/0406180
https://arxiv.org/abs/quant-ph/0504050
https://arxiv.org/abs/0802.1874
https://arxiv.org/abs/1311.2555
https://arxiv.org/abs/1311.3161
https://arxiv.org/abs/1709.02705
Any code to implement these gadgets would be a welcome addition to OpenFermion. Note that @yudongcao , a member of the OpenFermion community, is an expert in this topic in case people have questions.

Papers that provide diagonal representations of the electronic structure Hamiltonian may also be of interest since this makes the gadgetization much easier:
https://arxiv.org/abs/1706.00023
https://arxiv.org/abs/1709.08059
Likewise, for certain systems, such as the Hubbard model, fermion to qubit mappings of constant locality may also be important:
https://arxiv.org/abs/cond-mat/0508353
https://arxiv.org/abs/1712.00446


fix GitHub workflow badge URL

fix GitHub workflow badge URL.
See https://github.com/badges/shields/issues/8671

You need to update your badge URL from
https://img.shields.io/github/workflow/status///Run%20Tests
to
https://img.shields.io/github/actions/workflow/status///test.yml?branch=main

This is a change to a readme of a module. To change this, you need to change it in the source repository (body-parser in this case) and then it is pulled in here, as these files are managed by a script.


Create communication channel so Editor can talk to pub serve

To get the Editor hosting the pub dev server, it needs to be able to map from URIs coming from Dartium (which in turn come from the dev server) to file paths in the users workspace (and vice versa).
The Editor currently has its own implementation of that mapping. Since pub serve allows arbitrary transformations of files, it will have to ask pub for this. The basic idea is that the Editor can ask the running pub process "which file corresponds to this URI?" (and vice versa).
We can do this either as an HTTP API that the running pub process responds to (likely on a different port from the actual served app) or using stdin/stdout. I think the pub team is leaning towards HTTP, but we can do either.

This issue has been moved to dart-lang/pub#657.


Does the Rocm now work fine with ubuntu 20.04

The tensorflow-rocm worked fine on 19.10.
When I updated to ubuntu 20.04 and used the tensorflow-rocm then I got this
2020-05-10 12:24:20.926812: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libhip_hcc.so
2020-05-10 12:24:20.982479: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1579] Found device 0 with properties:
pciBusID: 0000:03:00.0 name: Vega 10 XL/XT [Radeon RX Vega 56/64]     ROCm AMD GPU ISA: gfx900
coreClock: 1.59GHz coreCount: 56 deviceMemorySize: 7.98GiB deviceMemoryBandwidth: -1B/s
2020-05-10 12:24:21.020605: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library librocblas.so
2020-05-10 12:24:21.021757: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libMIOpen.so
2020-05-10 12:24:21.024344: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library librocfft.so
2020-05-10 12:24:21.024556: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library librocrand.so
2020-05-10 12:24:21.024624: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1703] Adding visible gpu devices: 0
2020-05-10 12:24:21.024894: I tensorflow/core/platform/cpu_feature_guard.cc:143] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE3 SSE4.1 SSE4.2 AVX
2020-05-10 12:24:21.031167: I tensorflow/core/platform/profile_utils/cpu_utils.cc:102] CPU Frequency:<PHONE_NUMBER> Hz
2020-05-10 12:24:21.031533: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x86a0570 initialized for platform Host (this does not guarantee that XLA will be used). Devices:
2020-05-10 12:24:21.031555: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Host, Default Version
2020-05-10 12:24:21.032908: I tensorflow/compiler/xla/service/service.cc:168] XLA service 0x8708d60 initialized for platform ROCM (this does not guarantee that XLA will be used). Devices:
2020-05-10 12:24:21.032932: I tensorflow/compiler/xla/service/service.cc:176]   StreamExecutor device (0): Vega 10 XL/XT [Radeon RX Vega 56/64], AMDGPU ISA version: gfx900
2020-05-10 12:24:21.033075: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1579] Found device 0 with properties:
pciBusID: 0000:03:00.0 name: Vega 10 XL/XT [Radeon RX Vega 56/64]     ROCm AMD GPU ISA: gfx900
coreClock: 1.59GHz coreCount: 56 deviceMemorySize: 7.98GiB deviceMemoryBandwidth: -1B/s
2020-05-10 12:24:21.033109: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library librocblas.so
2020-05-10 12:24:21.033125: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libMIOpen.so
2020-05-10 12:24:21.033140: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library librocfft.so
2020-05-10 12:24:21.033153: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library librocrand.so
2020-05-10 12:24:21.033188: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1703] Adding visible gpu devices: 0
2020-05-10 12:24:21.033206: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1102] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-05-10 12:24:21.033214: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1108]      0
2020-05-10 12:24:21.033220: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1121] 0:   N
2020-05-10 12:24:21.033282: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1247] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 7444 MB memory) -> physical GPU (device: 0, name: Vega 10 XL/XT [Radeon RX Vega 56/64], pci bus id: 0000:03:00.0)
2020-05-10 12:24:27.770244: E tensorflow/stream_executor/rocm/rocm_event.cc:28] Error polling for event status: failed to query event: hipError_t(600)
2020-05-10 12:24:27.770282: F tensorflow/core/common_runtime/gpu/gpu_event_mgr.cc:273] Unexpected Event status: 1
Both rocminfo and clinfo work fine now so I have no idea what happened
I tried to reinstall all rocm-dkms and tensorflow-rocm but it didn't work.

I tried to reinstall ubuntu 19.10 and setup the whole environment in a new disk and the tensorflow worked fine, so I guesss something wrong with rocm and ubuntu 20.04.

I have found it to install fine on 20.04 from the official ROCm repos (dkms modules install without error) with a Vega 56, clinfo "works" (but reports no platform for CL_DEVICE_TYPE_GPU), and the OpenCL target appears and looks to work, however I have been having issues specifically with sycl. I'll open up a new issue for that.

No, it doesn't work fine with Ubuntu 20.04, even doesn't install.
sudo apt install rocm-dkms
...
Loading new amdgpu-3.3-19 DKMS files...
Building for 5.6.7-050607-generic
Building for architecture x86_64
Building initial module for 5.6.7-050607-generic
ERROR (dkms apport): kernel package linux-headers-5.6.7-050607-generic is not supported
Error! Bad return status for module build on kernel: 5.6.7-050607-generic (x86_64)
Consult /var/lib/dkms/amdgpu/3.3-19/build/make.log for more information.
dpkg: error processing package rock-dkms (--configure):
 installed rock-dkms package post-installation script subprocess returned error exit status 10
Setting up rocm-smi (1.0.0-199-rocm-rel-3.3-19-ga9d6426) ...
Setting up rocm-debug-agent (1.0.0) ...
dpkg: dependency problems prevent configuration of rocm-dkms:
 rocm-dkms depends on rock-dkms; however:
  Package rock-dkms is not configured yet.

dpkg: error processing package rocm-dkms (--configure):
 dependency problems - leaving unconfigured
Setting up hip-doc (3.3.20126.4629-rocm-rel-3.3-19-2dbba46b) ...
No apport report written because the error message indicates its a followup error from a previous failure.
     Setting up hsakmt-roct (1.0.9-330-gd84bc09) ...
Setting up hip-samples (3.3.20126.4629-rocm-rel-3.3-19-2dbba46b) ...
Setting up hsa-rocr-dev (1.1.30300.0-rocm-rel-3.3-19-23fc088b) ...
Setting up rocm-opencl (2.0.0-rocm-rel-3.3-19-363509c8d) ...
Setting up hsakmt-roct-dev (1.0.9-330-gd84bc09) ...
Setting up hsa-ext-rocr-dev (1.1.30300.0-rocm-rel-3.3-19-23fc088b) ...
Setting up rocm-opencl-dev (2.0.0-rocm-rel-3.3-19-363509c8d) ...
Setting up rocprofiler-dev (1.0.0) ...
Setting up rocm-clang-ocl (<IP_ADDRESS>-rocm-rel-3.3-19-fa039e7) ...
Setting up rocm-utils (3.3.0-19) ...
Setting up hcc (3.1.20114) ...
Setting up hip-hcc (3.3.20126.4629-rocm-rel-3.3-19-2dbba46b) ...
Setting up rocm-dev (3.3.0-19) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...
Errors were encountered while processing:
 rock-dkms
 rocm-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)

But I have kernel 5.6.7.

No, it doesn't work fine with Ubuntu 20.04, even doesn't install.
sudo apt install rocm-dkms
...
Loading new amdgpu-3.3-19 DKMS files...
Building for 5.6.7-050607-generic
Building for architecture x86_64
Building initial module for 5.6.7-050607-generic
ERROR (dkms apport): kernel package linux-headers-5.6.7-050607-generic is not supported
Error! Bad return status for module build on kernel: 5.6.7-050607-generic (x86_64)
Consult /var/lib/dkms/amdgpu/3.3-19/build/make.log for more information.
dpkg: error processing package rock-dkms (--configure):
 installed rock-dkms package post-installation script subprocess returned error exit status 10
Setting up rocm-smi (1.0.0-199-rocm-rel-3.3-19-ga9d6426) ...
Setting up rocm-debug-agent (1.0.0) ...
dpkg: dependency problems prevent configuration of rocm-dkms:
 rocm-dkms depends on rock-dkms; however:
  Package rock-dkms is not configured yet.

dpkg: error processing package rocm-dkms (--configure):
 dependency problems - leaving unconfigured
Setting up hip-doc (3.3.20126.4629-rocm-rel-3.3-19-2dbba46b) ...
No apport report written because the error message indicates its a followup error from a previous failure.
     Setting up hsakmt-roct (1.0.9-330-gd84bc09) ...
Setting up hip-samples (3.3.20126.4629-rocm-rel-3.3-19-2dbba46b) ...
Setting up hsa-rocr-dev (1.1.30300.0-rocm-rel-3.3-19-23fc088b) ...
Setting up rocm-opencl (2.0.0-rocm-rel-3.3-19-363509c8d) ...
Setting up hsakmt-roct-dev (1.0.9-330-gd84bc09) ...
Setting up hsa-ext-rocr-dev (1.1.30300.0-rocm-rel-3.3-19-23fc088b) ...
Setting up rocm-opencl-dev (2.0.0-rocm-rel-3.3-19-363509c8d) ...
Setting up rocprofiler-dev (1.0.0) ...
Setting up rocm-clang-ocl (<IP_ADDRESS>-rocm-rel-3.3-19-fa039e7) ...
Setting up rocm-utils (3.3.0-19) ...
Setting up hcc (3.1.20114) ...
Setting up hip-hcc (3.3.20126.4629-rocm-rel-3.3-19-2dbba46b) ...
Setting up rocm-dev (3.3.0-19) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...
Errors were encountered while processing:
 rock-dkms
 rocm-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)

But I have kernel 5.6.7.
I don't know maybe I should open a new issue and get information about system, but it seems many issues still open... Let me know please should I open new issue.

I have kernel version 5.4 in the 20.04 and 5.3 in the 19.10.
It might be that some rocm functions are affected by the upgrade, but I am neither an expert in rocm nor in kernel, so it is difficult to say where is the problem. Maybe you can try rocm with 5.3 kernel in 20.04

I'll check kernel 5.3 but later...

The module should build on 5.3 as that is what the 18.04 HWE stack is using (if I recall correctly). It seems to build on 5.4 (however that does not mean it will necessarily function as expected), but any newer releases of the kernel may introduce breaking ABI changes which means the module won't compile.

Actually, the support of ROCM is terrible bad. Very very confused users. How to use? OS version+Rocm version. Give right and directly guideline, please !!!

There are installation instructions for supported distributions in the documentation: https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html

Thank you for providing the link to AMD ROCm documentation. Please let us know if you are unable to find what you need in our documentation. Your feedback is important to us.

It does indeed install without problems. That's to say, as long as you don't try to install the DKMS bit. And because I only need OpenCL, I don't install rocm-kms, I install meta-package rocm-dev instead. This skips the DKMS bit, and install just fine. As far as I know, package rocm-dkms will only install on Ubuntu 18.04. Even without DKMS however, OpenCL will install, and run just fine on 20.04 this way.

@c0d3st0rm @Rmalavally
According to this guideline, it doesn't work. let user guess and try and try again.
latest, why?  Step 1, Do, result ; Step 2, Do result.
so many issues open, why not be solved? play deaf and dumb.
At least, give a feasible guideline even if the performance is not so good yet.
Because machine wih AMD cards shoud equiped with the support of GPU power.

It does indeed install without problems. That's to say, as long as you don't try to install the DKMS bit. And because I only need OpenCL, I don't install rocm-kms, I install meta-package rocm-dev instead. This skips the DKMS bit, and install just fine. As far as I know, package rocm-dkms will only install on Ubuntu 18.04. Even without DKMS however, OpenCL will install, and run just fine on 20.04 this way.

Got it, thanks a lot.

Kernel 5.3 doesn't solve problem, but the error not same...
Loading new amdgpu-3.3-19 DKMS files...
Building for 5.3.0-050300-generic 5.6.7-050607-generic
Building for architecture x86_64
Building initial module for 5.3.0-050300-generic
Secure Boot not enabled on this system.
Done.
Forcing installation of amdgpu

amdgpu.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.3.0-050300-generic/updates/dkms/

amdttm.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.3.0-050300-generic/updates/dkms/

amdkcl.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.3.0-050300-generic/updates/dkms/

amd-sched.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.3.0-050300-generic/updates/dkms/

Running the post_install script:
update-initramfs: Generating /boot/initrd.img-5.3.0-050300-generic
W: Possible missing firmware /lib/firmware/amdgpu/navi10_mes.bin for module amdgpu
I: The initramfs will attempt to resume from /dev/nvme0n1p3
I: (UUID=fcfce3f2-3d20-4779-981d-e970bb82b3f9)
I: Set the RESUME variable to override this.
Error 24 : Write error : cannot write compressed block
E: mkinitramfs failure cpio 141 lz4 -9 -l 24
update-initramfs: failed for /boot/initrd.img-5.3.0-050300-generic with 1.

depmod....

Backing up initrd.img-5.3.0-050300-generic to /boot/initrd.img-5.3.0-050300-generic.old-dkms
cp: error writing '/boot/initrd.img-5.3.0-050300-generic.old-dkms': No space left on device
Making new initrd.img-5.3.0-050300-generic
(If next boot fails, revert to initrd.img-5.3.0-050300-generic.old-dkms image)
update-initramfs.......(bad exit status: 1)

-------- Uninstall Beginning --------
Module:  amdgpu
Version: 3.3-19
Kernel:  5.3.0-050300-generic (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

amdgpu.ko:
 - Uninstallation
   - Deleting from: /lib/modules/5.3.0-050300-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

amdttm.ko:
 - Uninstallation
   - Deleting from: /lib/modules/5.3.0-050300-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

amdkcl.ko:
 - Uninstallation
   - Deleting from: /lib/modules/5.3.0-050300-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

amd-sched.ko:
 - Uninstallation
   - Deleting from: /lib/modules/5.3.0-050300-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

Running the post_remove script:
depmod...

update-initramfs.......(bad exit status: 1)
Warning: There was a problem remaking your initrd.  You must manually remake it
before booting into this kernel.

DKMS: uninstall completed.
Error! Problems with mkinitrd detected.  Automatically uninstalling this module.
DKMS: Install Failed (mkinitrd problems).  Module rolled back to built state.
dpkg: error processing package rock-dkms (--configure):
 installed rock-dkms package post-installation script subprocess returned error exit status 7
Setting up rocm-smi (1.0.0-199-rocm-rel-3.3-19-ga9d6426) ...
Setting up rocm-debug-agent (1.0.0) ...
dpkg: dependency problems prevent configuration of rocm-dkms:
 rocm-dkms depends on rock-dkms; however:
  Package rock-dkms is not configured yet.

dpkg: error processing package rocm-dkms (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
     Setting up hip-doc (3.3.20126.4629-rocm-rel-3.3-19-2dbba46b) ...
Setting up hsakmt-roct (1.0.9-330-gd84bc09) ...
Setting up hip-samples (3.3.20126.4629-rocm-rel-3.3-19-2dbba46b) ...
Setting up hsa-rocr-dev (1.1.30300.0-rocm-rel-3.3-19-23fc088b) ...
Setting up rocm-opencl (2.0.0-rocm-rel-3.3-19-363509c8d) ...
Setting up hsakmt-roct-dev (1.0.9-330-gd84bc09) ...
Setting up hsa-ext-rocr-dev (1.1.30300.0-rocm-rel-3.3-19-23fc088b) ...
Setting up rocm-opencl-dev (2.0.0-rocm-rel-3.3-19-363509c8d) ...
Setting up rocprofiler-dev (1.0.0) ...
Setting up rocm-clang-ocl (<IP_ADDRESS>-rocm-rel-3.3-19-fa039e7) ...
Setting up rocm-utils (3.3.0-19) ...
Setting up hcc (3.1.20114) ...
Setting up hip-hcc (3.3.20126.4629-rocm-rel-3.3-19-2dbba46b) ...
Setting up rocm-dev (3.3.0-19) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9) ...
Errors were encountered while processing:
 rock-dkms
 rocm-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)

But still fail install rocm on Ubuntu 20.04...

It looks like you ran out of space in /boot - see the error in the log from cp? This issue is unrelated to ROCm, and you'll need to either resize your /boot partition or get rid of some old kernels and initrd images to make room.

You are right. I haven't enough space on /boot partition and now I can't use more then 2 kernels. Will try resize my /boot partition later...

Kernel 5.3 works indeed. After I'd switched to kernel 5.3, I was able to install and run rocm-dkms just fine, wheras it doesn't install with kernel 5.4 (or other versions I presume). However, all I need ROCm for is OpenCL actually. That's why I install rocm-dev, which skips DKMS. That's why it does install on stock 20.04. So if you don't need DKMS, just install rocm-dev, and you don't have to use any work-arounds.

Solve problem with my /boot partition and now for kernel 5.3 rocm driver was installed, but if run
/opt/rocm/bin/rocminfo
ROCk module is loaded
den is member of video group
hsa api call failure at: /data/jenkins-workspace/compute-rocm-rel-3.3/rocminfo/rocminfo.cc:1102
Call returned HSA_STATUS_ERROR_OUT_OF_RESOURCES: The runtime failed to allocate the necessary resources. This error may also occur when the core runtime library needs to spawn threads or create internal OS-specific events.

And here...

 /opt/rocm/opencl/bin/x86_64/clinfo
Number of platforms:                             1
  Platform Profile:                              FULL_PROFILE
  Platform Version:                              OpenCL 2.1 AMD-APP (3098.0)
  Platform Name:                                 AMD Accelerated Parallel Processing
  Platform Vendor:                               Advanced Micro Devices, Inc.
  Platform Extensions:                           cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
  Platform Name:                                 AMD Accelerated Parallel Processing
ERROR: clGetDeviceIDs(-1)

I don't understand how it works. I also will try rocm-dev, the last chance to get success.

For me the advantage of rocm-dev is that you don't have to switch to kernel 5.3. However, I've tried kernel 5.3, and rocm-dkms did work on my computer. So, when you're running kernel 5.3, rocm-dkms should work, and I have a feeling installing rocm-dev won't solve your problem.
But there's  another thing you could try. This error might be caused by a change in permissions for kfd in Ubuntu 20.04. Before 20.04 you have to give yourself the right permissions by adding yourself to the video group, because kfd is owned by video, if I understand correctly. However, in 20.04 this has cnaged, and kfd is now owned by render. I don't know if you still need to be a member of the video group, but to be safe I've made added myself to both the video, and the render group. It works for me.

I installed rocm-dev. But errors the same like above...
/opt/rocm/bin/rocminfo
ROCk module is loaded
den is member of video group
hsa api call failure at: /data/jenkins-workspace/compute-rocm-rel-3.3/rocminfo/rocminfo.cc:1102
Call returned HSA_STATUS_ERROR_OUT_OF_RESOURCES: The runtime failed to allocate the necessary resources. This error may also occur when the core runtime library needs to spawn threads or create internal OS-specific events.

And here...

 /opt/rocm/opencl/bin/x86_64/clinfo
Number of platforms:                             1
  Platform Profile:                              FULL_PROFILE
  Platform Version:                              OpenCL 2.1 AMD-APP (3098.0)
  Platform Name:                                 AMD Accelerated Parallel Processing
  Platform Vendor:                               Advanced Micro Devices, Inc.
  Platform Extensions:                           cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
  Platform Name:                                 AMD Accelerated Parallel Processing
ERROR: clGetDeviceIDs(-1)

I think it is don't work properly. Cause when I use blender, I can't use opencl...

Something isn't correct yet. Blender does recognise my GPU (it's an RX 64).
I had to install libtinfo5 to make clinfo work, and that's not in the installation guide unfortunately. Then you should add yourself to the video group, and possibly the render group. And if you're installing rocm-dev, you'll have to create file /etc/udev/rules.d/70-kfd.rules, that should contain the following:
SUBSYSTEM=="kfd", KERNEL=="kfd", TAG+="uaccess", GROUP="video"
But other than that, the OpenCL part from ROCm 3.3 is running fine on my computer with Ubuntu 20.04.

Hi All,
Ubuntu 20.04 support was not enabled officially for ROCm 3.3, but it might work.
So once we claim 20.04 officially with the upcoming ROCm releases, we will definitely make sure that all documentation things are taken care properly.

Blender doesn't recognize my Vega 56 on Ubuntu 20.04 with rocm-dev installed, /etc/udev/rules.d/70-kfd.rules correctly in place and user added to video group.
$ clinfo
Number of platforms                               1
  Platform Name                                   AMD Accelerated Parallel Processing
  Platform Vendor                                 Advanced Micro Devices, Inc.
  Platform Version                                OpenCL 2.1 AMD-APP (3098.0)
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
  Platform Host timer resolution                  1ns
  Platform Extensions function suffix             AMD

  Platform Name                                   AMD Accelerated Parallel Processing
Number of devices                                 0

NULL platform behavior
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  AMD Accelerated Parallel Processing
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)
  clCreateContext(NULL, ...) [default]            No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  No devices found in platform

ICD loader properties
  ICD loader Name                                 OpenCL ICD Loader
  ICD loader Vendor                               OCL Icd free software
  ICD loader Version                              2.2.11
  ICD loader Profile                              OpenCL 2.1

$ /opt/rocm/bin/rocminfo
ROCk module is loaded
athlon is member of video group
=====================
HSA System Attributes
=====================
Runtime Version:         1.1
System Timestamp Freq.:  1000.000000MHz
Sig. Max Wait Duration:<PHONE_NUMBER>3709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)
Machine Model:           LARGE
System Endianness:       LITTLE

==========
HSA Agents
==========
*******
Agent 1
*******
  Name:                    AMD Ryzen 7 1700X Eight-Core Processor
  Marketing Name:          AMD Ryzen 7 1700X Eight-Core Processor
  Vendor Name:             CPU
  Feature:                 None specified
  Profile:                 FULL_PROFILE
  Float Round Mode:        NEAR
  Max Queue Number:        0(0x0)
  Queue Min Size:          0(0x0)
  Queue Max Size:          0(0x0)
  Queue Type:              MULTI
  Node:                    0
  Device Type:             CPU
  Cache Info:
    L1:                      32768(0x8000) KB
  Chip ID:                 0(0x0)
  Cacheline Size:          64(0x40)
  Max Clock Freq. (MHz):   3400
  BDFID:                   0
  Internal Node ID:        0
  Compute Unit:            16
  SIMDs per CU:            0
  Shader Engines:          0
  Shader Arrs. per Eng.:   0
  WatchPts on Addr. Ranges:1
  Features:                None
  Pool Info:
    Pool 1
      Segment:                 GLOBAL; FLAGS: KERNARG, FINE GRAINED
      Size:                    16388600(0xfa11f8) KB
      Allocatable:             TRUE
      Alloc Granule:           4KB
      Alloc Alignment:         4KB
      Acessible by all:        TRUE
    Pool 2
      Segment:                 GLOBAL; FLAGS: COARSE GRAINED
      Size:                    16388600(0xfa11f8) KB
      Allocatable:             TRUE
      Alloc Granule:           4KB
      Alloc Alignment:         4KB
      Acessible by all:        TRUE
  ISA Info:
    N/A
*******
Agent 2
*******
  Name:                    gfx900
  Marketing Name:          Vega 10 XL/XT [Radeon RX Vega 56/64]
  Vendor Name:             AMD
  Feature:                 KERNEL_DISPATCH
  Profile:                 BASE_PROFILE
  Float Round Mode:        NEAR
  Max Queue Number:        128(0x80)
  Queue Min Size:          4096(0x1000)
  Queue Max Size:          131072(0x20000)
  Queue Type:              MULTI
  Node:                    1
  Device Type:             GPU
  Cache Info:
    L1:                      16(0x10) KB
  Chip ID:                 26751(0x687f)
  Cacheline Size:          64(0x40)
  Max Clock Freq. (MHz):   1590
  BDFID:                   3328
  Internal Node ID:        1
  Compute Unit:            56
  SIMDs per CU:            4
  Shader Engines:          4
  Shader Arrs. per Eng.:   1
  WatchPts on Addr. Ranges:4
  Features:                KERNEL_DISPATCH
  Fast F16 Operation:      FALSE
  Wavefront Size:          64(0x40)
  Workgroup Max Size:      1024(0x400)
  Workgroup Max Size per Dimension:
    x                        1024(0x400)
    y                        1024(0x400)
    z                        1024(0x400)
  Max Waves Per CU:        40(0x28)
  Max Work-item Per CU:    2560(0xa00)
  Grid Max Size:<PHONE_NUMBER>(0xffffffff)
  Grid Max Size per Dimension:
    x<PHONE_NUMBER>(0xffffffff)
    y<PHONE_NUMBER>(0xffffffff)
    z<PHONE_NUMBER>(0xffffffff)
  Max fbarriers/Workgrp:   32
  Pool Info:
    Pool 1
      Segment:                 GLOBAL; FLAGS: COARSE GRAINED
      Size:                    8372224(0x7fc000) KB
      Allocatable:             TRUE
      Alloc Granule:           4KB
      Alloc Alignment:         4KB
      Acessible by all:        FALSE
    Pool 2
      Segment:                 GROUP
      Size:                    64(0x40) KB
      Allocatable:             FALSE
      Alloc Granule:           0KB
      Alloc Alignment:         0KB
      Acessible by all:        FALSE
  ISA Info:
    ISA 1
      Name:                    amdgcn-amd-amdhsa--gfx900
      Machine Models:          HSA_MACHINE_MODEL_LARGE
      Profiles:                HSA_PROFILE_BASE
      Default Rounding Mode:   NEAR
      Default Rounding Mode:   NEAR
      Fast f16:                TRUE
      Workgroup Max Size:      1024(0x400)
      Workgroup Max Size per Dimension:
        x                        1024(0x400)
        y                        1024(0x400)
        z                        1024(0x400)
      Grid Max Size:<PHONE_NUMBER>(0xffffffff)
      Grid Max Size per Dimension:
        x<PHONE_NUMBER>(0xffffffff)
        y<PHONE_NUMBER>(0xffffffff)
        z<PHONE_NUMBER>(0xffffffff)
      FBarrier Max Size:       32
*** Done ***

Any ideas on how to fix?

@rkothako  What is the current status of Ubuntu 20.04 support? ROCm 3.5.1 is out but the release notes don't seem to mention Ubuntu 20.04.

No it doesn't, installation keeps failing as kernel 5.4 seems not to be supported.. Which does not make sense since Ubuntu 20.04 comes packed with kernel 5.4..

I've just tried to install ROCm on Ubuntu 20.04, and rocm-dkms installs, at least on this computer with kernel 5.4.0-42. Besides, the documentation explicitly states it supports 20.04. I admit this is the new ROCm 3.7.0, but I'm pretty sure I've installed 3.5 on 20.04 as well.

I'm trying to install on Ubuntu 20.10, but no dice. (Yes, I know it's not officially supported.)
$ sudo apt install rocm-dkms
Reading package lists... Done
Building dependency tree
Reading state information... Done
rocm-dkms is already the newest version (<IP_ADDRESS>900-17).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Setting up rock-dkms (1:3.9-17) ...
Removing old amdgpu-3.9-17 DKMS files...

------------------------------
Deleting module version: 3.9-17
completely from the DKMS tree.
------------------------------
Done.
Loading new amdgpu-3.9-17 DKMS files...
Building for 5.8.0-29-generic
Building for architecture x86_64
Building initial module for 5.8.0-29-generic
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/rock-dkms-firmw
are.0.crash'
Error! Bad return status for module build on kernel: 5.8.0-29-generic (x86_64)
Consult /var/lib/dkms/amdgpu/3.9-17/build/make.log for more information.
dpkg: error processing package rock-dkms (--configure):
 installed rock-dkms package post-installation script subprocess returned error
exit status 10
dpkg: dependency problems prevent configuration of rocm-dkms:
 rocm-dkms depends on rock-dkms; however:
  Package rock-dkms is not configured yet.

dpkg: error processing package rocm-dkms (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup erro
r from a previous failure.
                          Errors were encountered while processing:
 rock-dkms
 rocm-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ubuntu 20.04 got offical supporting since ROCm-3.7.
https://github.com/RadeonOpenCompute/ROCm/issues/1074#issuecomment-678805920
And AMD confirmed they wont add non-LTS releasing on offcial supporting list. But I had test ROCm-3.9 on Ubuntu 20.10 with upstream kernel driver - only install rocm-dev and rocm-libs. it works.
https://github.com/RadeonOpenCompute/ROCm/issues/1263#issuecomment-720264016

I had to update to 20.10 because the kernel used in 20.04 caused my Ethernet connection to disappear after resuming from standby. Does ROCm have any issue with updating the kernel in 20.04? Or does that make it not-really-LTS anymore?

I use ROCm 3.3 with Ubuntu 20.04 without problems. I did a minimal install and it works fine, and it is faster that version 3.5 and later versions.

Hi @yaomtc
ROCm works well with Ubuntu 20.04 official/default kernels. You can try with any different kernel on top of 20.04 but might or might not work. You can give a try.

Hi @ROCmSupport
Today I downloaded a fresh ubuntu 20.04 lts, installed it and then fallowed the instructions here https://rocmdocs.amd.com/en/latest/Installation_Guide/Installation-Guide.html ... It failed at the 'apt install rocm-dkms' step with an error about rock-dkms. I have attached the error file.
Crash.txt

Turns out the issue I'm having doesn't occur in linux-oem (5.6) which ROCm does support. Nice.

Unfortunately even with linux-oem on 20.04... I still can't install it.
Setting up dkms (2.8.1-5ubuntu1) ...
Setting up hip-rocclr (3.9.20412-6d111f85) ...
Setting up rock-dkms (1:3.9-17) ...
Loading new amdgpu-3.9-17 DKMS files...
Building for 5.8.0-29-generic
Building for architecture x86_64
Building initial module for 5.8.0-29-generic
Error! Bad return status for module build on kernel: 5.8.0-29-generic (x86_64)
Consult /var/lib/dkms/amdgpu/3.9-17/build/make.log for more information.
dpkg: error processing package rock-dkms (--configure):
 installed rock-dkms package post-installation script subprocess returned error
exit status 10
Setting up g++-9 (9.3.0-17ubuntu1~20.04) ...
Setting up g++ (4:9.3.0-1ubuntu2) ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mo
de
Setting up build-essential (12.8ubuntu1.1) ...
dpkg: dependency problems prevent configuration of rocm-dkms:
 rocm-dkms depends on rock-dkms; however:
  Package rock-dkms is not configured yet.

dpkg: error processing package rocm-dkms (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup erro
r from a previous failure.
                          Setting up gcc-multilib (4:9.3.0-1ubuntu2) ...
Setting up g++-9-multilib (9.3.0-17ubuntu1~20.04) ...
Setting up g++-multilib (4:9.3.0-1ubuntu2) ...
Processing triggers for sgml-base (1.29.1) ...
Setting up x11proto-dev (2019.2-1ubuntu1) ...
Setting up libxau-dev:amd64 (1:1.0.9-0ubuntu1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.1) ...
Processing triggers for man-db (2.9.1-1) ...
Setting up libxdmcp-dev:amd64 (1:1.1.3-0ubuntu1) ...
Setting up x11proto-core-dev (2019.2-1ubuntu1) ...
Setting up libxcb1-dev:amd64 (1.14-2) ...
Setting up libx11-dev:amd64 (2:1.6.9-2ubuntu1.1) ...
Setting up libglx-dev:amd64 (1.3.1-1ubuntu<IP_ADDRESS>) ...
Setting up libgl-dev:amd64 (1.3.1-1ubuntu<IP_ADDRESS>) ...
Setting up mesa-common-dev:amd64 (20.0.8-0ubuntu1~20.04.1) ...
Setting up rocm-opencl-dev (3.6Beta-14-g0c40e05-rocm-rel-3.9-17) ...
Setting up rocm-clang-ocl (<IP_ADDRESS>-rocm-rel-3.9-17-50fb51a) ...
Setting up rocm-utils (<IP_ADDRESS>900-17) ...
Setting up rocm-dev (<IP_ADDRESS>900-17) ...
Processing triggers for libc-bin (2.31-0ubuntu9.1) ...
Errors were encountered while processing:
 rock-dkms
 rocm-dkms
E: Sub-process /usr/bin/dpkg returned an error code (1)

Hi @RoyPrather
Looks like you are installing ROCm on 5.4.0-56. Found that 5.4.0-56 is not working for ROCm.
Recommend to install ROCm on 5.4.0-54 and it works.

I got the exact same message as @yaomtc while trying to install rocm on both Ubuntu and Pop os (practically the same). Upon opening the log at /var/lib/dkms/amdgpu/3.9-17/build/make.log it says that there is a gcc version mismatch (kernel 5.4.0-56 has gcc version 90303 instead of 90300) which I suspect could be the root of the problem. There have been similar problems to the unspoken Nvidia drivers as well, strengthening that suspicion. Problem could be solved by downgrading the kernel or gcc, testing right now. However, 20.04 is officially supported but it ships with kernel 5.4.0-56 which won't work with rocm. Moreover the legacy and pal stacks are deprecated and due to that not even amdgpu-pro drivers provide opencl support for 20.04. Could you please look into this?

Hi @josarv
We are aware of this issue now and there are similar tickets logged: #1307
We are working on the fix.
Meanwhile recommend to proceed with 5.4.0-54 kernel
Thank you.

Hi @josarv
We are aware of this issue now and there are similar tickets logged: #1307
We are working on the fix.
Meanwhile recommend to proceed with 5.4.0-54 kernel
Thank you.

ROCm does not work on Ubuntu 20.04 5.4.0-54 kernel with MI25 GPU

Hi @rur0
ROCm works well with 5.4.0-54 but not with 5.4.0-56. Hence am recommending 5.4.0-54.
I have Ubuntu 20.04.1 with 5.4.0-54 + MI25, its working well.

The issue with rocm seems to be affecting amdgpu-drivers as well due to legacy and pal stacks having been phased out. It looks like until the issue is resolved there's no opencl support for 20.04 that I know of. The 20.45 amdgpu-pro driver looks broken judging from my failed attempts to install it on a fresh 20.04 Ubuntu/Pop and the blender people report a similar situation: https://devtalk.blender.org/t/guide-install-amd-opencl-on-pop-os-some-ubuntu-derivates/13458
Will there be a new amdgpu-pro driver following the fix?

Hi @josarv
This is the space for ROCm.
Our kernel team is already working on patch for fixing installation issue on 5.4.0-56 kernel.
Until then, we recommend to use a working kernel like 5.4.0-56 or hwe kernels to proceed further with ROCm.

For people just landing here cus there stuff is broken. Kernel -56 doesn't isnt working, kernel -54 breaks my networking... but Ubuntu live media ships with kernel -42. I was able to boot into kernel -42,  apt remove all other kernel images/modules/headers , then amd's software instaled without issue. both ROCm and pro drivers. OpenCL working.

For me Ubuntu 20.04 with the original 5.4 kernel, and dkms kernel modules, did install, and work successfully.
But I only need OpenCL, so now I don't use dkms anymore, and only install package rocm-opencl. So far OpenCL installed this way is working fine for me (although there are some minor issues) on 20.04 with all kernels, and even on 20.10 with kernel 5.8.

Hi @chaoji90 and all,
Now ROCm 4.0 works well on Ubuntu 20.04 and ROCm 4.1 is coming with the latest kernel support also.
The current issue is not observed anymore.
I am closing this now.
Feel free to open any new issue for quick responses.
Thank you.

I will can not install it on Ubuntu 20.04.
Got the following:
Unpacking rock-dkms-firmware (1:4.2-21) ...
dpkg: error processing archive /var/cache/apt/archives/rock-dkms-firmware_1%3a4.2-21_all.deb (--unpack):
trying to overwrite '/usr/share/doc/amdgpu-dkms-firmware/LICENSE', which is also in package amdgpu-dkms-firmware 1:<IP_ADDRESS>-
1247438
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/rock-dkms-firmware_1%3a4.2-21_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

For more information about GPU model, please see:
sudo lshw -C display
*-display
description: VGA compatible controller
product: Hawaii XT / Grenada XT [Radeon R9 290X/390X]
vendor: Advanced Micro Devices, Inc. [AMD/ATI]
physical id: 0
bus info: pci@0000:01:00.0
version: 80
width: 64 bits
clock: 33MHz
capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
configuration: driver=amdgpu latency=0
resources: irq:30 memory:d0000000-dfffffff memory:e0000000-e07fffff ioport:e000(size=256) memory:efe00000-efe3ffff memory:c0000-dffff

Hi @Gustavofaa
As the current issue is already closed, request you to file new tickets, for quick resolutions.
You are using Hawaii XT, which is not a supported rocm config and so can not comment on this.
And also from the above error messages, I found that you have already instaled amdgpu-pro initially and then trying to install rocm on top of that, which is incorrect. At a time, rocm or amdgpu-pro can be installed. Installing both cause installation breakages.
Hope this helps.
Thank you.


Imgui Swallowing

Describe the issue
ImGui sometimes wants mouse and/or key inputs, when it does,
stop events from reaching the rest of the layers.
PR impact
List of related issues/PRs this will solve:

Impact
Issue/PR

Issues this solves
#200

Other PRs this solves
#201

Proposed fix
Provide an OnEvent function for ImGui, so it can set events to handled when it wants input.
Additional context
This is not the complete solution to #201.

As mentioned in https://github.com/TheCherno/Hazel/pull/201#issuecomment-616785426, we should also fix the e.Handled check:
 	for (auto it = m_LayerStack.rbegin(); it != m_LayerStack.rend(); ++it)
 	{
 		if (e.Handled)
 			break;
 		else
 			(*it)->OnEvent(e);
 	}


Add linking of libintl.dylib to mac instructions

This fixes https://github.com/dotnet/corefx/issues/29426

@akoeplinger hey sorry to pester you but do you think you could review (or ask someone else to) the open PRs in libgdiplus? I want to work on some stuff but actually can't because of merge conflicts and confusion

@marek-safar do you think you could review some of the open PRs? thanks!

@hughbe sorry for the lack of updates, I've already talked with @marek-safar about getting someone to review libgdiplus since I've not been able to keep up with it in my spare time :)


export results of Job as csv / excel

Related to #113 (exporting as background task)
It would be beneficial to have the ability to export a Job as a tabular document, .csv, excel, etc.  This could be a Spark or background task.

These are probably two separate issues, breaking them out thusly: exporting XML from Jobs, and exporting tabular data from indexed fields.


nethack: enable curses on darwin

Description of changes
enable curses interface for darwin builds
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/3495

@ofborg build nethack nethack.passthru.tests

@wegank

This PR has regression on Linux, according to ofborg. Any idea?

@wegank could you show me where to find it? I did try myself before but ofborg infrastructure is very vague to me

I have this on my side, just above Add a comment:

@ofborg build nethack nethack.passthru.tests


[MapleStory.gg] Initial version

Description
This provides lookup feature for MapleStory users. It uses the API from https://maplestory.gg.
Features

Lookup characters
Save characters to favorites

Where to get sample characters for testing
Here: https://www.nexon.com/maplestory/rankings/north-america/overall/weekly?world_type=both
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

@pernielsentikaer I cannot reproduce those problems you've reported. There works well on my local dev environment.

It's not possible to remove a character after adding to the Favorite Character.

I cannot reproduce this. Please note the page will load the latest data if you go to detail page from favorites. The Remove character action will show after the loading state.

Clicking View Character in above view doesn't do anything at all

I cannot reproduce this. You should be able see some errors in console if nothing happened. Could you provide more information?

Maybe add a nice List.EmptyView if no characters is added, it feels pretty empty and I was a bit unsure if I could search in that view

Good point. I just added a cute Lucid avatar and message for the empty view.

Add icons to the actions

Done.


recreate deployments when they are deleted

Codecov Report

Merging #231 (ccce689) into master (4761d8c) will increase coverage by 3.98%.
The diff coverage is 12.50%.

@@            Coverage Diff             @@
##           master     #231      +/-   ##
==========================================
+ Coverage   43.55%   47.53%   +3.98%
==========================================
  Files          32       33       +1
  Lines        4544     4996     +452
==========================================
+ Hits         1979     2375     +396
- Misses       2565     2621      +56

Impacted Files
Coverage Δ

...mblyline_core/scaler/controllers/kubernetes_ctl.py
14.05% <12.50%> (-0.05%)
:arrow_down:

assemblyline_core/dispatching/timeout.py
97.29% <0.00%> (ø)

assemblyline_core/updater/helper.py
18.69% <0.00%> (+1.04%)
:arrow_up:

assemblyline_core/dispatching/client.py
79.87% <0.00%> (+2.01%)
:arrow_up:

assemblyline_core/dispatching/dispatcher.py
82.22% <0.00%> (+4.27%)
:arrow_up:

assemblyline_core/alerter/processing.py
92.96% <0.00%> (+4.47%)
: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 4761d8c...ccce689. Read the comment docs.