Does iCal.Net 4.0.6 support .NET Framework 4.7.1?

After upgrading my ASP .Net application to 4.7.1 from 4.6.2, I keep getting runtime errors due to unable to find System.Runtime.Serialization.Primitive when Calendar.Load() is called. See below.
As part of 4.7.1, System.Runtime.Serialization.Primitives was moved from \Packages to the GAC.
Wondering if the iCal.Net codebase needs an update for this?
Apr 27 15:47:59 TrentApi TrentApi: [DEV] [ApiVer: 2<IP_ADDRESS>] default-enviro [07d63c2f-ca9b-4fd7-8de6-c7ab5f15f7f1]: System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime.Serialization.Primitives, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Apr 27 15:47:59 TrentApi TrentApi: [DEV] [ApiVer: 2<IP_ADDRESS>] default-enviro [07d63c2f-ca9b-4fd7-8de6-c7ab5f15f7f1]: File name: 'System.Runtime.Serialization.Primitives, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime.Serialization.Primitives, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified

Does iCal.Net 4.0.6 support .NET Framework 4.7.1?

Yes. ical v4 targets .NET Standard 1.3, which supports 4.6+.

Wondering if the iCal.Net codebase needs an update for this?

No, this is a bug in .NET Standard itself. There are workarounds: https://github.com/dotnet/standard/issues/481

No, this is a bug in .NET Standard itself. There are workarounds: dotnet/standard#481
I have seen that link - it only mentions .Net standard 2.0.
iCal.Net uses .Net Standard 1.3, so is it still relevant?

Yes, unfortunately, it still applies.
I recently wrote a code generator to rewrite 700 csproj files so I could start consuming .NET Standard packages. I added all the workarounds described in that thread to get .NET Standard working with our legacy system. Those workarounds do work. If you hit a wall after incorporating them, reply to the thread, and I'll see if I can work through it.
One of the things you may find helpful is converting from packages.config to PackageReferences. PackageReference tells nuget to compute the dependency graph and pull in the required deps. Sticking with the old packages.config method means you may have to flatten the graph by hand. (At least until they fix traditional Framework's .NET Standard implementation.)

Oh, it looks like Visual Studio may have built-in tooling to migrate from packages.config to PackageReferences:
https://docs.microsoft.com/en-us/nuget/reference/migrate-packages-config-to-package-reference
That didn't exist in December.
Additional PackageReference documentation: https://docs.microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files

Great...thanks for all the information - you've been more than helpful.
I will give it a try tomorrow.

Doesn't solve the issue - I will investigate further. Thinking about it, if I compare iCal with the Automapper NuGet package 5.2.0, it targets netstandard1.3 and net45. If iCal were changed to target Net471 as well as netstandard1.3, then wouldn't that also solve the issue, as we could then bypass netstandard and its bug?

Any news on this topic ? Unable to run a deployed version of our ASP.NET application, using the ical library as well.

We managed a workaround on our .ASP .Net Web API application  by doing the following (your mileage may vary):

Retargeted the version of .Net Framework for all projects in solution from 4.6.x to 4.7.1 (affects csproj & app.config in each proj)
Changed Compilation & HttpRuntime targetFramework from 4.6.2 to 4.7.1 in web.config.
Removed binding re-directs for System.Runtime.Serialization.Primitives and System.Reflection from web.config.
Removed binding re-directs for System.Runtime.Serialization.Primitives and System.Reflection from the app.config belonging to the class library where the run-time error occurred.
Removed references to system.reflection & system.runtime.serialization.primitives from the class library where the run-time error occurred.
This was done by directly deleting the reference, rather than by uninstalling properly via NuGet.

Version 4.1.4 should work much better with traditional Framework applications 4.6+. Give it a go. It should “just work”.

Thanks a lot for fixing the issue.

.Net Standard 1.3 is .Net FrameWork 4.6
https://docs.microsoft.com/en-us/dotnet/standard/net-standard


suggest interactive prompt for dj_config.py

Right now, the config parameters are hard-coded in dj_config.py. If user modifies that .py file then there is a git conflict. Ideally I think the script should prompt the user to enter the various values... or provide a .yaml file as input. Or some other mechanism.

@edeno can you take a look?


Fix slot scanning and acquiring password.

The slot scanning array was initialized to 0, and then processes were
being forked off to populate it. However, because it is a fork, the
information does not return to the parent process and the parent version
of the array remains at 0 for all elements. 0 is interpreted as a
successful result of unlocking the slot with a given passphrase, so slot
0 was always selected as an up-to-date slot.
By removing the fork behavior, this begins to work again. Defensively,
setting the initial version of the array to all -1 is also an
improvement for future bugs of this nature. It is pretty slow to check
all the slots, and the forking functionality could be later replaced
with threading support.
After fixing this, the slot was being set with the user's name as a
passphrase rather than the actual password they had. This is because we
were grabbing PAM_USER for both username and password. By grabbing
PAM_AUTHTOK for the password, we are able to correctly set the right
passphrase into the slot.

Thanks for your interest in this project!
I'm doing some pretty big rewrites at the moment, so I might not be able to accept all the changes you've submitted, but these are definitely helpful!
As mentioned by the bot above, you'll need to check out the CLA and sign it, then reply that you signed it here to verify.

@joshk0 Hey there! I still need you to either verify you signed or sign the CLA, and post a message saying you did so; I'll be unable to accept your contribution until then.

I signed it!

It looks like you fixed the slot-scanning. Anything else of value left in this PR? I think the packaging one will still help you.


No validation for the phone number

I notice that there are not validation for the phone number
if ($name && $email && $emailIsValid && $subject && $message) {
    // Send mail
}

You can at least add
$phone = preg_replace('/[^0-9]/', '', $phone);

if(strlen($phone) === 6 || strlen($phone) === 10 || strlen($phone) === 11) {
       $phoneIsValid = true;
}

if ($name && $email && $emailIsValid && $phoneIsValid && $subject && $message) {
    // Send mail
}

or you can make the length customizeable config file it i easier and more clear

Yes @the94air, this is purposeful. If you want to make the field mandatory, you can use your code as an example. Thank you.


fix: error paginario

Description
Please include a summary of the change.
fixes # (#216 )
Screenshots
If applicable, add screenshots about your changes
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How to test it
If applicable, describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.

Go to '...'
Click on '....'
Scroll down to '....'

Checklist:

[ ] Doesn't break the current code.
[ ] Passes linters and test, also is building.
[ ] Doesn't have spelling or grammatical problems.
[ ] Doesn't have unnecessary comments or debugging code.
[ ] The branch is updated with the last dev branch changes.

@angelik0828 Could you compare this one with https://github.com/Azordev/did-admin-panel/pull/220?
And you decide which style should stay

✔ This is working correctly the idea is to continue on the page and not to move with the scroll.


npm run seed error - Cannot find module './build/curriculum-english.json'

When I execute the command npm run seed I get the following error:
Nandish@Niraj MINGW64 ~/Desktop/VSCode/Free-Code-Camp/freeCodeCamp (master)
$ npm run seed

><EMAIL_ADDRESS>seed C:\Users\Nandish\Desktop\VSCode\Free-Code-Camp\freeCodeCamp
> node tools/scripts/seed/seedChallenges

C:\Users\Nandish\Desktop\VSCode\Free-Code-Camp\freeCodeCamp\tools\scripts\seed\node_modules\mongodb\lib\utils.js:132
      throw err;
      ^

Error: Cannot find module './build/curriculum-english.json'
    at Function.Module._resolveFilename (module.js:548:15)
    at Function.Module._load (module.js:475:25)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at getCurriculum (C:\Users\Nandish\Desktop\VSCode\Free-Code-Camp\freeCodeCamp\curriculum\lib.js:19:22)
    at challenges.deleteMany.err (C:\Users\Nandish\Desktop\VSCode\Free-Code-Camp\freeCodeCamp\tools\scripts\seed\seedChallenges.js:43:26)
    at result (C:\Users\Nandish\Desktop\VSCode\Free-Code-Camp\freeCodeCamp\tools\scripts\seed\node_modules\mongodb\lib\utils.js:414:17)
    at session.endSession (C:\Users\Nandish\Desktop\VSCode\Free-Code-Camp\freeCodeCamp\tools\scripts\seed\node_modules\mongodb\lib\utils.js:401:11)
    at ClientSession.endSession (C:\Users\Nandish\Desktop\VSCode\Free-Code-Camp\freeCodeCamp\tools\scripts\seed\node_modules\mongodb-core\lib\sessions.js:129:41)
    at executeCallback (C:\Users\Nandish\Desktop\VSCode\Free-Code-Camp\freeCodeCamp\tools\scripts\seed\node_modules\mongodb\lib\utils.js:397:17)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>seed: `node tools/scripts/seed/seedChallenges`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>seed script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      C:\Users\Nandish\AppData\Roaming\npm-cache\_logs\2018-10-12T13_44_58_047Z-debug.log

OS Version - WIndows 10 1809
Node version - v8.12.0
NPM version - 6.4.1
MongoDB version - v4.0.2

First wholly remove nodejs and npm from your system.
Then install latest Node version 10.12.0 and npm 6.4.1
Then try if it doesn't work then delete nodesource.list file in your system

I'm getting the same error.
Updating to Node version 10.12.0 did not solve the problem for me. I haven't tried uninstalling nodejs and npm yet though.
OS Version - WIndows 10 Home
Node version - v8.12.0 -> updated to v10.12.0
NPM version - 6.4.1
MongoDB version - v3.6.8

We have resolved this specific issue with local setup. Please re-clone and make a fresh installation. A few other issues in the setup are still being worked upon. We will post an update in Contributors Chat room when the local is 100% ready.
Thanks

Hi, I am having this same problem when I run npm run seed. Was there an update? I just joined, so I might have missed it while scrolling up.
Environment:
OS: Linux Mint 18.2 Sonya
Node.js v8 12.0
MongoDB shell version: 2.6.10


Questions about Reimplementing What's Hot

Sorry if this is not the right place to ask this. I am trying to add a "hot" algorithm to my feed. In the readme is says "you may subscribe to the firehose and filter for all posts and likes". Can anyone give me some more insight on this? Currently I am making a request for every post that makes it through my keyword filters like
const likesRes = await agent.api.app.bsky.feed.getLikes({
     uri: create.uri,
})

but I have a feeling that is not what I'm supposed to be doing. Here is the full code for more context. Thanks in advance to anyone willing to help!

I found another fork that answered my questions.. i was way off


Allow 'UseDevelopmentStorage=true' in the storage connection string

Description:
Right now the only way to run in storage emulator is to pass None for both account key/name, and set the EMULATED env variable.  We should allow setting that in the connection string, like node.js storage sdk.
Original Issue: https://github.com/Azure/azure-sdk-for-python/issues/375
Comments (0):

Thanks for the feature request! We are working on fully supporting the storage emulator like we do in other libraries for our next major release.
Thanks!

Hello @crwilcox ,
We have released the 0.30 version (#132) which addressed this feature request. Now to enable emulator support, all you need to do is pass the is_emulated=True bool when creating your Storage service. If you have issues with the new version in regards to this issue, please reopen it and continue the discussion.
Thanks!


[Request] Displaying weather text as well as the icon

Hi,
Would it be possible to display the text of the weather e.g. Sunny, cloudy, rain etc
for example

Currently this is as close as i can get

this is what --custom-indicator is for.
$ wttrbar --custom-indicator "{ICON} {weatherDesc}: {temp_C}C"


Add total ETH staked on the top in Portfolio: Positions page

will show up at the top as well w/ frozen funds etc


Change command name from geoproxy to queryproxy

Proposed changes
This PR changes command name from geoproxy to queryproxy.
Types of changes
What types of changes does your code introduce to the project: Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[X] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Update only documentation, not any source code.

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of
them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before
merging your code.

[X] I have read the CONTRIBUTING doc
[X] I have signed the CLA
[X] I have added tests that prove my fix is effective or that my feature works
[X] I have added necessary documentation (if appropriate)
[ ] Any dependent changes have been merged and published in downstream modules

Further comments
N/A

Coverage remained the same at 100.0% when pulling 49d10c6fd4b83a492062f5035c99bc3358fd3578 on fisuda:update/rename_cmd into cb0c802feac0cc3133f369618aa8ce23c0fda109 on lets-fiware:main.


Mono System.ValueTuple no longer works in 3.0.2

Godot version:
3.0.2 official mono
OS/device including version:
macOS High Sierra 10.13.3, Mono <IP_ADDRESS>
Issue description:
As of 3.0.2 (worked in 3.0.1), attempting to use System.ValueTuple in C#. will result in a System.IO.FileNotFoundException:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.

I should note that compilation passes without a hitch, runtime is the problem.
Minimal reproduction project:
SystemValueTupleGodot.zip
Note: you need to restore packages with NuGet.

I tried the attached project but couldn't reproduce the issue. I'm using the master branch of Godot (rev.: dad47d8876de45132226985dbbd079e060f6facc) and Mono <IP_ADDRESS>2.

Seems to be 3.0.x specific then, cc @hpvb.

Trying it on a Windows machine I can't reproduce it in ANY version. I'll have to look into it more.

Definitely seems to work on a custom build of 3.1 on macOS, so...?

Well the main question is does it still affect 3.0.2?

Well the main question is does it still affect 3.0.2?

Yep seems to affect 3.0.2 on macOS and Windows.

This appears to work on 3.0.3 on my tests

(I did had to delete the .mono and .import directories of the project after running nuget on Windows)


epic: Kernel

Currently keep this as pending to focus on decoupling and refactoring the current logic first

Please update the progress of this @vansangpfiev when you do hardware instrument

not well defined, closing


MAINT: improve robustness of Features

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
279 unchanged lines in 20 files lost coverage.
Overall coverage increased (+0.007%) to 91.636%

Files with Coverage Reduction
New Missed Lines
%

.nox/test-3-8/lib/python3.8/site-packages/cogent3/core/alignment.py
1
94.38%

.nox/test-3-9/lib/python3.9/site-packages/cogent3/core/alignment.py
1
94.38%

.nox/test-3-8/Lib/site-packages/cogent3/maths/scipy_optimize.py
2
84.87%

.nox/test-3-10/Lib/site-packages/cogent3/maths/scipy_optimize.py
3
84.92%

.nox/test-3-10/lib/python3.10/site-packages/cogent3/core/annotation.py
4
96.88%

.nox/test-3-10/Lib/site-packages/cogent3/core/annotation.py
4
96.88%

.nox/test-3-11/lib/python3.11/site-packages/cogent3/core/annotation.py
4
96.88%

.nox/test-3-11/Lib/site-packages/cogent3/core/annotation.py
4
96.88%

.nox/test-3-8/lib/python3.8/site-packages/cogent3/core/annotation.py
4
96.88%

.nox/test-3-8/Lib/site-packages/cogent3/core/annotation.py
4
96.88%

Totals

Change from base Build<PHONE_NUMBER>:
0.007%

Covered Lines:
236189

Relevant Lines:
257748

💛  - Coveralls


Trigger kroki only for PDF build

I have kroki enabled in my mkdocs like this:
plugins:
  - search
  - mermaid2
  - with-pdf
  - kroki:
      FencePrefix: ''
      FileTypeOverrides:
        mermaid: png

This works just fine for generating the PDF. However I still need to build a classic webpage in parallel, and I do not want kroki to replace the pretty-rendered svg mermaids in the web version.
Is there a parameter to limit kroki to the PDF build ?

This plugin is bound to the MkDocs events. Therefore it is not possible to differentiate if the output is targeted for a web page or a pdf.
The pdf plugin seems to offer dedicated experimental hooks Advanced Rendering Hooks but I do not know, if it works on the rendered page.
It COULD be possible to offer dedicated build command that can be called via these experimental hooks in pdf_event_hook.py.  But the project seems unmaintained, therefore I'm wondering if the manual effort is worth it..


updating tvm install docs

Updating the tvm install docs to assist a user in finding and copying zstd.dll to the correct folder.

Nice clarification! Reads much better to me. Hope we could fix the zstd issue more directly :-(


PHP Variable not echoing because it's not defined

changed $token for $customToken

Fixed with 07f1d8108a24e43e5ba0305fb74aee80559f5688 - thank you @johnparkerg!


Fix component rendering

While using it, i noticed that the component loses data-v so it cannot be used in conjunction with scoped styles. I noticed that the problem is returned array (() => [...]). Instead, I return () => withDirectives(...) directly, and moved script inside the component.
In my opinion, this has an additional advantage, because it does not generate elements outside the component in the DOM, which can also have negative and unexpected effects.

Thank you!


Ignore or preconfigure merchant ID for sandbox env

Describe the bug
The configure method requires merchantId (ref: https://github.com/paypay/paypayopa-sdk-node/blob/fdbb4e82ee60d1f2c7baffdb768874a9242ae3d0/src/lib/paypay-rest-sdk.ts#L31).
But there is no merchant ID issued for the sandbox environment. Which value should we use?
To Reproduce
Steps to reproduce the behavior:

Try to call the configure method in sandbox env.

Expected behavior
Clarify which merchant ID we should use for sandbox env.

You may want to sign up on the Paypay For Developers that would provide you with the merchant ID - http://developer.paypay.ne.jp/
However for our unit tests, we should use mocks

@shreyanshp Thanks for your reply. One question 🙇
Do you need to activate account to get merchant ID? I can't find any merchant ID.

I can't find any merchant ID on the developer console.

As of now, actually yes 😅
In the next release, by 16th, we would try to enable this before

As a workaround, you can get the merchant ID for sandbox from Paypay Lab - https://developer.paypay.ne.jp/develop/paypay-lab

And also you can get it from the profile icon

Even without activation, you should be able to access the sandbox with the above

@shreyanshp  I understand. Thank you so much 🙇  🙇  🙇


OneToOne EntityExtension broken in <IP_ADDRESS> (Internal Server Error)

PHP Version
7.4.22
Shopware Version
<IP_ADDRESS>
Expected behaviour
It should be possible to expand the product with a "OneToOneAssociationField" as described in the documentation.
This error is very critical because none of the plugins that extend the product entity can currently be used.
Actual behaviour
Currently, all plugins that extend the product entity with a "OneToOneAssociationField" lead to a 500 error when saving or editing products in the administration.
An error message appears in the upper corner.

In the developer tools you can see that there is an Internal Server Error.

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'OTO' in 'field list'
How to reproduce
Create a Plugin that extends the "Product" with a "OneToOneAssociationField" or download/clone my example plugin that reproduce this error.
Github repository here

Install the plugin.
Open the administration and edit an existing product (add a space in to the name) or try to create a new product.
Press "Save"

...Internal Server Error...

Your field is Inherited, you need to use the inheritance updater to add a new column in product table named like your association

Thanks, everything works as expected.
Thanks for your work 🙂

@shyim It seems as if the inheritance for product extensions does not work with a one-to-one relation. 🤔
I've updated the code in my reproduction repository but the extension is not inherited on to the variant products.
I've already tried everything and I'm running out of ideas... 😕


Negations in .helmignore cannot be used effectively

With the current semantics of negated rules in .helmignore, it is very hard to use them effectively. The existing implementation treats a negated and a non-negated rule in almost the same fashion - whatever matches/doesn't match gets ignored, and the remaining files are evaluated against other rules.
This makes it straight up impossible to have a negated rule where the (non-negated) pattern does NOT match Chart.yaml etc., as otherwise I get chart.metadata is required. In fact, I cannot think of any other reasonable negated ignore rule other than !*.yaml (and even that will strip NOTES.txt) -- even !*/*.yaml produces the above error (note that filepath.Match does not support {a,b} style matches), and this cannot be remediated by adding an explicit !Chart.yaml either above or below.
Given that helm has no concept of "default" ignores (at least in the presence of a .helmignore file), I would have expected negated ignore rules to be evaluated relative to the existing non-negated rules. Something that can be used for things like:
mostly-unneeded/
!mostly-unneeded/this-is-important

There are obviously some nuances here: what if a file matches both a negated and a non-negated pattern? Do negated patterns always win, or does the order matter in some way? Are directory and file matches treated differently?
However, these can be sorted out, and looking at how git does it might provide some good hints.
When thinking about changing the semantics, is backwards-compatibility a concern here? The way I see it, I would be surprised if anyone currently relies on negated patterns, but maybe there is something I am missing.

duplicate of https://github.com/helm/helm/issues/3622.


gogs: 0.11.91 -> 0.12.3

Motivation for this change
Should solve https://nvd.nist.gov/vuln/detail/CVE-2020-15867
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 102053 1

1 package built:

gogs

I just realized this is not doing what I thought it would be doing.


It needs to be prefixed by the ticket number

You need a message to explain what you did

Here I would propose:
JAMES-2263 Correct mailetContainer error handling

You might also want to cherry-pick this commit: https://github.com/chibenwa/james-project/commit/484c423c4a60febd6b442d4b7210656244220012
It proposes integration tests for mailet pipeline errors. You can remove the @Ignore in it to check your fix ;-)

You might also want to cherry-pick this commit: https://github.com/chibenwa/james-project/commit/484c423c4a60febd6b442d4b7210656244220012
It proposes integration tests for mailet pipeline errors. You can remove the @Ignore in it to check your fix ;-)

Thank you very much for your quick response and everything. Sorry for the commit message. I read about it after I made the commit. I'm looking forward to the new release with the fixes.

No problem.
Pro tip: Use git rebase reword feature for correcting the commit message.

Do you know when this fix is included in the release?

@apptaro  When merged the fixes are available on the master branch. You could be using it while waiting for a fix.
Concerning a release date, that is a good question. We need to switch to time based release so that I'm confident answering it.
Cheers,

Hi,
Any news about this pull request? Would you find time for handling the above comment?
Cheers, merry Christmas and happy new year!
Benoit

Oops, I have done all the fixing, but I have added unnecessary files to a commit. What's the easiest way to fix this? Sorry I'm fairly new to git..

Edit that specific commit. You can do that by prefixing it by a e in the rebase view.
e c785e20a7a JAMES-2263 My awesome commit

Then you can reset the commit:
git reset --soft HEAD~

You can then remove the file you don't want to include anymore:
git reset file/I/do/not/want/to/commit.txt

When done, re-commit the changes:
git commit -m "JAMES-2263 My awesome commit"

And finish the rebase with
git rebase --continue

If git complains about an empty commit, perform that command to skip the empty commit:
git rebase --skip

That's maybe a lot of commands, but it ends up not that hard to  do, when you get the habit.

Pro tip: Position a .gitignore to prevent you from committing these files in the first place.
Mine is:
target
.idea
*.iml
.gitignore
keystore
*.lib
*.jar
/site/
/.m2/
/release/
KahaDB/
src/homepage/_site/
src/homepage/.sass-cache/
src/homepage/Gemfile.lock
dependency-reduced-pom.xml
*.bak
.floo*

Hi, thank you very much. I think this PR is clean now. Please take a look.

Hi,
I also created an other ticket for :

Attaching the encountered exception to the mail
Have a HasException matcher (that will allow matching the FQDN of the exception)

This will allow very finned grained error handling while not having to write custom mailet/matcher.
As this is related to this contribution, I thought you might be interested. So I am mentioning the link here:
https://issues.apache.org/jira/browse/JAMES-2275
This proposal of contribution is on a related topic, should not be too hard to implement, and might even interest you ;-)
Cheers,
Benoit Tellier


ValueError: Dimension 0 in both shapes must be equal, but are 1 and 512 for 'Assign_78' (op: 'Assign') with input shapes: [1,1,128,512], [512,256,1,1].

When I use resnet_50, this error happened, can anyone help me? Thansk!

@qilicun  did you figure it out? I'm getting the same error!

@Coderx7 No，I didn't, do you have any ideas?

@qilicun We are on the same boat buddy. could'nt find any clue what could be wrong!
Im running the given example, without altering anything, yet it fails!

@qilicun : OK, I used the script from this post, and it is running just fine so far!
give that a try

Make sure the input tensors are of the right dimension:
For Theano backend:
('X_train: ', (num_training_samples, 3, 224, 224))
('X_valid:', (num_validation_samples, 3, 224, 224))
('Y_train:', (num_train_samples, num_classes))
('Y_valid:', (num_validation_samples, num_classes))
For Tensorflow backend :
('X_train: ', (num_training_samples, 224, 224, 3))
('X_valid:', (num_validation_samples, 224, 224, 3))
('Y_train:', (num_train_samples, num_classes))
('Y_valid:', (num_validation_samples, num_classes))
You can examine the dimension of inputs in this line X_train, Y_train, X_valid, Y_valid = load_cifar10_data(img_rows, img_cols) and compare it against yours.

Hey, I've run into this same issue and the input shapes are all correct. Is it an issue if my data has only one colour channel, i.e  the input shape is:
('X_train: ', (num_training_samples, 267, 267, 1))
('X_valid:', (num_validation_samples, 267, 267, 1))
('Y_train:', (num_train_samples, num_classes))
('Y_valid:', (num_validation_samples, num_classes))

getting the same error ... Could anyone solve this out?

This error pops up when I save a model based on a pre-trained Keras model (e.g. VGG16):
model.save(save_model_file_path)
and the load it again:
model = load_model(save_model_file_path)
seemingly, all params and dimensions should be same. How to solve?

@annanurov Did you find solution?

Anyone found a solution? Same error when I saved a vgg16 model and load it again.

I am stuck with the same problem. I haven't got the resolution yet, but try to look for config.py file for hints.

Solved!
I generate the train.txt file with the classes (A) of my own dataset, but gives a default classes(B) file in the train process. This lead to that the weight file works for a model of classes B, but only the dataset of class A given.
So, please just recheck your code carefully again.

same error here lol
anyone solved?

has anybody got a solution to overcome the error?Please do tell

For vgg 16 and my custom dataset, i met a similar error. I'm not sure this can help but i think you can try:

set data_format in Image DataGenerator to be : channels_first
Fix input size to (224, 224, 3).

This error might come from incompatible input shape with predefined network architecture.


2-step work around

This commit add two cookies to the login step.  Providing these cookies
will bypass the need to 2-step authenticate.  I've run this code daily
for two weeks now and it hasn't failed yet.  I don't think this is the
best solution; but it works and I know others can benefit from it.

+1. It works for me.

I can also confirm that this works for me. @mrooney do you plan to merge this?


Add example of dynamically rendered content

This PR provides an example of how to render content dynamically from other files. This helps to reuse content and does not require additional setup.
It is not super user friendly and is primarily geared towards involved folk adding those.

Optionally can do this in a different way i  discovered:
{{< include _content.qmd >}}

https://www.r-bloggers.com/2022/10/6-productivity-hacks-for-quarto/#reuse-content

Closing this as it is now being implemented in #51 and this reference is no longer needed 👍


Idea: Bring your own tags

Enable repositories to bring their own labels in the form of a fw.toml file:
tags = ["nvm", "project-a"]

Don't know yet if we should add the predefined tags on each sync or just on the first sync.
This would make porting tags a lot easier. The fw.toml file could be used for other things in the future.

Any thoughts on the idea?

Yeah this is a good idea but it has some annoying edge cases I'm not sure how to solve.
When to add the tag is one of them (should probably happen on sync but dealing with incoming deletes is super gnarly).
It's also somewhat of a security concern I think that a git pull might run code on your machine (after_clone or after_workon).
But I agree there are big benefits if tags are "crowd sourced"/centralized


Backmerge release 2.36.0

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.772%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
876

Relevant Lines:
878

💛  - Coveralls


[Question] about mod creation

I was just wondering if you ported this mod because it's an awesome mod and you weren't sure if the original was going to be updated and to improve upon it? Or just to improve on it? Or...just because you wanted to?

actually missed the fact that the original is quilt so that's probably the main reason

Mainly, I just want to play with SuperFancyClouds on fabric but original mod isn't support it. So, I ported it.
Next, I want to improve and try something on it (if I can. I'm a beginner of Minecraft modding :)

gotcha. Well thanks for the port and good luck with modding


[Bug]: A delay in update of table rows in edit mode when the source is storeValue or mutableJS

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Discord Link
https://github.com/appsmithorg/appsmith/assets/1189106/a2393adb-8cf2-4b9f-bca5-b113d380c3b7
Steps To Reproduce
Steps to repro are in the description
Public Sample App
No response
Environment
Production
Issue video log
No response
Version
Cloud

Not reproducible in prod


Improve Terms and Conditions Page with Scroll-Based Animation and Dark Mode Support

Added scroll-based animation effects for the Terms and Conditions page, including transitions for each section as the user scrolls. Also implemented dark mode styles for better user experience across different themes.
'fixed #544 '
@vanshchauhan21  Done

https://github.com/user-attachments/assets/19201599-0374-46c4-83e5-f0a3e34b00db


Add support for multiple images in a single pipeline/definition

It's common to have multiple images in the same container definition, say a web server and application server.
This allows you to specify an array for image argument which replaces each image in the container definition, in the respective order.

Have you got the bk CLI @patrobinson? https://github.com/buildkite/cli
Might be good to use for local testing, to get things passing.

@toolmantim thanks! I was going to ask what was failing, I ran lint and shellcheck and it looks fine. Will give it a ashot

@toolmantim This passes locally for me but the build is failing?

nvm I needed to bump the version in the readme on master


Currently, One Click does not work when getting the initial seed.

When attempting to get the Initial Seed using One Click, the console will connect, the breakpoint will be set, but 3DSRNGTool gives an error saying it failed to calibrate and to check my initial seed, despite me not having my initial seed. The same error pops up again after I reseed at the title screen in OR.
I haven't gotten to trying it with Sun yet, but unfortunately only 0.9.0 works with my Omega Ruby correctly. I can do RNG manipulation just fine with 0.9.0, only the newer versions are giving me trouble. I run Windows 7, if that makes a difference.

Error code?

0x001E790C. This error displays twice, once upon setting the breakpoint, once upon reseeding at the main menu.

Should be fixed, thanks. Check the lastest build on appveyor.

One Click seems to work now, but 3DSRNGTool does display some strange behavior. Firstly, it sets the breakpoint, but doesn't disconnect the system upon reseeding. PokeCalcNTR displays the seed as 00000000 even though the seed in 3DSRNGTool has successfully updated. I'm not certain if these are bugs or not.

update your plugin

Alright, seems to work now, thanks.


Swagger "Try it out" request is incorrect

The request sent to Umbrella is incorrect, should be "https" and include user's "api_key"

Previous was done in local development environment.
On the nightly.apinf.io result looks like this and swagger UI hangs on the loading state. API key is added to the Umbrella request, but browser doesn't accept it because it isn't "https". With "iframe" protocol checks are pretty strict.


Create two MakeFiles

one for docker users
one for regular users

@mfelici can you add any useful information here?
@roypaulin can you take the lead on that one?

Why do we need Makefiles ? We only need one where we can add any target we want. We use docker only to build dblink, which is convenient but you can also use this same Makefile to build dblink in a non-docker environment.

The current situation of vertica/dblink is a little bit messy. We merged the code but not the associated Makefile needed by the code. We are in the middle of the river. Either we cross the river completely or we go back to version 0.2.1. We have two options to fix this situation:
OPTION 1: we rename the current vertica/dblink Makefile > Makefile.docker and add a new Makefile copied from mfelici/dblink. One for docker envs, one for docker-free envs. Pros: fast & easy to implement. Cons: we have two Makefiles.
OPTION 2: we use a single Makefile but this means:
we merge the Makefile compile instructions from mfelici/dblink/Makefile
the “default” compile mode (make with no OSTAG and no VERTICA_VERSION) should work out of the box for the standard (non-docker) environment used by 99.99% of the DBLINK users
we add crystal clear instructions on how to build DBLINK on both docker/non-docker environment. Current instructions are misleading and incomplete… what is the meaning of OSTAG? Why to use it? How to manage non centos or ubuntu? What VERTICA_VERSION is used for?  How to activate DEBUG mode? etc...
test the new compile mode
Most (all?) of our DBLINK users have issues compiling vertica/dblink in standard (docker-free) envs.
My suggestion is to go OPTION 1 immediately (to get out to the river) and then plan & implement & test OPTION 2.
P.S. I will be back from my summer holidays next Aug 28th :-)
Saluti, Maurizio
Maurizio Felici | E: @.*** | M: +39<PHONE_NUMBER>

On 5 Aug 2023, at 04:57, Roy Paulin @.***> wrote:
Why do we need Makefiles ? We only need one where we can add any target we want. We use docker only to build dblink, which is convenient but you can also use this same Makefile to build dblink in a non-docker environment.
—
Reply to this email directly, view it on GitHub https://github.com/vertica/dblink/issues/21#issuecomment-1666364491, or unsubscribe https://github.com/notifications/unsubscribe-auth/AE7X25YW3EEIG4WEIYVIU43XTWZDJANCNFSM6AAAAAA3EKMVOA.
You are receiving this because you were mentioned.

I understand, but
1-there is only 1 target in that Makefile that is specific to docker that's why it doesn't make sense for me to create another Makefile.  Everything is already there to compile and install dblink on non-docker environment. we can easily improve it and the documentation.
2-vertica/dblink for now is only used by VerticaPyLab, mfelici/dblink is the one customers use (right?), so is there any pressure I am not aware of?
3-OSTAG, VERTICA_VERSION are only for internal use, we can make that clear.
I understand your concern, it is just that renaming it into Makefile.docker makes it look like it is just for docker when that's not the case. It is just that it also offers the possibility to use docker containers for building(which is pretty convenient for internal use, testing and release) but you can still use it on your own vertica environment.
The priority now is releasing 23.3.0 *.so file for dblink and once it's done I am going to work on improving the readme. So that instructions are clear for everyone.


fix: 3723 - now always replaces decimal separator for number format

Impacted files:

strings_helper.dart: removed now useless methods
text_input_formatters_helper.dart: now works in all cases, regardless of the presence of group separator in the target language, given that we don't use group separators in our decimal number formats anyway

What

The automatic number field fix (decimal separator tap dancing) was not working at all in some cases.
For instance, if the app locale was en_US, it was disabled.
That meant that on a French device with an US app, the user could type 6,85 which in US was parsed as 685.
The reason behind that was that for locale where group separator is , (and decimal is .) the string fix was problematic.
But in Smoothie we don't use group separator in the number format anyway.
For the record I was only able to test that on a test app, not in Smoothie, for reasons I will not explain again.
That means that additional tests would be appreciated, especially in the bug cases with a , device and a . app. Typically, when the user is (was) able to type 6,85 while the app language was set to en_US.

Fixes bug(s)

Fixes: #3723

Thank you very much @monsieurtanuki
I'm going to thoroughly take time to test this time

Thank you @teolemon for the review!
I've also fixed #3735.


js_callback?!

Can you give an example of the js_callback in use? I can't get it to work and can't find 'js_callback' anywhere in the latest develop commit.
I'm using theme mods and attempting to repopulate a dropdown selectize list of colour options on change of a color control. I've got it working with an event listener on the color fields but it'd be nice to use it in a more 'kirki' way as I'm guessing this might already be possible in the current code.
I'm also tempted to turn this into a radio button set... is there a js way to repopulate the options on these like there is with the selectize?
Any input would be awesome,
Luke

Hey there Luke!

Can you give an example of the js_callback in use? I can't get it to work and can't find 'js_callback' anywhere in the latest develop commit.

I'm afraid js_callback never really got properly implemented... it was always buggy so it was removed. It was a mistake that it existed in the docs, I removed it from there now.

I'm using theme mods and attempting to repopulate a dropdown selectize list of colour options on change of a color control. I've got it working with an event listener on the color fields but it'd be nice to use it in a more 'kirki' way as I'm guessing this might already be possible in the current code.

Actually what you have now sounds like the best way to handle it.
Kirki won't really be of any help there... I attempted to do something similar about a year ago, the only problem was that there was no reasonable way to properly abstract the logic in order to make it part of Kirki core.

I'm also tempted to turn this into a radio button set... is there a js way to repopulate the options on these like there is with the selectize?

Not unless you destroy and recreate the buttons every time there's a change.


Document new filtering syntax

Released in 2.0.11
Existing syntax: (can be used in classic tabcmd and Tabcmd 2)
tabcmd export /WorldIndicators/Population?Birth%20Rate%20Bin=1.5-3%25 --pdf
New syntax, with no need to encode the parameter values:
tabcmd export /WorldIndicators/Population --pdf -f b1.pdf --filter "Birth Rate Bin=1.5-3%"
Question for documenting: can an ampersand be entered in this option without encoding?

I would also like to understand this. I have tried the following commands to filter based on a value containing "&" but didnt work for me.
tabcmd export "/Action/Dashboard1" --pdf -f "Dashboard1.pdf" --filter "Account Name1=Mahindra & Mahindra"
tabcmd export "/Action/Dashboard1" --pdf -f "Dashboard1.pdf" --filter "Account Name1=Mahindra %26 Mahindra"
tabcmd export "/Action/Dashboard1" --pdf -f "Dashboard1.pdf" --filter "Account Name1=Mahindra %%26 Mahindra"

The error I get is: "list index out of range"
What would be the right command to pass "&" in this case?


Match Torch speed for sum reduction on M1

This PR is for matching PyTorch speed on the sum reduction on Metal (https://github.com/tinygrad/tinygrad/issues/1167)
When tested on an M1 Max, we get the following results:

test
Original
This PR

sum 1024 x 1024
2.05x slower
0.90x faster

sum 2048 x 2048
2.65x slower
0.87x faster

sum 4096 x 4096
10.90x slower
0.96x faster

sum 8192 x 8192
21.78x slower
0.88x faster

sum 16384 x 16384
36.65x slower
0.95x faster

cube_sum 256 x 256 x 256
11.62x slower
0.91x faster

line_sum 4194304
2.85x slower
0.98x faster

line_sum 16777216
10.29x slower
0.96x faster

max 4096 x 4096
16.21x slower
0.95x faster

Raw Results
NEW RESULTS
 sum                             1024x 1024    0.37 ms (    2.85 GFLOPS    11.45 GB/s) in torch,    0.33 ms (    3.17 GFLOPS    12.74 GB/s) in tinygrad,    0.90x faster       1.05 MOPS     4.23 MB
 sum                             2048x 2048    0.43 ms (    9.86 GFLOPS    39.59 GB/s) in torch,    0.37 ms (   11.31 GFLOPS    45.43 GB/s) in tinygrad,    0.87x faster       4.21 MOPS    16.91 MB
 sum                             4096x 4096    0.68 ms (   24.59 GFLOPS    98.75 GB/s) in torch,    0.66 ms (   25.59 GFLOPS   102.75 GB/s) in tinygrad,    0.96x faster      16.84 MOPS    67.63 MB
 sum                             8192x 8192    1.40 ms (   47.97 GFLOPS   192.64 GB/s) in torch,    1.23 ms (   54.73 GFLOPS   219.77 GB/s) in tinygrad,    0.88x faster      67.37 MOPS   270.53 MB
 sum                            16384x16384    3.68 ms (   73.26 GFLOPS   294.17 GB/s) in torch,    3.51 ms (   76.71 GFLOPS   308.05 GB/s) in tinygrad,    0.95x faster     269.48 MOPS  1082.13 MB
 cube_sum                   256x  256x  256    0.70 ms (   24.08 GFLOPS    96.71 GB/s) in torch,    0.63 ms (   26.54 GFLOPS   106.59 GB/s) in tinygrad,    0.91x faster      16.84 MOPS    67.63 MB
 line_sum                       4194304        0.42 ms (   10.12 GFLOPS    40.63 GB/s) in torch,    0.41 ms (   10.37 GFLOPS    41.64 GB/s) in tinygrad,    0.98x faster       4.21 MOPS    16.91 MB
 line_sum                       16777216       0.68 ms (   24.71 GFLOPS    99.22 GB/s) in torch,    0.66 ms (   25.66 GFLOPS   103.03 GB/s) in tinygrad,    0.96x faster      16.84 MOPS    67.63 MB
 max                             4096x 4096    0.69 ms (   24.55 GFLOPS    98.57 GB/s) in torch,    0.65 ms (   25.75 GFLOPS   103.40 GB/s) in tinygrad,    0.95x faster      16.84 MOPS    67.63 MB

OLD RESULTS
 sum                             1024x 1024    0.39 ms (    2.65 GFLOPS    10.62 GB/s) in torch,    0.81 ms (    1.29 GFLOPS     5.17 GB/s) in tinygrad,    2.05x slower       1.05 MOPS     4.19 MB
 sum                             2048x 2048    0.48 ms (    8.71 GFLOPS    34.85 GB/s) in torch,    1.28 ms (    3.29 GFLOPS    13.14 GB/s) in tinygrad,    2.65x slower       4.19 MOPS    16.78 MB
 sum                             4096x 4096    0.72 ms (   23.41 GFLOPS    93.63 GB/s) in torch,    7.81 ms (    2.15 GFLOPS     8.59 GB/s) in tinygrad,   10.90x slower      16.78 MOPS    67.11 MB
 sum                             8192x 8192    1.34 ms (   50.20 GFLOPS   200.79 GB/s) in torch,   29.12 ms (    2.30 GFLOPS     9.22 GB/s) in tinygrad,   21.78x slower      67.11 MOPS   268.44 MB
 sum                            16384x16384    3.57 ms (   75.09 GFLOPS   300.38 GB/s) in torch,  131.02 ms (    2.05 GFLOPS     8.20 GB/s) in tinygrad,   36.65x slower     268.44 MOPS  1073.74 MB
 cube_sum                   256x  256x  256    0.64 ms (   26.40 GFLOPS   105.59 GB/s) in torch,    7.39 ms (    2.27 GFLOPS     9.09 GB/s) in tinygrad,   11.62x slower      16.78 MOPS    67.11 MB
 line_sum                       4194304        0.43 ms (    9.85 GFLOPS    39.40 GB/s) in torch,    1.21 ms (    3.46 GFLOPS    13.85 GB/s) in tinygrad,    2.85x slower       4.19 MOPS    16.78 MB
 line_sum                       16777216       0.71 ms (   23.59 GFLOPS    94.35 GB/s) in torch,    7.32 ms (    2.29 GFLOPS     9.17 GB/s) in tinygrad,   10.29x slower      16.78 MOPS    67.11 MB
 max                             4096x 4096    0.69 ms (   24.22 GFLOPS    96.86 GB/s) in torch,   11.23 ms (    1.49 GFLOPS     5.98 GB/s) in tinygrad,   16.21x slower      16.78 MOPS    67.11 MB

Todo:

[x] Detect when a reduction can be split, and split the reduction
[x] Disassemble the MPS method is doing anything that we've completely missed to avoid needing 2 kernels
[x] Guard against performing this reduction on non-Metal devices
[x] Test whether we should strictly split the reduction into 2 kernels, or whether we continue splitting n times (current behavior) -> Limited to 2 kernels max
[x] Test case to ensure splitting to multiple kernels maintains correctness
[x] Fix tests
[ ] Find way to run both code paths for tests even when on small reductions

OUTDATED: Discussion in comments has more detail!
This PR is taking the 'two kernels' approach.
I've quite thouroughly tested various single kernel approaches. As Matthew points out, Metal has no global synchronization primitives, and so

Consequently, this usually implies that when the number of values to reduce is too large to do in a single threadgroup, a multilevel strategy is employed where threadgroups are dispatched and reduce their respective values into a partial reduction array.
A second kernel dispatch occurs to reduce the partial reduction values, and so on, until the operation is complete.

Global atomics for 32-bit signed and unsigned integers are available and are more preformant than the two kernel approach, but not for floating-point types.
He makes a strong case that the multiple kernel approach is really the only option for large reductions. Regardless, I'll disassemble the MPS method to confirm the logic here.
Matthew also points out a handwritten kernel with some clever SIMD tricks could futher improve the single-kernel approach, but the complexity of code-genning this makes me believe it's not yet worth it.

Changes made in tinygrad/:
------------------------------------------------------------
files                             insertions       deletions
------------------------------------------------------------
tinygrad/lazy.py                           7               0
------------------------------------------------------------
lines added in the tinygrad folder: 7

Bounty locked!
Re: two kernels, do we have a final answer on if PyTorch is doing this?

Working on reduces also got some major speed up on these tests (https://github.com/tinygrad/tinygrad/pull/1137). I decided to go with atomics to speed up slow reduces. I just got 80x slower to 8x slower, but cannot test this on m1.
The problem it worked slow, since it was generated with only 1 block (so only 1 SM is busy?). So the way here is to use atomics. I am able to generate kernel like this in my POC:
#include <metal_stdlib>
using namespace metal;
kernel void r1_1024_256_64(device atomic_float* data0, const device float* data1, uint3 gid [[threadgroup_position_in_grid]], uint3 lid [[thread_position_in_threadgroup]]) {
threadgroup float temp[256];
{ int gidx0 = gid.x;  /* 1024 */
  { int lidx1 = lid.x;  /* 256 */
    float acc_0_0 = 0.0f;
    for (int ridx2 = 0; ridx2 <= 63; ++ridx2) {
      float val_1_0 = data1[((gidx0*64)+(lidx1*65536)+ridx2)];
      acc_0_0 = (val_1_0+acc_0_0);
    } /* reduce */
    temp[lidx1] = acc_0_0;
    threadgroup_barrier(mem_flags::mem_threadgroup);
    if (lidx1 == 0) {
    float acc_m1_0 = 0.0f;
    {
    for (int tidx1 = 0; tidx1 <= 255; ++tidx1) {
      float val_m1_0 = temp[tidx1];
      acc_m1_0 = (val_m1_0+acc_m1_0);
    }} /* late_reduce */
    atomic_fetch_add_explicit(data0, acc_m1_0, memory_order_relaxed);
  }} /* local */
} /* global */
}

@geohot what's your opinion to add atomic_sum/max to backends (maybe as optional for be to implement)?

I don't understand all the implications of atomics.

Is torch using them?
Are they in OpenCL? What version?
What would it look like as a change? Maybe it's a flag on the store?

The main problem with generated reduces is that global_dim=1 and local_dim=256 (from the test_sum). It is just 256 threads (8 warps) running on 1 SM. This simply can't saturate the whole memory bandwidth. The internet says m1 main memory has a latency of 100ns. Assuming each of 256 threads load 4bytes, we got 1kb in flight every 100ns. This seems to be around 10gb/s. The only way to solve this is to have more threads to hide latency, the way to do this is to increase the global dim. This requires atomics, since we are going to write data in parallel manner (from global dim).
Apple has the similar implementation of reduce as example in their metal specs (p.179). This makes me believe that pytorch might use the same approach.
Currently I have support for atomics for metal only. Not sure if OpenCL supports atomics on floats but there are some workarounds. CUDA has support for float atomics and the same for 7900 xtx which has VK_EXT_shader_atomic_float).
Yeah, flags for stores sounds great.

I was curious about "what is PyTorch MPS doing for reduces"

From reading source, PyTorch just calls MPSGraph's reductionSumWithTensor.
From Instruments profiling, MPSGraph reductionSumWithTensor uses a compute shader reduce_multiple_passes_axes_add multiple times per single reduce:

From grepping, it looks like this shader is part of the MPSNDArray framework:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/metal-objdump \
-disassemble-all \
/System/Library/Frameworks/MetalPerformanceShaders.framework/Versions/A/Frameworks/MPSNDArray.framework/Versions/Current/Resources/default.metallib \
| sed -n '/reduce_multiple_passes_axes_add/,/reduce_multiple_passes_axes_min/p'

Nice work @madebyollin! So it looks like torch is using 2.

I think this should apply to all GPU-like backends, OpenCL, metal, cuda. We also have a lot more test coverage that way.

@nimlgen with this change, the primary generated kernel uses global_dim=128 and localdim=32, for example see one of the generated kernels below:
kernel void r_128_32_1024_4(device float* data0, const device float* data1, uint3 gid [[threadgroup_position_in_grid]], uint3 lid [[thread_position_in_threadgroup]]) {
{ int gidx0 = gid.x;  /* 128 */
  { int lidx1 = lid.x;  /* 32 */
    float acc0_0 = 0.0f;
    for (int ridx2 = 0; ridx2 <= 1023; ++ridx2) {
      float4 val1_0 = (float4)(*((device float4*)(data1+((gidx0*131072)+(lidx1*4096)+(ridx2*4)))));
      acc0_0 = (val1_0.x+acc0_0);
      acc0_0 = (val1_0.y+acc0_0);
      acc0_0 = (val1_0.z+acc0_0);
      acc0_0 = (val1_0.w+acc0_0);
    } /* reduce */
    data0[((gidx0*32)+lidx1)] = acc0_0;
  }} /* global+local */
}

So for single kernel approach you are spot on that this is the bottleneck, but for two-kernel we're actually hitting on all the major optimizations you mention.
To my knowledge metal doesn't support atomics for floats, only int types, so there doesn't seem to be a workable solution using them with that path but correct me if that's changed.
Thanks @madebyollin, thought this must be the case but good to see confirmed!

@geohot I've updated the PR to be a bit cleaner. I've checked and it appears to me that existing test/test_ops.py test cases cover off correctness of this optimization quite well. I'd say might be ready for a first review?

I think this should apply to all GPU-like backends, OpenCL, metal, cuda. We also have a lot more test coverage that way.

Is this in reference to self.device == "METAL" in this PR or referencing atomics discussion?
Side note: we can achieve approx 250 GB/s with a larger matrix and a few other tweaks around the codebase, but they all start clashing with other optimizations, so current change is the best I've gotton for 4096x4096 and smaller matrices.

I want two kernels on all GPU-like backends, nothing about atomics. That will also trigger all the tests.

with this change, the primary generated kernel uses global_dim=128 and localdim=32, for example see one of the generated kernels below.

Hmm, this kernel is still not very efficient. It has inner loop size of 1024 which is not good with only 1024 threads.
Merging this approach of 2 kernels (+ some optimizations) and atomics I got so far is 1.25 slower than torch with cuda (down from 2.14 slower for 2 kernels) for 16k matrix.

Raw results
***    0 E_131072_512_4                arg   2 sz [131072]           [512]        OPs    268M/   0.00G  mem  2.15 GB tm   5420.70us/     5.42ms (   49.52 GFLOPS,  396.16 GB/s)
***    1 r1_16384_512_32               arg   2 sz [16384]            [512]        OPs    268M/   0.00G  mem  2.18 GB tm   2454.02us/     7.87ms (  109.39 GFLOPS,  451.22 GB/s)
***    2 r1_32768_32_4_2               arg   2 sz [32768]            [32]         OPs      8M/   0.27G  mem  2.18 GB tm    128.00us/     8.00ms (   65.54 GFLOPS,  262.14 GB/s)
***    3 E_131072_512_4                arg   2 sz [131072]           [512]        OPs    268M/   0.28G  mem  3.22 GB tm   5118.98us/    13.12ms (   52.44 GFLOPS,  419.51 GB/s)
***    4 r1_16384_512_32               arg   2 sz [16384]            [512]        OPs    268M/   0.00G  mem  2.18 GB tm   2496.80us/    15.62ms (  107.51 GFLOPS,  443.49 GB/s)
***    5 r1_32768_32_4_2               arg   2 sz [32768]            [32]         OPs      8M/   0.27G  mem  2.18 GB tm    108.16us/    15.73ms (   77.56 GFLOPS,  310.23 GB/s)
JIT captured 2 kernels with 1 inputs
***    6 E_131072_512_4                arg   2 sz [131072]           [512]        OPs    268M/   0.28G  mem  3.25 GB tm   4908.03us/    20.63ms (   54.69 GFLOPS,  437.54 GB/s)
***    7 r1_16384_512_32               arg   2 sz [16384]            [512]        OPs    268M/   0.00G  mem  2.18 GB tm   2577.57us/    23.21ms (  104.14 GFLOPS,  429.59 GB/s)
***    8 r1_32768_32_4_2               arg   2 sz [32768]            [32]         OPs      8M/   0.27G  mem  2.18 GB tm    110.59us/    23.32ms (   75.85 GFLOPS,  303.41 GB/s)
***    9 E_131072_512_4                arg   2 sz [131072]           [512]        OPs    268M/   0.28G  mem  3.25 GB tm   5401.60us/    28.72ms (   49.70 GFLOPS,  397.56 GB/s)
***   10 r1_16384_512_32               arg   2 sz [16384]            [512]        OPs    268M/   0.00G  mem  2.18 GB tm   2572.61us/    31.30ms (  104.34 GFLOPS,  430.42 GB/s)
***   11 r1_32768_32_4_2               arg   2 sz [32768]            [32]         OPs      8M/   0.27G  mem  2.18 GB tm    108.35us/    31.41ms (   77.42 GFLOPS,  309.68 GB/s)
***   12 E_131072_512_4                arg   2 sz [131072]           [512]        OPs    268M/   0.28G  mem  3.25 GB tm   4980.74us/    36.39ms (   53.89 GFLOPS,  431.16 GB/s)
***   13 r1_16384_512_32               arg   2 sz [16384]            [512]        OPs    268M/   0.00G  mem  2.18 GB tm   2572.67us/    38.96ms (  104.34 GFLOPS,  430.41 GB/s)
***   14 r1_32768_32_4_2               arg   2 sz [32768]            [32]         OPs      8M/   0.27G  mem  2.18 GB tm    108.54us/    39.07ms (   77.28 GFLOPS,  309.13 GB/s)
***   15 E_131072_512_4                arg   2 sz [131072]           [512]        OPs    268M/   0.28G  mem  3.25 GB tm   4976.64us/    44.04ms (   53.94 GFLOPS,  431.51 GB/s)
***   16 r1_16384_512_32               arg   2 sz [16384]            [512]        OPs    268M/   0.00G  mem  2.18 GB tm   2573.22us/    46.62ms (  104.32 GFLOPS,  430.32 GB/s)
***   17 r1_32768_32_4_2               arg   2 sz [32768]            [32]         OPs      8M/   0.27G  mem  2.18 GB tm    111.62us/    46.73ms (   75.16 GFLOPS,  300.62 GB/s)
***   18 E_131072_512_4                arg   2 sz [131072]           [512]        OPs    268M/   0.28G  mem  3.25 GB tm   5121.02us/    51.85ms (   52.42 GFLOPS,  419.35 GB/s)
***   19 r1_16384_512_32               arg   2 sz [16384]            [512]        OPs    268M/   0.00G  mem  2.18 GB tm   2575.20us/    54.43ms (  104.24 GFLOPS,  429.98 GB/s)
***   20 r1_32768_32_4_2               arg   2 sz [32768]            [32]         OPs      8M/   0.27G  mem  2.18 GB tm    110.59us/    54.54ms (   75.85 GFLOPS,  303.41 GB/s)
***   21 E_131072_512_4                arg   2 sz [131072]           [512]        OPs    268M/   0.28G  mem  3.25 GB tm   5368.93us/    59.90ms (   50.00 GFLOPS,  399.98 GB/s)
***   22 r1_16384_512_32               arg   2 sz [16384]            [512]        OPs    268M/   0.00G  mem  2.18 GB tm   2581.31us/    62.49ms (  103.99 GFLOPS,  428.97 GB/s)
***   23 r1_32768_32_4_2               arg   2 sz [32768]            [32]         OPs      8M/   0.27G  mem  2.18 GB tm    110.59us/    62.60ms (   75.85 GFLOPS,  303.41 GB/s)
 sum                            16384x16384    2.46 ms (  112.36 GFLOPS   463.06 GB/s) in torch,    3.09 ms (   89.60 GFLOPS   369.27 GB/s) in tinygrad,    1.25x slower     276.82 MOPS  1140.85 MB

Btw CUDA torch seems to use only 1 kernel and atomics based on what I get from nsight.

this kernel is still not very efficient

@nimlgen agreed! I've been working on a new approach since then, it's able to get all the way to 0.95x faster than torch on 16k matrix (full results below).
How are your atomics working? From my research I was under the impression they were not functionally correct for floats on Metal?

test
Original
Upcoming

sum 1024 x 1024
2.05x slower
0.90x faster

sum 2048 x 2048
2.65x slower
0.87x faster

sum 4096 x 4096
10.90x slower
0.96x faster

sum 8192 x 8192
21.78x slower
0.88x faster

sum 16384 x 16384
36.65x slower
0.95x faster

cube_sum 256 x 256 x 256
11.62x slower
0.91x faster

line_sum 4194304
2.85x slower
0.98x faster

line_sum 16777216
10.29x slower
0.96x faster

max 4096 x 4096
16.21x slower
0.95x faster

Raw Results
NEW RESULTS
 sum                             1024x 1024    0.37 ms (    2.85 GFLOPS    11.45 GB/s) in torch,    0.33 ms (    3.17 GFLOPS    12.74 GB/s) in tinygrad,    0.90x faster       1.05 MOPS     4.23 MB
 sum                             2048x 2048    0.43 ms (    9.86 GFLOPS    39.59 GB/s) in torch,    0.37 ms (   11.31 GFLOPS    45.43 GB/s) in tinygrad,    0.87x faster       4.21 MOPS    16.91 MB
 sum                             4096x 4096    0.68 ms (   24.59 GFLOPS    98.75 GB/s) in torch,    0.66 ms (   25.59 GFLOPS   102.75 GB/s) in tinygrad,    0.96x faster      16.84 MOPS    67.63 MB
 sum                             8192x 8192    1.40 ms (   47.97 GFLOPS   192.64 GB/s) in torch,    1.23 ms (   54.73 GFLOPS   219.77 GB/s) in tinygrad,    0.88x faster      67.37 MOPS   270.53 MB
 sum                            16384x16384    3.68 ms (   73.26 GFLOPS   294.17 GB/s) in torch,    3.51 ms (   76.71 GFLOPS   308.05 GB/s) in tinygrad,    0.95x faster     269.48 MOPS  1082.13 MB
 cube_sum                   256x  256x  256    0.70 ms (   24.08 GFLOPS    96.71 GB/s) in torch,    0.63 ms (   26.54 GFLOPS   106.59 GB/s) in tinygrad,    0.91x faster      16.84 MOPS    67.63 MB
 line_sum                       4194304        0.42 ms (   10.12 GFLOPS    40.63 GB/s) in torch,    0.41 ms (   10.37 GFLOPS    41.64 GB/s) in tinygrad,    0.98x faster       4.21 MOPS    16.91 MB
 line_sum                       16777216       0.68 ms (   24.71 GFLOPS    99.22 GB/s) in torch,    0.66 ms (   25.66 GFLOPS   103.03 GB/s) in tinygrad,    0.96x faster      16.84 MOPS    67.63 MB
 max                             4096x 4096    0.69 ms (   24.55 GFLOPS    98.57 GB/s) in torch,    0.65 ms (   25.75 GFLOPS   103.40 GB/s) in tinygrad,    0.95x faster      16.84 MOPS    67.63 MB

OLD RESULTS
 sum                             1024x 1024    0.39 ms (    2.65 GFLOPS    10.62 GB/s) in torch,    0.81 ms (    1.29 GFLOPS     5.17 GB/s) in tinygrad,    2.05x slower       1.05 MOPS     4.19 MB
 sum                             2048x 2048    0.48 ms (    8.71 GFLOPS    34.85 GB/s) in torch,    1.28 ms (    3.29 GFLOPS    13.14 GB/s) in tinygrad,    2.65x slower       4.19 MOPS    16.78 MB
 sum                             4096x 4096    0.72 ms (   23.41 GFLOPS    93.63 GB/s) in torch,    7.81 ms (    2.15 GFLOPS     8.59 GB/s) in tinygrad,   10.90x slower      16.78 MOPS    67.11 MB
 sum                             8192x 8192    1.34 ms (   50.20 GFLOPS   200.79 GB/s) in torch,   29.12 ms (    2.30 GFLOPS     9.22 GB/s) in tinygrad,   21.78x slower      67.11 MOPS   268.44 MB
 sum                            16384x16384    3.57 ms (   75.09 GFLOPS   300.38 GB/s) in torch,  131.02 ms (    2.05 GFLOPS     8.20 GB/s) in tinygrad,   36.65x slower     268.44 MOPS  1073.74 MB
 cube_sum                   256x  256x  256    0.64 ms (   26.40 GFLOPS   105.59 GB/s) in torch,    7.39 ms (    2.27 GFLOPS     9.09 GB/s) in tinygrad,   11.62x slower      16.78 MOPS    67.11 MB
 line_sum                       4194304        0.43 ms (    9.85 GFLOPS    39.40 GB/s) in torch,    1.21 ms (    3.46 GFLOPS    13.85 GB/s) in tinygrad,    2.85x slower       4.19 MOPS    16.78 MB
 line_sum                       16777216       0.71 ms (   23.59 GFLOPS    94.35 GB/s) in torch,    7.32 ms (    2.29 GFLOPS     9.17 GB/s) in tinygrad,   10.29x slower      16.78 MOPS    67.11 MB
 max                             4096x 4096    0.69 ms (   24.22 GFLOPS    96.86 GB/s) in torch,   11.23 ms (    1.49 GFLOPS     5.98 GB/s) in tinygrad,   16.21x slower      16.78 MOPS    67.11 MB

@ae99 Atomics for float works from metal_version >= 3, but before that you could use add_relaxed and reinterpret_cast float to atomic_uint and it would works fine also a lot faster than just accessing global memory without it.
also PyTorch timing feels to be weird as MPSGraph reduce seems to be faster for native Swift version with MPSGraph (at least pure GPU timing on m1 ultra).

@geohot or @wozeparrot, I believe this is in another ready to review state when you get the time!

Does this handle real_strides being None?

Bounty is yours, congrats! Either post PayPal e-mail here or<EMAIL_ADDRESS>to claim

Added regression test with #1287, but I'm curious what was wrong that caused this in the first place. I read the code, didn't imagine a kernel split could change so much.

Ah apologies for delay, time zones. I'll look into why this broke things today.


Very slow start of LND even with Postgresql backend

Background
Starting, or restarting, my node will imply a wait time of about 20 minutes, of which 20s are spent opening the postgresql database, then a long series of
[ERR] RPCS: [/lnrpc.Lightning/GetInfo]: the RPC server is in the process of starting up, but not yet ready to accept calls
are produced (either GetInfo, or listpeers, or any other call that my running scripts send to lnd to fetch data) for about the next 10 minutes, and then another long series of
[ERR] RPCS: [/lnrpc.Lightning/ConnectPeer]: server is still in the process of starting
is spat out for roughly another 10 minutes, until channels start to be actually reconnected.
As mentioned before, I do have lndg jobs running every few seconds and my scripts checking whether lnd is alive with getinfo, but disabling them doesn't really appear to speed up anything.
Your environment

version of lnd 0.14.3
which operating system (uname -a on *Nix) raspberry bullseye
version of btcd, bitcoind, or other backend 0.22
any other relevant environment details raspberry pi 4 8gb

Steps to reproduce
Restart lnd on raspberry pi 4 8gb
Expected behaviour
Startup in a sane time (up to a coupld of minutes after database is opened maybe?)
Actual behaviour
lnd takes 20 minutes after database open to actually be operational

Is sync-freelist=1?
Is it compacting or not?

Is sync-freelist=1? Is it compacting or not?

sync-freelist is true., and this being postgresql backend it doesn't compact on start, rather I run compaction with VACUUM and VACUUM FULL from crontab

I think we can close this as a duplicate of https://github.com/lightningnetwork/lnd/issues/6187?

@openoms @krtk6160 @sandipndev

I think we can close this as a duplicate of #6187?

I think we can... how do I know that it's indeed because of forced synchronous graph caching though? I know about other Pi4 nodes that take a handful of minutes to start, or at least that's what they told me

how do I know that it's indeed because of forced synchronous graph caching though? I know about other Pi4 nodes that take a handful of minutes to start, or at least that's what they told me

A log line is printed that shows how long it took to initialize the cache: https://github.com/lightningnetwork/lnd/blob/262591c3331c2170697fe89b8c49ab857db0adf7/channeldb/graph.go#L243-L244

I know about other Pi4 nodes that take a handful of minutes to start, or at least that's what they told me

For rasp-pi's this might happen if they have a large database: the free list needs to be reconstructed on start up. This means some initial I/O and CPU burst. The CPU of a pi isn't exactly beefy so this can take some time especially if a lot of other stuff is running on the instance. In that case, 0.15 helps a lot as it keeps less state around, and the upcoming optional migration will cut down a lot of useless data which'll speed up all DB operations.

No luck.
zgrep populating .lnd/logs/bitcoin/mainnet/lnd.log.*.gz
yielded no results, while
zgrep Finished .lnd/logs/bitcoin/mainnet/lnd.log.*.gz
only returned
.lnd/logs/bitcoin/mainnet/lnd.log.443.gz:2022-07-02 XX:52:35.142 [INF] HSWC: Finished cleaning: num_closed_channel=13, num_circuits=0, num_keystone=0
.lnd/logs/bitcoin/mainnet/lnd.log.443.gz:2022-07-02 XX:52:41.687 [INF] LNWL: Finished rescan for 129 addresses (synced to block<PHONE_NUMBER>0000000002e5fdd7113e91148372d5e1e5cf3b5c21772c75c97f86, height 743328)

The log only prints on start up, but if you don't have the CHDB log sub-system set to debug, then it won't show up. So you might need to restart w/ that logging level to be able to see this log.

Doesn't look like what you said is the root of the problem:
Finished populating in-memory channel graph (took 21.812692264s, num_node_features=13655, num_nodes=13589, num_channels=145654)
about the same amount of time it took to open the detabase.
So something else must be causing the huge delay until lnd is actually operative.

Ran into a similar issue in one of the itest builds,
2023-02-28 08:00:44.389 [INF] BTCN: Server listening on <IP_ADDRESS>:7563
...
2023-02-28 08:00:44.877 [DBG] RPCS: [ListPayments]
2023-02-28 08:00:48.100 [DBG] RPCS: [walletbalance] Total balance=100.46129986 BTC (confirmed=100.46129986 BTC, unconfirmed=0 BTC)

// 27 seconds passed, which is quite long for a local node.

2023-02-28 08:01:05.104 [INF] INVC: New invoice subscription client: id=1
2023-02-28 08:01:05.607 [DBG] INVC: Invoice(pay_hash=d5a4938caeb65af73b44a4db30243879e029538f4832c0cb6bf30cbd69b09958): added with terms amt=123000 mSAT, expiry=24h0m0s, final_cltv_delta=40
...
2023-02-28 08:01:07.211 [ERR] RPCS: WS: error writing message to upstream http server: io: read/write on closed pipe
...

A slow startup caused the test to fail, need more investigation.

Since this is still open, let me add a comment. I am since 0.16.3 experiencing the same issue. Node remains in [ERR] RPCS: [/lnrpc.Lightning/GetInfo]: waiting to start, RPC services not available for 30+ minutes, on a really performant VPS, using Postgres.
Sometimes it doesn't even start at all, after being in that state for hours.
Any ideas how to speed up the boot (now using 0.17.0 issue still persists).

@MichaelAntonFischer what hardware is this on? We recently observed a case where a Raspberry Pi simply didn't have a good enough power supply and dips in the voltage caused the SSD to just lock up Postgres operations for minutes.
Looking at the description of the original poster, this could very well be the case for them here as well.

It's a VPS with 16 cores and 32 GB RAM, so that cannot be the issue.

Okay, yeah, doesn't sound like it. Can you check what Postgres is doing when it's so slow? There are a couple of ideas for debugging here: https://github.com/lightningnetwork/lnd/issues/8009
Also, pulling a goroutine dump might be helpful, especially when using /debug/pprof/goroutine?debug=2 instead of ?debug=1.

Thanks for the tips. Before I go into the extensive testing... I saw that there were recommended settings, when using Postgres. Sicne the issue only appeared on newer LND versions, what are the current recommended config values when using postgres?

I think using multiple connections (e.g. 20 or more, make sure that Postgres also has at least that many configured) and setting a timeout (to something like 1m or 5m) is probably a good idea. Other than that, I don't think there are any other recommended settings.
BTW, https://github.com/lightningnetwork/lnd/pull/7992 which is planned to land in v0.17.1-beta should definitely improve things for Postgres quite a bit.

linking discussion #8176 as it seems somewhat related and provides go routine dumps


On time percentage - reward efficient handling of flights.

I feel it would be a big enhancement to the game to reward the efficient handling of flights. Spinning planes, circuitous routes, ignoring waiting flights is not currently penalized. Players lack incentive not to send a flight around the block. That might change if the game tracked their on time percentage.
Another enhancement would be to add connections. A controller would think twice about spinning a plane if they have a connection to make.
These aspects could ultimately be incorporated into scoring and stats features. Since generating stats inherently requires the game to end perhaps missions or scenarios might also be considered? Stats and scores are more meaningful if players face precisely the same workload.
STATS
ON TIME PERCENTAGE
ARRIVALS
• Assign flights an arrival time (for programming purposes, perhaps a countdown?).
• Once under ILS control (both altitude and speed) the on time status appears on the flight strip.

• Stats: Number of on time arrivals and those that weren’t on time.
• On time %.
DEPARTURES
• Assign flights an expected time to clear the radar (again, programmers might use a timer?).
• As flights approach the edge of the radar the on time status appears on the flight strip.
• Stats: Number of on time departures and those that weren’t on time.
• On time %.
CONNECTIONS PERCENTAGE
CONNECTIONS
• Assign flights a connection condition that appears on the flight strip.

• Stats: Number of flights that made their connection and those that didn’t.
• Connection %.
SCORING
• Missed connections, late arrivals and late departures should incur a penalty.
• Bonus points for perfect play (no penalties, no late arrivals/departures, no missed connections).
• Display all penalties (if any) incurred during the session.
• Display points per minute (or per mission/scenario).

I like!!!! Gives a new challenge to the whole thing!

Awww yeah! This is the good stuff. The only one I don't care for is the connections; probably 95% of the airplanes flying to any of our airports in the game would have passengers connecting to another flight, and regardless the controllers wouldn't really know if they do or not, and it isn't even allowable for that to be weighed in when considering which aircraft is to get the delay when the airspace gets congested. They're supposed to be chosen based on what would cause the overall lowest time delay to all aircraft.
I am definitely a fan of the on-time percentage. Maybe when an arrival crosses the boundary, we take the distance to the airport divided by the max speed (250 or best capable), to get the fastest possible time to landing, and add tiers to it:

x1.3 or less: "early"
x1.5 or less: "on time"
x2.5 or less: "late"
more than x2.5: "very late" (big score deduct)

I am very excited by the response. I'd love to earn badges based on achievements. Something along the lines of:
(click to enlarge)

@erikquinn:

The only one I don't care for is the connections... when considering which aircraft is to get the delay ..they're supposed to be chosen based on what would cause the overall lowest time delay to all aircraft.

That make sense; scratch connections.

x1.3 or less: "early"
x1.5 or less: "on time"
x2.5 or less: "late"
more than x2.5: "very late" (big score deduct)

I like the tiers! Particularly because you padded the fastest possible time to land. That accounts for queuing due to traffic and the fact that we're not robots.
Any thoughts on scoring? How about a per flight multiplier? Flights that arrive and depart very late are multiplied by -100% (0 points). Late flights are multiplied by -80% (2 points). On time flights are worth the normal 10 points. Early flights are worth 150% (20 points).
A bonus at the end would also help. Only on time flights or better? 200 points. All early flights? 2000 points. There could be other achievements worthy of bonuses as well. Terrain on? you get a bonus (or per flight multiplier). Played the entire game at warp factor two? You get a bonus (or per flight multiplier).
A structure similar to this would create some real space in scoring, allowing for the cream to rise to the top. Not to be elitist, but it would also ensure that those in the upper echelons truly belong there.
Any feedback with regard to specific missions? Comparing apples to apples would really dial in this competition thing. I thoroughly enjoy KSFO; a great mix of arrivals and departures, it's quite intense (at least in waves) and the terrain adds a manageable challenge to it all. If about five of the (seemingly) random scenarios were available as presets from the menu then we could avoid asterisks next to the "World's Record" holder's name.

The ATC repository is being migrated to it's new home at https://github.com/openscope/openscope,
and thus, all issues are being closed. If this is still an issue with the latest version of the sim
(accessible at http://www.openscope.co), or is a feature you still think we are lacking,
please reopen the issue at the new repo.
Please note that the vast majority of these issues have been copied to the new repository, or else are covered by other issues created there. See the below screenshot for what it looks like when your issue is known in the new repo:

Thank you!
Closing this issue.


Database integration & ESLint

Integrate the application with the base MongoDB schemas & add ESLint packages

Very cool code Dennis!


feat(zones): adds an available services listing tab for zone ingresses

Adds a listing tab for ZoneIngress AvailableServices.
I've not added any e2e testing for this as yet, I will do once I get feedback whether this is what we want to show here as a first iteration. lmk and I'll write up some e2e tests for it if its good.
https://deploy-preview-1607--kuma-gui.netlify.app/gui/zones/driver-0/ingresses/monitor-0/services
Closes https://github.com/kumahq/kuma-gui/issues/1388

I was about to merge but I noticed I'd meant to add some basic e2e tests here so I've done that, I'll leave this hanging for a little while in case but otherwise I'll go ahead and merge

@johncowen how can I get a zone with ingresses? I don't seem to be able to find one...

@johncowen how can I get a zone with ingresses? I don't seem to be able to find one...

I think you’re looking for this information: https://github.com/kumahq/kuma-gui/pull/1586#discussion_r1348567841
TL;DR: Set a cookie KUMA_ZONE_NAME to the zone you’re looking at for the mocking stuff to know for which zone to provide mocks.


SM111 cache surveys dictionary

WIP:
This is a branch from SM111 Update Inbox View to Show Threads #86 so includes all changes from it until that PR is merged into master.
This update adds lazy caching for the dictionary of surveys. Without, a call is made to the survey service for every message created by an external user every time the inbox is loaded. The dictionary is cached the first time it is needed, then only fetched again if the app restarts or it attempts to get a short name for a survey ID that doesn't currently exist in it's cache.

Codecov Report

Merging #90 into master will increase coverage by 0.54%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #90      +/-   ##
==========================================
+ Coverage   97.23%   97.77%   +0.54%
==========================================
  Files          27       27
  Lines         723      765      +42
==========================================
+ Hits          703      748      +45
+ Misses         20       17       -3

Impacted Files
Coverage Δ

response_operations_ui/views/messages.py
100% <100%> (+3.57%)
:arrow_up:

...e_operations_ui/controllers/message_controllers.py
100% <100%> (ø)
:arrow_up:

...se_operations_ui/controllers/survey_controllers.py
100% <100%> (ø)
:arrow_up:

response_operations_ui/__init__.py
79.54% <100%> (+1.49%)
:arrow_up:

Continue to review full report at Codecov.

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


ixwebsocket wired install location

Describe the bug
installing ixwebsocket (without any additional label) gives output of:
    find_package(share CONFIG REQUIRED)
    target_link_libraries(main PRIVATE ixwebsocket::ixwebsocket)

Notice the word share in the above cmd output.
I tried different ways to find the package but in vain.
After some debug, it seems like the default .cmake file is located in the wrong location, a folder one level up:
Here is a screenshot of vcpkg\installed\x64-windows\share:

Environment

OS: Windows

To Reproduce
Steps to reproduce the behavior:

./vcpkg install ixwebsocket
check the location of ixwebsocket-config.cmake

The file is located in vcpkg\installed\x64-windows\share
Expected behavior
The file should be located in vcpkg\installed\x64-windows\share\ixwebsocket
Additional Notes
Manually move the three .cmake files into the ixwebsocket folder solves the problem.
I guess this is a type in the postprocess script and should be an easy fix.

Hi @xarthurx
Thanks for posting this issue.
I will fix this soon.


mypy: Fix erroring files.

Background
We have recently added mypy support to this repo, but many files are corrupted and throw errors on mypy.
Task
#126 updates the exclude_list in tools/run-mypy Each file in this list errors on mypy. We should fix each file and remove it from the list. zulip_bots/zulip_bots/bots is an exception, we don't enforce mypy annotations in this directory.
This task is great for beginners or/and those who want to get comfortable with mypy annotations.

@zulipbot claim

@derAnfaenger There's a bunch of files on that list that don't cause errors in my case (I tried removing them and running ./tools/run-mypy):
zulip/integrations/git/zulip_git_config.py
zulip/integrations/irc/irc_mirror_backend.py
zulip/integrations/perforce/zulip_perforce_config.py
zulip/integrations/perforce/git_p4.py
zulip/integrations/svn/zulip_svn_config.py
zulip/tests/__init__.py
zulip_botserver/tests/__init__.py
zulip_botserver/zulip_botserver/server.py

Could this be because mypy works differently with different Python versions? I use Python 3.6.

Possible. We have a fixed version of mypy in the virtualenv that should work the same for everybody, are you using that one (0.521)?

@derAnfaenger Yep.

@derAnfaenger Do these files still cause errors if you run ./tools/run-mypy without excluding them? If so, could you specify what version of Python you have?

Hrmm, this is strange: zulip_git_config.py contains no annotations at all and should therefore be caught by  --disallow-untyped-defs, but it doesn't. Adding --disallow-untyped-calls as an argument catches the file, but also a bunch of other files not yet in the exclusion list.
I'd say that you should feel free to remove the files not caught by mypy, since there hasn't been any breaking change to run-mypy.

@derAnfaenger Hm, interesting. I'll focus on the rest of the files then. Thanks for the feedback!

Just a quick update. I managed to reproduce the errors from all excluded files by deleting the .mypy_cache dir from the project root.

@alenavolk ahh, that's unfortunate -- I would have thought mypy's caching would be smarter than that.  Well, at least now you can start working on fixing the errors :)

Does it really make sense to annotate zulip/integrations/perforce/git_p4.py? It looks like a temporary solution that might get deleted (or replaced with a later version) in the future.


proposal: use b3sum instead of sha256 in checksums file

b3sum is much faster than sha256, and is the default on carbs linux.  As for implementations, I'd assume a preference for mcf's implementation. This has also been discussed previously in https://github.com/kiss-community/kiss/pull/39

Why BLAKE3 and not look at other hashing functions?

If we implement this, I suggest to add a b3sums file instead of checksum

Why? It's still a checksum

Why? It's still a checksum

The checksum name was suggested just because checksums would be treated as sha256 by old KISS versions so b3sums feels like a more appropriate name rather than choosing one just because the "correct" name is not available

This is feedback on kiss-community/kiss#72, but written here to keep the discussion in one place.
Given that the sh256 logic is still there, why not use the difference in names as an option: repo can use b3sums, but others can still use checksums without error until they are updated. Some generous repo maintainers could provide both files so that those who don't want to install an extra tool can choose their implementation.
On the other hand, but towards the same goal, the existing checksums file format could be changed - for example, so that the first line is the type ('sh256' or 'b3sum', or something else) or so that each line has a second field with the checksum type.
Having two fields in each line would provide a way to distinguish "old" checksums from the new format.

Given that the sh256 logic is still there, why not use the difference in names as an option: repo can use b3sums, but others can still use checksums without error until they are updated. Some generous repo maintainers could provide both files so that those who don't want to install an extra tool can choose their implementation.

The intention is for that logic to eventually be removed. I just want the transition to be less painful.

On the other hand, but towards the same goal, the existing checksums file format could be changed - for example, so that the first line is the type ('sh256' or 'b3sum', or something else) or so that each line has a second field with the checksum type. Having two fields in each line would provide a way to distinguish "old" checksums from the new format.

I feel like this just accomplishes the same thing in a more complicated (and still not backwards compatible) way.

https://codeberg.org/kiss-community/repo/issues/100


How to add new vehicles?

Hey, I'm trying to add Iris modification; currently I made SDF file and model.config file; when I tried to start simulation, it's failed with error:
ninja: error: unknown target 'gazebo_iris_with_4sensors'
Makefile:224: recipe for target 'px4_sitl' failed
make: *** [px4_sitl] Error 1

I made yesterday topic on discussion site here: https://discuss.px4.io/t/how-to-add-own-drone-as-build-target/17960, but since there's no response there, I decided to write about it here
Thanks! (and sorry for problems ;) )

I've answered in the forum :).


Add luadoc queries

The luadoc parser has a few problems with things it captures weirdly (or doesn't really capture), but we can get good highlighting for most type annotations in Lua with this.
Note: If you commit this before the update with types, then I can add luadoc there. Otherwise, if you commit the types update first, I can rebase this pull request and add the types here.

Merged. What does this pattern mean?
(_
  "[" @delimiter
  .
  field: (_)
  .
  "]" @delimiter @sentinel
) @container

In this text does [integer]: integer mean a table where there is any number of integer keys that map to integer values?
---@type { key1: { key2: { [string]: table<number, number | integer> }, [integer]: integer } }

Merged. What does this pattern mean?
(_
  "[" @delimiter
  .
  field: (_)
  .
  "]" @delimiter @sentinel
) @container

The dots just indicate that the elements should show up as immediate neighbors, and the reason I use _ twice is that there are multiple cases, where you write something like [integer] or [<any_type>] really. Instead of writing out the different cases, this should capture all of them. (I don't think the dots are actually needed, but I included them to be sure I catch only the things I wanted.)

In this text does [integer]: integer mean a table where there is any number of integer keys that map to integer values?
---@type { key1: { key2: { [string]: table<number, number | integer> }, [integer]: integer } }

Yes, that is my understanding of the types, e.g. a Lua table like this { 1 = 1, 2 = 2, 3 = 3 } can be described by the type annotation { [integer]: integer }. Otherwise, without the square brackets, you are meant to write keys before the colon in the type annotations, so { integer: integer } would mean you are using the key integer in the Lua table, e.g. { integer = 1 }.


Pass the SymEnv into #sort: indirectly through Reader

Thus, the keyword #smt2: is gone in favor of unary #smt2.

Closing in favor of #362 .


Stuck when loggin in when try to navigate back to login QR screen

Steps to replicate the issue

Go to https://demo.testnet.pangea.web4.world/
Click "Login with Pangea Testnet"
Click "Don't have Pangea Testnet yet?"
Click "Log in here" to go back to QR page
Scan with Pangea Testnet and click Next to login

What do you expect to happen?

I am logged into the demo website

What actually happens
I get stuck here

Your environment

Operating system: Android 5.0
Pangea Testnet version: 0.113

might be a duplicate of https://github.com/Tonomy-Foundation/Tonomy-ID/issues/1171