Version 17 BadImageFofrmatException with dotnet x86

Description

When running dotnet test from the command line, with Microsoft.NET.Test.Sdk 17, test runner throws exception System.BadImageFormatException.
When using 16.11.0 tests run just fine.

Steps to reproduce
Here is the csproj set up for my test project.

net6.0
enable
false

run dotnet test from powershell. Specifically running the x86 version of the dotnet cli. If I run dotnet from 'ProgramFiles' the tests run as expected.
If I change the Microsoft.NET.Test.Sdk version to 16.11, tests run as expected.

Test runner throws exception

TestHostManagerCallbacks.ExitCallBack: Testhost processId: 13448 exited with exitcode: -532462766 error: 'Unhandled exception. System.BadImageFormatException: Could not load file or assembly 'C:\Code\bin\Debug\net6.0\testhost.dll'. An attempt was made to load a program with an incorrect format.
File name: 'C:\Code\bin\Debug\net6.0\testhost.dll'
Diagnostic logs
...
TpTrace Warning: 0 : 23956, 1, 2021/12/13, 13:23:50.808,<PHONE_NUMBER>64, vstest.console.dll, TestPluginDiscoverer: Failed to get types from assembly 'Microsoft.Diagnostics.NETCore.Client, Version=<IP_ADDRESS>01, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.  Skipping test extension scan for this assembly.  Error: System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.Assembly.GetTypes()
at Microsoft.VisualStudio.TestPlatform.Common.ExtensionFramework.TestPluginDiscoverer.GetTestExtensionsFromAssembly[TPluginInfo,TExtension](Assembly assembly, Dictionary`2 pluginInfos)
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified.
File name: 'Microsoft.Bcl.AsyncInterfaces, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
...
Environment
Windows 11 10.0.222000
Microsoft.NET.Test.Sdk Version=17.0.0
Dotnet 6.0.100
xunit 2.4.1

Hi,
Can you share your project with us, clarify net6.0 enable false this line. A small repro would also be useful if possible...

Test project here I tried with this simple project and got the same results.
Sorry, I thought I had pasted the XML from my project file, but it looks like it wrote out as net6.0 enable false. Unsure of what happened.

Hi @jtleaming,
I just tried to clone your repro and run dotnet test and it worked. I think issue was fixed in the meantime.
I will move forward by closing this issue but feel free to comment if you are still facing some issue.


How to obtain the images of "val_segmentation" folders?

what is the difference between train_images and val images and from where will I get the val_segmentation of the dataset folder ? and after that which files should I execute and is there any necessity of modification or not? It will be very much helpful for me if you kindly tell me which versions of the python libraries did you use in this work.
@razeineldin please answer, sir.

Update: All I had to do is to split the truth images into train and validation directory using python's splitfolders library.

@SabirKhanAkash, I'm so sorry for replying very late.
Great that you found a solution to your question. The data should be divided into a split of train:valid with a ratio of 80:20 %. The was originally using a bash script, but can be done with other libraries like split-folders (as you mentioned), or keras .
This repository was implemented on Ubuntu 18.04 machine with Python 3.6, Keras 2.2.
Best.


[FEA] External tool integration with Qualification tool

Is your feature request related to a problem? Please describe.
External tools/api's may want to call functions similar to qualification tool, investigate options there.

[x] Plugin explain output on CPU dataframe
[x] Qualification tool API called from running application

prs merged


Query log should be off by default

The Dockerfile runs commands to explicitly turn the MySQL general log on, meaning every query gets logged to a file. This can impact performance and also cause a growing file inside the container. It would be better to leave this off by default (like MySQL out of the box does) and let users turn it on themselves if they need to.

I don't think so.
This docker is only for development. You can destroy or clean it whatever you want.

since there's no answer i'll close this issue.


run-docker.sh: Don't fail when git describe cannot find any tags on a shallow clone

Before this change, I did
git clone https://github.com/Xilinx/finn.git --depth 1
./run-docker.sh quicktest

and got
Please set PLATFORM_REPO_PATHS pointing to Vitis platform files (DSAs).
This is required to be able to use Alveo PCIe cards.
fatal: No tags can describe 'c98c2211b8ef1943b74be9853d901ac26ff01470'.
Try --always, or create some tags.
WARNING: No swap limit support
Running test suite (non-Vivado, non-slow tests)
Docker container is named finn_dev_mgehre
Docker tag is named xilinx/finn:.xrt_202<IP_ADDRESS>6_18.04-amd64-xrt
Mounting /tmp/finn_dev_mgehre into /tmp/finn_dev_mgehre
Mounting /proj/xbuilds/2021.1_daily_latest/installs/lin64/ into /proj/xbuilds/2021.1_daily_latest/installs/lin64/
Port-forwarding for Jupyter 8888:8888
Port-forwarding for Netron 8081:8081
Vivado IP cache dir is at /tmp/finn_dev_mgehre/vivado_ip_cache
Using default PYNQ board Pynq-Z1
invalid argument "xilinx/finn:.xrt_202<IP_ADDRESS>6_18.04-amd64-xrt" for "-t, --tag" flag: invalid reference format
See 'docker build --help'.
docker: invalid reference format.
See 'docker run --help'.

With this change, ./run-docker.sh quicktest passes.

Hi @mgehre-amd thanks a lot for the docker fix! For our internal work flow, could you change the PR to target dev?

Hi @mgehre-amd thanks a lot for the docker fix! For our internal work flow, could you change the PR to target dev?

Sure, done!


Fix StartParameter links

These are in the JavaDoc, not the DSL docs.
Fixes #18963

@bot-gradle test and merge

Your PR is queued. See the queue page for details.

OK, I've already triggered a build for you.


How to upload files

how to send multipart/form-data type by DHaven.Faux

There isn't support for multipart/form-data right now, but you can use use the [Body] tag to stream the binary directly.
See https://github.com/D-Haven/DHaven.Faux/blob/develop/DHaven.Faux.Test/ParameterTypes/IBlobStore.cs for an example.  Specifically:
    [HttpPost("/")]
    [return: ResponseHeader("ETag")]
    Task<string> Upload([Body(Format = Format.Raw)] Stream content, [RequestHeader("Content-Type")] string mimeType,
        [RequestHeader("Content-Length")] long length, [RequestHeader("Content-Disposition")] string disposition);

Ok, got it. Thanks for your support.

This link is for my reference.... when I eventually get multipart:
https://stackoverflow.com/questions/16416601/c-sharp-httpclient-4-5-multipart-form-data-upload
I will likely have to include some type of support for the HttpPost header to mark the method as multipart/form-data encoding.  It will have an impact on how I generate the code that prepares the request object.


Unable to run openutau on linux

Acknowledgement

[X] I have read Getting-Started and FAQ

🐛 Describe the bug
Unable to run openutau on linux
ALSA lib pcm_dsnoop.c:566:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2666:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_oss.c:397:(_snd_pcm_oss_open) Cannot open device /dev/dsp
ALSA lib pcm_a52.c:1001:(_snd_pcm_a52_open) a52 is only for playback
ALSA lib confmisc.c:160:(snd_config_get_card) Invalid field card
ALSA lib pcm_usb_stream.c:482:(_snd_pcm_usb_stream_open) Invalid card 'card'
ALSA lib confmisc.c:160:(snd_config_get_card) Invalid field card
ALSA lib pcm_usb_stream.c:482:(_snd_pcm_usb_stream_open) Invalid card 'card'
ALSA lib pcm_dsnoop.c:566:(snd_pcm_dsnoop_open) unable to open slave
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
Unhandled exception. System.InvalidOperationException: Default font family name can't be null or empty.
   at Avalonia.Media.FontManager..ctor(IFontManagerImpl platformImpl) in /_/src/Avalonia.Base/Media/FontManager.cs:line 37
   at Avalonia.Media.FontManager.get_Current() in /_/src/Avalonia.Base/Media/FontManager.cs:line 59
   at Avalonia.Media.Typeface.get_GlyphTypeface() in /_/src/Avalonia.Base/Media/Typeface.cs:line 87
   at Avalonia.Rendering.Composition.Compositor.get_DiagnosticTextRenderer() in /_/src/Avalonia.Base/Rendering/Composition/Compositor.cs:line 58
   at Avalonia.Rendering.Composition.Compositor.CreateCompositionTarget(Func`1 surfaces) in /_/src/Avalonia.Base/Rendering/Composition/Compositor.Factories.cs:line 17
   at Avalonia.Rendering.Composition.CompositingRenderer..ctor(IRenderRoot root, Compositor compositor, Func`1 surfaces) in /_/src/Avalonia.Base/Rendering/Composition/CompositingRenderer.cs:line 53
   at Avalonia.Controls.TopLevel..ctor(ITopLevelImpl impl, IAvaloniaDependencyResolver dependencyResolver) in /_/src/Avalonia.Controls/TopLevel.cs:line 188
   at Avalonia.Controls.WindowBase..ctor(IWindowBaseImpl impl, IAvaloniaDependencyResolver dependencyResolver) in /_/src/Avalonia.Controls/WindowBase.cs:line 55
   at Avalonia.Controls.Window..ctor(IWindowImpl impl) in /_/src/Avalonia.Controls/Window.cs:line 223
   at Avalonia.Controls.Window..ctor() in /_/src/Avalonia.Controls/Window.cs:line 214
   at OpenUtau.App.Views.MainWindow..ctor() in /home/runner/work/OpenUtau/OpenUtau/OpenUtau/Views/MainWindow.axaml.cs:line 47
   at OpenUtau.App.App.OnFrameworkInitializationCompleted() in /home/runner/work/OpenUtau/OpenUtau/OpenUtau/App.axaml.cs:line 34
   at Avalonia.AppBuilder.SetupUnsafe() in /_/src/Avalonia.Controls/AppBuilder.cs:line 307
   at Avalonia.AppBuilder.Setup() in /_/src/Avalonia.Controls/AppBuilder.cs:line 291
   at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime(AppBuilder builder, String[] args, ShutdownMode shutdownMode) in /_/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs:line 219
   at OpenUtau.App.Program.Main(String[] args) in /home/runner/work/OpenUtau/OpenUtau/OpenUtau/Program.cs:line 41
zsh: IOT instruction (core dumped)  ./OpenUtau

Explains how to reproduce the bug
1 download and unzip OpenUtau-linux-x64-<IP_ADDRESS>.zip
2 double click or run in terminal
3 then double-clicking does not have any antisense, and the prompt crashes when running in the command line
OS & Version
Arch Linux / Linux 6.1.39-2-lts x86_64 rolling n/a
Logs
No log found

Setting LANG to C solves the problem.

Here is a solution from steamtools Avalonia font manager patch

The latest version is functioning properly.


Can't download competition files

I have configured Kaggle api on my computer before now. Created the .kaggle folder which contains the kaggle.json file where my username and api key resides.
After the initial setup, I was able to download data sets from Kaggle using the api but after a while it stopped working. I have requested a new api key are deleted the old kaggle.json file but still thesame issues. Any help will be appreciated. Thanks.

I already looked at the fix in #97. Unlike the suggestion in the fix I already have my "kaggle.json file" in the ".kaggle" folder within my root folder. But I still have the same issue. Here is a code to show you that I have everything setup already.

Try updating to 1.5.0 and seeing if the improved error message helps.  The problem is very likely that your API token is in the wrong spot, but the messaging around that was only just improved in #109.

I am having troubles updating to version 1.5.0. pip can't find it.

The command for downloading a specific version is pip install $package==$version (ex. pip install kaggle==1.5.0).  If you pip install an already installed package, it won't update that package.  To do an update, run pip install --upgrade kaggle.


Broken links

Seems like https://zeit.co/berzniz/react-overdrive-react-router-v4-demo/zketptspxf?redirect=1 and https://zeit.co/berzniz/react-overdrive-react-router-v4-demo/zketptspxf?redirect=1 are broken.
at least for me.

Thanks for reporting, I will try to re-deploy these


Don't allow scheduled transactions when there are no spendable UTXOs

See https://github.com/joinmarket-webui/joinmarket-webui/pull/242.
This can lead to weird states in the backend so we'll simply make sure that users don't start a transaction schedule without having something to transact with.
This should be a s simple as going over all accounts and check if there are any non-locked UTXOs.

Also check if there are at least N UTXOs. It's recommended to have at at least three UTXOs  older than 5 blocks.

Possibly relevant comment from @AdamISZ:

Three [UTXOs], because that way there is basically zero chance of a PoDLE commit finding failing even once. You could get away with paying only one [UTXO] in, if your test is set up such that a transaction will never fail

Is something like this applicable?
const filterUtxosEligibleForScheduler = (utxos) => {
  return utxos
  .filter((it) => !it.frozen)
  .filter((it) => !it.locktime)
  .filter((it) => it.confirmations >= MIN_UTXO_CONFIRMATIONS)
  .filter((it) => it.tries_remaining > 0)
}

If I understand it correctly, this has to be true all UTXOs (except the frozen onces) since all UTXOs will be involved in the schedule (every mixdepth will get swept at some point).

This is definitely something that we'll have tho think about conceptually in the mid-term.

Yep. Notice how this kind of requirement comes as a near-direct consequence of the decentralization of the system. We originally didn't have this limitation for takers but it resulted in endless requests from anonymous takers who were really snooping to find out maker utxos.
Obviously near-direct - it's not like it's impossible to address this problem via other means. Fidelity bonds could work, but that's more hassle still, for the casual user. This one does not lock money nor require special addresses, nor during most normal operation does the user ever have to see it. So it's not like we chose this without reference to user convenience - it seemed like the best possible tradeoff, albeit I remember viscerally wincing when adding some of that code and documentation because I hated how much more it was requiring of the users who are paying for the service.
It may be worth further research, liquidity ads in c-ln investigated the PoDLE mechanism but haven't implemented it, but I forget exactly what they have implemented. There is also stuff like MPC but I fear that is going to require way too much computation/bandwidth for ad-hoc counterparty selection.
So back to practicalities:

Is something like this applicable?

IIUC you're trying to do an early filter to make sure that the wallet has utxos necessary for the next transaction in the schedule to work? So the thing is you don't need all utxos to have the condition of 'tries remaining AND confs >= min'; you only need 1.

The way I read it is that if one UTXO has no more tries remaining, it will never find a maker so the schedule can never finish?

Not exactly. In a way it's the starting condition that is most sensitive. Consider: say you have 2 utxos at the start and the schedule starts with a sweep (this is the new algo from @chris-belcher which slightly changes the dynamics of this). As long as it doesn't take 6 tries to do that sweep, you'll be OK. But the thing is the output of that sweep is in mixdepth 1 (say) and now it's the only utxo in that mixdepth (usually). So in the next transaction (fraction of coins to mixdepth 2 from mixdepth 1) you really only get 3 tries. You are creating a new utxo (the change) that will be the only 1 in that mixdepth 1. If your pause time is very low, initial attempts to use the commitment will fail (in software - you won't accidentally send it out to makers) because it's too young. But it just retries every 20 minutes or so. Then you'll send out a couple more transactions which are not sweep, perhaps 2 or 3 times, each time in the same situation.
Then in mixdepth 2 you might have 3 utxos now, and so it's already again, like at the start, the case that you have a lot of tries.
Another thing to bear in mind - failures due to unresponsive makers, in that 'tumbler' (or whatever) session result in that maker being kind of 'banned' from future attempts. Additionally, when failure for whatever reason occurs, the tumbler schedule generator tweaks the schedule to make it a bit more likely to succeed on the next try.
Probably you get the general idea? So the statement "if one UTXO has no more tries remaining, it will never find a maker so the schedule can never finish?" wouldn't be true if there is more than 1 utxo in the mixdepth, since you can source the PoDLE commitment from any utxo in the mixdepth (but not in other mixdepths - we changed that some time ago because it's really quite crappy for privacy to use a utxo from a different mixdepth, revealing a link to your maker counterparties). However it is true that this is the full failure case - if there are no utxos with any tries left, the process has to stop until and unless we change something - see 'add-utxo' below paragraph, or funding
You might wonder 'is there any way we can get more commitments' and there is, but I'm loth to ever suggest it - you can use add-utxo.py to add "external commitments", but you need the private key of the other utxos (from another wallet, Joinmarket or otherwise, but BIP84 only iirc) and currently it's CLI only. I think it's best left as a "pro" only feature since messing with private keys is just bad (debatable); you can't use external signing software because this is a special custom signature type.

Thanks for the insights @AdamISZ. Really helpful as always!

Consider: say you have 2 utxos at the start and the schedule starts with a sweep (this is the new algo from chris-belcher which slightly changes the dynamics of this). As long as it doesn't take 6 tries to do that sweep, you'll be OK. But the thing is the output of that sweep is in mixdepth 1 (say) and now it's the only utxo in that mixdepth (usually). So in the next transaction (fraction of coins to mixdepth 2 from mixdepth 1) you really only get 3 tries.

Would it be correct to say that with this new scheduler/tumbler algorithm, there will likely always be a case (during a scheduler/tumbler run) where there's a mixdepth with only one UTXO (since there will be sweeps like in your example)? In other words, do we just have to live with the fact that there will be transactions for which the taker only has three tries--even if we make sure the schedule is started with three UTXOs in the initial mixdepth?
My thinking is that if we know that there'll likely be such a case in the middle of the schedule where there's only one UTXO in a mixdepth (and therefore only three tries to do the next transaction), then we could maybe also accept starting off the schedule with just a single UTXO (and three tries for the initial transaction). Or is there a difference between the initial transaction of a schedule and an intermediate transaction? I feel like I might be missing something here.


Generalization of the tutorial code

Hi there, I have been reading through the Habitat 2020 tutorials. I tried the tutorial's code and ran
if __name__ == "__main__":
    trainer_init = baseline_registry.get_trainer(config.TRAINER_NAME)
    trainer = trainer_init(config)
    trainer.train()

it only seemed to train one iteration/episode according to ppo_trainer.py, how should I formulate the code to train on all scenes and all episodes for mp3d datasets? Are there any fully implemented examples I can refer to?

Answered in https://github.com/facebookresearch/habitat-lab/issues/735#issuecomment-957798783


Elaborate on validation errors

i.e. what fields were missing
ubuntu@brian-pcawg-bwa-testing:~/gitroot/dkfz_dockered_workflows$ dockstore tool launch --entry /home/ubuntu/gitroot/dkfz_dockered_workflows/Dockstore.cwl --json /home/ubuntu/gitroot/dkfz_dockered_workflows/Dockstore.json  --local-entry  --descriptor cwl

Entry file is not a valid CWL file.

@briandoconnor  maybe just point Patricia toward the CWL files for this. I see https://github.com/ICGC-TCGA-PanCancer/dkfz_dockered_workflows but I don't see CWL checked in yet

#260, this is now a duplicate so closing @denis-yuen


Add iOS production deploy lane

Details
Adds iOS production lane which will eventually move an already built version of the app to production review.
Fixed Issues
Fixes https://github.com/Expensify/Expensify/issues/155201
Tests
I tested this locally and got it to run as far as it could without screenshots, I can test it some more once we assets from: https://github.com/Expensify/Expensify/issues/154741
andrew ➜ Expensify.cash bundle exec fastlane ios production
[✔] 🚀
[16:38:37]: ---------------------------
[16:38:37]: --- Step: opt_out_usage ---
[16:38:37]: ---------------------------
[16:38:37]: Disabled upload of used actions
[16:38:37]: Driving the lane 'ios production' 🚀
[16:38:37]: ---------------------
[16:38:37]: --- Step: deliver ---
[16:38:37]: ---------------------
[16:38:37]: Creating authorization token for App Store Connect API

+-----------------------------------------+----------------------------------+
|                          deliver 2.176.0 Summary                           |
+-----------------------------------------+----------------------------------+
| api_key_path                            | ./ios/ios-fastlane-json-key.json |
| submit_for_review                       | true                             |
| automatic_release                       | false                            |
| skip_metadata                           | true                             |
| skip_screenshots                        | true                             |
| skip_binary_upload                      | true                             |
| precheck_include_in_app_purchases       | false                            |
| submission_information.add_id_info_use  | false                            |
| s_idfa                                  |                                  |
| screenshots_path                        | ./fastlane/screenshots           |
| metadata_path                           | ./fastlane/metadata              |
| username                                |<EMAIL_ADDRESS>              |
| app_identifier                          | com.chat.expensify.chat          |
| platform                                | ios                              |
| edit_live                               | false                            |
| use_live_version                        | false                            |
| skip_app_version_update                 | false                            |
| force                                   | false                            |
| overwrite_screenshots                   | false                            |
| reject_if_possible                      | false                            |
| phased_release                          | false                            |
| reset_ratings                           | false                            |
| team_id                                 | 152696                           |
| dev_portal_team_id                      | 368M544MTT                       |
| run_precheck_before_submit              | true                             |
| precheck_default_rule_level             | warn                             |
| ignore_language_directory_validation    | false                            |
+-----------------------------------------+----------------------------------+

[16:38:39]: Running precheck before submitting to review, if you'd like to disable this check you can set run_precheck_before_submit to false
[16:38:39]: Making sure we pass precheck 👮♀ 👮 before we submit  🛫

+--------------------------+----------------------------------+
|                Summary for precheck 2.176.0                 |
+--------------------------+----------------------------------+
| default_rule_level       | warn                             |
| include_in_app_purchases | false                            |
| app_identifier           | com.chat.expensify.chat          |
| api_key_path             | ./ios/ios-fastlane-json-key.json |
| username                 |<EMAIL_ADDRESS>              |
| team_id                  | 152696                           |
| platform                 | ios                              |
| use_live                 | false                            |
+--------------------------+----------------------------------+

[16:38:39]: Creating authorization token for App Store Connect API
[16:38:39]: Checking app for precheck rule violations
[16:38:49]: ✅  Passed: No negative  sentiment
[16:38:49]: ✅  Passed: No placeholder text
[16:38:49]: ✅  Passed: No mentioning  competitors
[16:38:49]: ✅  Passed: No future functionality promises
[16:38:49]: ✅  Passed: No words indicating test content
[16:38:49]: ✅  Passed: No curse words
[16:38:49]: ✅  Passed: No words indicating your IAP is free
[16:38:49]: ✅  Passed: Incorrect, or missing copyright date
[16:38:50]: ✅  Passed: No broken urls
[16:38:50]: precheck 👮♀ 👮  finished without detecting any potential problems 🛫
[16:38:50]: Selecting the latest build...
[16:38:50]: Waiting for processing on... app_id:<PHONE_NUMBER>, app_version: , build_version: , platform: IOS
[16:39:05]: Successfully finished processing the build 1.0.2 - <IP_ADDRESS> for IOS
[16:39:05]: Selecting build 1.0.2 (<IP_ADDRESS>)...
[16:39:07]: Successfully selected build
[16:39:10]: Successfully updated IDFA declarations on App Store Connect
+---------------+----------------+
|          Lane Context          |
+---------------+----------------+
| PLATFORM_NAME | ios            |
| LANE_NAME     | ios production |
+---------------+----------------+
[16:39:17]: The request cannot be fulfilled because of the state of another resource. - Submit for review errors found.
App screenshot missing (APP_IPAD_PRO_3GEN_129). - A screenshot with type ipadPro129 is required but was not provided
App screenshot missing (APP_IPAD_PRO_129). - A screenshot with type ipadPro is required but was not provided
App screenshot missing (APP_IPHONE_65). - A screenshot with type iphone65 is required but was not provided
App screenshot missing (APP_IPHONE_55). - A screenshot with type iphone6Plus is required but was not provided

I just wrapped up adding all the relevant requirements for the app store and tested this once more, it worked 100% this time 🚀
andrew ➜ Expensify.cash VERSION=<IP_ADDRESS>
andrew ➜ Expensify.cash bundle exec fastlane ios production
[✔] 🚀
[13:07:51]: ---------------------------
[13:07:51]: --- Step: opt_out_usage ---
[13:07:51]: ---------------------------
[13:07:51]: Disabled upload of used actions
[13:07:51]: Driving the lane 'ios production' 🚀
[13:07:51]: ---------------------
[13:07:51]: --- Step: deliver ---
[13:07:51]: ---------------------
[13:07:51]: Creating authorization token for App Store Connect API

+-----------------------------------------+----------------------------------+
|                          deliver 2.176.0 Summary                           |
+-----------------------------------------+----------------------------------+
| api_key_path                            | ./ios/ios-fastlane-json-key.json |
| submit_for_review                       | true                             |
| automatic_release                       | false                            |
| skip_metadata                           | true                             |
| skip_screenshots                        | true                             |
| skip_binary_upload                      | true                             |
| precheck_include_in_app_purchases       | false                            |
| submission_information.add_id_info_use  | false                            |
| s_idfa                                  |                                  |
| screenshots_path                        | ./fastlane/screenshots           |
| metadata_path                           | ./fastlane/metadata              |
| username                                |<EMAIL_ADDRESS>              |
| app_identifier                          | com.chat.expensify.chat          |
| platform                                | ios                              |
| edit_live                               | false                            |
| use_live_version                        | false                            |
| skip_app_version_update                 | false                            |
| force                                   | false                            |
| overwrite_screenshots                   | false                            |
| reject_if_possible                      | false                            |
| phased_release                          | false                            |
| reset_ratings                           | false                            |
| team_id                                 | 152696                           |
| dev_portal_team_id                      | 368M544MTT                       |
| run_precheck_before_submit              | true                             |
| precheck_default_rule_level             | warn                             |
| ignore_language_directory_validation    | false                            |
+-----------------------------------------+----------------------------------+

[13:07:56]: Running precheck before submitting to review, if you'd like to disable this check you can set run_precheck_before_submit to false
[13:07:56]: Making sure we pass precheck 👮♀ 👮 before we submit  🛫

+--------------------------+----------------------------------+
|                Summary for precheck 2.176.0                 |
+--------------------------+----------------------------------+
| default_rule_level       | warn                             |
| include_in_app_purchases | false                            |
| app_identifier           | com.chat.expensify.chat          |
| api_key_path             | ./ios/ios-fastlane-json-key.json |
| username                 |<EMAIL_ADDRESS>              |
| team_id                  | 152696                           |
| platform                 | ios                              |
| use_live                 | false                            |
+--------------------------+----------------------------------+

[13:07:56]: Creating authorization token for App Store Connect API
[13:07:56]: Checking app for precheck rule violations
[13:08:10]: ✅  Passed: No negative  sentiment
[13:08:10]: ✅  Passed: No placeholder text
[13:08:10]: ✅  Passed: No mentioning  competitors
[13:08:10]: ✅  Passed: No future functionality promises
[13:08:10]: ✅  Passed: No words indicating test content
[13:08:10]: ✅  Passed: No curse words
[13:08:10]: ✅  Passed: No words indicating your IAP is free
[13:08:10]: ✅  Passed: Incorrect, or missing copyright date
[13:08:12]: ✅  Passed: No broken urls
[13:08:12]: precheck 👮♀ 👮  finished without detecting any potential problems 🛫
[13:08:12]: Selecting the latest build...
[13:08:12]: Waiting for processing on... app_id:<PHONE_NUMBER>, app_version: , build_version: , platform: IOS
[13:08:26]: Successfully finished processing the build 1.0.2 - <IP_ADDRESS> for IOS
[13:08:26]: Selecting build 1.0.2 (<IP_ADDRESS>)...
[13:08:27]: Successfully selected build
[13:08:31]: Successfully updated IDFA declarations on App Store Connect
[13:08:38]: Successfully submitted the app for review!

+------+---------------+-------------+
|          fastlane summary          |
+------+---------------+-------------+
| Step | Action        | Time (in s) |
+------+---------------+-------------+
| 1    | opt_out_usage | 0           |
| 2    | deliver       | 47          |
+------+---------------+-------------+

[13:08:38]: fastlane.tools finished successfully 🎉

Okay, created an issue https://github.com/Expensify/Expensify/issues/156562 so we don't forget to make sure our version string always has 4 parts.

Ready for review @Dal-Papa / @Jag96!

Good question on documentation, @roryabraham - What would you suggest? It feels like there are going to be lots of documentation updates required to the deployment section in the readme

It feels like there are going to be lots of documentation updates required to the deployment section in the readme

I completely agree, there will need to be a ton of documentation updates. As for "how to do a production deploy", there will only be two ways:

Close a StagingDeployCash issue, and we'll automatically create a GH Release. That will trigger a production deploy (but only if done by OSBotify, so nobody can actually trigger a production deploy w/o access to Expensify/Expensify).
Merge a PR with the CP Production label, and even then that will only work for web and maybe desktop. I don't think we'll allow that to have any effect on mobile deploys.

So should we make these documentation updates in a future PR or this one?

I think a future PR is fine.

Issue created here.


All German language models have errors with 'ch'.

and more. words ending with "g" are also not working. "fertig","eifrig" and so on.
this happens:
[E:onnxruntime:, sequential_executor.cc:494 ExecuteKernel] Non-zero status code returned while running Gather node. Name:'/enc_p/emb/Gather' Status Message: indices element out of data bounds, idx=140 must be within the inclusive range [-130,129] terminate called after throwing an instance of 'Ort::Exception'   what():  Non-zero status code returned while running Gather node. Name:'/enc_p/emb/Gather' Status Message: indices element out of data bounds, idx=140 must be within the inclusive range [-130,129]

This is a duplicate of #104 I guess.

#104 is fixed, @wolp2306.


Replace Kokkos::View::Rank with rank

Deprecated in Kokkos 4.0

@lebuller couldn't request review, but I'm bothering you anyway :)

@kwitaechong same thing you just added

Ignoring HIP timeout


drivers: sensor: Add ROHM BH1750 driver

Dear Maintainers,
This is my first driver, and I wonder if you are interested in having it upstream.
The sensor has several working modes, and I have picked up the mode "one-time high resolution mode"; there are also five other modes that I can implement (including low resolution, continuous...). Do you want I implement all of them?
I have also a sample code, tell me if it needs to be part of the PR.
The code is based on the Bosch BME280 source code.
Kind Regards,
Gaël

This adds support for ROHM BH1750 the i2c light sensor.
Signed-off-by: Gaël PORTAY<EMAIL_ADDRESS>

@MaureenHelm ping?

I am closing the MR, since another driver for this hardware was merged in #43086.


update preview API to follow GA api - use one forceupgrade boolean in…

update preview API to follow GA api - use one forceupgrade boolean instead of multiple overrides

/azp run


Problem resolving http://metadata.google.internal

Environment details

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

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

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

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

Greetings!  That host name is correct :) The trailing . tells DNS lookup to limit the scope to the local machine.   In the context of calling a metadata server from inside of GCP, this makes sense!  From an electron app .... it makes no sense 😆
The issue here is likely authentication.  How are you expecting your electron users to authenticate to the backend API?  Are you trying to embed a service account key with your app?

Hey @JustinBeckwith, thanks for getting on this.
The functionality I am trying to achieve is if there is a public GCS bucket, and the user gives me the bucket name, I should be able to query list of all items in that bucket. As a workaround, for now, I am using the rest API version of same.
For @google-cloud/storage SDK to work, from the docs, I think this is what I need to do-
const gcs = new Storage()
await gcs.bucket(bucketName).getFiles()

But I am getting the same error as above.

Are you trying to embed a service account key with your app?

For private buckets, I am asking users to upload their service account JSON, and private buckets are working fine using the node SDK.

Also, FYI. The SDK implementation works fine in development mode for the electron app. It only breaks in production.


[qemu] Out of memory faster with bulletproof JIT

From @saagarjha https://saagarjha.com/blog/2020/02/23/jailed-just-in-time-compilation-on-ios/

Unlike processes with dynamic-codesigning which get access to “jumbo VA spaces”, iOS applications can normally only allocate a limited amount of virtual memory (which is determined using a fairly elaborate calculation based on the size of physical memory).

TCG allocates from 1024KiB to up to 2GiB of JIT cache. By default it uses ram size / 4. Because of the mirror mapping, iOS thinks we use 2x the amount of space we actually do for this JIT cache and therefore kills the app much quicker than before.
We should experiment with lowering the size of the JIT cache by default and/or allow the user to configure it. Make sure that the performance lost is less than the gains from the bulletproof JIT implementation. Otherwise, we should allow the old JIT as an option for those who value larger memory over faster speeds.

Can someone with jailbreak test this? https://github.com/utmapp/UTM/releases/download/v0.2-fakesign/UTM.ipa
I added the dynamic-codesign entitlement to the fake signed IPA. Let me know if that fixes this issue on jailbroken devices.

Was this built off of master?

Yes (at the time).

If so, we should disable the ptrace hacks on these builds. Unless you already took care of that?

I haven't but right now I haven't committed to having a separate "JB only" build yet. Just want to test it out. If there are benefits (such as supporting higher memory limits) then I will create a proper build config. The JB version could also use fork() and support multiple VMs and other features. I kinda want to get everything else working before doing stuff like that though as I would have to obtain a JB device to test with.

Is there anything in particular that is a good test?

If you have VM booting (Windows specifically since I haven't tried much other ones), bump the memory up until you get to a point where it boots but goes out of memory once it gets to the desktop. Then try that same config with the fakesigned version which has the dynamic-codesign entitlement. Even though it doesn't use MAP_JIT, I wonder if the entitlement is enough to bypass the limits.

Turns out my iPhone 6 doesn't have enough storage space to run Windows :(

Can someone with jailbreak test this? https://github.com/utmapp/UTM/releases/download/v0.2-fakesign/UTM.ipa
I added the dynamic-codesign entitlement to the fake signed IPA. Let me know if that fixes this issue on jailbroken devices.

Crashes on startup. Reboot did not solve the issue. On iPad Air 3 iOS 13.3 Jailbroken unc0ver 4.0.3.

Installs correctly but crashes on startup.
Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Description: DYLD, Library not loaded: @rpath/libgpg-error.0.dylib | Referenced from: /private/var/containers/Bundle/Application/632C8241-83A3-42D3-9191-7F1D49974C11/UTM.app/UTM | Reason: Incompatible library version: UTM requires version 28.0.0 or later, but libgpg-error.0.dylib provides version 25.0.0
Triggered by Thread:  0

Does jailbreak + jailbreak apps install additional libs? That’s probably the issue for many people.
I’m not sure how to fix this though.

Did not crash for me, fresh jailbreak with the necessary tools on an iPad Pro first gen on iOS 13 jailbroken with checkra1n.
However, I cannot test using Windows because I do not have an image. I am testing arch and ubuntu, will report back.

I found that using an older version of sysroot(download from "Actions" in 22/02/2020) to compile UTM can reduces memory usage by 200+MB. With the new version of sysroot, I set 1GB of memory for the iPad mini 5 and UTM always crashes, but with the old version I can set 1GB of memory.

Uh you do realize that it’s because you’re using the older slower JIT code right. That’s literally what this issue is about. The new jit code is faster but makes iOS think it’s using more memory.

Update: I'm punting this issue until the future. I looked into implementing a QEMU solution where not everything is mirror mapped but no solution can solve all the following problems:

To link TBs with jumps, you would require the TB to be mirror mapped or turn off direct jumps. Either way there's a performance downgrade.
TB metadata is stored before the code as an optimization. If we move the metadata we run into the old issue of having to statically allocate space for TB metadata with a best guess. Also cache locality.
In MTTCG one thread could execute a TB created by another thread. If that other thread decides to unmap the mirror and the first thread decides to modify the jump list or page list or anything, it will crash. Adding locks will degrade performance.

So here's the situation: on iDevices, you are limited to about 50% of the physical RAM per app. If you allocate all of that to the VM, then about 8% of that is guest JIT and 8% is wasted and 34% is host RAM. If you want that 8%, either jailbreak or decrease the JIT cache (decreases performance somewhat).

There is this new sandbox escape that works in AltStore https://twitter.com/rileytestut/status/1256321645930663936 it may be useful for faster performance

The sandbox escape has no relevance here.

I wonder who enforces dynamic-codesigning…

I don't think dynamic-codesigning gives any improved performance? The alias mapping technique seems as good as we can get. Maybe you can find some cache locality improvements but I'm willing to bet those improvements are minimal.

Not only does dynamic-codesigning give you the ability to map RWX, you also get a larger virtual address space.

Hmm, true. I was only thinking of computation since they mentioned "faster performance." I guess you can get more host memory. But this is a bug Apple already fixed so it would only work on lower iOS versions. In that case, the jailbroken version of UTM already requests dynamic-codesigning entitlement. I don't really want to maintain a "improper entitlement" build just for < 13.5 builds just for this one issue.

Thinking a bit more on this. Does anyone know what happens on 13.5? Does the app get killed or does it just not get the entitlement? If it doesn’t kill it I see no harm in just always including the fake entitlement.

The app gets killed what I suggest is a setting that you enable if you are jailbroken or on 13.4.1

I tested with and without dynamic-codesigning and there was no difference in reported memory usage or when it was killed.

Interesting; the code in XNU seems to make it appear like the jumbo mapping is entirely dependent on the ability to MAP_JIT: https://github.com/apple-open-source-mirror/xnu/blob/65d5be84e21bccbae44730ddb3b307a701b0351a/bsd/kern/kern_exec.c#L3604. You're able to successfully make such a page but are still killed?

I tested mmap with RWX (both with and without MAP_JIT) and it only works with dynamic-codesign so no surprises there.
But when I do the mirror mapping stuff, it crashes with code sign error on the icache flush. If I apply the ptrace trick as well, then Xcode’s memory usage is still the same during Windows boot and crashes at the same spot (after ~2.7GB of memory usage according to Xcode).

Which device are you testing this on? I think you may have to deal with APRR if it's something new. (You shouldn't need the ptrace trick…?)

iPad 2018. I was able to get JIT to work with APRR changes. But I don’t know if that affects the memory usage.

After farther tests it seems like “jumbo vm” != “allow more memory usage”. All it means is that you are allowed allocate more memory through vm_allocate or mmap. It does not let you use more memory. Unfortunately it seems from these tests that XNU’s internal bookkeeping of how much memory is “used” does not take account if mirror mapped addresses. It gets double counted.
The only way around this is to implement APRR in QEMU and when we detect dynamic-codesign to disable the mirror mapping and use APRR instead.

Right, I don't think Jetsam is disabled for such processes; if I had to guess the feature was probably added to support WebKit's Gigacage. I was assuming you were running out of virtual memory address space instead of physical memory. (Actually, I wonder if there's an entitlement to opt out of Jetsam?)

Yeah iOS thinks I’m using ~2.7GB of memory and kills it even though 1/3 of that is mirror mapped.

Thanks to Jan kaiser I found 2 entitlements of jetsam that may opt you out com.apple.private.jetsam.modify-priority
com.apple.private.kernel.jetsam

On iOS 14 and macOS 11, this is no longer an issue (on jailbroken devices) with addition of qemu option to disable mirror mapping when proper entitlements are obtained. Since the ptrace hack was fixed and does not work on iOS 14, we will no longer consider this an issue.

Potentially a last iOS 13 UTM update to take advantage of having full root access with those proper entitlements? This will help us A12/A13/A12X/A12Z users until a jailbreak for 14.0 is found that isn’t checkra1n. Although you said that you likely won’t update UTM for iOS 13 anymore

It doesn't have anything to do with root access. The issue is that there's missing APIs in iOS 13 (added in iOS 14 with macOS 11). Even with the proper entitlements, the APRR calls would have to be hard coded in QEMU. It seems like the CPU instructions to do so differs in each Ax generation. It would be really ugly to put all of that into QEMU. Of course it's doable but it's not maintainable and therefore seems like too much hassle.
The goal ultimately is to get the QEMU changes merged upstream. Then we don't have to maintain a separate QEMU fork. The same QEMU version can be used in both UTM v1 and UTM v2. Adding this change would complicate the picture.

Wait a minute, I’m thinking completely wrong here. Since we’re jailbroken with full root access, sufficiently savvy users can manually modify jetsam configurations themselves to allow UTM to run with unlimited or very lenient limits. Sorry oof


I want to add the code of Largest Rectangle in Histogram(Stack)

Please assign me this issue @Mridul-1-Sharma ..I can solve this.

Will you kindly label this question as hacktoberfest..and accept my pr?

#72

This repository is excluded from hacktoberfest if want to contribute you can contribute in https://github.com/Mridul-1-Sharma/data_structures_algos


[SPARK-40604][PS] Verify the temporary column names

What changes were proposed in this pull request?
Verify the temporary column names in PS
Why are the changes needed?
we should make sure the temporary column names are valid before using them
Does this PR introduce any user-facing change?
No
How was this patch tested?
existing UT

Merged into master, thanks @itholic for reivews


Mangle is run by default while documentation states otherwise

Maybe I'm mistaken, but as I see it, the mangling in uglify plugin is not false by default, as it states in documentation. Instead, one have to disable it explicitly as it is undefined by default?

http://webpack.github.io/docs/list-of-plugins.html#uglifyjsplugin -- "By default the mangle option is false."
https://github.com/webpack/webpack/blob/master/lib/optimize/UglifyJsPlugin.js#L92 -- if(options.mangle !== false) {

changed documentation


Some Modes for Thermostat type are not working anymore

Hi,
Since last week we can't use anymore some Modes added recently for Thermostat type.
We have a "mode not available" message as answer when we request these modes.
Here are the concerned modes:

eco (en) / eco (fr)
comfort (en) / confort (fr)
antifrost (en) / hors-gel (fr)
boost (en) / boost (fr)

Do you know why?
Here is the sync object we send:
{     "id": "***********************",     "type": "action.devices.types.THERMOSTAT",     "traits": ["action.devices.traits.TemperatureSetting", "action.devices.traits.Modes"],     "name": {         "name": "my name"     },     "willReportState": true,     "attributes": {         "availableThermostatModes": "off,heat,on",         "thermostatTemperatureUnit": "C",         "availableModes": [{             "name": "mode",             "name_values": [{                     "name_synonym": ["mode"],                     "lang": "en"                 },                 {                     "name_synonym": ["mode"],                     "lang": "fr"                 }             ],             "settings": [{                     "setting_name": "auto",                     "setting_values": [{                             "setting_synonym": ["auto", "automatic"],                             "lang": "en"                         },                         {                             "setting_synonym": ["auto", "automatique"],                             "lang": "fr"                         }                     ]                 },                 {                     "setting_name": "eco",                     "setting_values": [{                             "setting_synonym": ["eco", "economic"],                             "lang": "en"                         },                         {                             "setting_synonym": ["eco", "economique"],                             "lang": "fr"                         }                     ]                 },                 {                     "setting_name": "comfort",                     "setting_values": [{                             "setting_synonym": ["comfort"],                             "lang": "en"                         },                         {                             "setting_synonym": ["confort"],                             "lang": "fr"                         }                     ]                 },                 {                     "setting_name": "antifrost",                     "setting_values": [{                             "setting_synonym": ["antifrost"],                             "lang": "en"                         },                         {                             "setting_synonym": ["hors-gel"],                             "lang": "fr"                         }                     ]                 },                 {                     "setting_name": "boost",                     "setting_values": [{                             "setting_synonym": ["boost"],                             "lang": "en"                         },                         {                             "setting_synonym": ["boost"],                             "lang": "fr"                         }                     ]                 }             ],             "ordered": false         }]     } }
Thanks

Do you see that error when requesting all of the modes? Which ones have you tried (and in which language?)

We tested them in french and they were working 2 weeks ago.
We have this error for eco, confort, hors-gel and boost (all in french). I will test in english.
"auto" is working in french.

It's working in english, except for "antifrost" but I think this is more due to the word itself... It should be "anti-frost" (or "frost protection")

antifrost and anti-frost should be valid modes for English.
As far as I can tell, those modes should all exist in both languages.

I'm back on this issue. We found 2 reasons:

"Mode" and mode name are reversed in French for all the modes except "Auto" mode.

In french the phrase should be : "Mets [name] en mode Eco" but only this phrase is understable by the assistant:  "Mets [name] en Eco Mode".
Could you request to make this correction?

For the antifrost mode in french, "hors-gel" is understood as 2 words "hors gel" by the assistant and so it doesn't understand the mode.

Could you request to replace in french "hors-gel" by "hors gel" in the modes list?
Thanks

I'll follow up with these shortly

Hi,
I'd like to know if you have new information about this issue. The problem is still present.
We also found a new issue in french. When we ask to increase/decrease from x degrees. It seems the action doesn't send the new temperature, but the amount we asked to increase/decrease. In english, this action works well and send the new temperature.
The phrase in french we use is "Baisse [name] de 2 degrés", which mean "Decrease [name] from 2 degrees".
Do you have information about this ?
Thanks

I don't know off-hand, but I'll pass this issue along.

We've been working on improving this behavior. It should be rolled out in the next few days.


James Pang 09/04/2021

Update community and education team's github (.5 hour) https://github.com/thenewboston-developers/Website/pull/1680
Worked on utilising teams api in website (2.5 hours) https://github.com/thenewboston-developers/Website/pull/1663/files
Tested and tried to post on api-dev for core team members (.5 hours)

Total: 3.5 hrs
Acount Number:  c54c04774efaae20746fd3f29cdd619fea512e119bc1082b863572b2e8844104

Approved

Approving but we should wait till PR gets merged before releasing payments

Closed. This was practice, we will officially begin timesheet reports Monday, April 12, 2021


Use Element.id to get module id for accordion

Use the native Element.id IDL property (supported by all modern browsers including IE6+) rather than Element.getAttribute('id')
As this.moduleId is only used once, replace it with a call to this.$module.id.

Just to record that I've tested this in IE8 through 11 (by inspecting the button and ensuring that aria-controls is set as expected).
I've not tested in any other browsers other than Chrome 104 as my day-to-day browser.


When LDAP server unavailable whole application freezes

Hello,
I found nasty bug that freezes my application :(
Steps to reproduce:
import asyncio
import time

import bonsai

async def connect():
    client = bonsai.LDAPClient(f"ldap://<IP_ADDRESS>")
    async with client.connect(is_async=True, timeout=3):
        return True

async def printer():
    while True:
        print(f"{time.time()} hi")
        await asyncio.sleep(1)

async def main():
    asyncio.create_task(printer())
    await asyncio.sleep(3)
    await connect()

asyncio.run(main())

1596881355.416916 hi
1596881356.420735 hi
1596881357.4230669 hi
Traceback (most recent call last):
  File ".../script_bonsai.py", line 25, in <module>
    asyncio.run(main())
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/runners.py", line 43, in run
    return loop.run_until_complete(main)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 583, in run_until_complete
    return future.result()
  File ".../script_bonsai.py", line 22, in main
    await connect()
  File ".../script_bonsai.py", line 9, in connect
    async with client.connect(is_async=True, timeout=3):
  File ".../lib/python3.7/site-packages/bonsai/asyncio/aioconnection.py", line 30, in __aenter__
    return await self.__open_coro
  File ".../lib/python3.7/site-packages/bonsai/asyncio/aioconnection.py", line 63, in _poll
    raise exc
  File ".../lib/python3.7/site-packages/bonsai/asyncio/aioconnection.py", line 59, in _poll
    return await asyncio.wait_for(fut, timeout)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
    return fut.result()
  File ".../lib/python3.7/site-packages/bonsai/asyncio/aioconnection.py", line 45, in _ready
    res = super().get_result(msg_id)
bonsai.errors.ConnectionError: Can't contact LDAP server. (0xFFFF [-1])
1596881434.8999639 hi

Process finished with exit code 1

I think super().get_result(msg_id) should be executed in run_in_executor with wait_for

Hi,
On Mac by default the created socket for the LDAP connection doesn't have the non-blocking flag set.
You can change it with bonsai.set_connect_async(True), but I've experienced more issues with TLS connections, when it was set.
Using Linux (where the async connection enabled by default), your example code should time out properly after 3 seconds, while keep printing the other coroutine's text.
Also, there is some extra explanations in this issue about this.

Unfortunately, that's not true
1596883055.7814884 hi
1596883056.7828977 hi
1596883057.7843115 hi
1596883185.9830725 hi
Traceback (most recent call last):
  File "script_bonsai.py", line 25, in <module>
    asyncio.run(main())
  File "/usr/lib/python3.7/asyncio/runners.py", line 43, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.7/asyncio/base_events.py", line 579, in run_until_complete
    return future.result()
  File "script_bonsai.py", line 22, in main
    await connect()
  File "script_bonsai.py", line 9, in connect
    async with client.connect(is_async=True, timeout=3):
  File ".../lib/python3.7/site-packages/bonsai/asyncio/aioconnection.py", line 30, in __aenter__
    return await self.__open_coro
  File ".../lib/python3.7/site-packages/bonsai/asyncio/aioconnection.py", line 64, in _poll
    raise exc
  File ".../lib/python3.7/site-packages/bonsai/asyncio/aioconnection.py", line 59, in _poll
    return await asyncio.wait_for(fut, timeout)
  File "/usr/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
    return fut.result()
  File ".../lib/python3.7/site-packages/bonsai/asyncio/aioconnection.py", line 45, in _ready
    res = super().get_result(msg_id)
bonsai.errors.ConnectionError: Can't contact LDAP server. (0xFFFF [-1])

I believe it is python:3.7 image that runs in docker
uname -a
Linux f8bf63cb8d2f 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) x86_64 x86_64 x86_64 GNU/Linux

It's weird. This is what I get when I run your example in a python:3.7 docker container:
# python3 test.py
1597082424.9970446 hi
1597082425.9984224 hi
1597082426.9998264 hi
1597082428.003627 hi
1597082429.0049498 hi
1597082430.0063202 hi
Traceback (most recent call last):
  File "test.py", line 21, in <module>
    asyncio.run(main())
  File "/usr/local/lib/python3.7/asyncio/runners.py", line 43, in run
    return loop.run_until_complete(main)
  File "/usr/local/lib/python3.7/asyncio/base_events.py", line 587, in run_until_complete
    return future.result()
  File "test.py", line 19, in main
    await connect()
  File "test.py", line 8, in connect
    async with client.connect(is_async=True, timeout=3):
  File "/usr/local/lib/python3.7/site-packages/bonsai/asyncio/aioconnection.py", line 30, in __aenter__
    return await self.__open_coro
  File "/usr/local/lib/python3.7/site-packages/bonsai/asyncio/aioconnection.py", line 64, in _poll
    raise exc
  File "/usr/local/lib/python3.7/site-packages/bonsai/asyncio/aioconnection.py", line 59, in _poll
    return await asyncio.wait_for(fut, timeout)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 449, in wait_for
    raise futures.TimeoutError()
concurrent.futures._base.TimeoutError
# cat test.py
import asyncio
import time

import bonsai

async def connect():
    client = bonsai.LDAPClient(f"ldap://<IP_ADDRESS>")
    async with client.connect(is_async=True, timeout=3):
        return True

async def printer():
    while True:
        print(f"{time.time()} hi")
        await asyncio.sleep(1)

async def main():
    asyncio.create_task(printer())
    await asyncio.sleep(3)
    await connect()

asyncio.run(main())

But the output of the uname is quite differrent:
# uname -a
Linux a1d38127a5b0 4.19.76-linuxkit #1 SMP Tue May 26 11:42:35 UTC 2020 x86_64 GNU/Linux

I'm not sure why.
Could you tell me the vendor version of the libldap that you're using?
>>> import bonsai
>>> bonsai.__version__
'1.2.0'
>>> bonsai.get_vendor_info()
('OpenLDAP', 20447)

In [1]: import  bonsai

In [2]: bonsai.__version__
Out[2]: '1.2.0'

In [3]: bonsai.get_vendor_info()
Out[3]: ('OpenLDAP', 20442)

The non-blocking socket settings are only available from 20444 (OpenLDAP 2.4.44). Prior to that version even non-tls connection were flaky with the non-blocking flag. Can you update to a newer OpenLDAP?

Unfortunately, I cannot update right now, but I tested on fresh Debian, it works fine. Probably it should be noted somewhere in README I think.
Also, why not run_in_executor as I mentioned before?

I'll update the docs about it.
I've never considered to use run_in_executor before, mostly tried to rely on what libldap provides for async.
I wouldn't execute the super().get_result(msg_id) method in a separate thread, because after the connection is set it's unnecessary (even without setting the socket to non-blocking). Polling the result of an LDAP operation (which is done by the same get_result(msg_id) method) works without blocking.


Introduce v1alpha2 and make the StorageClass name configurable in v1alpha2

How to categorize this PR?

/kind enhancement
What this PR does / why we need it:
This PR introduces v1alpha2 to make the StorageClass name configurable. We would like to make the StorageClass name configurable to allow end users to use a StorageClass that is other than default. In the current main branch, we hard-code the StorageClass name of the StatefulSet to default.
I decided to introduce the storageClassName in a new API version (v1alpha2) to group all volume related fields under a field named volume.
Instead adding the field to the existing API
apiVersion: registry.extensions.gardener.cloud/v1alpha1
kind: RegistryConfig
caches:
- upstream: docker.io
  size: 500Mi
  storageClassName: premium
  garbageCollection:
    enabled: false
  secretReferenceName: credentials

I prefer the volume related to be grouped such as:
apiVersion: registry.extensions.gardener.cloud/v1alpha2
kind: RegistryConfig
caches:
- upstream: docker.io
  volume:
    size: 500Mi
    storageClassName: premium
  garbageCollection:
    enabled: false
  secretReferenceName: credentials

Which issue(s) this PR fixes:
Part of #3
Special notes for your reviewer:
N/A
Release note:

The registry-cache extension introduces a new API version `v1alpha2`. In the new API version the StorageClass name of the registry cache volume is configurable. Previously, it was hard-coded to the StorageClass named `default`. See [Migration from `v1alpha1` to `v1alpha2`](https://github.com/gardener/gardener-extension-registry-cache/blob/v0.4.0/docs/usage/migration-from-v1alpha1-to-v1alpha2.md) on how to migrate from `v1alpha1` to `v1alpha2`. It is recommended for end users to use the `v1alpha2` API version.

The failure is in the Shoot force deletion test:
  [FAILED] Expected success, but got an error:
      <*errors.errorString | 0xc0008ac000>:
      failed waiting for Shoot to be deleted
      {
          s: "failed waiting for Shoot to be deleted",
      }
  In [It] at: /home/prow/go/src/github.com/gardener/gardener-extension-registry-cache/test/e2e/create_enable_force_delete_test.go:66 @ 11/23/23 17:11:00.238
------------------------------
Summarizing 1 Failure:
  [FAIL] Registry Cache Extension Tests [It] should create Shoot, enable the registry-cache extension, force delete Shoot
  /home/prow/go/src/github.com/gardener/gardener-extension-registry-cache/test/e2e/create_enable_force_delete_test.go:66

/test pull-gardener-extension-registry-cache-e2e-kind


Add install instructions for CentOS 8

This is basically the exact same set of instructions as RHEL 8, with the steps for registration and links to official RHEL docs removed.
Fixes: #18019

Question, and this applies to RHEL 8 too really, what about installing Core 2.1 runtimes? Are those natively included in the distros? Core 2.1 is LTS.

Question, and this applies to RHEL 8 too really

I copied the RHEL 8 page without thinking ...

what about installing Core 2.1 runtimes? Are those natively included in the distros? Core 2.1 is LTS.

Yes, they are. RHEL 8 includes 2.1 (LTS, supported), 3.0 (out of support, but packages are available) and 3.1 (LTS, supported).
Shall I amend this PR to fix both docs?

Sure. At this point though, I'm wondering if I should redesign this area to have all up distro pages that include instructions per version, instead of pages that are distro-version specific...

Sure.

Okay, I will fix this PR, then.

I'm wondering if I should redesign this area to have all up distro pages that include instructions per version, instead of pages that are distro-version specific...

Yeah, that may be a better approach, or it may be worse, hard to say without looking at it. If you have a prototype page, I will happily skim it and give you my feedback.

Nothing yet. I am discussing changes to this area over at #17925


An option to hide header

See more at https://github.com/Jasonette/Jasonette/issues/11

Resolved with https://github.com/Jasonette/JASONETTE-iOS/pull/273


C++: Cache DefaultTaintTracking

This should speed up the overall suite, where DefaultTaintTracking is used in several queries.

Testing at https://jenkins.internal.semmle.com/job/Changes/job/CPP-Differences/852/

This change seems to be an overall slight improvement for analysis time.

I've looked at ChakraCore's performance changes in the profile viewer, and the slight slowdown seems to be unrelated to this PR. It affects all the stages that have nothing to do with the caching of DefaultTaintTracking, so I'll write it off as unrelated performance fluctuations of the Jenkins worker.


add web demo/model to Huggingface

Hi, would you be interested in adding MIMDet to Hugging Face? The Hub offers free hosting, and it would make your work more accessible and visible to the rest of the ML community. Models/datasets/spaces(web demos) can be added to a user account or organization similar to github.
Example from other organizations:
Keras: https://huggingface.co/keras-io
Microsoft: https://huggingface.co/microsoft
Facebook: https://huggingface.co/facebook
Example spaces with repos:
github: https://github.com/salesforce/BLIP
Spaces: https://huggingface.co/spaces/salesforce/BLIP
github: https://github.com/facebookresearch/omnivore
Spaces: https://huggingface.co/spaces/akhaliq/omnivore
and here are guides for adding spaces/models/datasets to your org
How to add a Space: https://huggingface.co/blog/gradio-spaces
how to add models: https://huggingface.co/docs/hub/adding-a-model
uploading a dataset: https://huggingface.co/docs/datasets/upload_dataset.html
Please let us know if you would be interested and if you have any questions, we can also help with the technical implementation.

Sure, we are happy to add MIMDet to Hugging Face. We will work on it as soon as possible.

Hello @AK391 and thank you for your interest in our work!
We will work on this and add our MIMDet to Hugging Face soon!


Add powerpc builds

Completely untested. How does this look @alexcrichton?
cc #531 @lu-zero

Ah looks like the build for OpenSSL needs to be updated to build powerpc as well, but otherwise I think this should be all that's needed.

Updated the openssl builds.

Looks like the OS may be linux-ppc instead of linux-powerpc (and similar for others)

Updated again.

Updated again.

Hey look it works!

Great !


Replacement for the “pythonic” package in the frontend to address IE issues

 Replacement for the “pythonic” package in the frontend to address IE issues

The next release will include a fix for this issue.


proposal: Add a OneOf Matcher to match parameter as part of a list

Problem Statement
While testing functions with multiple calls to the same method, occasionally we encounter a situation where we require multiple matches for one parameter. One approach would be to create multiple mock.EXPECT() calls for each distinct match, however, with the new gomock.WithOverridableExpectations(), the second call will override the first, regardless of any inclusion of .Times(x).
Regardless of the existing problem with gomock.WithOverridableExpectations(), in some situations it would be convenient to create multiple matches from a single EXPECT, especially if the DoAnyReturn() is complex. So I believe this would help ease-of-use.
Proposal
Include a new OneOf Matcher that will match if a given parameter belongs to the provided list. This will allow for multiple calls to be matched in one EXPECT() with TIMES(N), which temporarily helps solve the Override issue. In addition to this, being able to match one element against a list would be valuable and improve the ease of use when testing if a parameter matches within a given list.
Examples
Example A: Overriding Order
Consider the following function:
func SUT() {
    MockedFunction("Go")
    MockedFunction("Rust")
}

Assume we have created an EXPECT() for Do() and would like to later override it as follows:
mock.EXPECT().MockedFunction("Go").Return(true).Times(1)
mock.EXPECT().MockedFunction("Rust").Return(true).Times(1)

However, with gomock.WithOverridableExpectations() enabled, the 2nd EXPECT() takes precedent and the test fails. One solution to this would then be the following:
mock.EXPECT().
	MockedFunction(gomock.Any()).
	DoAndReturn(func(lang string) bool {
		switch lang {
		case "Go":
			return true
		case "Rust":
			return true
		}
		return false
	}).
	Times(2)
}

This approach allows us to use only one EXPECT call, but requires that we use an Any() Matcher and a default false case for the DoAndReturn. It would be preferable to be able to match on if the element was part of a list of acceptable parameter values, as follows:
mock.EXPECT().
	MockedFunction(gomock.OneOf([]any{"Go", "Rust"})).
	DoAndReturn(func(lang string) bool {
		switch lang {
		case "Go":
			return true
		case "Rust":
			return true
		}
		return false
	}).
	Times(2)
},

Example B: Mocking Convenience
Consider the following function used to determine which animal food you should use, based on your country:
func SUT(country string) Food {
	animal := interface.GetAnimal(country)
	food := interface.GetFood(animal)
	return food
}

// Valid animal types
func GetAnimals() {
  []Animals{
	  Gopher,
    	  Meerkat,
  	  Chinchilla,
  }
}

It may be convenient to stub the call to GetFood for any valid Animal type given. We can do this similarly to above, with a DoAnyReturn, but this again would require using an Any matcher. It would be preferable to be able to provide a list of valid matches, as follows:
func TestSUT(t *testing.T) {
    interfaceMock.EXPECT().
		GetFood({}any{Gopher, Meerkat, Chinchilla}).
		DoAnyReturn(func(animal Animal) Food {
			if animal == Meerkat {
				return Insects
			}
			return Seeds
		}).AnyTimes()
}

Proposed implementation
I drafted a PR with my proposed implementation in #91

@abshierjoel can we close this issue now that https://github.com/uber-go/mock/pull/63 has landed?

Closing now that https://github.com/uber-go/mock/pull/63 has landed.

@r-hang apologies on the late reply -- I've been away this past week. Thank you much!


angry birds rebuilt

https://github.com/sarvagya230/angrybirds.git

Community Contribution
Link to live project, video, or image:

Sharing

[ ] I would be happy to have my project shared on The Coding Train's social media!

Instagram:
Twitter:

by sarvagya singh age 12


feat: added a graphql scheme to generate sample hooks

Proposed Changes

Got the scheme from hasura and saved it.
Added an allocator_allocation_result query as a sample.
Auto-generated hooks from the query.

Implementation

Got the scheme and ran codegen .

Remaining Task

[x] Specify the correct API HOST

⚠ NOTE
Because the GraphQL server did not correspond to CORS, I checked the operation after stopping CORS with Safari .

@k3nt0w
Thunk you for your PR.
Please remove backend pacakge, because we also don't need sample GraphQL endpoint?

@abyssparanoia
I was going to do that job in my next PR. What should be done with this PR?

Ok


Adding cronjob script to pod for cron fixes #240

I've updated this PR to support specific run times

Added more documentation on the cron job to readme

I merged this and set dev to be
RUN_AT_TIMES=12:00,14:00,16:00,18:00,20:00
CRONTAB_SCHEDULE=0 12-20 * * *
This should enable us to test it a few hours running through the day before moving to prod pod with more limited runs.


Add tataku game

Sorry about the gif filesize, let me know if I should compress it further

Thanks for the tip, shrunk it down to 2.6MB

Tnx for the PR!


payment offering

Describe the feature you'd like

If a person does not have enough pure, check his inventory for items that the bot is buying and offer to pay using these items.
For example: MvM ticket or backpack expander,
craft weapons to pay 0.05 ref / or instead of Scrap (when using craft weapons pricelist)
Maybe using white-list of items to offer

I don't see why this should be a thing. I feel like this would almost never be used.

I don't see why this should be a thing. I feel like this would almost never be used.

If a person does not have enough pure or to construct offers with 0.05 ref

This would add like 1 trade to every 1k trades. Personally It's not worth the time it takes.

This would add like 1 trade to every 1k trades. Personally It's not worth the time it takes.

there are more than 1 / 1k of such unfinished trades + this will speed up the replenishment of the stock of items that the bot is buying, it will be as an automatic advertisement

Indeed there are more but not everyone of those "unfinished" trades will want to offer that or even has those kinds of items. Like I said it's not worth the time it takes to code this.

Indeed there are more but not everyone of those "unfinished" trades will want to offer that or even has those kinds of items. Like I said it's not worth the time it takes to code this.

ok, sorry for wasting time


Modify release workflow for github actions

Summary

Created a mechanism to update path version to Minor version.

Detail

Create a branch from the tag of the original minor version to be updated.
ex: scalardl-3.2.1 to scalardl-3.2.2

git checkout -b prepare-release-v3.2.2  refs/tags/scalardl-3.2.1

Update Chart.yaml and values.yaml and execute ./scripts/update-chart-docs.sh

Chart.yaml

   version: 3.2.2
   appVersion: 3.2.2

values.yaml

   version: 3.2.2

git push

@feeblefakie
It is possible to use the release flow described in the description, but please check if the flow here is acceptable.

Create a branch from the tag of the original minor version to be updated.
ex: scalardl-3.2.1 to scalardl-3.2.2

git checkout -b prepare-release-v3.2.2  refs/tags/scalardl-3.2.1

Update Chart.yaml and values.yaml and execute ./scripts/update-chart-docs.sh

Chart.yaml

   version: 3.2.2
   appVersion: 3.2.2

values.yaml

   version: 3.2.2

git push


Update GeofenceEditMap.js

I converted the class component in my wished last edit, to a function component, so the edits are easy to see now
I hope it works

The description is not very clear to me. Can you please properly explain all the changes in this PR and why we need them.

the first class, is to allow adding a button in the draw control (the button I added is the circle Mode) Second: I have implemented a circle custom mode in my draw modes, and trigger the button to change the mode.
Later I will add map.on(draw.create, .. draw.update and draw.delete to handle all draw updates then from the data we will create the layers in GeofenceMap.js
Please if you can test.

Honestly, the formatting is not up to standard. Please fix before we can have a discussion. Also, why do we need a circle?

Circle is the most commun geofence, and it should be added at first
easy to draw , and can trigger approximities of devices

Outdated.


Need to append to list of LDD_BINARIES not replace it

Fixes bug in my previous merge request, sorry about that!

Can one of the admins verify this patch?

Second fix for #353

Sorry I should have noticed it. Thanks for the fix @kincl !
LGTM


Settings returns "SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data"

Environment
Windows build number: Version 10.0.19041.508
Windows Terminal version :1.3.2651.0
Any other software?
Firefox 81  (default file association with json)
Steps to reproduce
Install 1.3.2651.0, from Microsoft Store.  Launch, and click Settings.
Expected behavior
Display of the default auto-generated settings.json file.
Actual behavior
Firefox displays:
in JSON tab: SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
in Raw Data tab, the ordinary default settings.json file appears
Screenshots:

Note: deleting the settings.json file causes terminal to regenerate the unparsable json file

The settings file format isn't pure JSON - it's a superset of JSON that allows for comments. Since Firefox is expecting the content to be pure JSON, it identifies the comment on the first line as a syntax error.

Thanks.  I'll killed the comments by editing it in vim, and it works.

Sorry -- I meant to click the text box (not "Close", though that's coming)
Firefox isn't really a suitable JSON editor -- what're you trying to do with it?
If it's your default association for JSON files, that's going to pose a problem for actually editing them! :smile:

I didn't explicitly choose Firefox as the association for json.  I'm not
sure how it got set that way.  I've fixed it to be associated with vim,
which does a good job, even though it flags //comments.  At least it lets
me write comments, and save json files that work.
Thanks for finding a weird one.
On Thu, Sep 24, 2020 at 6:06 PM Dustin L. Howett<EMAIL_ADDRESS>wrote:

Sorry -- I meant to click the text box (not "Close", though that's coming)
Firefox isn't really a suitable JSON editor -- what're you trying to do
with it?
If it's your default association for JSON files, that's going to pose a
problem for actually editing them! 😄
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/terminal/issues/7716#issuecomment-698665219,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABIJIJBUQ4MAWXPID4B3OYDSHPUKPANCNFSM4RXWM5IQ
.

--
Stephen Morris
http://VintagePinot.com

I'm quite surprised about that! We'll hopefully address this better with #1564 (the settings UI)... :smile: Some day soon . . .
I'll close this one out as question/answered for now. Thanks for flagging us down!


Cache can become stale

🐛 Bug Report
Jest sometimes works from a stale cache.
To Reproduce
git checkout master
run jest
git checkout mybranch
run jest
Steps to reproduce the behavior:
Expected behavior
jest properly recompiles code if source changed. Either by source edits or by git
Link to repl or repo (highly encouraged)
envinfo
System:
OS: macOS Mojave 10.14.6
CPU: (4) x64 Intel(R) Core(TM) i7-7660U CPU @ 2.50GHz
Binaries:
Node: 13.12.0 - /usr/local/bin/node
Yarn: 1.22.4 - /usr/local/bin/yarn
npm: 6.14.4 - /usr/local/bin/npm
npmPackages:
jest: ^25.1.0 => 25.2.6

I'm seeing evidence of this on some of our development boxes as well. The repro case reflects the net results of what I was doing:
-delete "node_modules" folder from project
-run jest in the project.
-jest fails as expected.
-have the tools regen the node_modules folder (rush+pnpm)
Expected: jest tests should run
Actual :
-Jest tests fail
-Deleting the .jest-cache folder and re-running the tests works.
It appears that the cache invalidation isn't invalidating the cache as often as it should when dependencies change.


fix: public did mediator routing keys as did keys

This PR fixes an issue @reflectivedevelopment found while using the recent changes made to support routing keys associated with public DID endpoints.
Without this fix, when creating a public DID OOB invitation, creation will fail due to no DIDComm service being found. This stemmed from PyDID expecting that routing keys be expressed strictly as DID URLs. Previously, we were resolving the routing keys as raw base58 encoded public keys. This PR makes it so that routing keys are resolved as did:key url values (if already did:key, simply pass through the values but if not, transform into did:key urls).
Credit to @cjhowland for doing most of the digging on this issue :slightly_smiling_face:

@cjhowland and I need to add unit tests to this PR ensuring we've got coverage of the added lines.
We also need to ensure that if the resolved routing key value is a did:key but not a did:key URL that we perform an appropriate transformation.

Codecov Report

Merging #1977 (1652c0c) into main (709a1d4) will decrease coverage by 0.00%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #1977      +/-   ##
==========================================
- Coverage   93.55%   93.55%   -0.01%
==========================================
  Files         539      539
  Lines       34526    34541      +15
==========================================
+ Hits        32300    32314      +14
- Misses       2226     2227       +1

Is this finished testing?

@andrewwhitehead yes, this is ready for review


Proposal: Typed Macros

As powerful as Boo's macro system is, it has one very notable limitation:  it runs before type binding takes place, which makes it extremely cumbersome to try to write macro code that needs to be aware of types for whatever reason.
It would be nice to add a mechanism for type-aware macros.  This is simply a proposal at the moment, for discussion purposes, but here's an initial outline:

Add a new TypemacroMacro which descends from MacroMacro and does exactly the same thing as MacroMacro, except that the generated macro class is tagged with an attribute, virtual method, or other way of marking it as a typed macro.
When the MacroExpander encounters a macro, it first checks to see if it's a typed macro, and if so, it leaves it alone.
Processing continues.  Nodes get bound to types.
Add a second MacroExpander pass after type inference.  This one unconditionally expands all macros, and runs CodeReifier over the result.  At this point, type information is available, which makes writing certain types of macros much, much easier.

Implementing and testing this would be a non-trivial undertaking, so any thoughts on the subject would be welcomed.

One obvious optimization: On MacroExpander's first pass, set a static property to true if it finds a typed macro.  On the second pass, check this property, and if it's false, the entire pass can be skipped.  This means we don't get the additional overhead of a new compiler pass unless it's actually being used.

One area where this might cause bad problems with is in code such as the one you suggested to me with a problem:
macro dependentMacro:
   var myModule = FindMyModule(CompileUnit)
   var checker = MacroSearcher()
   myModule.Accept(checker)
   return dependentMacro if checker.ContainsMacros
   //perform your logic here

class MacroSearcher(DepthFirstVisitor):
   property ContainsMacros as bool

   override def OnMacroStatement(node as MacroStatement):
      ContainsMacros = true

Basically, the addition of typed macros could cause an infinite loop for macros that try to run in a certain order.. Maybe we should also come up with a better solution to somehow control the order of macro expansion.

After thinking about it. I think perhaps that a better solution is to create some kind of "FutureTypeReference" in the cases where the type is inferred for type references. This would obviously change the structure a bit of the compiler, since any code with 'FutureTypeReference's would have to be error checked after type inference stage, but that would basically solve whatever a typed macro would solve without having to make a distinguishing of the macros. I also think it would be pretty easy to work with probably?

A hypothetical FutureTypeReference would solve the case where you need to create a declaration for a type that hasn't been inferred yet, but there are plenty of other interesting use cases that it would not help with.  For example, having your macro treat code differently depending on the inferred type of an expression inside the macro body.  For that, the macro actually needs access to the types.

True, you're right. I guess both would be good improvements!


Fix the RTL-rule for the editorHighlightShowAll button, such that it works outside of the Firefox PDF Viewer

These CSS rules were imported straight from mozilla-central, and contains a property that causes the RTL-rule to be skipped everywhere else (even when using the development viewer in Firefox).

/botio-linux preview


Add icons variants for required resolutions

Example apps are showing warnings about missing icon sizes.
I've upscaled the existing iPhone icon and added the required variants. All example apps are now building without warnings.
The Asset file could probably be extracted in a Resources folder and shared among projects to simplify maintenance if needed.

Ok, it seems as good as it can be without centralizing resources or using lossy compression.
The PR adds 200kB in total to the repository to remove build warnings for example apps.


Add parse-examples script

Similar to the other tree-sitter language grammars, this introduces a small script to parse examples and print coverage stats.

It looks like we need to do something different on windows CI since parse-examples is a bash script. For some other repos, I think we have a separate windows-ci task or something.


Dashboard

Is the Dashboard Enabled, or only the home.html as working file?

The dashboard is enabled.


Get intersection of two mcap files, output differences and/or common messages in multiple new mcaps

Feed in 2 mcaps (and later perhaps any number >= 2, but with some limitations on outputs), output statistics and new mcap files show which messages were unique to which input mcap and which were in common.
Useful immediately for debugging which messages got dropped when one mcap/bag is played and another attempts to record everything.
Upload some example files with a few thousand messages covering 10 seconds or so.

The intended use case doesn't work, there's no way to make timestamps line up between publishing from a recording and receiving without a Header.

Make a test mcap that has n * 1000Hz on a single topic and a topic type that has a header, then make a test to publish that mcap and record from it, and do a intersection that only works for that type- there's no reason for that to be a rust node (except to get more practice at writing rust), just do it in python (and then it could work for any type with a Header).

Make an intersection that takes the hash of the message bytes- there will be a lot of same messages that are collapsed into one, but the intersection is still useful.


Update()

Big Update() is no good

That is an example, you don't actually have to use that.
On Wed, Nov 8, 2023 at 10:25 AM TUTTIK-FRUTTIK @.***>
wrote:

Big Update() is no good
—
Reply to this email directly, view it on GitHub
https://github.com/MarshmallowBoy/Mirror-Unity-Inventory-System/issues/1,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVJWXXOTVY5BUP2EZUDEHALYDPFCVAVCNFSM6AAAAAA7DKRMMCVHI2DSMVQWIX3LMV43ASLTON2WKOZRHE4DIMJXGIZTAOA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


refactor(icons): updated some icons in a non breaking way

updated some icons in a non breaking way
COMUI-2696

Draft change logic looks fine to me.


Apply workaround for importing images via css #135

Upstream changes in Next broke image support in css as mentioned in #135
I've applied the changes from the workaround found by @theshem from https://github.com/zeit/next.js/issues/11164#issuecomment-602005679
It seems to work, although I don't understand why.

The maintainer of next-images applied the same fix in their package: https://github.com/twopluszero/next-images/commit/211f6649d3af3257a83c5d16ccf4b46e096ae87c
I've tested this fork by updating my yarn.lock with it and re-running yarn:
        "next-optimized-images": "ssh://github.com/aantthony/next-optimized-images#2b52cf5e4f32cb7a0d9b8b57f17727ea230af092",

I then imported the same image in both JS and in my SCSS module. The one imported in JS does appear to get processed by next-optimized-images (in images folder, smaller file size) and the one imported in the SCSS module does not get processed by next-optimized-images (in media folder, larger file size):
So this definitely works as a workaround so importing images at least doesn't break (thanks @aantthony!) but it would be nice if there was a way to tell NextJS not to process images at all so we can just leave it up to next-optimized-images. They closed the original issue over there but I'll drop a note over there.

Would love to see this one land! We forked and are using this in production to fix

Thank you very much for all your inputs!
It is of course not optimal that images imported in CSS will no longer get processed by this plugin, but I'll release this as a temporary fix (in the next few hours) so it doesn't break any projects.
Once the quick fix is released, I'll try to find a solution so that images in CSS can get optimized again.

I just published the version 2.5.6 to npm which includes this fix.
Additionally, I added an if statement to only apply this fix for affected next.js versions (>= 9.2.0) so it doesn't break projects with older versions.
I would be happy if you can test the published version in your project and report back in case there are still some issues.
Thanks again for your contributions 👍

Thanks @cyrilwanner. The published version works for me 👍

So, I think that I was now able to overwrite the nextjs builtin image handling so next-optimized-images can optimize images that are imported within css/sass files again.
To avoid breaking anything else, I published a canary version first: 2.5.8-canary.0
It would be cool if you can test this version and check if all your cases work before I publish the fix under the latest tag. Thank you already 👍

Yep, it works. I checked an SVG file that was referenced via SCSS and confirmed it was indeed optimised.
Thanks 👍


don't break if null user

Coverage decreased (-0.01%) to 74.768% when pulling 55b8760eea09eac20d233d33c7f3ebc003b29889 on fixExpense into 0030a607d7775e4965011e40acdfea28e3047161 on master.

required for https://github.com/opencollective/frontend/pull/235


Issues when using printf

when using printf after calling term_write() i get no further output to the screen. same if term_write() is not used in the function at all but its just a blank screen and a cursor.
for example
void main(){

//assuming proper setup done above

printf(arg, arg);

term_write(arg, arg);

printf(arg, arg);
}

will give me the output of the first printf call and the term_write() call but not the second printf.
is this by design, a bug or me missing something?
any help or insight would be appreciated @V01D-NULL or @ilobilo

i should note that using term_raw_putchar() rather then term_putchar() seems to work right it albeit with the obvious lack of formatting

Your printf function is probably broken.
Either that or your memory allocator for the setup.
I'd need to see a way to repro.

yeah i was thinking it might be that i didn't use memset after allocation (mostly on the advice of the guy who helped make my paging etc code) so i'm going to see if that fixes it
https://github.com/343GuiltySpark-04/VoyagerOS64/tree/terminal_troubleshoot

i'm just not sure what to put as the target for the memset call i.e
memset(target, 0, size);
just don't know what target should be

here as an example

additionally here's the printf lib im using
https://github.com/mpaland/printf

i'm just not sure what to put as the target for the memset call i.e
memset(target, 0, size);
just don't know what target should be

Uh.... It's in the Readme my guy.
void*

i meant for the call in void *allocmem(size)

because the comments for that say

memset() to zero
which i never did so im wondering what the target param is for it as i think that might be the cause of my problem

target param?
Well you obviously want to zero out the allocated memory lol

And that's not your problem, this is: https://github.com/343GuiltySpark-04/VoyagerOS64/blob/terminal_troubleshoot/src/putchar.c#L26
Can't use the terminal to write characters if you don't call any functions for that to happen

target param? Well you obviously want to zero out the allocated memory lol

exactly but memset takes three args i know the second has to be 0 and the third size but i don't know what to put for the first one

Lmao dude think about it/
void *memset(void *dest, int ch, size_t n)
We know what ch and n are for.
dest is the start of the memory range we want to set to ch
What does alloc_mem return?
memory.
What's your first parameter for memset...?

so something like
memset(malloc(size), 0, size);
?

You need to learn C my guy. Obviously you shouldn't do that, how else are you gonna return the memory you allocated and zeroed out?
Store it in a variable, memset it and return it.

was my first thought but didn't think it would work. i'll let you know if it resolves the issue though

no change unfortunely

I already told you what the issue is here

And that's not your problem, this is: https://github.com/343GuiltySpark-04/VoyagerOS64/blob/terminal_troubleshoot/src/putchar.c#L26
Can't use the terminal to write characters if you don't call any functions for that to happen

I had that commented out while testing the interrupts, but yes when it was uncommented it was having the aforementioned problems. my bad

I suggest you step through it with a debugger.
Figure out what it's doing.

yeah i'm planning on that in the morning, any pointers (no pun intended) on what values i should keep a close eye on?

term_t.
You should also just move terminal initialization into your terminal source file

ah i see the issue, for some reason term_backend is defaulting back to NOT_READY

could GCC be thinking the object is no longer used and optimizing it out possibly?

hmm or not, it seems that it remains ready.

Well... whatever it is, it's most likely not the terminal.
So unless you have any proof that it's caused by this port, I will close this issue in a few hours.

I forgor to close it 💀


Calorieking Gone?

I don't really look at the calorie king stuff but I happened to click on it and it's been giving a 502 error for a few days

Hopefully temporary,  will you update here if you see it come back @pdxvr.  I don't want to assume it's dead for good unless I have to.

It's back