Clarify location of where to run mock data script

Hey, I just made a Pull Request!
AFAIK the yarn lerna run mock-data should be ran from the project root.
:heavy_check_mark: Checklist

[ ] All tests are passing yarn test
[ ] Screenshots attached (for UI changes)
[ ] Relevant documentation updated
[ ] Prettier run on changed files
[ ] Tests added for new functionality
[ ] Regression tests added for bug fixes

Never mind, just realised it could be ran from /packages/backend as well 😄

From https://backstage.io/docs/getting-started/running-backstage-locally

These commands are run from the project root, not inside the backend directory.

🤔🤔🤔

ohhh interesting 👀 I gave it a try and I could actually run it from /packages/backend though

mock-data can be run from the root or any subpackage that has the script command available. If run from the root it's going to use lerna to run the mock-data command in all packages that has it defined in it's package.json file.

mock-data can be run from the root or any subpackage that has the script command available. If run from the root it's going to use lerna to run the mock-data command in all packages that has it defined in it's package.json file.

thanks, so yarn mock-data can be ran from a package that has it defined in its package.json but yarn lerna run mock-data can be ran in the root but also from a package that doesn't have its own mock-data command defined in the package.json since it's using lerna to run it?

mock-data can be run from the root or any subpackage that has the script command available. If run from the root it's going to use lerna to run the mock-data command in all packages that has it defined in it's package.json file.

thanks, so yarn mock-data can be ran from a package that has it defined in its package.json but yarn lerna run mock-data can be ran in the root but also from a package that doesn't have its own mock-data command defined in the package.json since it's using lerna to run it?

Yes. Seems like running yarn lerna run mock-data from a plugin or package would basically just run it from the monorepo package since it's not usually defined in the plugins/packages.

Might still be a good idea to suggest running it from the project root in the documentation though since in theory a plugin or package could override the lerna command.


Exception copying to non-empty patched-test-runtime directory

Originally reported in #92, but the problem can be reproduced without the complexity I originally saw.  Any project with modular patched test runtime will cause the problem.
Running mvn test multiple times without a clean, on a modular project, fails.
Minimal reproducer project: https://github.com/dbwiddis/foo

Clone the project
mvn clean test test ---> fails
mvn clean test clean test ---> succeeds

Additional debugging info:

The stack trace points to a problem copying the directory structure with the code in these lines

    if (mojo.getProjectModules().getMode() == TestMode.MODULAR_PATCHED_TEST_RUNTIME) {
      String patchedDirectory = targetPath.resolve("patched-test-runtime").toString();
      String mainDirectory = project.getBuild().getOutputDirectory();

      try {
        copyDirectoryStructure(mainDirectory, patchedDirectory, false);

Deleting either the target/junit-runtime/patched-test-runtime directory, or the entire contents of the directory, in between runs of mvn test also fixes the problem, indicating something associated with that directory is failing in these lines:

        Path destPath = Paths.get(dstFldr, currentPath.toString().substring(srcFldr.length()));
            try {
              Files.copy(currentPath, destPath, COPY_ATTRIBUTES, REPLACE_EXISTING);

The Documentation indicates this line is probably a bug: dstFldr here is patched-test-runtime and it is non-empty after the first run.

REPLACE_EXISTING – Performs the copy even when the target file already exists. If the target is a symbolic link, the link itself is copied (and not the target of the link). If the target is a non-empty directory, the copy fails with the DirectoryNotEmptyException exception.

Further analysis:

The DirectoryNotEmptyException is anticipated in the catch block but only if the boolean ignoreNonEmpty is true.
There are two copyDirectoryStructure() calls, and the ignoreNonEmpty value is set false for the first one (which is the one causing the problem here).
A possible fix would be to delete the patched-test-runtime directory (if it exists) before the first call, but in that case, it seems the ignoreNonEmpty boolean is useless, so I'm assuming it's there for a reason; perhaps the first call is intended to throw an exception on a nonEmpty directory, exactly as it's doing.

So at present, this seems to be the intention, and successive tests without cleaning up in between are not permitted.

Thank you for raising this issue including a minimal reproducer, Daniel.
I can't recall why I resorted to copying files back in the days, would be good if there's a "don't copy files" approach.

Yep. Already worked around it. :-)

Fall is coming - might be a good time to tackle this bug within the plugin.

I'd be happy to submit a fix, except it's really not clear what the fix is.  I'd just always set ignoreNonEmpty to true and it would work.
But then why is that boolean there in the first place? :-)

So my workaround works great for running tests, but I'm blocked on publishing a release due to a different bug in maven-javadoc-plugin that can't find my module descriptor in the case the output directory exists but my previously built jar has been "cleaned". :(

Hey @sormuras as I hack around this for yet another release, I'm wondering if there's anything I can do to help get this fixed.  I certainly know a way to fix it but I'm not sure if that will break some other intended behavior.  To summarize:

this bug requires running clean for modular builds all the time, or tests break
I've hacked my POM to force clean in the initialize phase so users don't have to, which is less efficient but workable
but that breaks release with javadoc plugin so I have to undo the hack every time I want to cut a release, and then put it back in

Hi Daniel!

I certainly know a way to fix it but I'm not sure if that will break some other intended behavior.

If you have time to prepare a fix I am happy to merge it. As long as existing integration tests don't break, we're fine. If a few fail, there's always the option to name the next release 1.2.0 or even 2.0.0

Sure, I'll take a crack at it this weekend.   My plan is to toggle the ignoreNonEmpty boolean to true in this line:
https://github.com/sormuras/junit-platform-maven-plugin/blob/be28792abb6ba9d6489713c407a58389c96da2d4/src/main/java/de/sormuras/junit/platform/maven/plugin/MavenDriver.java#L138
That'll take 5 seconds.   Writing a failing test, proving this fixes it, and debugging any other failures that causes may require extra cups of coffee. :)

Initial attempts toggling the boolean worked, but ended up keeping the old files there because the copy failed (as before) but the exception was caught.  So I just replicated the subset of clean that really is needed, deleting the target directory before copying.


docs(jest-dev-server): update teardown docs with servers global

Summary
We've noticed the module-scoped const servers = [] was removed in v8.0.0

https://github.com/alphagov/govuk-frontend/pull/3363#pullrequestreview-1326812806

With this gone, it's no longer possible to run teardown() without providing a list of processes
This PR updates the documentation to:

Remove references to getServers()
Update examples to add server processes to globalThis

This is nicely inline with the Jest globalSetup example too:
https://jestjs.io/docs/configuration#globalsetup-string
Fixes: https://github.com/argos-ci/jest-puppeteer/issues/529

@colinrotherham thanks, sorry I missed this breaking change!


Replace tab character with 4 spaces

Impact

[ ] Bug fix (non-breaking change which fixes expected existing functionality)
[X] Enhancement/New feature (adds functionality without impacting existing logic)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
There are many places were tab character is used instead of 4 spaces.
This PR was done by a script which replaces all tabs in ascii files to 4 spaces.

Things to be aware of

Things to worry about

Additional Context

I am concerned that merging this will make the git history obscured for these files, a tool that I rely on heavily.

Hi @asashour,
I've been talking to the team about this PR and we all agree we wouldn't like to update git history of a lot of lines of that many files. We plan to start using EditorConfig from IntelliJ anytime soon.
I'll be closing this PR for now. We very appreciate your contribution and desire to enhance Liquibase code every day, we hope to see more PRs coming from you.
Thanks,
Daniel.


Add more examples for TB SQL

Also reformat the doc a little bit.
Signed-off-by: Maizi Liao<EMAIL_ADDRESS>

@leomikezee very thanks for updating this doc!


[website][upgrade]feat: website upgrade / docs migration - 2.5.0 Cookbooks/Development/Reference

(If this PR fixes a github issue, please add Fixes #<xyz>.)
Fixes #11766
(or if this PR is one task of a github issue, please add Master Issue: #<xyz> to link to the master issue.)
Master Issue: #
Motivation
Explain here the context, and why you're making that change. What is the problem you're trying to solve.
Modifications
Describe the modifications you've done.
Verifying this change

[ ] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:
If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API: (yes / no)
The schema: (yes / no / don't know)
The default values of configurations: (yes / no)
The wire protocol: (yes / no)
The rest endpoints: (yes / no)
The admin cli options: (yes / no)
Anything that affects deployment: (yes / no / don't know)

Documentation
Check the box below and label this PR (if you have committer privilege).
Need to update docs?

[ ] doc-required
(If you need help on updating docs, create a doc issue)

[ ] no-need-doc
(Please explain why)

[x] doc
(If this PR contains doc changes)

@Anonymitaet LGTM

@urfreespace  has previewed the changes on her local machine and everything goes fine. I'll approve, resolve conflicts, and merge.


Support for Firestore Client on App Engine Standard?

This is with regard to #179 on Firebase Admin Python SDK.
Is there a workaround, or any updates on the timeline on when support for Firestore client will be added on App Engine Standard?

These libraries are supported by the Python 3.7 runtime on GAE standard. At this time, we have no plans to support the Python 2.7 runtime.


Install jq/yq for more readable tests in tmt test suite

Related to #1585.

/packit retest-failed

blocking other work -> transitively, via #1854


add lion.himbo.cat

I added Lanyard to my Site, though it will only show when I'm actually playing music
my repo: https://github.com/himbolion/figment
files:
https://github.com/himbolion/figment/blob/master/utils/lanyard.tsx
https://github.com/himbolion/figment/blob/master/pages/index.tsx#L61-L68

bump

bump @Phineas


Gif Downloader - Javascript

Pull Request Checklist
Go through the check boxes given below and make sure you mark the relevant ones.
To check put x inside [ ] eg. [x] Extension
Is your project an

[ ] Extension
[ ] Application

Given below are the mandatory requirements we expect from your project. Your Pull Request will be reviewed only if all the minimum requirements relevant to your project are satisfied.

[ ] Added readme.md to my project folder with relevant information.
[ ]  I have provided the demo video link (showing the functionality in action) or the public deployment link of my extension of application within the readme.md (if Applicable).
[ ] I have explained the process in a readable manner within readme.md.

Terms and Conditions
Plagiarism check from Team Crio will be solid and if your code is found to be plagiarized, the team has every right to reject your Pull Request and take necessary actions.

[ ] I can assure you that this is my own contribution and I did not involve in any kind of plagiarism activities.

Buckle up and wait till you recieve communication from the review team. Keep a tab on this pull request page for comments on your project. Any necessary suggestions will also be provide here. All the best :)
Once your PR get's merged, take some time ⏲, celebrate 🥳 and share it with the community on slack.

Hi @ravit27
Kindly requesting you to close and reopen the PR and this time, make sure you mark the relevant check boxes in the Pull Request Template. Read the template carefully and mark accordingly. Looking forward to review your PR :)

Updated the Checklist

@ravit27 Hi!
Thank you updating your PR template.
Here are some suggestions you can work on.

The GIF downloader does not seem to match the theme of this edition of IBD. The focus is to build tools that enhances the work from home experience. Can you use the same downloader tool but use it for something that helps/matches with the theme?
Make sure you build something that either helps in increasing the productivity for a WFH individual or helps him reduce stress being in a WFH environment.
Looking forward for your idea :)


not able see falco service in falco helm chart

i m not able to see service falco-service
when i m  run falco helm chart
https://hub.helm.sh/charts/stable/falco/1.1.0
follow from here
NAME:   my-release
LAST DEPLOYED: Tue Feb 18 08:01:12 2020
NAMESPACE: default
STATUS: DEPLOYED
RESOURCES:
==> v1/ConfigMap
NAME              AGE
my-release-falco  1s
==> v1/DaemonSet
NAME              AGE
my-release-falco  1s
==> v1/Pod(related)
NAME                    AGE
my-release-falco-68s5h  1s
my-release-falco-6gzvk  1s
==> v1/ServiceAccount
NAME              AGE
my-release-falco  1s
==> v1beta1/ClusterRole
NAME              AGE
my-release-falco  1s
==> v1beta1/ClusterRoleBinding
NAME              AGE
my-release-falco  1s
NOTES:
Falco agents are spinning up on each node in your cluster. After a few
seconds, they are going to start monitoring your containers looking for
security issues.
No further action should be required.

Hi,
As you can see there : https://github.com/helm/charts/blob/master/stable/falco/templates/service.yaml#L1 the Service is only deployed if auditLog.enabled = true (default is false).
Remember that Service is for now only used to gather audit logs from k8s API server.

can you help me how to enable audit log i tried audit -policy but I did not get success
https://github.com/falcosecurity/falco/issues/1052  i raise the issue for same


Title: Implement Grid Layout for Projects and Responsive Navbar

#18
Description:
This pull request enhances the UI/UX by implementing a grid layout for displaying projects and improving the responsiveness of the navbar. Key changes include:
Add the gssoc-ext hactobter label and level-3 label . Also please add labels to my merged PRs

Projects Grid Layout:

Projects are now displayed in a 3-column grid on desktop (Alpatop) for better visibility.
On mobile, the layout adjusts to a single-column view for improved readability.
The layout is fully responsive, ensuring a smooth user experience across different screen sizes.

Responsive Navbar:

Fixed the navbar to be more responsive and adaptive to various screen sizes.
The design is now cleaner, with proper alignment and positioning on both desktop and mobile views.

Additional Changes:

Enhanced the project cards with links and hover effects to improve interactivity.
Refactored the existing code for better maintainability.

Testing:

Verified that the projects display correctly across different devices (desktop, tablet, and mobile).
Tested the navigation bar for proper functionality and alignment in all screen sizes.

ScreenShot:

Nice work @jjf2009, Keep working man 🚀

@beRajeevKumar add labels to this pr please


Avoid JDOODLE

Bro, Please avoid jdoodle api and provide code for java and c++ also

Hi there,
We are currently working on building dockerize container for compiling all programming languages at the same place without depending on external support. As of now the requests for Compiling Java and C++ is limited to 200 requests per day while other programming languages has unlimited requests. We'll soon be releasing the next update. Thanks for your suggestion!
Team Decoder


[Bug?] UpdateLiveStats returns stats for all time, not up time.

Expect:
UpdateLiveStats gives UpTime/Stardust/XP/etc. for the duration that the bot is run (i.e. UpTime).
Actual:

Bot seems to return stats based on the account totals.
(As much as I'd like to be getting 4x10^6 xp/hr)
Config:
http://pastebin.com/HkpcPUc6
Output:
N/A (see screenshot above).
To Reproduce:
Run with linked config.
Other Info:
OS: Linux Mint 18
Branch: Dev
Git Commit: e68c2e80202b9457311368eb2248c5a762fa35bc
Python Version: Python 2.7.12

personally I would like both
total run time and session uptime

As yaborije said on Slack, #4088 is the reason of this bug. Checking for None and not 0.
self.xp['latest'] = playerdata.get('experience', 0)
                        if self.xp['start'] is None: self.xp['start'] = self.xp['latest']

@MasterCATZ We can’t have total as it is. We do not know for how long you ran the bot.


[editor]: Support img in preview

Please add support for .img files to the editor preview.
Generated by adamraichu.zip-viewer

I'm sorry, but according to https://fileinfo.com/extension/img, .img is not a text file.


Use the preset location for cache and global bin

It should be a better way, I think.
(this will break previous presist.)

Are these changes addressing an issue you're experiencing with yarn?

(this will break previous presist.)

It will also break all currently installed global applications. This manifest was just updated to fix global installs with https://github.com/lukesampson/scoop/commit/f783c38d58ba648e2031769d8043843c5441ef15. This will also move the yarn cache and shims out of scoop and into the users localappdata. For predictability, I think I prefer them to live within the persist dir.

Cuz I found that those real global bin, more specifically, all global installed node modules are still store within %LOCALAPPDATA%\\Yarn, in %LOCALAPPDATA%\\Yarn\\config\\global, though we relocate bin and cache directories into scoop.
e.g.: ~\scoop\persist\yarn\bin\gulp.cmd
@"%~dp0\..\..\..\..\..\AppData\Local\Yarn\config\global\node_modules\.bin\gulp.cmd"   %*

Yarn keeps adding stuff to %LOCALAPPDATA% anyway, so there is no real benefit for adding persistence to bin and cache.
—— @r15ch13

It's a little tricky that we seperate cache and global bin from the actual config things to let scoop can presist them for us to use global applications. Now for that, we can just add %LOCALAPPDATA%\\Yarn\\bin, the default directory of shims of Yarn, to PATH. Keep its original feature, and simpler, compared to current workaround which relies on ~\.yarnrc.
Looks like I'm SO OCD. Lol.

I have created a bucket for nonportable apps. It has a manifest for Node where I did something similar, so that npm stores its packages in APPDATA\npm instead of the nonstandard scoop\persist directory.


mpfs/corespi: Add driver for CoreSPI

Summary
Adds a driver for an FPGA fabric / CoreSPI implementation.
Supports multiple instances, assuming they reside in some base address, offsettable by a constant value.
Impact
MPFS only
Testing

Just for internal review, will upstream and rebase that here instead.


Output binding

Added output binding logic.
Fixes #2

@brettsam- please take a look when you get a chance

@pragnagopa I think everything is addressed except debug logging - is there a standardized way to do that using LoggerFactory? It seems all other extensions use LoggerFactory for triggers but don't log much for output binding.

@pragnagopa Figured it out - think I addressed all change requests!

Great!. Looks good. Merging it.


Question about usage of BVT for retrieving list of objects intersected by a Ray

This isn't technically an issue with the library but I'm wondering about how to use the BVT structure (or indeed the DBVT structure) for retrieving a collection of objects that are intersected by a ray.
I could see from the nrays project that there used to be a cast_ray method on the BVT structure that provided an easy way to do this. Obviously this was built using an older version of ncollide as this no longer seems to exist and I can't see another way to do this.
I had a look at the CollisionWorld and this seems to be closer to what I need, but this is overkill for my use case.
Could someone enlighten me as to the best way to do what I want?
Thanks a lot for any help.

I should have read the documentation a little more closely but I have something worked out using the RayInterferencesCollector to gather a Vec of intersected objects with a ray.
What I'm still confused about though is how to get the closest intersecting object from this vector, at the moment I'm just assuming it's the first element. Or is there another way of querying for this information directly?

The BVT can be browsed in two manners.
What you probably did is to use the RayInterferencesCollector together with the .visit(...) method of the tree. This will collect all the objects which have their bounding volume intersect the ray. Then, you still have to check that the ray actually intersects the collected body performing a ray cast on each of them (and if you need to, select the one with smallest time of impact). Also note that the first element is not the closest intersecting object (since no ray cast is done on the objects themselves) nor the closest bounding volume.
The second way to use the BVT is using the .best_first_search(...) method, which is what you should do if you are seeking the first hit only. You need to feed this method the RayIntersectionCostFn structure. This will work only if your objects implement the LocalRayCast trait (which will be removed in favor of RayCast soon btw. See the second comment of #87). The .best_first_search(...)method is not yet implemented for the DBVT though; so you might want to go with the first option if you need it.
This second option is pretty new (relative to the time when I first wrote the documentation on ncollide.org, so unfortunately, I did not have the time to document it yet.

Thanks for the informative reply! Looks like best_first_search() is ideally what I want but since I'm using a DBVT I'll have to go with the other method for now. Good to know there's a choice for various tradeoffs to be made though.

@sebcrozet Looks like RayIntersectionCostFn was removed in c0052bb21cbd83f37fb9225c2b03e18f76b87922.
Is BestFirstVisitor the new solution to this use case? Seeing as 3D picking via ray tracing to the closest object is a common use case, the documentation probably deserves a refresher.
I'm looking through the API reference trying to find how to ray cast at a BVT of AABBs. I see that only CompositeClosestPointVisitor implements BestFirstVisitor, but I fail to see how this solves the ray casting problem.

Does this seem like it would work?
Side note: why does toi_with_ray take an isometry? Can't the user transform their own ray? I'm guessing most people will just pass the identity.
struct EarliestToiRayCast {
    pub ray: Ray<f32>,
    pub solid: bool,
    pub tfm: Isometry3<f32>,
}

impl<T, B> BestFirstVisitor<f32, T, B> for EarliestToiRayCast
where
    B: RayCast<f32>
{
    type Result = T;

    fn visit_bv(&mut self, bv: &B) -> BestFirstBVVisitStatus<f32> {
        let solid = true;
        if let Some(toi) = bv.toi_with_ray(&self.tfm, &self.ray, self.solid) {
            BestFirstBVVisitStatus::ContinueWithCost(toi)
        } else {
            BestFirstBVVisitStatus::Stop
        }
    }

    fn visit_data(
        &mut self, data: &T
    ) -> BestFirstDataVisitStatus<f32, T> {
        BestFirstDataVisitStatus::Continue
    }
}

I just realized the above implementation doesn't even work because if you never return BestFirstDataVisitStatus::ContinueWithResult then you get a None result. I only care about the cost in visit_bv. So I guess I need to keep state so I can remember which data match to which volumes so I can provide the right cost? This seems a bit convoluted.

@bonsairobo Hi! The disappearance of RayIntersectionCostFn is surprising. It seems I forgot to re-add an equivalent based on the new design. I'll address this next saturday.

Should I implement my own BestFirstVisitor that uses toi_with_ray to determine the cost?

That would be the right approach, yes.

Side note: why does toi_with_ray take an isometry? Can't the user transform their own ray? I'm guessing most people will just pass the identity.

The transform represents the transform of the shape that the ray is being cast on. That's needed because most shapes of ncollide do not contain their world-position.

I just realized the above implementation doesn't even work because if you never return BestFirstDataVisitStatus::ContinueWithResult then you get a None result.

The BestFirstDataVisitStatus::ContinueWithResult should be returned by visit_data. The idea is that the tree is based on bounding volumes to accelerate the ray-cast. The role of visit_data is to perform a ray-cast on the actual shapes bounded by those bounding-volumes to return a result. Though if your T is not ray-castable (which was already a requirement for the old RayIntersectionCostFn to work), I guess the current design is a bit limiting.
I solution would be to modify the BestFirstBVVisitStatus enum so it also has the ContinueWithResult and ExitEarlyWithResult variants (just like BestFirstDataVisiStatus)!

@sebcrozet Thanks for the response! I like you idea of modifying the BestFirstBVVisitStatus enum. That would greatly simplify my code.

Actually, one issue with that new enum is that visit_bv doesn't see the data associated with the bounding volume, so it wouldn't know what result to return.

I guess I really want something like BestFirstVisitor that only assigns cost to the bounding volumes and lets you visit the entire node (bv and data) at once. Another option is having an extra BestFirstDataVisitStatus variant like ContinueWithBVCost(result) that means, "I'm just going to use the cost from visit_bv, but here's the result if that cost is good."

@bonsairobo  Now that I thought about this further, we should just combine visit_bv and visit_data into a single method: fn visit(&mut self, bv: &BV, data: Option<&B>) -> BestFirstBVVisitStatus<N>;.
We actually already do something similar for the simultaneous tree traversal there. That way, this visit method is free to return whatever cost it wants, potentially with a result if it exists.

Another thing that would be nice is if best_first_search returned the leaf ID along with the result. I often need to find something in a DBVT then remove it.

For now, I'm just implementing Visitor instead of BestFirstVisitor. I can more simply keep track of the least cost on my own this way. I still think it's a good idea to combine visit_bv and visit_data.


fix(build): fix to 8-char commit hash

This can prevent the potential version and image tag inconsistency in the built artifacts
IMPORTANT: Please do not create a Pull Request without creating an issue first.
Problem:

ISO images downloaded from https://releases.rancher.com/harvester/master/harvester-master-amd64.iso which was built by Drone CI https://drone-publish.rancher.io/harvester/harvester-installer have shorter image tag (consists of 7-char commit hash), especially for the rancher/harvester-upgrade image. However, Drone CI will pass a VERSION argument consisting of an 8-character commit hash while building container images. This causes a future upgrade to fail due to the mismatch version string and image tag.
Solution:

Specify an "at least" length for the commit hash to 8-character long. Might need to bump to 12 characters in the future if there are object collisions.
Related Issue:
#3621
Test plan:

git clone --branch=fix-3621 --single-branch --depth=1 https://github.com/starbops/harvester.git
make && make build-iso
isoinfo -J -i dist/artifacts/harvester-master-amd64.iso -x /bundle/harvester/images-lists/harvester-extra-master.txt
The listed tags should consist of an 8-char commit hash

@mergify backport v1.1


Implement API to get default shell

Fixes #75091

Merging in since changes here block https://github.com/microsoft/vscode/issues/75509 getting fixed and it's just proposed, I'll keep the issue open to talk about it in the API sync.


[$250] Selected row in onboarding modal should not get :hover style

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

Version Number: 1.4.86-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @shawnborton
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1718816345646859
Action Performed:

Sign up for a new account
In the onboarding modal, select an option
Hover over the selected option

Expected Result:
Selected row should not get a hover style
Actual Result:
Selected row changes BG color on hover
Workaround:
unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/Expensify/App/assets/2319350/67429660-14dd-474c-9751-b87c15f55850

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01ffaa9b43dacb7a8a
Upwork Job ID:<PHONE_NUMBER>434309152
Last Price Increase: 2024-07-04

Issue OwnerCurrent Issue Owner: @sobitneupane

Proposal
Please re-state the problem that we are trying to solve in this issue.
Incorrect row hover style is showing

We are using backgroundColor: theme.activeComponentBG for hoverAndPressStyle.

What is the root cause of that problem?
What changes do you think we should make in order to solve the problem?

We should use styles.hoveredComponentBG instead.

What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
Onboarding modal uses incorrect row hover style when hovering over the options
What is the root cause of that problem?
There are two problems:

The hoverStyle is being passed incorrectly here

The MenuItem styles here applied in the wrong order.
Current order applies hover style after the active button style giving us this behavior:
Video (hover applied after active style)
https://github.com/Expensify/App/assets/64629613/0c3c3102-06da-4fa8-928b-b3d2c35ccf8f

Additionally:
This order effectively prevents us from seeing the pressed style for menuItem as defined here:
https://github.com/Expensify/App/blob/75614394a2fb1e8114e35bb2d8d33bdd0c565946/src/styles/utils/index.ts#L1320-L1321
Which gives us this tactile feedback when pressing:
Video
https://github.com/Expensify/App/assets/64629613/675e68af-a6d1-4d57-8947-4aff2e9c137b

What changes do you think we should make in order to solve the problem?

change this line to:
hoverAndPressStyle: [styles.hoveredComponentBG],

Move this style:
https://github.com/Expensify/App/blob/75614394a2fb1e8114e35bb2d8d33bdd0c565946/src/components/MenuItem.tsx#L513
after this line:
https://github.com/Expensify/App/blob/75614394a2fb1e8114e35bb2d8d33bdd0c565946/src/components/MenuItem.tsx#L515
--  StyleUtils.getButtonBackgroundColorStyle(getButtonState(focused || isHovered, pressed, success, disabled, interactive), true),
    ...(Array.isArray(wrapperStyle) ? wrapperStyle : [wrapperStyle]),
    !focused && (isHovered || pressed) && hoverAndPressStyle,
++  StyleUtils.getButtonBackgroundColorStyle(getButtonState(focused || isHovered, pressed, success, disabled, interactive), true),

Alternatively
If we don't want feedback on active press we can add a check for !isMenuItem here

Updated proposal

@mallenexpensify can you please review this when you get a moment? Thanks!

@sobitneupane , 👀 on the above proposals plz? Please keep in mind at @truph01 's proposal had been updated many times

@mallenexpensify Yeah, my last update time was 3:04 PM, and then I commented "Proposal Updated" at 3:10 PM as mentioned in the contributor guides.

@truph01 , yes, please continue to post 'proposal updated' when you do. I was referencing that updates were made over a handful of hours which might affect consideration of other proposals if they were submitted within that time.

@shawnborton Looks like the issue is not reproducible any longer.
https://github.com/Expensify/App/assets/25876548/f672ed8d-4751-4963-b495-d75fca736e49

Interesting, if that's the case, we can just close this. Let me test quickly as well...

Indeed it looks fixed. But let me ask a follow up question for the @Expensify/design team - should we make it so that the row that has the :active/:selected state should not get a hover BG? I think yes? But I don't feel too strongly. I think our existing patterns in the app make it so that anything that has a selected state doesn't get a hover BG color (like LHN items for instance).

Yes 100% agree on that point Shawn. It's weird for the selected item to go from heavily emphasized to not-as-emphasized on hover.

Okay cool, I'll go ahead and modify the title + body, and maybe we can take a new round of proposals here?

Proposal updated

I updated alternative solution.

Thanks for the update @truph01
Your alternative solution looks good to me but I believe we would want that behavior throughout the app not only in onboarding modal. Maybe we can use existing props in MenuItem instead of passing isSelected prop.

@sobitneupane What about my main solution? This PR should be reverted because it makes the change to the MenuItem component directly, meanwhile, MenuItem is used in a lot of positions in the app, that can leads to the regression. In this case, it introduces a regression mentioned in comment: "the row that has the :active/:selected state get a hover BG"

Maybe it exists in the product, but I think :hovering over any push row or option row should use our rowHover color, which does not collide with our border color.

I believe we would want the hovered action to have hoveredComponentBG  throughout the app if the menuitem is interactive and is not clicked or selected. If that is the case, I think it's okay to make change in MenuItem.
@shawnborton Could you please confirm the behavior? Do we want the hovered color to be hoveredComponentBG throughout the app if the menu item is interactive and is not selected?
Not only in onboarding modal, selected row has :hover style even in settings menu item.

Please note the above behavior appears after this PR, which breaks our behavior before.

Got it, yeah I am saying we do NOT want that behavior. If the row is in the selected state, do not give it a hover color.

@truph01 Would you want to update your proposal based on https://github.com/Expensify/App/issues/44055#issuecomment-2199719498?

@sobitneupane Sure. But if we choose that solution, it does not fix this comment. What do you think?

@sobitneupane I am updating it...

Proposal updated

@sobitneupane plz review @truph01 's updated proposal above.

Since we want all the hovered Menu Item to have same behvaior throughout the app as mentioned here, I believe the alternative solution would be the better option.
Alternative proposal from @truph01 looks good to me.
C+ reviewed

@marcaaron 👀 above plz

PR https://github.com/Expensify/App/pull/45499 is ready

Payment Summary

C: @truph01 $250 (Upwork job)
C+: @sobitneupane (ND payment)

Waiting on checklist

Paid and job closed. @sobitneupane bump for checklist!

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ]  [@sobitneupane] The PR that introduced the bug has been identified. Link to the PR:

https://github.com/Expensify/App/pull/43987

[ ]  [@sobitneupane] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:

https://github.com/Expensify/App/pull/43987/files#r1703875086

[ ]  [@sobitneupane] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:

I don't think any new update is required.

[ ]  [@sobitneupane] Determine if we should create a regression test for this bug.

Yes.

[ ]  [@sobitneupane] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Regression Test Proposal

Sign up for a new account
In the onboarding modal, select an option
Hover over the selected option
Verify that the selected option does not get hover style.

Do we agree 👍 or 👎

LGTM @sobitneupane

Test Case GH, thanks @sobitneupane
https://github.com/Expensify/Expensify/issues/418347

$250 approved for @sobitneupane based on this summary.


Support for Ed25519ph and Ed448ph with Asn1SignatureFactory

Hi,
Currently Asn1SignatureFactory supports Ed25519 and Ed448 with algorithm identifier <IP_ADDRESS> and <IP_ADDRESS> however when using either <IP_ADDRESS> or <IP_ADDRESS> (respectively for Ed25519ph and Ed448ph) the signer fails with a signer not recognized error.
I'm using the following documentation: https://tools.ietf.org/id/draft-ietf-curdle-pkix-03.html#rfc.section.10.1
Is there a way to sign a certificate with either of this algorithm?
Regards,

Firstly, this appears to be a question about the C# API, which has its own project at https://github.com/bcgit/bc-csharp .
As to the draft you link to, it ultimately became RFC 8410, which no longer specifies OIDs for Ed25519ph or Ed448ph.
We have crypto support for the Ed25519ph and Ed448ph algorithms but I believe Asn1SignatureFactory can only (currently) be used with algorithms for which we know an OID. Also there is not currently any way to specify the "context" parameter for EdDSA variants.

I am indeed using the C# version of bouncy castle. I honestly thought that the code underneath was similar and since this is not really a bug report I choose to ask the java community.
Thanks for your explanation, I did notice that I was reading the draft version of the document. I did manage to implement ed25519ph and ed448ph signer. I'll give up for the certificate signature then.
Regards,


CMCS-161: Add vcluster to e2e cli

CMCS-161: Add vcluster to e2e cli
https://issues.redhat.com/browse/CMCS-161
Signed-off-by: David Huynh<EMAIL_ADDRESS>

/retest

/test e2e-cluster


fix helm cunstomization - number of replicas

Product Version(s):

Issue:

Link to docs preview:

SME review:

[ ] An SME has approved this change.

DOCS review:

[ ] A member of the docs team has approved this change.

Additional information:

Merge checklist:

[ ] Deploy preview inspected wherever changes were made
[ ] Build completed successfully
[ ] Test have passed

Hi @ti-afra ! Do you have a ticket linked to this change? I'm not quite sure what this is about.
Assuming it's all good, does this need to go in other CE or CC docs?

Hi @ti-afra ! Do you have a ticket linked to this change? I'm not quite sure what this is about.
Assuming it's all good, does this need to go in other CE or CC docs?

here is a ticket I created for tracking this issue: https://tigera.atlassian.net/browse/EV-4225
it is calico enterprise from 3.18.

LGTM. If the change here is only for 3.19, then copy to CC 3.19 folder as well.

Updated CE 3.18 as well. this is only Calico Enterprise docs at this point.


Rewarded "Dummy" Ad Bug

Bug report
Describe the bug
Dummy Rewarded ads do not load when using test ID's. Instead, it gives out an error as I pasted below. However, when using my actual ad ID it works (hope I don't get flagged 🙏!).
Steps to reproduce
Steps to reproduce the behavior:

Run the AdMob example as seen on the pub.dev example page
Watch the error populate on the screen

Expected behavior
The ad successfully loads and populates the widget tree

Additional context
None
Flutter doctor
Run flutter doctor and paste the output below:
[✓] Flutter (Channel stable, 2.0.1, on macOS 11.2.2 20D80 darwin-arm, locale
en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] VS Code (version 1.54.1)
[✓] Connected device (2 available)
• No issues found!
Click To Expand
<Google> Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Flags' setting of your build target. flutter: RewardedAd failed to load: LoadAdError(code: 8, domain: com.google.admob, message: Cannot find an ad network adapter with the name(s): com.google.DummyAdapter

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
- animated_text_kit 4.0.0 [flutter characters]
- auto_size_text 2.1.0 [flutter]
- confetti 0.5.5 [flutter random_color vector_math]
- countup 0.1.3 [flutter]
- cupertino_icons 1.0.2
- device_info 2.0.0 [flutter device_info_platform_interface]
- encrypt 5.0.0-beta.1 [args asn1lib clock collection crypto pointycastle]
- firebase_analytics 7.1.0 [meta flutter firebase_core firebase_analytics_web firebase_analytics_platform_interface]
- firebase_core 1.0.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
- flutter_animated_dialog 1.2.0 [flutter]
- flutter_animator 3.1.0 [flutter vector_math]
- flutter_local_notifications 5.0.0-nullsafety.0 [flutter flutter_local_notifications_platform_interface platform timezone]
- font_awesome_flutter 8.11.0 [flutter]
- google_fonts 1.1.2 [flutter http path_provider crypto]
- google_mobile_ads 0.11.0+2 [meta flutter]
- http 0.12.2 [http_parser path pedantic]
- in_app_review 2.0.1 [flutter in_app_review_platform_interface]
- introduction_screen 1.0.9 [flutter dots_indicator]
- mailto 1.1.0 [meta]
- provider 5.0.0 [collection flutter nested]
- quick_actions 0.5.0 [flutter meta]
- shared_preferences 2.0.3 [meta flutter shared_preferences_platform_interface shared_preferences_linux shared_preferences_macos shared_preferences_web shared_preferences_windows]
- skeleton_text 2.0.2 [flutter]
- splashscreen 1.3.5 [flutter]
- toast 0.1.5 [flutter]
- tuple 1.0.3 [quiver]
- url_launcher 6.0.2 [flutter url_launcher_platform_interface url_launcher_linux url_launcher_macos url_launcher_windows url_launcher_web]
- video_player 1.0.1 [meta video_player_platform_interface video_player_web flutter]

dev dependencies:
- flutter_launcher_icons 0.9.0 [args image path yaml]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data]

transitive dependencies:
- archive 3.1.2 [crypto path]
- args 2.0.0
- asn1lib 0.9.0-nullsafety.0
- async 2.5.0 [collection]
- boolean_selector 2.1.0 [source_span string_scanner]
- characters 1.1.0
- charcode 1.2.0
- clock 1.1.0
- collection 1.15.0
- crypto 3.0.0 [collection typed_data]
- device_info_platform_interface 2.0.0 [flutter meta plugin_platform_interface]
- dots_indicator 1.2.0 [flutter]
- fake_async 1.2.0 [clock collection]
- ffi 1.0.0
- file 6.1.0 [meta path]
- firebase 7.3.3 [http http_parser js]
- firebase_analytics_platform_interface 1.1.0 [flutter meta]
- firebase_analytics_web 0.2.0 [flutter flutter_web_plugins firebase firebase_analytics_platform_interface meta]
- firebase_core_platform_interface 4.0.0 [flutter meta plugin_platform_interface]
- firebase_core_web 1.0.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- flutter_local_notifications_platform_interface 3.0.0-nullsafety.2 [flutter plugin_platform_interface]
- flutter_web_plugins 0.0.0 [flutter js characters collection meta typed_data vector_math]
- http_parser 3.1.4 [charcode collection source_span string_scanner typed_data]
- image 3.0.1 [archive meta xml]
- in_app_review_platform_interface 2.0.2 [flutter url_launcher plugin_platform_interface platform]
- js 0.6.3
- matcher 0.12.10 [stack_trace]
- meta 1.3.0
- nested 1.0.0 [flutter]
- path 1.8.0
- path_provider 2.0.1 [flutter path_provider_platform_interface path_provider_macos path_provider_linux path_provider_windows]
- path_provider_linux 2.0.0 [path xdg_directories path_provider_platform_interface flutter]
- path_provider_macos 2.0.0 [flutter]
- path_provider_platform_interface 2.0.1 [flutter meta platform plugin_platform_interface]
- path_provider_windows 2.0.0 [path_provider_platform_interface meta path flutter ffi win32]
- pedantic 1.11.0
- petitparser 4.0.2 [meta]
- platform 3.0.0
- plugin_platform_interface 2.0.0 [meta]
- pointycastle 3.0.0-nullsafety.2 [collection]
- process 4.1.0 [file path platform]
- quiver 2.1.5 [matcher meta]
- random_color 1.0.5 [flutter]
- shared_preferences_linux 2.0.0 [flutter file meta path path_provider_linux shared_preferences_platform_interface]
- shared_preferences_macos 2.0.0 [shared_preferences_platform_interface flutter]
- shared_preferences_platform_interface 2.0.0 [flutter]
- shared_preferences_web 2.0.0 [shared_preferences_platform_interface flutter flutter_web_plugins meta]
- shared_preferences_windows 2.0.0 [shared_preferences_platform_interface flutter file meta path path_provider_platform_interface path_provider_windows]
- sky_engine 0.0.99
- source_span 1.8.0 [charcode collection path term_glyph]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- string_scanner 1.1.0 [charcode source_span]
- term_glyph 1.2.0
- test_api 0.2.19 [async boolean_selector collection meta path source_span stack_trace stream_channel string_scanner term_glyph matcher]
- timezone 0.7.0-nullsafety.0 [path]
- typed_data 1.3.0 [collection]
- url_launcher_linux 2.0.0 [flutter]
- url_launcher_macos 2.0.0 [flutter]
- url_launcher_platform_interface 2.0.2 [flutter plugin_platform_interface]
- url_launcher_web 2.0.0 [url_launcher_platform_interface meta flutter flutter_web_plugins]
- url_launcher_windows 2.0.0 [flutter]
- vector_math 2.1.0
- video_player_platform_interface 2.2.0 [flutter meta]
- video_player_web 0.1.4+1 [flutter flutter_web_plugins meta video_player_platform_interface]
- win32 2.0.0 [ffi]
- xdg_directories 0.2.0 [meta path process]
- xml 5.0.2 [collection meta petitparser]
- yaml 3.1.0 [collection source_span string_scanner]

for me it worked in android but in IOS the onAdClosed not trigger

@mustafa-707 I responded to you in https://github.com/googleads/googleads-mobile-flutter/issues/58.
@SethuSenthil Some additional questions:

Is this happening on iOS or Android or both?
Are there any error logs or screenshots you could share?

This DummyAdapter error occurs when "Personalized Ads" is disabled or "limit ad tracking" is enabled on iOS, which means IDFA cannot be used.
Check your test device, then rewarded ads will work normally.
For iOS14, Settings -> Privacy -> Apple Advertising -> Personalized Ads, check if it's turned on.
For iOS13 and earlier, Settings -> Privacy -> Advertising -> Limit Ad Tracking, check if it's turned off.
Find more info here.
https://groups.google.com/g/google-admob-ads-sdk/c/IJHU0Qqj1C0/m/x0Txr8MPBwAJ

The test rewarded ad is not loading for me as well. I get the error :   Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Flags' setting of your build target. the personalized Ads are on for me on an IOS emaulator.

I have this error on ios simulator. After getting this error application crashes completely.
Same code works on android emulator and real device.
I'm using demo ad unit ids for banner (for ios ca-app-pub-3940256099942544/2934735716, for android ca-app-pub-3940256099942544/6300978111).
<Google> Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Flags' setting of your build target.
flutter: Ad failed to load: LoadAdError(code: 8, domain: com.google.admob, message: Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Flags' setting of your build target., responseInfo: ResponseInfo(responseId: 9WK2YMLaKprW7_UPpsqziAY, mediationAdapterClassName: null, adapterResponses: [AdapterResponseInfo(adapterClassName: com.google.DummyAdapter, latencyMillis: 3), description: {
    Credentials =     {
    };
    Error = "Error Domain=com.google.admob Code=8 \"Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Flags' setting of your build target.\" UserInfo={NSLocalizedDescription=Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Fla<…>
<Google> Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Flags' setting of your build target.
Lost connection to device.

[✓] Flutter (Channel stable, 2.2.1, on macOS 11.4 20F71 darwin-arm, locale
    en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.2)
[✓] VS Code (version 1.56.2)
[✓] Connected device (2 available)

I have this error on ios simulator. After getting this error application crashes completely.
Same code works on android emulator and real android device.
I'm using demo ad unit ids for banner (for ios ca-app-pub-3940256099942544/2934735716, for android ca-app-pub-3940256099942544/6300978111).
<Google> Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Flags' setting of your build target.
flutter: Ad failed to load: LoadAdError(code: 8, domain: com.google.admob, message: Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Flags' setting of your build target., responseInfo: ResponseInfo(responseId: 9WK2YMLaKprW7_UPpsqziAY, mediationAdapterClassName: null, adapterResponses: [AdapterResponseInfo(adapterClassName: com.google.DummyAdapter, latencyMillis: 3), description: {
    Credentials =     {
    };
    Error = "Error Domain=com.google.admob Code=8 \"Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Flags' setting of your build target.\" UserInfo={NSLocalizedDescription=Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Fla<…>
<Google> Cannot find an ad network adapter with the name(s): com.google.DummyAdapter. Remember to link all required ad network adapters and SDKs, and set -ObjC in the 'Other Linker Flags' setting of your build target.
Lost connection to device.

[✓] Flutter (Channel stable, 2.2.1, on macOS 11.4 20F71 darwin-arm, locale
    en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.2)
[✓] VS Code (version 1.56.2)
[✓] Connected device (2 available)

You could try with a real iOS device, because the advertising identifier returns all zeros (00000000-0000-0000-0000-000000000000) In Simulator, regardless of any settings.
If running on iOS 14, after authorized App Tracking Transparency framework, this error will be gone.
ref: https://developer.apple.com/documentation/adsupport/asidentifiermanager/1614151-advertisingidentifier

Hi @SethuSenthil are you still experiencing this issue with the latest google google_mobile_Ads: ^0.3.2
I was able to run the rewarded ad on both android and IOS on the latest stable version of flutter, could you and everyone who is facing this issue try with the latest ads plugin on the latest stable version of flutter and see if this works.

code sample
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();
  runApp(MyApp());
}

// You can also test with your own ad unit IDs by registering your device as a
// test device. Check the logs for your device's ID value.
const String testDevice = 'YOUR_DEVICE_ID';
const int maxFailedLoadAttempts = 3;

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  static final AdRequest request = AdRequest(
    keywords: <String>['foo', 'bar'],
    contentUrl: 'http://foo.com/bar.html',
    nonPersonalizedAds: true,
  );

  InterstitialAd? _interstitialAd;
  int _numInterstitialLoadAttempts = 0;

  RewardedAd? _rewardedAd;
  int _numRewardedLoadAttempts = 0;

  BannerAd? _anchoredBanner;
  bool _loadingAnchoredBanner = false;

  @override
  void initState() {
    super.initState();
    _createInterstitialAd();
    _createRewardedAd();
  }

  void _createInterstitialAd() {
    InterstitialAd.load(
        adUnitId: InterstitialAd.testAdUnitId,
        request: request,
        adLoadCallback: InterstitialAdLoadCallback(
          onAdLoaded: (InterstitialAd ad) {
            print('$ad loaded');
            _interstitialAd = ad;
            _numInterstitialLoadAttempts = 0;
          },
          onAdFailedToLoad: (LoadAdError error) {
            print('InterstitialAd failed to load: $error.');
            _numInterstitialLoadAttempts += 1;
            _interstitialAd = null;
            if (_numInterstitialLoadAttempts <= maxFailedLoadAttempts) {
              _createInterstitialAd();
            }
          },
        ));
  }

  void _showInterstitialAd() {
    if (_interstitialAd == null) {
      print('Warning: attempt to show interstitial before loaded.');
      return;
    }
    _interstitialAd!.fullScreenContentCallback = FullScreenContentCallback(
      onAdShowedFullScreenContent: (InterstitialAd ad) =>
          print('ad onAdShowedFullScreenContent.'),
      onAdDismissedFullScreenContent: (InterstitialAd ad) {
        print('$ad onAdDismissedFullScreenContent.');
        ad.dispose();
        _createInterstitialAd();
      },
      onAdFailedToShowFullScreenContent: (InterstitialAd ad, AdError error) {
        print('$ad onAdFailedToShowFullScreenContent: $error');
        ad.dispose();
        _createInterstitialAd();
      },
    );
    _interstitialAd!.show();
    _interstitialAd = null;
  }

  void _createRewardedAd() {
    RewardedAd.load(
        adUnitId: RewardedAd.testAdUnitId,
        request: request,
        rewardedAdLoadCallback: RewardedAdLoadCallback(
          onAdLoaded: (RewardedAd ad) {
            print('$ad loaded.');
            _rewardedAd = ad;
            _numRewardedLoadAttempts = 0;
          },
          onAdFailedToLoad: (LoadAdError error) {
            print('RewardedAd failed to load: $error');
            _rewardedAd = null;
            _numRewardedLoadAttempts += 1;
            if (_numRewardedLoadAttempts <= maxFailedLoadAttempts) {
              _createRewardedAd();
            }
          },
        ));
  }

  void _showRewardedAd() {
    if (_rewardedAd == null) {
      print('Warning: attempt to show rewarded before loaded.');
      return;
    }
    _rewardedAd!.fullScreenContentCallback = FullScreenContentCallback(
      onAdShowedFullScreenContent: (RewardedAd ad) =>
          print('ad onAdShowedFullScreenContent.'),
      onAdDismissedFullScreenContent: (RewardedAd ad) {
        print('$ad onAdDismissedFullScreenContent.');
        ad.dispose();
        _createRewardedAd();
      },
      onAdFailedToShowFullScreenContent: (RewardedAd ad, AdError error) {
        ad.dispose();
        _createRewardedAd();
      },
    );

    _rewardedAd!.show(onUserEarnedReward: (RewardedAd ad, RewardItem reward) {
      print('$ad with reward $RewardItem(${reward.amount}, ${reward.type}');
    });
    _rewardedAd = null;
  }

  Future<void> _createAnchoredBanner(BuildContext context) async {
    final AnchoredAdaptiveBannerAdSize? size =
        await AdSize.getAnchoredAdaptiveBannerAdSize(
      Orientation.portrait,
      MediaQuery.of(context).size.width.truncate(),
    );
    if (size == null) {
      print('Unable to get height of anchored banner.');
      return;
    }

    final BannerAd banner = BannerAd(
      size: size,
      request: request,
      adUnitId: Platform.isAndroid
          ? '<Android add Unit Id here>'
          : '<IOS add Unit Id here>',
      listener: BannerAdListener(
        onAdLoaded: (Ad ad) {
          print('$BannerAd loaded.');
          setState(() {
            _anchoredBanner = ad as BannerAd?;
          });
        },
        onAdFailedToLoad: (Ad ad, LoadAdError error) {
          print('$BannerAd failedToLoad: $error');
          ad.dispose();
        },
        onAdOpened: (Ad ad) => print('$BannerAd onAdOpened.'),
        onAdClosed: (Ad ad) => print('$BannerAd onAdClosed.'),
      ),
    );
    return banner.load();
  }

  @override
  void dispose() {
    super.dispose();
    _interstitialAd?.dispose();
    _rewardedAd?.dispose();
    _anchoredBanner?.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Builder(builder: (BuildContext context) {
        if (!_loadingAnchoredBanner) {
          _loadingAnchoredBanner = true;
          _createAnchoredBanner(context);
        }
        return Scaffold(
          appBar: AppBar(
            title: const Text('AdMob Plugin example app'),
            actions: <Widget>[
              PopupMenuButton<String>(
                onSelected: (String result) {
                  switch (result) {
                    case 'InterstitialAd':
                      _showInterstitialAd();
                      break;
                    case 'RewardedAd':
                      _showRewardedAd();
                      break;
                    default:
                      throw AssertionError('unexpected button: $result');
                  }
                },
                itemBuilder: (BuildContext context) => <PopupMenuEntry<String>>[
                  PopupMenuItem<String>(
                    value: '$InterstitialAd',
                    child: Text('$InterstitialAd'),
                  ),
                  PopupMenuItem<String>(
                    value: '$RewardedAd',
                    child: Text('$RewardedAd'),
                  ),
                ],
              ),
            ],
          ),
          body: SafeArea(
            child: Stack(
              alignment: AlignmentDirectional.bottomCenter,
              children: <Widget>[
                ListView.builder(
                    itemCount: 20,
                    itemBuilder: (_, x) => ListTile(
                          title: Text('item $x'),
                        )),
                if (_anchoredBanner != null)
                  Container(
                    color: Colors.green,
                    width: _anchoredBanner!.size.width.toDouble(),
                    height: _anchoredBanner!.size.height.toDouble(),
                    child: AdWidget(ad: _anchoredBanner!),
                  ),
              ],
            ),
          ),
        );
      }),
    );
  }
}

flutter doctor -v
[✓] Flutter (Channel stable, 2.2.3, on macOS 11.4 20F71 darwin-arm, locale en-GB)
    • Flutter version 2.2.3 at /Users/mahesh/Documents/flutter
    • Framework revision f4abaa0735 (4 weeks ago), 2021-07-01 12:46:11 -0700
    • Engine revision 241c87ad80
    • Dart version 2.13.4

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)

[✓] IntelliJ IDEA Community Edition (version 2021.1.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 57.0.5
    • Dart plugin version 211.7233

[✓] VS Code (version 1.58.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.24.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 11.4 20F71 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 91.0.4472.164

• No issues found!

Thank you.

I had the same problem, Cannot find an ad network adapter with the name error.
In my case, not rewarded ads but banner ads. (google_mobile_ads version: "0.13.4")
And I fixed this error by putting my app-ads.txt the line.
google.com, pub-3940256099942544, DIRECT, f08c47fec0942fa0
If you use app-ads.txt, please check the details in the official docs, and try it.
https://developers.google.com/admob/android/test-ads


About code release

Thanks for your great work, I wonder when the code will be released. Thansk!

I've uploaded the source code and the model checkpoint. Sorry to keep you waiting!


BlastPad UI, a lightweight and modular CSS front-end framework

BlastPad UI is a lightweight and modular CSS front-end framework.
Learn more about BlastPad UI at:
http://blastpad.co/ui/
New to Contributing?
We're a great open-source project for beginners because all you need to know to contribute is basic HTML and CSS.
We also accept contributions of design, documentation, support, marketing, SEO and more.
Contributing
Check out our contributing guidelines here:
https://github.com/blastpad/BlastPad_UI/wiki/Contributing
Issues
Then dive in to our issues:
https://github.com/blastpad/BlastPad_UI/issues
If you don't see a bug that you like, just message me directly and I can assign a bug suited to your abilities.
Weekly Office Hours
We also have weekly paired programming and mentored bugs.  Please message me to reserve your spot.

Hey @honeysilvas, thanks so much for this, I will check BlastPad out! :)


useContext example from docs not working.

import { observer, useObservable } from "@legendapp/state/react";

const StateContext = createContext();

function App() {
  const state$ = useObservable({
    profile: {
      name: "",
    },
  });

  return (
    <StateContext.Provider value={state$}>

        <Sidebar />

    </StateContext.Provider>
  );
}

const Sidebar = function Sidebar() {
  // StateContext will never change so this will never cause a render
  const state$ = useContext(StateContext);

  // This component never re-renders, but name re-renders itself
  return (

      Name: <Memo>{state$.profile.name}</Memo>

  );
};

Was really excited to try this out, unfortunately, immediately get

This error, because no argument is put into createContext. I've tried setting it to null, tried setting it to an observable of the initial state. Nothing works. Here is my _app.tsx file:
import type { AppProps } from "next/app";
import { GlobalStoreProvider } from '../context/GlobalStoreContext';
import { observable, Observable } from '@legendapp/state';
import { useObservable } from '@legendapp/state/react';
import React, { createContext, useContext, useReducer, ReactNode } from 'react';

// Define the shape of your global state
interface GlobalState {
  user: string | null;
  counter: number; // Add counter to the global state
}
// Initial state
const initialState: GlobalState = {
  user: null,
  counter: 0, // Initialize counter
};

// Create context
const GlobalStoreContext = createContext()
// Custom hook to use the global store
export const useGlobalStore = () => useContext(GlobalStoreContext);

export default function App({ Component, pageProps }: AppProps) {
  const state$ = useObservable(initialState)

  return (
    <GlobalStoreContext.Provider value={state$}>
      <Component {...pageProps} />
    </GlobalStoreContext.Provider>
  );
}

Another one that I get a lot if I try to useObserver is:
    at App (./pages/_app.tsx:30:89)
 ⨯ TypeError: Cannot read properties of null (reading 'useRef')
    at process.env.NODE_ENV.exports.useRef (/Users/brentburdick/Dev/brick/brick-sent/brick-v2-frontend/node_modules/@legendapp/state/node_modules/react/cjs/react.development.js:1497:33)
    at useObservable (node_modules/@legendapp/state/react.mjs:439:15)
    at initialState (pages/_app.tsx:26:31)```

    Please advise :/

I'm encountering the same issue

It seems like the solution to the useContext issue is to update the docs to fix the types? I think this would be the change with the correct types:
interface UserState {
    profile: {
        name: string;
    };
}
const StateContext = createContext<Observable<UserState>>(undefined as any);

function App() {
  const state$ = useObservable({
    profile: {
      name: "",
    },
  })

  return (
    <StateContext.Provider value={state$}>

        <Sidebar />

    </StateContext.Provider>
  )
}

@Brentably If there's a problem with useObserve or useObservable can you please create a separate issue for that? I'm not sure how the error log you posted is even possible... Can you share a larger example?
@EnterNameHere7 I think your context example would be very problematic. Putting an observe in a React component would create a new observe on every render and never clean them up. The useObserve hook manages all of the React lifecycle to make sure that's not a problem.


feat: sentry plugin, add tracing data to transaction

Description
This PR adds the ability to manually instrument the transaction with tracing data. This is taken from the express handler, see: https://github.com/getsentry/sentry-javascript/blob/master/packages/node/src/handlers.ts#L44
Fixes # (issue)
Type of change
Feature
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

Screenshots/Sandbox (if appropriate/relevant):
None
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

Test Environment:

OS:
@envelop/...:
NodeJS:

Checklist:

[x] I have followed the CONTRIBUTING doc and the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented on my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

Further comments
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

@n1ru4l will do.

@mmahalwy Can you please also create a changeset via yarn changeset? Sorry, after transferring the repository we forgot to reenable the changeset bot.

@n1ru4l how about now?

@n1ru4l @saihaj updated.


docs: light mode IBC-Go Documentation blue text frequently clicked but it is not a hyperlink

On the documentation homepage, there is 'IBC-Go Documentation' in blue text in light mode which receives a lot of dead clicks because users think that it is a hyperlink when it is not.

The text should not be the same colour as a hyperlink - the text should be changed to black

I'll contribute to this issue


update with iob-soc master

seems to be somewhat behind
I see long lists of axi4 signals signals which can be simplified by including stubs from iob-interconnect. More stubs can be created in iob-interconnect if needed

milestone 2 branch is already updated with iob-soc master branch (commit 316575e from 24 October, one of the most recent master branch commits from iob-soc which passed automatic checks).
See PR #10


DBZ-3067 Add OR REPLACE condition for create index

@jpechane, any idea why the log on CI would be truncated?

Test failure is unrelated.

@jpechane, do we push MariaDB fixes back upstream to Antlr, too?

@gunnarmorling Usually no


Update kustomization.yaml

Previous Monthly Cost

KIND
MIN REQUESTED (USD)
MIN REQ + HPA CPU BUFFER (USD)
MAX REQUESTED (USD)
MIN LIMITED (USD)
MAX LIMITED (USD)

Deployment
$4.19
$4.19
$4.19
$12.56
$12.56

TOTAL
$4.19
$4.19
$4.19
$12.56
$12.56

Current Monthly Cost

KIND
MIN REQUESTED (USD)
MIN REQ + HPA CPU BUFFER (USD)
MAX REQUESTED (USD)
MIN LIMITED (USD)
MAX LIMITED (USD)

Deployment
$4.19
$4.19
$4.19
$12.56
$12.56

TOTAL
$4.19
$4.19
$4.19
$12.56
$12.56

Difference in Costs
Summary: No cost change found!

COST VARIATION
PREVIOUS (USD)
CURRENT (USD)
DIFFERENCE (USD)
DIFFERENCE (%)

MIN REQUESTED
$4.19
$4.19

MIN REQ + HPA CPU BUFFER
$4.19
$4.19

MAX REQUESTED
$4.19
$4.19

MIN LIMITED
$12.56
$12.56

MAX LIMITED
$12.56
$12.56


DatePicker TimePicker: Support timezone (local, UTC, and UTC offsets)…

… in Date and Time pickers
https://github.com/ElemeFE/element/issues/14909
Please make sure these boxes are checked before submitting your PR, thank you!

[x] Make sure you follow Element's contributing guide (中文 | English | Español | Français).
[x] Make sure you are merging your commits to dev branch.
[x] Add some descriptions and refer relative issues for you PR.

@iamkun Does dayjs support timezone.
This pr is way too messy.

@wacky6 No timezone support. But we could use UTC and set UTC offset to archive the same goal.


[Bug]: Attempting to install on AlmaLinux 8 using script, Informed unsupported despite documentation

Description
While attempting the command on my AlmaLinux VPS:
[root@server ~]# curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
I am left with the error:
This script only supports Debian, Redhat, Arch Linux, or SLES based operating systems for now.
AlmaLinux is a Redhat distribution, which is confirmed by the documentation (https://coolify.io/docs/installation), which states:
Supported OS
Debian based Linux distributions (Debian, Ubuntu, etc.)
Redhat based Linux distributions (CentOS, Fedora, Redhat, AlmaLinux, Rocky etc.)
SUSE based Linux distributions (SLES, SUSE, openSUSE, etc.)
Arch Linux
Raspberry Pi OS (Raspbian)
Is there any reason I can't run the script as expected?
Minimal Reproduction (if possible, example repository)
Ran install script, had error
Exception or Error
This script only supports Debian, Redhat, Arch Linux, or SLES based operating systems for now.
Version
pre-install latest

Fixed the installation script. Please try again.

You are a scholar and a gentleman, thank you for your service

The script seems to work now, but the server connection fails for the same reason. Any advice?


icu make error

The following error is thrown when icu is built using chroot.
make[1]: Entering directory '/phase4/icu/icu/source/stubdata'
chmod u-w config/icu-config
   (deps)	 stubdata.c
make[1]: Leaving directory '/phase4/icu/icu/source/config'
Note: rebuild with "make VERBOSE=1 " to show all compiler parameters.
make[1]: *** No rule to make target 'x86_64-panda-linux-gnu', needed by 'all-local'.  Stop.
make[1]: Leaving directory '/phase4/icu/icu/source/stubdata'

This error can be fixed by installing the package from within the system without using chroot.

The problem has been fixed.


Examples on pixi website don't seem to be accessible?

I read on the main page that all pixi content is accessible. From a brief look through the accessibility code here on GitHub, it seems content should become accessible (i.e. generate matching HTML) on pressing TAB. However, when I press tab on the examples page https://pixijs.io/examples/#/demos-basic/container.js, nothing happens.

PixiJS has an accessibility module which adds HTML elements for interactive display objects. Because the example you point out has no interactive elements, it would not have any tab-able elements.
Examples that do have interactivity should have accessibility enabled. Would recommend filing an issue or adding a PR to that repo: https://github.com/pixijs/examples.

Main page should be clarified then, that it only applies to interactive elements.


Unexpected server response while opening local PDF on Firefox for Android

Attach (recommended) or Link to PDF file here: Any local PDF on the device
Configuration:

Web browser and its version: Firefox for Android 126.0
Operating system and its version: Android 14 arm64
PDF.js version: latest demo
Is a browser extension: No

Steps to reproduce the problem:

Open the demo page (legacy or modern)
Open a local PDF from device via the overflow menu => Open

What is the expected behavior? (add screenshot)
The PDF should open.
What went wrong? (add screenshot)
Shows nothing.

It works if you try a second time, even after a page reload.
Trying the same in the Nightly while debugging from Firefox I see the following errors in the console:
Unexpected server response.

PDF.js v4.4.46 (build: ebb2db7be)
Message: Unexpected server response (0) while retrieving PDF "blob:https://mozilla.github.io/143557be-9635-4460-8540-10f5913b0e18". app.js:1203:12
----
Uncaught (in promise)
Object { message: 'Unexpected server response (0) while retrieving PDF "blob:https://mozilla.github.io/143557be-9635-4460-8540-10f5913b0e18".', name: "UnexpectedResponseException", status: 0, stack: "BaseExceptionClosure@https://mozilla.github.io/pdf.js/build/pdf.mjs:455:29\n@https://mozilla.github.io/pdf.js/build/pdf.mjs:458:2\n" }

Traceback:
_otherError app.js:1203
_documentError app.js:1164
open app.js:1067
(Async: promise callback)
open app.js:1050
webViewerFileInputChange app.js:2399
dispatch event_utils.js:115
run app.js:668

Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension): NA

It works if you try a second time, even after a page reload.

Wouldn't this suggest a browser bug, given that it apparently works in some cases, rather than a PDF.js one?

@Snuffleupagus You are right, it could be. I just thought it might be related to the way PDF.js handles blob: urls, looking at the console messages.
I tried with an older Fenix version and could not reproduce the issue. I then did a bisect with Fenix versions and found that the first bad version is 124.0b1.
Thanks for the tip. I will open a bug in Bugzilla. You may close this.


Support remapping types for polymorphic entities

An API may return a polymorphic type that the frontend may want to remap to a differently named vuex-orm entity.  For example, if morphTo uses record_type to map to entities and record_type has 'team_members', remapping this to a model of entity = 'users'  may be preferred, especially if the API cannot be modified.

@Dishwasha Hi! Thanks for the report. There should be a way to map the data structure. This is definitely good enhancement to have. 👍

When data is normalized from a one-to-many source, the _type and _id coming from the backend should probably just be ignored. I'm new to vuex-orm though, so I could just be missing the proper way to do it. Here is my current workaround:
...
  static insert ({data}) {
    if (Array.isArray(data)){
      for (var i in data){
        this.remap(data[i]);
      }
    } else if (data) {
      this.remap(data);
    }
    return super.insert({data});
  };
  static remap(team) {
    for (var key in team){
      if (team[key] === null){
        delete team[key];
      }
    }
    if (team.links){
      for (var i in team.links){
        delete team.links[i].linking_type;
        delete team.links[i].linking_id;
      }
    }
  };
...


Third party licence agreement

The ReoGrid license agreement mentions the following:
**Third-party
This software may contain the following software:

ReoScript
ANTLR v3
FastColoredTextBox
DotNetZip**

ReoGrid says it's free. What are the implications of these third party software to the license?
If I download the ReoGridWPF.dll to use in my product will I have to also include these DLLs?

Short answer
ReoGrid it fully free for commercial applications.
Long answer
Different release edition have different license requirements. But all dependencies available for commercial applications.
ReoGrid
ReoGrid's three release editions:

Minimal features edition (Single ReoGrid.DLL or ReoGridWPF.dll)
Standard features (Single ReoGrid.DLL or ReoGridWPF.dll)
Extension features (Multiple DLL including third-party)

The first release include minimal features with single DLL which doesn't require third party DLL, it is fully available on MIT license.
The second release include standard features with single DLL which requires only DotNetZip module, it is available on MS-PL license. (same as NuGet edition)
The third release requires ReoScript (MIT) and ANTLR v3 (BSD).
ReoGrid Editor
ReoGrid Editor includes FastColoredTextBox package which is released under LGPLv3, you can only reference it's DLL in your application folder.
Remark
Since both ReoGrid and ReoGrid Editor is released under MIT license, you can feel free to remove feature and code that depend on other third-party module.

Just in case you like the idea to not rule out the GNU world through MS-PL:
https://github.com/datadiode/ReoGrid/commit/d4ffb3c5264cfb1e211aecfbc1ca4c16cb0a4cac
BTW, ReoGrid/Utility/ZipFileArchive.cs still says ReoGrid is LGPLv3.

Just in case you like the idea to not rule out the GNU world through MS-PL:
https://github.com/datadiode/ReoGrid/commit/d4ffb3c5264cfb1e211aecfbc1ca4c16cb0a4cac
BTW, ReoGrid/Utility/ZipFileArchive.cs still says ReoGrid is LGPLv3.


Examples of blocking calls

I'm generally quite confused about what could be a blocking call and if I should do anything with the concerned call. I recently watched @jonhoo's open-source contributions stream where he pointed out many cases where the library authors are using blocking calls and whatnot on tokio threads, etc. His solution most of the time was to use tokio_threadpool::blocking.
The idea here is to gather a set of real-world examples of blocking behavior to let even people who don't have much async experience to more easily understand what blocking really means and what to do about it.
I think it's important because more and more (web) libraries are using tokio. Even if some people don't use tokio directly, they must really understand the nature of async to get the most out of the benefits tokio provides.
Some examples that confuse me (from a web server POV):

Executing database queries. Since the driver is communicating with the database and it's waiting for a response, does the tokio thread block? What if the DB driver uses a threadpool that is external to tokio, do I have to do anything differently when executing the query in a web library's request handler?
Password hashing. It's a CPU-bound action. From @jonhoo's stream I saw that the argounatica library itself uses a threadpool, what should I do when hashing a password in this case? When a password hashing library doesn't use an internal threadpool, should I be the one now that uses tokio_threadpool::blocking like @jonhoo did in his stream?
File system access. There is an issue about this topic: #21.
HTTP request from within a tokio thread. Let's say we are using Hyper's HTTP client. In this case we have a library that returns Futures, so we can just return a Future ourselves and just chain it with and_then?
Validating a JSON schema. This involves deserializing a JSON string into Rust objects and then matching the user provided JSON to a predefined schema. Does this play well when run on a tokio thread? What's the deciding factor of when something should be offloaded to an external cpupool?

The theme seems to repeat itself in my case: I'm not sure if I should do something about certain calls because of feeling clueless about these topics, lacking knowledge and not knowing where to look to solve such basic? issues.
Does that make sense?

There's also #15

Do you think this can be merged with #15 then?

Yes, I think this can be tracked in #15.

Thanks. Closing in favor of #15.


Pot random item drop

Closes #46

Looks like this branch is on unity version 2021.3.17f1. Going to bump it back down to what is currently on main and make a separate pr for this.

@BrandonPacewic Reapproved, the code doesn't break anything

Incredible work! 🚀


4991 manymany extrafields

Fix for 4991.

It looks like the branch you branched from isn't the same one that you're pulling to. Do you need to re-create this PR?

Hmm Ok. I branched from 3.2, and thought that's what I was generating the PR to. I'll close this and try it again.


[Bug?] Two issues when using directives

Source Code

It seems normal to me, most likely it is caused by other extensions, try disabling possibly related syntax highlighting extensions.

@johnsoncodehk Sorry, the first issue is no completion suggestion for v-loading, not no intellisense:

The second issue seems to be caused by the Dracula theme extension, I'll file an issue there. Please reopen this issue.

@johnsoncodehk Sorry, the first issue is no completion suggestion for v-loading, not no intellisense:

I've updated the description in the question and in the source code.
For the second issue, I've also tried other themes (builtin and extensions), and they all have the same behavior:

So I don't think it's caused by a specific theme extension, is there any chance that Volar involves in this?
Please reopen this issue.

Please try the syntax highlight problem with Extensions: Disable All Installed Extensions command, and only enable Volar.

@johnsoncodehk Yes, still reproducible using the built-in themes:

I can confirm it with "Monokai" theme, thanks.


Unify Scheduling pages

Fixes #221
Reduces duplicate code between the scheduling page for creating a new event and for editing events.
Functionality should be unchanged.

I have done some tests with this PR and found some problems:

When I open a scheduled event, the date field is empty.
Even though I enabled input channels A and B for my Extron SMP during the event creation process, the channels are not enabled.
This issue is also valid here (and should maybe be fixed directly with this PR?) https://github.com/opencast/opencast-admin-interface/issues/941

Thanks for testing!

Did the problems you found also occur without this PR? (I think I've seen the start date field being empty on another branch before, but I'm not sure)
This PR does not intend to change functionality. To fix #941, a seperate PR would be better. (Getting this merged should make fixing it easier though)


Get coverage from h2spec

cf. https://github.com/taiki-e/cargo-llvm-cov#get-coverage-of-external-tests
I don't think the previous setup was measuring coverage from running h2spec,
according to things I see here from example:
https://app.codecov.io/gh/hapsoc/hring/commit/4c0fe623cfb3a51b8a9e7cf0da64da185b3cbbb7/blob/crates/hring/src/h2/server.rs#L318

Not working yet, I think part of the issue is that hring-h2spec isn't in the workspace and llvm-cov needs to see the binary for it to work. cargo-llvm-cov didn't really anticipate my funny repo setup.

Theeere we go.


Densification and motivation

Congrats on the paper accepted by CVPR'24 and thanks for your effort on the great work.
I would like to know,

how about the performance if enabling densification in GS above the UV-sampling used in the paper,  Tab.2 only shows the different number of sampling points ( I guess here the densification is disabled, right?)
the claim and the results are confusing me,  vertices init generates more GS in the detailed region like eye-balls and ears(Fig.2), but the visual performance is worse than the few sampling (UV-sampling) in Fig.10.
( sampling on the UV space is more "uniform" than the mesh surface, how about uniform sampling on the mesh surface? like trimesh.sample.sample_surface_even) While Fig.10 cant fully convince me, as you report the number of GS is different based on the UV-sampling(13453 for 128 in tab.2) and vertice init(~5k in fig.2)

Thanks for clarifying again.
Best regards,
Baixin

First thank you for your attention to our work. As you can see, we try to guarantee speed, quality and flexibility.
Most of your concerns are explained in the main paper, like the fifth paragraph in section1, "Analysis" in section 3 and "Surface Embedding Methods" in section 5.5.
It is hard to fully explain why vertices init has relatively poor performance. But another possible reason is that the Gaussian position is not fully surface-attached and we add Gaussian offset as well, uneven and convex vertices init needs more complex deformation, which is hard to learn.  Also, in Fig. 10, 3348 for 64 is less than 5K.


Seismic Configuration (Verified Publisher)

When submitting a connector, please make sure that you follow the requirements below, otherwise your PR might be rejected. We want to make you have a well-built connector, a smooth certification experience, and your users are happy :)
If this is your first time submitting to GitHub and you need some help, please sign up for this session.

[ ] I attest that the connector doesn't exist on the Power Platform today. I've verified by checking the pull requests in GitHub and by searching for the connector on the platform or in the documentation.
[ ] I attest that the connector works and I verified by deploying and testing all the operations.
[ ] I attest that I have added detailed descriptions for all operations and parameters in the swagger file.
[ ] I attest that I have added response schemas to my actions, unless the response schema is dynamic.
[ ] I validated the swagger file, apiDefinition.swagger.json, by running paconn validate command.
[ ] If this is a certified connector, I confirm that apiProperties.json has a valid brand color and doesn't use an invalid brand color, #007ee5 or #ffffff. If this is an independent publisher connector, I confirm that I am not submitting a connector icon.

If you are an Independent Publisher, you must also attest to the following to ensure a smooth publishing process:

[ ] I have named this PR after the pattern of "Connector Name (Independent Publisher)" ex: HubSpot Marketing (Independent Publisher)
[ ] Within this PR markdown file, I have pasted screenshots that show: 3 unique operations (actions/triggers) working within a Flow. This can be in one flow or part of multiple flows. For each one of those flows, I have pasted in screenshots of the Flow succeeding.
[ ] Within this PR markdown file, I have pasted in a screenshot from the Test operations section within the Custom Connector UI.
[ ] If the connector uses OAuth, I have provided detailed steps on how to create an app in the readme.md.

Hi @amit-chaudhari1,
Your merge commit has an issue, it has not merged properly, it is conflicting with other connector repos, please refer the apiProperties and Swagger validation checker errors. Please recommit or close this PR and open a new PR. Please don't merge it until the review is completed.

@vmanoharas can you tell me what to fix or explain the errors in the checks?
I tried reading the error and and i can't understand what fix is needed here

Hello @amit-chaudhari1,
Kindly refer below links, however these errors are not related to your connector.  They are related to different connector's repository.  Kindly recommit or close this PR and open a new PR. Please don't merge it until the review is completed.
https://github.com/microsoft/PowerPlatformConnectors/pull/3370/checks?check_run_id=23759171373
https://github.com/microsoft/PowerPlatformConnectors/pull/3370/checks?check_run_id=23759246101


[Feature Request] Hold Alt to skip animations

I would be nice if you could replicate a feature from the original drag ruler. Holding Alt would allow you to skip animations when moving a token. Great for DMs trying to set things up in place.

In v12, I added the ability to hold the "F" button when triggering a token move to skip animations. That is based on the new ability of Foundry animations in v12 to "teleport" and skip the movement animation. So sorry, probably won't make it to v11.
(I am loathe to set this to Alt because of how overloaded Alt tends to be.)


use_cassette is not active for the duration of the generator/coroutine it decorates

When using Tornado's async client, use_cassette will not work when used as a decorator. It will only work if used as a context manager.
I'll write some code to reproduce the bug a bit later, but wanted to flag it now.
cc @abhinav

It's not so much an issue with tornado's async client as it is an issues with the way generators/coroutines are handled. I've retitled this to indicate that.

@abhinav @charlax @kevin1024 @graingert
I've put a fix for this in master in 21c176e, but it would be great if any of you could take a look at what I've done. I tried to support coroutines (in addition to generators) but this stuff is tricky business, and it is entirely possible that I didn't properly think about some edge case.
The most critical part of this change is here: https://github.com/kevin1024/vcrpy/commit/21c176ee1e7d3379f40e9330ab459a4a906f8cde#diff-dc8efcefc2dd30550706019d468fa580R89
but take a look at the other sections if you can as well.

@kevin1024 Sorry about the failing build... I should have run the tests locally before pushing. Fix on the way.

I've verified that this is working on my test. Thanks a lot!
When the remote server is not running though, I get the following exception instead of an HTTP error:
Traceback (most recent call last):
  File "pytest_tornado/plugin.py", line 77, in pytest_pyfunc_call
    timeout=_timeout(pyfuncitem))
  File "tornado/ioloop.py", line 445, in run_sync
    return future_cell[0].result()
  File "tornado/concurrent.py", line 215, in result
    raise_exc_info(self._exc_info)
  File "tornado/gen.py", line 879, in run
    yielded = self.gen.send(value)
  File "vcrpy/vcr/cassette.py", line 99, in _handle_coroutine
    to_send = yield to_yield
  File "vcrpy/vcr/cassette.py", line 71, in __exit__
    next(self.__finish, None)
  File "vcrpy/vcr/cassette.py", line 48, in _patch_generator
    cassette._save()
  File "vcrpy/vcr/cassette.py", line 255, in _save
    serializer=self._serializer
  File "vcrpy/vcr/persist.py", line 13, in save_cassette
    data = serialize(cassette_dict, serializer)
  File "vcrpy/vcr/serialize.py", line 57, in serialize
    cassette_dict['responses'],
  File "vcrpy/vcr/serializers/compat.py", line 10, in convert_to_unicode
    resp = convert_body_to_unicode(resp)
  File "vcrpy/vcr/serializers/compat.py", line 46, in convert_body_to_unicode
    resp['body']['string'] = resp['body']['string'].decode('utf-8')
AttributeError: 'NoneType' object has no attribute 'decode'

But the response actually has a body?

can you post the generated cassette? and or a simple repro?

@charlax so if I understand correctly, the issue is that if you run a test that does not have an existing cassette and you try to record, you get this error instead of an http error?
Can you make a separate github issue for this and cc @abhinav .

Yes that's correct. Pretty sure I wasn't getting this with the other way though (using a context manager).