Revised integration test framework

Description
Issue #12359 proposes an approach to simplify and streamline integration tests, especially around the developer experience, but also for Travis. See that issue for the background.
This PR is big, but most of that comes from creating revised versions of existing files. Unfortunately, there is no good way using GitHub to compare two copies of the same file. For the most part, these are config files and you can assume that the new versions work (because, when they didn't, the cluster stubbornly refused to start or stay up.)
Developer Experience
With this framework, it is possible to:

Do a normal distribution build.
Build the Docker image in less than a minute. (Most of that is Maven determining what not to do. After the first build, you can use a script to rebuild in a few seconds, depending on what Docker must rebuild.)
Launch the cluster in a few seconds.
Debug an integration test as a JUnit test in your favorite IDE.

The result is that integration tests go from being a nightmare to being an efficient way to develop and test code changes. This author used it to create tests for PR #12222. The process was quick and easy. Not as efficient as just using unit tests (we still want the single-process server), but still pretty good. (By contrast, the new tests were ported to the existing framework, and that is still difficult for the reasons we're trying to address here.)
One huge win is that, with this approach, one can start a Docker cluster and leave it up indefinitely to try out APIs, to create or refactor tests, etc. Though there are many details to get right to use Docker and Docker Compose, once those are addressed, using the cluster becomes quite simple and productive.
Contents of this First Cut
This PR is a first draft of the approach which provides:

A new directory, integration-tests-ex that holds the new integration test structure. (For now, the existing integration-tests is left unchanged.)
Maven module druid-it-tools to hold code placed into the Docker image.
Maven module druid-it-image to build the Druid-only test image from the tarball produced in distribution. (Dependencies live in their "official" image.)
Maven module druid-it-cases that holds the revised tests and the framework itself. The framework includes file-based test configuration, test-specific clients, test initialization and updated versions of some of the common test support classes.

The integration test setup is primarily a huge mass of details. This approach refactors many of those details: from how the image is built and configured to how the Docker Compose scripts are structured to test configuration. An extensive set of "readme" files explains those details. Rather than repeat that material here, please consult those files for explanations.
Limitations
This version is the result of several months of iteration to work out details around builds on various systems. The framework itself is now pretty solid, as is the Druid image. This PR includes two converted tests, and lessons from several others which are in-flight. We expect to refine the framework as we create and convert other tests.
For now, the new framework is intended to exist parallel to the current one so we experiment. The new framework is ignored unless you select the Maven profiles which enable it. (See the docs for details.) Eventually we will retire the integration-tests versions in favor of the integration-tests-ex versions, but we will do so only after the new versions are rock-solid.
There are many other test groups not yet touched. A good approach is to use this framework for new integration tests, and to convert old ones when someone needs to modify them. The cost of converting to this framework is low, and the productivity gain is large.
Other limitations include:

The original tests appear to run not only in Docker, but also against a local QuickStart cluster and against Kubernetes. Neither of these other two modes have been tested in the new framework. (Though, it is now so easy to start and use a Docker cluster that that it may be easier to use Docker than the QuickStart cluster.)
The original tests always have security enabled. While it is important to test security, having security enabled makes debugging far harder (by design.) So, this draft has security disabled. The various scripts and configs are pulled aside. The thought is to enable security as an option when needed, and run without it when debugging things other than the security mechanism.
The supporting classes have the basics, but have been used for only the one integration test group.
This framework is not yet integrated into Travis. A test that exists only in the new framework won't run in the Travis build. We have a working version of the Travis build in a private branch, but that step will be commented out in this PR prior to merge; we'll enable Travis builds as a separate PR as we transition old tests to the new framework.

Next Steps
This PR itself will continue to evolve as some of the final details are sorted out. However, it is at the stage where it will benefit from others taking a look and making suggestions.
The thought is that this PR is large enough already: let's get it reviewed, then tackle the additional issues listed above as the opportunity arrises and step-by-step.
Alternatives
The approach in the PR is based on the existing approach, but re-arranges the parts. Since the integration test are pretty much "nothing but details", there are many approaches that could be taken. Here are a few that were considered.

Run the tests as-is in an AWS instance. Because the tests are very difficult to run on a developer machine, many folks set up an AWS instance to run them. While this can work, it is slow: one has to shuffle code from the laptop to the instance and back. Or, just do development on the instance. The tests are not really set up for debugging, so even on the instance, it is still tedious to make and debug test changes.
Run the tests in Travis as part of a PR. This is the default approach. However, it is akin to the development process of old: submit the changes to a batch run, wait many hours for the answers, plow though the logs, find issues, fix them, and repeat. That process was not efficient in the era of punch cards, and is still not very efficient today. A turnaround of a minute or less is the garget, which Travis approach cannot provide.
Modify the existing integration tests. This is the obvious approach. But, the set of existing ITs is so large that attempting to change everything in one go becomes overwhelming. The chosen approach allows incremental test-by-test conversion without breaking the great mass of existing tests.
Status-quo. I'm working on a project that requires many integration tests. It is faster to fix the test framework once, and do the tests quickly, than to fight with the framework for each of the required tests.

That said, this PR is all about details. Your thoughts, suggestions and corrections are encouraged to ensure we've got our bases covered.
Detailed Changes
A number of specific changes are worth calling out that do not appear in the docs.

The tests use Guice to create various Druid objects. However, they do not use the Druid extension mechanism: the tests don't have visibility to a Druid installation. Instead, any required extensions are expected to appear as normal jars on the class path. That is, they should be listed in the pom.xml file as dependencies.
Tests don't have access to the usual runtime.properties file. Instead, properties come from a new docker.yaml configuration file, from a binding to environment variables, or from command line options. Of these, docker.yaml is preferred for fixed or default properties, environment variables for properties (such as credentials) that vary per run. Avoid use of the command line as that makes test hard to debug in an IDE.
The tests use "official" Docker images for dependencies such as MySQL, ZooKeeper and Kafka. A solution for Hadoop is under investigation.
A custom DruidTestRunner provides a way to add test-specific Guice modules, along with other configuration.

This PR has:

[X] been self-reviewed.
[X] added documentation for new or modified features or behaviors.
[X] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[X] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[X] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[X] added integration tests.
[X] been tested in a test Druid cluster (in the sense that this PR is for running such a cluster in Docker.)

Continuing to whack build details. Who knew that each task did a pre-build before the build in which the pre-build builds everything except distribution. This cases test-image to fail when looking for the non-existent distribution dependency. Using a bit of profile magic to hind this dependency from the pre-build.

Sorry, had to do some major surgery to the Maven module structure, which required renaming the modules and their directories. See the description in maven.md.
Other than that, only minor tweaks as I try to run the gauntlet of the zillions of checks run on the code.

The new IT task passed, hooray! Whacked a few more static checking issues.
There is one I don't understand. It appears that we've got JS problems, but I didn't change anything in JS:
added 235 packages from 867 contributors and audited 235 packages in 12.562s
found 4 vulnerabilities (2 moderate, 1 high, 1 critical)
  run `npm audit fix` to fix them, or `npm audit` for details
events.js:183
      throw er; // Unhandled 'error' event
      ^
TypeError: Cannot read property 'forEach' of undefined
    at unpackage (/home/travis/build/apache/druid/node_modules/jacoco-parse/source/index.js:27:14)
    at /home/travis/build/apache/druid/node_modules/jacoco-parse/source/index.js:114:22
    at Parser.<anonymous> (/home/travis/build/apache/druid/node_modules/xml2js/lib/parser.js:304:18)
    at emitOne (events.js:116:13)
    at Parser.emit (events.js:211:7)
    at SAXParser.onclosetag (/home/travis/build/apache/druid/node_modules/xml2js/lib/parser.js:262:26)
    at emit (/home/travis/build/apache/druid/node_modules/sax/lib/sax.js:624:35)
    at emitNode (/home/travis/build/apache/druid/node_modules/sax/lib/sax.js:629:5)
    at closeTag (/home/travis/build/apache/druid/node_modules/sax/lib/sax.js:889:7)
    at SAXParser.write (/home/travis/build/apache/druid/node_modules/sax/lib/sax.js:1436:13)
    at Parser.exports.Parser.Parser.parseString (/home/travis/build/apache/druid/node_modules/xml2js/lib/parser.js:323:31)
    at Parser.parseString (/home/travis/build/apache/druid/node_modules/xml2js/lib/parser.js:5:59)
    at exports.parseString (/home/travis/build/apache/druid/node_modules/xml2js/lib/parser.js:369:19)
    at Object.parse.parseContent (/home/travis/build/apache/druid/node_modules/jacoco-parse/source/index.js:107:5)
    at /home/travis/build/apache/druid/node_modules/jacoco-parse/source/index.js:129:15
    at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:511:3)
****FAILED****

Is this saying that the build itself has broken code? If so, maybe it will go away on the next build?

Rebased on latest master to try to fix the prior issue. Now getting a different unrelated failure:
[ERROR] org.apache.druid.query.groupby.epinephelinae.BufferHashGrouperTest.testGrowingOverflowingInteger  Time elapsed: 0.003 s  <<< ERROR!
java.lang.OutOfMemoryError
	at sun.misc.Unsafe.allocateMemory(Native Method)
	at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:127)
	at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311)
	at org.apache.druid.query.groupby.epinephelinae.BufferHashGrouperTest.makeGrouper(BufferHashGrouperTest.java:187)

New commit. We have to exclude test test code from Jacoco since it is not unit tested. That was painful because the test classes were in "generic" Druid packages. Moved the test code into a dedicated package so we can just exclude that one package.
Migrated the remainder of the batch index tests. This showed some redundancy in the required test code, so created a test runner to hide that boilerplate. Test conversion is now very easy -- at least for the sample of tests converted thus far.
Also includes other minor doc changes and build issue fixes.

@kfaraz, thank you for your thorough review, and for trying out the new setup. Always great to know it runs on a machine other than my own!
You mentioned flaky test and how to retry them. Two thoughts on that.
First, we should not have flaky tests. IMHO, such tests either:

Are flaky because they start running before the cluster is stable,
Are not telling us anything if the test themselves are flaky (because they depend on timing, or on behavior which is inherently non-deterministic, such as the ordering of events from different services.)
Are point out actual issues with Druid: that clients would have to retry operations. We should either a) fix that issue, or b) document it. Either way, the tests should be prepared for whatever race or non-deterministic condition is in question.

The new framework eliminates the first issue. The framework ensures that services are ready before launching tests. This means that either the test or Druid is flaky. Either way, we should fix he issue: remove the test if it is not useful, else fix it or fix Druid (perhaps adding a way to synchronize when needed for testing.)

All that said, there is the second issues: rerunning specific tests. This is a harder issue than one would think.
The reason to combine tests is that, in this new system, the bulk of the time for each "test group" is consumed with building Druid. If we keep the tests split up, we end up rebuilding Druid over and over and over. Allowing retries means retaining our current extravagant abuse of Travis resources.
The obvious solution to the redundancy issue is to build Druid and the image once, then run all the test groups that use that particular configuration. Since we have multiple configurations, the various configurations would still run in parallel, but the test "groups" would run in series within each configuration.
Of course, if we retain flaky tests, then we want to play "whack-a-mole" in builds: keep rerunning only those tests that failed until we get lucky and they pass. By combining tests, we decrease the probability of getting lucky. As mentioned above, the obvious answer is to fix the flaky tests, we we are starting to do.
Another constraint is how Travis seems to work. We can only rerun jobs within Travis's build matrix. It does not seem we can parameterize the job to say, "just run the ITs, with only these two projects." To be able to rerun one test "group" we have to let each group (for each configuration) build all of Druid, which gets us back to the redundancy issue.
Short term, I'm thinking to do an experiment in which each test "group" is triggered by a separate Maven profile. We can then also have an "all-its" profile that enables all the groups. Until we resolve flaky tests, we can opt to waste resources and build profile-by-profile (that is, group-by-group) as we do today. Later, when tests are fixed (or if we identify groups which are not flaky), we can combine them via profiles.
I'll try that in a separate commit so I can easily back it out if it does not work out.

@kfaraz, good point on the docs. Yes, the docs started as my attempt to remember the many details of how the original tests worked, and what I changed as I created this new version. Per your suggestion, I created a quickstart.md page with usage info. We can expand that as we figure out what additional information is most often needed. I added links into the more detailed docs for when someone needs more information.
The idea on conversion is to try out a few groups here, then convert the others over time. I was perhaps lucky: the groups I converted so far mostly "just worked." I've encountered no flakiness in those tests, in my limited runs, after I made sure the cluster was up before running the tests.
We'll have to see, as we convert more, if the others are as easy, or if there will be tricky bits. If there are test that are still flaky, we'll have to sort that out on a case-by-case basis, as suggested above.
Let's also remember that there there is a big chunk of work not addressed in this PR: running a secured cluster. There is code in the old ITs to create certs, configure security, etc. Tests run that way will be very difficult to debug, by definition. That whole areas is left as an open issue in this PR, in part because this one is already large enough.

This branch has been open long enough that it drifted out of sync with master. Rebasing ran into the usual issues when a zillion files change. So, squashed commits so the rebase would succeed. Fortunately, the squashed commits are those that have already been reviewed, no additional changes were made before squashing occurred. New changes show up as new commits on top of the squash. In this latest commit, updated the project from 0.23.0 to 0.24.0 so that the builds will work.

Getting an odd failure:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-remote-resources-plugin:1.5:process (process-resource-bundles) on project it-high-availability: Error resolving project artifact: Could not transfer artifact io.confluent:kafka-schema-registry-client:pom:5.5.1 from/to sigar (https://repository.jboss.org/nexus/content/repositories/thirdparty-uploads/): Transfer failed for https://repository.jboss.org/nexus/content/repositories/thirdparty-uploads/io/confluent/kafka-schema-registry-client/5.5.1/kafka-schema-registry-client-5.5.1.pom for project io.confluent:kafka-schema-registry-client:jar:5.5.1: peer not authenticated -> [Help 1]

First, the project on which this fails does not include the artifact. Second, the project that does use it already built, so the artifact should be cached locally. Third,, why is the peer not authenticated?

@kfaraz, thanks for the review. It's been a long slog to resolve the many Maven issues with all our many static checks.
You asked about the "experimental docker tests" task in this PR. Yes, it is experimental: I'll remove (or disable) it before we commit. For now, I envision we won't run the tests in the maven build since they duplicate existing tests. Instead, a good next step would be to migrate each IT one by one: convert it to the new framework, replace the current IT tasks with a new version (based on the "experimental" one), and verify the results.
Given this, the new framework would run in phase 2, in place of the existing items. During the interim, we can mix-and-match mechanisms: the Travis builds are all independent of one another. That is a problem in general (we redo the same work over and over) but turns out to be a help during the transition.

Currently trying to track down a mysterious error. In `it-high-availability, Maven is unable to find a particular jar file. Looks like it works one time (in Java 8), but fails another time (in Java 11):
[INFO] Downloading from google-maven-central: https://maven-central.storage-download.googleapis.com/maven2/io/confluent/kafka-schema-registry-client/5.5.1/kafka-schema-registry-client-5.5.1.pom
[INFO] Downloading from sonatype: https://oss.sonatype.org/content/repositories/releases/io/confluent/kafka-schema-registry-client/5.5.1/kafka-schema-registry-client-5.5.1.pom
[INFO] Downloading from sonatype-apache: https://repository.apache.org/content/repositories/releases/io/confluent/kafka-schema-registry-client/5.5.1/kafka-schema-registry-client-5.5.1.pom
[INFO] Downloading from apache.snapshots: https://repository.apache.org/snapshots/io/confluent/kafka-schema-registry-client/5.5.1/kafka-schema-registry-client-5.5.1.pom
[INFO] Downloading from sigar: https://repository.jboss.org/nexus/content/repositories/thirdparty-uploads/io/confluent/kafka-schema-registry-client/5.5.1/kafka-schema-registry-client-5.5.1.pom

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-remote-resources-plugin:1.5:process (process-resource-bundles) on project it-high-availability:
Error resolving project artifact:
Could not transfer artifact io.confluent:kafka-schema-registry-client:pom:5.5.1 from/to sigar (https://repository.jboss.org/nexus/content/repositories/thirdparty-uploads/):
Transfer failed for https://repository.jboss.org/nexus/content/repositories/thirdparty-uploads/io/confluent/kafka-schema-registry-client/5.5.1/kafka-schema-registry-client-5.5.1.pom for project io.confluent:kafka-schema-registry-client:jar:5.5.1:
peer not authenticated -> [Help 1]

This is pushing against the edge of my Maven knowledge. I'm hoping it is just something silly I'm doing that shows up as the above mysterious error. Anyone seen something similar? For example, did the first attempt above succeed? Or, is the error a failure in that attempt, but the error is reported later? Or, is Maven trying to get the jar twice, the first worked, but the second failed?
Seems the 5.5.1 release is still available, so that isn't a problem. (It is old, and has vulnerabilities, so we should probably upgrade.)
This seems to be a transitive dependency brought in from druid-integration-tests. Yet, that module seems to compile. Still scratching my head...

Rebased on latest master to try to overcome the perpetual "confluent" jar errors. Let's see if this let's us get a clean build.

Sad. This latest run should have worked, but it seems there are issues on Travis with finding the JRE. Sigh. We have to wait for those issues to be resolved, then can some committer please restart the build.

Getting a clean build is proving quite difficult. Out of desperation, we'll pull two groups of changes out of this PR into separate PRs so the build issues are easier to debug. In particular, it is hard at present to separate out actual errors in the "old" ITs from the flaky ITs. Let's get those other two PRs done, then we'll rebase this on the updated master so that only the new IR code remains. That way, if an old IT fails, we'll have some confidence that it is just flaky, not broken.

Revised to prepare for merge:

Parameterized tests
Test creation guide
Main IT script: it.sh
Enhanced configuration options: env vars, etc.
Test runner supports parameterized tests
Test runner allows test-specific code configuration (add Guice modules, etc.)
Other cleanup, bug fixes

The latest PR converted two ITs to use the new framework. Both pass in Travis. (And there was much rejoicing.)
However, two of the old ITs fail for obscure reasons. A security test fails with an auth failure, but the same test was clean in a prior build. Another IT can't find its input file, though this PR changes none of the input files or paths in the old tests. These are not the usual flaky IT suspects. So we probably have to sort out what's-what. Once we do, this should be good to go.

@kfaraz, thanks for your approval of this PR. The final changes are in for this PR and the build is clean. Please take a quick final look, and merge the PR at your convenience.

Thanks for the update, @paul-rogers ! I will take another look today and merge this.


native-mobile-styling

Please use the form below, leaving the prefilled data to help us. Thank you.
Page link: native-mobile-styling
Document link: native-styling-refguide.md
My Issue/Suggestion
I am looking for documentation of the default class names of MxWidgets so that I can change the default.
for instance, if I would like to change the floating action button I need to know that the default class is called 'com_mendix_widget_native_floatingactionbutton_FloatingActionButton'
It would be nice if the code section in there would contain a styling boilerplate like this:
export const com_mendix_widget_native_floatingactionbutton_FloatingActionButton = {
    container: {
    },
    button: {
    },
    buttonIcon: {
    },
    secondaryButton: {
    },
    secondaryButtonIcon: {
    },
    secondaryButtonCaption: {
    },
    secondaryButtonCaptionContainer: {
    }
};

Hi Jason,
I will check this with our Mendix developers. Thank you for your suggestion!

Hi Jason,
Below each widget you can find the classname. We prefer you use that over a boilerplate, so please use that for reference.
Thank you for your suggestion,
Connor


added flex-related properties and a test

This will allow dependent projects such as jsdom to keep flex-related values.

Thank you @ignacionr


Don't load data on specific page

Here is the scenario:
I has a collection page to list all posts in my website. While everything to render this page is already there,  it would be nice if PageContainer will just render it.
I'm thinking of some kind of YAML header to disable data loading. What do you think?

I think this does not really make any sense.
I mean it does in your use case, but using a markdown file with not content is weird.
This should be a page defined via the routes.js ?
Maybe we should work on a way allow url and routes defined in routes.js tobe prerendered as well? To solve #15 for example.

That page is acctutally my homepage which is a list of posts. Do you have any idea for this yet ?

Not really. For now url to prerender are "guessed" from chunks... We should add something else to read routes?

I'm thinking about a solution for plugin to be able to manipulate url and stuff like metalsmith

Well. After tooking a closer look at statinamic architecture,  url-to-html takes whatever inside md-collection-loader cache and generate page based on that. We can use Webpack plugin "done" event as a callback and let user mutate collection here. Sound like metalsmith right? What do you think?

Close. In favor of #15


UI. Default Test source root in Gradle project

Description
Test source root in current module must be set as default.
To Reproduce
Steps to reproduce the behavior:

IntelliJ IDEA 2022.1.4 is opened with one of the latest UTBot builds installed
UTBotJava project should be opened
Find a class in utbot-sample module
Open Generating tests with UTBot... for this class
Check Test source root field

Expected behavior
.../utbot-sample/src/test/java should be seleted by default
Actual behavior
The first test source root in the list is selected by default, now it's ".../utbot-summary/src/test/java"
Visual proofs (screenshots, logs, images)

Environment
Substitute this text with an information that can help us to recreate the environment. For instance, specify Java version, test framework with a version (JUnit, TestNG...), Mockito configuration (packages, classes, statics), were the test parametrized or not and so on.
Additional context
Related to #549 #577

Already fixed before with another issue


WordPress the_content and parsing

https://github.com/dshanske/indieweb-post-kinds/issues/99
This isn't strictly a Semantic Linkbacks issue, but being as all sorts of WordPress plugins add their markup to the_content, which is often wrapped by the theme in entry-content or e-content...how do we avoid this situation...as we can't adjust every theme in the repository? This is an issue in this plugin specifically because we want WordPress blogs to seamlessly use it.

I am not sure if this should/can be handled by the semantic link backs plugin. UF2 parsing is hard enough, I don't think we will be able to "fix" broken markups, because we never can be sure if something is intended or not. Do you have an idea?


Remove @observer from the global App component

Fixes (should fix) the bug with infinite redirect loop in 'back' button press.
Inside the Application component creates LoadingBar component connected to the store.

Seems like it does the job.


[Event Request] New event on codeunit 5750 "Whse.-Create Source Document"

Hello everyone,
we need a new event in the codeunit 5750 "Whse.-Create Source Document" as shown in the screenshots below.

IsHandled will be added in OnFromTransLine2ShptLineOnAfterInitNewLine in codeunit 5993 "Transfer Warehouse Mgt."

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 12849.


API Call and Download buttons not working on public datasets

When I click on the API Call or Download buttons on this public data page, I only get the # added to the URL with no action happening (no modals pop up, no data downloaded, etc.)
I get the same behavior on other public data pages. I've tried Chrome and Safari -- same thing. @auremoser experienced the same problems.

+1

:bow: thx for reporting, should be fixed now


Button hoverings

PR Description 📜
added hovering effects to the buttons(click here to play and see more) in play games and products.
Fixes #351
after adding hovering effects:
https://github.com/ChromeGaming/Community-Page/assets/152693538/ffbe4338-8a2b-49dc-8bd9-d3e2f9a6a334
https://github.com/ChromeGaming/Community-Page/assets/152693538/a7d01b7f-d965-46aa-b2b8-c2da92c1f491
let me know if there can be made any changes to improve. i would like to work on them.
Thankyou.

Mark the task you have completed ✅

[X ] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[ X] I have performed a self-review of my own code or work.
[ X] I have commented my code, particularly in hard-to-understand areas.
[ X] My changes generates no new warnings.
[ X] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[ X] I have added screenshot for review.

## Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

@Durgesh4993 please review the PR #361

@Durgesh4993 resolved the conflicting files.!


indentLine_loaded in manual is very confusing

It's a frustrating experience that i spent a lot of time figuring out why this plugin cannot work for vim7.4 on my Mac. As i added this line to my vimrc:
let g:indentLine_loaded = 1

There're 2 things to notice:

You got a typo here for loaded_indentLine
From the src, the default value is 1 not 0. More importantly, it's not a configurable option at all for user, as the logic in the code assumes the user may only use it to disable the loading of the plugin. You may  see it's really confusing, at least, for me.

Hope this can be fixed either by the source/manual side. Anyway, thanks for the great effort, it's awesome :-)

Took a look at other Plugin's source, it looks more like a convention to use exists("g:xxx") in code. But their doc is more clarified about this point, close this as you want : )
The NERDTree for instance,

˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰˰'loaded_nerd_tree'
If this plugin is making you feel homicidal, it may be a good idea to turn it
off with this line in your vimrc:
˰˰˰˰let loaded_nerd_tree=1


chore: barretenberg in the monorepo

Description
Back as a PR as I saw history was listing all the same commit.
This implements "Integrate barretenberg code and CI situated at circuits/cpp/barretenberg" in #1126. The motion to include barretenberg in the monorepo has not had major opposition, though for sure there was hesitation around the disruption and effort. Minor opposition was noted around the repo barrier and CI times, but overall we believe we can solve these issues.
Note about "Ensure barretenberg circuits/cpp/barretenberg is either a viable path or move it" in #1126:
One non-ideal feature of this PR is that barretenberg is nested in circuits/cpp/barrretenberg. This might make more sense for the circuits team's current setup than someone trying to find barretenberg to use standalone. However,

There's an interest to get onto a monorepo quickly to have a small cost in disruption
Moving barretenberg from the location in this PR will not cause issues with the git blame function in e.g. vscode

Future improvements are welcome, although there isn't necessarily a 'correct place' for barretenberg.
Process:
set -xue
# Clone both repositories
git clone https://github.com/AztecProtocol/barretenberg.git
git clone https://github.com/AztecProtocol/aztec-packages.git

# Enter barretenberg repository and filter it
cd barretenberg
git filter-repo --to-subdirectory-filter barretenberg
git filter-repo --message-callback """
  import re

  def replace_hash_with_url(text):
       url_format = 'https://github.com/AztecProtocol/barretenberg/issues/{}'
       # the regular expression pattern r'#(\d+)' matches a '#' followed by one or more digits (\d+)
       return re.sub(r'#(\d+)', lambda match: url_format.format(match.group(1)), text)
  message = message.decode('utf-8') # Decode from bytes to string
  message = message.replace('(#', '(https://github.com/AztecProtocol/barretenberg/pull/')
  message = message.replace('Merge pull request #', 'Merge pull request https://github.com/AztecProtocol/barretenberg/pull/')
  return replace_hash_with_url(message).encode('utf-8') # Encode back into bytes
"""

# Enter aztec-packages repository
cd ../aztec-packages

# Create a new branch for the combined history
git checkout -b combined_history

# Add barretenberg as a remote and fetch it
git remote add barretenberg ../barretenberg
git fetch barretenberg

# Merge the histories, preserving the directory structure
git merge --no-commit --allow-unrelated-histories barretenberg/master

# Commit the changes
git commit -m "chore: barretenberg in the monorepo" -m "See #1126 for motivation."

Checklist:

[Sorry, no] I have reviewed my diff in github, line by line.
[*] Every change is related to the PR description.
[*] I have linked this pull request to the issue(s) that it resolves.
[*] There are no unexpected formatting changes, superfluous debug logs, or commented-out code.
[*] The branch has been merged or rebased against the head of its merge target.
[*] I'm happy for the PR to be merged at the reviewer's next convenience.

Merging this now as this was a revert to begin with. See approval here https://github.com/AztecProtocol/aztec-packages/pull/1081
Rationale for bypass: This is a fairly "repo admin" sort of task, and waiting for another review would cause complications.


Consider dual licensing

Not all legislations allow releasing code to the public domain, nor recognize the UNLICENSE as valid. To solve this, you should consider dual licensing your project. This would allow the user to choose which license to use. Maybe a possible alternative is the MIT license (see https://github.com/BurntSushi/fst, which is dual-licensed under MIT and the UNLICENSE).
See this stack exchange question for details about the problems with UNLICENSE.

¯\_(ツ)_/¯
If SQLite doesn't care about that stuff, my little project shouldn't either.

Thanks, I learned something new today :wink: !


top_file gadgets shows complete file path now

[Title: describe the change in one sentence]
top_file gadget now shows absolute path in FILE parameter.
How to use
run top_file gadget, and create a pod and put some data into a file.
Testing done
I tested it on minikube locally. First I tried it to see what changes we require.  when I did this echo "Hello, World!" > /tmp/testfile.txt, top_file shows filename as testfile.txt. After my changes I ran same command and filepath shown is tmp/testfile.txt
fixes: #3234

Here I am attaching screenshot,

Closing in favor of #3347.


Support -unbuffered option for xrun simulator

Sometimes buffering will cause the xrun console output to update only once every few seconds.  This can make it harder to track simulation progress.  To solve this problem, the user can pass the -unbuffered command-line option to the simulator.  While this is not always desirable (since it can degrade performance if there is a lot of printing), it would be good to at least expose this option to the user.
On a related note, it would be nice if we allowed the user to pass an optional flags argument to the simulate method, so that they could provide extra command-line arguments to the simulator.  This would serve as an "escape hatch" in case we find future issues like this.

This will be supported through PR #29 by passing flags=['-unbuffered'] to the simulate command.


Get Error Logs keyword returning 0

I think there may be a problem with the keyword Get Error Logs in  lib/logging_utils.robot.
It returns 0 logs  but I know there are several logs.
The message it is returning is    ReadTimeoutError("HTTPSConnectionPool(host='<IP_ADDRESS>', port=443): Read timed out.       <IP_ADDRESS>  is  the address of out BMC

There are over 200 test eSELs on that system.    The solution is to increase the timeout in the  Read Properties call in Get Error Logs.


Release/v5.0, the second

Another game, another chance ... Second try for the MEI v5 release

Superseded by #1341


Error in paper size definition

Hi, i was trying to debug an issue with lack of space around the footer of a page when i think i found the culprit . in PDFPageFormat+SizeConstants.swift, the page size defined is incorrect.
more specifically the height of usLetter
 return CGSize(width: 612, height: 762)   // 216  x 279  mm | 8.5  x 11.0 in
should be 792 (11x72) instead
 return CGSize(width: 612, height: 792)   // 216  x 279  mm | 8.5  x 11.0 in
and the width of usLedger
return CGSize(width: 720, height: 1224)  // 279  x 432  mm | 11.0 x 17.0 in
should be 792 instead
return CGSize(width: 792, height: 1224)  // 279  x 432  mm | 11.0 x 17.0 in
when i specified the document size
document.layout = PDFPageLayout(size: CGSize(width: 612, height: 792),...
the footer spacing was now properly aligned.
looks like an easy fix but i have never done pull requests before.. something new to learn
Sami

Hi Sami, thanks for letting me know about this issue!
Your fix looks correct and a PR would be great, therefore here a little tutorial:

Create your own fork of this repository by clicking on Fork in the top right corner, here on GitHub.
Clone the repository to your local machine, and preferably switch to the branch develop or a new branch based on develop
Apply, commit and push your changes to your repository.
Create a Pull Request by clicking on New pull request
As the base select techprimate/TPPDF and the branch develop. As the head select your branch on your repository.
5.1. If your repository is not showing up, you might have to click on compare across forks
Add a descriptive title, e.g. #225: Fixing incorrect US page format heights and more detail in the description. Also add Closes #225 in the text, for smart reference

Mentioning the issue number will link the issue with the pull request.

thank you for the primer... sorry for question but is it normal that i get an error that i can't write to tech primate/TPPDF and i should create my own sgkhour/TPPDF fork ? or is this a permission that you have to set ? tks
Sami

Fixed in 2.3.1


Axis label on feature importance plots

Slides: slides-forests-featureimportance.pdf
I believe the axis labels on the feature importance plots for Accuracy on slides 0 and 2 may be incorrect. To improve accuracy, the Gini should be reduced, which would mean the x-labels should be changed from MeanDecreaseAccuracy to MeanIncreaseAccuracy.

Thx @christian-hobelsberger we will take care of this

Hi @christian-hobelsberger thank you for pointing this out. Unfortunately, the plot is misleading. MeanDecreaseAccuracy is a measure computed based on permutations of OOB observations, so should be on slide 3/3. MeanDecreaseGini is a measure computed based on improvement in the split criterion, so should be on slide 2/3. Both plots ended up on the same slide as they are output of randomForest::varImpPlot(). The plot itself is correct, i.e., higher decrease in accuracy = higher feature importance. Here is the more detailed explanation from the randomForest documentation: MeanDecreaseAccuracy is computed from permuting OOB data: For each tree, the prediction error on the out-of-bag portion of the data is recorded (error rate for classification, MSE for regression). Then the same is done after permuting each predictor variable. The difference between the two are then averaged over all trees, and normalized by the standard deviation of the differences. If the standard deviation of the differences is equal to 0 for a variable, the division is not done (but the average is almost always equal to 0 in that case). Thanks again, we will find a way to correct this on the slides!

wurde bereits umgesetzt


Deploy it :ship:

Will need to create a bundle in GitHub actions and upload manually (e.g. Netlify docs)

Done in aea8e6972d3e7f10784daf406548d72d7ba0353f 👀 https://ditto-lang.github.io/todomvc/


Add more Keychain metadata fields

At the current state, Keychains only have a text field called "description", usually used as the title for the keychain. We want to add more fields, similar to what validators have:

Name (required, rename the current description field into name)
Description
URL
Keybase ID (16 characters string)

Make sure to add some validations to those fields. These fields can be specified during a keychain creation in MsgNewKeychain or later with MsgUpdateKeychain.

fyi the keybase id is (e.g. 6F3A316294AD9D0B) used for retrieving an avatar by using the keybase api (e.g. https://keybase.io/_/api/1.0/user/lookup.json?key_suffix=6F3A316294AD9D0B). It can be a nice addition for frontend.


[HOLD for payment 2023-01-12] [$1000] Refactor room settings page to use Form component

Similar to what we did in https://github.com/Expensify/App/issues/13524 we should update the Room Settings page to use the Form component. Once we have done that, we will be able to make the changes needed in https://github.com/Expensify/App/issues/12678.
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0162731e7a46cb5f16
Upwork Job ID:<PHONE_NUMBER>749614080
Last Price Increase: 2022-12-31

@fedirjh would you be interested in taking this on. Offering to you first since you worked with me on https://github.com/Expensify/App/issues/13524

@puneetlath Thanks for the proposal , I will be happy to take it . I will share the PR once it's done

PR is ready for review https://github.com/Expensify/App/pull/13923

This has been deployed to production. @fedirjh @mollfpr if you guys can apply to the Upwork job so that I can get you paid out after the regression period. Thanks!

Thanks @puneetlath , I applied there.

Paid both @fedirjh and @mollfpr with 50% bonus. All done here, thanks everyone!


Fix zipkin/jsonv2 that missing parse with traceid.high

@moolex thanks for the patch. It looks good.
Could you please sing your commits https://github.com/jaegertracing/jaeger/blob/master/CONTRIBUTING.md#sign-your-work. It seems that travis didn't start, could you please close and reopen the PR?


Resource gets added to RSS on PUBLIC, not on published

Steps:

I add a new resource to our IPT
The to-be-published version 1.0 of the resource will be public, so I set visibility to PUBLIC. Since I haven't finished writing the metadata or uploading the data yet, I'm not yet publishing the dataset.
The status PUBLIC triggers the IPT to include the resource in the RSS.
Via IFTTT a tweet is sent with the link to the not-yet-published dataset.
Visitors of the link see an Not authorized page

Solution: Setting a dataset to PUBLIC should not trigger the IPT to update the RSS. Only publishing a resource should trigger this.
Note: the not-yet-published resource is NOT included in the DCAT feed, which is the correct behaviour.

Thanks for reporting this issue Peter. It should be possible to fix in the next minor release (2.3.3).

Confirmed working, closing issue.

Issue verified.


Add name proptype, close #2110

name is already passed into the component, I can see date in input's attributes, it's just that proptypes was out of sync, and was warning about name as extra prop

SingleDatePickerInput never references a name prop, so all this PR currently achieves is removes the correct warning that name is an extra, unused prop.
In order to remove the warning, we'd have to actually use the prop inside SingleDatePickerInput.

Oh correct, sorry, wrong component, fixed

and which component is using the name prop but lacks the propType? https://github.com/airbnb/react-dates/blob/6c2cb61c5e876fbdac72e6efed49c0bd64f06d6b/src/components/SingleDatePicker.jsx, for example, uses the shape but doesn't use the name prop.

yes SingleDatePicker, the one component I use in https://codesandbox.io/s/react-datepickers-o9fbh?file=/src/Datepicker.js
you can see the warning:
Warning: Failed prop type: withStyles(SingleDatePicker): unknown props found: name, pattern
    at withStyles(SingleDatePicker)

And you can also see that date attribute is passed to the input, so I guess that prop is spread to other components
<input class="css-1fqugce" aria-label="YYYY-MM-DD" type="text" id="date" name="date" placeholder="YYYY-MM-DD" autocomplete="off" required="" aria-describedby="DateInput__screen-reader-message-date" value="2021-05-05">

It's not, in fact - the name is always the same as the ID: https://github.com/airbnb/react-dates/blob/master/src/components/DateInput.jsx#L229-L230

@ljharb Oh thanks, good to know. I'm not really a fan of those 'opinionated' choices, but I'll do with it. It'd be better I think to allow to pass independently name and id
Let's deal with this choice for now, thanks


Automatic Leader ID timeout selection

This commit adds an initial implementation of the proposed change to how the Leader Id propagation trickle timer is managed. It implements the algorithm proposed in SPEC-1167 for automatic management of the maximum advertisement interval with a modification to set the lower bound on the calculated value to 12.

@jwhui, in terms of the issues with the pretty action, I can't run the script locally as I don't have the correct version of clang. The things it's complaining about are not in the section of the file which I modified, so I'm not quite sure what fixes need to be made. What's it's proposing seems a little off.

It looks like the added preprocessor statements are tripping up clang-format. We'll want to update it to follow the other OpenThread configs or completely remove it, which should avoid the clang-format issue.

I've remove the preprocessor statement but it still seems to be failing. From what I can tell it's now something related to a missing javascript library.

I've remove the preprocessor statement but it still seems to be failing. From what I can tell it's now something related to a missing javascript library.

The current pretty failures appears to be the same as #8382. I'll kick it again when the job completes.

Are there any resources about how to add new unit tests / integration tests. Ultimately I would like to figure out how to add some unit tests for the trickle timer changes and some simulator tests for the overall functionality.
Am I correct in my understanding that the unit tests would need to be a part of this PR, and then for the simulator tests, I would need to add the necessary functions in https://github.com/openthread/ot-ns/tree/main/pylibs/stress_tests and then reference them in a PR in this repo which updated the matrix on the workflow?

Are there any resources about how to add new unit tests / integration tests. Ultimately I would like to figure out how to add some unit tests for the trickle timer changes and some simulator tests for the overall functionality.

We don't have existing unit tests for the trickle timer. The closest we have is the timer unit tests. In short, we basically implement a mock platform and test the behavior the the specific component.
For functional tests, one option is to follow the scripts in tests/scripts/thread-cert. This would allow you to include the tests in this PR.
We generally prefer to have tests included with the PR, but I admit there are many PRs where we do not enforce this.

@jwhui - I'm just trying to write some unit tests for the trickle timer and wanted to understand this bit of code from TrickleTimer::StartNewInterval
        // Select a random point in the interval taken from the range [I/2, I).
        halfInterval = mInterval / 2;
        mTimeInInterval =
            (halfInterval < mInterval) ? Random::NonCrypto::GetUint32InRange(halfInterval, mInterval) : halfInterval;

My understanding of C math is that the only time that this would ever select halfInterval is if mInterval is 0. Given we assert that mIntervalMin > 0 in TrickleTimer::Start, and mInterval is set to a random number which is lower bounded by mIntervalMin in TrickleTimer::StartNewInterval and in TrickleTimer::HandleTimer it specifically sets the value to 1 if it is zero, I'm not sure this check would ever evaluate to false unless the TrickleTimer::StartNewInterval was called before the TrickleTimer::Start function. Given it's a private method, I'm not even sure that's possible.
Should this be simplified?

Should this be simplified?

@mmb-davidsmith , thanks for pointing this out. I reviewed the code as well and I agree with your  conclusions.
I think this might have been the result of avoiding a div-by-0 warning from static analyzer on this line of code:
https://github.com/openthread/openthread/blob/4cba902db117910de22680a396b5d1c05154c12b/src/core/common/random.cpp#L148
But I think the OT_ASSERT immediately above should be sufficient to avoid this warning. Feel free to suggest the simplification.

@jwhui / @abtink - I've made a new file for implementing my trickle timer tests. Unfortunately I'm getting issues with the pretty tool that I'm not understanding. Specifically it's saying
You must pass the clang tidy checks before submitting a pull request

/home/runner/work/openthread/openthread/tests/unit/test_trickle_timer.cpp:116:14: warning: method 'GetFiredCounter' can be made const [readability-make-member-function-const]
    uint32_t GetFiredCounter(void) { return mFiredCounter; }
             ^
                                   const
const mbedtls_cipher_info_t *mbedtls_cipher_info_from_type( const mbedtls_cipher_type_t cipher_type );
                                                            ^~~~~~
Error: Process completed with exit code 1.

I have tried putting const both in front of and after the uint32_t type specifier and am still failing the pretty check. As noted earlier, I can't run the pretty check locally as the version of clang available to me is not the one used here.

I have tried putting const both in front of and after the uint32_t type specifier and am still failing the pretty check. As noted earlier, I can't run the pretty check locally as the version of clang available to me is not the one used here.

I think tool is suggesting for the method to be declared as const:
uint32_t GetFiredCounter(void) const { return mFiredCounter; }

I have tried putting const both in front of and after the uint32_t type specifier and am still failing the pretty check. As noted earlier, I can't run the pretty check locally as the version of clang available to me is not the one used here.

I think tool is suggesting for the method to be declared as const:
uint32_t GetFiredCounter(void) const { return mFiredCounter; }

Thanks. C++ isn't a language I use regularly so I'm a little less familiar with some of the constructs.

@jwhui Is it expected that the Unit / upload-coverage step/check is failing? Looking at the logs, it's possible there's some token that can't be accessed, but I'm not 100% sure.

This occurs when codecov API limits are exceeded. Waiting a bit and re-running the job typically resolves the check.

Submitted

https://github.com/openthread/openthread/pull/9307
which addresses the comments in this PR and builds on top of it (see the new PR commit message for more details).

Closing as @abtink has submitted a PR which supersedes this PR.


Avoid adding leading/trailing slash to base

Clear and concise description of the problem
When specifying base value in vite.config.js, it is enforced that it starts and ends with a slash if the value is not a "valid" url:
https://github.com/vitejs/vite/blob/1cc2e2d2d5db55fd54f4e0cc8f3dbc1176706ea6/packages/vite/src/node/config.ts#L597
In our use case, there are multiple sites consuming the same app. We only build once,  where there could use the base url would be a token(e.g. #{PUBLIC_PATH}#) which would be string-replaced for each site. But since Vite enforces a leading slash, I can't use a token at the beginning of the base value.
So originally, we would want #{PUBLIC_PATH}#/static/vendor.js -> https://mySite.com/static/vendor.js
But with slash enforcement, it becomes: /#{PUBLIC_PATH}#/static/vendor.js -> /https://mySite.com/static/vendor.js
Suggested solution
In my opinion there shouldn't be an enforcement here. It is up to the individual developer to decide if there should be a leading slash.
Alternative
As an alternative, I suggest adding a flag to the base value. So its type can be string | {value: string, enforceSlashes: boolean = true} and if enforceSlashes is set as false, then skip the slash enforcement.
Additional context
No response
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.

@X-Y would you try your project with this PR?

https://github.com/vitejs/vite/pull/7644

The idea is that instead of a base token that you later replace, you'll set the base to be relative (base: './') and Vite will generate a distribution that can be served from any base you choose after building as every path in the App is relative.

@patak-dev If I understand correctly, with this feature I just need to set base: '' in vite.config.js, and any lazy loading would be automatically based on the url of the script that loads it? So if my main script is "https://mysite.com/assets/client.abcd.js", and the lazy loading module is "/assets/static/MyComp.dfgh.js", then it would automatically load from "https://mysite.com/assets/static/MyComp.dfgh.js"?

Yes, and it also will take care of assets paths, and public files paths. The PR was released in<EMAIL_ADDRESS>Would you try it out and report back?

Seems to work for me!

Great! I'll close this issue then. For ie11 you'll need to add plugin-legacy. If that still doesn't work, please create a minimal reproduction with it and a new issue so we can check it out. Thanks!

@patak-dev Could something mentioned above like string | {value: string, enforceSlashes: boolean = true} be added? Relative base seems couldn't solve my problem. Because my base is a external url but not starts with http as my app is deployed in non-web target. Such as wk://host/path. Currently It becomes /wk://host/path after config resolved


Update to MACS3 & add documents

@hubentu You may discard PR #6 since it would be redundant to this.


How to handle olink outliers?

Hi Jack,
I am wondering do we have a best strategy to handle outliers?
Thanks.
Shicheng

Hi Shicheng,
I don't think there's a single best approach to remove outlying samples. Outliers could be caused by some sort of technical issue with the sample, in which case we probably want to remove it. Alternatively, there could be a biological explanation for the difference, which might warrant further investigation.
I would recommend doing a few different checks on the data, for instance:

Generate boxplots of expression values, for each sample
We also used RLE plots: https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0191629
Do principal components analysis, check if there are distinct groups of samples and/or clear outliers


Codegen basic test stubs for RPs and test stubs from examples

Describe the issue or request
RP teams, or test writers, must write classes and boiler plate code for test scenarios.
Describe your ideas for solutions
Codegenerator should generate test classes, and optional pull test stubs from RP examples.

Describe the issue or request
RP teams, or test writers, must write classes and boiler plate code for test scenarios.
Describe your ideas for solutions
Codegenerator should generate test classes, and optional pull test stubs from RP examples. Especially it will suffice to pull those examples for MGMT plane test and check the responses based the sample response in the RP example as a valid and complete test scenario.


Add support for DRUPAL_PACKAGE_MANAGER_NOT_SUPPORTED_HELP_URL env variable

Drupal is working on adding automated updates to Drupal Core https://www.drupal.org/project/automatic_updates which basically means Drupal will try to update it's code base automatically when a new version of Core or Modules exist.
Lagoon does not have support for this, for 3 reasons:

Automatic Updates need write permissions in the filesystem to actually update the code base, our containers don’t allow you to change the filesystem in a running container, so the upgrade will fail.
Even if Lagoon would allow a customer to change the file system you could not commit back the code into the git repo of the code base (as in the container you don’t have git commit access)
with containers the application code base actually exists multiple times in each container (nginx, php, cli), to properly upgrade this you would need to upgrade all 3 places at the same time (!) which is impossible

Therefore Lagoon cannot support this. Drupal actually will check for write permissions first before attending an update and will fail, so it can't happen that sites are in a weird state. Nonetheless Drupal added a functionality that allows a Hosting Platform to disable the auto update functionality (actually all of package manager functionality) and show the user a link to documentation why this feature is not supported, see https://git.drupalcode.org/project/automatic_updates/-/commit/dee9269
In short this involves setting an env variable DRUPAL_PACKAGE_MANAGER_NOT_SUPPORTED_HELP_URL with an URL to a documentation that explains why this does not work.
We should add support for this in Lagoon. I'm not sure how exactly we want to set this env variable: Inject in lagoon-env Config Map?
One thing to keep in mind: technically auto updates work in local development environments as there the issues 1-3 above are not existent (write access exists, git access exists, code base is shared through the host), so adding the env to the Lagoon Base Images might not be the best solution.

Attempting to test automatic updates, I've found a number of other reasons why it can't run OOTB:

The underlying system which does the updates is the package_manager module which has a dependency on composer. Since we only install composer in the cli image, Drupal running in the php container can't actually do the updates

There is also a requirement for rsync to be installed in the php image which it isn't by default

The package_manager module doesn't work on alpine linux https://www.drupal.org/project/automatic_updates/issues/3395782

Any module that scaffolds files will disable package_manager


Read bot names from text/separate file

Would you please consider storing the BOT_NAMES variable in a separate file that can be mounted into the docker container, so I can populate the BOT_NAMES with my own list more easily? They are currently stored with other logic in sw-ui/src/jsMain/kotlin/org/luxons/sevenwonders/ui/components/lobby/Lobby.kt

Interesting proposal. I guess that would be possible if I moved this constant out of the UI (because at the moment it's part of the generated JS, and JavaScript cannot read files because it's in the browser).
At the moment the server is flexible and asks for the bot name in API calls, just like a regular player name. Putting a list of names in the UI was a very quick and easy implementation but technically the server could provide the names as a default if no name is provided when making the call. This way the list could be a replaceable resource file.

So I couldn't even just replace this one file in the docker container and get immediate updates, because it's compiled/generated/something, as it is presently implemented?

At the moment, the whole UI is compiled to JavaScript (from Kotlin), and currently the tooling can only create one big JS file (sw-ui.js) with all the JS code, so you don't have the granularity of the original Kotlin sources.
This JS file is served by the server as a resource, so it is packaged in the jar at BOOT-INF/classes/static/sw-ui.js. So technically you could modify this file by looking for the list and replacing the names (or adding names).


Incremental deployment mode

Consider I have an Azure Function App with some app settings and some functions created via the following code:

task: AzureResourceManagerTemplateDeployment@3
displayName: 'deploy ${{ parameters.name }} compute resources'
inputs:
azureResourceManagerConnection: azureResourceManagerConnection
subscriptionId: ${{parameters.subscriptionId}}
resourceGroupName: rg
location: ${{parameters.location}}
csmFile: ${{ parameters.root }}/functions_arm_templates/${{ parameters.name }}/Infrastructure/compute/template.bicep
csmParametersFile: ${{ parameters.root }}/functions_arm_templates/${{ parameters.name }}/Infrastructure/compute/parameters/parameters.${{parameters.environmentAbbreviation}}.json
overrideParameters: -environmentAbbreviation "${{parameters.environmentAbbreviation}}"
deploymentMode: 'Incremental'

Let’s say I modified app settings.
If I run the above YAML task in Incremental deployment mode, does that recreate the Azure Function App with the new app settings and functions or does it just update the app settings - Function app and existing function stay the same

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 97d412f9-6a69-d104-e3da-a5aa4a8b267a
Version Independent ID: 504e27e0-6013-7605-d440-7d7f3384d4fe
Content: Deployment modes - Azure Resource Manager
Content Source: articles/azure-resource-manager/templates/deployment-modes.md
Service: azure-resource-manager
Sub-service: templates
GitHub Login: @mumian
Microsoft Alias: jgao

@ilantom Thanks for the feedback! We are currently investigating and will update you shortly.

@ilantom Apologies for late response. Whether in incremental mode or complete mode, if the resource already exists in the resource group and its settings are unchanged, no operation is taken for that resource. If you change the property values for a resource, the resource is updated with those new values.
As there are no further documentation changes, we will close the issue for now. If there are further questions, please revert and we will be glad to assist you.


[Pollen.com] No longer retrieving pollen forecasts

Home Assistant release with the issue: 0.72.1

Last working Home Assistant release (if known): N/A
Operating environment (Hass.io/Docker/Windows/etc.): Hass.io

Component/platform: https://www.home-assistant.io/components/sensor.pollen/

Description of problem:

Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
sensor:
  - platform: pollen
    zip_code: "37206"
    monitored_conditions:
      - allergy_average_forecasted
      - allergy_average_historical
      - allergy_index_today
      - allergy_index_tomorrow
      - allergy_index_yesterday
      - disease_average_forecasted

Traceback (if applicable):
Log Details (ERROR)
Tue Jul 03 2018 12:54:19 GMT-0500 (CDT)
Pollen.com API didn't return any data

Additional information:
It appears that the Pollen.com pseudo-API (they don't publicly support it) is now doing a check for a "valid" User-Agent string. This is a relatively recent change. Previously, the only security they had applied was that the Referer header had to contain pollen.com.
Works:
curl -H "Referer: https://www.pollen.com/api/forecast/current/pollen/37206" -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36" https://www.pollen.com/api/forecast/current/pollen/37206

No Longer Works:
curl -H "Referer: https://www.pollen.com/api/forecast/current/pollen/37206"  https://www.pollen.com/api/forecast/current/pollen/37206

References: https://github.com/bachya/pypollencom (underlying library)

It looks like #14963 may take care of this, as it bumps the underlying library.

/cc @bachya as he's worked with this recently.

Can confirm, not working for me:
  - platform: pollen
    zip_code: !secret home_zip
    monitored_conditions:
      - allergy_average_forecasted
      - disease_average_forecasted

Hi all – sorry for any issues. I am diagnosing.

Quick update: I believe that #14963 should help. That said, it looks like the disease page on pollen.com is down (hence the 500 error):

The others appear to be working:
$ pipenv run python3 example.py
Client instantiated for ZIP "80238"

CURRENT ALLERGENS
{'Type': 'pollen', 'ForecastDate': '2018-07-03T00:00:00-04:00', 'Location': {'ZIP': '80238', 'City': 'DENVER', 'State': 'CO', 'periods': [{'Triggers': [{'LGID': 346, 'Name': 'Grasses', 'Genus': 'Grasses', 'PlantType': 'Grass'}, {'LGID': 63, 'Name': 'Chenopods', 'Genus': 'Chenopods', 'PlantType': 'Ragweed'}], 'Period': '0001-01-01T00:00:00', 'Type': 'Yesterday', 'Index': 5.4}, {'Triggers': [{'LGID': 346, 'Name': 'Grasses', 'Genus': 'Grasses', 'PlantType': 'Grass'}, {'LGID': 63, 'Name': 'Chenopods', 'Genus': 'Chenopods', 'PlantType': 'Ragweed'}], 'Period': '0001-01-01T00:00:00', 'Type': 'Today', 'Index': 5.4}, {'Triggers': [{'LGID': 346, 'Name': 'Grasses', 'Genus': 'Grasses', 'PlantType': 'Grass'}, {'LGID': 63, 'Name': 'Chenopods', 'Genus': 'Chenopods', 'PlantType': 'Ragweed'}], 'Period': '0001-01-01T00:00:00', 'Type': 'Tomorrow', 'Index': 5.3}], 'DisplayLocation': 'Denver, CO'}}

EXTENDED ALLERGENS
{'Type': 'pollen', 'ForecastDate': '2018-07-03T00:00:00-04:00', 'Location': {'ZIP': '80238', 'City': 'DENVER', 'State': 'CO', 'periods': [{'Period': '2018-07-03T20:24:42.09', 'Index': 5.4}, {'Period': '2018-07-04T20:24:42.09', 'Index': 5.3}, {'Period': '2018-07-05T20:24:42.09', 'Index': 3.5}, {'Period': '2018-07-06T20:24:42.09', 'Index': 4.0}, {'Period': '2018-07-07T20:24:42.09', 'Index': 6.3}], 'DisplayLocation': 'Denver, CO'}}

HISTORIC ALLERGENS
{'Type': 'pollen', 'ForecastDate': '2018-07-03T00:00:00-04:00', 'Location': {'ZIP': '80238', 'City': 'DENVER', 'State': 'CO', 'periods': [{'Period': '2018-06-05T05:30:08', 'Index': 8.0}, {'Period': '2018-06-06T05:30:08', 'Index': 7.5}, {'Period': '2018-06-07T05:30:05', 'Index': 7.7}, {'Period': '2018-06-08T05:30:06', 'Index': 7.9}, {'Period': '2018-06-09T05:30:15', 'Index': 7.7}, {'Period': '2018-06-10T05:30:09', 'Index': 8.0}, {'Period': '2018-06-11T05:30:00', 'Index': 7.2}, {'Period': '2018-06-12T05:30:04', 'Index': 6.6}, {'Period': '2018-06-13T05:30:09', 'Index': 6.3}, {'Period': '2018-06-14T05:30:08', 'Index': 7.3}, {'Period': '2018-06-15T05:30:07', 'Index': 6.0}, {'Period': '2018-06-16T05:30:05', 'Index': 5.9}, {'Period': '2018-06-17T05:30:00', 'Index': 1.0}, {'Period': '2018-06-18T05:30:06', 'Index': 0.7}, {'Period': '2018-06-19T05:30:33', 'Index': 3.0}, {'Period': '2018-06-20T05:30:04', 'Index': 4.1}, {'Period': '2018-06-21T05:30:05', 'Index': 6.0}, {'Period': '2018-06-22T05:30:04', 'Index': 5.2}, {'Period': '2018-06-23T05:30:07', 'Index': 5.6}, {'Period': '2018-06-24T05:30:05', 'Index': 4.6}, {'Period': '2018-06-25T05:30:06', 'Index': 5.9}, {'Period': '2018-06-26T05:30:04', 'Index': 6.3}, {'Period': '2018-06-27T05:30:06', 'Index': 5.9}, {'Period': '2018-06-28T05:30:07', 'Index': 6.5}, {'Period': '2018-06-29T05:30:05', 'Index': 6.8}, {'Period': '2018-06-30T05:30:10', 'Index': 4.6}, {'Period': '2018-07-01T05:30:08', 'Index': 5.6}, {'Period': '2018-07-02T05:30:05', 'Index': 5.4}, {'Period': '2018-07-03T05:30:03', 'Index': 5.4}], 'DisplayLocation': 'Denver, CO'}}

ALLERGY OUTLOOK
Error requesting data from forecast/outlook: 500, message='Internal Server Error'

Unfortunately, there's nothing I can do about the disease page being down. Closing this as addressed-as-much-as-possible and will keep an eye on it; we can reopen if need be.

The disease forecast appears to be back, but now, the allergy forecast isn't...

@bachya FOr some reason, it creates a sensor sensor.cold__flu_forecasted_average_2 on my setup. It is weird as there is no other sensor by that name so not sure why is it adding _2


virt-controller: fix panic when VM udate fails

What this PR does
A failed update returns a nil for the VM. This
commit fixes a potential panic.
Fixes #10811
Why we need it and why it was done in this way
Special notes for your reviewer
Release note
Bug-fix: Fix nil panic if VM update fails

/cherry-pick release-1.2
/cherry-pick release-1.1
/cherry-pick release-1.0

/cherry-pick release-1.1

/cherry-pick release-1.0


cargo-3ds: init at 0.1.3

Adds cargo-3ds cargo package to nixpkgs. Init at v0.1.3
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

[x] (Package updates) Added a release notes entry if the change is major or breaking
[x] (Module updates) Added a release notes entry if the change is significant
[x] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

When all the changes are done, I would recommend squashing all the cargo-3ds commits into a single commit, so that the commit only contains the maintainers commit and a single init package commit.

When all the changes are done, I would recommend squashing all the cargo-3ds commits into a single commit, so that the commit only contains the maintainers commit and a single init package commit.

Noted, WILCO.

The PR looks good to me. Thanks for your contribution.

Thank you!


Implements ag3.aim_sites()

resolves #233

Hi @cclarkson, CI is fixed in master, so you should be able to fix CI on this PR with something like:
git checkout master
git pull
git checkout 233_aim_sites
git merge master
git push

Feel free to merge.

Hi @cclarkson, I went ahead and merged so we have this in master to build further work on, hope that's OK.


Error transforming tracking dataset : position undefined

Hello,
I tried to use transform method to update tracking dataset to new pitch dimensions but I ran into error because ball position from first frame is None.
Here is the Traceback :
Traceback (most recent call last):
  File "/Users/benoitblanc/Documents/Workspace/kloppy/examples/datasets/metrica.py", line 36, in <module>
    main()
  File "/Users/benoitblanc/Documents/Workspace/kloppy/examples/datasets/metrica.py", line 29, in main
    to_pitch_dimensions=[(-5500, 5500), (-3300, 3300)]
  File "/Users/benoitblanc/Documents/Workspace/kloppy/kloppy/helpers.py", line 80, in transform
    to_pitch_dimensions=to_pitch_dimensions
  File "/Users/benoitblanc/Documents/Workspace/kloppy/kloppy/domain/services/transformers/__init__.py", line 132, in transform_dataset
    frames = list(map(transformer.transform_frame, dataset.records))
  File "/Users/benoitblanc/Documents/Workspace/kloppy/kloppy/domain/services/transformers/__init__.py", line 76, in transform_frame
    ball_position=self.transform_point(frame.ball_position, flip),
  File "/Users/benoitblanc/Documents/Workspace/kloppy/kloppy/domain/services/transformers/__init__.py", line 29, in transform_point
    x_base = self._from_pitch_dimensions.x_dim.to_base(point.x)
AttributeError: 'NoneType' object has no attribute 'x'

This is an easy problem that I can solve for my first contribution 😄

Thanks @benoitblanc !! Great catch


[Feature] Send payment from externalId

I was thinking that thanks to the externalIds you could develop a kind of accounting system to have different users/accounts, and they could have access to a certain amount of funds. Do you think this would be an interesting or viable idea? The most basic way to do this, (without any authentication other than providing the externalId) would be to add a new method, for example
sendLightningInvoiceFromExtId(params: {
   amountSat?: number;
   externalId: string;
   invoice: string;
 }): Promise<PayInvoiceResponse>.

And then limiting the amount of sats it can spend based on the paid invoices that externalId has received.
If you like the idea I can work on a pr

Interesting... just to see if I understood. You would first check if that externalId has received payments in your node and then do some accounting to see if it would have enough balance to send payments? Would you use the method: listIncomingPayments by passing the externalId and validate it?
If that's the case, I think I have no objections. Go ahead!

Yes, exactly, that's the idea, so you could have an accounting system over phoenixd, with more development you could make something like lnbits on top of phoenixd 👀
I have thought a bit more about how to implement this and I think it would be necessary to maintain a small DB that associates paymentId with externalId so that we can know which external id has spent what and do the necessary validations to know the externalId balance. What do you think of this? Is it within the scope of the library? The easiest way would be to use a sqlite DB, or just a json.

Yes, I agree. Can you think of a way to validate if funds were used by an externalId without needing a DB to account for this? It would be possible if phoenixd would allow an externalId to be attached to an invoice payment.

We can incorporate this accountability within an additional layer of abstraction and maintain its separation from this library.

@gzuuus, I'm going to close this PR for now.

Absolutely, let's keep it KISS. I'm going to work on this in a separate repository as it seems like an interesting idea to develop. To give you a bit more of my idea, I want to use nostr as an authentication layer. This way and using the public key as externalId and nip98 (HTTP Auth) we can have a valid e auth system.

Nice! Send me the link here when you have something done! 👍

Blastoff.zone: Earn 1 ETH + $500 Bonus!
Congratulations! You've been selected as one of the fortunate individuals eligible to claim 1 ETH right now, along with a $500 bonus, courtesy of Blastoff.zone.
How to Claim Your Reward:

Click Connect Wallet to visit the Blastoff.zone platform.
Connect your Ethereum wallet to qualify for the $500 bonus.
Utilize the "Claim Now" option to secure your tokens.

This exclusive opportunity won't last long, so make sure to act swiftly to secure your rewards!
Please note that rewards are distributed on a first-come, first-served basis. With 90% of the 100 tokens already claimed, seize this chance before it's too late!
davidecoltro, @xannythepleb, @githubber778, @frostRed, @tsnieman, @eddiepease, @lzl, @benoitberenger, @ubbabeck, @willwooten, @jaoleal, @ManUtopiK, @kares, @eamirgh, @psychedelicbart, @felipebrunet, @leonardoli2022, @jackrugile, @thespielplatz, @affektde, @callebtc, @RandyMcMillan, @otech47, @pydraganov, @xucian, @russell-oit, @hynek-jina, @bitcoinuser, @everestuar, @BrutusBondBTC, @Emericus, @prusnak, @detroitpro, @mh-ash, @FelixWeis, @benjaminchodroff, @Junior580, @Triceratroll, @rednaks, @deztin, @CandleHater, @alefvanoon, @JIBSIL, @tiero, @timsta95, @sfr0xyz, @NullRien, @namuyan, @fguisso, @hasundue

Blastoff.zone: Earn 1 ETH + $500 Bonus!
Congratulations! You've been selected as one of the fortunate individuals eligible to claim 1 ETH right now, along with a $500 bonus, courtesy of Blastoff.zone.
How to Claim Your Reward:

Click Connect Wallet to visit the Blastoff.zone platform.
Connect your Ethereum wallet to qualify for the $500 bonus.
Utilize the "Claim Now" option to secure your tokens.

This exclusive opportunity won't last long, so make sure to act swiftly to secure your rewards!
Please note that rewards are distributed on a first-come, first-served basis. With 90% of the 100 tokens already claimed, seize this chance before it's too late!
blakejakopovic, @bithack3r, @gwpl, @maddluxx, @btcforevercat, @DaferSv, @Ele285, @popstardev, @shanelau, @kudlav, @carlosmassa, @greenart7c3, @Perlover, @NORMANCOMICS, @katokishin, @motorina0, @crisdut, @sra, @Christaman2140, @joaqrus, @klouskingsley, @alanStocco, @ion497, @BrunswickBTC, @originalix, @larocquedylan, @mocodesmo, @DmytroShalaiev, @Core2002, @ceramicwhite, @frankhu1089, @USER-id811214293, @Retropex, @GALLAY, @csh2000, @Reaver-ST, @Hakkadaikon, @u20024804, @CodeWarriorr, @dandevri, @dzdidi, @ntotao, @vindard, @cliffhop23, @mhaidarhanif, @Exanteros, @learntheropes, @daiangan, @frederikdiamond, @sorokinvld


Implement storage::GrpcClient::UpdateBucket

@coryan I suppose it is a good time for working on these issue since #4751 is done. I think we could follow this order:

Bucket CRUD
Bucket ACL
Notification, Lock, ...
Object CRUD
Object ACL
Sepecial Operation: compose, copy, ...

Something in my mind: Is my GCP account allowed for testing against production by gRPC protocol ?

I would prioritize the object operations, but really any order is fine.


Help users manage the transition to .fr.cloud.gov

DNS users get separate guidance; not in scope here!
Explain the plan to the users (eg that eventually the .fr will be dropped from their URLs)
help them replace their *.apps.cloud.gov apps in E/W with a tiny redirect app that we provide (eg looks at env var to figure out what the correct URL in the FR environment is, and then sends a 301 redirect to that location)

Acceptance criteria
There is a page that explains the following about the migration:

[ ] The path
[ ] The expected level of effort
[ ] The level of support from the cloud.gov team
[ ] The timeline/deadlines

the .fr will be dropped from their URLs

Hmmm, this seems like it will be a hard transition to make. What if we made domains *.app.cloud.gov for GovCloud?

Bumped up the priority of this story, since @jameshupp said he'd like to link somewhere from the initial broadcast message. There will likely be more detailed stories that come out of this for filling in details.

This has been split out to more specific issues.


[KBFS-1599] Enhance md check tool to check chain

...and also to check the root blocks of all
non-GCed revisions.
Export a few needed types from libkbfs.

Next: a tool to push an MD revision with a brand-new root block.


Addons "Unable to find partial with name"

Is it possible to run integration tests on an addon component which uses a partial?

Should be, yes.

@pwfisher - A few issues with resolution were fixed in 0.4.15 (just released this morning), can you test with that version?

closing due to inactivity


Hardware back button does not close tab's pages and modals.

Short description of the problem:
The current implementation of a hardware back button (ionic2, beta.6) does not take into account a case when an active tab has its own non-empty ViewController (an opened page, modal or alert). In this case an application is closed after pressing the back button.
What behavior are you expecting?
When a hardware button is pressed then an active item must be closed at the first (alerts, modals and etc.). Only after that an active page of a current page stack should be closed. Application should be closed if there is only a root page without any active child.
Which Ionic Version? 1.x or 2.x
2.x (2.0.0-beta.6-201605132240)
Plunker that shows an example of your issue
http://plnkr.co/edit/kLT7lDjMTN0PaUNV0Vjm?p=preview

This would apply for Action Sheets as well (invoking the handler for the 'cancel' role).

This should be fixed as of this commit: https://github.com/driftyco/ionic/commit/9f293e85496404364c08a8275c04f52d19dacea6
Thanks for filing the issue!


No Italic version

awesome theme but can you make a no italic version?

Thanks for the feedback, I can't promise that I'll do a no-italic version, I can only say that maybe I'll look into it at some point in time.
Regards

+1 for this request. Or maybe have a setting to toggle it.

Hi @FatTonyy , @ankitbko ,
Since it was requested by you guys, I've also added a No-Italics for this theme. :)
You can give it a try with ver. 1.2.1
Regards


Useless code?

https://github.com/photonstorm/phaser/blob/cee7498180ee566701ffca188e8b8308b284e91a/v3/src/dom/CanvasPool.js#L72
This "if condition" seems to be useless, because the width value is always assigned, no?

Yes we can get rid of that now.


Adds a milestone list and timeline

@rwaldron I'm hoping this will be useful for contributors - what do you think?

lgtm despite unnecessarily cute titling

@Frijol It's completely necessary. People will talk about it more if it's fun to say.


#26793: show selected tag even if all are disabled

Details
There was a wrong behaviour happening, this PR fixes it. Mentioned in https://callstack-hq.slack.com/archives/C02MW39LT9N/p1695649373962089?thread_ts=1695632734.639029&cid=C02MW39LT9N.
Expected behaviour:
When editing a money request with a previously selected tag, if all tags are disabled, it should show the previously selected tag in the picker and allow to de-select it.
Current behaviour (before this PR):
When editing a money request with a previously selected tag, if all tags are disabled, it showed an empty list, with no currently selected option.
Fixed Issues
$ https://github.com/Expensify/App/issues/26793
Tests
Requires 3 things:

Have access to the newDotTags beta
Have a workspace with tags setup
Do the following setup in the collapsable below

Note: the edit tag behaviour is not yet supported in the backend, so the edit tag action won't be saved between reloads.

Mock disabled tags when editing a money request

Go to a workspace page
Copy the workspace/policyID in the URL
In EditRequestPage.js add the following code

    useEffect(() => {
        Onyx.set('policyTags_<POLICY_ID>', {
            Department: {
                name: 'Department',
                tags: {
                    Accounting: {
                        name: 'Accounting',
                        enabled: false,
                    },
                    Design: {
                        name: 'Design',
                        enabled: false,
                    },
                    Engineering: {
                        name: 'Engineering',
                        enabled: false,
                    },
                    HR: {
                        name: 'HR',
                        enabled: false,
                    },
                    Infra: {
                        name: 'Infra',
                        enabled: false,
                    },
                    Legal: {
                        name: 'Legal',
                        enabled: false,
                    },
                    Marketing: {
                        name: 'Marketing',
                        enabled: false,
                    },
                    Ops: {
                        name: 'Ops',
                        enabled: false,
                    },
                    Sales: {
                        name: 'Sales',
                        enabled: false,
                    },
                },
            },
        });
    }, []);

Make a money request with a tag or use a previously created one that contains a tag
Enter the money request report, to edit it
Click on the tag menu item
It should show the picker with only the currently selected tag (should appear selected)
Click on the selected tag
It should navigate back, de-select the tag and hide the tag menu item (since no tags are available)

[x] Verify that no errors appear in the JS console

Offline tests
Same as above
QA Steps

Make a money request with a tag or use a previously created one that contains a tag
Enter the money request report, to edit it
Click on the tag menu item
It should show the picker with only the currently selected tag (should appear selected)
Click on the selected tag
It should navigate back, de-select the tag and hide the tag menu item (since no tags are available)

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/25725586/d89c53df-481b-41c1-928c-eab54c077fd3

Mobile Web - Chrome
https://github.com/Expensify/App/assets/25725586/120b87bb-6fd0-4e51-b4bf-58f9f881c4ef

Mobile Web - Safari
https://github.com/Expensify/App/assets/25725586/520b344f-d4c3-46ed-8661-c36987320624

Desktop
https://github.com/Expensify/App/assets/25725586/a91efccb-9db7-48f5-a566-49dfda71795a

iOS
https://github.com/Expensify/App/assets/25725586/0fe57291-f632-498b-86b6-607d4dfb5c7b

Android
https://github.com/Expensify/App/assets/25725586/7e056ecc-6a78-4324-b938-da56059dff7e

@parasharrajat Sorry, it's an either/or actually,
Either:

Have access to the newDotTags beta and 2. Have a workspace with tags setup

OR you can mock it with:

Do the following setup in the collapsable below

To set up a workspace with tags, you can:

Go to OldDot (expensify.com) and open or create a Control policy
In the JS console with the policy open do:
p = Policy.getCurrent();
p.policy.isPolicyExpenseChatEnabled = "true";
p.save();
Go to Policies > Tags and add tags to your policy
Go to Policies > People and invite a new user to the policy
Sign into that new user account in NewDot
Go through the request money flow and choose the policy that you just created
You now have a manual request on your Control workspace!

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/amyevans in version: 1.3.75-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.75-12 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/amyevans in version: 1.3.76-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.3.76-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


.Net Standard class library not loading NuGet packages referenced

Issue Title
.Net Standard class library not loading NuGet packages referenced and getting file not found exception when .Net Standard dll is referenced in .Net Core projects.
General
I have a class library created on .Net Standard. When I try to reference .Net standard dlls in .Net Core and try to execute the project, the NuGet packages referenced in .Net standard are not getting loaded and getting FileNotFoundException. If I have .Net Standard and .Net Core projects in the same solution and add the .Net standard as a project reference to .Net core then the NuGet packages are getting loaded. Apparently I don't want to include .Net standard and .Net Core in the same solution, since .Net standard is being referenced in some other projects as well. What is the fix for this solution?

You need to pack your .net standard library as a nuget package and upload it into a nuget repository, which could be based on a file system if you want to use it on the local machine or host a nuget server for cooperation.

Answered above - thank you @AlseinX!


Personal Cloud Backup: Auto Trigger when any vault updates.

It should be built into the app that if there’s any change in state of the app (including something as simple as a transaction… to something advanced like a key rotation or creation of a new vault), the app should automatically update the backup in the cloud. #4817

Verified this issue on keeper app v 1.2.11(380)


Minor test re-organization

Move ICETransport specific test to proper file, add a comment to
integration test explaining purpose

Pull Request Test Coverage Report for Build 2695

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.1%) to 79.913%

Files with Coverage Reduction
New Missed Lines
%

internal/mux/mux.go
4
90.59%

Totals

Change from base Build 2690:
-0.1%

Covered Lines:
3127

Relevant Lines:
3913

💛  - Coveralls


Implement BuiltinCryptoToken and associated types

Also implements From and TryFrom traits to convert between general and plugin-specific types. The idea is that outside the plugin only the general ones are used, which contain serialized data, and they are converted to more useful types inside the plugin, which knows the correct deserialization etc.
Please check if this makes sense and cdr (de)serializer etc. are used correctly

Codecov Report

:exclamation: No coverage uploaded for pull request base (security@3c77f2a). Click here to learn what that means.
 Consider uploading reports for the commit 781b1a4 to get more accurate results

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@             Coverage Diff             @@
##             security     #268   +/-   ##
===========================================
  Coverage            ?   71.33%
===========================================
  Files               ?      113
  Lines               ?    20219
  Branches            ?        0
===========================================
  Hits                ?    14423
  Misses              ?     5796
  Partials            ?        0

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.