Add more translations (e.g. French, Turkish)

Current Implementation

Currently only English and German are supported.
Suggested Enhancement

We should add the most spoken languages for immigrants (Turkish, Arabic) and also languages for our neighbor countries who should use the app when they come to Germany (French, Dutch, Polish).
We should probably add support for a Translation Management System like Lokalise or Transifex (which both are free for open source projects) to make contributions here easier (for example I could ask my wife who's not a developer to provide Turkish translations then). I could set this up myself if you agree.
Expected Benefits

Immigrants will be able to understand the app in their native language. This is especially important because they might not know as much about the latest news as native speakers, so we should help them within the apps at least.
Also the borders in Germany will not be closed and people are entering Germany and those people should be able to use this app as well because they also come in contact with people in Germany.

Hi @Jeehut ,
Thanks for your suggestion. We have our internal plan to release different versions.

What do you mean by "different versions"? Doesn't really sound like it has anything to do with translations ...

What do you mean by "different versions"? Doesn't really sound like it has anything to do with translations ...

I mean we have plans to release some versions with other languages. btw, I don't think i18n is  only translation.

Isn't the concept that people visiting from France just can use their app (or any other app Corona warn app) and everything works automatically?
If this is the case I would suggest to concentrate on people living in Germany.

English should be enough as additional language for the first 10 versions.

In about 40% of households with at least one person with migration background, German is not their main language. These households are equally important. There main languages spoken are Turkish, Russian, Polish and Arabic.
Source: Destatis, 2018

And I strongly agree with @Jeehut! I think making the translation open-source as well, like Mozilla does, can speed up the process. We have such a diverse community in Germany and I guess many of them will contribute / review to make the app available in as many languages as possible.

@dasdom I don't think inter-app compatibility is a high priority for the first major version of these apps. As each country has a different idea on how this should be tackles, unfortunately that probably won't be possible. At least that's what was clearly stated in the German press & media.
@haosap Sure, I18n isn't only translation, but translation is a good start, if dates and other things look off in the first version, no one will complain, but not being able to understand it is a bad thing.
@manoloxxl @haosap Who decided that? And what do "first 10 versions" even mean, does this mean for the first 2 weeks of beta testing or does it actually mean 10 final releases? And why 10? It all sounds just like someone made a weird decision out of the blue, at least you don't explain the rationale.
So please either be more elaborate of the reasoning behind this or face the truth that people (maybe me if not anyone else) will create a fork and start translating this to other languages without asking for your permission, cause it's a real you seem not to care about enough.
Just my opinion.

@Jeehut Wait, then I don't understand it at all. I thought the devices talk to each other and exchange keys. This happens in the background on system level without any app installed. The apps are there to notify the user about potential contact to an infected person. So I don't unterstand what you mean with inter-app compatibility.

@dasdom True that, but as a German, I right now do not know which keys from foreigners, I collected, are marked as infected. As only the German app users upload their keys to the German servers

I see. Thanks for the clarification.

In about 40% of households with at least one person with migration background, German is not their main language. These households are equally important. The main languages spoken in these households are Turkish, Russian, Polish and Arabic.
Source: Destatis, 2018

Maybe the people will learn the language for that country they are living in ;) It will not just help for a simple app but also for the hole life.
But: Feel free to support the developers. Maybe they provide the PO / language files true the regular translation platforms and you can provide the translations for them for any language you can translate.

But: Feel free to support the developers. Maybe they provide the PO / language files true the regular translation platforms and you can provide the translations for them for any language you can translate.

That's what this issue is about afaik

@manoloxxl How dare you say that. I don't want to get personal here, but that's really a bold statement that shows your policital opinion. If that's really the rationale behind this, I will simply ignore your opinion here and create a fork and translate that. But I will give others the chance to explain until tonight, maybe @manoloxxl is just the only one with this opinion.

@manoloxxl Please read the Code Of Conduct.

@manoloxxl How dare you say that. I don't want to get personal here, but that's really a bold statement that shows your policital opinion. It's clearly discrimination and if that's really the rationale behind this, I will simply ignore your opinion here and create a fork and translate that.
But I will give others the chance to explain until tonight, maybe @manoloxxl is just the only one with this opinion.

 But think whatever you want, it's a free country.

Dear @manoloxxl, as it has been twice referred to the Code of Conduct, I would like to ask all contributors of this issue including yourself to stay focused with further conversations on the initial issue and refrain from statements which could violate our Code of Conduct. Otherwise, we will need to continue on a second level of moderation, which we certainly don't prefer. Thank you.
Best regards
MC
Your Corona Warn-App Open Source Team

Dear @manoloxxl, as it has been twice referred to the Code of Conduct, I would like to ask all contributors of this issue including yourself to stay focused with further conversations on the initial issue and refrain from statements which could violate our Code of Conduct. Otherwise, we will need to continue on a second level of moderation, which we certainly don't prefer. Thank you.
Best regards
MC
Your Corona Warn-App Open Source Team

Your CoC accepts to insinuate other people racism and after that insinuation the victim(!) is warned by the staff. Crazy world.

Hi @manoloxxl I'm referring to your statement "Maybe the people will learn the language for that country they are living in ;) It will not just help for a simple app but also for the hole life." Furthermore, in my comment above, I have asked all contributors of this issue to stay focused on the issue and conform with the Code of Conduct, not just you.
Thank you.
Best regards
MC
Your Corona Warn-App Open Source Team

My two cents: Blaming (and punishing) people for not speaking the language of the country they live in is wrong. We don't know these people. I try to always assume that people who live here but do not speak my first language to have a good reason for this. I never had to leave my country. I cannot imagine how this is like. And I cannot image how someone feels who build up this country several decades ago and who was put into communities by their own to not be mixed with the Germans. I have no idea how this feels like. And therefore I try to not judge these people I don't know.
In my opinion, when you assumed that everyone living here should speak the language (from day one),  you judged the people who do not speak German (from day one). For me, this violates the first example in the Code Of Conduct:

Demonstrating empathy and kindness toward other people

I think this is the reason others reacted that harsh on you. I don't think it's correct to react that harsh (and I didn't), but farming yourself as the victim is also not correct.

@dasdom I just really want to answer and explain why I think such a "harsh" reaction is the only correct reaction, but we were asked to not continue on that road and just keep the discussion to the original topic.
So instead, I'd like to ask the question:
Do you guys have any experience with translations services like the two mentioned in my original post or others? Which one would you recommend for this project?

@Jeehut I worked a lot with Pontoon as its used by mozilla in their projects. Another tool I previously used in a similar German governmental project environment was phrase. Although its neither open source nor free, hence requires the project team to buy licenses and is not suitable for an open source contribution.

I think there are three requirements for a translation manager for this project:

Easy to setup (as time is an important factor here)
Has a review process (so no one can provide rubbish)
Free for open source (so no extra costs are added)
Flexible enough to work for iOS, Android & Web technology

I chose Lokalise and Transifex because they fulfill those requirements (at least they appear to, haven't tested them out yet). I also found CrowdIn to fullfill those requirements. Phrase I have experiences with but they don't provide any specific open source plans. Pontoon seems to fulfill 2. and 3. but not 1. (we need to deploy it ourselves and maintain a server). If we were to go that direction, we would also have Weblate available, their hosted service also seems to provide an open source plan.

Both lokalise and transifex look like a suitable option, although I somehow like the feel of lokalise more.

@Jeehut you said you want to wait until this evening and than create the fork? Let me know if I can support you with anything when you do so

Thanks again for your initiatives on getting the app translated and localized properly for much more languages. We are of course aware of the fact that there are millions of people living/working/travelling/... in Germany who simply want to use the app in their native language for whatever reason. We don't judge about that and I would underline again that political or any other related discussions on the background of this motivations are not appreciated in this forum.
However, please also be aware that all localizations need to be done properly and completely. The application is still under heavy development and if you start already now, you will have to do much more in the long run. Probably, it makes more sense for languages beyond English and German that translations are done once the UI text for the final release are fixed and not before. By then, we probably also have a better process on involving interested native speakers into the localization process.
No matter what, I wouldn't recommend forking the app just for the sake of translations (bugfixes, features etc. is something else) right now. It might not be possible to merge these changes right now for the reasons mentioned above. We are aware of the topic and will come back to you and also the Android colleagues (see https://github.com/corona-warn-app/cwa-app-android/issues/86) once there are news.
Thank you for your understanding!
Mit freundlichen Grüßen/Best regards,
SW
Corona Warn-App Open Source Team

@SebastianWolf-SAP Thank you for that explanation. The only reason I considered forking this to get it translated is because I was expecting this state to be already close to final due to the publicly promised release (at least that's what I heard in media) within this month. I just care about the official public first version which will be announced big and which will cause the first wave of users installing it. That's when the app should be already translated to several languages.
Your answer sounds more like the current progress isn't close to a releasable state though and things are still quite in flux. In that case of course I agree that it's not the right time for translations yet. I think the translations should be added 1-2 weeks before the planned final release or in case a beta phase is planned alongside the first beta. Also, as long as you're having plans to actually support more languages than just the current two, I'm happy to wait for the right time and will not create a fork, which would only make things worse to manage.
Thank you for the more detailed answer!

Thanks for your reply! Well, the first release is still targeted for mid-July, so we are talking about 2 weeks from now. However, as you can see in the repos, the dev teams are working almost day and night to make this happen, so time-wise we are close, but content-wise many things may change.
Probably, it's a good idea to reserve some time next week, but no promises yet. We are working on something...

I second @Jeehut's suggestion on Crowdin. We use it for multiple languages in SORMAS (Surveillance, Outbreak Response Management and Analysis System; https://github.com/hzi-braunschweig/SORMAS-Project). So far we've translated from English to German, French, Suomi/ Finnish and Spanish. Currently working on Pashto/ Afghan language and others. We are satisfied with the tool.

A small update from our side: Other, officially supported languages beyond English and German will most certainly come much earlier than expected, not for the first version, but straight afterwards.
Once the final list of officially supported languages (you won't be disappointed most certainly ;)) is there, we will publish that list and also ask you all if there are additional ones which you would like to have supported and could translate and choose one or two to kick-start and work on a community translation process.
The point is that we still have quite some things to clarify as many UI texts and especially privacy notice, EULA and related things are legally binding documents, so they need to be 100% correct. But I'm quite confident that we will find a solution...
More updates will follow as soon as we have them. Thanks, colleagues!
Mit freundlichen Grüßen/Best regards,
SW
Corona Warn-App Open Source Team

@SebastianWolf-SAP Thank you for the update!
I'm not really happy though to hear that additional translations won't be available on the first public release, I think that's a missed opportunity for building trust (and trust is an important requirement for this project to be a success). So I at least hope the "straight afterwards" you mentioned is a quesiton of days, not weeks.
It would be a bummer if the translations wouldn't be available within the first 10 days or so where probably most people are going to download and setup the app (and then never open it again unless they're tested positively to see that translations were added later on). Especially given that we offered to alleviate the hard work by helping setup the translations and even start translating them. In my opinion, even if you planned to pay professional translators to do the translations, I think it could have only helped if we already set the tooling up and provided initial translations that the translator could improve upon.
By the way, I don't think that translating the privacy notice, EULA and other legally binding documents is really relevant to people who just want to understand and use the app. If those are available only in German and English on initial release, I don't think that it's going to be an issue legally, as this app is targeting usage in Germany only. My concern here is not targeting other countries people, it's making the app more accessible and given the time constraints we're in, I think we should think pratically and prioritize to translate the UI first. I think of it like a technical hurdle, the app will technically not work for many people because of missing translations of the UI.
Also, your text sounds very much like you're not planning to make the "officially supported languages" available for improvement on translation management platforms with easy access for non-developers. Because you're only mentioning "additional ones which you would like to have supported" that could be translated.
I'm sorry if I sound a little negative, as an app developer I feel responsible for the success or failure of these projects and I just want to help if I can.

We all share the same goal, no question about that. On the other side, we can't discuss the issues exclusively on a technical/developer level. Especially in such a project, the legal side is very important.
And perhaps one more thing: Sorry that it sounded as if we only include additional ones in the community process. Of course, we also plan to include the existing ones for improvements.
Mit freundlichen Grüßen/Best regards,
SW
Corona Warn-App Open Source Team

Hi, for health (and privacy!) related issues it is essential to have translations — even if you are quite good in german/english, you need to know exactly what the app does, and in a second language you might not. Many people living in Germany speak German well enough to get around, but will not install an app that is not available in their mother tongue.

@flegfleg That's exactly what I also tried to express with my viewing of the translations as a pure technical hurdle (very much like accessibility labels). But people from big companies in Germany only think about possible legal consequences. People don't matter to them as much as money. That's basically the core flaw of the system we're living in.
And they will answer: "No, people do matter to us, but we have to also make sure we are safe legally!" But that's exactly the point: People should be prioritized over legal issues, always. A legal system is only there to make sure that people get along with each other and there's no problems. But many people seem to never have understood that, especially in Germany. They are following rules blindly sometimes and just blame politicians in cases where following the rules leads to a worse situation. But there's a reason why the constitution stands above any other legal rights, because some situation require us to handle things differently to fulfill the basic requirements in a given situation. An in this situation, I totally agree that accessibility is to be preferred over legal details. (Again, I don't think it's a problem if the legal documents are just not translated.)
But that's just how I would have handled this, since I'm not the person responsible here, of course the people who are need to decide this and they seem to think differently.

Dear @Jeehut,
we really appreciate your engagement, but this comment is very close to justify an official warning with respect to our code of conduct. Your statements "People don't matter to them as much as money." or "They are following rules blindly sometimes..." are quite serious accusations and I'd kindly ask you to think about that again...
Our statements earlier (see above) are still valid and we kindly ask you all to treat each other with courtesy.
Mit freundlichen Grüßen/Best regards,
SW
Corona Warn-App Open Source Team

I'm not taking back any of what I said, but it can be misunderstood and this is probably not the right place to discuss that. It was meant as a general social criticism, not something specific to this project, but I've removed that part to keep the discussion on-topic. Sorry for that.

@SebastianWolf-SAP I think you guys need to really read articles like this one: Ein Spielzeug für digitale Oberklasse
Localization (the minimum here being translation) in as many languages as possible, preferably all languages spoken in Germany, is just a straightforward issue and is a required service to the society for such an app.
I believe you should take this, if necessary, up to RKI or even German government - if you need resources (people, money), apply for it... the idea of CWA is not a to be a commercial app but rather a social sevice the value of which increases the more people use it. If this requires to support all iOS language then be it so...

Hi @Jeehut ,
Thanks for your suggestion. We have our internal plan to release different versions.

So as an update is not good enough If some one is exposed and doesn’t speak German how are they to know? A bit short sited especially in an international city like berlin and in an EU Leafing country. Not good optics or forethought in the development stage there.

Dear colleagues,
you can be sure that we read such as articles as the one @imdatsolak. As said, we are working on updates, but we are also tied to a legal framework in Germany that makes certain things mandatory before we can release anything.
Unfortunately, we still don't have a final list of upcoming languages, but you certainly heard the announcement which was made on the release press conference last week. As it turns out, also the management of additional languages is sightly more complicated than originally expected (once again the legal stuff). So there are no additional updates so far.
To show that these additional languages will definitely come in one of the next releases, but can't be implemented directly, we move this issue to the cwa-backlog repository.
The issue will move back to the development repository once the agreement with the contracting parties has been reached that it's due to be implemented shortly.
Mit freundlichen Grüßen/Best regards,
SW
Corona Warn-App Open Source Team


MSR based sensor

Problem
We noticed that for kernel older than 5.11 on AMD Zen CPUs, perf is working fine and scaphandre is not. The reason is that kernel drivers for amd cpus needed by powercap to get rapl data are not present before 5.11. Perf relies on MSR.
Solution
We need an MSR based sensor to be able to get metrics when powercap rapl is not a solution.
Alternatives
None that I think of, but discussions are welcome.
Additional context
None.

Is there any reason to want an msr-based sensor instead on a sensor based on perf_open (https://www.man7.org/linux/man-pages/man2/perf_event_open.2.html) ?
It seems to me that perf_open have lower right requirements :  a /proc/sys/kernel/perf_event_paranoid  value of less than 1 or the CAP_PERFMON (since Linux 5.8) or CAP_SYS_ADMIN capability.
MSR reading on the other hand, requires root, which will generally quite hard to obtain on production systems.

Hi,
what do you think about this (maybe old) code?
https://github.com/kentcz/rapl-tools
I am not working with AMD but I am facing a similar problem on a 11th Gen Intel(R) Core(TM) i9-11900
where the id of the model is:
printf "0x%X\n" $(cat /proc/cpuinfo | grep model | grep -v name | uniq | cut -d: -f2)
0xA7

and the os is
Linux arriel 5.8.0-55-generic #62~20.04.1-Ubuntu

In this setup, rapl linux modules does not seem to be supported, however, the code I mentionned is giving me some power measures.
I am currently checking whether these are correct by comparing their values on another machine where rapl linux modules are usable.
Were you looking for something like this? Or do you think that a portable solution dealing with the different cpu architectures would be much more complicated to implement?
Thanks for your input if you have any clue.

@PierreRust you are right about the requirements of accessing the MSRs. I guess we should provide both approaches, if possible.
I'm currently working on #74 and using the MSRs (indirectly, through a custom driver) is a solution that seems to work properly in that context.
On linux however, we should probably give a shot on perf_open !
@paulgay thanks for sharing those tools, I didn't know varorium and it seems worth following the project to see if it can help at some point.
Looking at your CPU, I think this is related to #131 . You should follow this thread instead of the MSR one, which is more an exploratory topic. In your case it seems to be because of powercap changes on the most recent intel CPUs, as discussed in the thread.
Regarding MSR-based sensors, I'm working on one for windows, as mentionned in the previous lines. This will probably not be linux compatible soon, but we could start from that draft to bootstrap something for Linux. Or we could start something using perf_open as @PierreRust mentionned. The later seems more accurate for Linux, but I'm not ready to work on that personally so it's a bit early to say that we will take one direction or another.


Feature Request: color coding confidence of tokens/words

When the audio quality is poor, it's really helpful to have visual indicators for words with low confidence. This makes it easier to understand and interpret the transcription and possibly figure out what was actually said. Additionally, if you provide confidence scores and more context about the conversation to a language model, you might be able to adjust the text based on the context.
Currently, the default pipeline and whisper don't show the confidence level for each word. However, there have been some suggestions in this discussion https://github.com/openai/whisper/discussions/284 and this pull request https://github.com/openai/whisper/pull/1119 that could be useful in adding this feature.

Hey Kirill, cheers for the links! Noticed the same thing about the HF pipeline not giving us confidence scores, but looks like we can sort it out with Torch. Right now, the project's just a rough first go, not much tech finesse in it. I'm planning to dive back into it early next year: it's super important to have a unit test that uses some solid ground truth, like a real-world test run – I'll figure something out for that. Once that's sorted, there's heaps of room for improvement and new features

Done!


handle EHOSTDOWN

This is a mirror of https://github.com/joyent/libuv/issues/1512 .
I'm not sure if you have handled this...

This makes npm fail, when trying to install modules via npm.
Any solutions?

Fixed by 3f910a0.

Has this been fixed? I'm running node v0.12 on Yosemite and am still seeing:
Assertion failed: (0), function uv_err_name, file ../deps/uv/src/uv-common.c, line 75.

@yunong yes, but the builtin libuv in Node hasn't been updated.

@saghul is there a workaround to Node to pass the fail?   I've been trying to figure out a way around this error.

@vveerrgg You'd have to hand-upgrade the libuv that's bundled with joyent/node.

@vveerrgg looks like Node 0.12.1 will contain the fix, but before that
there is nothing you can do other than manually patching as Ben suggested.
On Mar 19, 2015 13:48, "vveerrgg"<EMAIL_ADDRESS>wrote:

@saghul https://github.com/saghul is there a workaround to Node to pass
the fail? I've been trying to figure out a way around this error.
—
Reply to this email directly or view it on GitHub
https://github.com/libuv/libuv/issues/195#issuecomment-83542254.

Thanks @saghul I'll give that a try.

for anyone else who might be in the same problem... looks like this set of commands will also update node (which may have been updated)

sudo brew uninstall node
brew update
brew upgrade
brew cleanup
brew install node
sudo chown -R YourUsernameHere /usr/local
brew link --overwrite node
sudo brew postinstall node

I kinda don't know exactly what I'm doing... but it seemed to fix the error for me.

For posterity - it looks like Node 12.1 does not include the fix.

I know, it's 12.2. which will.

I saw this error just now with node 0.12.2.
❯❯❯ npm install -g npm@latest
Assertion failed: (0), function uv_err_name, file ../deps/uv/src/uv-common.c, line 75.
❯❯❯ node --version
v0.12.2
❯❯❯ npm --version
2.7.5

Can you inspect the core dump and check the error code?
On Apr 4, 2015 20:52, "Shaun Jackman"<EMAIL_ADDRESS>wrote:

I saw this error just now with node 0.12.2.
❯❯❯ npm install -g npm@latest
Assertion failed: (0), function uv_err_name, file ../deps/uv/src/uv-common.c, line 75.
❯❯❯ node --version
v0.12.2
❯❯❯ npm --version
2.7.5
—
Reply to this email directly or view it on GitHub
https://github.com/libuv/libuv/issues/195#issuecomment-89634828.

I got the same error still...

What is the unmapped errno?
On Apr 21, 2015 3:11 PM, "Daniel"<EMAIL_ADDRESS>wrote:

I got the same error still...
—
Reply to this email directly or view it on GitHub
https://github.com/libuv/libuv/issues/195#issuecomment-94788235.

node 0.12.12:

node: ../deps/uv/src/uv-common.c:75: uv_err_name: Assertion `0' failed.
Aborted

Can you please paste the entire backtrace? Also, the unmapped code would be
the value of "err" when passed to that function.
Last, do you have a reliable way to reproduce it?
On Apr 21, 2015 4:16 PM, "Daniel"<EMAIL_ADDRESS>wrote:

node 0.12.12:
node: ../deps/uv/src/uv-common.c:75: uv_err_name: Assertion `0' failed.
Aborted
—
Reply to this email directly or view it on GitHub
https://github.com/libuv/libuv/issues/195#issuecomment-94810933.

@vveerrgg Thanks, that also worked for me! I'd suggest others to use this slightly less intrusive version first though:
brew uninstall node
brew update
brew upgrade --all
brew cleanup
brew install node


Allow %Q for dynamic strings with double quotes inside

If the string is dynamic and has double quote characters inside it, then %Q is warranted. We had a spec example for this already, but it contained a backslash that shouldn't be there.

Fixed changelog.


Add copy to clipboard button for the zod schema

Add a 'Copy to Clipboard' button to copy the Zod schema to the system clipboard. The button could be placed on the toolbar above the Zod schema editor or floating on top of the editor.

assign me this 😃

Assign me to this other account please


Failed to flash EFM32PG12

Describe the bug
Cannot flash to EFM32PG12 using probe-rs (tried via probe-run 0.3.9, probe-rs-cli 0.18.0, and the latest master of probe-rs)
Error message:
     Erasing sectors ✔ [00:00:00] [######<abbreviated>#######] 2.00 KiB/2.00 KiB @ 16.02 KiB/s (eta 0s )
 Programming pages   ✔ [00:00:00] [----------<abbreviated>---------------]       0B/1.00 KiB @ 13.66 KiB/s (eta 0s )
Error: The flashing procedure failed for '../../efm32gg-blink/target/thumbv7em-none-eabihf/release/efm32gg-blink'.

Caused by:
    0: Something during the interaction with the core went wrong
    1: An ARM specific error occurred.
    2: Error using access port
    3: Failed to write register DRW at address 0x0000000c
    4: The debug probe encountered an error.
    5: An error specific to a probe type occurred
    6: probe I/O command returned error code 0x6

(ignore the efm32gg, it's adapted from a different example and I didn't change the name)
To Reproduce
Steps to reproduce the behavior:

clone the probe-rs
run cargo run --release --bin probe-rs --features=cli -- run --chip efm32PG12B500F1024 path/to/binary/file

Expected behavior
a successful flash and some blinking LEDs
Desktop (please complete the following information):

Linux (Arch)

Additional context
log output: log.json.log
from reading other issues, I tried the following:
running openocd -c 'interface jlink; transport select swd; source [find target/efm32.cfg]' results in
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.org/doc/doxygen/bugs.html
DEPRECATED! use 'adapter driver' not 'interface'
cortex_m reset_config sysresetreq

Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : Silicon Labs J-Link OB compiled Feb  1 2017 16:00:37
Info : Hardware version: 1.00
Info : VTarget = 3.313 V
Info : clock speed 1000 kHz
Info : SWD DPIDR 0x2ba01477
Info : [efm32.cpu] Cortex-M4 r0p1 processor detected
Info : [efm32.cpu] target has 6 breakpoints, 4 watchpoints
Info : starting gdb server for efm32.cpu on 3333
Info : Listening on port 3333 for gdb connections
^Cshutdown command invoked

running probe-rs-cli debug --connect-under-reset --chip efm32PG12B500F1024 results in
Error: Connecting to the chip was unsuccessful.

Caused by:
    A timeout occured.

To be honest, I haven't flashed this chip before. I'll probably try some more stuff with openocd, but Silicon Labs doesn't seem to officially support anything outside of their own IDE, so it might take me a while.

for what it's worth, i tried flashing a EFM32GG11b (with some changes to the code), and it flashed fine (though I had a corrupted call stack (likely unrelated to probe-rs)), so at the very least, I don't think it's anything to do with my cable or my computer


Case insensitive property deserialization

Should this package follow System.Text.Json.JsonSerializerOptions.PropertyNameCaseInsensitive option for case sensitive deserialization of patch document, or is there any reason not to? relates to: https://github.com/Havunen/SystemTextJsonPatch/pull/9

If yes, then the deserializing of the operations could be improved for example like this: https://github.com/campersau/SystemTextJsonPatch/commit/4da8d3d21a88afd72f1cb223e4cae0f6bab79dd9 to get a little bit more performance:

Method
Mean
Error
StdDev
Median
Gen 0
Allocated

SystemTextJsonPatch_base
10.12 us
0.192 us
0.509 us
9.887 us
0.2747
4 KB

SystemTextJsonPatch_commit
9.120 us
0.1567 us
0.2574 us
9.085 us
0.2441
3 KB

Done


Polygon analysis

Added polygon intersection analysis support to Prism.  Supersedes https://github.com/WFP-VAM/prism-frontend/pull/405.  Most everything is dynamic and will work for any country, except the admin-utils.tsx file which I need to update to be dynamic and not hard-coded.

Saw a CI job fail. Quick read is that I just need to update a test snapshot.

@DanielJDufour can you recommend a country and a step by step guide to run locally for testing? Thanks!

Just pushed an update to admin-utils, so every country should be supported.
Here's the test case:

Select a country (you can start with Myanmar)
Click Run Analysis Dropdown (in top left)
Click Choose hazard layer
Click a vector hazard layer (like "Tropical Storms - Wind buffers")
Select an Admin Level in the dropdown
Select a start and end date
Click Run Analysis Button
Toggle map view and table view
Click download under the table
Click download in legend to download data as JSON (I think it's just a JSON array, not a GeoJSON, so we'll have to update that at some point)

Also, I think I caught an issue with the legend rendering. It might be rounding the breaks.  I'll try to fix that.

Getting there, a few things:

The mouse seems to disappear behind the table of results
Let's remove areas with no overlap (directly through zonal if possible)

Removed features with no overlap via https://github.com/oviohub/zonal/releases/tag/v0.4.0 and https://github.com/WFP-VAM/prism-frontend/pull/431/commits/7c0af96a86f5664ea729b52d204f5172559f68ab

Finished removing "no class" rows from table via https://github.com/oviohub/zonal/releases/tag/v0.5.0 and https://github.com/WFP-VAM/prism-frontend/pull/431/commits/acef3d6bd39ce4f4e1a56fbee696448e7c40fe28

refactored and reused generateTableFromApiData, so cursor shouldn't be hidden behind table rows anymore and clicking on a table row will open a popup.  I still need to refactor popup to display class information for each zone.

Great to see this progress @DanielJDufour. I tested analysis of tropical storms in Myanmar and found a few issues. My go to test date is May 21, 2016 since its a storm that made landfall and with more than one wind speed category.

The end date is not inclusive. I was expecting that by running an analysis with the same start and end date, I'd get a result but that's not the case
If I choose admin 1, the resulting map still shows admin 3 boundaries. In the previous version of run analysis, we were able to use the boundary file based on the baseline layer a user input. Can the same logic be applied here?
Admin 3 tropical storm analysis fails. See screenshot below
It would be preferable to have separate columns for each category, and a total across categories by admin area. See an example from the exposure analysis
The labels for admin levels are not quite right. Can we make this a configuration detail so that each deployment uses the correct names for admin levels?

Issue 1: End date is not inclusive

Issue 2: Boundary layer shown is for admin 3 but the analysis is based on admin 1

Issue 3: Admin 3 analysis fails

Issue 4: Each category should have a separate column as we've done with exposure analysis

fyi, I'm looking at the end date not being inclusive issue right now.

issue with end date not being inclusive has been fixed with https://github.com/WFP-VAM/prism-frontend/pull/431/commits/1e26f23a424b6434bdc37358134f3acb357754ba

@wadhwamatic ,  do you know where I can get the country-specific admin level names?  I currently know how to access the admin_level_names and admin_level_local_names from the JSON file, but they aren't very human readable.  Myanmar uses
{
    "admin_level_names": ["ST", "DT", "TS"],
    "admin_level_local_names": ["mmr_polbnd", "DT_MMR4", "TS_MMR4"],
}

Tajikistan uses:
    "admin_level_names": ["admin1Name_en", "admin2Name_en"],
    "admin_level_local_names": ["admin1Name_ru", "admin2Name_ru"],

Is this something we would want to add to the JSON file configuration if it's not there already?


cant buy or bid on players using web app

after using the script this year I am now unable to buy or bid on players through the web app, but can still buy and bid using the companion app. has anyone else had this? this is the error message i get when i try to buy or bid.

is this a soft ban? if so how to prevent it using safety settings on the autobuyer?

Diminuisci il numero di ricerca ed aumenta la durata di pausa


FEATURE: Add 'refresh' command to force Neo-tree refresh

Did you check the docs?

[X] I have read all the docs.

Is your feature request related to a problem? Please describe.
Sometimes, neo-tree won't refresh the git status & lsp diagnostics in time. So I have to first type <C-w> to navigate to neo-tree window, then press R key to refresh it, then press <C-w> to navigate back to the buffer I'm editing.
Describe the solution you'd like.
Can we create a refresh command? So I could create a key mapping to invoke Neotree refresh to refresh neo-tree.
Describe alternatives you've considered.
No response
Additional Context
No response

thank you for teaching !

Also thankful for this explainer. For my usecase I'm opening lazygit within a neovim floating terminal and I find that the git state in neo-tree doesn't update after closing the terminal.
With this I was able to add a callback to refresh after exiting lazygit.


Allow multiple material overrides for a MeshInstance (where underlying Mesh has multiple materials)

Operating system or device, Godot version, GPU Model and driver (if graphics related):
OS: Windows 10 64-bit
Godot version: Custom build of latest master
Issue description:

Currently Godot permits a single material override per MeshInstance.
Where the underlying mesh has multiple materials, it would be very useful to be able to override any of those materials for a specific MeshInstance. This is essential e.g. for outline highlighting (see issue here).
See also the discussion here.
Steps to reproduce:
Create several instances of a MeshInstance where the underlying Mesh has multiple materials. Attempt to override e.g. the Mesh's second material only for a single MeshInstance.
Link to minimal example project:

n/a

I saw a confusing post on QA today: https://godotengine.org/qa/24035/universal-common-effect-shader-material-different-modeling
But it reminded me of this limitation, it would be really nice to have that.

Not sure what the MeshInstance was like when this was written. But now there is an override per-material in the MeshInstance, it can be set through the editor, or through GDScript with set_surface_material() (http://docs.godotengine.org/en/latest/classes/class_meshinstance.html#class-meshinstance-method-set-surface-material) This overrides on a MeshInstance basis. I have proposed that this function be renamed for 4.0 due to the confusion between it an Mesh.surface_set_material().


Added note about Api 31

Added note for Api 31 that it needs JDK 11 to work.

#signoff

#sign-off

@alihamie: I'm sorry - only the author of this article, @davidortinau, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off

@jamesmontemagno: I'm sorry - only the author of this article, @davidortinau, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


Outline doesn't have any effect

I added an outline class .outline-solid-red-400 on an element and it doesn't have any effect.

So I went to the document and I found that the examples also doesn't have any effect.

I confirm the bug

Outlines are indeed broken, even on documentation site.

I think the docs are outdated/out of sync. Add an additional class outline-solid for the outline to work. For example:
outline-solid outline-solid-red-400
You can also control width with outline-[x] and offset with outline-offset-[x] where [x] is a number.


⚠ Spryr has degraded performance

In c7a0b0a, Spryr (https://spryr.com) experienced degraded performance:

HTTP code: 200
Response time: 4089 ms

Resolved: Spryr performance has improved in 06db07f after 21 minutes.


ZkClient reconnects and the service re-registers

When the network is unstable, zkClient disconnects from zookeeper and the service goes offline from zookeeper. After re-establishing the connection with zookeeper, the service will be re-register.

Codecov Report

Merging #1348 (12f6707) into master (8a4a719) will decrease coverage by 0.20%.
The diff coverage is 26.66%.

@@             Coverage Diff              @@
##             master    #1348      +/-   ##
============================================
- Coverage     68.14%   67.93%   -0.21%
+ Complexity     2093     2088       -5
============================================
  Files           395      395
  Lines          8367     8381      +14
  Branches        842      844       +2
============================================
- Hits           5702     5694       -8
- Misses         2241     2263      +22
  Partials        424      424

Impacted Files
Coverage Δ
Complexity Δ

...t/zookeeper/ZookeeperClientRegisterRepository.java
55.35% <26.66%> (-11.31%)
8.00 <0.00> (ø)

.../soul/admin/service/impl/UpstreamCheckService.java
56.88% <0.00%> (-10.10%)
16.00% <0.00%> (-2.00%)

...soul/client/tars/TarsServiceBeanPostProcessor.java
23.17% <0.00%> (-8.54%)
5.00% <0.00%> (-3.00%)

.../soul/plugin/httpclient/NettyHttpClientPlugin.java
57.14% <0.00%> (-2.05%)
10.00% <0.00%> (ø%)

...omara/soul/sync/data/http/HttpSyncDataService.java
73.52% <0.00%> (+7.84%)
12.00% <0.00%> (ø%)

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 8a4a719...12f6707. Read the comment docs.


Mark example package as a binary

Hey @zombiezen if you want to do this, can you fix the build as well?
The code will need some reorganization. Perhaps routes in their own package.
Tests import "example" package so they can get the routes.

Done. I didn't realize it was being imported until the test results came back.

No worries! Thanks for the PR Ross :D :tada: :tada:


chore(taos): release v0.3.0

🤖 New release

taos -> 0.3.0

This PR was generated with release-plz.

Codecov Report

Merging #49 (885d356) into main (5d0a522) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #49   +/-   ##
=======================================
  Coverage   62.64%   62.64%
=======================================
  Files          98       98
  Lines       17393    17393
=======================================
  Hits        10895    10895
  Misses       6498     6498

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Minor adjustments to readme

Hey @KyleAMathews, I took a stab at minor improvements to the readme. Please feel free to reject these if you don't like them.

Looks good to me!


Language Service(?) is abbreviating types too aggressively

I have a project with some pretty complicated types - generics with function signatures as type parameters, themselves returning generic types of all sorts.  I've noticed in using 3.3.3333 with vscode 1.32.3 that my tooltips types are abbreviated in a new way with ellipses throughout.  I understand the intent but these abbreviations are too aggressive.  I'm trying to debug my types and I can't tell whether/where some of the nested type inferences are getting dropped (to {} or any, for example).
I don't know how to repro this issue because it is specifically related to the size and complexity of the types involved.  Maybe others can contribute anecdotes of this happening with popular libraries?  Or maybe someone with knowledge of the code can call out the culprit more actionably.
I guess that there's some algorithm that assigns weights to the various parts of the type tree and adds ellipses to keep the rendered length under some limit.  Is there a way to tinker with this limit as a user to allow me to see longer or even complete signatures, even if they're a mile long?  Or maybe there's a usability nuance that the weightings aren't accounting for.  All I know is that I'm unable to see the inferred types that I need to see to debug my types.

You can try the noErrorTruncation compiler option. Despite the name it seems to also work for quickinfo.
There's a proposal (here or in the VSCode repo) to make quickinfo tooltips interactive, so you can click on the ellipsis to expand it. Unfortunately I cannot find it right now.

noErrorTruncation doesn't help. It'll still show the ellipsis.

The ... is also used for reverse mapped types where we used to incorrectly print any (we actually still have strong types for the thing all the way down, the structure just expands potentially forever).


animating list items being hidden/revealed

After quite some time digging into List.js's source, I seem to have found a way to add animations when list items are removed/added:
http://codepen.io/anon/pen/KAadF
var templater = userList.templater;
templater.clear = jQuery.noop; // relying on `show`/`hide` instead
templater.show = function(item) {
  jQuery(item.elm).slideDown();
};
templater.hide = function(item) {
  jQuery(item.elm).slideUp();
};

However, I'm not sure that's the Right Way™; it feels like a workaround - is there a better way?
(By the way, I was surprised that List.js's default templater erases the list and recreates it from scratch - is there a reason for that?)

michaltowilk,
This is what I've been unsuccessfully trying as well. Would you mind going into a bit more specific detail? Maybe post your relevant code?

I'll close this now since it's more a of a question than an issue.


Art: S1 logo

This issue is for exploring logo designs for season 1.
The cold W really doesn't work with light designs I've been working on -- I feel like the the hard aesthetic of the grid clashes with things that stray from the grid.
Also, I want to kind of get away from the "W on a grid" in general. It hints at "metaverse" but that is a vague notion with a lot of baggage, it is impersonal, and the grid makes people think of land, which is the wrong place to start. It also doesn't seem very welcoming.
I threw this together with google images using stolen art:

https://www.pikpng.com/pngvi/iximwow_cherry-blossom-drawing-png-clipart/
https://www.vectorstock.com/royalty-free-vector/elegant-black-roses-design-vector-20046056
https://www.google.com/search?q=nature+svg+divider
https://www.google.com/search?q=sakura+branch+svg
I tried to imply a lot of ideas with this:

creativity
openness
markup <>
cartoon logo
convergence
merging
roads
growth
organic
hand made
high quality
high tech
caring
good future
park bench

By segmenting parts like this it would also allow for a lot of animation possibility in UIs.
Could use some variations playing around with this.

There could be a road/map motif in here somewhere too.

https://github.com/webaverse/assets/blob/master/logo-draft.ai

It could also be yin yang themed. The bottom right could be the hard "dark side" with the top representing the "light".

http://images.google.com/search?q=storybook+letters

https://www.pinterest.ca/pin/472103973414756728/

Going to dump some stuff here - still a lot of work to go, hope you don't mind the looser sketching. If anything jumps out as especially good or bad, feel free to let me know

Is there any 'icon' that really relates to Webaverse in the same way that Link's sword relates to the Zelda games?
I'm playing around with the Street, the W, and  the pyramid, but they all feel a bit generic - let me know if anything comes to mind

This is old, just putting it here for records reasons. Already got feedback on these, they aren't in the right direction

Tried a totally different approach, seems like the previous ones weren't quite right. How is this direction? Playing more on the Street  idea, as well as on the stylized nature of Webaverse, the Fortnite influences, and the magical/RPG elements

Great work!
Very interesting approach with the street concept.
The one thing that seems missing is from the street is the implication of creativity or exploration;
Perhaps if the letters were made from some other materials growing out of the street, like ancient vines, advanced tech or weird goops it would add more personality.
Another comment is that whereas the 3D street looks great it might be hard to draw (people suck at perspective). I would also try some flatter versions (maybe sideways or top down view, depending on how the letters are represented).
Would also be interesting to see how that concept can collapse into a square or circle shape for iconography.
The other word marks have interesting color+line ideas too. But the street plus fortnite combination is the best basis.

Also, the logo should have a hint of Japanese, or something hinting at non-western origins.
That was always implied with 山 and people generally picked up on that. Although this font looks great and even adventurous, it loses a bit of that aspect.

Thanks for the feedback - I can definitely work with that!
I'll see what I can do to pull in more of the creativity/exploration vibes, as well as making the Street simpler and pulling some Japanese vibes/influences in, as well.
I'll do another round of revisions iterating on the more fortnite-y style and see what I can come up with!

I'm not particularly great with logos but wanted to try and pitch in to help! I imagine there's some kind of terminology for it, but one thing I see that's quite prevalent and usually effective is this kind of standout single letter in the typography of some text based logos / headers:

Some of them incorporate an existing logo into them or viceversa - take that element and run with it like a favicon etc.
I think the 山 can work great with the proposed ideas, it looks like spires, or something vines / ivy could grow from.
If I can think of any other logos etc that might be inspiring, I'll communicate them to you or drop them here / update

This is super useful, thanks vian!
It's funny that you were thinking of that too - I was messing around with having the A be a torii gate, hadn't considered using the 山 in a similar way but I think it's definitely worth messing with!

Are there source files for that cool font and design?

This is coming up on a month now so maybe it's time for me to take over the job.

I have a PSD file for it, if that will work - https://drive.google.com/file/d/1-P0enrlDa-lN3cpni3hkpth3P526LkpY/view?usp=sharing
The font is called River Adventurer.
I can have it done pretty quickly though, the only reason it isn't yet is that last I heard I was supposed to pivot to wearables. If it's high priority, I can have it done and in SVG by the end of the week, possibly sooner.
Just let me know what you prefer!

Thanks!
I think wearables is ironically blocked on this in part, because the wearables should make sense in terms of the branding, rather than vice versa.

Sure, no problem! I'll have updates here soon and I'll just shoot to have this shipped by end-of-week, then.

Ecco 2 Tides of Time (Genesis)
This is actually quite dark in tone, but in a curious way. Might provide some interesting textures or ideas to draw from.

Dragon from Sekiro

These are silhouettes only - I want to get a final silhouette nailed down then I will add color/textures.
I think these should be getting closer to what you're looking for, is there one that jumps out to you that I can make tweaks to?
Also thanks for those screenshots/images - I think I'll pull color and texture ideas from Ecco, among other things.

Looks like this may not have attached? Trying a re-upload

Any feedback on these one way or another? I'll need to do a final pass on texture and color today, so if I haven't heard anything, I'll just run with the one I feel is strongest.
Can always go back through if needed, but I'm shooting to have something final by the end of the week, so I'll have to run with something today.

personally think the W should be more emphasized rather than A, for sake of icons (see Z above: https://github.com/webaverse/app/issues/1283#issuecomment-855190700)

I don't think any letters need to be emphasized, but as a final step once everything is done perhaps the first letter could be storybooked.
https://www.google.com/search?q=story+book+font

This one is best but it's hurt by the enlarged torii and flat street (maybe I was wrong, or the lack of color and outlines makes this hard to picture in its final form).
I imagine the details being entangled with the letters themselves, growing into the letters somehow from the street. That would be really hard to show untextured.
And I also imagine there's more than one style of growth; perhaps vines plus something more digital or weird (that's why I added the Ecco references).

Also, that plant does seem on brand, but I adding extra distinct objects in the letter area seems like it's muddying the design.

Alright, I'll take the torii out and see about having the letters growing out of the Street, then!

Alright lads, here's what I came up with. Tried to pull in the letters 'growing' from the street and mixing the organic with the tech/magic vibes, removed any accented letters, kept letter silhouettes clear of obstruction, and pulled in some of the Ecco textures while keeping to a loosely Fortnite style.
I think we're going to run into the issue of it needing to be simpler, but I'm honestly not sure how else to compress all that information to a simpler read; there may end up having to be a sacrifice of either some of the information or some of the clarity of the read.
I'll be able to do another round of revision before the Monday meeting (Monday my time is Sunday in the states), and am hoping we can find another time to voice chat either during the meeting or otherwise; there's a lot of info that's difficult to transmit over text.
Let me know what you think!

Went through another round of revisions with Jin today, here's the sketches that resulted:

I've also blocked in the vector shapes and base colors for a final, locking it to a grid and following design practices for spacing, etc...

I am going to finish up a render tomorrow - this part took longer than expected due to being extremely unfamiliar with Adobe Illustrator. I think the only good way to get a clean end result is to re-create it all in Illustrator, so I am going to try rendering directly in that program.

That looks awesome! I wonder what it'd look like if the W was more wood / handmade texture and if the bottom right bracket is metallic / dark? This logo is a different flavor than the heavily stylized Fortnite Street, but does strike many of the ideas implied at beginning of the thread.

Of course! I should have clarified: this is a WIP - I am just blocking out shapes. I'll add textures and form tomorrow.

This getting close, into the realm of usable already. 👏
Both the W and street styles of logos are good, but I actually think two distinct but related logos might be needed.
Rectangle logo

I think we see the same thing about simplifying.
I like like how the street bleeds into the letters, but that might be part of the problem. What might be a better idea is to swap that layer for some other color/texture that is a counterpoint to the green. Perhaps some of the ideas from the Square logo (below) could be incorporated.
Also, it seems that it's the rock texture that adds the most complexity. Would any other textures, gradients, or outlines make the letters stand out more? The outlines in the previous glowing version seemed to do a good job focusing attention on the logotype.
Square logo

I really love the handrawn style of these, it's almost better than trying to flatten it if it can still be clear in favicon size (that's a good thing to check).
I highlighted what I think are the right ingredients, though I don't know how many of them will work together:

I like the idea of the socket plugging in, and how it combines the nature and digital theme, but I think it's too realistic/mundane. It might be more thematically if instead of being a traditional socket the cables implied:

charging your phone or VR headset (different cable type)
jacking into the Matrix (spinal hook)
the Steward from infinity train (tentacles)

But adding some sort of counterpoint to the nature theme is what I think works best. The flowers on the plant could also be Ecco balls instead, if instead of the digital component like cables we wanted something more abstract.

The closest one word descriptor I found is "solarpunk", which should generate a lot of other ingredients if needed.
https://www.reddit.com/r/solarpunk
https://www.pcgamer.com/au/enough-cyberpunkits-solarpunks-time-to-shine/

Alright - got some more iterations! Also, just for the record - thanks for the links to solarpunk; I think it's my favorite aesthetic I've seen.
First off, the rendered out square logo:

Added wood/handmade texture
made the bottom bracket dark/metallic
pulled in some of the circled elements
changed the plug type
added counterpart to the natural textures with some hard metallic elements

Tried to keep the individual textures low-contrast so that it will still read when small. I think for favicon size, though, it would be best to just use the 'w'.

Next, I tried a more 'hand-drawn' look to it as mentioned, following along with some of the aesthetics I've seen in crypto art. Just an experiment, let me know what you think:

This one will read extremely well small, and will be easy to convert to SVG. Loses some of the detail, though.

Finally, I tried to hyper-simplify the rectangular logo as discussed. I think I kept most of the essence, but it reads much better now. Not sure if it's too simple or not, though:

Also, I had an idea when re-rendering the square logo - if we were to keep the overall format, the 'W' with the brackets, it could just be re-rendered in different art styles to match the different seasons.
So for example, if there was a voxel season, it could be rendered out pixellated and voxel-y. If there was an artist collab season, it could be rendered in their style, and so-on.
By keeping the same silhouette, it would tie all the seasons together while still being a season-specific logo. It also would be fast to remake since it's just iterations off a base.

Can we see versions without the electric wire / socket?

Totally - I'll render out one  without the wire and one replacing it instead with Ecco balls on the tree

With the Ecco balls instead of flowers:

Without the wire:

For the square.

it's not hand drawn/digital enough now; I think that effect worked, especially the imperfections of coloring in some parts
the digital UI aspect is lost
The way I see it, the W is black and white, as if you typed it on a phone screen, and the glowing bars are a phone UI. This is implication I was going for:

That analogy is kind of lost with new materials.
overall too colorful and hard to replicate. There doesn't need to be much color; the low fi drawings were trending in the right direction.
the top left cable seems better as a vine to me -- a vine hanging from a phone UI.

For the rectangle.

This is the best version and already nearly usable, but wanted to try those other things, like making the street not bleed into the letters but more the letters containing some other material inside (red digital lava?), or maybe some branch structures like this:

Actually, for the rectangle we might want two or three lines of text. (see how Danganronpa did it: https://github.com/webaverse/app/issues/1283#issuecomment-855190102)
I think that still works with the street and same logotype.
I don't have exact words yet but imagine "Webaverse: The Ultimate Adventure".

Alright, I'll take another few passes at these!

Went back through these, tried to bring in feedback from all the previous ones as well. I think there is some solid stuff in this group, let me know what you think!
First up, the square:

Messed with intentional imperfection
Pulled the color down, played off of a phone UI
Made the cables vines
Made some versions in various levels of hand-drawn-ness

And the rectangular:

Simplified all textures quite a bit
Messed with flat colors and gradients
Played with some lowkey swirl textures
Took out the street bleed and subbed in a lava texture, in various amounts of 'digital'
Brought in some vines/beanches
Tried a longer-form version with more text

Github doesn't support SVG upload, so I stuck them in this folder:
https://drive.google.com/drive/folders/1Op_xN-zQF6TvHnF0jr7sFJXsY9IH9t4L?usp=sharing
There are two versions of each; one is slanted and the other is square-on. Sorry this took so long, it was a bit of a struggle to get nice clean paths to work with for future animations/etc.
Fonts used are Electroharmonix: https://www.dafont.com/electroharmonix.font
and Consolas: https://docs.microsoft.com/en-us/typography/font-list/consolas

I think you got the style, can we flatten this to reduce the complexity?
I don't think the text should overlap anything (we can move it). The outline is thin and traces the objects, which makes it hard and tedious to draw. I see it more like a license plate with a geometric silhouette.
The flower is a good recreation but there are two issues I see. The first is that it is too good of a copy and I don't think we should steal it. There are many variations we could try for color, changing slew, and maybe adding sharper petals. Second, it should feel attached to the bottom, like an actual flower tied or growing there. What we have now is more of a sticker that was glued on, rather than an organic flat part of the logo.

The skewed rectangle is fine.
The W feels crunched and fat compared its typical appearance in CJK script. I don't know if it would look weird to an actual Eastern native. Is there is a way to thinnen the text stroke in genera?

Were these intended to be vectors or rasters?

I can make those adjustments easily enough - the flower will take some fiddling to get it integrated, but shouldn't be a huge problem - same with the W font, I can just thin it down.
The brambles should be a vector - they are made with a vector path. If Illustrator isn't treating them as such, it could have something to do with the export? I used a smart object to make it export cleanly

I know I was having issues with the stroke on them so I used a workaround for it, that could be causing some sort of compatability thing

I figured out how to vectorize in Illustrator; everything there is vector.

I was trying to vectorize the mega sword for the top, but we couldn't find the blend files which have the blades morph, the substance painter source, or a clean way to retexture the carbon fiber on the sides.
So I went with a vectorization of some test art. The bottom is also a vectorization of raster Sakura found on pinterest.

Which of these do you need finals of?
I can make them today, just not sure which versions you want. Right now, I have the initial one, but flatter, with a more integrated flower on my list, I can also track down the megasword blend files and probably Image Trace it into vector

I have all of these as SVG already so they do not need to be made.
The main thing I think we should change is to get an outline of the megasword instead of this -- but I could not find the files for teh sword so I could raster -> svg it and gave up.

Is there an AI of this one? https://github.com/webaverse/app/issues/1283#issuecomment-869548188

No, I did all the designing in raster. There's a Photoshop file, though:
https://drive.google.com/file/d/1O6K6L2UXgvmJVEcYCl7Zex7mSxs7Cp7S/view?usp=sharing

I meant the bottom one: https://user-images.githubusercontent.com/29031531/123618084-722a2700-d83a-11eb-9b06-5cde3f5d4fb4.jpg

I think we now have all the ingredients we needed for logos.


[FLINK-26703] Introduce flink-table-store-dist module for packaging

We need a flink-table-store-dist module to produce a fat connector jar for table store.

We can check the classes in the bundle jar. Let's see if we can shade more, For example, orc has hive-related dependencies inside.
We should introduce NOTICE file?

Hive related dependencies are already shaded. I'll take a look at the NOTICE file.

org/apache/hadoop/hive needs to be shaded too


JSON string in child template's description field does not work

We have a set of wonderful templates, that we'd like to be created based on parent tagging like this:
{
"applywhen": [
{
"System.Tags" : ["Android"],
"System.WorkItemType": "Bug"
}]
}
However, the extension does not pick it up. If I use the simple version and just write [Bug] in the template description it works (albeit not taking the tag "Android" into consideration)
The string I have in the template description is compressed to tihs: {"applywhen":[{"System.Tags":["Android"],"System.WorkItemType":"Bug"}]}
What am I doing wrong?

I've done some experimenting, and having the string like this: {"applywhen":[{"System.Tags":"Android","System.WorkItemType":"Bug"}]} it seems to work. But if I spice it up like this {"applywhen":[{"System.Tags":"Android"},{"System.Tags":["Android","iOS"]}]} it stops working all together and I can't figure out why.

Fixed on v0.11.1


Open projects quickly with Atom

Hey,
first: Thanks! I really appreciate the work done one the project-manager package. This really eases my daily workflow!
I'm switching between projects pretty often so if I open Atom it's quite often not the case I want to have the last project I was working on reopened (but I like that behavior nonetheless). So I was thinking about ways to jump right into a project, even bevor I've opened Atom:

Right-Click on the dock-item
Could it be possible to just add a little separator to the right-click menu and display let's say the most recent 5 projects or so. And if you click on one of them Atom boots up and only opens this project.

Alfred
I use Alfred a lot, so I was wondering if there is any kind of API or so that I (or somebody else, who maybe has some alfred-experience) could build a workflow or extend the opening process in some other way.

What do you guys think?
Regards from Germany,
Dennis

I'm a great fan of Alfred too, and I was looking exactly for this right now.
I think we can do this just by creating an alfred workflow to read projects.cson file in ~/.atom directory, that way we can list all registered projects.
To open a project we just run atom [directory path], path which we get from projects.cson file.
I don't have much experience creating alfred workflows, but I'll try to do it, and if it works, I'll post it here.
Any suggestion or comment would be great.
Regards from Brazil :P    o/

I like this idea, so I gave it a shot: https://github.com/JustinAiken/alfred-atom-projects


Client: Display some some of notifications

When server is not healthy, show notification or some static (closable?) banner.

Done!


Massive data structure overhaul

Current data structure makes players store information of their board filled with information of ship's location, while also storing information about their ship's properties; which includes it's own location. This means that there are two sources of truth for a ship's location, requiring more work in synchronizing and manipulating the data.
This pull request sets a foundation to create only one source of truth: Players will no longer store information of their board, but only about their ship's properties and where they have shot in the past. This pull request has not set up information about where players have shot in the past. Hoping you can do that part.
The frontend of the board used to be constructed based on the board information stored in the players. Now, it is always an empty board of size 10x10, filled with cells. The cells independently check if there is any ship part located in its own location and display value accordingly.
With this change, checking if a ship has sunk only needs to check the player's ship information; if all parts of a ship has hit: true, then it is sunk.
The hit check function is broken and needs to be fixed - hoping you can do that as well.
It would also be nice if you can optimize the placeShip function - it currently checks the same tiles multiple times.

I like the conversion of the way we render the board now - "The cells independently check if there is any ship part located in its own location and display value accordingly". Makes good sense and seems like a nice approach.


confirmation: General cleanup of code in confirmation/.

Mostly pre-work to make it easy to add in Umair and Vishnu's PRs. Also fixes a bug in checking preregistration expiry links.
If it seems reasonable / not too indulgent, I think the next step would be to move everything out of ConfirmationManager, and just have get_link_for_object take a "type" argument, like confirmation_type.PREREGISTRATION. The type would determine the url_pattern_name. And then confirmation would work just like the tables in zerver/ (e.g. without proxy tables, having to subclass the Manager, etc.)

Automated message from Dropbox CLA bot
@rishig, it looks like you've already signed the Dropbox CLA. Thanks!

I merged the first three commits, so please re-base and re-push.  On the fourth commit, can you shorten the title of the commit message a bit?

@rishig I posted one comment above; the main thing that I don't like about this is the unused value for host; it seems like there's some risk of a code path actually treating that as a hostname.  Is the intent to eliminate that entirely?

Updated, thanks for the review.

Is the intent to eliminate that entirely?

Got rid of one of them. The most natural way to do the other would be to move all the functions out of ConfirmationManager, and then we can call get_link_for_object for the unsubscribe urls without having to create a new ConfirmationManager. I'll just do it.

Planning on building on this PR, but I don't have any live changes planned on the current set of commits. Let me know if your accounting is different.
Two things brought up that are planned for fixing:

we should shorten link validity for non-invitation emails to 1 day
we should tell the user when the link is invalid vs expired (maybe will happen, or maybe will open an issue)

I merged everything but the EMAIL_CONFIRMATION_DAYS change, since I think we want to actually leave that value as-is (and just create a new setting for the others).
We should consider it an urgent priority to add back in the old setting, though; we basically deploy to production until it's back to a good state.

add back the old setting

done. I don't have a strong opinion on what the value for invitation links should be; currently it's 10.

The next step is probably deciding how we want to do error handling for broken and expired links. Two options are

Raise exceptions (like ConfirmationKeyException('expired')) in get_object_from_key, and then each of the callers catches the exception, and calls something like render_template_for_bad_confirmation_link(exception.error_type).
Have all confirmation links pass through confirmation.views.confirm (so all confirmation links would have the same URL structure). That function would do all the error checking, and when done redirect to the appropriate place in zerver/views.

Cons of the first: lots of duplicated code, zerver code has to import/understand a bunch of stuff from confirmation.
Cons of the second: all the URLs look the same, a bunch of indirection for someone trying to understand how zerver URLs get called, migration cost in that all the current unsubscribe and email_change links will break.
Pros of the second: code in zerver doesn't have to think about confirmation link error handling.
Thoughts?
As a general note, I think all our current/planned confirmation paths can nicely fit into the current model, including realm creation (with a null content_object), so that's the direction all this is aiming towards.

I fixed the small issue mentioned above, rebased this, and merged.  I think the result is more readable, and certainly there are fewer weird code paths.
Thanks @rishig!
One follow-up item we may want to do is add a management command that runs in a weekly cron job to delete old Confirmation objects (and their content_obj objects) that have expired (similar to how we run the built-into-Django manage.py clearsessions periodically).  Thoughts on this?

hm. I think most of the table will be unsubscribe links regardless, which never expire.

Did this end up getting merged? Don't see the commits in git log, unless I'm doing something weird.

Apparently not!  Just pulled it out of reflog and merged properly.  Seems like the most likely cause was a "non-fast-forward-merge" error when pushing to master that I failed to notice.

Thanks for catching this!


Docs: Prometheus integration

Summary
The prometheus integration added in #1872 is currently undocumented. Both prose and reference docs are missing.

Funding

If you would like to see an issue prioritized, make a pledge towards it!
We receive the pledge once the issue is completed & verified

Also #1882


Compressing Discord app folder would reset the session

I've noticed that if Compactor compresses Discord in %localappdata%, on next launch Discord will force expire the session and reset the settings, require the user to login and configure it again.
I propose to add Discord to the blacklist

I can't reproduce this - launched Discord half a dozen times with its folder compacted, including doing so while it was running and it had no issues.
Can you confirm your copy of Compactor is up to date?  Prior to 0.10 it didn't acquire an advisory lock on files being compressed, which reportedly could cause SQLite database corruption - exactly the sort of thing that could cause this.

Yes, I can confirm it's up to date.
Yes, I can confirm that on my end it's reproducible everytime I try to compress Discord folder.
I'll check in a later date what file is the "culprit" (Not on my PC right now)

I just had this happen too with the latest version from here. It also breaks Chrome and Firefox in various ways (Firefox also uses SQLite for the aspects that break, e.g. bookmarks and favicons).


Build with DCAP=on error

ENV:
ENV DCAP_VERSION <IP_ADDRESS>-bionic1
ENV VERSION <IP_ADDRESS>-bionic1
ENV SGX_DOWNLOAD_URL_BASE "https://download.01.org/intel-sgx/sgx-dcap/1.9/linux/distro/ubuntu18.04-server/"
ENV SGX_LINUX_X64_SDK sgx_linux_x64_sdk_<IP_ADDRESS>.bin

Platform:  Intel(R) Core(TM) i9-10900K CPU @ 3.70GHz,  FLC enabled
COMMAND:  cmake ../ -DDCAP=ON && make
Error:
error[E0433]: failed to resolve: could not find `Connection` in `header`
   --> dcap/src/main.rs:138:50
    |
138 |                     .header(http::hyper::header::Connection::close())
    |                                                  ^^^^^^^^^^ not found in `http::hyper::header`
    |
help: consider importing one of these items
    |
34  | use crate::http::private::Connection;
    |
34  | use rocket::http::private::Connection;
    |

error[E0107]: wrong number of lifetime arguments: expected 2, found 1
   --> dcap/src/main.rs:119:10
    |
119 | impl<'r> response::Responder<'r> for QuoteVerificationResponse {
    |          ^^^^^^^^^^^^^^^^^^^^^^^ expected 2 lifetime arguments

error[E0308]: method not compatible with trait
   --> dcap/src/main.rs:120:5
    |
120 |     fn respond_to(self, _: &rocket::Request) -> response::Result<'r> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
    |
    = note: expected fn pointer `fn(QuoteVerificationResponse, &'r rocket::Request<'_>) -> std::result::Result<rocket::Response<'static>, _>`
               found fn pointer `fn(QuoteVerificationResponse, &rocket::Request<'_>) -> std::result::Result<rocket::Response<'r>, _>`
note: the lifetime `'r` as defined on the impl at 119:6...
   --> dcap/src/main.rs:119:6
    |
119 | impl<'r> response::Responder<'r> for QuoteVerificationResponse {
    |      ^^
    = note: ...does not necessarily outlive the static lifetime

error[E0061]: this function takes 2 arguments but 1 argument was supplied
   --> dcap/src/main.rs:147:22
    |
147 |                     .sized_body(std::io::Cursor::new(payload))
    |                      ^^^^^^^^^^ ----------------------------- supplied 1 argument
    |                      |
    |                      expected 2 arguments

error: aborting due to 4 previous errors

Some errors have detailed explanations: E0061, E0107, E0308, E0433.
For more information about an error, try `rustc --explain E0061`.
error: could not compile `teaclave_dcap_ref_as`

To learn more, run the command again with --verbose.
cp: cannot stat '/app/build2/target/unix/debug/teaclave_dcap_ref_as': No such file or directory
CMakeFiles/unixapp-teaclave_dcap_ref_as.dir/build.make:57: recipe for target 'CMakeFiles/unixapp-teaclave_dcap_ref_as' failed
make[2]: *** [CMakeFiles/unixapp-teaclave_dcap_ref_as] Error 1
CMakeFiles/Makefile2:1317: recipe for target 'CMakeFiles/unixapp-teaclave_dcap_ref_as.dir/all' failed
make[1]: *** [CMakeFiles/unixapp-teaclave_dcap_ref_as.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

Do you have any idea about how to fix this ?

Hi, this bug should be fixed by pining rocket to a specific version. https://github.com/apache/incubator-teaclave/blob/314aae5d614703543e748882cebf6b5675f0b2f7/dcap/Cargo.toml#L14
Also, if using our build system, the vendored rocket should be used.
I'm closing this issue, please provide more information if still exists. Thanks!


Support multiple SSL key and certs

Hi,
I have a requirement wherein in my project I need to import multiple SSL keys and certs in the Kafka consumer and producer.
Currently, I am able to import only a single key and cert.
kafka = new Kafka({
        clientId, brokers,
        ssl: {
            rejectUnauthorized: false,
            ca: [fs.readFileSync(path.join(__dirname, '..', 'config/SSLCerts/ca.crt'), 'utf-8')],
            key: fs.readFileSync(path.join(__dirname, '..', 'config/SSLCerts/user.key'), 'utf-8'),
            cert: fs.readFileSync(path.join(__dirname, '..', 'config/SSLCerts/user.crt'), 'utf-8')
          }
    })

Can it support multiple keys and certs in a single project?

Those properties all accept a string[], or you can combine the certificates into a certificate bundle.
Closing as not really related to KafkaJS, but rather Node in general.

Thanks. But when i include them in the string[] in the following manner
ssl: {
    rejectUnauthorized: false,
    ca: [fs.readFileSync(path.join(__dirname, '..', 'config/kafkaSSLCerts/folder1/ca.crt'), 'utf-8'), fs.readFileSync(path.join(__dirname, '..', 'config/kafkaSSLCerts/folder2/ca.crt'), 'utf-8')],
    key: [fs.readFileSync(path.join(__dirname, '..', 'config/kafkaSSLCerts/folder1/user.key'), 'utf-8'), fs.readFileSync(path.join(__dirname, '..', 'config/kafkaSSLCerts/folder2/role.key'), 'utf-8')],
    cert: [fs.readFileSync(path.join(__dirname, '..', 'config/kafkaSSLCerts/folder1/user.crt'), 'utf-8'), fs.readFileSync(path.join(__dirname, '..', 'config/kafkaSSLCerts/folder2/role.crt'), 'utf-8')]
  }

I get the following error
{"level":"ERROR","timestamp":"2022-10-25T06:57:31.104Z","logger":"kafkajs","message":"[BrokerPool] Failed to connect to seed broker, trying another broker from the list: Failed to connect: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch","retryCount":1,"retryTime":554}


Unable to load/save session on macOS

Using macOS, unable to load session on startup, using this configuration:
local opts = {
	log_level = 'debug',
	auto_session_enable_last_session = false,
	auto_session_root_dir = vim.fn.stdpath('data')..'/sessions/',
	auto_session_enabled = true,
	auto_save_enabled = true,
	auto_restore_enabled = true,
	auto_session_suppress_dirs = {'/etc', vim.fn.expand('$HOME')}
}

require('auto-session').setup(opts)

It starts working once I patch is_readable like this:
diff --git i/lua/auto-session-library.lua w/lua/auto-session-library.lua
index c879f650..3d4cfdf8 100644
--- i/lua/auto-session-library.lua
+++ w/lua/auto-session-library.lua
@@ -144,11 +144,8 @@ function Lib.legacy_session_name_from_cwd()
 end

 function Lib.is_readable(file_path)
-  if IS_WIN32 then
-    file_path = file_path:gsub('\\%%','%%')
-  end
-
-  return vim.fn.filereadable(vim.fn.expand(file_path)) ~= Lib._VIM_FALSE
+  file_path = file_path:gsub('\\%%','%%')
+  return vim.fn.filereadable(file_path) ~= Lib._VIM_FALSE
 end
 -- ===================================================================================

Hm this is odd, I'm also on MacOS and loading sessions has been working fine. Does that patch work because it's for some reason going into the IS_WIN32 conditional? 🤔

If you notice the last two lines I left, I must substitute \% => %, and cancel vim.fn.expand() for it to work.
I find it weird that it works for you, session files are written with % instead of /, without backslashes...
And expand() returns an empty string, not sure why you use expand...
I'm on latest HEAD of NVIM v0.5.0-dev+93f15db5d

Can you paste me your result of :messages so I can check it out since you have log level set to debug?
I'm not on latest master yet, I'll upgrade and try it out.

So the file_path that gets to that function looks like this
"/Users/rmagatti/.local/share/nvim/sessions/\\%Users\\%rmagatti\\%Projects\\%auto-session.vim".
If you try and do a readable on that raw path, it returns 0.
Now if you do vim.fn.expand(file_path) this is the result /Users/ronnieandrewmagatti/.local/share/nvim/sessions/%Users%ronnieandrewmagatti%Projects%auto-session.vim, which is identical to the gsub result.
So basically, both cases should be working fine for you. Either way I can change this to just do gsub instead since it's identical.

Works great, thanks.


Fix generated JSX for custom elements

Related-to: https://github.com/remarkjs/remark-math/issues/72 https://github.com/wooorm/xdm/commit/ddcebdbcb577015a8930b310ee7a3ba045f1c24a

Yes, thought about a new function that would support jsx ids, but not confident enough to do that. I'll try again with the above code.

Does that work? Need help?

Yes, worked after a little fix contRe.test(String.fromCharCode(code)) to esCont(code). Is that correct? But something came up and didn't push. I'm back now. Will push if the above is correct.

Or maybe it also works if contRe is imported from esutil.

Ah yes I made a mistake there. I meant cont, and calling it!

I'm behind a proxy and can't run the full test. Only ran test/core.

Ah yes I made a mistake there. I meant cont, and calling it!

And I thought it was intentional and a test to me ^_^

Thanks for pointing that out again. I got it but can't meet the coverage for branches. Still at 99.75%.

c8 is right. JSXMemberExpression has no child node of Literal type. That branch will never execute given the amount of the tests written including the one I added. I wonder if we still need toJsxIdOrMemberExpression. Instead construct the node manually like openingElement and it worked fine until now.

This was changed from manual node construction to function in https://github.com/mdynnl/xdm/commit/62e6f30af2fb4d2fca73c55ca8d605615c6d27cb
Reverting that change would still work fine with dev errors, isn't it?

Oh, should have pushed anyway. I was waiting for your reply. Thanks for dealing with this.

Thanks Nyi Nyi. I implemented the passing and receiving of identifier checks.
It is indeed impossible to hit 100% coverage normally. That is okay.
It is an edge case that shouldn’t occur, similar to edge case we are currently solving.
By throwing an error there we can ensure that in the future, if something weird gets passed, we can solve it earlier due to the error message.

Sorry if I caused more problems rather than solved. First time contribution. But I learnt something. So, thanks.

Released, thanks for your work!
No problem. That’s only natural. The second time will be easier, and so on! ;)


[BUG] Connect-PnPOnline: Could not load file or assembly 'Microsoft.Identity.Client, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae'. Could not find or load a specific file. (0x80131621)

Reporting an Issue
I use PowerShell 7.2.6 with MicrosoftTeams 5.5.0 and PnP.PowerShell 2.1.1
I connect first with "Connect-MicrosoftTeams" and then with "Connect-PnPOnline".
I receive the ERROR: "Connect-PnPOnline: Could not load file or assembly 'Microsoft.Identity.Client, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae'. Could not find or load a specific file. (0x80131621)"

"Connect-MicrosoftTeams" load Microsoft.Identity.Client with her own version 4.29 and "Connect-PnPOnline" fails to load v4.50

Microsoft.Identity.Client, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae
C:\Program Files\WindowsPowerShell\Modules\MicrosoftTeams\5.5.0\net472\Microsoft.Identity.Client.dll

If I open a new PowerShell 7 session and run first "Connect-PnPOnline" and then "Connect-MicrosoftTeams" it run with success.
And only one dll load (v4.50):

Microsoft.Identity.Client, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae
C:\Users\kollyj01\Documents\PowerShell\Modules\PnP.PowerShell\2.1.1\Core\Microsoft.Identity.Client.dll

If I run these cmdlets in PowerShell 5, I have no problem. both dll load (as you cas see I use PnP 1.12 in PowerShell 5 and it use Microsoft.Identity.Client v 4.36)

Microsoft.Identity.Client, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae
C:\Program Files\WindowsPowerShell\Modules\MicrosoftTeams\5.5.0\net472\Microsoft.Identity.Client.dll

Microsoft.Identity.Client, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae
C:\Program Files\WindowsPowerShell\Modules\PnP.PowerShell\1.12.0\Framework\Microsoft.Identity.Client.dll

PS: I use this cmdlet to show dll loaded:
[System.AppDomain]::CurrentDomain.GetAssemblies() | Where-Object Location | Sort-Object -Property FullName | Select-Object -Property FullName, Location, GlobalAssemblyCache, IsFullyTrusted
Which operating system/environment are you running PnP PowerShell on?

[x ] Windows
[ ] Linux
[ ] MacOS
[ ] Azure Cloud Shell
[ ] Azure Functions
[ ] Other : please specify

hi @jolscr , we have potentially fixed this issue with the latest version of PnP PowerShell nightly builds.
Would encourage you to check it out.

Yes you right. Thank you!
It's fixed... hope main release will come in the next few days.


Clean up dependencies

Removed coverage-related scripts because they've been broken for at least 3 years now. Let's readd proper coverage support from scratch later if necessary.
Removed some unused deps.
Upgraded deps to latest versions except for sourcemap, which breaks API and requires WebAssembly support as of 0.7, but we don't need the performance because it's only used for testing anyway.
Upgraded Travis & AppVeyor to use relevant Node versions (latest + current LTS)

nothing nicer than a PR diff that's just a sea of red 😍


Give CODEOWNERS file an owner in CODEOWNERS

Specifically give the CODEOWNERS file an owner.

The linter pipeline is done and the only thing running that tests this change. I'm going to merge this.


MathML to SVG produced invalid markup for certain unicode characters

I have not fully tracked down the root cause, but, I've gotten this far:
In the SVG/jax.js code, for BBOX.ROW.Stretch, it is possible for SVGstretchV to get called with an object instead of a number as the first argument. This will ultimately result in a y value of NaN in the resulting svg, and cause significant rendering errors. Perhaps, somewhere in the code path, mathJax should check for a valid value.
The object appears to contain font information. I'm not sure what produces it, or where it comes from, but the mathML that caused the problem contained unicode characters. When we converted the unicode characters into entity codes, the svg was renderer correctly.
One wrinkle in tracking down this problem, is that it seemed to make a difference what machine we were running this on. I didn't see it only Yosemite Mac, but saw it on the Linux server. Perhaps there's an OS difference, or something to do with installed fonts, or something else. I didn't track it down all the way. The server /proc/version output is:
Linux version 2.6.32-504.1.3.el6.x86_64<EMAIL_ADDRESS>(gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) )

This produced errors in the Javascript console about NaN values for y:
<math xmlns="http://www.w3.org/2010/Math/MathML"><mrow><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mo>,</mo><mtext></mtext><mrow><mo>[</mo><mn>4</mn><mo>]</mo></mrow><mo>,</mo><mtext></mtext><mrow><mo>{</mo><mn>6</mn><mo>}</mo></mrow><mo>,</mo><mtext></mtext><mrow><mo>〈</mo><mn>8</mn><mo>〉</mo></mrow><mo>,</mo><mtext></mtext><mrow><mo>|</mo><mn>10</mn><mo>|</mo></mrow><mo>,</mo><mtext></mtext><mrow><mo>⌈</mo><mn>12</mn><mo>⌉</mo></mrow><mo>,</mo><mtext></mtext><mrow><mo>⌊</mo><mn>14</mn><mo>⌋</mo></mrow><mo>,</mo><mtext></mtext><mrow><mo>‖</mo><mn>16</mn><mo>‖</mo></mrow></mrow></math>

This produced a correct svg:
<math xmlns="http://www.w3.org/2010/Math/MathML"><semantics><mstyle scriptsizemultiplier="0.715"><mrow><mrow><mo>(</mo><mrow><mn>1</mn></mrow><mo>)</mo></mrow><mo>,</mo><mrow><mo>[</mo><mrow><mn>2</mn></mrow><mo>]</mo></mrow><mo>,</mo><mrow><mo>{</mo><mrow><mn>3</mn></mrow><mo>}</mo></mrow><mo>,</mo><mrow><mo>〈</mo><mrow><mn>4</mn></mrow><mo>〉</mo></mrow><mo>,</mo><mrow><mrow><mo>|</mo><mrow><mn>5</mn></mrow><mo>|</mo></mrow><mo>,</mo><mrow><mo>⌈</mo><mrow><mn>6</mn></mrow><mo>⌉</mo></mrow><mo>,</mo><mrow><mo>⌊</mo><mrow><mn>7</mn></mrow><mo>⌋</mo></mrow><mo>,</mo><mrow><mo>‖</mo><mrow><mn>8</mn></mrow><mo>‖</mo></mrow></mrow></mrow></mstyle><annotation encoding="text/plain">Palette 004 - All Characters</annotation></semantics></math>

Example of a bad this.sh value:
this.sh: [object Object]
{ fonts:
     [ 'STIXMathJax_Main',
       'STIXMathJax_Monospace',
       'STIXMathJax_Latin',
       'STIXMathJax_Alphabets',
       'STIXMathJax_Marks',
       'STIXMathJax_Arrows',
       'STIXMathJax_Operators',
       'STIXMathJax_Symbols',
       'STIXMathJax_Shapes',
       'STIXMathJax_Misc',
       'STIXMathJax_Variants',
       'STIXMathJax_Size1' ],
    FONTS:
     [ { '32': [Object],
         '33': [Object],
         '34': [Object],

...and so on
Example of a good this.sh value:
 this.sh: 686

I'm using mathjax version 2.5.1-mjnode, as part of mathjax-node, release 0.3.0

More info:
Here's an example of mathML which still produces an invalid svg (it shows a rectangle for the character, and an error in the javascript console: "invalid value for  attribute y='NaN'"). The special character here is the invisible multiplication.
 <math xmlns="http://www.w3.org/2010/Math/MathML"><semantics><mstyle scriptsizemultiplier="0.715"><mrow><mn>14</mn><mo></mo><mtable groupalign='{right}' align='baseline 2' rowspacing='0.0ex'><mtr><mtd><mrow><maligngroup/><mo></mo><mn>14</mn><mo></mo><malignmark/></mrow></mtd></mtr><mtr><mtd><mrow><maligngroup/><mo></mo><menclose notation='longdiv'><mrow><mn>14</mn><mo></mo><malignmark/></mrow></menclose></mrow></mtd></mtr></mtable></mrow></mstyle><annotation encoding="text/plain">Palette 002 - All Characters</annotation></semantics></math>

Thanks for the report.
I'm afraid I cannot reproduce this with MathJax so it sounds like a MathJax-node specific problem.
However, I'm also not able to reproduce this on MathJax-node's develop branch. Could you try that branch out and let us know how it goes? If the problem persists, we should move this to the mathjax-node tracker.

If you remove the <mo></mo>, the <maligngroup/> and <malignmark/> elements, do you still get the problem?  I am somewhat confused about the invisible multiplication, which are semantically meaningless in this expression, though it should not cause any problems.  The <maligngroup/> and <malignmark/> are not actually implemented in MathJax, so they haven't been heavily tested.  It could be one of those that is problematic.
But like Peter, I am not able to reproduce the problem in MathJax directly, or in MathJax-node with the current develop branch.
If you could reduce the test case to the minimum that causes the problem for you, that would be great.

If the problem is due to the actual unicode characters, it might that there is an encoding issue(since there are several ways to encode unicode characters).  Can you say something more about how you are passing your MathML to MathJax (i.e., are you using bin/mml2svg, or your own code; and if your own code, how are you reading the original MathML)?

The mathML in my "more info" comment, works correctly now if I remove the two tags you mentioned. Thanks for pointing that out.
The situation in my first comment is still present. I don't know the difference between passing characters directly vs. passing hex entity values. And I don't know why we saw different behavior depending on which server was running the code, since it was the same code and the same browser in both scenarios.
At least now we have a workaround, and we know to disallow certain characters in the mathML we generate.
As a point of information, this mathML originally came from Design Science's Mathflow Java app, which has a bunch of predefined templates. They use several invisible unicode characters, including the invisible times, a couple of different spacing characters.
If I ever do figure out a root cause, and it seems to be a mathjax bug, I'll report back here.

@corinnaSchultz thanks for the additional information. Have you been able to check your examples with the develop branch of mathjax-node?
Closing this for now; happy to re-open at a later point.

OK, I thought about this some more, and I think I know what's going on.  In your "More info" example, the <maligngroup/> tag is the one that is causing problems.  The reason is because HTML doesn't have self-closing tags, and so
<mrow>
  <maligngroup/>
  <mo></mo>
  <mn>14</mn>
  <mo></mo>
  <malignmark/>
</mrow>

is being parsed as
<mrow>
  <maligngroup>
    <mo></mo>
    <mn>14</mn>
    <mo></mo>
    <malignmark></malignmark>
  </maligngroup>
</mrow>

where the <maligngroup> ends up containing all the rest of the nodes in the <mrow>.  MathJax expects the <maligngroup> to have no children, and the presence of those children is causing the problem.  (The SVG output's base rendering is the one for token elements, and that is overridden by the more complicated elements to do what they are supposed to.  But the maligngroup and malignmark elements didn't expect to do any rendering, and so didn't override that.  This is a bug and should be fixed.
Also, The MathML input jax has some heuristics to try to detect the incorrect nesting caused by self-closing tags that don't self-close in HTML.  This is used to make things like <mspace width="1em" /> work, but maligngroup and malignmark were left out of that logic (I did mention these node types were not well established in MathJax).  So that should be fixed as well.  Either fix would resolve your immediate problem.
I still don't see what could be going wrong in your first example, however.  Are you sure that this is the exact MathML that causes the problem?  I see that there are <mtext></mtext> elements, and if they were coded <mtext/> instead, that would cause the same type or problem.  I note that your second (working) example doesn't include the empty mtext nodes.  Other than that, I can't see anything that would cause the error.

=> Merged

Thank you so much for pointing out the self-closing mtext nodes. That is definitely part of the problems I'm seeing with some of this wonky mathML. I have a little bit more information, but this may be a separate issue:
Here's mathML that produces invalid svg (it has a  tag with y=NaN and containing a character that is rendered as a rectangle)
<math xmlns="http://www.w3.org/2010/Math/MathML">
<mrow>
    <mrow>
        <mi>P</mi>
        <mo></mo>
        <mrow>
            <mo>(</mo>
            <mrow>
                <mi>A</mi>
                <mo></mo>
                <mtext> </mtext>
                <mtext> </mtext>
                <mtext>and</mtext>
                <mtext></mtext>
                <mtext></mtext>
                <mtext></mtext>
                <mtext></mtext>
                <mo></mo>
                <mtext> </mtext>
                <mtext> </mtext>
                <mi>B</mi>
            </mrow>
            <mo>)</mo>
        </mrow>
    </mrow>
    <mo>=</mo>
    <mn>0.10</mn>
 </mrow>
</math>

(The non-empty mtext tags contain the unicode "thin space" character. The mo character is the invisible times.)
If I change the self-closing mtext tags into proper html syntax empty tags, mathjax still renders this mathml with the bad text element (and y=NaN). If I put a space inside the mtext tags so they are no longer empty, the svg come back fine (no text element, no y=NaN error). If I delete the empty mtext tags, I also get a good svg.
So, perhaps, mathjax doesn't know how to handle the empty mtext tags. It's not just the nesting produced by the self-closing tag syntax, but the fact of having the empty tags?
I have not yet checked this out on the develop branch. I've been scrambling to make a release deadline.

I am not able to reproduce this on MathJax-node master or develop branch, nor on core MathJax. This does not seem to be MathJax related issue.
I would strongly suggest to check the other parts of your tool chain. In particular, I would look into @dpvc's suggestion about encoding problems in Unicode.

ok, thanks for looking into this for me. It helps to narrow down the root cause.

=> in testsuite
MathMLToDisplay/issue1233.html