Extra ammo perk fixes

Fixes the following perks mentioned in #87:

Bow
Large Quiver
Battle Equipped

Throwing
Fully Armed
Battle Ready

Riding
Spare Throwing Weapon
Spare Arrows

Athletics
Extra Arrows
Extra Throwing Weapon

Since this patch covers several skill trees, I'm not sure where to put it, so it might be necessary to move it before merging.
The issue also referenced the perk Well Prepared on the Throwing tree, but that perk, if in fact isn't working, will require a different approach and I'm not sure if it's even worth to fix it with a patch instead of letting TW handle it, but this can be discussed later.

TaleWorlds could possibly have tickets for each perk, and only fix a portion instead of the whole thing.
Please break this patch up per perk. Otherwise, it looks good.

I made this a single patch instead of multiple small ones is because shared code, yes, but also performance considerations. MissionWeapon is a struct, so each time I modify the value of the object I have to create a whole copy of the object.
The way it's done, at most one copy is created and assigned. Doing it per perk increases this value up to 5.
Also I use Postfixes instead of prefixes to guarantee that I'm modifying the correct agent.Equipment without extra checks, but it doesn't make much of a difference either way.

If MissionWeapon is a struct, use a ref to pass it around so it doesn't get copied?

This doesn't seem to be invoked every tick.
This is invoked only once, when starting the mission.

what performance impact has been measured?
Fair enough, it just felt unnecessary when writing the code. I'll make the proposed changes and report back.

The ref proposed changes aren't necessary if performance isn't a concern, that splitting up bit though. :)

Should be good to go now.


Ability to ignore certain productions

It would be nice to be able to tell the lexer/parser to ignore certain productions (i.e. whitespace and comment productions) so that it becomes unnecessary to litter all other productions with comment/whitespace allowances. This may not be possible though, due to the fact that lexing is builtin with parsing?
Thank you

Hello, I've created a snippet to ignore some general cases: null, undefined and strings with only space symbols.
It can be required in the head of the grammar file, like:
{
  var strip = require('./strip-ast');
}

The two ways to improve it:

Customizable filter for terms — to ignore the specific terms that certain grammar is required.
Skip nested empty arrays — this can be done on second stage after strip, it'll remove «pyramids» of nested empty arrays.
If anyone interested, we can upgrade it to a package.

@richb-hanover Where did your ASN.1 definition parser efforts land?

@atesgoral - I bailed out. I didn't need a "real parser" - I only needed to isolate certain named elements in the target file.
So I did what any wimpy guy would do - used regular expressions. (And then I had two problems :-)
But it did the trick, so I was able to move on to the next challenge. Good luck in your project!

Having had a look at chevrotain and its skip option, something like this is hugely desirable.
Too often we find ourselves writing something like this:
Pattern = head:PatternPart tail:( WS "," WS PatternPart )*
{
  return {
    type: 'pattern',
    elements: buildList( head, tail, 3 )
  };
}

Would be cool if we could write this instead:
WS "whitespace" = [ \t\n\r] { return '@@skipped' }

IgnoredComma = "," { return '@@skipped' }

Pattern = head:PatternPart tail:( WS IgnoredComma WS PatternPart )*
{
  return {
    type: 'pattern',
    elements: [head].concat(tail)
  };
}

@richb-hanover, and anybody else who got here in search for a similar need, I ended up writing my own parsers, too: https://www.npmjs.com/package/asn1exp and https://www.npmjs.com/package/asn1-tree

A skip would be relatively easy to implement using es6 symbol, or maybe more durably by passing the parser a predicate at parse time (I prefer the latter option)

Just stumbled upon this too.
Not knowing anything about the innards of PEG.js, lemme throw a bone out there...
When we write a rule, at the end of it we can add a return block.
In that block, we can call things like text() and location(). These are internal functions.
Somewhere in the code the returned value of that block goes into the output stream.
So what would need to change in PEG.js if I want to skip a value returned by a rule if that value is the return of callking a skip local function ?
e.g. comment = "//" space ([^\n])* newline { return skip() }
As mentioned above, skip() could return a Symbol, which is then checked by the code somewhere and removed.

I don't understand your question. Are you looking for a way to fail a rule under some circumstances? Use &{...} or !{...}. Otherwise just don't use returned value of comment rule:
seq = comment r:another_rule { return r; };
choice = (comment / another_rule) { <you need to decide what to return instead of "comment" result> };

If it helps anyone, I ignore whitespace by having my top-level rule filter the array of results.
Example:

program
	= prog:expression+ {return prog.filter(a => a)}

expression
	= float
    / number
    / whitespace

float
	= digits:(number"."number) {return parseFloat(digits.join(""),10)}

number
	= digits:digit+ {return parseInt(digits.join(""),10)}

digit
	= [0-9]

whitespace
	= [ \t\r\n] {return undefined}

This will happily parse input while keeping whitespace out of the result array.
This will also work for things like comments, just have the rule return undefined and the top level rule will filter it out

That only works for top-level productions.  You have to manually filter every parent that could contain a filterable child.

@StoneCypher True, it does require some top level work, but it works for me, and I think as long as the gammar isn't too complex, one should be able to get away with having a top level filter.
Other than that, all I can think of is have a top level function that filters whitespace from input and pass every match through it. Slower for sure, and requires alot more calls, but easy if you (like me) pass everything into a token generator. You can call the filter function from where you generate tokens, and only have to worry about generating your tokens and the whitespace is more or less automatically filtered

One of the things I liked about the current HEAD of pegjs is it's (undocumented) support for picking fields without having to create labels and do return statements.  It looks like this:
foo = @bar _ @baz
bar = $"bar"i
baz = $"baz"i
_ = " "*

parse('barbaz') // returns [ 'bar', 'baz' ]

I feel like this gives nice, clean, explicit syntax for this use case plus a bunch of others.

@hildjj This is exactly what I needed in combination with parsing lists. Peggy is wonderful, thank you for your effort!


Makemigrations creates a new migration when running python 3

Running python manage.py makemigrations on a python 3 project creates the following migration:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models, migrations
import push_notifications.fields

class Migration(migrations.Migration):

    dependencies = [
        ('push_notifications', '0001_initial'),
    ]

    operations = [
        migrations.AlterField(
            model_name='apnsdevice',
            name='device_id',
            field=models.UUIDField(blank=True, null=True, verbose_name='Device ID', help_text='UDID / UIDevice.identifierForVendor()', db_index=True),
        ),
        migrations.AlterField(
            model_name='gcmdevice',
            name='device_id',
            field=push_notifications.fields.HexIntegerField(blank=True, verbose_name='Device ID', help_text='ANDROID_ID / TelephonyManager.getDeviceId() (always as hex)', null=True, db_index=True),
        ),
    ]

This does not happen on python 2.
I suspect this is caused by the presence of bytes in the initial migration (and here).

I think just adding the new migration will fix this and work correctly on both python versions.

I also experience this issue (and #153). Did you find a workaround?
I'm on 1.3.1 from pip (on python 3.4 and django 1.8.3)

I found a simple workaround: in my own migrations I just edited the dependency on push_messages to point to the 0001_initial file.
Seems to work so far on our test rig; still a real solution would be appreciated.

PRs welcome for the correct fix; I don't have a real world instance to test this on.

Is there a problem with my proposed #176?

I think adding @Ian-Foote's migration to the release would be the correct fix.

I believe this is no longer an issue since #222.


Smaller Minimum window size?

I'm finding the default size of the /hunty window to be a bit too big to use comfortably, as it covers up too much of my screen. Looking at Hunty/Windows/MainWindow.cs, it seems like the MinimumSize of the main window is hardcoded to be 650x400px, which covers a significant portion of my screen in practice (almost a quarter). I think it would be better if there were a way to make the window a bit smaller so I could move it off to the side when it's not in use (or perhaps have an option to scale the ui so it works better on lower resolution monitors?)

The hardcoded resolution is already scaled by dalamud, it all depends on your selected font size in the dalamud options (default is 12pt)
With a smaller screen should you just select a smaller font size there and every plugin will automatically adjust to fit that size better :)


Android - VBA - App is crashed after tap Connect bank account

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Launch the app
Log in with Expensifail account
Go to Setting - Preferences
Enable the Staging server
Go to any Workspace
Tap Connect Bank Account

Expected Result:
App is not crashed after tap Connect bank account
Actual Result:
App is crashed after tap Connect bank account
Workaround:
Unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: No
Email or phone of affected tester (no customers): any
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/168337763-36cdd1a3-92db-4a50-be59-6854d8d64422.mp4
log.txt
Expensify/Expensify Issue URL:
Issue reported by: Applause
Slack conversation:
View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

This was caused by my PR #8966. I put up #8993 to fix it.

Issue not reproducible during KI retests. (First week)


adding new custom backend selection function

Hi all,
just adding a new convenience function for people to specify a list of backends that they want to use with selections.Selection. In principal it can recover the by_backend selection with argument None, and the nanograv_backends with argument list of the NG backends.
This is to help testing the use of ECORR on newer EPTA/PPTA data that could have some subband TOAs from the same observation, similar to the use in NANOGrav. And other selections people may want to use.
Tutorial:
selection = selections.Selection(selections.custom_backends(None))
ngb = ["ASP", "GASP", "GUPPI", "PUPPI"]
selection_ng = selections.Selection(selections.custom_backends(ngb))
cb = "ASP", "GASP", "GUPPI", "PUPPI", "NUPPI", "ROACH"
selection3 = selections.Selection(selections.custom_backends(cb))
Result:
selection should be the same as selection.by_backend
selection_ng should be the same as nanograv_backends
selection3 is a new custom selection

The changes that @siyuan-chen has made here seem reasonable. The IPTA analyses using some legacy backends need the pre-2000 ephemeris files, i.e. the setIII 1980 file.
The coded selection addition is definitely an improvement over selections that are hard coded for specific backends.
I'm not sure the flat power law is needed. This might be more appropriate in extensions, but do others have thoughts?

I find list comprehension more readable than filter/map.  I made a suggestion in the diffs.

I'm not sure the flat power law is needed. This might be more appropriate in extensions, but do others have thoughts?

I agree that the flat power law is better suited to e_e.

The ephemeris files are good.  If you make a PR with just the SSE files, I can merge.  Otherwise I can try to manually git cherry-pick the SSE commits, outside of the github workflow.

I'm not sure the flat power law is needed. This might be more appropriate in extensions, but do others have thoughts?

I agree that the flat power law is better suited to e_e, but broken_powerlaw, turnover, etc. are all in enterprise proper. By that precedent maybe it does belong here.
If we want enterprise to only contain core functionality, we should move all of them to e_e.

I am happy to have those all in e_e; I was looking for where those other function were, to put the flat powerlaw in the same place.
@paulthebaker How does one do a PR with only selected elements? Originally, this PR was only supposed to be for the backend selection. But somehow newer commits were added to this PR. So, it didn't make sense for me to open another PR.

Hi all, also closing this PR due to too many changes in the proposed merger. Will resubmit cleaner PRs mergers.

Hi all, also closing this PR due to too many changes in the proposed merger. Will resubmit cleaner PRs mergers.


Error while installing atom packages

Trying to install any Atom package or any Node package whatsoever yelds the same result :
gyp info it worked if it ends with ok
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| linux | x64
gyp http GET https://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist/v0.11.13/node-v0.11.13.tar.gz
gyp http 200 https://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist/v0.11.13/node-v0.11.13.tar.gz
gyp ERR! UNCAUGHT EXCEPTION
gyp ERR! stack Error: EPERM, utime '/home/robert/.atom/.node-gyp/.node-gyp/0.11.13'
gyp ERR! System Linux 3.13.0-24-generic
gyp ERR! command "/home/robert/atom/apm/node_modules/atom-package-manager/bin/node" "/home/robert/atom/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "install" "--target=0.11.13" "--dist-url=https://gh-contractor-zcbenz.s3.amazonaws.com/atom-shell/dist" "--arch=x64"
gyp ERR! cwd /home/robert/.atom
gyp ERR! node -v v0.10.26
gyp ERR! node-gyp -v v0.12.2
gyp ERR! This is a bug in `node-gyp`.
gyp ERR! Try to update node-gyp and file an Issue if it does not help:
gyp ERR!     <https://github.com/TooTallNate/node-gyp/issues>

Any ideas on what is causing this ?

I think this is safe to close since the issue has been inactive for around four years, and the original comment references a v0.x version of Node.js. Also, the fix ended up being to upgrade node-gyp, which is always a solid choice :)


Split topic/assets deploy in a dedicated job

Changes:
The application deployment now follows this logic

The deployer creates a app-setup job. This creates the topic and assets. It runs with the non privileged service account.
If it fails, the app goes into state ERROR_DEPLOYING
If it completes, the deployer creates another job runtime-deployer. This creates the agents CRDs.
If it fails, the app goes into state ERROR_DEPLOYING
If it completes, the app goes into state DEPLOYED

Notes:

The delete process hasn't been touched
The agents are now created only if the assets setup went well

The change LGTM.
I am worried about existing applications, what's the story ?

what happens to an existing application when you restart the pods (or they are restarted by k8s) ?
what happens if the upgrade of the operator happens while an application is deploying or being deleted ?

The existing app won't be affected.
When an existing app is updated, the new runtime and job will be created.
The only case that is not fully covered is:

the application is being deployed with the job
the deployer gets upgraded before being able to handle the agents
if the app was declaring assets, they won't be created

To handle this scenario, we could still ensure the assets in the agents runner code. I'm not sure if it's worth it. In that case, a simple apps update will fix the situation.


Add enums for Eclipse Temurin and IBM Semeru Runtimes

Context
After the AdoptOpenJDK organization migrated to the Eclipse Foundation as Eclipse Adoptium, the OpenJDK distribution previously built under the AdoptOpenJDK umbrella has been split into two separate distributions:

Eclipse Temurin, which is the successor of the AdoptOpenJDK Hotspot builds
IBM Semeru Runtimes, which is the successor of the AdoptOpenJDK OpenJ9 builds

In order for Gradle to recognize these new OpenJDK distributions, this change set adds the respective enums to JvmVendor.KnownJvmVendor and JvmVendorSpec.
Refs #18004
Refs #18027

Output of `java -XshowSettings:all -version` of the currently available Eclipse Temurin and IBM Semeru Runtimes versions (on macOS)
for i in \
  temurin-8.0.302+8 temurin-11.0.12+7 temurin-16.0.2+7 temurin-17.0.0+35 \
  semeru-openj9-8u302-b08_openj9-0.27.0 semeru-openj9-11.0.12+7_openj9-0.27.0 semeru-openj9-16.0.2+7_openj9-0.27.0
do \
  asdf install java $i
  asdf shell java $i
  java -XshowSettings:all -version 2> "${i}.txt"
  asdf uninstall java $i
done

semeru-openj9-8u302-b08_openj9-0.27.0.txt
semeru-openj9-11.0.12+7_openj9-0.27.0.txt
semeru-openj9-16.0.2+7_openj9-0.27.0.txt
temurin-8.0.302+8.txt
temurin-11.0.12+7.txt
temurin-16.0.2+7.txt
temurin-17.0.0+35.txt

References

https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/
https://projects.eclipse.org/projects/adoptium.temurin
https://developer.ibm.com/languages/java/semeru-runtimes/

Contributor Checklist

[x] Review Contribution Guidelines
[x] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[x] Make sure all contributed code can be distributed under the terms of the Apache License 2.0, e.g. the code was written by yourself or the original code is licensed under a license compatible to Apache License 2.0.
[x] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team
[ ] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective
[x] Provide unit tests (under <subproject>/src/test) to verify logic
[ ] Update User Guide, DSL Reference, and Javadoc for public-facing changes
[x] Ensure that tests pass sanity check: ./gradlew sanityCheck
[x] Ensure that tests pass locally: ./gradlew <changed-subproject>:quickTest

Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation
[ ] Recognize contributor in release notes

FWIW, I'd be happy to see this in Gradle 7.3 as Eclipse Temurin and IBM Semeru Runtimes will provide OpenJDK 17 builds while AdoptOpenJDK will not.

@bot-gradle test and merge

@joschi The failures were indeed environment related. Let's see if it goes through this time....

@bot-gradle test and merge

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

Can we expect that the hopefully soon-to-happen 7.4-rc1 can do automated downloads when IBM_SEMERU will be used for the java toolchain?

Yes, see #18584 and feel free to test a nightly and report any issue even before RC1 😉

Our setup works with hardcoded distribution urls.
I tried
distributionUrl=https://services.gradle.org/distributions/gradle-7.4-20211118231651+0000-all.zip
but that one doesnt work. Can you help?


License question

Is there a reason this package has a GPL3 license? Would you consider changing it to MIT license?

Someone in our community brought this to our attention. We will have to remove this package from our dependencies if you want to keep it as GPL3. That is totally fine! I just figured I would reach out and see where you stood on this topic first 🙂

New version 2.1.0 is released under Apache 2.0 license, the same license as SWC.

@guoyunhe Thanks for this and the quick reply!


Handling browser history with reloadOnSearch: false;

When transitioning from state1 to state2 (they have different urls), why is the state2's controller able to receive the $locationChangeStart event ?
In other terms, why is the $locationChangeStart event fired after the initialisation of the state 2's controller ?
My state2's controller needs to listen to $location changes (reloadOnSearch: false), but not when transitioning from another state.
In fact, I want 4 things:

direct access (by url) to state with preset parameters (solved by enabling query params in state's url)
prevent the reload of the controller when manipulating the $location (solved by setting reloadOnSearch to false)
support browser's history buttons (solved by handling to $locationChange event)
reach state2 from state1 with preset query params (initialise the controller AND enter the $locationChange handler, so solved by the following ugly piece of code in the controller of state2):

// init the controller
init();
// handle browser's history buttons when reloadOnSearch is set to false
$scope.$on('$locationChangeStart', function (event, next, current) {
  // prevent double init when coming from another state (another url and another controller)
  if (next.split('?')[0] === current.split('?')[0]) {
    init();
  }
});

hey, 0.2.15 has much improved reloadOnSearch support. We're now updating $stateParams and also updating the URL if you use $state.go(".", { queryParam: 'newval' })

https://gist.github.com/eddiemonge/f6a58169c2846731a1eb


Please create a config file.

Hey guys, I'm generally pretty new to the Raspberry Pi and coding in general. I followed the steps for configuring my raspberry pi, but I am still getting this message. Can anyone help? Thanks a bunch guys!

Duplicate config/config.js.sample to config/config.js.
Modify your required settings and save.

Your config is probably malformed. Check your web inspector.

How do I duplicate config/config.js.sample?

cp config/config.js.sample config/config.js

Uh.... copy the file and rename?!

Go to config folder and rename config.js.sample to config.js and modify the config file in order to make your mirror your own.

Preferably copy the config.js.sample. If you simply rename it, the old .sample file gets deleted and this your git folder is "dirty" which doesn't allow you to simply update using git pull.
But since @nickroz7 doesn't know how to copy a file, this is probably too much info ...


Build libModSecurity with std C++20

what
Update build configuration to build the library using std C++20
why
The goal of this PR is not necessarily to update this configuration at this time, but rather to document that the library builds correctly at this stage using std C++20 on all platforms.
why not C++23
This PR is limited to C++20 because moving to C++23 is not yet possible on all platforms, as the compilers available in some of the images do not include support for this C++ std. Additionally, the current version of the ax_cxx_compile_stdcxx autoconf macro doesn't support C++23 yet either.
NOTE: Building the library using std C++23 on Windows found the issue found in PR #3220.
a note on adoption of C++20 ranges
C++20 introduces the ranges library (see here). The library offers a powerful and expressive way to handle data due to its declarative approach and composability.
However, adoption of the library needs to consider potential performance drawbacks when compared to existing approaches (such as STL algorithms), as library implementations may not be as efficient yet.
For the sake of reference, see:

Performance benchmark: Ranges VS STL algorithms VS Smart output iterators
Performance of C++20's ranges
C++ ranges are better than iterators?

sonarcloud code analysis on PRs usually recommend replacing existing code with C++20 ranges, but that feedback should be taken with a grain of salt (such as considering performance implications of the changes).
NOTE: This is feedback is unrelated to the Range-based for loop feature introduced in C++11.
references
The library was updated to build with std C++17 in PR #3079 (and the configuration was simplified in PR #3219 to make it easier to upgrade in the future).

I don't know whether all LTS Linux distributions containing/supporting ModSecurity have GCC capable of compiling with -std=C++20. I guess users of ModSecurity have little interest in which standard we are using.
As a user of a security product, I would be much more interested in the quality of the codebase the product is built from. First of all, IMHO, we should not only focus on what SonarCloud reports but on what the G++ compiler would report with the appropriate compiler and linker flags used throughout development and testing. Currently, we are using almost none of what G++ could provide regarding the quality of our code. Instead, we are relying on Cppcheck, with many suppressions, some without explanations as to why they are false positives.
So, IMHO, it would be a better idea to first use something like: g++ -std=c++17 -g -Wall -Wextra -Wconversion -Wshadow -Wpedantic -fsanitize=undefined,address during development and testing, and refactor the code to build warning-free. Besides this, making an effort to eliminate or explain the Cppcheck suppressions would be beneficial.
IMHO, we developers and the end users of ModSecurity will benefit more from these refactorings than from using newer language features. For example, until the next release, one of the goals could be to achieve a warning-free build, extend test coverage, and plan which parts of the code would be good to refactor using the new standard's constructs. After that, there's nothing against bumping to C++20, except the supported OSes' GCC standard coverage.
Reference:
https://wiki.sei.cmu.edu/confluence/display/c/MSC00-C.+Compile+cleanly+at+high+warning+levels

Hi @eduar-hte,

I don't disagree. As I stated in the description to this PR, the goal is not to have this integrated now, but rather to document how to update the compiler version in the future and also to provide visibility on whether the codebase compiles with C++20 (as I mentioned, it didn't with C++23 due to a couple of minor issues -that apply in C++17 as well-):

then may be you should add a small block into the README.
With this PR you requested to change the c++ version from 17 to 20.
I downloaded your branch into a Debian 11 (which is still a supported system) and I got:
...
checking pkg-config is at least version 0.9.0... yes
checking whether g++ supports C++20 features with -std=c++20... no
checking whether g++ supports C++20 features with +std=c++20... no
checking whether g++ supports C++20 features with -h std=c++20... no
checking whether g++ supports C++20 features with -std:c++20... no
configure: error: *** A compiler with support for C++20 language features is required.

So I'm not able to build the library.
Note: Debian 11 uses gcc 10.2, Ubuntu Focal (20.04 - this is an LTS system) uses gcc 9.3.

The goal of this PR is not necessarily to update this configuration at this time, but rather to document that the library builds correctly at this stage using std C++20 on all platforms.

But this PR definitely updates the configuration, doesn't it?

But this PR definitely updates the configuration, doesn't it?

Yes, but I'm not proposing integrating this PR right now, but at some point in the future.
I don't think there's any urgency to move to C++20. Moreover, my main concern would be upgrading to that version and start adopting the ranges library suggestions by sonarcloud and having a negative impact on performance, just because the tool said so.
I've been building the library myself using the default configuration, but also with newer versions of the standard as well, in order to detect any potential and unnecessary roadblock to upgrading in the future. This PR can easily be rebased as well to keep track of this until the moment is right to integrate it.

But this PR definitely updates the configuration, doesn't it?

Yes, but I'm not proposing integrating this PR right now, but at some point in the future.

Ahh, right - then please feel free to add labels on the right side of the page (now I added [do not merge]), which help us to discover the real reason :smiley:.

Ahh, right - then please feel free to add labels on the right side of the page (now I added [do not merge]), which help us to discover the real reason 😃.

@airween, I cannot set labels. I thought it was clear from the start, as I documented on the why section when submitting the PR anyway.

Ahh, right - then please feel free to add labels on the right side of the page (now I added [do not merge]), which help us to discover the real reason 😃.

@airween, I cannot set labels.

uhm, sorry. Yes, now I see a triage access needs to apply any label (and let me take the opportunity again and call your attention your pending invitation to developers group :) - with that, you are able to apply labels)

I thought it was clear from the start, or that's what I wrote on the why section when submitting the PR anyway.

Sorry, I was a bit confused, because the sent modifications would have changed the build system.
Sorry again.


how does it work?

I've installed plugin in Idea. After opening .class file i see the decompiled .class file, but i can't edit it. I got message that it is read only.
What do I do wrong?
Thank you!

Also me! I want to edit a class file but it doesnt allow me, it says "File Read-Only"

While in the .class file this shows up but errors for me :( :


links brainstorming

links from comaprator
The need of liks as in https://github.com/jenkinsci/report-jtreg-plugin/issues/16 grown.
With simple comparator, it is easy:

job:build

is easy, job is going to job, build is going to jtreg that build of that job

Later in each cell of  table, the X should have to point to that test  (based on row)(in jtreg results)  of the build (the build)  of the job
With  diff, it gets more interesting:

job:build

is easy, job is going to job, build is going to jtreg that build of that job

Later in each cell of  table, the number, or numbers must provide many links:

to point to that test  (based on row)(in jtreg results)  of the build (the build)  of the job
point to comparator with THIS as set-referential
point to the diff
or diffs? We know there is

clasicl patch
side by side view
rich-text patch (aka JRD's one)

and now imagine. diff agaisnt what? referential ? thats why we need that lin to set something as referential. Against any? A lot fo generating....

My only idea how to fulfil that  is soe floating tooltip with set of links  above each number:(
links in jtreg-results jelly page
Currently each test have exapnd and track link.
Expand will need to remain hardcoded. Howevert the (track) would be needed to be changed to dynamic.
Similarly as  per-page links are generated, an mechanism to generate per-test links will need to be created. The track will be jsut one of the user-set links. (well documented as example). Other link here should be the call to stack-trace comparator targetted on that single test only

From top of my head
    public void printTable(String[][] table, int rowSize, int columnSize);
    public String generateTableHeaderItem(String mainLine, List<String> otherLines);

Would need quite an extension. Especially if there are supposed to be several numbers, each of its own set of links...
Maybe instead if String, a Object of Cell which may contain list of CellItems, where each cell item can have one primary link, and set of pupu links?

links from comparator of results
Ok, I agree.
links from comparing stack traces

pointing to that test -- ok, makes sense
point to comparator with THIS as referential -- ok, should be easy, just setiing set-referential switch
point to the diff(s) -- I think it can just point to one diff (for example the classic patch) and the users then can change the type of diff with altering some switch. I think this is better than having many different links, but no strong opinion.

Either way, floating tooltip or the details/summary tags with set of links makes sense to me, both will be usable I think.
links in jtreg-results jelly
So as I understand it, you will be able to set the track link in jenkins settings? Similary to the setting there already is? And there will be one more button to compare stack traces of the test?
Cell, CellItems
I'm for this (or similar) approach, since the table generator is now really ugly, this would make it more "prettier".


Validations leak app ids and service ports

When an app is created/updated, Marathon will check if the user specified a duplicated service port. If it did, it will respond with a validation error, including the id of the conflicting app, without checking if the user is authorized to see the id of the conflicting app.
cc/ @adam-mesos

Not good, since ideally this user wouldn't even know that the other app exists, let alone its full app_id.
But since you're not showing configuration, logs, or agent location, it's not the end of the world.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-1732. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.

Note: This issue has been migrated to https://jira.mesosphere.com/browse/MARATHON-1732. For more information see https://groups.google.com/forum/#!topic/marathon-framework/khtvf-ifnp8.


'Montserrat' font is not loaded

The recent change breaks the headers because the Montserrat webfont is not loaded.

@emirotin Will amend thanks for the catch

I can fix it, no worries

@emirotin thanks here's the link for reference:


Header flashes and moves on mobile

Open a page like this on mobile and you get a brief 'half load' while the banner appears from the right.
Maybe this is intentional, but it feels odd.

You can see this happen in the emulator as well, it just happens more quickly. I have the feeling this is an MDL issue though.

This is an MDL issue - just had a chat with Sergio, hopefully this will be fixable in 1.0.5 - if not we can probably do a custom fix.
Assigning to sergio for now.

I've cherry picked the fix from MDL into our branch - hopefully it should be good to land into MDL 1.0.5.


Support oEmbed on project, collection and dashboard.

oEmbed is a format for allowing an embedded representation of a URL on third party sites. The simple API allows a website to display embedded content (such as photos or videos) when a user posts a link to that resource, without having to parse the resource directly.
http://www.oembed.com/
http://viralpatel.net/blogs/oembed-open-format-web-developers/
Tool to test oEmbed discovery
http://oembed.frdnspnzr.de/

Related #104 and #79


connect a MongoDB

includes GET, PATCH, DELETE & POST methods for shoppingItems collection

Wow! Great work. I could only find little things, but am not qualified enough for all of your code. 😉 If you want to get a second review, feel free to set the rocket.

I know, it's a lot of code >_<
Thank you for being willing to have a look on it!! I implemented all your suggestions.


🏃 Sprint 2: First Experiment

This scopes the second sprint, lasting three weeks (May 10th – May 31st).

How much does HUNTRESS initialization help, compared to "broad one", "deep one", random?
(How robust is HUNTRESS to bootstrap?)
How quickly do different chains converge?
How do different moves influence mixing speed?
How do the landscapes look like for different FPR, FNR (and possibly missing rate?)

As a reader of your thesis, I'd like to see:

The plot with X axis being iteration number, Y axis being the loglikelihood of the sampled tree.
The number of iterations needed to sample the true tree.
Plot of the distance to the true tree on the Y axis for several chains and the iteration number on X axis.

We want to have this:

For FP and FN rates taken from SCITE simulation paper (probably 1% and 10%, but I don't remember) and 5, 10, 30, 50. mutations and 15,000 steps $\times$ 4 chains.
For a misspecified model, where the true rates are slightly larger that the specified ones to the model used in the MCMC inference. (Example: rather than having 1% and 10% error rates as given to the MCMC SCITE model, we simulate the data from the 2%, 15%).

Done.


#3132 Add passion feed enable/disable in landing page

Thank you for your contribution to the KodaDot NFT gallery.
👇 _ Let's make a quick check before the contribution.
PR type

[ ] Bugfix
[ ] Feature
[x] Refactoring

What's new?

[x] PR closes #3132
[ ] Requires deployment <rubick/magick_issue>
[ ] <brief_description_of_what_I've_added>

Before submitting Pull Request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality
[ ] I've posted a screenshot of demonstrated change in this PR

Optional

[ ] I've tested it at </rmrk/collection/26902bc2f7c20c546a-1FVG7>
[ ] I've tested PR on mobile and everything seems works
[ ] I found edge cases
[ ] I've written some unit tests 🧪

Had issue bounty label?

[x] Fill up your KSM address:
Payout

Community participation

[x] Are you at KodaDot Discord?

Screenshot

[x] My fix has changed something on UI; a screenshot is best to understand changes for others.

We might need to wait for https://github.com/kodadot/nft-gallery/issues/3113 to be fixed.

It was a bug on the rubick 😅

Please use prefferences in settings for that :)

but wouldn't this make hasPassionFeed global, like if you disable it on landing page, it would also get disabled in all the other places as well like spotlight and gallery @vikiival

but wouldn't this make hasPassionFeed global, like if you disable it on landing page, it would also get disabled in all the other

ok makes sense however I would prefer personally something else than a switch in the middle of the landing page
something like underlined primary text: show {global/personalized} data
WDYT @roiLeo ?

I would prefer personally something else than a switch in the middle of the landing page
something like underlined primary text: show {global/personalized} data

Sure this would be better, we could try to edit "Discover the most recent sales on rmrk" text.
Or maybe we can add instead a "Passion List" Component.
I wonder what was the root issue for adding passion feed in newestList/LatestSale?

this does seem a little better ux wise

Are you sure it's working as excepted? Nothing changed on my profile

Browser metadata
Path:      /
Browser:   Firefox 102.0 on Mac OS 10.15
Viewport:  1440 x 815 @2x
Language:  en
Cookies:   Enabled

Open in BrowserStack

Open Deploy Preview · Mark as Resolved

@roiLeo can you try now? was some issue with tags

@roiLeo can we just remove passion feed from landing page as a better option? As I don't think it is doing much for user , what do you think?

🙄

@roiLeo can we just remove passion feed from landing page as a better option? As I don't think it is doing much for user , what do you think?

as discussed here

fix(3404, 3294) bsxPassionFeed / bsxSubscanCleanup #3406 (comment)

we are hiding passion feed for now as it's heavy on squid and there seems to be more issues with it than provided value. I think it makes sense to postpone landing page passion feed as well.

okay, so I'll go ahead and change this PR to hiding passion feed then?

@roiLeo @petersopko have commented out passion feed logic now

yeah but the commented code is old, I mean its currently in the main branch, I removed my changes

In the end, what does this PR do? No need to merge commented code, we can reopen this one when needed

this PR was supposed to add option to switch between having data altered by your purchases, or having global data fetched. Currently, there isn't option to switch off the passion feed on landing and it's always altered data (passion feed).
@prachi00 followed up on

https://github.com/kodadot/nft-gallery/pull/3406#discussion_r917410776

and hid it completely for now, I think this is a good idea. we can come back to this here:

https://github.com/kodadot/nft-gallery/issues/3420

@roiLeo closing this PR as the passion feed is removed now so this PR isnt doing anything and #3424 did the same changes on landing page as this PR


Import libraries without string

like :
use "hascal.core";

it is better :
use hascal.core;

like :
use "hascal.core";

it is better :
use hascal.core;

Yes.it's better.I will change it

Thanks

new import syntax added with this commit


No sound output after the first selected song - pulseaudio backend (same problem with portaudio though)

Raspberry Pi 3 Ubuntu-Mate
Everything is fine for the first song that I pick and I can scrub within that as normal, but then when a new song starts it appears to load properly (using verbose mode) and pulseaudio still detects a sink-input but there is no sound output

Hi @thekingofjibs Do you still have this issue?

Hi @ComlOnline I have recloned and recompiled the latest version and unfortunately this is still an issue


grunt watch will not work after a bower install

The current bower file has docs added to the ignore list.  Currently, grunt watch requires this folder and will fail on attempting to build.
Either docs should not be excluded from bower, or the grunt watch command needs to be slightly modified.

Works without docs via grunt watch:sass

Dupe of #22177.

Going to punt on this for now—the Gruntfile likely shouldn't be in any of our package managers.


What do you think about Whatsapp new road map!

I have read on the internet that WhatsApp will change the way it works.
It will be possible to run WhatsApp Web without the need for the phone to be connected to the Internet.
For example  As telegram appreciation.
Do you think that this amendment will affect the work of this library "go-whatsapp" in particular?

Hmm as far as I know, no. Or that's what i think, cuz they're changing from phone side & there's lot of people who uese web so whatsapp won't remove that at least. But ye it'll effect this library as they'll change few things.

Let us think about this
There is no connection between the phone and the WhatsApp web, there is a man in the middle here, which is the WhatsApp server.
When you send a message to someone, you send it to WhatsApp, then WhatsApp sends it to the phone then the phone sends it to WhatsApp then WhatsApp sends it to the second party.
If WhatsApp wants to eliminate the phone form the game. it still the same for the API!
Whatsapp Chrome sends to the WhatsApp server, Here Whatsapp server will not send to the PHONE but send it directly to the second party.
What do you think

Based on the E2E cryptography of Whatsapp, that architecture of removing the phone is impossible considering that if the message can be send from one place as plain text and synced at another device as plain text, there would be no e2e crypto.
As you said beshoo, Telegram is one example, normal chats work like this but encrypted chat is a device storage logic(like Whatsapp) because of the cryptography. There can be no two point of output and a sync of devices if the system uses E2E, like Whatsapp does and most probably wont remove it.
So i think that this change, if not official, is probably hoax. But it can happen it cryptography is removed.

Based on the E2E cryptography of Whatsapp, that architecture of removing the phone is impossible considering that if the message can be send from one place as plain text and synced at another device as plain text, there would be no e2e crypto.
As you said beshoo, Telegram is one example, normal chats work like this but encrypted chat is a device storage logic(like Whatsapp) because of the cryptography. There can be no two point of output and a sync of devices if the system uses E2E, like Whatsapp does and most probably wont remove it.
So i think that this change, if not official, is probably hoax. But it can happen if cryptography is removed.

Do you think WhatsApp can not read the enc keys which stored in the device?
I still do not believe the e2e story.

Whether you believe it or not if it's secure doesn't matter, Whatsapp has an E2E encryption; otherwise they would have the cloud system like Telegram and Whatsapp Web would be made to work as Telegram Web(its easier this way), but the way it works now is to fit in the encryption system.
And if they ever try to do remove encryption(which is unlikely) or even think about it the whole system architecture will have to be remade, and that's is VERY hard to do.

@x00b What about Facebook messenger

And you can use messenger without the phone!

"Each of the device will have its own device keys.", this makes impossible to read a message send from one device in another one(like Signal, which uses the same principles as Whatsapp).
I can not say for sure if Messenger is E2E asymmetric but if it is it shouldn't be able to read messages send from device 1 in device 2, if its possible than the whole cryptography has no point. But again, Whatsapp is way more seriously about it than Messenger(it was even recommended by activists couple years ago), I say this because here in Brazil there been a lot of times that government blocked Whatsapp for not been able to read its messages because of the crypto.
Please read more about OpenPGP which is the standard of Whatsapp e2e cryptography than you will understand that if the system is really in use by theses apps, it shouldn't be able to read messages outside the device that stores the keys.
And again, if it is or not secure, doesn't matter, it has cryptography principles and by business it should be respected, if they don't than there's nothing we can do...

My all argument is about if we will be able to use this Lib or not if WhatsApp decides to change it to something like Messenger ...
>>I can not say for sure if Messenger is E2E asymmetric
Well, they said that as you can see.
I think they will store the key on the mobile device and the chrome but they will not send the message to the mobile device to be sent form it.

Yes, exchanging the keys would be the way to do it but it has no logic since the whole point of e2e that Whatsapp always made so important, is to keep the key secure.
About the lib, i think it would definitely change a lot, but if(big if) the websockets schema remains the same(it is possible), we can adapt, otherwise Houston, we got a problem.
But this is a unlike scenario until official statement from Whatsapp/Facebook. Let's wait and see.


[PSM Interop] Fix an issue with restarting k8s runner

Fixes the issue introduced in https://github.com/grpc/grpc/pull/33104, where stopping the current run didn't reset self.time_start_requested, self.time_start_completed, self.time_start_stopped. Because of this, the subsetting test (the only one redeploying the client app) started failing with:
Traceback (most recent call last):
  File "xds_k8s_test_driver/tests/subsetting_test.py", line 76, in test_subsetting_basic
    test_client: _XdsTestClient = self.startTestClient(
  File "xds_k8s_test_driver/framework/xds_k8s_testcase.py", line 615, in startTestClient
    test_client = self.client_runner.run(server_target=test_server.xds_uri,
  File "xds_k8s_test_driver/framework/test_app/runners/k8s/k8s_xds_client_runner.py", line 110, in run
    super().run()
  File "xds_k8s_test_driver/framework/test_app/runners/k8s/k8s_base_runner.py", line 112, in run
    raise RuntimeError(
RuntimeError: Deployment psm-grpc-client: has already been started at 2023-05-27T13:47:15.262461

This PR:

Instead of relying on the time_start_requested, time_start_stopped to produce GCP links, tracks the history run of each deployment. This fixes the issue described above, and adds support for listing all past runs executed by a k8s runner.
Minor: remove the unnecessary call to test_client.cleanup() when there's no past deployment runs (e.g. at the first iteration of for i in range(_NUM_CLIENTS):)

Note: the actual fix is just line https://github.com/grpc/grpc/pull/33280/files#diff-6c1812cee9b217f5dc42cbd0c18d587a1b8058018141c4d184baad90713b9b74L110, but without the rest of the changes, the GCP links at the subsetting test would only show the most recent client run, which is very misleading.

[ ] grpc/core/master/linux/grpc_xds_k8s_lb
[ ] grpc/core/master/linux/psm-security
[ ] grpc/core/master/linux/grpc_xds_url_map


[google-cloud-cpp] update to latest release (v1.40.1)

Updates google-cloud-cpp to the latest release (v1.40.1), including new features.
I manually tested the features on x64-linux.

What does your PR fix?

N/A

Which triplets are supported/not supported? Have you updated the CI baseline?

No change.

Does your PR follow the maintainer guide?

Yes.

Yes.

Thanks for the update!


feat: add support to Cloud Spanner client to connect to an emulator

If the SPANNER_EMULATOR_HOST environment variable is set, the connection will be made to the given host and port. The channel credentials will be set to use insecure credentials.
Usage:
export SPANNER_EMULATOR_HOST="localhost:9010"

I reviewed the PR as is. But please consider changing this implementation to match support for emulators in other client libraries. As examples:
Firestore: #3697
Datastore: #2998

Thank you for the advice @amanda-tarafa and @jskeet. I changed the implementation to match that of existing implementations.
@snehashah16 was however concerned about this implementation. The reason why we we're using an environment variable is because we want users to be able to use the emulator without having to recompile the application. It seems that this is impossible to do once the enum is introduced because customers would need to recompile their app.
The particular use case that @snehashah16 was most concerned about is customers who have a Travis CI setup for their production app. They would want to run tests against the emulator but run the app against prod. They would need to maintain two binaries. Or they can by set the connection to use EmulatorDetection.ProductionOrEmulator but that seems to defeat the purpose of having this enum to protect against folks accidentally spending a lot of money on Cloud Spanner.
Would like to hear your thoughts about this.

@amanda-tarafa @jskeet I have another question. Is there a way to get the Instance and Database admin clients to respect the environment variable? Or is it the case that they're all auto-generated so the only way to set the endpoint is for customers to do the following:
string hostAndPort = Environment.GetEnvironmentVariable("SPANNER_EMULATOR_HOST")?.Trim();
ServiceEndpoint emulator = ServiceEndpoint.Parse(hostAndPort);
Channel channel = new Channel(
        emulator.Host, emulator.Port, Grpc.Core.ChannelCredentials.Insecure);
InstanceAdminClient client = InstanceAdminClient.Create(channel);

The reason why we we're using an environment variable is because we want users to be able to use the emulator without having to recompile the application. It seems that this is impossible to do once the enum is introduced because customers would need to recompile their app.

Hi @skuruppu, in those cases, the client code would use the EmulatorDetector.ProductionOrEmulator enum value to indicate a preference for connecting to the emulator if the env variable is present, else to production. Which is basically no different to your original approach.
Also, client code could have other configuration means, say it can detect the environment is running in, and then, depending on that, it could set one EmulatorDetector value or the other.
Basically, always using EmulatorDetector.ProductionOrEmulator is equivalent to your original approach. The rest gives client code extra granularity and control, if they need it.

@amanda-tarafa @jskeet I have another question. Is there a way to get the Instance and Database admin clients to respect the environment variable?

@jskeet please confirm that you are OK with the following approach and that I'm not missing anything.
@skuruppu Even though both of those libraries are completely autogenerated, we can add custom bits of code in new files that won't get overwritten when the library is regenarated. For Database admin client (the same applies to Instance admin client):
The class DatabaseAdminClientBuilder is a partial class which means you can create a new file with a partial declaration of it, the result is no different than adding some code to the generated file itself except for the fact that the added code won't be deleted when regenerating.
This class inherits from ClientBuilderBase<TClient> which has a method protected virtual CallInvoker CreateCallInvoker() (and its async counterpart). This means that in your custom partial class declaration you can override this method (luckily it is not overriden by the generated code) .
So, what I would do is, add and EmulatorDetector enum (the same as you did for Spanner) to the Database admin client. Create a partial class definetion for DatabaseAdminClientBuilder and in this partial definition add an EmulatorDetection property and override the CreateCallInvoker and CreateCallInvokerAsync methods. When overriding the methods you need to check the EmulatorDetection property and if the emulator should be used, then create a CallInvoker that points to the emulator. Else just call the base implementation of CreateCallInvoker so it does as usual.
Let me know if I'm not being clear, I can probably create a draft PR for one of the clients that you can then finish off and use as a sample for the other admin client.

I'm afraid I won't get to this until Friday at the very earliest, and it's more likely to be next week. Sorry - I'm just juggling too many other things at the moment.

@amanda-tarafa: I think by the time we've got lots of different EmulatorDetection enums, we should probably put this into GAX in the next major version - along with at least some helper methods (although the different emulators have slightly different environment variables etc). But that's mostly for the future.
One tricky part is that some uses of just Spanner.Data implicitly connect to the admin APIs. I wonder whether we should make only Spanner.Data know about emulators, but provide an API for accessing the admin APIs from that. Then we can have a single idea of whether or not we're talking to emulators, and be consistent in that usage.
I'd also suggest that the partial classes here are probably more fiddly than I'd be happy asking @skuruppu to come up with, as they involve a fair amount of knowledge of our client builder hierarchy. One of us should probably take this on, as a more efficient way of getting this done.

+1 to adding support for emulators in GAX. I was thinking even if it made sense to add an annotation for this so the microgenerators could include the code themselves. Don't know if this might be out of scope for annotations though.
About adding it only to Spanner.Data, I'm concerned about people who might only need to depend on the admin APIs now having to depend on Spanner.Data for emulator support? This will have them depending on ADO.NET even when they might not need it. The usage of the admin APIs from Spanner.Data should not be a problem, we can propagate the setting from Data to the  admin libs. The problem might be with an application actively using both and forgetting to set the same emulator support. That probably would fail fast but...  Documentation? An analyzer even? A small Spanner.EmulatorSupport package that all Spanner libraries depend on and allows for centralized emulator management?
I'm happy to submit a PR for one of the admin APIs and at least we can see how it'd look like with the partial classes etc. I can have that in on Monday.

Hmm. If we add a common emulator enum to GAX, we can depend on it in the next major version... I wonder whether we should do all this work in that branch. I think we should at least make it feasible in Spanner.Data, and then all three clients would need to be lined up - so we do need some kind of commonality. But yes, I take your point about "admin only" users - if each client supports it directly, then Spanner.Data can just do the same thing for all of them.

Thanks @amanda-tarafa and @jskeet for the options. I have started work on adding the partial class using the Bigtable version of this as an example. I haven't got it working yet and won't get around to it till tomorrow afternoon so if you get to it before me, then that's totally fine. I realized that the lack of admin client support here was what was stopping me from getting the integration tests running with the emulator so that's why I started working on Amanda's idea last Friday.
As for adding the emulator enum to GAX, +1000 for that idea because I'm not a fan of redefining the same enum in multiple places (3 places just in the Spanner client for each API).
When is the next major version going out? I think we want this work to be in a release before the end of March at the latest.

We're hoping to release a beta of GAX v3 and all libraries in the next week or two, and ideally go to GA within a few weeks of that - around mid-March, perhaps, but it will absolutely depend on feedback. I think we could commit to a beta being available with this functionality being availbale before the end of March, but I wouldn't like to guarantee a GA release - particularly if there are other features to get done and merge in.
Having said that, I think it would be much better to work on the basis of the next major version branch rather than doing a load of work in this branch, only for that work to be effectively wasted pretty soon.
Amanda is going to put together a PR to get as much common code as possible in GAX, and then we can work on the Spanner-specific changes in this repo, in the next-major-version branch. I'd advise any other work trying to get this done in parallel.
Thinking about the user experience, I'd expect the following:

A connection string option where the value matches the enum name, e.g. EmulatorDetection=ProductionOrEmulator; this would affect all clients created by Google.Cloud.Spanner.Data
Properties in the client builders for each individual client (Spanner.V1, Spanner.Admin.Instance.V1, Spanner.Admin.Database.V1) for users not using the ADO.NET integration

The support for emulators is now in GAX. I'll create a PR to add that support to the builders for the three clients involved, and we can then revisit how that should be integrated into Spanner.Data.

The support for emulators is now in GAX. I'll create a PR to add that support to the builders for the three clients involved, and we can then revisit how that should be integrated into Spanner.Data.

Thanks @jskeet. I will close this PR then and I can open a new one based on what needs to be done.

@skuruppu: I'm happy for you to create a PR (bearing in mind that I changed the name of the partial methods to InterceptBuild and InterceptBuildAsync), or I could probably do so myself more speedily - it depends on whether you want to use this as an opportunity to dig into the code more.

Thanks @jskeet, I'd like to give it a try myself. Having said that, I won't get around to it for about two weeks given all the rest of the work going on. Hope that's ok.

That's fine by me, if we're okay in terms of timelines for the feature.


Add Mutation Testing

https://github.com/theofidry/mutation-testing
A curated list of useful resources related to mutation testing: the existing libraries across different languages, research papers, videos, conferences.

Thanks for making an Awesome list! 🙌
It looks like you didn't read the guidelines closely enough. I noticed multiple things that are not followed. Try going through the list point for point to ensure you follow it. I spent a lot of time creating the guidelines so I wouldn't have to comment on common mistakes, and rather spend my time improving Awesome.

Ping. Please also see #1363.

It's not really needed but you're right let's be consistent

❯ awesome-lint https://github.com/theofidry/awesome-mutation-testing
✖ Linting

  README.md:35:51
  ✖    1:1    Missing License section                                       remark-lint:awesome/license
  ✖    1:1    Missing or invalid Table of Contents                          remark-lint:awesome/toc
  ✖   11:4    Invalid list item link URL                                    remark-lint:awesome/list-item
  ✖   12:1    Marker should be 2, was 1                                     remark-lint:ordered-list-marker-value
  ✖   12:4    Invalid list item link URL                                    remark-lint:awesome/list-item
  ✖   13:1    Marker should be 3, was 1                                     remark-lint:ordered-list-marker-value
  ✖   13:4    Invalid list item link URL                                    remark-lint:awesome/list-item
  ✖   14:1    Marker should be 4, was 1                                     remark-lint:ordered-list-marker-value
  ✖   14:4    Invalid list item link URL                                    remark-lint:awesome/list-item
  ✖   15:1    Marker should be 5, was 1                                     remark-lint:ordered-list-marker-value
  ✖   15:4    Invalid list item link URL                                    remark-lint:awesome/list-item
  ✖   16:1    Marker should be 6, was 1                                     remark-lint:ordered-list-marker-value
  ✖   16:4    Invalid list item link URL                                    remark-lint:awesome/list-item
  ✖   35:50   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   35:51   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   38:74   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   38:75   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   40:66   List item description must end with proper punctuation        remark-lint:awesome/list-item
  ✖   46:52   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   46:53   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   53:70   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   53:71   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   54:58   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   54:59   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   55:106  List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   55:107  Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   65:62   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   65:63   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   66:54   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   66:55   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   67:98   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   67:99   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   70:70   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   70:71   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   71:56   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   71:57   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   72:70   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   72:71   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   75:54   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   75:55   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   80:52   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   80:53   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   86:66   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   86:67   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖   87:50   List item link and description must be separated with a dash  remark-lint:awesome/list-item
  ✖   87:51   Found reference to undefined definition                       remark-lint:no-undefined-references
  ✖  128:1    Marker style should be *                                      remark-lint:unordered-list-marker-style
  ✖  129:3    Marker style should be *                                      remark-lint:unordered-list-marker-style
  ✖  133:1    Marker style should be *                                      remark-lint:unordered-list-marker-style

  49 errors

https://github.com/sindresorhus/awesome-lint

Includes a succinct description of the project/theme at the top of the readme. (Example)

Contents should be an unordered list.

Don't include [abandoned] items. This is an Awesome list. Abandoned stuff are not awesome.

Ping

@sindresorhus updated the requested items at the exception of:

Don't include [abandoned] items. This is an Awesome list. Abandoned stuff are not awesome.

I have very mitigated feelings about it. Whilst I get the reasoning, in this peculiar case, mutation testing is a very green field. It's not exactly recent, but the tooling in general is very immature and it's not rare at all to still see a lot new mutation testing tools popping up in different languages. Since this list is about providing material about mutation testing, it is very interesting and important to be able to asses the existing (including abandoned tools) in order to identity what is there, missing or why it failed.
In other words: abandoned packages still can provide a lot of value for this topic.

it is very interesting and important to be able to asses the existing (including abandoned tools) in order to identity what is there, missing or why it failed.

None of the repos marked as [abandoned], as far as I could see, includes any reasoning for why they failed, and I don't think users will or even easily can determine that. So your reasoning is not very sound unless you plan to include a note on each item about the reason they failed and what the user can learn from that. If you insist on keeping them, I would suggest moving them to a separate Markdown file with the same organization, but just for abandoned items. Right now there's just too many abandoned project in the main readme and they create too much noise.

Ok, done

Entries have a description, unless the title is descriptive enough by itself.  I would expect the linked mutation testing doc to be linked here. I found it via Google instead, but still...

Because the list is not following the awesome standards? It still could be awesome, just not up to standards to include it here.


support for huaweicloud sms

Signed-off-by: zhu733756<EMAIL_ADDRESS>we have integrated SMS providers like Aliyun, Tencent Cloud, this pr aims to add  SMS provider Huawei cloud.

Add custom struct definition.
Add webhook for Huawei Credential information.
Supplement the interface method MakeRequest to send SMS requests.

/cc @benjaminhuo @wanjunlei

/cc @benjaminhuo @wanjunlei


No window titles are displayed for top-level tabbed/stacked layouts

If I create a root-level tabbed layout, no border is displayed for any of the tabbed windows nor for the container itself, so I don't know if there are multiple windows or not and even how they are named:

This issue is similar to #315.
I am using Polybar, but it is configured (see below) as the x11_bar and does not overlap the containers. Non-root level tabbed/stacked layouts do work as expected, and so do the top-level horizontal/vertical layouts:

Context
Arch Linux + Wayland.
Way Cooler installed with the official installation script from http://way-cooler.org:
curl https://way-cooler.github.io/way-cooler-release-i3-default.sh -sSLf | bash -s  way-cooler-bg  wc-grab  wc-lock

Way Cooler version
$ way-cooler --version
Way Cooler 0.8.0
Way Cooler IPC version 1

init.lua
way_cooler.programs = {
  x11_bar = "polybar-wayland_XWAYLAND0"
}

way_cooler.bar = "polybar"

util.program.spawn_at_startup("polybar", "wayland")
util.program.spawn_at_startup("wc-bg", "-f solar_system.jpg", "-m tile")

local active = "40798c"
local inactive = "353a47"

way_cooler.windows = {
  gaps = { -- Options for gaps
    size = 0, -- The width of gaps between windows in pixels
  },
  borders = { -- Options for borders
    root_borders = false, -- Display borders in root containers by default
    size = 15, -- The width of the borders between windows in pixels
    inactive_color = inactive, -- Color of the borders for inactive containers
    active_color = active -- Color of active container borders
  },
  title_bar = { -- Options for title bar above windows
    size = 20, -- Size of the title bar
    background_color = inactive, -- Color of inactive title bar
    active_background_color = active, -- Color of active title bar
    font_color = "808080", -- Color of the font for an inactive title bar
    active_font_color = "ffffff" -- Color of font for active title bar
  }
}

way_cooler.mouse = {
  lock_to_corner_on_resize = false
}

mod = "Super"

local key = way_cooler.key

local keys = {
  -- Open dmenu
  key({ mod }, "e", util.program.spawn_once("rofi", "-show run")),

  -- Open terminal
  key({ mod }, "return", util.program.spawn_once("lxterminal")),

  -- Lock screen
  key({ mod, "Shift" }, "l", util.program.spawn_once("wc-lock")),

  -- Lua methods can be bound as well
  key({ mod, "Shift" }, "h", function () print("Hello world!") end),

  -- Some Lua dmenu stuff
  key({ mod }, "l", "dmenu_eval"),

  -- Move focus
  key({ mod }, "left", "focus_left"),
  key({ mod }, "right", "focus_right"),
  key({ mod }, "up", "focus_up"),
  key({ mod }, "down", "focus_down"),
  --
  key({ mod }, "h", "focus_left"),
  key({ mod }, "s", "focus_right"),
  key({ mod }, "n", "focus_up"),
  key({ mod }, "t", "focus_down"),

  -- Move active container
  key({ mod, "Shift" }, "left", "move_active_left"),
  key({ mod, "Shift" }, "right", "move_active_right"),
  key({ mod, "Shift" }, "up", "move_active_up"),
  key({ mod, "Shift" }, "down", "move_active_down"),
  --
  key({ mod, "Shift" }, "h", "move_active_left"),
  key({ mod, "Shift" }, "s", "move_active_right"),
  key({ mod, "Shift" }, "n", "move_active_up"),
  key({ mod, "Shift" }, "t", "move_active_down"),

  -- Split containers
  key({ mod }, "m", "split_horizontal"),
  key({ mod }, "v", "split_vertical"),
  key({ mod }, "z", "horizontal_vertical_switch"),
  key({ mod }, "c", "tile_stacked"),
  key({ mod }, "w", "tile_tabbed"),
  key({ mod }, "f", "fullscreen_toggle"),
  -- key({ mod, "Shift" }, "q", "close_window"),
  key({ mod }, "x", "close_window"),
  key({ mod, "Shift" }, "space", "toggle_float_active"),
  key({ mod }, "space", "toggle_float_focus"),
  key({ mod, "Shift" }, "r", "way_cooler_restart"),

  -- Quitting way-cooler is hardcoded to Alt+Shift+Esc.
  -- If rebound, then this keybinding is cleared.
  key({ mod, "Shift" }, "escape", "way_cooler_quit"),T
}

-- Workspace bindings for the Programmer Dvorak keymap.
local numerics = {
  [0] = "asterisk",
  [1] = "parenleft",
  [2] = "parenright",
  [3] = "braceright",
  [4] = "plus",
  [5] = "braceleft",
  [6] = "bracketright",
  [7] = "bracketleft",
  [8] = "exclam",
  [9] = "equal",
}
for i, k in pairs(numerics) do
	table.insert(keys, key({ mod }, k, "switch_workspace_" .. i))
	table.insert(keys, key({ mod, "shift" }, k, "move_to_workspace_" .. i))
end

-- Register the keybindings.
for _, key in pairs(keys) do
    way_cooler.register_key(key)
end

-- Register the mod key to also be the mod key for mouse commands
way_cooler.register_mouse_modifier(mod)

-- Execute some code after Way Cooler is finished initializing
way_cooler.on_init = function()
  util.program.spawn_startup_programs()
end

--- Execute some code when Way Cooler restarts
way_cooler.on_restart = function()
  util.program.restart_startup_programs()
end

--- Execute some code when Way Cooler terminates
way_cooler.on_terminate = function()
  util.program.terminate_startup_programs()
end

Debug log
$ way-cooler 2> wc.log

See file wc.log.

Thank you for the detailed issue, I'm going to point to this whenever I need to give examples of a good report.
I think I have experience the exact same thing on my setup. Just in case I have: does this only happen on one workspace (namely the first one)? If so, try switching to a different workspace on the same monitor without any windows in the first workspace (so that it is deleted, since workspaces are deleted when switched away and they have no windows on it) and then switch back and try again.
I've found that with init sometimes the first workspace doesn't size its contents correctly (probably a race condition somewhere).

I've tried switching to a different workspace with no windows in the first workspace, then switching back and creating a tabbed layout. Unfortunately, I experienced the same problem. It actually seems that in the case I have there is no difference which workspace you choose (I completed the same switch-there-and-back procedure with other workspaces) -- it does not render borders of the root-level container whichever workspace it is.

Oh I don't know how I missed this:
    root_borders = false, -- Display borders in root containers by default

That should be true, then you get root borders

Yes, thank you, now the borders are displaying. Sorry for my oversight. But the first thing I noticed after logging in is that on the first workspace there are no borders until switching to another workspace and then back, i.e. the race condition you described previously actually holds. And may I ask you, is there a way to display root borders only for stacked and tabbed layouts just like in i3wm, as the caption 'Horizontal layout' seems for me a little redundant? Thanks.

There's no way to currently make it so that it only works for tabbed / stacked.
I'm not accepting any changes right now that are not related to matching awesome, but I can walk you through how to write a personal patch to fix that on the gitter channel.


Update user/campaigns route

Currently the user/campaigns uses query strings to say which user we are getting info from.
This should perhaps follow the users/ show method of asking for<EMAIL_ADDRESS>Thoughts @jonuy

To get a user, the URL is like<EMAIL_ADDRESS>So to go along those same lines, could we do something like<EMAIL_ADDRESS>instead?


Τimezone support

Added support for timezones, both on instance and runtime level. Also adjusted some tests to use providers and handle timezones.

I'm not sure how to send PHPUnit and coverage information, I'll paste the output below. Let me know if there's a better way to do it.
PHPUnit 8.5.4 by Sebastian Bergmann and contributors.

................................................................. 65 / 70 ( 92%)
.....                                                             70 / 70 (100%)

Time: 1.99 seconds, Memory: 8.00 MB

OK (70 tests, 280 assertions)

Generating code coverage report in Clover XML format ... done [146 ms]

Generating code coverage report in HTML format ... done [181 ms]

Generating code coverage report in PHP format ... done [7 ms]

Code Coverage Report:
  2020-05-16 11:03:44

 Summary:
  Classes:  0.00% (0/5)
  Methods: 47.62% (10/21)
  Lines:   71.70% (38/53)

\CodeIgniter\Tasks::CodeIgniter\Tasks\CronExpression
  Methods:  83.33% (10/12)   Lines:  95.00% ( 38/ 40)

I ran phpcbf on the files using the ruleset in codeigniter4/coding-standard. Let me know if that fixed the issues. Do you think it might be helpfull if we added that to the composer file and created the same pre-commit hook the main repository has to autofix issues?

Nice addition, thanks! I just had the one comment that was just a preference, nothing wrong with the way you did it.
Adding coding_standard and the same script we use for the CI core repo makes a lot of sense.

I think that addresses most of the changes. Let me know if you think anything else needs to be fixed.
I'll make another PR for the coding standards change in a bit.


bar.zsh-theme

Hello OMZ team! Thank you for great work!
Please review my theme in "bar" concept.
Key features/ideas:

Attention management:

The typed command has the first priority of attention (lime color).
Terminal answer has the second priority (light grey color).
Bar with info has third priority (dark grey color).
Current path and the command is what should be in focus in most common cases and they placed much closer
Command prompt has stable start position in the beginning of the line, easy to read
Bar along all terminal is a great visual delimiter of outputs

Tags on bar can show git branch or conda environment and something you want. You can change colors or intensity on bar tags.
Command and terminal output could be secure copied and pasted without user/host info in one motion
Lightweight

@mcornella what do you think?
Please review:

Thanks!

We can't accept more themes. Please make a separate repo with your theme and link to it from the external themes wiki page. You can also add your theme as a custom theme. See customization for instructions.

Got it.

@mcornella I've reviewed all themes in zsh pack and external. I found nothing like my concept. Most of themes looks like christmas tree and I've found this so noizy for attention. Could you please show me the theme which has visual features like in my list above? If there is no theme like this I suggest to add bar theme to the main pack! 😃 So I'm going to reopen the PR back ☕


Refactor /endpoint/{id}/labels for API 1.0 stability

See https://github.com/cilium/cilium/issues/3280 for background
Summary of changes:

Refactor the endpoint label config to be declarative.
Refactor client to retain the CLI add/remove behaviour

How to test (optional):
all tests should pass.

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

test-me-please

This has failed runtime tests consistently. I'll assume that I broke something with how labels are assigned. I'll debug.

test-me-please

test-me-please

test-me-please


TR-BDF2 algorithm for solving ODE systems

Is your feature request related to a problem? Please describe.
The proposed feature request is to implement the TR-BDF2 algorithm in SciPy for solving ODE systems. The TR-BDF2 algorithm is an implicit Runge-Kutta formula with a trapezoidal rule step as its first stage and a backward differentiation formula of order two as its second stage. The algorithm is suitable for stiff problems and resilient to oscillations.
Describe the solution you'd like
I would like to implement the algorithm using the method argument as part of the solve_ivp function.
from scipy.integrate import solve_ivp

sol = solve_ivp(dydt, tspan, y0, method='TRBDF2', args=(params,))

Describe alternatives you've considered
For a large system of coupled ODEs, I have used Matlab's ode23tb function for this algorithm. I have tried the Radau, BDF, and LSODA solvers in SciPy but they don't converge to a solution for my particular problem. Matlab's ode23tb function is the only one that seems to work.
Additional context (e.g. screenshots)
Matlab implements TR-BDF2 algorithm as the ode23tb function (see the Matlab docs for more info). Discussion of the algorithm is given in the following papers: "Transient simulation of silicon devices and circuits" and "Analysis and implementation of TR-BDF2". Julia also has an implementation of the algorithm as TRBDF2 which is part of the DifferentialEquations.jl package (see the Julia docs for details). I also found this C program that appears to use the algorithm to solve a nonlinear diffusion equation.

Sounds like a worthy addition.

Sounds like a worthy addition.

Indeed we would benefit from such solver. A tiny detail about the last link you have provided, from the look of the link, you have directly linked to the file itself. For some weird reasons, we better not click it in case it is GPL or similar incompatible license. Could you please clarify the license info with the author in case we want to use it as a basis or a test case?

Indeed we would benefit from such solver. A tiny detail about the last link you have provided, from the look of the link, you have directly linked to the file itself. For some weird reasons, we better not click it in case it is GPL or similar incompatible license. Could you please clarify the license info with the author in case we want to use it as a basis or a test case?

It looks like the C program is from Carl Gardner's website. He is a professor at Arizona State University. https://math.la.asu.edu/~gardner/

It looks like the C program is from Carl Gardner's website. He is a professor at Arizona State University. https://math.la.asu.edu/~gardner/

Hi @wigging
Do you a simple code example of your problem (Python and/or Matlab) ? I am quite curious as to why the other methods do not converge. In particular Radau is L-stable, therefore it should not have any issues with stiff / very stiff ODEs.
Regarding the implementation, TR-BDF2 is more generally a DIRK method (diagonally implicit Rung-Kutta) therefore it would be a good idea to implement a common solver for any DIRK method.
I had implemented this for some variants (ESDIRK), based on Radau's implementation in Scipy. But I had some time step control issues which I had not taken the time to look into. Maybe I can look into this again !

Hi @wigging
Do you a simple code example of your problem (Python and/or Matlab) ? I am quite curious as to why the other methods do not converge. In particular Radau is L-stable, therefore it should not have any issues with stiff / very stiff ODEs.
Regarding the implementation, TR-BDF2 is more generally a DIRK method (diagonally implicit Rung-Kutta) therefore it would be a good idea to implement a common solver for any DIRK method.
I had implemented this for some variants (ESDIRK), based on Radau's implementation in Scipy. But I had some time step control issues which I had not taken the time to look into. Maybe I can look into this again !

@laurent90git I don't have a simple example but I do have a detailed example that consists of an ODE system of 15 equations. I can push the code to GitHub and share the repository with you if you're interested in all the details of the problem that I'm trying to solve. The equations for the problem are taken from the Agu et al. 2019 paper which discusses a one-dimensional model for biomass gasification. The author of the paper implemented the model in Matlab where the ode23tb solver was the only one that gave reasonable results. The author said the other solvers would produce errors or not converge to a solution. I'm trying to develop the same model in Python and can't get the existing solvers in SciPy to work.

@laurent90git I don't have a simple example but I do have a detailed example that consists of an ODE system of 15 equations. I can push the code to GitHub and share the repository with you if you're interested in all the details of the problem that I'm trying to solve. The equations for the problem are taken from the Agu et al. 2019 paper which discusses a one-dimensional model for biomass gasification. The author of the paper implemented the model in Matlab where the ode23tb solver was the only one that gave reasonable results. The author said the other solvers would produce errors or not converge to a solution. I'm trying to develop the same model in Python and can't get the existing solvers in SciPy to work.

@laurent90git I don't have a simple example but I do have a detailed example that consists of an ODE system of 15 equations. I can push the code to GitHub and share the repository with you if you're interested in all the details of the problem that I'm trying to solve. The equations for the problem are taken from the Agu et al. 2019 paper which discusses a one-dimensional model for biomass gasification. The author of the paper implemented the model in Matlab where the ode23tb solver was the only one that gave reasonable results. The author said the other solvers would produce errors or not converge to a solution. I'm trying to develop the same model in Python and can't get the existing solvers in SciPy to work.

If you are able to share your code, I will try to have a look into it in the next couple of days. Thanks for the reference !

@laurent90git I don't have a simple example but I do have a detailed example that consists of an ODE system of 15 equations. I can push the code to GitHub and share the repository with you if you're interested in all the details of the problem that I'm trying to solve. The equations for the problem are taken from the Agu et al. 2019 paper which discusses a one-dimensional model for biomass gasification. The author of the paper implemented the model in Matlab where the ode23tb solver was the only one that gave reasonable results. The author said the other solvers would produce errors or not converge to a solution. I'm trying to develop the same model in Python and can't get the existing solvers in SciPy to work.

If you are able to share your code, I will try to have a look into it in the next couple of days. Thanks for the reference !

@laurent90git I pushed the code to the following repository https://github.com/wigging/bfb-gasifier-b1. See the README for more information. Let me know if it's possible to solve the equations using SciPy. I'm also open to suggestions on how to better structure the code.

@laurent90git I pushed the code to the following repository https://github.com/wigging/bfb-gasifier-b1. See the README for more information. Let me know if it's possible to solve the equations using SciPy. I'm also open to suggestions on how to better structure the code.

@laurent90git I pushed the code to the following repository https://github.com/wigging/bfb-gasifier-b1. See the README for more information. Let me know if it's possible to solve the equations using SciPy. I'm also open to suggestions on how to better structure the code.

I've quickly tested it. adding printouts of the time and time step in solve_ivp shows that the solution is actually advancing. I ran out of patience after a few minutes, having reached t~1ms.
As your system is likely very stiff, at least during the initial transient, explicit methods perform very poorly and will explode/overflow if you don't use tight integration tolerances. They will anyway be very inefficient.
By the way, I see that you just call solve_ivp without any integration-related parameters (rtol, atol). I think you should take a closer look at these parameters and.their impact on the solution quality.
With implicit methods, every integration step is very long, because, as your system is quite nonlinear, the Jacobian of your ODE system must be computed anew very often. As your system is large (1500 ODEs) and scipy does not have any information regarding its sparsity pattern, the solver calls your ODE function dydt at least 1500 times for each Jacobian update... This results in very slow performance.
One thing I noticed is that, in your vector of unknown, you have sorted the variables by type (all discrete rho_xx are contiguous for example). as the different fields interact with one another, this results in a Jacobian sparsity pattern that has components way off the diagonal. For one-dimensional models, it is usually best to sort all the variables according to the index of the mesh cell (or spatial point) that are related to. Then within each cell, the variables may be ordered as you wish, as long as the ordering is constant from one cell to the next. This way, the Jacobian willonly have Nonzero components very close to the diagonal. Conseqt, much more efficient approaches can be used to compute this Jacobian without performing s as many function calls. You have something like 15 fields if I remember correctly. In the ideal case, with the previous reordering of the unknowns, you could compute the Jacobian in 3*15=45 calls only, which is way better. I don't have time this weekend to edit your code to show you what I mean, but I'll try to do that next week !

@laurent90git I pushed the code to the following repository https://github.com/wigging/bfb-gasifier-b1. See the README for more information. Let me know if it's possible to solve the equations using SciPy. I'm also open to suggestions on how to better structure the code.

I've quickly tested it. adding printouts of the time and time step in solve_ivp shows that the solution is actually advancing. I ran out of patience after a few minutes, having reached t~1ms.
As your system is likely very stiff, at least during the initial transient, explicit methods perform very poorly and will explode/overflow if you don't use tight integration tolerances. They will anyway be very inefficient.
By the way, I see that you just call solve_ivp without any integration-related parameters (rtol, atol). I think you should take a closer look at these parameters and.their impact on the solution quality.
With implicit methods, every integration step is very long, because, as your system is quite nonlinear, the Jacobian of your ODE system must be computed anew very often. As your system is large (1500 ODEs) and scipy does not have any information regarding its sparsity pattern, the solver calls your ODE function dydt at least 1500 times for each Jacobian update... This results in very slow performance.
One thing I noticed is that, in your vector of unknown, you have sorted the variables by type (all discrete rho_xx are contiguous for example). as the different fields interact with one another, this results in a Jacobian sparsity pattern that has components way off the diagonal. For one-dimensional models, it is usually best to sort all the variables according to the index of the mesh cell (or spatial point) that are related to. Then within each cell, the variables may be ordered as you wish, as long as the ordering is constant from one cell to the next. This way, the Jacobian willonly have Nonzero components very close to the diagonal. Conseqt, much more efficient approaches can be used to compute this Jacobian without performing s as many function calls. You have something like 15 fields if I remember correctly. In the ideal case, with the previous reordering of the unknowns, you could compute the Jacobian in 3*15=45 calls only, which is way better. I don't have time this weekend to edit your code to show you what I mean, but I'll try to do that next week !

@laurent90git Thank you for such an in-depth comment. It sounds like some refactoring is needed to make the gasifier code better suited for the SciPy solvers. But in general, I believe it's still a good idea to have a TR-BDF2 method available in SciPy.
Now back to the gasifier code...
I think it would be best to talk about the gasifier code using the Issues on the project's repository. I started an Issue at https://github.com/wigging/bfb-gasifier/issues/1 where we can continue this conversation. So please move your comment to that Issue.
I also changed the name of the repository which is now https://github.com/wigging/bfb-gasifier. So make sure you update your local repo with git remote set-url origin https://github.com/wigging/bfb-gasifier.
Also, please see the other Issue regarding the code structure of the model https://github.com/wigging/bfb-gasifier/issues/2. You may have some suggestions on how to structure the code which would make it easier to work with.

@laurent90git Thank you for such an in-depth comment. It sounds like some refactoring is needed to make the gasifier code better suited for the SciPy solvers. But in general, I believe it's still a good idea to have a TR-BDF2 method available in SciPy.
Now back to the gasifier code...
I think it would be best to talk about the gasifier code using the Issues on the project's repository. I started an Issue at https://github.com/wigging/bfb-gasifier/issues/1 where we can continue this conversation. So please move your comment to that Issue.
I also changed the name of the repository which is now https://github.com/wigging/bfb-gasifier. So make sure you update your local repo with git remote set-url origin https://github.com/wigging/bfb-gasifier.
Also, please see the other Issue regarding the code structure of the model https://github.com/wigging/bfb-gasifier/issues/2. You may have some suggestions on how to structure the code which would make it easier to work with.


Created a manga directory only uses the image ID for its name

Prerequisites

[x] Did you read FAQ section?
[x] Did you test with the latest releases or commit ?

Description
When createmangadir is set to "True", any created manga directory only uses the image ID as its name.
Steps to Reproduce

Set createmangadir to "True".
Confirm filenamemangaformat is set to %artist% (%member_id%)\%urlFilename% - %title%.
Download by member_id.

Expected behavior: The names of created directories follow the format %urlFilename% - %title%.
Actual behavior: The names of created directories follow the format %urlFilename%.
Versions
Tested on v20200926-beta1

If you already filenamemangaformat, no need to set createmangadir to true.

filenamemangaformat was already set to what it was in the past while createmangadir was set to true, and it didn't led to any directories being created during downloading.
And I don't understand what you mean by referring to that part of the readme.md; am I missing something?

createmangadir  ==> Create a directory if the imageMode is manga. The directory
is created by splitting the image_id by '_pxx' pattern.
This setting is depended on %urlFilename% format.

Okay, I think I get it now. If I set filenamemangaformat %artist% (%member_id%)\%image_id% - %title%\%urlFilename%, would that make it work like I want it to?

I think:
-If the image_id refers to a single image, then the createmangadir would do nothing.
-If the image_id refers to a manga, for example if one of the images' filename is 123456_big_p0.jpg, and based on your filename format, the path would be like artist (member_id)\123456 - title\123456_big_p0.jpg, right? but since you set createmangadir to True, the whole path would be changed to artist (member_id)\123456 - title\123456_big**\**_p0.jpg. Notice the extra back slash in front of _p0.jpg, which means a folder would be created under 123456 - title and all manga images would be saved inside it.
So if you have already set a folder path for manga, then you don't need to set createmangadir to True

@bluerthanever you are correct. Also, please note that createmangadir take priority (it is computed after the PixivHelper.make_filename() call)
Reference code: https://github.com/Nandaka/PixivUtil2/blob/master/PixivImageHandler.py#L235-L241

Tested it. Worked like a charm. The readme could do with a bit more clarification on this matter, though; I actually thought that filenamemangaformat works with createmangadir, not that they're independent from each other.