Enable disable GA

Docs Build status updates of commit 2ef263f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.vscode/settings.json
:white_check_mark:Succeeded

docs/design/disable-add-in-commands.md
:white_check_mark:Succeeded
View

docs/reference/requirement-sets/ribbon-api-requirement-sets.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

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

File
Status
Preview URL
Details

:x:Error

Details

[Error-PullRequestMergeConflict] Cannot sync git repo to specified state. Please make sure the pull request is mergeable.

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

Docs Build status updates of commit 9e2a7a7:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/design/disable-add-in-commands.md
:white_check_mark:Succeeded
View

docs/reference/requirement-sets/ribbon-api-requirement-sets.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Fresh install of 2.0.15 seems to loop forever

Problem
I experienced a strange problem when installing 2.0.15 from scratch on a brand new server. The validator was stuck in an endless loop - but never really errored out or panicked.
This same behavior was described by several others on Discord.
This was the first report that I found: https://discord.com/channels/428295358100013066/560174212967432193/1304527333352407222
I later experienced the same confusing loop
[2024-11-09T03:47:07.285447759Z INFO  solana_accounts_db::read_only_accounts_cache] AccountsReadCacheEvictor has stopped
[2024-11-09T03:47:07.285433379Z INFO  solana_accounts_db::accounts_db] Background account hasher is stopping because: receiving on an empty and disconnected channel
[2024-11-09T03:47:07.285553879Z INFO  solana_accounts_db::accounts_db] Background account hasher has stopped
[2024-11-09T03:47:19.670320358Z WARN  solana_perf] CUDA is disabled
[2024-11-09T03:47:19.670372128Z INFO  solana_perf] AVX detected
[2024-11-09T03:47:19.670376008Z INFO  solana_perf] AVX2 detected

Proposed Solution
It seems if you downgrade to 1.18.26, fetch a snapshot, and catch up, THEN you can easily upgrade to 2.0.15 and restart.
I don't know why, but that worked for others and worked for me.

I'm trying to reproduce this. I built v2.0.15 and started up a node from scratch. It downloaded snapshots and was able to load successfully. The node is currently catching up.
(Edit: Node has caught up successfully)
Can you share more information about the machine? OS/kernel, and if you built the binaries from source or downloaded them? If you have the full log from the run, can you upload it here too?

Strange. I'm not sure what happened.
Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-47-lowlatency x86_64)
Built from source
Log is too big. "25 MB are allowed, 55 MB were attempted to upload." I do have the log file though. Suggestions?

Compressed log: fucked.log.gz
Number of account storage files is 418991 - but that might not be helpful since the node has since been fixed and is running fine now.

Compressed log

Thanks. A few things I notice:

It looks like this is from multiple runs. That's fine, just noting.
It looks like there are missing logs. Are you by chance running with RUST_LOG=solana=info by chance? If yes, then all of the agave logs will be stripped out. I'd recommend either removing the RUST_LOG export entirely, or using RUST_LOG=agave=info,solana=info.

It's hard to diagnose what might be happening without seeing a panic message or knowing if there's any errors in the syslog.

Thanks for this. I had no idea I was missing logs. That makes a lot of sense!
I'll update my RUST_LOG with your suggestion. I think I'll close this because of the lack of information and lack of others experiencing the same thing and write it off as a fluke.


missing function

Thank you for sharing the code to this fascinating paper. I'm currently trying to test the analysis on my own EEG data, however in example_code.m there is a call to a function grid_communities on line 44 which doesn't appear to be a built in MATLAB function or included in the fcn folder.
Thanks for your help!
Best,
Matteo

I just realise grid_communities is from the brain connectivity toolbox!


Fixing Websockets compliance

According to RFC 7230, each HTTP header field must end with CRLF, and an additional CRLF is required after the last header-field

👍


Resilience4JCircuitBreaker not able to consistently interrupt Timelimiter tasks.

I'm using spring-cloud-circuitbreaker with Resilience4j, using Circuitbreaker, Timelimiter, ThreadpoolBukhead components of Resilience4j . Timelimiter is configured to timeout after 15 seconds on any of my requests. Requests correctly timeout after 15 seconds and a TimeoutException is thrown to the clients, but the thread processing the backend response continues running and waits until it gets back a response from the backend.
Versions being used:
Spring: 6.2.1
Spring Boot: 3.4.0
Spring Cloud Dependencies: 2024.0.0
Spring Cloud CircuitBreaker: 3.2.0
Resilience4j: 2.2.0
TimeLimiter config being used in application.yaml:
resilience4j.timelimiter:
configs:
default:
timeoutDuration: 16s
cancelRunningFuture: true
metrics:
enabled: true
Note: I'm not using annotations to use the Circuitbreaker or the Timelimiter, my application code makes the calls directly.
Debugging info:
I debugged the code in Resilience4JCircuitBreaker and TimeLimiterImpl. It looks like "FutureTask" associated with the Timelimiter is correctly being set to to be interrupted but its not being honored. I' not sure if the issue is in Resiliece4j Timelimiter module or  Sping CLouds Resilience4JCircuitBreaker.
Thanks,
GatewayNovice

We have a test that specifically tests this
https://github.com/spring-cloud/spring-cloud-circuitbreaker/blob/main/spring-cloud-circuitbreaker-resilience4j/src/test/java/org/springframework/cloud/circuitbreaker/resilience4j/Resilience4JBulkheadAndTimeLimiterIntegrationTest.java#L77
Can you identify a difference between your code and the test?

Thanks Ryan for the response. That test makes sense to me. What I'm observing in my testing is that the thread is marked interrupted but continues to run.  It's inconsistent behavior though.
Here is the code below TimelimiterImpl does get called which marks the thread as Interrupted, but the thread continues to wait for the backend response. Main concern here is with capacity, if the thread does not get freed up it wont be freed up to handle other requests.
https://github.com/resilience4j/resilience4j/blob/master/resilience4j-timelimiter/src/main/java/io/github/resilience4j/timelimiter/internal/TimeLimiterImpl.java#L54


an error message occur befor a quest

Describe the bug
when there have a quest, it will appear an error message and will make a lag if you use many mods,but if just vanilla it only have a little affect with performence
To Reproduce
Steps to reproduce the behavior:

make a quest in devmenu of just wait game give one
See error

Error Log
https://gist.github.com/136068448/913084b3f2ee8a2cedc0c33a33628564

Please try to reproduce this issue with the newest version of RT. if the errors persist, re open this issue


[New Function]Let kvstore and kvstore_dist support partial weight update.

I have finished the code which is based on mxnet_0.8.0. My new distribution training system can do partial weight update now!
see #6421
see the repository: https://github.com/starimpact/mxnet_v0.8.0/tree/bProxy_Weight

This issue is closed due to lack of activity in the last 90 days. Feel free to reopen if this is still an active issue. Thanks!


Support for multivalue rdn is broken

OpenSSL client supports multivalue rdn only in the last RDN component of the DN.
e.g.
/DC=org/DC=OpenSSL/DC=DEV/UID=123456+CN=John Doe works while
/DC=org/DC=OpenSSL/DC=DEV+O=users/CN=John Doe does not.
$openssl req -new -multivalue-rdn -subj "/DC=org/DC=OpenSSL/DC=DEV/UID=123456+CN=John Doe" -sha256 -key rdntest.key -out test.csr
$openssl req -noout -text -in test.csr Certificate Request:     Data:         Version: 0 (0x0)         Subject: DC=org, DC=OpenSSL, DC=DEV, CN=John Doe/UID=123456         Subject Public Key Info:             Public Key Algorithm: rsaEncryption
And
$openssl req -new -multivalue-rdn -subj "/DC=org/DC=OpenSSL/DC=DEV+O=users/CN=John Doe" -sha256 -key rdntest.key -out test.csr
$openssl req -noout -text -in test.csr Certificate Request:     Data:         Version: 0 (0x0)         Subject: DC=org, DC=OpenSSL, O=users, DC=DEV, CN=John Doe         Subject Public Key Info:
Later is simply treated as another RDN and not as multivalued RDN.
This should be fixed as this break LDAP integration with Certificates.

What version are you using?  When I try against the latest master, I get a "no distinguished name" error.  What seems to agree with your issue: the request DN isn't parsed properly.
At any rate, multi-value RDN's are not a high priority for the team.  If you need this fixed, you might have to do it yourself and create a pull request.

My version: LibreSSL 2.2.7
I'll try to fork and submit pull. Will it be okay to add dependency on Mozilla C LDAP SDK? It has an RFC 2253 compliant DN parser.

Hmmm, I Just tried the same thing with the Debian installed OpenSSL 1.1.0g, and it seems to register the multivalue RDN:
: ; openssl req -new -multivalue-rdn -subj "/DC=org/DC=OpenSSL/DC=DEV/UID=123456+CN=John Doe" -sha256 -key rdntest.key -out test.csr
: ; openssl req -noout -subject -in test.csr
subject=DC = org, DC = OpenSSL, DC = DEV, CN = John Doe + UID = 123456
: ; openssl req -noout -subject -in test.csr -nameopt multiline
subject=
    domainComponent           = org
    domainComponent           = OpenSSL
    domainComponent           = DEV
    commonName                = John Doe + userId                    = 123456

: ; openssl req -new -multivalue-rdn -subj "/DC=org/DC=OpenSSL/DC=DEV+O=users/CN=John Doe" -sha256 -key rdntest.key -out test.csr
: ; openssl req -noout -subject -in test.csr
subject=DC = org, DC = OpenSSL, O = users + DC = DEV, CN = John Doe
: ; openssl req -noout -subject -in test.csr -nameopt multiline
subject=
    domainComponent           = org
    domainComponent           = OpenSSL
    organizationName          = users + domainComponent           = DEV
    commonName                = John Doe

Tried the same with a freshly built checkout of master as well, got the exact same results.
It's possible that OpenSSL 1.0.2 has this fault.  Considering that's the point where LibreSSL forked, we might have it there too.  I'll check.
As for library dependencies, we try our best to keep them at a minimum.

Nope, 1.0.2 seems to work right as well...
: levitte@lapdog:~/gitwrk/openssl.net/official/1.0.2
: ; ./util/shlib_wrap.sh apps/openssl genrsa -out rdntest.key
Generating RSA private key, 2048 bit long modulus
............................................+++
.......................................+++
e is 65537 (0x10001)
: ; ./util/shlib_wrap.sh apps/openssl req -new -multivalue-rdn -subj "/DC=org/DC=OpenSSL/DC=DEV/UID=123456+CN=John Doe" -sha256 -key rdntest.key -out test.csr
: ; ./util/shlib_wrap.sh apps/openssl req -noout -subject -in test.csr -nameopt oneline
subject=DC = org, DC = OpenSSL, DC = DEV, CN = John Doe + UID = 123456
: ; ./util/shlib_wrap.sh apps/openssl req -new -multivalue-rdn -subj "/DC=org/DC=OpenSSL/DC=DEV+O=users/CN=John Doe" -sha256 -key rdntest.key -out test.csr
: ; ./util/shlib_wrap.sh apps/openssl req -noout -subject -in test.csr -nameopt oneline
subject=DC = org, DC = OpenSSL, O = users + DC = DEV, CN = John Doe

So I think you need to take this back to the LibreSSL folks...

I see issues even with 1.0.2.g:
$:~/certs/nodeagent$ openssl version
OpenSSL 1.0.2g  1 Mar 2016
$:~/certs/nodeagent$ openssl req -new -sha256 -key serverB.key -out serverB.csr -multivalue-rdn -subj "/DC=org/DC=OpenSSL/DC=DEV+O=users/CN=John Doe"
$:~/certs/nodeagent$ openssl req -in serverB.csr -noout -text
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: DC=org, DC=OpenSSL, O=users, DC=DEV, CN=John Doe
        Subject Public Key Info:


New version: Fedora.FedoraMediaWriter version 5.2.2

Pull request has been created with WinGet Releaser :rocket:
Microsoft Reviewers: Open in CodeFlow

Hi @grulja,
This PR is ready to merge, but needs a valid CLA agreement by the author. Once the CLA agrement is presented, it will be valid for all future PRs.

Hi @grulja,
This PR is ready to merge, but needs a valid CLA agreement by the author. Once the CLA agrement is presented, it will be valid for all future PRs.

Hi, I have contacted our legal (as I work for Red Hat) about this to find out what should I choose here. I will agree with the CLA as soon as I get response from them. Thank you.

@microsoft-github-policy-service agree company="Red Hat, Inc"


KeyDB development status

Hello,
Can please someone provide more information about KeyDB development status.

There are lot of reports about crashes
There a lot of reports about sync issues in Multi-Master configuration
Packages for Ubuntu 22.04 are missing since May of 2022
Redis is already v7 with a new RDB format which is incompatible with KeyDB v6
What is about Roadmap - What is on the Roadmap for the KeyDB Project?
There was a news in blog, May 11, 2022 - KeyDB (YC S20) Joins Snap.

Thank you!

Will be nice if they can go over the issue tracker and comment to the issues that were addressed in the coming release. As there are tons of commits.

KeyDB 6.2.2 is the only stable production ready version, as far as I know.
Can confirm: 6.3.1 inexplicably crashes with multi-master on. When ran as a systemd process, everything will appear green, when things are really red.

@msotheeswaran @JohnSully any news for new releases?

We are working on a release for this coming week, which will include debian 12 and ubuntu 22.04 packaging.
I will be working on further crash fixes after the release is out.
@JohnSully has been working on a new proxy server for KeyDB which he will be able to talk about soon along with a further roadmap
Tentative 6.3.2 Release notes:

Added new soft shutdown feature, can be enabled with config "soft-shutdown yes".
If soft shutdown is enabled, instead of shutting down right away, the server will wait until all clients have disconnected, and will reject all new connection attempts.
Fixed memory leak with tls certificates when tls allowlist is enabled
Fixed bug in rdb load with flash enabled to ensure all dbs are safe to load (previously only checked db[0])
Fixed race conditions in rdb load and replication
Fixed memory access of rdb file after it should have been deleted
Fixed integer overflow bug in flash(Issue #486)
Improve TLS latency by queueing new commands before executing instead of after
Removed O(n) count of memory usage from info command(replaced by O(1) estimate)
Improved latency of clearing large number of flash DBs(Thanks to Paul Chen for this fix)(Issue #516)
replaced sprintf with snprintf to avoid potential security bugs
Fixed bug where a failed move due to key already existing in move target would result in the key being removed from move source(Thanks to Paul Chen for this fix)(Issue #497)
Fixed usage of deprecated OpenSSL api in OpenSSL v>3.0.1(Issue #392)
Other fixed issues: #480 #477 #454 #452

The development seems to be halted again. At least that my outside observation as someone who is interested in KeyDB.
Last release was over a year ago. Last news on the website was over a year ago.

https://valkey.io/about

Valkey is an open source continuation of Redis, created in March 2024 following Redis's shift to a non-open source license. This initiative was led by Madelyn Olson, a notable figure in the Redis community and a former core maintainer at AWS, along with other contributors who sought to preserve the original open source ethos of Redis. The transition garnered substantial backing from leading tech corporations including AWS, Google, Oracle, Ericsson, and Snap, with the Linux Foundation stepping in to provide a stable platform for this new direction. Amidst the landscape of Redis alternatives, Valkey stands out with strong support from cloud services providers, positioning it as a promising solution for future open source database needs.

It miss some KeyDB features, but do we have now any other alternatives?


Develop to Master Merge

Native Client portion of Develop->Master Merge
Several major changes have been done during this time period including: pipe infrastructure, dup/dup2 changes, some fork modifications, and some general fixes.
Let's make sure our comments are especially clear here.

I think this branch is good to go after the fixes I pushed.


feat: logs processing speed increased

:tada: This PR is included in version 2.1.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Update readme.md

I missed the trailing underscore under "Cool things built with immer"

Coverage remained the same at 93.28% when pulling 864b049066032ae791d1509dba7ce67dc82a55a0 on neurosnap:patch-2 into c018c4974ab39c663bca14e6b4247152aaca60da on mweststrate:master.


Forked borsh crate needs to rebase onto v0.8.1

Hi! I'm an engineer from solana. :)
To make long story short, could you update your forked borsh crate to be rebased onto borsh-rs v0.8.1?
We noticed updating serde to v1.0.122 at the solana monorepo would break serum-dex build: https://buildkite.com/solana-labs/solana/builds/38795#a018ae71-7d4c-4dc2-a9a9-fab840bcd3ef/1360-1834. Don't worry. We won't do that soon. This is just maintenance update at our side. :)
If there is better way for you like bumping solana-program and/or spl, please let us know.
Details
Well, there are various crates involved.
Firstly, solana-program crates use serde. And serde v1.0.122 now depends on syn >= v1.0.60 specifically and it broke build of borsh-rs < v0.8.0: https://github.com/near/borsh-rs/issues/2 (this pr should be in borsh-rs v0.8.0)
Then, serum-dex uses both solana-program and borsh-rs, which would be unable to build with conflicting versions.
https://github.com/project-serum/serum-dex/blob/d47058600c3ba8ffe83669ebca1e50c49f780dc5/pool/Cargo.toml#L20
https://github.com/project-serum/serum-dex/blob/d47058600c3ba8ffe83669ebca1e50c49f780dc5/Cargo.lock#L238-L275
These changes seems to be introduced by this pr: https://github.com/project-serum/serum-dex/pull/51
Also, it seems that you're also pinning syn at forked branch:
https://github.com/project-serum/borsh/blob/90fcdf51f4c0333002a00a2db7367cc672882dc5/borsh-rs/borsh-derive-internal/Cargo.toml#L17
by this commit https://github.com/project-serum/borsh/pull/1/commits/884c56711c732d172f5d65374feff1fb796d4841
It may become unnecessary?
Also, updated borsh-rs isn't pinning syn it seems: https://github.com/near/borsh-rs/blob/3dddc6d7af2e66bf4f5947c0187a9d1f7dae6888/borsh-schema-derive-internal/Cargo.toml#L16
So, I'm thinking you can just update borsh-rs to v0.8.1, considering it's not pinning syn version: https://crates.io/crates/borsh-derive-internal/0.8.1
(A bit odd thing is that it seems spl succeeded to build with syn v1.0.60 and it seems pinning syn isn't working in your repository for some reason...)
CC: @armaniferrante (mentioning based on relevant commit's author info, nice to meet you!), @mvines (my dependable rust dependency-hell solving expert.)

@ryoqun I've updated our borsh fork. If there's any other issues, let me know.

@ryoqun I've updated our borsh fork. If there's any other issues, let me know.

@armaniferrante Thanks for updating. :) Yeah, this fixed the build failure: https://buildkite.com/solana-labs/solana/builds/39724#4ff4ad78-e425-4e79-8e03-3467705a5708/1403


Today's iOS release, 1.3, cannot create new keys

I just installed 1.3 on my iPhone SE 2, and cannot create either an Enclave key or a plaintext key. Either option appears to do nothing.
E: Scratch that, it appears that 1.3 is not displaying any keys that I previously created on my Mac mini, either.

I made a mistake while spicing up the UI, can you test the new version, it should include the fix (I also messed up Hosts in the same change, oops).

Ah, neat. Figured it was something to do with changing and accidentally breaking a listing control of some sort. I should follow the source updates too.


Sample Blog Index Page

Requirements:

[ ] Support pagination (example)
[ ] category/tags/authors on single
[ ] category/tags/authors on index

@ccorda Since #35 was merged, can we close this one?

Yes @kylehotchkiss good here, thank you.


Next update critters

What kind of change does this PR introduce?
Updates critters
Did you add tests for your changes?

Does this PR introduce a breaking change?
Testing this with the preact site.
Other information

travis, you still alive?
https://github.com/developit/preact-cli/pull/696#pullrequestreview-191979194

Just noticed this PR - I did one but also applied a bit of configuration that should address the issues.

@hassanbazzi @ForsakenHarmony we can close this in-favour of https://github.com/developit/preact-cli/pull/738


Array.Copy() throws when asked to copy int[,] to Object[,] or vice-versa.

These work for SZArrays.
On CoreCLR, they also apparently work for multidim arrays. But not on CoreRT.

https://github.com/dotnet/corert/pull/3400


Replace Octocat with :snake: spinner

Same as https://github.com/atom/one-dark-ui/pull/88.
This will add more contrast than the white Octocat gif.

Github really needs a like button for this kind of stuff. :heart:


How to implement it on laravel

Hi, your package fit perfectly my needs, but i'm struggling to implement it.
I did install it with npm but how to require it with laravel mix, because chrome says ClassicEditor is not defined.

Hi. Just add this build as a script in your webpack.mix.js file:
mix.scripts([
  'node_modules/ckeditor5-build-laravel-image/build/ckeditor.js',
], 'public/js/vendors.js');

Remember to refer this generated file in your documents:
<script src="js/vendors.js></script>

Also, I added this info in the readme

Thank you so much for you help. i updated my webpack and work like a charm


Database start

Finally got this bad boi cookin, hope we can deploy

Looks good to me, Wonderful Job! Heres a gold star 🌟


Application Parameters

How does one use parameters for after .exe in the config file?
Tried a few variations of embedding in the main binpath string to no success.

currently the code assumes that the application.exe file dont have any parameters.
This feature will be avilable in the next release  soon.


add filter by metadata to annoy search

What

This is to add filter by metadata to annoy search with test.

Apologies for the slow review! Pr has a number of merge conflicts, happy to re-review if you'd like to resolve


Wiki page with “how to triage issues” instructions

It is unclear how to triage issues that have the label "triage needed" in the web repo. It would be a nice to have clear set of instructions on the wiki so future triagers can follow that to correctly triage issues.

What kind of instructions are you thinking of? Right now we just assign the issue based on what team's scope it falls under. Team scopes are described on the projects page. There's a fair amount of ambiguity though, which gets handled by Sean (who currently does the triage) making a judgement call

Actually I think it's still worth having instructions so that this triage process can be spread out among multiple folks. It's fine if that list of instructions is short; we can link to it in the issue label's description on the labels page.
The instructions are indeed to just add the issue to a "project" based on what team's scope it falls under. I think the important part is perhaps to use that page for chronicling the ambiguous cases; personally when I do the triaging I feel it's pretty clear where things go but it would help me to know what other folks find ambiguous so I can add clarification to said page on an ongoing basis.

This was addressed by https://github.com/oppia/oppia-web-developer-docs/pull/51


404 not found -  ch1_getting_started

Hi, I'm following the instruction in chapter 2 - elasticsearch-in-action-second-edition but the script ch1_getting_started.txt It's not available in the repository. Could you update it?

It's called ch2_getting_started.txt.
https://github.com/madhusudhankonda/elasticsearch-in-action/blob/main/kibana_scripts/ch2_getting_started.txt


Add Vending Item Model

id: int
name: string
description: string

To be or not to be!:)
I will try!


HD Fix not working anymore

Hey, i was really enjoying the MGSHDFix on Nov 19th when i discovered the crouch walking mod on Nexus Mods.
Sadly after working a week and not being able to play i found out that the MGSHDFix is not working anymore for some reason.
It is not skipping the intros and not applying any resolution i give it.
Is this already known?
Im currently trying to revert to a Steam version from Nov 14th to try and see if this version fixes the problems i am currently facing, though Steam Depot downloading is pretty slow and after 6 hours i have downloaded 4,3GB/9,7GB...
I would love to see a fix for this.
I can also supply the .log file which is created after starting the game.

As far as I can tell it still works fine on the latest version on Steam (1.3.0). Can you post the log file?

Sure!
It never skips the "Konami Presents" Snake Eater Intro for me and i can not use my Xbox Controller..
Tried several reinstalls, older versions none fixed the problem im facing.
You can find my .ini below and .log attached.
I ONLY installed HDFix for now since all the other mods worked for some reason...
MGSHDFix.log
.ini: (Only the settings i changed)
Width = 3840
Height = 2160
Borderless = true
SkipLauncher = true
CtrlType = XBOX
Language = EN
Region = EU
I have also not updated any drivers on my system.
Im using the following hardware:
Ryzen 7 5800x3D
64GB DDR4
RTX 4080

Hmm that's odd. Your log looks good, as if everything is working fine.
So to confirm, you're getting the typical logos still like Konami and Bluepoint? You also mentioned your controller not working, does that mean it's actually not registering input or is it that the icon override isn't working?

When the Fix and all the other mods worked i booted up the game and was instantly into the MGS3 screen where i can press Start or Tab to get to the "Load Save" screen.
After leaving my PC off for the whole week and trying to play again (I did not see any updates for the game) it somehow "broke".
I now see the "Konami Presents" Snake Eater Song intro when i have "SkipLauncher = true" enabled, and when its disabled i see the red "Konami" Splash screen with Bluepoint ect..
The game seems to not register any input after i hit "Tab" to skip the Snake Eater intro song.
I see all the Icons, even tried to switch it to PS5 which also did not register any input, but changed the icons.
If you want i could probably make a private YouTube Video showing that i downloaded the game freshly and installed MGSHDFix with the .ini i changed for myself and that i get this problem.

I have created a Video showcasing my problem.
https://youtu.be/1GJeeebZExk
You can find the .log for this showcase attached.
MGSHDFix.log
I hope that we can find an error since i love the game and the mod is awesome!

Sorry for the late reply, I was waiting for the YouTube video to finish processing so I could read the text, then forgot about it!
I'm really not sure why it's not working for you. Watching the video you posted, it show it's all installed to the correct location, you've got a fresh install and it's generating complete log files which implies it is working fine.
My only guess could be that something is happening on game start-up that's causing issues. I saw it popup with AutoHDR in your video. I wouldn't think that would cause issues but are you able to try launching it with AutoHDR off? Apart from that I'm honestly really not sure what's causing your issue. I wish I had a better answer to give you.

Hey, thanks for the quick response!
No worries.
ill try it without HDR after work, might be the problem since i have not used HDR before where it worked, but i guess we will see..
Otherwise ill try a new Windows 11 installation and maybe fix it that way.

Judging by the video, everything seems to be working. The actual intro videos of MGS2 and 3 are not skipped. Only the launcher and logos. Correct me if I'm wrong😅.
MGS3 skips the intro the first time through until you start Operation snake eater (or select "I like MGS3" on startup).
I suspect the above behavior is causing confusion 🙂 .

Are you sure?
Once i installed it the first time i never got the „Snake Eater“ Video playing since i was brought right into the CQC Animation Screen where i can Press a button to continue.
i will try it after work, will get back with some feedback.

OMG i am soooooo embarrassed....
It worked all the time but my Controller was connected to ym iPad hence why i was not able to use it.
Im so bloddy sorry for any inconviniences.... Sorry...
kimeikato was totally right!

No worries, glad to hear it's working for you now!


Clamped scaling to avoid negative values.

As  the value table can contain negative numbers, the scaling of the 'estimate' green bubble should be bounded to keep >=0.  This avoids having a broken bubble size for the 'estimated probability' representation when comparing to the 'true probability' bubble representation.
How to reproduce the bug: select initial settings (possible to de-activate optimism for faster bug appearance): after shrinking, the green bubble of the lower probability shelf will increase when negative reward is encountered.
See Issue #2 for more details.

Looks good to me. Thanks for making this PR, @NouFuS !


Added sudoku solver project

@gantavyamalviya @Adarsh-jaiss @TKirtan kindly review and merge the push request #399 under the Hacktoberfest tag


ZIndex tooltip

There is away to make tooltip in front of all component / element ?

I started using this component today and had similar issue as you're experiencing.
In my case in Material UI the Drawer component has a zIndex of 1200 which is higher to the zIndex 999 hardcoded in react-tooltip.
However you can overwrite this value using the "data-class" :
<MyComponent data-tip data-for={'tooltip'} data-class={classes.tooltip}> ... </MyComponent>
where classes.tooltip has zIndex set to '1500 !important'


Kubelet docker names should distinguish our helper container

We call our helper container "net" - what happens if a user provides a container called "net"?  We may need a different field or a way to make it clear which pods are user-provided and which are administrative

Fixed by #3817


fix(Popup): prevent unintentional content wrapping

Prevent unintentional Popup content wrapping to fix re-positioning on window resize.
Fixes #2072

Warnings

:warning:
There are no updates provided to CHANGELOG. Ensure there are no publicly visible changes introduced by this PR.

  Generated by :no_entry_sign: dangerJS

width: fit-content replaced by display: table which should do the same and be multiplatform.
Tested in Chrome, Edge, IE11

Fixed better in #2187


Signing 6 jar files in parallel using Jarsigner command in gradle task produces .sig file for few instead of .jar extention after signing

I am trying to sign the jar in dolast() of jar task  in parallel for 6 jars, some jars are produced with .sig extention instead of .jar extention
Expected Behavior
All the signed jars should be of extention .jar
Kindly let me know what changes should I do to get signed jar for all the modules when I run the task jar
Current Behavior

Context
I need to publish the jars to artifactory and thus require replacing the  jar.archivePath with the signed jar
I need the jar to be signed once created using the six java library from my android gradle task and publish the signed jars and poms to artifactory
Steps to Reproduce (for bugs)
jar << {
def keystoreFile = 'sample.keystore'
def keystorepass = 'password'
def keyalias = 'sample'
def exec_line = "jarsigner "+ " -keystore " + keystoreFile + " -storepass " +
keystorepass + " -keypass "+ keystorepass +" -verbose " + jar.archivePath +" "+ keyalias
print  exec_line
exec_line.execute()
}
Your Environment
Android 7.1
Six java library module
Produces sample.jar.sig file. But, my requirement is sample.jar file i.e. signed sample.jar file in the same jar.archivePath so that I can publish.

This portion of the user guide explains how to sign JARs other than the one created by the Java plugin. Did you have a look at that?

Yes l tried using the plugin but it produces a signature(.asc ) file along with unsigned jars.
But, the requirement is to sign all my 6 jars in the jar archives with the same extention (.jar ) and need to push those signed jars into artifactory along with its pom. Kindly suggest me if there are any alternate ways in which I can achieve this
Thanks in advance.

For the record: #1339 is a feature request for adding jarsigner support to Gradle.


Difference of block element handling in jsoup version 15.4 to previous version

Hi, we noticed a change in the parser behavior regarding newlines/whitespaces between inline/block elements when using Jsoup to create a document from html:
So here is a minimal testcase:
Input html:
<!DOCTYPE html>

A

B

Testcode:

Document document = Jsoup.parse(html);
String result = document.toString();

This is the result for < 15.4:
<!doctype html>

A

B

This is the result for 15.4:
<!doctype html>

A

B

So you see the difference is what's happening between the two p-tags. In previous versions, they would be collapsed and there would be a whitespace between them. Now that whitespace is removed. We noticed this change of behavior inside table cells, but there might be more places where this now happens.
Why do we think the previous behavior was better:
The additional whitespace between actual block-elements did not hurt. And as the Tag#isBlock method does not handle the display:inline styling, it can't be sure this really is a block element and it would be better to let the browser handle it.
The normal browser behavior is, if there are two block-elements after another, the browser will put these in new lines. No matter if there is no whitespace, a single whitespace or a linebreak between them in the raw html.
If there are two inline-elements, the browser will put them in the same line, no difference if there is a whitespace between them or a linebreak. But it does make a difference if there is no whitespace at all between them, because then it will not add a single whitespace, it will print the text in the spans directly next to each other.
So if one pastes the resulting html from above in to a html file and opens it in the browser, there is a difference, because the browser now sees two inline elements without a whitespace or linebreak between them and prints them just like that, while behavior with the original html would be that there is a whitespace between them.
Original in browser:

Parsed with version <15.4:

Parsed with version 15.4:

Thanks for the detailed and clear report. I have fixed this by causing nested inlineable content elements (like TDs and Ps) to wrap.
The pretty-printer code now is unfortunately pretty gnarly. I think it will be useful to complete refactor the implementation to simplify it, and make the output more customisable.


improvementAdd tag property for workload group

Proposed changes
Add tag property for workload group, the workload groups within same tag 's hard limit sum value can not exceeds 100%.
User can group workload group by Resource tag.

run buildall

run buildall

run buildall


Is Option necessary with nullsafety?

Hi!
Sorry if this is a dumb question or if it belongs on SO.
Now that dart has sound null safety, we can be certain something is not null. The compiler (or whatever it is) is even smart enough to promote things to non-null after we check its not equal to null. Option's main selling point to me was requiring we handle the case where a value was possibly null but is there still a reason to use it now? Using Object? in place of Object is even a compilation error now.
Thanks!

Yes, it is. Option is not only a solution for null-safety. It has all the functorial/monadic properties that null-safety doesn't provide. However, if your only case for Option was for null-safety, you can simply not use it.

Yes, it is. Option is not only a solution for null-safety. It has all the functorial/monadic properties that null-safety doesn't provide. However, if your only case for Option was for null-safety, you can simply not use it.

Hi – not a dumb question at all!
Dart null safety is still in beta, but is expected to be available in a stable SDK soon-ish. Once that happens, null safety benefits similar to what is provided by Option will be supported natively in the language. ? specifies partiality in the type system just as well as Option does and carries less runtime and syntactic overhead. There will probably still be cases where combinators on Option, such as flatMap, Option.mapX and so on will produce subjectively prettier code, but all in all I expect the need for Option to be greatly reduced for the purposes of null safety.
Like @mateusfccp mentions, for programming in a pure functional style, Option still has relevance though.
It might be possible to simulate operations such as traverseOption and sequenceOption on IList<A?> etc using extension methods and make it possible to treat ? like an ersatz Option monad for practical purposes, but I will have to experiment a bit with it.

Hi – not a dumb question at all!
Dart null safety is still in beta, but is expected to be available in a stable SDK soon-ish. Once that happens, null safety benefits similar to what is provided by Option will be supported natively in the language. ? specifies partiality in the type system just as well as Option does and carries less runtime and syntactic overhead. There will probably still be cases where combinators on Option, such as flatMap, Option.mapX and so on will produce subjectively prettier code, but all in all I expect the need for Option to be greatly reduced for the purposes of null safety.
Like @mateusfccp mentions, for programming in a pure functional style, Option still has relevance though.
It might be possible to simulate operations such as traverseOption and sequenceOption on IList<A?> etc using extension methods and make it possible to treat ? like an ersatz Option monad for practical purposes, but I will have to experiment a bit with it.

Sounds good and thanks for the explanation.
Yeah, my first introduction to this library was through a prior colleague telling me to just use it to get rid of null's in our codebase so I had a somewhat limited POV. I still do like how nice the combinators look over alternative methods.
Thank you

Sounds good and thanks for the explanation.
Yeah, my first introduction to this library was through a prior colleague telling me to just use it to get rid of null's in our codebase so I had a somewhat limited POV. I still do like how nice the combinators look over alternative methods.
Thank you


[OSLogOptimization] Fix folding of symbolic closures to handle @in_guaranteed captures

Fix the symbolic-closure folding code to create new closures only when all captures of the symbolic closure, including address-typed captures, are symbolic constants. In all other cases, the closure must be an autoclosure passed to the log call and therefore it need not be duplicated
and can be reused as such.
This eliminates the need to copy the non-constant captured values of
closures. Instead the closure itself is copied as a whole.
Fixes rdar://problem/60344043
cc @meg-gupta

@swift-ci Please test and merge

@swift-ci Please smoke test Linux Platform

@swift-ci Please smoke test Linux Platform

@swift-ci Please smoke test Linux Platform


[Feature][Hardware][AMD] Enable level 3 compilation on rocm

This PR fixs the fusion pass not enabled on rocm by:

add fp8 dtype selection to the fusion pass, since rocm use torch.float8funz
use tensor slice operation to replace the torch.narrow op which creates extra ops in the IR generated by torch.compile and makes the rms+fp8_quant fusion #9138 not working.

Some updates:
I was trying to enable the unit test of the fusion pass on rocm. I found that with num_token < 17, we are still seeing the extra ops even with the slice operations which fail the test. I think this is because we are padding the input when num_token < 17 and this adds the extra slice_scatter and slice ops into the generated IR.
May I ask it is ok to disable the padding by default? Link

Minor correction: the max does get traced properly into a torch.sym_max(s0, 17) - but for some reason it isn't used so it gets optimized out during the autograd phase.

Could we simply remove the padding in the non-CUDA case? The reason why it is there is because of bad scaled_mm performance on CUDA

Ok if we want to keep the padding I think I have a solution for the fusion (but not for dynamic shape compilation). I can implement it tomorrow

For what it's worth, torch.narrow gets lowered to a slice operation anyway, so at least in the torch.compile regime there should be no difference with slicing.


How easy is it to add models?

I'm considering getting boards with ST7796 and ILI9485 displays.
I see here there's support for ST7789 and ILI9486. I think the difference is screen size/resolution but maybe there's more to it.
How simple would it be for me to add support for those displays based on the code available here?

Both these models are already in mipidsi and should work fine.

Both these models are already in mipidsi and should work fine.

Where, I can't fine them. Shouldn't there be a Builder with their codes at https://docs.rs/mipidsi/0.7.1/mipidsi/struct.Builder.html ?

Both these models are already in mipidsi and should work fine.

Where, I can't find them. Shouldn't there be a Builder with their codes at https://docs.rs/mipidsi/0.7.1/mipidsi/struct.Builder.html ?

https://github.com/almindor/mipidsi/blob/master/mipidsi/src/models/st7789.rs and https://github.com/almindor/mipidsi/blob/master/mipidsi/src/models/ili9486.rs
For builder you can use Builder::st7789(di)...

I am aware that 7789 and 9486 are available in mipidsi.
I'm looking for 7796 and 9485. Similar numbers but still different. Or  maybe they are fully compatible even though the resolution is different?

I am aware that 7789 and 9486 are available in mipidsi.
I'm looking for 7796 and 9485. Similar numbers but still different. Or maybe they are fully compatible even though the resolution is different?

Oh lol :facepalm:
Numbers are hard to read haha. Yes, they should  probably be very close, I'd check the framebuffer and display sizes and try using the existing models first. If they "just work" (tm) perhaps we can just make it into a doc entry.

Does the ILI9485 even exist? The only references to that chip I found were for one ESP32 based module, but no datasheet. Perhaps it was just a typo in a product listing or datasheet for that module. If it does indeed exist, the difference between the 9485 and 9486 might be similar to the difference between the 9341 and the 9342, where one is 320x240 and the other 240x320 pixels.
If you intend to use an off the shelf board that already contains a microcontroller and a display you also need to make sure that the display isn't connected via a RGB or DSI interface, which aren't supported by this crate. With these higher resolution displays you are more likely to encounter these interfaces and not only SPI and parallel.

ILI9485 exists, I've seen quite a few references to its existence other than on boards. The most technical one I found is https://github.com/Bodmer/TFT_eSPI/discussions/2336 which indeed mention parallel RGB interface.
As I explore for the right board for what I need I'm getting a bit confused. Maybe you can help.

Does driver (ILI9485/ST7796/etc.) define whether the interface is parallel or SPI?
RGB is parallel interface, right? In such cases is it the MCU that is doing the parallel or driver? And if the MCU - is there some RAM between the MCU and the display or does the MCU need to feed data to the display continuously as the display is scanning (so taking a chunk of the CPU capacity)?
I've seen reference for example to 8080 (parallel) interface on some boards and when I looked it up I saw it can work together with ILI9341 which supports SPI (serial) (https://www.displaymodule.com/blogs/knowledge/the-interface-of-8080), so in such case the MCU communicates SPI with the driver and the driver communicates parallel with the display?
Does parallel end up being faster than SPI for example? If it does, at what resolution it becomes meaningfully different?

Thanks!

The driver always "drives" the data, the MCU "provides" access to the interface, in our case it's always via the DisplayInterface crate/traits.

In case of parallel 8080 will I be able to use display-interface-parallel-gpio then?

If you intend to use an off the shelf board that already contains a microcontroller and a display you also need to make sure that the display isn't connected via a RGB or DSI interface, which aren't supported by this crate. With these higher resolution displays you are more likely to encounter these interfaces and not only SPI and parallel.

Is that because RGB is different than 8080 (though both are parallel) and the display-interface-parallel-gpio don't support RGB?
Specifically, this display seems interesting https://www.antratek.com/media/wysiwyg/pdf/WT32-SC01-Plus-V1.3-EN.pdf, use ST7796 using 8080 interface.
If my understanding is correct I just need to figure if 7796 can be added on the basis of this crate, and the display-interface-parallel-gpio will deal with the 8080 part, right?

ILI9485 exists, I've seen quite a few references to its existence other than on boards. The most technical one I found is Bodmer/TFT_eSPI#2336 which indeed mentions parallel RGB interface.

But this also references the same ESP32 board I mentioned in my comment.

Is that because RGB is different than 8080 (though both are parallel) and the display-interface-parallel-gpio don't support RGB? At least not yet (but probably could?)

Yes, RGB and 8080 are completely different and only 8080 is supported by this crate. The RGB interface is only carrying the pixel data, similar to a digital version of VGA with signals like VSYNC and HSYNC and the configuration is still done via SPI. Displays with RGB interface are typically driven by dedicated hardware in a µC, like the LTDC in STM32s or the LCD_CAM in ESP32s.

Specifically, this display seems interesting https://www.antratek.com/media/wysiwyg/pdf/WT32-SC01-Plus-V1.3-EN.pdf, use ST7796 using 8080 interface.
If my understanding is correct I just need to figure if 7796 can be added on the basis of this crate, and the display-interface-parallel-gpio will deal with the 8080 part, right?

That's correct, this should get you started, but the bit banging implementation in display-interface-parallel-gpio wouldn't be super fast. A custom display interface, which uses the LCD_CAM module in I8080 mode could be used to accelerate the communication to the display.

That's correct, this should get you started, but the bit banging implementation in display-interface-parallel-gpio wouldn't be super fast. A custom display interface, which uses the LCD_CAM module in I8080 mode could be used to accelerate the communication to the display.

Would it be slower than SPI or just slower than what I can expect from an even better interface/implementation?
From the name it sounds like LCD_CAM is for direct camera integration. Is that also for general use (my use would be UI framework that redraws the entire screen every cycle and does UI animations for gui components).

Would it be slower than SPI or just slower than what I can expect from an even better interface/implementation?

I don't know. But for a 16 bit bus the overhead of using the generic parallel display-interface is pretty high, because every bit needs to be set individually. This means that if setting a GPIO pin is faster than 1 cycle of the SPI clock the parallel interface should be faster.

From the name it sounds like LCD_CAM is for direct camera integration. Is that also for general use (my use would be UI framework that redraws the entire screen every cycle and does UI animations for gui components).

The LCD_CAM module can run in different modes and either reads from a camera or drives a display. The details are described in the ESP32 technical reference manual, but the TLDR is that you can point it to a buffer and it uses DMA to update the display via a i8080 interface or continuously scans out the image on a RGB interface.

The LCD_CAM module can run in different modes and either reads from a camera or drives a display. The details are described in the ESP32 technical reference manual, but the TLDR is that you can point it to a buffer and it uses DMA to update the display via a i8080 interface or continuously scans out the image on a RGB interface.

So basically, to use LCD_CAM I'd need to:

Setup memory space for the full screen buffer at a known address
Setup LCD_CAM with the proper memory address
Instead of my current code that bridge between the UI framework and mipidsi (this crate) to pass data to the display, I would need to simply write the data into the memory buffer and trigger the LCD_CAM to transfer the data using i8080 interface

Correct?

Correct?

That's roughly how it should work. But you'll still need to initialize the display before you let the LCD_CAM handle the display update. You can use the mipidsi crate and display-interface-parallel-gpio for the init and switch to LCD_CAM after the display has been inizialized.

Just doing some housekeeping on issues, how are we here, do you plan to continue work on this?

Here are a few updates:

I can confirm that 7796 works just fine with the existing 7789 here
As stated above, it is pretty slow due to display-interface-parallel-gpio. A lot of that slowness is due to Rust abstraction that goes beyond the pure io.
I was able to use mipidsi on top of display-interface-parallel-gpio for just initialization and then do the mass data send to the display using direct esp32 outputs, optimized for the specific board I'm using (some internal capabilities esp32 has which depends on exact gpios used) to get much better fps rate.
Still, that wasn't good enough, so I searched for lcd_cam and lately have been working with a contributor on esp-hal who developerd that driver there (exactly today code merged), with that it's a perfect solution, I reached the point where display is not the bottlneck, only the rendering.

From mipidsi perspective, as said in 1 above,7796 is supported using 7789, at least the subset of commands I needed work.

Thanks for the info.


[APP] Regression in frontend when accessing process.env.FIREBASE_URL

In c4d3352, just before #15 was merged, the app will start as expected when accessing http://localhost:3000 after running docker compose up. This is because despite process.env being empty, the following code succeeds:
# app/application.coffee
Firebase = window.Firebase = require 'firebase'
minBrowserVersionRef = new Firebase(process.env.FIREBASE_URL).child("system-status").child('browsers')

After #15, this results in an error when loading the client:
Unhandled rejection Error: FIREBASE FATAL ERROR: Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com

#15 introduced a new rejection when the Firebase URL is invalid. We need to either rework this rejection or find a better way to assign a default value for FIREBASE_URL.

Looks like this is related to yarn build:app, which expects FIREBASE_URL to be available as an environment variable when called. In the short term, we can instead run FIREBASE_URL=<my-firebase-url> yarn build:app, but we may want to further improve the ergonomics around envify.

Resolving the above reveals another error:
server_status_manager.js:32 Uncaught TypeError: DuelystFirebase.Model is not a constructor

Looking into Backbone.js to investigate.


Get the email from github, even when it is private.

Closes #32
Tests are still missing because I would want to make the following changes to the test infrastructure. But wanted to discuss first. I would change the folder layout to:
`-- tests/
    `-- data/
        |-- github/
        |   |-- 01_response.json
        |   |-- 02_response.json
        |   `-- result.json
        `-- gitlab/

And then use the a file walk to generate mock.side_effects in order, so basically this https://github.com/authlib/loginpass/blob/master/tests/test_oauth_backends.py#L35 will turn into something like this send.side_effects = responses. Which would allow to easily implement a test for the current change - as it would mean only adding a second response containing the emails.
What do you think? BTW - I am also happy merging this as is.

How about making another PR for test case?

If https://github.com/authlib/loginpass/pull/37 gets accepted into master I would merge master into this branch and add the missing test case here.

I've merged them all. You can add another PR to add tests for this


Python backends compatibility with GT model

Certain features (such as horizontal offsets in a stage) are not flagged in the python backends, but are not allowed in the GridTools backends because they break the consistency model. The toolchain should do a better job of catching these before backend compilation to ensure feature consistency when developing with a python backend.

This seems related to #69

Yes. We just added #148 with frontend checks. Should there also be some backend checks to complement those? #121 had something to that effect, but we removed that PR in favor of frontend checks.

Agreed. Once the parallel model discussion in https://github.com/GridTools/concepts/wiki/GTScript-Parallel-model is finished it would be great to have a check that ensures that in the frontend, so we don't write code with debug or numpy and see that it causes static_asserts with GT backends.

The situation has improved with the pydantic validators in the GTC toolchain. I'll close this for now, but we should open issues if we see particular instances where gridtools throws a static assert (that GTC did not catch).


Add command to insert copied cells above the current cell

Today we have a command to paste a copied cell, however this only pastes the cell below the current cell.
We'd like to have the ability to paste the cell above the current cell.
This is required to add support for Jupyter style keyboard shortcuts in the Jupyter exetnsion.
@claudiaregio /cc

@rebornix Jupyter extension could attempt to create their own command to do this,

Select the previous cell
Then invoke the paste command
Feels hacky (specially if user were to move the cursor around just after we selected the previous cell). I.e. its possible for cell the get inserted elsewhere (unlikely but possible).

If you feel this is a good enough solution for Jupyter, we can try that.

@rebornix Jupyter extension could attempt to create their own command to do this,

Select the previous cell
Then invoke the paste command
Feels hacky (specially if user were to move the cursor around just after we selected the previous cell). I.e. its possible for cell the get inserted elsewhere (unlikely but possible).

If you feel this is a good enough solution for Jupyter, we can try that.

@rebornix  I took a look at this and found the notebook.cell.pasteAbove command is already implemented.
Isn't it the correct command or am I missing something?


Support ome.zarr with multiple images

The new example data now also  has multi-image.ome.zarr, which contains multiple images in one container (each has their own "multiscales" metadata). We should check what happens when this is opened and think about what the correct behavior should be.
cc @tischi (discussed this today in the hackathon)

@constantinpape
How does one get the *ome.zarr keys?
https://s3.embl.de/i2k-2020/ngff-example-data/v0.4

@tischi just to understand: you want to get all the objects in https://s3.embl.de/i2k-2020/ngff-example-data/v0.4 that have a ome.zarr extension?
From java, you need to use a ListObjectRequestV2 to get all keys and then manually filter for the ome.zarr extension.
See for example https://github.com/saalfeldlab/n5-aws-s3/blob/master/src/main/java/org/janelia/saalfeldlab/n5/s3/N5AmazonS3Reader.java#L221-L223

@constantinpape Thanks! I guess I was more wondering whether we should provide a table with the keys and also what is inside the respective zarr containers? That would make it easier to consume (also doing in ls in a bucket with zarr containers can be very slow due to the many small files).

Thanks! I guess I was more wondering whether we should provide a table with the keys and also what is inside the respective zarr containers?

https://github.com/ome/ome-ngff-prototypes/blob/main/README.md#single-image

@KateMoreva
Could you please add a @Test where we open this?
https://s3.embl.de/i2k-2020/ngff-example-data/v0.4/multi-image.ome.zarr

I tried opening it with the current version and this currently fails with some exception (see below).
However, it's not even quite clear what should happen in this case, as we need to decide which of the images to open.
For now, I see the following options:

We don't support this for now, but give an error message that is easier to understand, like `ome.zarr files with multiple images are currently not supported
Always open the first image
Open a gui that allows the user to select which one to open.

I am in favor of keeping the solution here as simple as possible, as we want to move to integrate with n5-imglib2-metadata (see #61) and will likely need to adapt the strategy for dealing with multiple images per ome.zarr for this.
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Module threw exception
	at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:307)
	at net.imagej.legacy.DefaultLegacyHooks.interceptRunPlugIn(DefaultLegacyHooks.java:166)
	at ij.IJ.runPlugIn(IJ.java)
	at ij.Executer.runCommand(Executer.java:150)
	at ij.Executer.run(Executer.java:68)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Module threw exception
	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
	at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:303)
	... 5 more
Caused by: java.lang.RuntimeException: Module threw exception
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:127)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:63)
	at org.scijava.thread.DefaultThreadService.lambda$wrap$2(DefaultThreadService.java:225)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	... 1 more
Caused by: java.lang.NullPointerException
	at org.embl.mobie.io.ome.zarr.util.N5ZarrImageReaderHelper.getN5DatasetAttributes(N5ZarrImageReaderHelper.java:30)
	at org.embl.mobie.io.ome.zarr.readers.N5S3OmeZarrReader.getZArrayAttributes(N5S3OmeZarrReader.java:171)
	at org.embl.mobie.io.ome.zarr.readers.N5S3OmeZarrReader.getDatasetAttributes(N5S3OmeZarrReader.java:176)
	at org.embl.mobie.io.ome.zarr.loaders.N5OMEZarrImageLoader.getDatasetAttributes(N5OMEZarrImageLoader.java:246)
	at org.embl.mobie.io.ome.zarr.loaders.N5OMEZarrImageLoader.initSetups(N5OMEZarrImageLoader.java:188)
	at org.embl.mobie.io.ome.zarr.loaders.N5OMEZarrImageLoader.fetchSequenceDescriptionAndViewRegistrations(N5OMEZarrImageLoader.java:138)
	at org.embl.mobie.io.ome.zarr.loaders.N5OMEZarrImageLoader.<init>(N5OMEZarrImageLoader.java:126)
	at org.embl.mobie.io.ome.zarr.loaders.N5S3OMEZarrImageLoader.<init>(N5S3OMEZarrImageLoader.java:59)
	at org.embl.mobie.io.ome.zarr.openers.OMEZarrS3Opener.readKey(OMEZarrS3Opener.java:41)
	at org.embl.mobie.io.ome.zarr.openers.OMEZarrS3Opener.readURL(OMEZarrS3Opener.java:24)
	at org.embl.mobie.viewer.command.OpenOMEZARRFromS3Command.openAndShow(OpenOMEZARRFromS3Command.java:22)
	at org.embl.mobie.viewer.command.OpenOMEZARRFromS3Command.run(OpenOMEZARRFromS3Command.java:31)
	at org.scijava.command.CommandModule.run(CommandModule.java:196)
	at org.scijava.module.ModuleRunner.run(ModuleRunner.java:163)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:124)
	... 6 more

I thought we just return a SpimData object that contains everything. This should work as SpimData essentially is a list of Sources which can have all different dimensions.
@KateMoreva would that be difficult to implement?
But throwing an informative error is also OK for me for now.

I thought we just return a SpimData object that contains everything. This should work as SpimData essentially is a list of Sources which can have all different dimensions.

From the implementation side that would be fine with me.
But that doesn't fully solve the issue on the user side though: it's still unclear what to do when a user opens such an ome.zarr with BDV, because it may not make sense to display the images in the same coordinate space.

There is an issue with reading the correct metadata (path to it, to be precise) for each source. I am investigating it.

But that doesn't fully solve the issue on the user side though: it's still unclear what to do when a user opens such an ome.zarr with BDV, because it may not make sense to display the images in the same coordinate space.

Yes, but I think that's a rabbit hole (i.e. needs potentially loooong discussions). For now, I would just open everything, assuming that stuff in the same container lives in the same coordinate system.

Yes, but I think that's a rabbit hole (i.e. needs potentially loooong discussions). For now, I would just open everything, assuming that stuff in the same container lives in the same coordinate system.

Yeah, this is quite complex. So I agree that we have two options for now:

open everything in the viewer, just assume that it's in the same coordinate system
throw a clear error message when trying to open this in BDV.

Both are fine with me.

open everything in the viewer, just assume that it's in the same coordinate system

I think we should do this.

The issue was mostly with the dataset itself. Code in the develop will open only first of the multiscales, code in the PR will open all multiscales at once.

@KateMoreva
2. Did you add a test for opening this? https://s3.embl.de/i2k-2020/ngff-example-data/v0.4/multi-image.ome.zarr

S3 data needs to be changed.

Should I merge the PR? Looks good to me.

There is a small issue with the names:

We have only one name, although there should be several multiscales.

S3 data needs to be changed.

I have just updated it. So it would be good if you can add a test for this to #67.

There is a small issue with the names:

I think that this is all handled correctly already: all 4 images are available in the BDV menu (p) and can be selected, deselected etc.:

S3 data needs to be changed.

I have just updated it. So it would be good if you can add a test for this to #67.

There is a test (for s3) :  public void multiImg() throws IOException {}

Implemented in #67. Thanks @KateMoreva.


doc: make longer example collapsible

Not sure if this is a good idea, but I find the longer example section in the README too long to scroll through, making it hard to get to the next part of the guide.

I wonder if instead of doing that, we opt for a Table of contents at the top of the README?
I don't have any strong opinions one way or the other, IMO this is also fine. I'm just not sure which is "better", if either really are. I could also see users not realizing there is a configuration shown and us having to point them to "click the expand button the readme to see the config" (regardless of it literally saying that on the readme)
If we do go with this, I would change the verbiage from "Click to View" to something more specific. Like "Click to view Packer.nvim example configuration"
Again though, I don't have strong feelings in any direction here lol

@miversen33 Thanks for the comments 😁. IMO the README file serves more as an overview of the project, and detailed configs should be put into the help docs and the wiki. In that sense, I think it is better to hide detailed configs like this as collapsible or move it to the wiki, so that's why I create this PR.
I agree with your point on adding a ToC, but github has a good builtin one already, and (maybe I'm biased) I think README is generally viewed through github.

I think I like it because too many people just copy and paste the whole thing and then don't change anything, which they really shouldn't. In that way it might prevent some of that by not having it immediately visible.
On the other hand, some portion of users will never see it and this may produce some extra issues... Let me think about this a little.


Fix thread safety with mob spawning/creation

A user was reporting that the Moth in Biome Makeover was crashing when the game was spawning it during worldgen: https://mclo.gs/aUscAv0
Basically you're getting the same issue as this: https://github.com/team-abnormals/savage-and-ravage/issues/119
Short summary, if you are in a spot for entities that could run in the off thread (not server thread such as worldgen which is on its own thread), do not use the level's randomsource. Use the entity's own personal randomsource.
You will need to port the fix to 1.19.3 which should just be a simple easy cherrypicking. Hope this helps

👍 Ah, I already fixed a bunch of these, looks like I missed a few then lol

For more info, it seems C2ME had an update that made this issue more likely to trigger. Right now I had seen 6+ people asking me why Bumblezone is crashing since Better Minecraft modpacks have not yet updated Bumblezone where I temporarily removed the Biome Makeover Moth from spawning in my hanging Garden's structure. I am telling people to put on a datapack to remove the Moth from my allowed Hanging Gardens entity spawning tag as a workaround if people cannot update.
https://github.com/RelativityMC/C2ME-fabric/issues/197
C2ME did recently just put out a change to make the crash no longer a crash and instead, log a warning to the log file so better Minecraft needs to update that. Just keeping you in the loop of what's going on but for now, this isn't a high priority issue as players just needs to update Bumblezone or C2ME to stop the crash. Once the Moth is threadsafe, I'll let it spawn in Bumblezone's hanging gardens by default again


 Uninplemented error on layer.dart

Hi! I'm trying to run on chrome some code i already run on android. im getting this error on layer.dart, exactly this method
@override
void addToScene(ui.SceneBuilder builder, [ Offset layerOffset = Offset.zero ]) {
assert(shader != null);
assert(maskRect != null);
assert(blendMode != null);
final Rect shiftedMaskRect = layerOffset == Offset.zero ? maskRect : maskRect.shift(layerOffset);
engineLayer = builder.pushShaderMask(shader, shiftedMaskRect, blendMode, oldLayer: _engineLayer);
addChildrenToScene(builder, layerOffset);
builder.pop();
}
I know this happen when i got a shadermask on the page. My code look like this:
ShaderMask(
shaderCallback: (rect) {
return LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [Colors.white, Colors.transparent],
).createShader(Rect.fromLTRB(0, 0, rect.width, rect.height));
},
blendMode: BlendMode.dstIn,
child: Image(
image: AssetImage('assets/images/home_image.jpg'),
fit: BoxFit.cover,
),
),

Duplicate of https://github.com/flutter/flutter/issues/44152


chain overloading

Hey supermacro, thanks so much for this library :) I'm starting to use it in one of my projects and love it so far! Anyway I was just wondering if you considered using function overloading for the chain API? I'm imaging something similar to the pipe API in fp-ts.
Here is kinda what I'm thinking although this has not been tested:
export function chain<T1, T2, E>(r1: Promise<Result<T1, E>>, r2: (v: T1) => Promise<Result<T2, E>>): Promise<Result<T2, E>>;
export function chain<T1, T2, T3, E>(r1: Promise<Result<T1, E>>, r2: (v: T1) => Ok<T2, E> | Err<T2, E> | Promise<Result<T2, E>>, r3: (v: T2) => Promise<Result<T3, E>>): Promise<Result<T3, E>>;
export function chain<T1, T2, T3, T4, E>(r1: Promise<Result<T1, E>>, r2: (v: T1) => Ok<T2, E> | Err<T2, E> | Promise<Result<T2, E>>, r3: (v: T2) => Ok<T3, E> | Err<T3, E> | Promise<Result<T3, E>>, r4: (v: T3) => Promise<Result<T4, E>>): Promise<Result<T4, E>>;
export function chain<T1, T2, T3, T4, T5, E>(r1: Promise<Result<T1, E>>, r2: (v: T1) => Ok<T2, E> | Err<T2, E> | Promise<Result<T2, E>>, r3: (v: T2) => Ok<T3, E> | Err<T3, E> | Promise<Result<T3, E>>, r4: (v: T3) => Ok<T4, E> | Err<T4, E> | Promise<Result<T4, E>>, r5: (v: T4) => Promise<Result<T5, E>>): Promise<Result<T5, E>>;
export function chain<T1, T2, T3, T4, T5, T6, E>(r1: Promise<Result<T1, E>>, r2: (v: T1) => Ok<T2, E> | Err<T2, E> | Promise<Result<T2, E>>, r3: (v: T2) => Ok<T3, E> | Err<T3, E> | Promise<Result<T3, E>>, r4: (v: T3) => Ok<T4, E> | Err<T4, E> | Promise<Result<T4, E>>, r5: (v: T4) => Ok<T5, E> | Err<T5, E> | Promise<Result<T5, E>>, r6: (v: T5) => Promise<Result<T6, E>>): Promise<Result<T6, E>>;
export function chain<T1, T2, T3, T4, T5, T6, T7, E>(r1: Promise<Result<T1, E>>, r2: (v: T1) => Ok<T2, E> | Err<T2, E> | Promise<Result<T2, E>>, r3: (v: T2) => Ok<T3, E> | Err<T3, E> | Promise<Result<T3, E>>, r4: (v: T3) => Ok<T4, E> | Err<T4, E> | Promise<Result<T4, E>>, r5: (v: T4) => Ok<T5, E> | Err<T5, E> | Promise<Result<T5, E>>, r6: (v: T5) => Ok<T6, E> | Err<T6, E> | Promise<Result<T6, E>>, r7: (v: T6) => Promise<Result<T7, E>>): Promise<Result<T7, E>>;
export function chain<T1, T2, T3, T4, T5, T6, T7, T8, E>(r1: Promise<Result<T1, E>>, r2: (v: T1) => Ok<T2, E> | Err<T2, E> | Promise<Result<T2, E>>, r3: (v: T2) => Ok<T3, E> | Err<T3, E> | Promise<Result<T3, E>>, r4: (v: T3) => Ok<T4, E> | Err<T4, E> | Promise<Result<T4, E>>, r5: (v: T4) => Ok<T5, E> | Err<T5, E> | Promise<Result<T5, E>>, r6: (v: T5) => Ok<T6, E> | Err<T6, E> | Promise<Result<T6, E>>, r7: (v: T6) => Ok<T7, E> | Err<T7, E> | Promise<Result<T7, E>>, r8: (v: T7) => Promise<Result<T8, E>>): Promise<Result<T8, E>>;

export async function chain(
  start: Promise<Result<any, any>>,
  ...transforms: any
): Promise<Result<any, any>> {
  return await (transforms as Array<(v: any) => Promise<Result<any, any>>>).reduce(
    async (current, f) => {
      const mapped = await (await current).asyncMap(f);
      return mapped.andThen((inner) => inner);
    },
    start,
  );
}

Let me know your thoughts!

Hey @jsmith,
Happy to hear that you're enjoying this lib!
It's funny you bring up this issue because I'm collaborating currently with a fellow github user on implementing a "thenable" Result. This new API would supersede the chain functionality.
Have a read through this issue, and take a peak at the corresponding pr which should get merged tomorrow or thursday and released to npm no later than friday (but as with anything in software, there may be delays!).
Does this new API solve your issue? I would appreciate any feedback.

Yes, that will be perfect! I'm using neverthrow to define a set of express routes which use a combination of synchronous and asynchronous operations so this new API should be a good replacement.
I'm building a remote git api and currently have something like this:
router.post("/touch", async (req) => {
  return chain(
    getOrCloneRepo(env.git),
    getFullPath(req.body.gitPath),
    isInGitRepo,
    doesNotExist,
    parentExists,
    async ({ fullPath }) => {
      await fs.promises.writeFile(fullPath, "");
      return success();
    },
  ).then(unwrap);
});

But will just be able to use ResultAsync and map!
Anyway, thanks for your help :)

@jsmith https://github.com/supermacro/neverthrow/releases/tag/2.3.0
Try it out. It's published to npm.

@supermacro awesome!
TLDR
I have a ResultAsync and I want to and andThen with an async function that returns Ok or Err.

I just have a question about the API of ResultAsync that came up while I was refactoring. I'll describe my use case first!
Basically, I have several functions that currently return Promise<Result<T, E>>. An example might look like this:
export const doesNotExist = async (
  opts: { fullPath: string },
): Promise<Result<{ fullPath: string }, { status: 400, error: string }>> => {
  const result = await checkStatus(opts.fullPath); // result is "file" | "folder" | "enoent"
  // note that error() just wraps a string in a { status: 400, error: string } object
  return result === "enoent" ? ok(opts) : error(`"${opts.fullPath}" already exists.`);
};

This function just checks that a file does not exist. It returns an error if it does exist otherwise it just passes information along to the next handler. Using the example from above, my handler now looks like ths:
router.post("/touch", async (req) => {
  return getOrCloneRepo(env.git)
    .andThen(getFullPath(req.body.gitPath))
    .andThen(isInGitRepo)
    .andThen(doesNotExist)
    .andThen(parentExists)
    .andThen(async ({ fullPath }) => {
      await fs.promises.writeFile(fullPath, "");
      return success();
    })
    .then(unwrap);
});

Let me know if this makes sense! If not, I can create a simpler test case. Anyway the issue is that, for example, doesNotExist returns a Promise<Result<T, E>> which isn't currently supported with the API. The current interface of ResultAsync looks like this:
export declare class ResultAsync<T, E> {
...
    andThen: <U>(f: (t: T) => Ok<U, E> | Err<U, E> | ResultAsync<U, E>) => ResultAsync<U, E>;
...
}

Would it be possible to modify the API to accept a Promise<Result<U, E>>?
export declare class ResultAsync<T, E> {
...
    andThen: <U>(f: (t: T) => Ok<U, E> | Err<U, E> | Promise<Result<U, E>> | ResultAsync<U, E>) => ResultAsync<U, E>;
...
}

This would be similar to the chain API which allows you to return Ok<T2, E> | Err<T2, E> | Promise<Result<T2, E>. Does this make sense? Very sorry if I'm missing something obvious and thanks for your help :)

Hello @jsmith
The solution to your problem is to have doesNotExist return a ResultAsync rather than a Promise<Result>. You can do this by wrapping your checkStatus promise using ResultAsync.fromPromise.
export const doesNotExist = (
  opts: { fullPath: string },
): ResultAsync<{ fullPath: string }, { status: 400, error: string }> =>
  ResultAsync.fromPromise(checkStatus(opts.fullPath))
             .andThen(result => result === "enoent" ? ok(opts) : error(`"${opts.fullPath}" already exists.`))

Note that you might want to catch a possible error coming from checkStatus. In your example, you would have surrounded the call with try/catch. In my example, you can provide a second argument to fromPromise to handle the error.

Sorry about that, I should have read through the documentation more carefully. I see now the power of fromPromise! Refactoring was going well but I encountered a type issue and I'm not entirely sure how to proceed. I'm going to keep looking at it but thought I would post it here to see if you had any thoughts!
Basically, ignoring the type errors from the first two lines of code, this type checks:
import { Result } from "neverthrow"
// @ts-ignore
const err1: Result<{}, { a: "a" }> = {};
// @ts-ignore
let err2: Result<{}, { a: "a" } | { b: "b" }> = {};
err2 = err1;

But using the same code with ResultAsync won't type check:
// I've reduced ResultAsync to just have `andThen`
// It seems like Ok<U, E> and Err<U, E> are causing the issues
// But I haven't totally wrapped around why this is happening
export declare class ResultAsync<T, E> {
  // original is `andThen: <U>(f: (t: T) => Ok<U, E> | Err<U, E> | ResultAsync<U, E>) => ResultAsync<U, E>;`
  andThen: <U>(f: (t: T) => Ok<U, E>) => ResultAsync<U, E>;
}

// @ts-ignore
const err1: ResultAsync<{}, { a: "a" }> = {};
// @ts-ignore
let err2: ResultAsync<{}, { a: "a" } | { b: "b" }> = {};

// This next line fails with:
// Type 'TestResult<{}, { a: "a"; }>' is not assignable to type 'TestResult<{}, { a: "a"; } | { b: "b"; }>'.
//   Type '{ a: "a"; } | { b: "b"; }' is not assignable to type '{ a: "a"; }'.
//     Property 'a' is missing in type '{ b: "b"; }' but required in type '{ a: "a"; }'.ts(2322)
err2 = err1;

Pulling your example from #30 but replacing Result with ResultAsync, ok with okAsync and err with errAsync:
import { ResultAsync, okAsync, errAsync } from "neverthrow";

type E1 = number;
type E2 = string;
interface E3 {
  errorCode: number;
  message: string;
}

type MyUnion = { type: "e1"; val: E1 } | { type: "e2"; val: E2 } | { type: "e3"; val: E3 };

type F1 = (sth: unknown) => ResultAsync<string, MyUnion>;
type F2 = (sth2: string) => ResultAsync<string, MyUnion>;
type F3 = (sth3: string) => ResultAsync<string, MyUnion>;

const f1: F1 = (sth: unknown) => {
  console.log(sth);
  const x = Math.random() * 10;
  return x > 5 ? okAsync("yes-one") : errAsync({ type: "e1", val: 1234 });
};

const f2: F2 = (sth: string) => {
  console.log(sth);
  const x = Math.random() * 10;
  return x > 5 ? okAsync("yes-two") : errAsync({ type: "e2", val: "noooo :(" });
};

const f3: F3 = (sth: string) => {
  console.log(sth);
  const x = Math.random() * 10;
  return x > 5
    ? okAsync("yes-three")
    : errAsync({ type: "e3", val: { errorCode: 500, message: "internal server error" } });
};

const result: ResultAsync<string, MyUnion> = f1("maybe").andThen(f2).andThen(f3);

You'll notice that this has type issues that will end up looking like this:
Type 'MyUnion' is not assignable to type '{ type: "e1"; val: number; }'.

Thanks again for your help 😅

@jsmith I pasted your code (the last code block, not the declaration of ResultAsync) et I have no type error. It works as expected and even without the type annotation on result, the type is ResultAsync<string, MyUnion>.
Am I missing something ?

@paduc thank you for testing my code samples and for creating a more succinct snippet! I quickly tested and found that I only have this error when strictFunctionTypes (or strict) is set to true in my tsconfig. This makes sense as when strictFunctionTypes is set to false,  it "disables bivariant parameter checking for function types.". Maybe you don't have this option turned on?

@jsmith Indeed I had neither strict nor strictFunctionTypes set to true. I wasn't even familiar with their existence until today (thanks!).
I turned it on but I didn't get a type error...
I copied the lib and your examples in a typescript playground, no warning/errors: try it here

No problem :) They are very useful TS options! I typically have strict enabled for all my projects. I'm not sure what settings there are in the playground but here is a codesandbox with the code from the playground! I should have sent this earlier, sorry about that!

@jsmith @paduc I'm currently at work so I can't really spend the time thinking about this, but here's a new github issue: https://github.com/supermacro/neverthrow/issues/39
Let's move the convo there.


Letsencrypt V4.6 new error DNS_PROVIDER: unbound variable

ref #1086
Error
[21:04:24] INFO: Selected DNS Provider: dns-cloudflare
[21:04:24] INFO: Use propagation seconds: 60
/run.sh: line 88: DNS_PROVIDER: unbound variable

Config
email<EMAIL_ADDRESS>domains:
  - hassio.mydomain.net
certfile: fullchain.pem
keyfile: privkey.pem
challenge: dns
dns:
  provider: dns-cloudflare
  cloudflare_email<EMAIL_ADDRESS>  cloudflare_api_key: xxx

I have created a new token, which, AIUI should not need the email as well and updated the config to use the cloudflare_api_token. Same error.

Please update the add-on, the issue has been addressed. 👍

Thanks.
I could not get it to work with the Token so went back to the key.


Cell#render needs additional testing

When the computer makes a guess that misses, the player board does not render an 'M'... the method appears to simply not render anything.
Additional testing for Cell#render needs to happen.

Additionally, when the computer hits a player ship, the player board does not update to show an 'H'.... but the board DOES show all 'X's when the ship is sunk..so will need to add additional specific assertion to Cell#render tests

method is now working correctly; additional testing would be helpful; closing since is functional


Windows CRLF line endings in gem

I noticed that the template files in the minimal-mistakes-jekyll gem (version 4.10.0) have Windows style CRLF line endings instead of Linux style LF line endings. This seems odd as the source code has correct LF line endings. It get even stranger when building the site as the result is a mix of CRLF and LF line endings.
What is the reason for the templates files in the minimal-mistakes-jekyll gem having Windows style CRLF line endings?

Just a matter of preference that gets enforced by text editors that support .editorconfig.
[*]
insert_final_newline = true

ref: http://editorconfig.org/

To be clear, I don't add these new lines. It is 100% controlled by my text editor and what is in .editorconfig (default values for the most part).
If the mixture in styles is being caused by that I'd be interested in a fix.

Looks like it could be a side-effect of my text editor (Visual Studio Code) ignoring what's in .editorconfig and defaulting to CRLF line endings.

Hi Michael, thanks for your feedback. I understand that you work on Windows. The default there is to use CRLF. As far as I understand, Git converts line endings upon checkin and checkout, see Formatting and Whitespace in the Git documentation. Furthermore, I guess that you may be building the Gems on your Windows platform and that this process leaves line endings as they are when checked out. This would explain why the line endings in the Git repository (on GitHub) have LF line endings and the files in the Gem have CRLF line endings.
What I don't understand is that the issue only appears when copying template files from the Gem file into my repository (without changing the line endings). When using jekyll build without copying the templates files, the issue doesn't appear. ¯_(ツ)_/¯

I've checked some jekyll themes on RubyGems and it looks as if most use Linux style line endings (LF). I'd probably recommend using end_of_line = lf in .editorconfig, this may require changing core.autocrlf in your Git config.

Beats me. I build the theme on macOS and Windows and all of the defaults are set to LF. So I have no idea why anything is CRLF.

I checked again. The only gem version affected by this is 4.10.0. Both versions 4.8.1 and the current version 4.10.1 don't have this issue, i.e. the files have Linux stye LF line endings.
Based on that you can probably close this issue.

Might have to do with Bundler then. 4.10.1 was gem build on macOS, the others were likely Windows. No idea why it decides to change the line endings when all of the source files are authored with LF.


Add more paste to USB-C Connector

I'm sure I can do this. is there an estimate on how much more paste? 2x or 1.5x?

Based on how the first assembled batch came out, this should be enough:


Make more clear report is not real

Hi @Monica0905
Could you modify the Rmd for the report and the generated PDF so that it is more clear that this is not the result of a real survey? It is clear in the repository, but the PDF on its own could give the wrong impression.
Thanks!

Sure! Changes done!

Thanks!


Preferences catagory listed twice for Open Workspace Settings

VSCode Version: 1.32 Insiders
OS Version: Windows 10

Steps to Reproduce:

Bring up the Command Palette and filter on 'settings'

You'll see "Prefernces: Preferences: Open Workspace Settings".

The typo "Prefernces" has been fixed in src\vs\workbench\contrib\preferences\electron-browser\preferences.contribution.ts but the double category will still display as the category is also listed in the command name for Open Folder Settings and Open Workspace Settings.

https://github.com/Microsoft/vscode/pull/69807

The typo was fixed by the other commit but the prefix "Preferences:" will still show up twice.
MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
	command: {
		id: OpenWorkspaceSettingsAction.ID,
		title: { value: `${category}: ${OpenWorkspaceSettingsAction.LABEL}`, original: 'Preferences: Open Workspace Settings' },
		category: nls.localize('preferencesCategory', "Preferences")
	},
	when: WorkbenchStateContext.notEqualsTo('empty')
});


Document the load balancer feature

Signed-off-by: Miguel Angel Ajo<EMAIL_ADDRESS>

Thanks @nyechiel I updated it with your comments, as for https://submariner.io/getting-started/#prerequisites I'm still not sure how to update it. I guess on the part where we say that a public IP is necessary for the gateways.

Thanks @nyechiel I updated it with your comments, as for https://submariner.io/getting-started/#prerequisites I'm still not sure how to update it. I guess on the part where we say that a public IP is necessary for the gateways.

Yes, that's what I was thinking of. I think that other sections (for e.g the architecture part) will need to be updated. I think it makes sense to change the minimum required now, and improve with 0.11 once we have more testing and experience with this new mode.

Oh @mangelajo the Markdown linter is complaining

Thanks for all the comments & fixes, I pushed a new version with the comments applied, and linter issues handled.

:rocket:


Angular $route.reload does not reload the current template

When a use visits a private page unauthorized, say profile, my backend 302 redirects to a controller action that serves up the login partial in place of the profile partial. Since it 302 redirects to an action that returns a partial, the url address bar doesn't change from the page the user was trying to access ("/profile").
I was going to "fix" that but actually I think it makes a good user experience instead of dealing with return urls as query params.
The idea is once they log in I just want to reload the current route aka do a GET request for the profile partial via "/profile" and switch it back in instead of the login partial.
However, I can't get this "reload current route" to work. I tried all of the following:
$location.$$compose();
$location.absUrl($location.path());
$location.url($location.path());
$location.path($location.path())
$route.reload();

But none work. $route.reload() seems to be the definite way but it also doesn't work. It goes through the route cycle, reinstantiates the controller, but does not do GET request to reload the template
The only thing that works is a hard refresh via location.reload() but that is not ideal.
How can I force angular to reload the template for the current route?

Its awesome!

var currentPageTemplate = $route.current.templateUrl;
$templateCache.remove(currentPageTemplate);
$route.reload();

when I use the solution, I can not pass in another route, because it always reload when I click  the link. Do you guys have another solution please!!

@minhduc19, this sounds like a general support question. Please, use one of the appropriate support channels for these types of questions.
GitHub issues are reserved for bug reports and feature requests.
Thx !

It's not working. Still is getting from cache
var currentPageTemplate = $route.current.templateUrl;
$templateCache.remove(currentPageTemplate);
$route.reload();


py.test ... --ruledir leads to "unrecognized arguments: --ruledir"

Time to get my feet wet with this, but the README.md does not work for me.
ftw> py.test test/test_default.py --ruledir test/yaml
usage: py.test [options] [file_or_dir] [file_or_dir] [...]
py.test: error: unrecognized arguments: --ruledir test/yaml

What am I doing wrong?

I tested it and I get the same error as @dune73.

@franbuehler  @dune73 just saw this, didnt have notifications on. Will look into it -- could be a versioning mismatch in the README

I see. Yes, please help us to fix this. @csanders-git  has written two blog posts for Core Rule Set and they both don't work because of this bug.
Also: Can we reach you via email? Mine is<EMAIL_ADDRESS>

hi @dune73 and @franbuehler
It automatically closed this on my merge, but can you please git clone and retry? I just reproduced your bug and fixed it locally

Thank you. I'll try it again and report back.

No luck. Here is what I did:
dune73@leander tmp>git clone https://github.com/CRS-support/ftw.git
...
dune73@leander tmp>cd /tmp/ftw
dune73@leander ftw>virtualenv env
Running virtualenv with interpreter /usr/bin/python2
New python executable in /tmp/ftw/env/bin/python2
Not overwriting existing python script /tmp/ftw/env/bin/python (you must use /tmp/ftw/env/bin/python2)
Installing setuptools, pkg_resources, pip, wheel...done.
dune73@leander ftw>source ./env/bin/activate
(env) dune73@leander ftw>py.test test/test_default.py --ruledir=test/yaml
usage: py.test [options] [file_or_dir] [file_or_dir] [...]
py.test: error: unrecognized arguments: --ruledir=test/yaml
  inifile: None
  rootdir: /tmp/ftw
(env) dune73@leander ftw>pip install -r requirements.txt
Collecting astroid==1.4.5 (from -r requirements.txt (line 1))
  Using cached astroid-1.4.5-py2.py3-none-any.whl
Collecting colorama==0.3.7 (from -r requirements.txt (line 2))
  Using cached colorama-0.3.7-py2.py3-none-any.whl
Collecting IPy==0.83 (from -r requirements.txt (line 3))
  Using cached IPy-0.83.tar.gz
Collecting lazy-object-proxy==1.2.2 (from -r requirements.txt (line 4))
  Downloading lazy_object_proxy-1.2.2-cp27-cp27mu-manylinux1_x86_64.whl (56kB)
    100% |████████████████████████████████| 61kB 582kB/s
Collecting py==1.4.31 (from -r requirements.txt (line 5))
  Using cached py-1.4.31-py2.py3-none-any.whl
Collecting pylint==1.5.5 (from -r requirements.txt (line 6))
  Using cached pylint-1.5.5-py2.py3-none-any.whl
Collecting pytest==2.9.1 (from -r requirements.txt (line 7))
  Using cached pytest-2.9.1-py2.py3-none-any.whl
Collecting PyYAML==3.11 (from -r requirements.txt (line 8))
  Downloading PyYAML-3.11.zip (371kB)
    100% |████████████████████████████████| 378kB 496kB/s
Collecting requests==2.9.1 (from -r requirements.txt (line 9))
  Using cached requests-2.9.1-py2.py3-none-any.whl
Collecting six==1.10.0 (from -r requirements.txt (line 10))
  Using cached six-1.10.0-py2.py3-none-any.whl
Collecting wrapt==1.10.8 (from -r requirements.txt (line 11))
  Using cached wrapt-1.10.8.tar.gz
Collecting python-dateutil==2.6.0 (from -r requirements.txt (line 12))
  Using cached python_dateutil-2.6.0-py2.py3-none-any.whl
Building wheels for collected packages: IPy, PyYAML, wrapt
  Running setup.py bdist_wheel for IPy ... done
  Stored in directory: /home/dune73/.cache/pip/wheels/2b/1e/e1/9a9d6e33c211128ec866e9e15ae7c34bc2e1d3d2d7e703ecaf
  Running setup.py bdist_wheel for PyYAML ... done
  Stored in directory: /home/dune73/.cache/pip/wheels/4a/bf/14/d79994d19a59d4f73efdafb8682961f582d45ed6b459420346
  Running setup.py bdist_wheel for wrapt ... done
  Stored in directory: /home/dune73/.cache/pip/wheels/19/8a/01/20cf74c3f38d49ef8e9b9aa7ffd38cefff79bad9f6f2c651f0
Successfully built IPy PyYAML wrapt
Installing collected packages: wrapt, lazy-object-proxy, six, astroid, colorama, IPy, py, pylint, pytest, PyYAML, requests, python-dateutil
Successfully installed IPy-0.83 PyYAML-3.11 astroid-1.4.5 colorama-0.3.7 lazy-object-proxy-1.2.2 py-1.4.31 pylint-1.5.5 pytest-2.9.1 python-dateutil-2.6.0 requests-2.9.1 six-1.10.0 wrapt-1.10.8
(env)
dune73@leander ftw>py.test test/test_default.py --ruledir=test/yaml
usage: py.test [options] [file_or_dir] [file_or_dir] [...]
py.test: error: unrecognized arguments: --ruledir=test/yaml
  inifile: None
  rootdir: /tmp/ftw

There is this remark Not overwriting existing python script ..., otherwise, I do not see anything suspicious.
Also: You removed the example call from your README.md.

Do you have FTW installed globally?
deactivate && pip freeze | grep ftw
Also what is your python version?

Can you try #14 @dune73 and @franbuehler and let me know if that works? Just replicated your bug locally and got it fixed with that P/R

Much better. Thank you. But still not quite there:
py.test -s -v test/test_default.py --ruledir=test/yaml
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/_pytest/config.py", line 283, in _getconftestmodules
    return self._path2confmods[path]
KeyError: local('/tmp/ftw/test/test_default.py')

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/_pytest/config.py", line 283, in _getconftestmodules
    return self._path2confmods[path]
KeyError: local('/tmp/ftw/test')

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/_pytest/config.py", line 314, in _importconftest
    return self._conftestpath2mod[conftestpath]
KeyError: local('/tmp/ftw/test/conftest.py')

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/_pytest/config.py", line 320, in _importconftest
    mod = conftestpath.pyimport()
  File "/usr/local/lib/python3.5/dist-packages/py/_path/local.py", line 650, in pyimport
    __import__(modname)
  File "/tmp/ftw/test/conftest.py", line 2, in <module>
    from ftw.ftw import ruleset, util
ImportError: No module named 'ftw'
ERROR: could not load /tmp/ftw/test/conftest.py

My python version:
$> python -V
Python 2.7.12+

Whats your pytest version?
py.test --version

$> py.test --version
This is pytest version 2.9.1, imported from /usr/local/lib/python3.5/dist-packages/pytest.py

Oops. Is that python3.5 the problem?

It could be -- virtualenv shouldve dropped you into python 2.7. Can you deactivate && pip uninstall pytest?

Then youd drop back into the virtualenv, make sure the version is in the local path and test again.
It works with fresh virtualenv with me for the fix, I have to update the tests to import correctly now, though.

What does deactivate mean?

@dune73 deactivate your virtual environment

Thanks. Got it at last.
OK, I applied #14 to FTW and ran through the README and it worked.
(env) dune73@anastasia ftw>py.test -s -v test/test_default.py --ruledir=test/yaml
===================================================================== test session starts =====================================================================
platform linux2 -- Python 2.7.12, pytest-2.9.1, py-1.4.31, pluggy-0.3.1 -- /tmp/ftw/env/bin/python2
cachedir: .cache
rootdir: /tmp/ftw, inifile:
collected 2 items

test/test_default.py::test_default[ruleset0-EXAMPLE.yaml -- 1234] PASSED
test/test_default.py::test_default[ruleset1-EXAMPLE.yaml -- 1235] PASSED

================================================================== 2 passed in 0.82 seconds ===================================================================

That's great. The sooner you merge, the better. ;)

@dune73 yay! Sorry about the confusion. Ill need to get this approved then Ill tag and rerelease to pypi.
If you find me on IRC i can give you a better explanation on what happened

So the PR #14 which has been merged in the meantime solved this for me. Closing this.
Thank you for all the debugging @zmallen.


libdarknet.so

I'm very new in the world of containers and docker.
I'm planning to use docker to contain a qt applications that uses the darknet api on an linux enviroment, is darknet compiled with the lib option in this project? I need that the application works on windows, my problem is that the darknet api doesn't work very well on windows.
Would it be possible to call the include files from the darknet API from the docker to an windows environment?

No, Darknet isn’t compiled with the lib option in this project.
Did you check yolo_cpp_dll  in AlexyAB/darknet? AlexyAB/darknet supports windows, so I recommend that you use yolo_cpp_dll. I have used the DLL before, and there wasn’t no problem.
You can’t call darknet API from the docker to an windows environment directly. If you want to do like that, first you have to make service like rpc or http and call the service in windows.

Yes, darknet "works" on windows.
But I can't handle error like I do in linux.

The call never ends when I have a cuda error on windows.

That's why I'm thinking on using a docker with linux on a windows enviroment, but if there is no way to call the darknet api I'm out of options.

Hey @Goru1890 check out my fork here: https://github.com/gmontamat/darknet-docker
I also needed libdarknet.so on my projects so I modified the Dockerfiles on this repo.


Connect to the SAP HANA Cockpit

Tutorial URL: https://developers.sap.com/tutorials/haas-dm-connect-hana-cockpit.html
Please specify the step you are referring to before 1.
Any plans to open up the hana service dashboard to trial accounts, so step 1 of the tutorial can be executed?
thx, greg

No. There are no plans to change the way that HaaS works in trial. HaaS will be replaced in the long term by the new HANA Cloud and it will have a different trial experience which is planned to launch later this year.