Increase TDLib performance

Is there any way to increase TDLib performance?
I'm running multiple account simultaneously and the CPU sticks at 100%

Have you disabled TDLib logs and redirected them to a file?

Have you disabled TDLib logs and redirected them to a file?

i have set log level to 1 which makes a few logs.( about one log per 5 minutes)

Then there is no more bottlenecks and performance  can't be increased further. Between, multiple accounts are run in different threads, so there should be no 100% CPU usage for a specific CPU because of that.

Then there is no more bottlenecks and performance can't be increased further. Between, multiple accounts are run in different threads, so there should be no 100% CPU usage for a specific CPU because of that.

I have one CPU core so all threads run on one core and cause 100% CPU usage.
How about -DTD_ENABLE_LTO=ON .. compiling option? Does it make any performance optimization?
I have two idea. Have these any effect in performance?

Increase optimization level of C++
Removing processing of some messages in TDLib. For example some update messages. I know that removing handler of these make TDLib incomplete but i don't need many updates like when someone is typing in a group.

How about -DTD_ENABLE_LTO=ON .. compiling option? Does it make any performance optimization?

It should, but I didn't see any performance improvements when it is enabled.

Increase optimization level of C++

If you aren't building Debug binaries, then you already use the highest optimization level.

Removing processing of some messages in TDLib.

The changes will be neglible, There is no single place, which consumes most CPU.


Compatibility issue of LiquidCore-0.6.1 with xcode-10.1 and older versions.

Hi ,
Thanks for the new release of 0.6.1 with all fixes till now what ever we faced .
Now we are facing new - When we try to run xcode-10.1 with Liquidcore-0.6.1 we are getting some issue .
If we comment below line of code from xcode-10.1 then its working fine . But I believe this is not  the proper solution .
Need to comment code:
Filename: value.cpp

Good new is every thing is working fine in xcode-10.2.1 .
But In our project we are using 10.1 . which is giving above issue .
Please suggest the proper solution
Thanks
Ajay

Yes, kJSTypeSymbol was added in 10.2. This needs to be wrapped in a
conditional compilation macro. I tried briefly to figure out which #define
is set to identify the xcode version but didn't immediately find it. If you
figure it out please submit a PR or let me know and I will add it.
On Thu, May 9, 2019, 9:56 AM A-P-Singh<EMAIL_ADDRESS>wrote:

Hi ,
Thanks for the new release of 0.6.1 with all fixes till now what ever we
faced .
Now we are facing new - When we try to run xcode-10.1 with
Liquidcore-0.6.1 we are getting some issue .
If we comment below line of code from xcode-10.1 then its working fine .
But I believe this is not the proper solution .
Need to comment code:
Filename: value.cpp
[image: Screen Shot 2019-05-09 at 1 22 15 PM]
https://user-images.githubusercontent.com/22491079/57436638-b96d8c00-725d-11e9-9696-dca9ea18198e.png
Good new is every thing is working fine in xcode-10.2.1 .
But In our project we are using 10.1 . which is giving above issue .
Please suggest the proper solution
Thanks
Ajay http://url
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/LiquidPlayer/LiquidCore/issues/101, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAJC4ZEIKGGLH7WABG3NNQTPUPKL3ANCNFSM4HLYA4MQ
.

Hi @ericwlange ,
I am not much familiar with c++ language. So Can you fix this or If you want me to do that then it will take some more time .

Can you try the following patch and let me know if it works?
diff --git a/LiquidCoreiOS/LiquidCore/V82JSC/Value.cpp b/LiquidCoreiOS/LiquidCore/V82JSC/Value.cpp
index aa50e75e4..ba97bda14 100644
--- a/LiquidCoreiOS/LiquidCore/V82JSC/Value.cpp
+++ b/LiquidCoreiOS/LiquidCore/V82JSC/Value.cpp
@@ -4,6 +4,7 @@
  * Distributed under the MIT License.  See LICENSE.md at
  * https://github.com/LiquidPlayer/LiquidCore for terms and conditions.
  */
+#include <Availability.h>
 #include "V82JSC.h"
 #include "JSObjectRefPrivate.h"
 #include "Value.h"
@@ -102,10 +103,12 @@ Local<v8::Value> Value::New(const Context *ctx, JSValueRef value, BaseMap *map)
                 }
                 break;
             }
+#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_12_1
             case kJSTypeSymbol: {
                 map = isolateimpl->m_symbol_map;
                 break;
             }
+#endif
             default:
                 break;
         }

If I run below code then its working on xcode-10.0 and 10.1 . But its not working on xcode-10.2 .
I think we are very close to the solution.

Please suggest something which can fix xcode-10.2 issue also

Second thing ,
If I run
#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_12_1
Then its not working on 10.0 .
Regards
Ajay

Ok, I think this may be the winner.  Try:
#ifdef __IPHONE_12_2

Thanks @ericwlange , its working fine for all three (10,10.1 and 10.2.1) version of xcode .
But I think I don't have access of your liquidcore repo . So when I am trying to  push the code in my feature branch then I am getting some error .

Please give me the access .

You won't be able to push directly to the LiquidCore repo.  You would have to submit a PR.
But if that's the only change required, I can commit it.

This has been committed.  You can use:
pod 'LiquidCore', :git => 'https://github.com/LiquidPlayer/LiquidCore.git'

to use the bleeding edge version until a new release has been pushed.

Thanks @ericwlange
When can we expect new version Liquidcore with fix of this issue ?

I don't plan to push another release just for this small change for older SDKs.  There is too much personal overhead.  The next release, 0.7.0, will feature an upgrade to Node 10.15.3 and there is still a lot of work ahead of me to accomplish that, so it is not going to be anytime soon.
What I recommend until that happens, is that you use:
pod 'LiquidCore', :git => 'https://github.com/LiquidPlayer/LiquidCore.git', :commit => '7dc9c3e'

to ensure you only get that change.

@ericwlange
While using this branch with iOS deployment version 9.0, it appears that the pod install fails.

Above screenshot shows the exact error I am getting.
It worked with iOS version 12.0
Does the library not support lower versions ?

I have not tried it with targets less than 10.0.  You can try it by changing line 14 of LiquidCore.podspec and see if it works.  The biggest concern is which version of JavaScriptCore exists on older devices.  V82JSC, the layer that dynamically translates V8 API calls to JavaScriptCore depends on ES6 features.  It should work fine so long as the version is not too old.  But I've never tried.  I just know that 10+ works.  If you test it and it works, let me know and I will lower the version.

This has been fixed in 0.6.2.  LiquidCore will not support iOS versions less than 11.0.


Create systemctl file

This is already running on Nicole's pi, and seems to work well. but if anyone wants changes, I'm happy to update it! I had to do the following to set it up:

Clone this repo. I could have put it in /opt, but I put it in ~ and then symlinked it into /opt.
sudo pip install -r requirements.txt
Edit secrets.py to contain the right values
git update-index --skip-worktree secrets.py so the repo is clean again
sudo cp hand-raiser-python.service /etc/systemd/system
sudo systemctl daemon-reload
sudo systemctl start hand-raiser-python.service

and now I can send POST requests from my laptop to Nicole's board, and everything works! The servo moves and all is good.
The systemd file is mostly copied from the RDK systemd file. I have no idea what most of those lines do; I'm happy to change it around to anything else you want.

Heh, I don't really know what these lines do, either. I copied it from the file that gets auto-generated for the RDK server, and just changed the lines that looked RDK-specific. Maybe we don't need the ConditionPathExists line because that feels like it's already implied by the ExecStart line? Maybe we don't need the ExecStop line, because that feels like the default, too. but it works, so I'm inclined to merge this and we can remove the redundant parts later if someone cares.


⚖ Register Validator: metehan

Network Choice
nemeton-1
Who are you?
Metehan is here i joining testnets would be perfect if i selected for OKP4 as well.
gentx
{"body":{"messages":[{"@type":"/cosmos.staking.v1beta1.MsgCreateValidator","description":{"moniker":"metehan","identity":"","website":"","security_contact":"bravehearth.soldier@gmail.com","details":""},"commission":{"rate":"0.050000000000000000","max_rate":"0.200000000000000000","max_change_rate":"0.010000000000000000"},"min_self_delegation":"1","delegator_address":"okp416mxu3ejccs9macp726lvw3ha48glxrxzf2wmgp","validator_address":"okp4valoper16mxu3ejccs9macp726lvw3ha48glxrxzud7jkq","pubkey":{"@type":"/cosmos.crypto.ed25519.PubKey","key":"xe0WszqrVfyQbgwpBdtD/W0SHg/3ifmdpwNQvkKwC1c="},"value":{"denom":"uknow","amount":"10000000000"}}],"memo":"be9d7ce1ad0ab98e8a5d95ae40d4da21f60d8dd7@<IP_ADDRESS>:26656","timeout_height":"0","extension_options":[],"non_critical_extension_options":[]},"auth_info":{"signer_infos":[{"public_key":{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Ap82jVtK6FzNBbTabSprNJednhEkV4i8rdgC2CILbOpI"},"mode_info":{"single":{"mode":"SIGN_MODE_DIRECT"}},"sequence":"0"}],"fee":{"amount":[],"gas_limit":"200000","payer":"","granter":""},"tip":null},"signatures":["WDMhiyiG0IKjhxia+X5Ia3Xfm6sUPxBlTbwzyb8GIFZsbGA3wnyND55ISJ15iNa9ROSeRuCVA7UWCOFPRazdVQ=="]}

😢 I couldn't process your request: Register process is closed for this network.


(refactor|fix|test)(frontend): update tests after setting modals upgrade

Summary
Changes introduced in #1319 caused the settings test to fail because they did not take into account the new property. They have since been updated to do so.
Additional fixes

A test in settings modal failed because the modal did not save settings due to its implementation. There were some cases where the save button would be disabled when API key was empty, because any empty input resulted in disabling the button. Of course this is not desired with the new change, so the isDisabled logic has been updated to take into account the api key.
Removed package-lock.json from root (accidentally added from a previous commit)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (main@31c1a2d). Click here to learn what that means.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1467   +/-   ##
=======================================
  Coverage        ?   58.53%
=======================================
  Files           ?       82
  Lines           ?     3429
  Branches        ?        0
=======================================
  Hits            ?     2007
  Misses          ?     1422
  Partials        ?        0

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


OAC Mapper failing to run properly

Can't run OAC Mapper for collection 11747 (first collection I've tried - not sure how widespread this issue is):
Traceback (most recent call last):
  File "/Users/awieliczka/Projects/rikolti/metadata_mapper/map_registry_collections.py", line 68, in <module>
    map_endpoint(args.endpoint)
  File "/Users/awieliczka/Projects/rikolti/metadata_mapper/map_registry_collections.py", line 45, in map_endpoint
    return_val = lambda_shepherd.map_collection(
  File "/Users/awieliczka/Projects/rikolti/metadata_mapper/lambda_shepherd.py", line 89, in map_collection
    return_val = map_page(json.dumps(payload), {})
  File "/Users/awieliczka/Projects/rikolti/metadata_mapper/lambda_function.py", line 91, in map_page
    record.to_UCLDC()
  File "/Users/awieliczka/Projects/rikolti/metadata_mapper/mappers/mapper.py", line 123, in to_UCLDC
    mapped_data = {**mapped_data, **self.UCLDC_map()}
  File "/Users/awieliczka/Projects/rikolti/metadata_mapper/mappers/oac/oac_mapper.py", line 37, in UCLDC_map
    "spatial": self.map_spatial(),
  File "/Users/awieliczka/Projects/rikolti/metadata_mapper/mappers/oac/oac_mapper.py", line 151, in map_spatial
    coverage_data = iterify(getprop("coverage"))
TypeError: getprop() missing 1 required positional argument: 'path'

I'm taking a look!

Ok, sorry about that. Not sure how that came to pass.
You probably are doing this, and this is just as much a note to self, but there are some unpublished collections in here, so map thusly to maximize delight:
map_registry_collections.map_endpoint("https://registry.cdlib.org/api/v1/rikoltifetcher/?format=json&harvest_type=OAC&ready_for_publication=true")


feat: move profile settings to profile page

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #55258

Thank you @huyenltnguyen for the thorough review.

When I add or remove a social media link
I am unable to confirm the behaviour with the social links.

One issue with it is the modal would sit on top of the flash, preventing campers from reading it. We can close the modal when the Save button is clicked, but then the user would need to reopen the modal if they haven't finished updated their profile. I guess we could fix this by keeping the modal open and changing the z-index so that flash would be on top.

This is the behaviour @ahmaxed suggested. We might be able to change it to something different.

I completely understand. We have similar forums on modal on learn and this pattern reflects what others such as Linkedin is doing. Maybe it needs a bit getting used to.

Here are a few notes (some might be un related):

The project cards should have an edit button of their own: mock
The button should preferably be the icon itself.
The icon could be changed to 'faPen'.
The icon button should be as tall as its contents.
The form labels should be left aligned similar to the settings page.
The cards section should be after the activity graph.
The forms should have client and api validation (github link fails after the closure of the modal)
We could explore other forms or notifying the user of a faulty submission: alert on the forum, etc.

Thanks Ahmad, I completely missed this mock.

Hey @ahmaxed,
I have implemented these suggestions:

The button should preferably be the icon itself.
The icon could be changed to 'faPen'.
The icon button should be as tall as its contents.
The form labels should be left aligned similar to the settings page.
The modal is too wide. It should have a similar column configurations as the rest of the modals.
The cards section should be after the activity graph.

Thanks for the heard work here. Here are some feedback on the current state of the pr:

I still get the double flash components on the latest commit
Wondering if we should leave a note in the settings page since we are moving a large chunk to the profile page.
Portfolio section in the modal needs a spacer similar to other sections
Since the if (!process.env.CI) block is repeated multiple, feel free to make a function and reuse it.

Stamp it! @huyenltnguyen


Explanation components

Adding explanations with the necessary long texts may break the layout.

A simple Info-icon with a tooltip as a component could help (NIcon & NTooltip)

I'll try to merge the two solutions into one, because I've also some more responsiveness issues.
But I will create another PR for that.

Ouch. Did not see you already self-assigned it. Just use your solution.

I just had ten minutes while my wife was on the phone, thus forgot to self-assign it ;-)
Yours will probably not be directly pushed to master and have a green pipeline and maybe even tests 😬


Valid (or not?) polymorphic code rejected

I've run this comparison between Gradualizer / Etylizer / Eqwalizer I mentioned in the other ticket and I'm now going through the cases where the type checkers' results differ on the same code snippets. Some differences are due to different interpretation of any() and dynamic(), the dynamic types in Gradualizer and Eqwalizer, respectively. Some are about handling of intersection/union types. The raw comparison results are available here. Apologies for not much commentary there - it's a work in progress.
To the point... Eqwalizer correctly rejects the below code:
-spec poly_2(fun((A) -> A)) -> {integer(), boolean()}.
poly_2(F) -> {F(42), F(false)}.

-spec poly_fail(fun((A) -> A), boolean(), integer()) -> {boolean(), integer()}.
poly_fail(F, B, I) -> {F(I), F(B)}.

With the assumption that only rank-1 types are supported (which does not really reflect the BEAM runtime), the constraints towards A in both cases lead to a conflict. However, there's no such conflict in the below case, which is also rejected by Eqwalizer:
-spec poly_2(fun((A) -> A)) -> {integer(), integer()}.
poly_2(F) -> {F(42), F(84)}.

-spec poly_pass(fun((A) -> A), boolean(), boolean()) -> {boolean(), boolean()}.
poly_pass(F, B1, B2) -> {F(B2), F(B1)}.

I'm running:
$ asdf current erlang
erlang          25.3.2          /Users/erszcz/.tool-versions
$ /Users/erszcz/work/erszcz/erlang-type-checker-comparison/elp version
elp 0.17.16

You're right that eqWAlizer only supports rank-1 polymorphism. All type variables are implicitly universally quantified at the outermost position. Which is also the reason the second example is rejected.
Consider your second poly_2 function:
-spec poly_2(fun((A) -> A)) -> {integer(), integer()}.
poly_2(F) -> {F(42), F(84)}.

Since A is externally quantified, the only constraint the spec imposes to the argument is that its return type is the same as its input type. It does not, in particular, state that it can be applied to any value (which would require an inner quantifier, with higher rank polymorphism).
So in particular, a function of type fun(boolean()) -> boolean() can be passed to poly_2. Because such an application would lead to an ill-typed term, it's clear the spec should be rejected.

Thanks, that's a convincing explanation, indeed! I guess we can close this ticket, then :)


[v3] Template Extensibility 💦

Description
This PR represents the the summing up of multiple other PRs and the finalizing of the Template Extensibility feature as it lands on develop.
Here are the smaller PRs that have merged into the branch to roll up to this larger PR:

https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1205
https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1216
https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1209
https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1162

The goal in this PR is to get the feature branch stable + passing all CI checks etc, and then merge this branch (feature/template-extensibility) to develop as a big splash

Types of Changes

[ ] Bug fix (non-breaking change that fixes an issue)
[ ] New feature (non-breaking change that adds functionality)
[ ] Documentation update
[ ] Breaking change (could cause existing functionality to not work as expected)
[ ] Other changes (non-breaking changes that does not fit any of the above)

Breaking changes include:

Removing a public function or component or prop
Adding a required argument to a function
Changing the data type of a function parameter or return value
Adding a new peer dependency to package.json

Changes

(change1)

How to Test-Drive This PR

(step1)

Checklists

General

[ ] Changes are covered by test cases
[ ] CHANGELOG.md updated with a short description of changes (not required for documentation updates)

Accessibility Compliance
You must check off all items in one of the follow two lists:

[ ] There are no changes to UI

or...

[ ] Changes were tested with a Screen Reader (iOS VoiceOver or Android Talkback) and had no issues
[ ] Changes comply with WCAG 2.0 guidelines levels A and AA
[ ] Changes to common UI patterns and interactions comply with WAI-ARIA best practices

Localization

[ ] Changes include a UI text update in the Retail React App (which requires translation)

🚀


UI - Missing view Accounts button in domain view

ISSUE TYPE

Bug

COMPONENT NAME

UI

CLOUDSTACK VERSION

4.15.x

CONFIGURATION

SUMMARY

View Accounts Button missing when selecting a domain.
In the old UI there is an option to view accounts when you've selected a domain. In the New UI this option is missing.
This option is however visible when we traverse to the Domain view, from the Accounts list view.
In the domain View: No "view Accounts" button visible

Traversing to the Domain, from the accounts list view , displays the button:

It would be a good improvement to have the view Accounts button visible on direct traversal to the Domain (Domain -> Specific Domain)
STEPS TO REPRODUCE

Fixed in #5929


Bump inbound-auth-oauth version.

$Subject
To add changes in https://github.com/wso2-extensions/identity-inbound-auth-oauth/pull/2086

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/5508007265

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/5508007265
Status: success


Server-side rendering for front ent

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

@k8reindeer Do we still need this after the work from last week? If so - what are the requirements (what are we trying to solve with SSR)?

I don't see why we would need this. It won't solve any problem we have and might make things slower


Dev #617 - Changes to layout of Data Elements tables

Changes to layout of Data Elements tables
Changes

Column header text is top aligned.
The 'i' icons is reduced in size and appears centrally under the column header text 'Sensitivity' and 'Identifiability'.
The 'Name' column is to the left, so there is less white space between it and the checkboxes.
The 'Values' column is able to accommodate the word 'Alphanumeric' without it wrapping to the next line.
The checkboxes is top aligned, so the top of the checkboxes are in line with the top of the text in each column.

Screenshot

Thanks @cacquani looks good. Happy for it to go to staging.


Can global middlewares access request & response?

For example, we can log time consume for each request with its req path and body included Or we can modify response after request completed

Yes, just add those as  parameter of the middleware instantiate method:
 instantiate(mhd_request& request, mhd_response& response)

It works! Thank you.
I'll take look at the instantiate method.

One more question: can we access route info also (so we can log http verb then)? Maybe not possible for now (?)
The route R hides in prefix_path_middleware<R>, but GA's instantiate method cannot be templated. (It seems that accessible args in taglist when instantiate GA must not be dependenty types?)

Not yet, I'll add it in the mhd_request object.
Matthieu Garrigues
On Mon, Jun 17, 2019 at 11:53 AM Yi Lu<EMAIL_ADDRESS>wrote:

One more question: can we access route info also (so we can log http verb
then)? Maybe not possible for now (?)
The route R hides in prefix_path_middleware, but GA's instantiate
method cannot be templated. (It seems that accessible args in taglist when
instantiate GA must not be dependenty types?)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/matt-42/silicon/issues/70?email_source=notifications&email_token=AAGOV6FCEYVBV2V7T25PXOTP25NLDA5CNFSM4HXXQRZKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODX2VB3Y#issuecomment-502616303,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGOV6DJWLO7EMOQUJQNBKLP25NLDANCNFSM4HXXQRZA
.

Thanks!


Limit maximum length of offline run

For the question:
Q: Is it permissible to exceed both the minimum number of queries and minimum time duration in a valid test run?
Change:
A: Yes.
To:
A: for single stream, server and multistream there is no limit on the time duration. Offline must use a single query, and the minimum time duration may be exceeded by at most 10%.
MLPerf should not support amortizing away large constant-time costs (e.g. loading a program onto an FPGA for a different sequence length in RNN-T or BERT) across an offline run which sorts an arbitrarily large dataset by sequence length.

I think the Offline scenario is supposed to capture asymptotic performance. Moreover, the timer for offline doesn't start until the SUT indicates it is ready to receive the first query. A real offline job might run for hours or days, a 60 second run might not be long enough to capture typical behavior.


feat(markdown-navigator): adding breadcrumbs

Description
Adding TD breadcrumbs to markdown navigator window
What's included?

adding breadcrumbs to navigator window per UX mocks
Fixed live editor demo for markdown navigator window

Test Steps

[ ] npm run start
[ ] then go to localhost:4200
[ ] finally test the examples in the markdown navigator app

General Tests for Every PR

[ ] npm run start:prod still works.
[ ] npm run tslint passes.
[ ] npm run stylelint passes.
[ ] npm test passes and code coverage is not lower.
[ ] npm run build:lib still works.

Screenshots or link to StackBlitz/Plunker

:tada: This PR is included in version 4.1.0-develop.8 :tada:
The release is available on:

v4.1.0-develop.8
GitHub release

Your semantic-release bot :package::rocket:


Tracab Meta added (V4)

I've added an option for reading yet another version of the Tracab Meta data (as requested by here https://github.com/PySport/kloppy/discussions/352)
My main concern is the ever growing amount of random Tracab Meta file configurations, but for now this implementation should hold. Not sure how to approach this other than wait for issues to be raised...
It first checks if there is a "match" attribute in the meta_data and if not it will check a key I have yet only seen in this new version of the meta data (Phase1StartFrame). Additionally there are some small additions to make the create_team function a bit more flexible because some tags have slightly changed in this version. <Player> became <item> and <TeamId> became <TeamID> (same for player ids).
I've also added new tests.

The tests seem to fail at a random file I didn't touch?

The tests seem to fail at a random file I didn't touch?

Was just sniffing around this issue. Seems like the git actions fail on the formatting of kloppy/infra/serializers/event/sportec/deserializer.py. I am guessing that your local formatting settings (maybe with black?) are different from the ones on git, but not sure though.

I see my commit contains that file, in a slightly different format. Weird 🤷♀

I had black version 23.3.0 instead of 22.3.0...


[HUDI-6445] Distribute spark ds func tests

Change Logs
Distribute spark ds func tests
Impact
Distribute spark ds func tests
Risk level (write none, low medium or high below)
low
Documentation Update
Describe any necessary documentation update if there is any new feature, config, or user-facing change

The config description must be updated if new configs are added or the default value of the configs are changed
Any new feature or user-facing change requires updating the Hudi website. Please create a Jira ticket, attach the
ticket number here and follow the instruction to make
changes to the website.

Contributor's checklist

[ ] Read through contributor's guide
[ ] Change Logs and Impact were stated clearly
[ ] Adequate tests were added if applicable
[ ] CI passed

We might want to land either of this patch or https://github.com/apache/hudi/pull/9080

@hudi-bot run azure

This is no longer needed as we did the CI rebalancing in #10805.


Updated Home to Index

Updated Home to Index since Index.razor is created.

Pertains to the running app. This page is called "Home" in the app's sidebar nav menu.


new footer style and links are added

I have added a new footer design with flouting icons with some of the links that I get from your GitHub profile.

Please resolve the conflicts.


Adding y-axis format option

@mistercrunch
Opted for a more general text field that leverages D3's options.

As discussed:

clarify tooltip
handle y2axis

@mistercrunch done

:astonished:


TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.
If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.
If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/38892

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/39166

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/39202

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/55554

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/75488

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/90370

Triggering TagBot for merged registry pull request: https://github.com/JuliaRegistries/General/pull/105104


Activity timestamps are integers instead of Timestamp objects

https://api.twilight.rs/twilight_model/gateway/presence/struct.Activity.html#structfield.created_at and the fields of https://api.twilight.rs/twilight_model/gateway/presence/struct.ActivityTimestamps.html are u64 even though they are timestamps
I was trying to PR this but it escalated because Discord sends ISO8601 timestamps everywhere except activities, so the Serde implementation of Timestamp is hardcoded to parse from ISO or format to ISO, I'm not sure how to remove this behavior or whether it's necessary
We could instead document that the timestamps are in milliseconds and have an example of creating a timestamp struct from these fields using the method in #1957 activity.created_at.map(|millis| Timestamp::from_millis(millis).unwrap())

I think mirroring Discord's API, documenting the temporal size is ideal as there would otherwise need to be custom deserialization logic that would risk erroring on any Discord change.

That risk is everywhere but I agree that the complexity involved isn't worth the change


Feature (frontend): tooltips in developer settings for chat and oneshot

Purpose

...

Does this introduce a breaking change?

[ ] Yes
[ ] No

Pull Request Type
What kind of change does this Pull Request introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Documentation content changes
[ ] Other... Please describe:

How to Test

Get the code

git clone [repo-address]
cd [repo-name]
git checkout [branch-name]
npm install

Test the code

What to Check
Verify that the following are valid

...

Other Information

I'm so sorry for not replying to this PR yet! There's a pending PR that also changes the settings panels, and we've been trying to avoid changes that collide with that PR. I'd love to bring in these tooltips once that PR is merged (a week or two).


Refactored app architecture

Resolves #20

refactored App to not fetch data
created Welcome component
moved data fetching useEffect hints from App to Welcome and Discussion.

Need to update documentation to reflect these changes.

Just realized I need to make some further changes, please don't review until I ping you

Should be ready for review now.

@allcontributors please add @markoprodanovic as a contributor for doc, ideas, code, eventOrganizing, review.

@allcontributors please add @markoprodanovic as a contributor for doc, ideas, code, eventOrganizing, review.


Model Permission

The C# script does not support the Model Permission of Refresh and ReadRefresh. Unless this is to enforce best practices it would be helpful to have these permissions.
As a workaround, I have added it manually to the script file.

Thanks. Hadn't included them since they're less commonly used. Fixed in v1.4.1.
https://github.com/m-kovalsky/ModelAutoBuild/releases/tag/1.4.1


use "label" for validation error messages when avaliable, make sure they are translated properly

Hey there, thanks for your great plugin, happily using it on a project currently.
Only when also integrating i18n, there was a small issue that needed fixing.

issue: when using the localize feature of vee-validate the {field} text was displayed without being replaced.
solution: this seemed due to a mixup in validateMessage assignment
extension: finally, most field names are usually cryptic and not user-friendly, so i also added a logic for using the "label" instead of the "prop" value in case it is defined
result: instead of "companyName" is a required field, we will get to see "Your Company's Name" is a required field

Feel free to only use this as inspiration, as there are no proper tests etc. attached to this.
Also, this is based on me playing around with the compiles .esm.js Version that is used in our project.
One final though / wish while we're at it: Do you plan on doing versioned releases soon? If so, something like release-it might help make things easier for you.
Thanks

My first official user! 😝 (apart from me)
Yes, still some work to do around replacing the field message, I might ask for more information from you if that's OK.
errorField and errorForm are designed to be slightly different, and I would like to add more customisation around this, most probably by way of a default function or other options.
Localisation was the next planned demo anyway, so perfect timing. In fact, do you have a demo i18n setup you could upload as a repo, or even sample code to post?

So I like the way you've used label to replace the field value, I think that works really well! Except... where there is no label, for example the Date and Time fields in the complex demo.
Ideally we need a way to derive this.
Thoughts:

pass in a hash of fields with all labels; this could be used in the parent as well
where there is no label, use $vm0.$children[0].placeholder as a last-ditch attempt to get a value
something else?

FYI, I've raised an issue here:

https://github.com/baianat/vee-validate/issues/1644


Fix Glur effect on non 1:1 views

The clamp within blurY shoud map the y coordinate from 0 to texture height - 1

Thank you so much for this fix! It was a big oversight of mine.


docs: remove CHANGELOG.md, update links

Description of the change:

remove CHANGELOG.md
fix broken link and pin old CHANGELOG.md links to appropriate versions
move changelog documentation to website, link from CONTRIBUTING.md

Motivation for the change: top-level CHANGELOG.md is old and should be removed, plus contrib docs need updating
/kind documentation
Checklist
If the pull request includes user-facing changes, extra documentation is required:

[ ] Add a new changelog fragment in changelog/fragments (see changelog/fragments/00-template.yaml)
[ ] Add or update relevant sections of the docs website in website/content/en/docs

/cherry-pick v1.7.x


fix(package): update standard to version 11.0.1

Closes #596

What problem does the pull request solve?

How has this been tested?

Screenshots (if appropriate):
What type of change is it?

Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to change)

Has the documentation been updated?

My change requires a change to the documentation.
I have updated the documentation accordingly.
I have read the CONTRIBUTING document.

Hey Marcus,
Sorry for the delay in reviewing this pull request.
Following the launch of the GOV.UK Design System, GOV.UK Elements will now only get major bug fixes and security patches, so I'm going to close this.
We are using this version of standard in the new work. 👍


VTOL MC attitude vs altitude

Some recent testing has exposed a problem specific to VTOL in MC altitude controlled modes.
https://logs.px4.io/plot_app?log=993613b8-0800-43ba-bb56-d8f2e98e377d
This was a flight in medium wind. In manual it tracks roll reasonably well, even when putting the large wing in a cross wind. In altitude it tracks very bad because it is also concerned with holding altitude. and saturates the motors.
VTOL's are prone to bad roll behavior in windy conditions as they generally carry a wing. When in altitude controlled modes i believe there should be a failsafe behavior that puts all available thrust towards attitude and return to control altitude as soon as attitude is back to acceptable.
Currently we are addressing this by limiting the max angles in MC significantly but that's not ideal.
@dagar @bresch @AndreasAntener @LorenzMeier thoughts?

@sanderux I just rewrote the attitude saturation handling part in the multirotor mixer. I'll make a PR so you can test it. It should solve those attitude instability problems.

Thats good, will be good to see how it copes

Very good idea. We noticed this as well. This concerns the Position mode as well.

@sanderux @bresch Is this solved?

@RomanBapst Should be solved when https://github.com/PX4/Firmware/pull/7920 is working and merged.

I think this was already solved. closing for now


greengrass-lite: patch fix upstream status

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Backport failed for kirkstone-next, because it was unable to cherry-pick the commit(s).
Please cherry-pick the changes locally and resolve any conflicts.
git fetch origin kirkstone-next
git worktree add -d .worktree/backport-10694-to-kirkstone-next origin/kirkstone-next
cd .worktree/backport-10694-to-kirkstone-next
git switch --create backport-10694-to-kirkstone-next
git cherry-pick -x 6e8ed95e8344ab708d31f3341b741c750b3e9bda

Successfully created backport PR for scarthgap-next:

#10695

Successfully created backport PR for styhead-next:

#10696


SwiftyCamViewControllerDelegate ReferenceError

hello,
i try to run the demo in nativescript playground and locally on ios (iPhone and iPad). but i always get an ReferenceError: Can't find Variable SwiftyCamViewControllerDelegate.

2019-03-15 16:11:13.330 nsplaydev[714:214136] ***** Fatal JavaScript exception - application has been terminated. *****
2019-03-15 16:11:13.331 nsplaydev[714:214136] Native stack trace:
1 0x101333370 NativeScript::reportFatalErrorBeforeShutdown(JSC::ExecState*, JSC::Exception*, bool)
2 0x10136fc20 -[TNSRuntime executeModule:referredBy:]
3 0x10110f3c8 -[UIApplication(PlayLiveSync) swizzled_executeModule:]
4 0x100b7b3f0
5 0x1f5d41bb4
2019-03-15 16:11:13.333 nsplaydev[714:214136] JavaScript stack trace:
2019-03-15 16:11:13.333 nsplaydev[714:214136] 1 @file:///app/@nstudio/nativescript-camera-plus/camera-plus.js:149:68
2 anonymous@file:///app/@nstudio/nativescript-camera-plus/camera-plus.js:151:3
3 evaluate@[native code]
4 moduleEvaluation@[native code]
5 promiseReactionJob@[native code]
6 require@[native code]
7 anonymous@file:///app/app.js:11:38
8 evaluate@[native code]
9 moduleEvaluation@[native code]
10 promiseReactionJob@[native code]
2019-03-15 16:11:13.333 nsplaydev[714:214136] JavaScript error:
file:///app/@nstudio/nativescript-camera-plus/camera-plus.js:149:68: JS ERROR ReferenceError: Can't find variable: SwiftyCamViewControllerDelegate
2019-03-15 16:11:13.335 nsplaydev[714:214136] PlayLiveSync: Uncaught Exception
2019-03-15 16:11:13.335 nsplaydev[714:214136] *** JavaScript call stack:
( )
2019-03-15 16:11:13.336 nsplaydev[714:214136] *** Terminating app due to uncaught exception 'NativeScript encountered a fatal error: ReferenceError: Can't find variable: SwiftyCamViewControllerDelegate
at
1 @file:///app/@nstudio/nativescript-camera-plus/camera-plus.js:149:68
2 anonymous@file:///app/@nstudio/nativescript-camera-plus/camera-plus.js:151:3
3 evaluate@[native code]
4 moduleEvaluation@[native code]
5 promiseReactionJob@[native code]
6 require@[native code]
7 anonymous@file:///app/app.js:11:38
8 evaluate@[native code]
9 moduleEvaluation@[native code]
10 promiseReactionJob@[native code]
', reason: '(null)'
*** First throw call stack:
(0x1f62f8ea4 0x1f54c8a50 0x1013337b4 0x10136fc20 0x10110f3c8 0x100b7b3f0 0x1f5d41bb4)
libc++abi.dylib: terminating with uncaught exception of type NSException
2019-03-15 16:11:13.336 nsplaydev[714:214136] PlayLiveSync: Uncaught Exception`

maybe someone get the same error and can help me

i found the solution: after reinstalling Nativescript and Xcode i can build the code


conflict numpy version between tensorflow and tf-nighty

When I install tf-nighty as below command:
pip3 install tf-nightly
the error appear as below:
Requirement already satisfied: zipp>=0.5 in /home/hoaphan/.local/lib/python3.6/site-packages (from importlib-metadata->markdown>=2.6.8->tb-nightly~=2.4.0.a->tf-nightly) (3.4.0)
Installing collected packages: numpy
  Attempting uninstall: numpy
    Found existing installation: numpy 1.18.5
    Uninstalling numpy-1.18.5:
      Successfully uninstalled numpy-1.18.5
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow 2.3.1 requires numpy<1.19.0,>=1.16.0, but you have numpy 1.19.5 which is incompatible.
Successfully installed numpy-1.19.5

this mean:
the tensorflow requires numpy <1.19.0
but the tf-nighty requires numpy 1.19.5
so I cannot install tensorflow and tf-nighty at same time,
so please help me solve this issue.

@hoaquocphan,
TF v2.3.2 requires numpy >= 1.16.0, < 1.19.0, whereas for TF v2.4 and the latest TF-nightly the required version is numpy~=1.19.2.
In this case, I'd suggest you to install numpy v1.19.2, as it is compatible with the latest stable version of TensorFlow i.e. v2.4.1.

so I cannot install tensorflow and tf-nighty at same time,

Also, you can only import any one release of TensorFlow in the script. So, I'd recommend using separate virtual environments for each version.
Thanks!

Since tf-nightly and tensorflow use the same code, you should never install both in the same environment. Usually, the latest one overrides most of the other. This is the way pip works and TF can do nothing in this case. That's why you should use venv/virtualenv.


fix: allow to render docs without react-router

Closes #1201

@philsturgeon @marcelltoth
I would just add that in case we forget to pass location data, it will be easier to see that we screwed up if the component is missing altogether, rather that when it has a wrong url.
In fact even writing e2e test will be a bit easier.

I am sorry, I wasn't thinking straight on friday afternoon.
This is PoweredByStoplight displayed in HttpService component in stack layout.
There techinically is already a prop to control if it should be displayed, and it is headless prop.
Check for pathname is just a typeguard and it will always be true in our usecases It's just me playing with TS nice.
And even if I add showPoweredBy or something, it will be still showPoweredBy && pathname in the condition itself, so it will not help to make things more readable in any ways. :shrug:
I honestly don't know what I should do here.

@mpodlasin if it’s just type safe stuff not hidden functionality then it’s fine as is.


Update thirdparty.md

Adds two providers - Harvest v2 and MYOB

Thanks Woody
Peter Hawkins
Managing Director
Global Vision
Suite 303, 517 Flinders Lane Melbourne 3000
(p) 1300 201 866 (m) 0414 674 666 (d) 03 9966 3879
http://www.gvmedia.com.au

From: Woody Gilk @.>
Sent: Thursday, October 27, 2022 2:36:04 AM
To: thephpleague/oauth2-client @.>
Cc: Peter Hawkins @.>; Author @.>
Subject: Re: [thephpleague/oauth2-client] Update thirdparty.md (PR #970)
@shadowhand approved this pull request.
—
Reply to this email directly, view it on GitHubhttps://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fthephpleague%2Foauth2-client%2Fpull%2F970%23pullrequestreview-1156780269&data=05|01|phawkins%40gvmedia.com.au|6b5b398592254a571f9408dab767cf24|c5f947965cf3496d99153244463d5327|0|0|638023953744139839|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=FiDHmYEa7fQXGxNkVxjQmYZx5k14l7zjw7ZMM%2FBXtNE%3D&reserved=0, or unsubscribehttps://aus01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FACLLQF3UZUBHXDKSGUBJJEDWFFFWJANCNFSM6AAAAAAQKJBDRM&data=05|01|phawkins%40gvmedia.com.au|6b5b398592254a571f9408dab767cf24|c5f947965cf3496d99153244463d5327|0|0|638023953744139839|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=iWh6bsiACrUNU%2Bis0fq0SMfHqunVhEbVQ%2B69jq8A4pU%3D&reserved=0.
You are receiving this because you authored the thread.Message ID: @.***>
Caution: This is an external email. Please take care when clicking links or opening attachments.


[WIP] Add doc for creating new adapters

Following https://github.com/DatabaseCleaner/database_cleaner/issues/628

@botandrose I've added WIP doc as you asked me in https://github.com/DatabaseCleaner/database_cleaner/issues/628#issuecomment-610091081
I haven't managed to follow it fully since 2.0.0 is not yet published

@TheSmartnik This is really great! Thank you! I'll be doing some more refactoring and test improvement groundwork in a few PRs over the next few days, and I expect I'll merge this after that. Having a documented baseline for where the ORM adapter interface is right now is going to be extremely useful for evaluating future PRs that attempt to improve it! I'm expecting we can simplify it quite a bit before v2.0.

@botandrose awesome, glad you liked it :)

Thanks again, @TheSmartnik!
Since we're not quite ready for people to actually follow these instructions, I'm going to split this content out into its own file, with a big warning up top saying as much. Once v2.0.0 is out the door, it will be restored to the README.


removes validation error for helm3 uninstall command

Task name: HelmDeploy
Description: Support for uninstall command of Helm 3. This PR removes the validation error discussed in #14250

Documentation changes required: N
Added unit tests: N
Attached related issue: #14250
Checklist:

[x] Task version was bumped - please check instruction how to do it
[x] Checked that applied changes work as expected

@onlyutkarsh Can you please rebase with master since the branch is out of date?

I just did - it has retriggerred the build now.


Update link_credential_phishing.yml

Adding negation for bounceback content_types being the only attachment

i think we can close this since #1147 just merged


Exception caught by rendering library

code sinp:
NotificationListener<ScrollNotification>(
      child: SingleChildScrollView(
        primary: false,
        scrollDirection: Axis.vertical,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.start,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: _createTextColum(20),
        ),
      ),
      onNotification: (notification) {
        print(notification);
        return true;
      },
    );

logs
════════ Exception caught by rendering library ═════════════════════════════════════════════════════
The following NoSuchMethodError was thrown during performLayout():
The method '_greaterThanFromInteger' was called on null.
Receiver: null
Tried calling: _greaterThanFromInteger(46)

The relevant error-causing widget was:
  ListView file:///C:/flutterdevelopement/142/teplay/lib/epg/TimeLineIndicator.dart:59:18
When the exception was thrown, this was the stack:
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
#1      int.> (dart:core-patch/integers.dart:105:18)
#2      RenderSliverFixedExtentBoxAdaptor._calculateTrailingGarbage (package:flutter/src/rendering/sliver_fixed_extent_list.dart:158:45)
#3      RenderSliverFixedExtentBoxAdaptor.performLayout (package:flutter/src/rendering/sliver_fixed_extent_list.dart:190:35)
#4      RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
...

Hi @gowthamkrishnabj
thank you for providing your doctor,
the code you provide seems to be more snippets from your app
rather than a runnable sample code.
The goal of this github repo is not to give assistance on personal code,
but to improve flutter reporting bugs or with feature requests;
if you encountered a behaviour that you believe could be a bug
please provide a reproducible minimal code sample that represent the problem,
if instead you think that the issue might depend from your implementation
please see flutter's community for resources and asking questions like this,
you may also get some help if you post it on Stack Overflow and flutterhelp
Thank you


Plugins don't load until at least one mixin matches

Version: 1.0.0 (beta8)
Environment: React (15)
Type: Bug

Description
Plugins don't appear to be loaded until there is at least one StyleSheet that matches a mixin expression.
Steps to reproduce

Set up <LookRoot> with a config that includes Plugins.friendlyClassName
Create a StyleSheet that just simply styles a property (no mixins)
Apply that style to a component

Observed Behavior
Note that the class name that was inserted on the component is not cleaned up by friendlyClassName
Now add an arbitrary expression (clicks>0 for example), and notice that the class name is now friendly

Err, actually, it appears to be the case on a per-component basis, rather than global as I had first thought

Here's the entire code base where I'm seeing this: https://github.com/boundless-exchange/web/tree/4ddeacb09647034b7086c492eff686b2953b58d5
Note that <Header> is not getting a friendly class name.  but if you uncomment `'a=b': {} it does

Woa, thanks for your great research. I was aware that friendly className sometimes did not work, but I did not know when it happens. I will investigate soon as I finished some other stuff I got to do right now.


Package for gp-saml-gui

Project description
Package for gp-saml-gui which is a python script to authenticate to GlobalProtect VPN that uses SAML authentication, which is then used with OpenConnect.
Metadata

homepage URL: https://github.com/dlenski/gp-saml-gui
source URL: https://github.com/dlenski/gp-saml-gui
license: gpl3
platforms: linux

See https://github.com/NixOS/nixpkgs/pull/225888, this has since been added.


Use repeateable textures as color.

I really like this lib. Would it be possible to use textures as colors?
My goal is to draw something like this:

But not just in this shape but also all other shapes supported by shapedrawer.

This would likely be a bit of work, as shape drawer would additionally have to calculate the correct texture coordinates for each triangle (currently all the texture coordinates are fixed). You could probably have the user define the size in world coordinates of their desired repeating texture area, then shape drawer would divide each vertex coordinate by the size to get the texture coordinate, and repeating behaviour would be defined by the Texture's TextureWrap setting.
However for what you want I'd suggest checking out masking, using shape drawer to define the shape https://github.com/mattdesl/lwjgl-basics/wiki/LibGDX-Masking.
I'll leave this issue open in case anyone has any thoughts or ideas on potential implementation.

Is it possible to get the polygon from path method? I could put this into a RepeatablePolygonSprite and paint the sprite.

It's not, but this is something I've considered adding, though I'm not sure exactly how it would work. The simplest version would be something where you draw whatever you want, then have some kind of access to the underlying float[] array, probably with some kind of convenience method like extractTriangles() or something. But keep in mind everything is stored as triangles, even lines are broken up into two triangles. So if you want to call polygon() and get the vertices of the actual polygon, that would require some changes to how it's currently done.
I had a quick look at RepeatablePolygonSprite and it looks like that expects the actual polygon vertices, which are then chopped up into triangles via a triangulator. However it calculates the repeating segments itself (I think I was incorrect above - letting the Texture wrap it wouldn't work with a Texture Region). Shape drawer already splits into triangles while drawing, and there doesn't seem to be a way to directly give RepeatablePolygonSprite the triangle vertices, so you'd in theory have to go back to polygon vertices somehow, then let RepeatablePolygonSprite chop it up again. Though it's overall not much code so it may be much less than I'd thought to just directly implement.

I'll delay this part of my project then. Maybe you'll get around to implement this.  When I'm done with the other parts of my project I'll try to get the triangles from shapedrawer and stuff them into the RepeateablePolygonSprite. I'll file a pull request then.

I'm not at the stage where I need this to work somehow. Can you give me a pointer where this should implemented in this lib, please?

What exactly do you need? For example you need to be able to draw a path (with joining) and extract the vertices as a float[] or something?

The best solution would be if I could just change the TextureRegion that shapedrawer uses.
Next best would be to the the vertices as float[]. This could be the return value of drawing operations or a separate method that fetches the vertices. Important is that nothing is actually drawn an I only the the calculated polygon.

I've added a method to the Drawing class that allows you to extract the XY coordinates of the drawing.
https://github.com/earlygrey/shapedrawer/compare/master...extract-vertices
You'd use it via something like
drawer.startRecording();
drawer.getBrush().polygon().vertices(vertices).draw();
Drawing drawing = drawer.stopRecording();
FloatArray coordinates = new FloatArray();
drawing.getTransformedXYCoordinates(coordinates);
float[] vertices = coordinates.toArray();

You should then just be able to make a RepeatablePolygonSprite.
I haven't tested this at all so let me know if it looks right, but it should be the minimum needed. If you've got any suggestions for something to add let me know!

What I'm doing now is:
        var pix = new Pixmap(image, 0, image.length);

        var region = new TextureRegion(new Texture(pix));
        region.flip(false, true);
        pix.dispose();

        drawer.startRecording();
        drawer.path(tmpFloat.toArray(), pen.getThickness(), JoinType.POINTY, false);
        var drawing = drawer.stopRecording();
        var coordinates = new FloatArray();
        drawing.getTransformedXYCoordinates(coordinates);

        var sprite = new RepeatablePolygonSprite();
        sprite.setPolygon(region, coordinates.toArray());
        // polygonSprite.setTextureRegion(textureRegion);
        sprite.draw((PolygonSpriteBatch) drawer.getBatch());

But I don't get any coordinates back.

Maybe it's easier to try to understand the path code and use it to create the polygon from the path myself.

Sorry there was a typo in my code, it's fixed and should work now, I gave it a quick test.

Thanks for the fix. I get vertices now, but the order is not correct for me:
I use this test code:
@Override
	public void render() {
		Gdx.gl.glClearColor(0.15f, 0.15f, 0.2f, 1f);
		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
		batch.begin();

		float x = 100;
		float y = 100;
		float h = 500;
		float w = 600;
		float wall = 100;

		var path = new float[] {
				x+wall/2,y+wall/2,
				x+wall/2,y+h-wall/2,
				x+w-wall/2,y+h-wall/2,
				x+w-wall/2,y+wall/2,
		};

		float[] vertices = new float[] {
				x,y,
				x,y + h,
				x+w,y+h,
				x+w,y,
				x,y,
				x+wall,y+wall,
				x+w-wall,y+wall,
				x+w-wall,y+h-wall,
				x+wall,y+h-wall,
				x+wall,y+wall
		};
		sprite.setVertices(vertices);
		var region = new TextureRegion(image);
		region.flip(false, true);

		drawer.startRecording();
		drawer.path(path, wall, space.earlygrey.shapedrawer.JoinType.POINTY, false);
		var drawing = drawer.stopRecording();
		var coordinates = new FloatArray();
		drawing.getTransformedXYCoordinates(coordinates);

		//sprite.setTextureRegion(region);
		//sprite.draw(batch);
		//batch.draw(image, 140, 210);

		batch.end();
		shapeRenderer.begin();
		//sprite.drawDebug(shapeRenderer, Color.CORAL);
		shapeRenderer.setColor(Color.RED);
		for(var i = 1; i<path.length; i+=2)
			shapeRenderer.circle(path[i-1], path[i], 5);

		shapeRenderer.polyline(path);
		shapeRenderer.setColor(Color.BLUE);
		shapeRenderer.polyline(vertices);
//		shapeRenderer.setColor(Color.GREEN);
//		shapeRenderer.polyline(coordinates.toArray());
		shapeRenderer.end();

	}

I want:

But I get:

BTW I don't use the RepeateablePolygonSprite of libgdx but the one from here

So in this implementation I'm not sure the coordinates are that useful for what you want, because they're actually in the "sprite batch" arrangement - which means in groups of four points defining a quad.
You can see if you use this
        drawing.getTransformedXYCoordinates(coordinates);
        for (int i = 0; i < coordinates.size; i += 8) {
            drawer.getBrush().polygon()
                    .addVertex(coordinates.get(i), coordinates.get(i + 1))
                    .addVertex(coordinates.get(i+2), coordinates.get(i + 3))
                    .addVertex(coordinates.get(i+4), coordinates.get(i + 5))
                    .addVertex(coordinates.get(i+6), coordinates.get(i + 7))
                    .color(Color.PINK)
                    .draw();
        }

to draw each quad, the coordinates are all there, just not really in the expected arrangement.
I also just realised that you may actually want the enclosing polygon vertices, not the triangles/quads making it up (I also realised this in my earlier comments but apparently forgot). This is a bit more complex, as the drawn vertices don't in general form a polygon, only in eg this case of a continuous path.
I wonder if it would make sense to add some methods to this new brush/pen API I added (eg the code above), so you instead of calling draw() could do something like
drawer.getPen().polyLine().vertices(points).extractVertices(myFloatArray);

which maybe internally just uses a Drawing, but at least would know what to do with the vertices based on the shape. Or at that point maybe it just makes sense to fully implement it and allow the user to set a texture to repeat.
That's a fair bit more work, and I'm not sure the best way to do it. If you want for now you could try to calculate the polygon vertices from the coordinates returned by the Drawing, but the calculation would need to be specific for the exact thing you drew (eg path with pointy join).

I think sorting the vertices in a proper oriented polygon is nearly impossible.
I managed to modify your path code() to create vertices in a way that I can use them in RepeateablePolygonSprite. I'll try to add rounded joints next.
Maybe this is helpful when you add something like this to shapedrawer. In the meantime it would be helpful if you could made the Joiner class public.

I have now code that creates the vertices needed for a path now see here. I can also create rounded corners.
I dropped the idea of using a RepeateablePolygonSprite and just use a PolygonSprite with a Texture set to repeat. RepeatablePolygonSprite only works in reliable way for convex polygons which most of my paths aren't.
Is this method suitable for shapedrawer? If so where should it go?


closure-size: Qt 5 and KDE 5

I'm making this a pull request against the closure-size branch so I can get some code review before merging it; it's a very big patch set. All the Qt 5 packages take advantage of closure size reductions now, to great effect. I wanted to get all those changes done because they cause mass rebuilds. I also fixed CMake with respect to the multiple outputs feature. Some of the KDE packages may not be taking best advantage multiple outputs yet, especially ones that still use Qt 4, but making changes to "leaf" packages in the dependency tree later isn't a big deal. Mostly, I just want to get this merged before there are more breaking changes! :smile:
Testing performed: nox-review and running my system from the reduced-closure Plasma desktop.
/cc @vcunat

Pushed. I read mainly the cmake and qtbase changes, and they do look good. My KDE 5 packages also seem to still work fine. The total space reduction in my case is small, probably because of various leaf packages still pulling the dev stuff in.


mikrotik addon

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version):
0.47.1
Python release (python3 --version):
Python 3.4.2
Component/platform:
Mikrotik
Description of problem:
Error in logfile:
2017-06-25 23:48:55 ERROR (MainThread) [homeassistant.components.device_tracker] Error setting up platform mikrotik
Traceback (most recent call last):
  File "/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/device_tracker/__init__.py", line 151, in async_setup_platform
    platform.get_scanner, hass, {DOMAIN: p_config})
  File "/usr/lib/python3.4/asyncio/futures.py", line 388, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/lib/python3.4/asyncio/tasks.py", line 286, in _wakeup
    value = future.result()
  File "/usr/lib/python3.4/asyncio/futures.py", line 277, in result
    raise self._exception
  File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/device_tracker/mikrotik.py", line 41, in get_scanner
    scanner = MikrotikScanner(config[DOMAIN])
  File "/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/device_tracker/mikrotik.py", line 71, in __init__
    self._update_info()
  File "/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/util/__init__.py", line 303, in wrapper
    result = method(*args, **kwargs)
  File "/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/components/device_tracker/mikrotik.py", line 142, in _update_info
    cmd='/interface/wireless/registration-table/getall'
  File "/home/homeassistant/.homeassistant/deps/librouteros/api.py", line 80, in __call__
    return self._readResponse()
  File "/home/homeassistant/.homeassistant/deps/librouteros/api.py", line 103, in _readResponse
    reply_word, words = self._readSentence()
  File "/home/homeassistant/.homeassistant/deps/librouteros/api.py", line 89, in _readSentence
    words = dict(self.parseWord(word) for word in words)
  File "/home/homeassistant/.homeassistant/deps/librouteros/api.py", line 89, in <genexpr>
    words = dict(self.parseWord(word) for word in words)
  File "/home/homeassistant/.homeassistant/deps/librouteros/api.py", line 34, in parseWord
    _, key, value = word.split('=', 2)
ValueError: need more than 1 value to unpack

Expected:
I expect no error.
Problem-relevant configuration.yaml entries and steps to reproduce:
device_tracker:
  - platform: mikrotik
    host: <IP_ADDRESS>
    username: Username
    password: Pa$$w0rd

Traceback (if applicable):

Additional info:

Are you able to connect to your device manually? Eg. (inside your venv if present)
$ python3
[...]
>>> from librouteros import connect
>>> api = connect(host='192.168.X.X', username='admin', password='abc')
>>> api(cmd='/interface/print', stats=True)

Same issue here.
And yes i can connect to device manually

Mikrotik model: RB3011UiAS-RM
This model does not have Wireless card and by default wireless package doesn't exist.
After manually installing wireless package on Mikrotik all working without any errors
Pls fix that

Same issue on mine config. I'll check when it occurs again.

Issue in dependency: https://github.com/luqasz/librouteros/issues/12


Update crowbarp2 CM config

During scale testing, Crowbar VM got additional CPU cores.
This change is there to keep the repo in sync with reality.

 Update scale cloud to latest bits and use SAP node distribution


Cannot deploy with sst >= 0.0.366

Currently on 0.0.364 and cannot upgrade any further. To upgrade, I set version: "0.0.366" in my sst config and run sst upgrade 0.0.366 which works fine. Any other command (dev, deploy, refresh etc.) fails with an error. Here's the full logs from sst deploy --verbose (v0.0.366):
❯ sst deploy --verbose
time=2024-05-17T23:16:18.062+01:00 level=INFO msg="checking for pulumi" path="/Users/ernest/Library/Application Support/sst/bin/pulumi"
time=2024-05-17T23:16:18.071+01:00 level=INFO msg="pulumi install"
j⠧ Updating dependencies...time=2024-05-17T23:16:26.874+01:00 level=INFO msg="checking for bun" path="/Users/ernest/Library/Application Support/sst/bin/bun"
time=2024-05-17T23:16:26.884+01:00 level=INFO msg="initializing project" version=0.0.366
time=2024-05-17T23:16:26.884+01:00 level=INFO msg="esbuild building"
time=2024-05-17T23:16:26.887+01:00 level=INFO msg="esbuild built" outfile="/Users/ernest/Downloads/js/ion-cf-dev-issue-main copy/.sst/eval/eval-1715984186884.mjs"
time=2024-05-17T23:16:26.887+01:00 level=INFO msg="evaluating config"
time=2024-05-17T23:16:26.924+01:00 level=INFO msg="config evaluated"
time=2024-05-17T23:16:26.924+01:00 level=INFO msg="checking platform"
time=2024-05-17T23:16:26.924+01:00 level=INFO msg="checking provider" name=cloudflare version=latest compare=latest
time=2024-05-17T23:16:27.915+01:00 level=INFO msg="cloudflare account selected" account=cb3c4a1a5ed6634f54511f1100ce874b
time=2024-05-17T23:16:28.325+01:00 level=INFO msg="found existing bucket" bucket=sst-state
time=2024-05-17T23:16:28.325+01:00 level=INFO msg="loaded config" app=ion stage=ernest
SST ❍ ion 0.0.366 ready!

➜ App: ion
   Stage: ernest

time=2024-05-17T23:16:28.325+01:00 level=INFO msg="running stack command" cmd=up
~ Deploying

time=2024-05-17T23:16:28.325+01:00 level=INFO msg="INFO locking app=ion stage=ernest"
time=2024-05-17T23:16:28.325+01:00 level=INFO msg="INFO getting data key=lock app=ion stage=ernest"
time=2024-05-17T23:16:28.641+01:00 level=INFO msg="INFO putting data key=lock app=ion stage=ernest"
time=2024-05-17T23:16:29.055+01:00 level=INFO msg="INFO pulling state app=ion stage=ernest out=\"/Users/ernest/Downloads/js/ion-cf-dev-issue-main copy/.sst/.pulumi/stacks/ion/ernest.json\""
time=2024-05-17T23:16:29.452+01:00 level=INFO msg="INFO getting passphrase app=ion stage=ernest"
time=2024-05-17T23:16:29.859+01:00 level=INFO msg="INFO getting data key=secret app=ion stage=ernest"
time=2024-05-17T23:16:30.167+01:00 level=INFO msg="esbuild building"
time=2024-05-17T23:16:30.198+01:00 level=INFO msg="esbuild built" outfile="/Users/ernest/Downloads/js/ion-cf-dev-issue-main copy/.sst/platform/eval/eval-1715984190167.mjs"
time=2024-05-17T23:16:30.199+01:00 level=INFO msg="tracked files"
time=2024-05-17T23:16:31.002+01:00 level=INFO msg="INFO pushing state app=ion stage=ernest from=\"/Users/ernest/Downloads/js/ion-cf-dev-issue-main copy/.sst/.pulumi/stacks/ion/ernest.json\""
time=2024-05-17T23:16:31.498+01:00 level=INFO msg="INFO unlocking app=ion stage=ernest"
time=2024-05-17T23:16:31.909+01:00 level=ERROR msg="exited with error" err="failed to run `pulumi version`: signal: killed"
× Unexpected error occurred. Please check the logs or run with --verbose for more details.

The same error for every version >= 0.0.364 and on every project. I'm on an M1 Mac and installed sst with the bash command on the ion home page.

can you try again with 0.0.380

Can confirm it's working on 0.0.380 👍🏾


ENH: multiple small improvements to scipy.stats.circmean

Is your feature request related to a problem? Please describe.
When working on the MLE of vonmises distribution, I came across the circmean function and had to read the source code to find out what exactly it’s doing. A few improvements could make it easier to use the function.
Describe the solution you'd like.
The improvements I’d suggest are:

The documentation can be clearer. Especially the notions of “samples”, “boundary”, and “sample range” are really confusing.

Deprecate the high and low arguments. They are there for radian/degree conversion (which explains why high comes before low), but such conversion should be handled by the user. (Or otherwise all trigonometric functions would accept high and low.) The doc already provides a clear example of how to do the radian/degree conversion.

Rename the first argument to a and make it a position-only argument. The naming is consistent with e.g. np.mean. And making it position-only (a breaking change) ensures callers don’t reference it by name.

Before high and low are fully removed, rearrange the computation code so that the conversions don’t bring unnecessary numerical error.

Describe alternatives you've considered.
No response
Additional context (e.g. screenshots, GIFs)
No response

Documentation improvements are always welcome.
I think here high and low are also for handling situations where data only live on the half circle, for example. So not sure if we should remove them.
samples is not the best possible name likely but not sure if a is better. I guess that whoever uses the function will assume that the first argument is the data array they want to compute the circular mean. But if it confused you, I might be wrong. After all, users always surprise us devs ;).
What would the improved code look like? Could you provide a small example where another ordering of the operations reduces the error?

I’ll make separate PRs for (1) and (4). (4) is straightforward and I’d simply rewrite a*b/b as a*(b/b). For (1) I’d say high and low correspond to the value of complete angle and zero angle, respectively, possibly with a shift. I’d also mention what the function returns if the points are symmetric and the resultant vector is zero.
For (2), I don’t mean that scaling is not useful, but that they should be handled outside of circmean. For the case where data points live on the half circle, say between 0 to 180 degrees, is the circmean of 45 degrees and 135 degrees supposed to be 90 degrees or mathematically undefined?

An example where two angles are symmetric numerically:
scipy.stats.circmean([0.32202300504740655,3.4636156586372]) returns 0.

A related corner case is that scipy.stats.circstd([0]) returns -0.0. This usually has no impact but if someone writes 1/circstd(…) there’s a chance the wrong sign gets propagated. So might worth fixing.


Add Vercel routes for public write API

Now you can POST /api/v0/markets to create a market and POST /api/v0/bets to make a bet. These routes will just forward your request to the relevant cloud function and do zero intelligent work on their own.

This looks super, super cool! I'm going to ask @sipec to be the main reviewer on this, so that we spread out knowledge on how the API works a bit more.
Also, could you document how the write API will work? For this PR, just the parameters etc that will be used to create/bet on markets. Later ofc we'll want to publish a full "how to use the Manifold Write API" documentation (eg where to get token, how to form requests, ideally code snippets you can run in Javascript and Python)

Also, could you document how the write API will work? For this PR, just the parameters etc that will be used to create/bet on markets. Later ofc we'll want to publish a full "how to use the Manifold Write API" documentation (eg where to get token, how to form requests, ideally code snippets you can run in Javascript and Python)

Of course, I am just working through it gradually. Currently I feel that all the "general API machinery" is good to go, so next I want to revisit the specific parameters and outputs of our existing APIs to make sure they make sense, and then I will write documentation and we can announce it.

@sipec any comment?


CLIMATE-886 Updating front-end dependencies.

Merged build triggered. Test Failed.

I don't know how the first commit got in the way here. Anyways just try out  the package.json once and I will close this PR.

By the way in regards to the pydap tests failing: this is not on our end, but something the OPeNDAP folks need to fix. I have been in contact with their support team.

#dynamite

@Omkar20895 this is looking good. If you could just add the data to the README then I am +1 to merge into master branch.

Actually, hold off on the merge. This is not right.

Hi @Omkar20895 please merge the following into your remote branch and then test it out.
https://github.com/Omkar20895/climate/pull/1
Thanks

Merged build triggered. Test Failed.

You've not addressed the README issue in the build. Also can you remove the PO.DAAC stuff?

I haven't tested the branch yet, I am testing it now. I merged your PR just now into my branch and hence it appeared here.

@Omkar20895 can you delete the node dependencies folder, try again with the fresh PR applied and post your output here?

@lewismc I am on a vacation so I won't be able to do it, I am gonna update this as soon as I return to my university this sunday. Thanks.

@lewismc I tried this PR out in a clean virtualenv and I still got the same errors. I think we need to take others opinion if everything is working fine in your system with this PR.
@agoodm @jarifibrahim can you please try this out? Thanks :)

@Omkar20895 How are you creating the virtualenv? The podaacpy related errors that are being shown in the CI log output were fixed in 1.6.0 which is now on conda-forge. Are you certain that you are using this version in your testing?

@agoodm this is not regarding travis build this is regarding the node dependencies. Please correct me if I am wrong.

@Omkar20895 have you tried deleting the npm-generated material in the ocw-ui directory and trying again?

@lewismc yes I did. Just to be sure node dependencies is the only folder that npm install generates right?? If that's right then I did delete that folder and tried the patch.

@Omkar20895 npm install would create a folder node_modules and install all the dependencies in it. If you do npm install -g then the dependencies are installed globally.
I tried your PR and got the following errors
npm WARN deprecated<EMAIL_ADDRESS>graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to<EMAIL_ADDRESS>as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>the module is now available as 'css-select'
npm WARN deprecated<EMAIL_ADDRESS>the module is now available as 'css-what'
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated<EMAIL_ADDRESS>ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
npm WARN deprecated<EMAIL_ADDRESS>this package has been reintegrated into npm and is now out of date with respect to npm
npm WARN prefer global<EMAIL_ADDRESS>should be installed with -g
npm WARN prefer global<EMAIL_ADDRESS>should be installed with -g

+-- UNMET PEER DEPENDENCY jasmine-core@*

npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN<EMAIL_ADDRESS>requires a peer of jasmine-core@* but none was installed.

Btw, npm-check-update  package might be useful in future.

@jarifibrahim yes exactly, I got the same errors and I mentioned the same earlier, according to my understanding the errors are not caused due to our part of the code, I have updated every module to the latest version.

I have a theory that I have learnt from my digging up on this kind of issues, the modules that we are using in turn have unmet dependencies and their respective owners need t update them, I am not sure regarding this, please correct me if I am wrong. :)

Thats exactly right. There is nothing we can do about the deprecated transitive dependencies. Please merge in master branch.
One thing is that we need to run the tests as well
https://github.com/apache/climate/tree/master/ocw-ui/frontend/test
Can someone please open a new issue for this?

Okay on it, Can you let me know what you wanted to add into the READme? I did not get that part. Thanks.

Merged build triggered. Test Failed.

@Omkar20895
http://stackoverflow.com/questions/18057466/npm-how-to-fix-no-readme-data
Please squash your commits if you could as well. Thanks, appreciated.

Merged build triggered. Test Failed.

@lewismc I have replicated the README in the root directory of climate and added to climate/ocw-ui/frontend. The warning was raised because npm was searching for readme data in ocw-ui. I also added a field readme in package.json, If this is alright then let me know and I will squash the commits and merge into master. Thanks :)

+1 please squash merge. Thanks
On Sun, Nov 13, 2016 at 3:57 AM, Omkar<EMAIL_ADDRESS>wrote:

@lewismc https://github.com/lewismc I have replicated the README in the
root directory of climate and added to climate/ocw-ui/frontend. The warning
was raised because npm was searching for readme data in ocw-ui. I also
added a field readme in package.json, If this is alright then let me know
and I will squash the commits and merge into master. Thanks :)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/climate/pull/418#issuecomment-260181758, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABHJl6jhCRGWzoirUauToSFgkum_cNpwks5q9vs2gaJpZM4KiyTx
.

--
Lewis
Dr. Lewis J. McGibbney Ph.D, B.Sc
Director, MCMA Associates
Phone: +1(626)498-3090
Skype: lewis.john.mcgibbney
Email<EMAIL_ADDRESS>

Merged build triggered. Test Failed.


Best way to write tests with Inversify?

Is it sufficient to write functional tests with Inversify + type-graphql like so:
  // ...

  let schema;

  beforeEach(() => {
    jest.clearAllMocks();
    container.snapshot();

    schema = buildSchema({
      resolvers: [/* all my resolvers */]
    });
  });

  afterEach(() => {
    container.restore();
  });

  // ... tests here

I'm running into weird issues where I query the GraphQL with the created schema, in my resolver, It's returning the correct object, but in my test, returns GraphQL errors & null data which makes no sense...

you can build the schema once, there's no need to clear it each time

It's returning the correct object, but in my test, returns GraphQL errors & null data which makes no sense...

Hard to say what is a problem, I would need a simple reproduction repo as I've never used inversify.

Closing for housekeeping purposes as the issue looks abandoned 🔒


WIP change greeting message

/run test-keeper work-in-progress

/run all

/run test-keeper

/run all

/run test-keeper

/run test-keeper

/run all

/ok-without-tests

/ok-without-tests

/ok-without-tests

Ike Plugins (test-keeper)
Thank you @dipak-pwr for this contribution!

It appears that no tests have been added or updated in this PR.
Automated tests give us confidence in shipping reliable software. Please add some as part of this change.
If you are an admin or the reviewer of this PR and you are sure that no test is needed then you can use the command /ok-without-tests as a comment to make the status green.
For more information please head over to official documentation. You can find there how to configure the plugin - for example exclude certain file types so if PR contains only them it won't be checked.

Ike Plugins (test-keeper)
Thank you @dipak-pwr for this contribution!

It appears that no tests have been added or updated in this PR.
Automated tests give us confidence in shipping reliable software. Please add some as part of this change.
If you are an admin or the reviewer of this PR and you are sure that no test is needed then you can use the command /ok-without-tests as a comment to make the status green.
For more information please head over to official documentation. You can find there how to configure the plugin - for example exclude certain file types so if PR contains only them it won't be checked.

/run test-keeper

/ok-without-tests

/run test-keeper

/run work-in-progress

/run work-in-progress


fixes #361 - use $event.target.valueAsNumber for number/range inputs,…

fixes #361 - use $event.target.valueAsNumber for number/range inputs, debounce formatValueToModel for number/range, removed formatValueToField
Number inputs now support 10e10 formats being typed in, and stores the evaluated value of 10e10<PHONE_NUMBER>00) on the model.

moved debouncedFormatDateTime to abstractField and renamed to debounceFormatFunc
create a debounceFormatFunc for number/range inputs, as well as date/datetime/datetime-local
changed @input to use onInput handler which checks for number/range and uses $event.target.valueAsNumber per @YgamiLight
set value to NaN if !isNumber(value) (NOTE: NaN is represented as "null" in JSON though as JSON does not support NaN/Infinity)
set all inputType checks and uses to use inputType.toLowerCase(), recommend doing this for all fields
created DEBOUNCE_FORMAT_MS constants in inputField.vue, set to default of 1000 ... recommend turning this into a standard schema option for all fields
wrapped one-liner conditionals with {} (just looks cleaner)

@zoul0813 You can merge it if it's done.

In IE11, valueAsNumber return NaN for any value.
In Edge, there is also problem with it.
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/669685/#error
I'm going to make a PR

@lionel-bijaoui  Thanks, you really did a great job!


slide change events

need to update global variables when swiper slide changes

After digging into type definitions and SwiperAPI Events,
Finally found a way to achieve it using the following code:
import { Swiper } from 'swiper';
import { SwiperOptions } from 'swiper/types/swiper-options';
   config: SwiperOptions = {
    pagination: { el: '.swiper-pagination', clickable: true },
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },
    spaceBetween: 30,
    on: {
      slideChange: (view: Swiper) => {
        setTimeout(() => {
          console.log(
            Object.values(view.slides).find((element: HTMLImageElement) => {
              if (element.classList.contains('swiper-slide-active')) {
                console.log(element.src);
              }
            })
          );
        }, 1);
      },
    },
  };

### NOTE 1
Please use the **setTimeOut** because there is a problem - not sure if this is intended - with this event, which fires on the same time you swip, so the result on console will be the last active not the currently active, to solve this I added setTimeOut to have a little delay and it works well now.
### NOTE 2
the active index doesn't always points to the right index when you open the last or the middle image, it counts from 0 even if you opens the middle image, so to fix this search for the 'swiper-slide-active' class which is unique and get it's element id, src, innerHtml, etc... then loop inside the source array and find the index of image from that (e.g. id)

After digging into type definitions and SwiperAPI Events,
Finally found a way to achieve it like in that GIF using the following code:
(supports Thumbs navigations, Arrow Navigations)

Full Example
Make sure you have the right imports
import { Swiper } from 'swiper';
import { SwiperOptions } from 'swiper/types/swiper-options';

config: SwiperOptions = {
   pagination: { el: '.swiper-pagination', clickable: true },
   navigation: {
     nextEl: '.swiper-button-next',
     prevEl: '.swiper-button-prev',
   },

   spaceBetween: 30,
  // Here we GO!
   on: {
     slideChange: (view: Swiper) => {
       setTimeout(() => {
         const slidesView = Object.values(view.slides);
         console.log('View has been changed');
         for (const iterator of slidesView) {
           const element = iterator as HTMLImageElement;
           if (element.classList.contains('swiper-slide-active')) {
             const x = this.userService.profileUser.photos.find(
               (image) => image.url === element.src
             );
            this.data = {
               url: x.url,
               id: x.id,
               isMain: x.isMain,
             };
             console.log('Current image is\n' + element.src);
           }
         }
       }, 1);
     },

     init: (view: Swiper) => {
       const index = this.userService.profileUser.photos.findIndex(
         (image) => image.url === this.data.url
       );
       const imageProps = this.userService.profileUser.photos[index];
       const slidesView = Object.values(view.slides);
       for (let pointer = 0; pointer < slidesView.length; pointer++) {
         const element = slidesView[pointer] as HTMLImageElement;
         if (element.src === imageProps.url) {
           view.activeIndex = pointer;
          // current active index is `pointer` but it shows the first image, to fix this
           // must be called those to update the view
           if (pointer === slidesView.length - 1) {
                // slide to pointer + 1
             view.slideNext(0);
             // do not slide back because this is the last image, it will load the previous image which is pointer -1
           } else {
             view.slideNext(0);
             view.slidePrev(0);
           }
           // slide back to the original clicked image
           // happens in less than 0ms
           // increase time a bit to see swaping if you want
         }
       }
     },
   },
 };

Notes
small example
import { Swiper } from 'swiper';
import { SwiperOptions } from 'swiper/types/swiper-options';
   config: SwiperOptions = {
    pagination: { el: '.swiper-pagination', clickable: true },
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },
    spaceBetween: 30,
    // Here we GO!
    on: {
      slideChange: (view: Swiper) => {
        setTimeout(() => {
          console.log(
            Object.values(view.slides).find((element: HTMLImageElement) => {
              if (element.classList.contains('swiper-slide-active')) {
                console.log(element.src);
              }
            })
          );
        }, 1);
      },
    },
  };

### NOTE 1
Please use the **setTimeOut** because there is a problem - not sure if this is intended - with slideChange event, which fires on the same time you swip, so the result on console will be the last active not the currently active, to solve this I added setTimeOut to have a little delay and it works well now.
### NOTE 2
the active index doesn't always points to the right index when you open the last or the middle image, it counts from 0 even if you opens the middle image, so to fix this search for the 'swiper-slide-active' class which is unique and get it's element id, src, innerHtml, etc... then loop inside the source array and find the index of image from that (e.g. id), so you can later do this:
on : {
   // previous
   init : (view: Swiper) =>{
      view.slides[0].append(myelement);
      view.activeIndex = myindex;

    }
}

need to update global variables when swiper slide changes

After digging into type definitions and SwiperAPI Events,
Finally found a way to achieve it like in that GIF using the following code:
(supports Thumbs navigations, Arrow Navigations)

Full Example
Make sure you have the right imports
import { Swiper } from 'swiper';
import { SwiperOptions } from 'swiper/types/swiper-options';

config: SwiperOptions = {
   pagination: { el: '.swiper-pagination', clickable: true },
   navigation: {
     nextEl: '.swiper-button-next',
     prevEl: '.swiper-button-prev',
   },

   spaceBetween: 30,
  // Here we GO!
   on: {
     slideChange: (view: Swiper) => {
       setTimeout(() => {
         const slidesView = Object.values(view.slides);
         console.log('View has been changed');
         for (const iterator of slidesView) {
           const element = iterator as HTMLImageElement;
           if (element.classList.contains('swiper-slide-active')) {
             const x = this.userService.profileUser.photos.find(
               (image) => image.url === element.src
             );
            this.data = {
               url: x.url,
               id: x.id,
               isMain: x.isMain,
             };
             console.log('Current image is\n' + element.src);
           }
         }
       }, 1);
     },

     init: (view: Swiper) => {
       const index = this.userService.profileUser.photos.findIndex(
         (image) => image.url === this.data.url
       );
       const imageProps = this.userService.profileUser.photos[index];
       const slidesView = Object.values(view.slides);
       for (let pointer = 0; pointer < slidesView.length; pointer++) {
         const element = slidesView[pointer] as HTMLImageElement;
         if (element.src === imageProps.url) {
           view.activeIndex = pointer;
          // current active index is `pointer` but it shows the first image, to fix this
           // must be called those to update the view
           if (pointer === slidesView.length - 1) {
                // slide to pointer + 1
             view.slideNext(0);
             // do not slide back because this is the last image, it will load the previous image which is pointer -1
           } else {
             view.slideNext(0);
             view.slidePrev(0);
           }
           // slide back to the original clicked image
           // happens in less than 0ms
           // increase time a bit to see swaping if you want
         }
       }
     },
   },
 };

Notes
small example
import { Swiper } from 'swiper';
import { SwiperOptions } from 'swiper/types/swiper-options';
   config: SwiperOptions = {
    pagination: { el: '.swiper-pagination', clickable: true },
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },
    spaceBetween: 30,
    // Here we GO!
    on: {
      slideChange: (view: Swiper) => {
        setTimeout(() => {
          console.log(
            Object.values(view.slides).find((element: HTMLImageElement) => {
              if (element.classList.contains('swiper-slide-active')) {
                console.log(element.src);
              }
            })
          );
        }, 1);
      },
    },
  };

### NOTE 1
Please use the **setTimeOut** because there is a problem - not sure if this is intended - with slideChange event, which fires on the same time you swip, so the result on console will be the last active not the currently active, to solve this I added setTimeOut to have a little delay and it works well now.
### NOTE 2
the active index doesn't always points to the right index when you open the last or the middle image, it counts from 0 even if you opens the middle image, so to fix this search for the 'swiper-slide-active' class which is unique and get it's element id, src, innerHtml, etc... then loop inside the source array and find the index of image from that (e.g. id), so you can later do this:
on : {
   // previous
   init : (view: Swiper) =>{
      view.slides[0].append(myelement);
      view.activeIndex = myindex;

    }
}

@urjathakkar
After digging into type definitions and SwiperAPI Events,
Finally found a way to achieve it like in that GIF using the following code:
(supports Thumbs navigations, Arrow Navigations)

Full Example
Make sure you have the right imports
import { Swiper } from 'swiper';
import { SwiperOptions } from 'swiper/types/swiper-options';

config: SwiperOptions = {
   pagination: { el: '.swiper-pagination', clickable: true },
   navigation: {
     nextEl: '.swiper-button-next',
     prevEl: '.swiper-button-prev',
   },

   spaceBetween: 30,
  // Here we GO!
   on: {
     slideChange: (view: Swiper) => {
       setTimeout(() => {
         const slidesView = Object.values(view.slides);
         console.log('View has been changed');
         for (const iterator of slidesView) {
           const element = iterator as HTMLImageElement;
           if (element.classList.contains('swiper-slide-active')) {
             const x = this.userService.profileUser.photos.find(
               (image) => image.url === element.src
             );
            this.data = {
               url: x.url,
               id: x.id,
               isMain: x.isMain,
             };
             console.log('Current image is\n' + element.src);
           }
         }
       }, 1);
     },

     init: (view: Swiper) => {
       const index = this.userService.profileUser.photos.findIndex(
         (image) => image.url === this.data.url
       );
       const imageProps = this.userService.profileUser.photos[index];
       const slidesView = Object.values(view.slides);
       for (let pointer = 0; pointer < slidesView.length; pointer++) {
         const element = slidesView[pointer] as HTMLImageElement;
         if (element.src === imageProps.url) {
           view.activeIndex = pointer;
          // current active index is `pointer` but it shows the first image, to fix this
           // must be called those to update the view
           if (pointer === slidesView.length - 1) {
                // slide to pointer + 1
             view.slideNext(0);
             // do not slide back because this is the last image, it will load the previous image which is pointer -1
           } else {
             view.slideNext(0);
             view.slidePrev(0);
           }
           // slide back to the original clicked image
           // happens in less than 0ms
           // increase time a bit to see swaping if you want
         }
       }
     },
   },
 };

Notes
small example
import { Swiper } from 'swiper';
import { SwiperOptions } from 'swiper/types/swiper-options';
   config: SwiperOptions = {
    pagination: { el: '.swiper-pagination', clickable: true },
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },
    spaceBetween: 30,
    // Here we GO!
    on: {
      slideChange: (view: Swiper) => {
        setTimeout(() => {
          console.log(
            Object.values(view.slides).find((element: HTMLImageElement) => {
              if (element.classList.contains('swiper-slide-active')) {
                console.log(element.src);
              }
            })
          );
        }, 1);
      },
    },
  };

### NOTE 1
Please use the **setTimeOut** because there is a problem - not sure if this is intended - with slideChange event, which fires on the same time you swip, so the result on console will be the last active not the currently active, to solve this I added setTimeOut to have a little delay and it works well now.
### NOTE 2
the active index doesn't always points to the right index when you open the last or the middle image, it counts from 0 even if you opens the middle image, so to fix this search for the 'swiper-slide-active' class which is unique and get it's element id, src, innerHtml, etc... then loop inside the source array and find the index of image from that (e.g. id), so you can later do this:
on : {
   // previous
   init : (view: Swiper) =>{
      view.slides[0].append(myelement);
      view.activeIndex = myindex;

    }
}