How to increase memory for worker?

Organization Name:HIT

Short summary about the issue/question:How to expand the memory of a worker
Brief what process you are following:
When I first deployed, the memory of each worker was 128G, but later found that the memory was not enough, so I increased the physical memory of each worker to 512G, after modifying layout.yaml, I restarted all cluster services, But on the webportal I found that the cluster resources have not changed and the SKU size has not changed, what should I do, please help me, thank you!

expand the memory of a worker

How to reproduce it:

OpenPAI Environment:

OpenPAI version: v1.8.0
Cloud provider or hardware configuration:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Hardware (e.g. core number, memory size, storage size, GPU type etc.):
Others:

Anything else we need to know:

I am a user of OpenPAI, I think you can try to change hivedscheduler config, sku type is controled by it, refer to https://github.com/microsoft/hivedscheduler/blob/master/doc/user-manual.md

I am a user of OpenPAI, I think you can try to change hivedscheduler config, sku type is controled by it, refer to https://github.com/microsoft/hivedscheduler/blob/master/doc/user-manual.md

Thank you very much! I changed the hivedscheduler configuration in services-configuration.yaml and it took effect. Thanks!

glad to here that


Move to an organization account?

This is a fantastic library, and I appreciate your work merging fixes and updating the codebase.
I asked @antirez in antirez/linenoise#155 if he would be willing to consider moving this to an organization account.  If so, would you be amenable to pushing your fixes upstream?  I would be delighted to host linenoise in https://github.com/interpreters if you or @antirez didn't want to create your own organization.  Access rights and everything stay the same, plus other people can be granted write access.
Thanks for considering this request!

Yes, would be very happy to merge upstream. I think antirez is busy with other stuff at the moment but I aimed to keep everything (except the UTF8 code) in the original spirit of linenoise hopefully it can be upstreamed.
Appreciate your interest.


need to handle the case where there are multiple instances of a wallet connected.

I had two wallets connected and only one receives the messages causing confusion. I think I will either print a warning that there is another instance connected or kick the old user if a new connection appears.

Chris, if you kick out one of the wallets, it will reconnect in a moment. The two wallets will keeps kicking each other out.
You can print the appropriate connection error. GUI will display it and close the wallet.

Yes will do. I will kick out the old connection.
On Tue, Sep 3, 2019, 10:40 AM bayk<EMAIL_ADDRESS>wrote:

Chris, if you kick out one of the wallets, it will reconnect in a moment.
The two wallets will keeps kicking each other out.
You can print the appropriate connection error. GUI will display it and
close the wallet.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub
https://github.com/mwcproject/mwc-qt-wallet/issues/88?email_source=notifications&email_token=ABXFVN3354MTCMYZKRIRK6LQHZZMFA5CNFSM4IS72YB2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5YNPGA#issuecomment-527488920,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABXFVN45L5J43JDIARKTGTLQHZZMFANCNFSM4IS72YBQ
.

This is implemented. When a second instance of the wallet connects, the first instance will be disconnected and get a message that looks like this:
wallet713>
ERROR: new login detected. mwcmqs listener will stop!
mwcmqs listener [xmgehLCvsHXdoAenuUARvQGMPkzJdm5Qb1wTQVi2WnRaSjC1CWgH] stopped
I added ran a build with the latest qt and it works with this, but you can handle this error message now and prompt the user if this occurs.

Great, mwc713 will stop listener by itself. So I just need to show the message to the user. I think no more action will be needed.


v0.12.0 release for linux/amd64 or linux/arm64

Is there an estimate of when versions will be released for linux/amd64 or linux/arm64 ?
And why there is only s390X release for now?

After disabling Buildkit the build works. See PR #248

@hurzelpurzel What does it mean? where can I find an image for  Linux/amd64 or Linux/arm64 ?
should I build it by myself?

I just want to inform you, that I create a Pull Request for a helm chart and that triggered automatically a test build, that pass the build process in Drone after dieabling the "Buildkit" flag in the buildscripts. I'm not able to fix the release but I think the build failure is caused  by a change in the build container that results in an missing docker component. I just want to share that, but I think we all have to wait until the maintainers will fix the release. Sorry.

This can be closed v0.13.0 was released


WIP: Add XPath support

Adds support for using a subset of the XPath syntax supported by ElementTree when defining processors. Resolves #2.

Codecov Report

Merging #5 into master will decrease coverage by 0.08%.
The diff coverage is 98.07%.

@@            Coverage Diff            @@
##           master      #5      +/-   ##
=========================================
- Coverage   99.79%   99.7%   -0.09%
=========================================
  Files           8       9       +1
  Lines         979    1031      +52
=========================================
+ Hits          977    1028      +51
- Misses          2       3       +1

Impacted Files
Coverage Δ

tests/test_xpath.py
98.07% <98.07%> (ø)

Continue to review full report at Codecov.

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


https request identification

When I am sending request to HTTPS page through proxy-chain with prepareRequestFunction there is no useful info about request for identification.
For example if I am opening one HTTPS website two times in a row I want it to be passed through different proxies. But next time when I will open this website two times I need it to use the same proxies.

Actually, there is no such thing as HTTPS proxy. HTTPS traffic goes over a normal HTTP proxy using the HTTP CONNECT tunnel. Have you tried using http://username:password@proxy.example.com:3128 ?

Thanks for your answer, but I'm solve my previous problem with https://github.com/sjitech/proxy-login-automator. I've edited my question.

The only parameters you can see in the prepareRequestFunction are: proxy username and password, hostname, port. For example, Apify Proxy uses username to pass configuration settings.
Potentially we could also process headers passed to HTTP CONNECT request, but AFAIK there is no easy way to pass these headers from Chrome.

I'm closing this issue for now, please reopen it if needed.


perf: optimized wpow with comments

solmate v6 has an optimized wpow with comments, downstreamed it here
https://github.com/Rari-Capital/solmate/blob/main/src/utils/FixedPointMathLib.sol

👉 👈  @devtooligan ?


Inactive L badge

[ ] Add it as a tag that HQ-FC can give
[ ] Make it show on x up
[ ] Add it to badges guide
[ ] Unfuck acl so they aren't all linked or whatever
[ ] Make it so that INACTIVE cannot be invited by trainee fc (might as well do the same with nestors without L badge at the same time)
[ ] probably something else i'm missing rn

I've started on the Database restructure.

This issue is mostly resolved. Working on a quality check, and then I will open a PR.


Fix: IOU-Unable to create distance request after deleting finish waypoint, error displayed

Details

https://github.com/Expensify/App/issues/32908
Fixed Issues

$ https://github.com/Expensify/App/issues/32908
PROPOSAL: https://github.com/Expensify/App/issues/32908#issuecomment-1851801714
Tests

Create distance request with 3 waypoints
Goto that created request and remove any waypoint
Save the updated request
Verify it gets saved properly without any error

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

Offline tests

Create distance request with 3 waypoints
Goto that created request and remove any waypoint
Save the updated request
Verify it gets saved properly without any error

QA Steps

Create distance request with 3 waypoints
Goto that created request and remove any waypoint
Save the updated request
Verify it gets saved properly without any error

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

PR Author Checklist

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/14358475/fb45f8e4-2caa-4641-9ea8-63e19d05b40d

Mobile Web - Chrome
https://github.com/Expensify/App/assets/14358475/292be642-35ab-4f6a-a0f8-37b2336b1f61

Mobile Web - Safari
https://github.com/Expensify/App/assets/14358475/2ef38f8f-938b-4239-b857-ed14c8f4c809

Desktop
https://github.com/Expensify/App/assets/14358475/1c01f273-f663-4318-9559-c6a7ee3baccb

iOS
https://github.com/Expensify/App/assets/14358475/3bb154b4-003d-49db-8235-532621015d43

Android
https://github.com/Expensify/App/assets/14358475/6421a6cd-cb94-482f-8b35-3f10d4a3527f

Nice job!

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

🚀 Cherry-picked to staging by https://github.com/luacmartins in version: 1.4.11-20 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Cherry-picked to staging by https://github.com/luacmartins in version: 1.4.11-20 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by https://github.com/Julesssss in version: 1.4.11-25 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


get_values function implementation

It is deprecated functionality in pandas since version 0.25.0 (ref).


fix: cve-2022-41089

:white_check_mark: Build TheIdServer 7.0.2-ci.1+11.build.2848 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/9289ffb7d2 by @aguacongas)


Exporting yaml for stacks should support exporting in v2 format.

Currently, we have support to take in v2 files, but the export yaml only displays it in v1 format.

Without exporting in v2 format, you'll lose certain keys that are new to v2. For example, network_mode and depends_on.

@deniseschannon yml export already had all params in v2 format (I believe I've changed network_mode to network on the export), just "version v2" tag was missing. Please correct me if more stuff are still displayed in "v1 way"

Tested for different keys in v2 format. They are working except for logging key which is tracked in
https://github.com/rancher/rancher/issues/6279


[FEATURE] Migration guide from elasticsearch-py

Is your feature request related to a problem?
I'm migrating from elasticsearch-py to opensearch-py, as I'm sure many customers will be. I'd like a step by step guide to make changing over easy for me, and to make the differences clear.
My specific issue is that I use a fairly standard pattern for providing AWS credentials to Opensearch, and it does not work now I've changed clients. Extracting my client creation code.
from opensearchpy import OpenSearch
from requests_aws4auth import AWS4Auth
import boto3

def get_opensearch_connection() -> OpenSearch:
    region = 'us-west-2'
    service = 'es'
    credentials = boto3.Session().get_credentials()
    awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

    return OpenSearch(
        hosts=[{'host': os.environ['OpensearchEndpoint'], 'port': 443}],
        http_auth=awsauth,
        use_ssl=True,
        verify_certs=True,
    )

This results in the stack trace:
[ERROR] AttributeError: 'AWS4Auth' object has no attribute 'encode'
Traceback (most recent call last):
  File "/var/task/index.py", line 102, in handler
    es = get_opensearch_connection()
  File "/var/task/index.py", line 21, in get_opensearch_connection
    return OpenSearch(
  File "/opt/python/opensearchpy/client/__init__.py", line 188, in __init__
    self.transport = transport_class(_normalize_hosts(hosts), **kwargs)
  File "/opt/python/opensearchpy/transport.py", line 163, in __init__
    self.set_connections(hosts)
  File "/opt/python/opensearchpy/transport.py", line 221, in set_connections
    connections = list(zip(connections, hosts))
  File "/opt/python/opensearchpy/transport.py", line 217, in _create_connection
    return self.connection_class(**kwargs)
  File "/opt/python/opensearchpy/connection/http_urllib3.py", line 150, in __init__
    self.headers.update(urllib3.make_headers(basic_auth=http_auth))
  File "/opt/python/urllib3/util/request.py", line 85, in make_headers
    headers["authorization"] = "Basic " + b64encode(b(basic_auth)).decode("utf-8")
  File "/opt/python/urllib3/packages/six.py", line 687, in b
    return s.encode("latin-1")

The pattern I'm using is the same detailed at https://docs.aws.amazon.com/opensearch-service/latest/developerguide/request-signing.html#request-signing-python using elasticsearch-py.
What solution would you like?
I'd like a step by step migration guide to make changing over easy for me, and to make the differences clear between the two clients.
What alternatives have you considered?
Alternatives would be for opensearch-py to have exact API and feature parity with elasticsearch-py, and for an automated migration tool to be provided.
Do you have any additional context?
No

Hi @SamStephens, a couple minor tweaks and I think you'll be good to go. The big thing is importing RequestsHttpConnection and adding connection_class during client creation:
from opensearchpy import OpenSearch, RequestsHttpConnection
from requests_aws4auth import AWS4Auth
import boto3

host = '' # For example, my-test-domain.us-east-1.es.amazonaws.com
port = 443
region = '' # e.g. us-west-1

service = 'es'
credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)

client = OpenSearch(
    hosts = [{'host': host, 'port': port}],
    http_compress = True, # enables gzip compression for request bodies
    http_auth = awsauth,
    use_ssl = True,
    verify_certs = True,
    connection_class = RequestsHttpConnection
)
# Create an index with non-default settings.
index_name = 'python-test-index'
index_body = {
  'settings': {
    'index': {
      'number_of_shards': 4
    }
  }
}
response = client.indices.create(index_name, body=index_body)
print('\nCreating index:')
print(response)
# Add a document to the index.
document = {
  'title': 'Moneyball',
  'director': 'Bennett Miller',
  'year': '2011'
}
id = '1'
response = client.index(
    index = index_name,
    body = document,
    id = id,
    refresh = True
)
print('\nAdding document:')
print(response)
# Search for the document.
q = 'miller'
query = {
  'size': 5,
  'query': {
    'multi_match': {
      'query': q,
      'fields': ['title^2', 'director']
    }
  }
}
response = client.search(
    body = query,
    index = index_name
)
print('\nSearch results:')
print(response)
# Delete the document.
response = client.delete(
    index = index_name,
    id = id
)
print('\nDeleting document:')
print(response)
# Delete the index.
response = client.indices.delete(
    index = index_name
)
print('\nDeleting index:')
print(response)

When we've done a more "formal" release of the new clients, I'll check out the AWS documentation. Given that legacy Elasticsearch OSS remains an option on the service, there's utility in keeping sample code for the old clients, as well.

This seems like a good example to add to the docs. I will tag this issue as such once I get permission to do so.

@harshavamsi I think this issue remained open because of the discussion about https://docs.aws.amazon.com/opensearch-service/latest/developerguide/request-signing.html#request-signing-python using the legacy Elasticsearch OSS client, but looking at that page now it's been updated to use opensearch-py.
The entire rest of the content of this issue is to do with me missing the RequestsHttpConnection when migrating from the legacy Elasticsearch OSS client to opensearch-py, which I think is simply my mistake, and doesn't warrant a migration guide or anything.
Unless there's anything further you wish to do with this issue, I'd close it.


python3Packages.google_cloud_translate: 1.7.0 -> 2.0.0

Motivation for this change
package was bumped to a broken state, this bumps and fixes it.
Things done

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

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

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

Notify maintainers
cc @
[3 built, 7 copied (2.6 MiB), 0.4 MiB DL]
https://github.com/NixOS/nixpkgs/pull/73894
2 package were built:
python37Packages.google_cloud_translate python38Packages.google_cloud_translate

@GrahamcOfBorg build python37Packages.google_cloud_translate python38Packages.google_cloud_translate

seeing as this is broken on master, I'll merge once ofborg finishes


Fixing build failure due to missing formatting directives

Fixing build failure due to missing formatting directive in glog.Infof call.
The relevant error is as follows:
app/kubemci/pkg/validations/validations.go:186: Verbose.Infof call has arguments but no formatting directives

Example run with the failure: https://gubernator.k8s.io/build/kubernetes-jenkins/pr-logs/pull/GoogleCloudPlatform_k8s-multicluster-ingress/199/pull-kubernetes-multicluster-ingress-test/278/
cc @G-Harmon

/lgtm


Missing Files

I'm trying to build Windows Terminal from command line using VS 2017 on Windows 10 x64 insider, build 18362.86. I kept getting the error below even after installing all the VS 2017 components that have something to do with C++ and .Net. From the error message it seems the build surprisingly involves VS 2019 (which I have installed as well). My expectation is VS 2019 should not be involved as I use VS 2017 command line.  I then decided to install all the components that have something to do with C++ and .Net for VS 2019. I still get the same error message.
My steps for building:

Clone the repo from github
Do git submodule update --init --recursive
Do .\tools\razzle.cmd
Do bcz

What am I missing? The error message is as below:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v150\Microsoft.CppCommon.targets(2128,3): error MSB4019: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\WindowsXaml\v15.0\Microsoft.Windows.UI.Xaml.Cpp.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. [c:\Users\Tembo\Desktop\qnd\cpp\Terminal10\src\cascadia\TerminalSetting\TerminalSettings.vcxproj]

duplicate of #489
Please take a look at our "build problems" megathread.

For the record, I encountered this only when trying to use the razzle script and 'bz' alias to build.  I was able to resolve this by using the "Repair" option for VS2017 in the Visual Studio Installer.


fix: detect IXMZUXBG

Detect logical operators in shell commands; necessary for header injection detection.
This commit also update the evasion suffix used by the cmdline processor.

Looks good to me. Thank you.
How likely are FPs here in your view?

Not very. A match requires one of the known command words, immediately followed by & or |. Not more prone to FP as command word + space IMO.

Thank you. This was just for the record.


POC - Semantic Token upgrade approach

To successfully achieve our goal of launching Dual Branding (theming) across ecommerce digital experiences, we need to follow two strategies: 1. New development utilizes semantic theming tokens and 2. Legacy development is upgraded to semantic theming tokens.
This Spike is to determine the feasibility of a script (or script) that will:

[ ] crawl through existing code and identify use of Auro Components which are out of date enough that they don't support theming
[ ] Look for hard coded colors (prioritize more common ways that colors are defined)
[ ] When a hard coded color is found, comment the potential design tokens it could be replaced with to enable theming

It currently does not seem feasible to automatically make updates to the relevant code, since it will be impossible in many cases to determine which token is appropriate.  The basic idea is to use the script like a pseudo-linter for theming.
For whatever we have deemed feasible above, we also want to assess:

[ ] What is the benefit for other teams in having these theming gaps identified
[ ] What do we foresee as the potential time save for teams (roughly)
[ ] Will this minimize the chance of us needing to innersource (or the time spent innersourcing)
[ ] Can this be used to help us judge theme readiness across the org?

Put in big update to the description based off of today's refinement.


Create chibakoudai

it-chiba.ac.jp is old mail-address.
Student use<EMAIL_ADDRESS>now.
Please add this.

This should be under
lib/domains/jp/chibakoudai/s.txt

In that case

@ymntt Flagging as inactive.


ValueError("No JSON object could be decoded")

Polymorphic Products Shop DEMO:
./manage.py loaddata fixtures/myshop-polymorphic.json
returns:
ValueError("No JSON object could be decoded")
django.core.serializers.base.DeserializationError: Problem installing fixture 'Django/django-shop/example/fixtures/myshop-polymorphic.json': No JSON object could be decoded

remove: "django-shop is running in polymorphic environment"
from file: myshop-polymorphic.json
Helps.


DRY: do not repeat yourself

In order to avoid repeating yourself, I would recommend the following revision or a similar pattern:
    void Console::CheckSuccess(std::function<int()> fn, const char* successMsg, const char* errorMsg) {
        if(!fn()) {
            Console::Log(errorMsg);
            Console::Pause(TRUE); //todo: refactor. This implies you're setting the pause state to true or false, not pausing then deciding to exit based on the param
        } else {
            Console::Log(successMsg);
        }
        std::this_thread::sleep_for(std::chrono::milliseconds(500));
    }

    void Console::MoveWindowWrapper(HWND hWnd, int x, int y, int w, int h, BOOL repaint) {
        constexpr const char* errorMsg = "[ ERROR ]: Failed to move folder window.\n\n";
        constexpr const char* successMsg = "[ INFO ]: Successfully moved folder window.\n\n";
        CheckSuccess([&](){ return MoveWindow(hWnd, x, y, w, h, repaint); }, successMsg, errorMsg);
    }

    void Console::OpenFolders(int folderAmount, int sideSelection[7], const char* folderName[7], const char* folderPath[7], vec2_t& screenSize, vec2_t& folderSize, vec2_t& folderPos) {
        constexpr const char* ofSucMsg = "[ INFO ]: Successfully opened folder window.\n\n";
        constexpr const char* ofErrMsg = "[ ERROR ]: Failed to open folder window.\n\n";
        constexpr const char* ffSucMsg = "[ INFO ]: Successfully found folder window.\n\n";
        constexpr const char* ffErrMsg = "[ ERROR ]: Failed to find folder window.\n\n";
        for (int i = 0; i < folderAmount; i++) {
            Console::CheckSuccess([&](){ return system(folderPath[i]); }, ofSucMsg, ofErrMsg);
            HWND hWnd;
            Console::CheckSuccess([&](){
                hWnd = FindWindowA(NULL, folderName[i]);
                return (int)hWnd;
            }, ffSucMsg, ffErrMsg);

            vec2_t vFolderPosRightSide = { 0, 0 };

            vFolderPosRightSide.x = screenSize.x - folderSize.x;
            vFolderPosRightSide.y = (screenSize.y) - (folderSize.y + 2.f);

            folderPos.x = 0.f;
            folderPos.y = (screenSize.y) - (folderSize.y + 2.f);

            switch (i) {
                case 0:
                    MoveWindowWrapper(hWnd, (int)folderPos.x, (int)folderPos.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                    break;
                case 1:
                    MoveWindowWrapper(hWnd, (int)folderPos.x, (int)folderPos.y, (int)folderSize.x, (int)folderSize.y, TRUE));
                    break;
                case 2:
                    MoveWindowWrapper(hWnd, (int)vFolderPosRightSide.x, (int)vFolderPosRightSide.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                    break;
                case 3:
                    MoveWindowWrapper(hWnd, (int)folderPos.x, (int)folderPos.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                    break;
                case 4:
                    MoveWindowWrapper(hWnd, (int)vFolderPosRightSide.x, (int)vFolderPosRightSide.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                    break;
                case 5:
                    MoveWindowWrapper(hWnd, (int)folderPos.x, (int)folderPos.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                    break;
                case 6:
                    MoveWindowWrapper(hWnd, (int)vFolderPosRightSide.x, (int)vFolderPosRightSide.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                    break;
            }
        }
        Console::Log("[ INFO ]: Successfully opened all Folders.\n\n");
        Console::TimedExit();
    }

In order to avoid repeating yourself, I would recommend the following revision or a similar pattern:
    void Console::CheckSuccess(std::function<int()> fn, const char* successMsg, const char* errorMsg) {
        if(!fn()) {
            Console::Log(errorMsg);
            Console::Pause(TRUE); //todo: refactor. This implies you're setting the pause state to true or false, not pausing then deciding to exit based on the param
        } else {
            Console::Log(successMsg);
        }
        std::this_thread::sleep_for(std::chrono::milliseconds(500));
    }

    void Console::MoveWindowWrapper(HWND hWnd, int x, int y, int w, int h, BOOL repaint) {
        constexpr const char* errorMsg = "[ ERROR ]: Failed to move folder window.\n\n";
        constexpr const char* successMsg = "[ INFO ]: Successfully moved folder window.\n\n";
        CheckSuccess([&](){ return MoveWindow(hWnd, x, y, w, h, repaint); }, successMsg, errorMsg);
    }

    void Console::OpenFolders(int folderAmount, int sideSelection[7], const char* folderName[7], const char* folderPath[7], vec2_t& screenSize, vec2_t& folderSize, vec2_t& folderPos) {
        constexpr const char* ofSucMsg = "[ INFO ]: Successfully opened folder window.\n\n";
        constexpr const char* ofErrMsg = "[ ERROR ]: Failed to open folder window.\n\n";
        constexpr const char* ffSucMsg = "[ INFO ]: Successfully found folder window.\n\n";
        constexpr const char* ffErrMsg = "[ ERROR ]: Failed to find folder window.\n\n";
        for (int i = 0; i < folderAmount; i++) {
            Console::CheckSuccess([&](){ return system(folderPath[i]); }, ofSucMsg, ofErrMsg);
            HWND hWnd;
            Console::CheckSuccess([&](){
                hWnd = FindWindowA(NULL, folderName[i]);
                return (int)hWnd;
            }, ffSucMsg, ffErrMsg);

            vec2_t vFolderPosRightSide = { 0, 0 };

            vFolderPosRightSide.x = screenSize.x - folderSize.x;
            vFolderPosRightSide.y = (screenSize.y) - (folderSize.y + 2.f);

            folderPos.x = 0.f;
            folderPos.y = (screenSize.y) - (folderSize.y + 2.f);

            switch (i) {
                case 0:
                    MoveWindowWrapper(hWnd, (int)folderPos.x, (int)folderPos.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                    break;
                case 1:
                    MoveWindowWrapper(hWnd, (int)folderPos.x, (int)folderPos.y, (int)folderSize.x, (int)folderSize.y, TRUE));
                    break;
                case 2:
                    MoveWindowWrapper(hWnd, (int)vFolderPosRightSide.x, (int)vFolderPosRightSide.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                    break;
                case 3:
                    MoveWindowWrapper(hWnd, (int)folderPos.x, (int)folderPos.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                    break;
                case 4:
                    MoveWindowWrapper(hWnd, (int)vFolderPosRightSide.x, (int)vFolderPosRightSide.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                    break;
                case 5:
                    MoveWindowWrapper(hWnd, (int)folderPos.x, (int)folderPos.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                    break;
                case 6:
                    MoveWindowWrapper(hWnd, (int)vFolderPosRightSide.x, (int)vFolderPosRightSide.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                    break;
            }
        }
        Console::Log("[ INFO ]: Successfully opened all Folders.\n\n");
        Console::TimedExit();
    }

These are very useful edits to make. Hardcoding the error and success messages locally within the functions makes much more sense as it's such a small program and makes for cleaner code as well. Appreciate the advice!

This issue has now be fixed. Thank you @cppcooper for the tips on cleaning up the code.

This issue has now be fixed. Thank you @cppcooper for the tips on cleaning up the code.

No problem. Personally I think the wrapper should also be simplified as much as possible. Here is why:

Invoking a function with 6 parameters, 4 of which never change is a bit of a code smell. (redundant copies of data)
You still repeat yourself with 7 lines doing Console::CheckSuccess([&]() { return MoveWindow(...); }, errorMsg, successMsg); which makes 7 refactor points if you change variable names, or other details.
With the long variable names you pass to MoveWindow your lines go way beyond what's considered normal lengths. Plus due to the CheckSuccess invocations prefixing them, and the rest of its parameters suffixing them.

The one upside that I see for you is you keep your top function nice and tidy. To keep that you could utilize an inline function which implements the logic you currently have in the wrapper. To show you what I mean:
    void Console::MoveWindowWrapper(HWND hWnd, int x, int y, int w, int h, BOOL repaint) {
        constexpr const char* errorMsg = "[ ERROR ]: Failed to move folder window.\n\n";
        constexpr const char* successMsg = "[ INFO ]: Successfully moved folder window.\n\n";
        CheckSuccess([](){ return MoveWindow(hWnd, x, y, w, h, repaint), successMsg, errorMsg);
    }

    inline void MoveWindowLogic(int currentFolder, HWND hWnd, vec2_t screenSize, vec2_t folderSize, vec2_t folderPos, BOOL bRepaint) {
        vec2_t vFolderPosRightSide = { 0, 0 };

        vFolderPosRightSide.x = screenSize.x - folderSize.x;
        vFolderPosRightSide.y = (screenSize.y) - (folderSize.y + 2.f);

        folderPos.x = 0.f;
        folderPos.y = (screenSize.y) - (folderSize.y + 2.f);

        switch (currentFolder) {
            case 0:
                MoveWindowWrapper(hWnd, (int)folderPos.x, (int)folderPos.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                break;
            case 1:
                MoveWindowWrapper(hWnd, (int)folderPos.x, (int)folderPos.y, (int)folderSize.x, (int)folderSize.y, TRUE));
                break;
            case 2:
                MoveWindowWrapper(hWnd, (int)vFolderPosRightSide.x, (int)vFolderPosRightSide.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                break;
            case 3:
                MoveWindowWrapper(hWnd, (int)folderPos.x, (int)folderPos.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                break;
            case 4:
                MoveWindowWrapper(hWnd, (int)vFolderPosRightSide.x, (int)vFolderPosRightSide.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                break;
            case 5:
                MoveWindowWrapper(hWnd, (int)folderPos.x, (int)folderPos.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                break;
            case 6:
                MoveWindowWrapper(hWnd, (int)vFolderPosRightSide.x, (int)vFolderPosRightSide.y, (int)folderSize.x, (int)folderSize.y, TRUE);
                break;
        }
    }

    void Console::OpenFolders(int folderAmount, int sideSelection[7], const char* folderName[7], const char* folderPath[7], vec2_t& screenSize, vec2_t& folderSize, vec2_t& folderPos)
    {
        constexpr const char* ofSucMsg = "[ INFO ]: Successfully opened folder window.\n\n";
        constexpr const char* ofErrMsg = "[ ERROR ]: Failed to open folder window.\n\n";
        constexpr const char* ffSucMsg = "[ INFO ]: Successfully found folder window.\n\n";
        constexpr const char* ffErrMsg = "[ ERROR ]: Failed to find folder window.\n\n";
        for (int i = 0; i < folderAmount; i++) {
            Console::CheckSuccess([&](){ return system(folderPath[i]); }, ofSucMsg, ofErrMsg);
            HWND hWnd;
            Console::CheckSuccess([&](){
                hWnd = FindWindowA(NULL, folderName[i]);
                return (int)hWnd;
            }, ffSucMsg, ffErrMsg);
            MoveWindowLogic(i, hWnd, screenSize, folderSize, folderPos, TRUE);
        }
        Console::Log("[ INFO ]: Successfully opened all Folders.\n\n");
        Console::TimedExit();
    }


Body parsing is failing when calling the API from any browser

TL;DR
When calling a FastAPI endpoint which expects a JSON body from a frontend framework, I receive a response of 422 - Unprocessable entity, even though the request is correctly formatted.
Example
requirements.txt
fastapi==0.65.2
uvicorn==0.14.0

app.py
from fastapi import FastAPI
from pydantic import BaseModel
from typing import Optional, List

class SimpleInput(BaseModel):
    NRows: Optional[int] = 0
    Cols: Optional[List[str]] = []

app = FastAPI()

@app.post("/test/{param1}")
def test_post(param1: str, inputs: SimpleInput):
    return {"Param1": param1, "Inputs": inputs}

Steps to reproduce

Start a virtual environment python -m venv venv and activate it source venv/bin/activate
Install all the dependencies pip install -r requirements.txt
Start the application uvicorn app:app --reload --host <IP_ADDRESS> --port 8000
Go to browser http://localhost:8000/docs
Open browser console and execute fetch("http://localhost:8000/test/saf", {method: "POST", body: JSON.stringify({NRows: 10, Cols: []})})

You should get a response of 422. Interestingly, executing the call from the docs pages by clicking around does not resolve in 422. Also, this does not happen in FastAPI 0.65.1, only in 0.65.2.
Environment

OS: Linux, macOS
FastAPI Version: 0.65.2
Python version: 3.7, 3.8, 3.9, 3.10-rc

Additional context
If this was a change done on purpose (i.e. a feature), I'd highly advise reconsidering this decision. Happens in Chrome, Safari, Firefox (I assume the browser is not the issue, so I'll just generalize and assume that it happens in any browser).

You need to add the Content-Type header with application/json value.
This behavior is expected as per https://github.com/tiangolo/fastapi/releases/tag/0.65.2

You need to add the Content-Type header with application/json value.
This behavior is expected as per https://github.com/tiangolo/fastapi/releases/tag/0.65.2

That makes a lot of sense :) and fixed it. Thanks!


MAF-011: [LOW] Library path can be set arbitrarily, including root

System paths in the library functionality allow administrators to configure root directories as the path.
Technical description:
The library system functionality allow administrators to set paths to root directories. Paths should be restricted to only allow specific directories to minimize the attack vector.
Impact:
Allowing access to root directories significantly increases the risk of unauthorized access, data breaches, and potential system compromises. Attackers could exploit this misconfiguration to gain elevated privileges and access sensitive files or directories.
Recommendation:

[ ] Implement a user-friendly file browser dialog or similar UI component that allows users to visually navigate and select the desired library folder. This provides a more intuitive and controlled way for users to specify the directory.
[ ] Configure an allowlist of directories that can be selected and displayed to the admin. This ensures that only pre- approved directories are available for selection.
[ ] Implement robust server-side path traversal checks to prevent users from crafting malicious paths that could bypass the intended directory restrictions.
[ ] Apply strict input validation and sanitization techniques to user-supplied paths to mitigate the risk of path injection attacks.

This is due a rewrite soon as part of #1670, so I'm leaving it for now.

sanitization checks done in #2729


Adding login feature

Starting review

Oh this was requested before we figured that out, lmk when you push that change

Sorry for the delay, didn't get an email fro some reason.


Fixed trim function and home path

Hi,
Upon request of Michele Gianella I've made a couple of fixes in order to make the AppImage work well on Unix. I'm unsure if these problem were also on other platforms.
First change was that the trim() function was applied to an array an not to a String, this lead to the complete crash of the AppImage.
The second change is that, from my understanding, AppImage can't modify files that are not in the home of the user.
So instead of creating the file in appPath+"/src/tmp/segmentedtext.tmp.txt", the file is now created in ~/tmp/segmentedtext.tmp.txt.

Looks good! Thanks for this @GregoryWullimann
Just tested it (on Mac) and seems to work great,

I am guessing you have tested on Linux? (I haven't got a Linux machine to test it on)

I am guessing you have tested on Linux? (I haven't got a Linux machine to test it on)

Yes, tested with Elementary OS 5.0!


Fix bug: property name is incorrect with elasticsearch's chart

The property's name in elasticsearch chart is persistence.

/assign @sameersbn

/ok-to-test

cc @dvonthenen @mikelorant @pavelnikolov

/retest

/retest

/retest

/lgtm


Reenable runtime tests

Reenable runtime tests disabled in #27380 and #27408

Fixes rdar://problem/55490694

Please test with following PR:
https://github.com/apple/swift-llvm/pull/171
@swift-ci Please test

PR testing did not test:
15:51:20 UNSUPPORTED: Swift(linux-x86_64) :: Runtime/backtrace.swift (9851 of 12256)

apple/swift-llvm#171
preset=buildbot_incremental_linux
@swift-ci Please test with preset Linux Platform

apple/swift-llvm#171
preset=buildbot_incremental_linux
@swift-ci Please test with preset Linux Platform

apple/swift-llvm#171
preset=buildbot_incremental_linux
@swift-ci Please test with preset Linux Platform

https://github.com/apple/swift-clang/pull/357
apple/swift-llvm#171
preset=buildbot_incremental_linux
@swift-ci Please test with preset Linux Platform

https://github.com/apple/swift-clang-tools-extra/pull/4
apple/swift-clang#357
apple/swift-llvm#171
preset=buildbot_incremental_linux
@swift-ci Please test with preset Linux Platform

apple/swift-clang-tools-extra#4
apple/swift-clang#357
apple/swift-llvm#171
preset=buildbot_incremental_linux
@swift-ci Please test with preset Linux Platform


Ensure securerandom is required.  Also do not pass empty Resources ar…

…ray in policy as CF with reject it
First - sometimes Convection fails as securerandom is not loaded.
Second, this template used to work:
module IAM
  IAM = Convection.template do
    description 'Something useful'

    iam_role 'MyRole' do
      path "/my/path"
      trust_ec2_instances
    end
  end
end

It generates this JSON:
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "Something useful",
  "Parameters": {
  },
  "Mappings": {
  },
  "Conditions": {
  },
  "Resources": {
    "MyRole": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "Path": "/my/path",
        "AssumeRolePolicyDocument": {
          "Version": "2012-10-17",
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "sts:AssumeRole"
              ],
              "Resource": [

              ],
              "Principal": {
                "Service": "ec2.amazonaws.com"
              }
            }
          ]
        }
      }
    }
  },
  "Outputs": {
  }
}

Yesterday this started to fail for me, with CF reporting the following:
    converge  Stack iam
create_in_progress  sirwin-cloud-iam: (AWS::CloudFormation::Stack/arn:aws:cloudformation:us-east-1:716756199562:stack/sirwin-cloud-iam/5c60c210-887e-11e5-a8f7-500150b34c7c) User Initiated
create_in_progress  MyRole: (AWS::IAM::Role/)
create_failed  MyRole: (AWS::IAM::Role/) Has prohibited field Resource

With the code change, we will remove the Resources array if it is empty.  The resulting JSON looks like:
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "Something useful",
  "Parameters": {
  },
  "Mappings": {
  },
  "Conditions": {
  },
  "Resources": {
    "MyRole": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "Path": "/my/path/",
        "AssumeRolePolicyDocument": {
          "Version": "2012-10-17",
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "sts:AssumeRole"
              ],
              "Principal": {
                "Service": "ec2.amazonaws.com"
              }
            }
          ]
        }
      }
    }
  },
  "Outputs": {
  }
}

I'm not sure why this hasn't failed before now; I have deployed templates using this exact format for some weeks now.

LGTM

LGTM

:+1:


Chinese translation: Book section

Tracking issue for translation of Book section and all subsequent pages.
Initial:

[ ] Overview, /book/index — unassigned

Fundamentals of Tact:

[ ] /book/types — unassigned
[ ] /book/integers — unassigned
[ ] /book/cells — unassigned
[ ] /book/maps — unassigned
[ ] /book/structs-and-messages — unassigned
[ ] /book/optionals — unassigned
[ ] /book/contracts — unassigned
[ ] /book/exit-codes — unassigned

Expressiveness:

[ ] /book/operators — unassigned
[ ] /book/expressions — unassigned
[ ] /book/statements — unassigned
[ ] /book/constants — unassigned
[ ] /book/functions — unassigned

Communication:

[ ] /book/receive — unassigned
[ ] /book/bounced — unassigned
[ ] /book/external — unassigned
[ ] /book/lifecycle — unassigned
[ ] /book/send — unassigned
[ ] /book/message-mode — unassigned

Going places:

[ ] /book/deploy — unassigned
[ ] /book/debug — unassigned
[ ] /book/upgrades — unassigned
[ ] /book/import — unassigned
[ ] /book/config — unassigned
[ ] /book/masterchain — unassigned
[ ] /book/func — unassigned
[ ] /book/programmatic — unassigned

To add a new page:

If there aren't a zh-cn/ sub-folder in docs/src/content/docs, create it
Create all the necessary folders for your page if they don't exist yet. For example, if the English one is in docs/src/content/docs/book/index.mdx (book/index.mdx), that means that for the Chinese version, the docs/src/content/docs/zh-cn/book/ (zh-cn/book/) folder must exist
Copy the respective page file from the English version onto the zh-cn/ sub-folder without changing the name of the page. If it was mode.mdx, it must stay mode.mdx. If it was book/index.mdx, it will be zh-cn/book/index.mdx and so on.
Translate all the English contents of the page
That's it!

The initial semi-automated Chinese translation of the entire documentation was done in #942. That PR also covered the Book section, so that issue is long resolved.
If/when people want to improve the quality of the translated pages, or add more translations, it's better to create issues and PRs with a much narrower scope than this one.


Add the capability to disable page reloading between tests

Based on the #1509 question. It's actual for the SPA apps.

It would be nice to see exact scenarios for this first. For now it sounds like we are going to introduce yet another footgun, there each test results depend on previous one.

I partially agree. But I am sure there are many scenarios where I don't want to refresh whole page between tests. This will optimize test time as well.
Just to avoid refresh, I put all the scenarios in one test and use console.log to makesure it passed all scenarios.

This will optimize test time as well

IMHO it's a slippery slope. It's not a good idea to sacrifice consistency for performance.

I think this would be hugely beneficial for single page applications, but I also think it should be an explicit opt-in so that a user is aware that they are not starting with a blank slate for each test and that people testing regular websites are not affected.
One of the things that is more difficult in a SPA is managing the client side state. Every time you refresh the page, the app bootstraps so you're in a pristine state, but some of the more difficult to track bugs in a SPA arise after editing an item, navigating and expecting an unrelated component to be updated.
A typical scenario for me would be:

Navigate to an edit page, test the inputs - cascading dropdowns, field enabled/disabled or hidden based on user selection etc.
Click the in-app save button - this saves the item
Navigate back to a grid page - the updated (or newly added) item should appear in the grid.
Depending on the item saved it could update other parts of the UI - saving a user for example could update a status bar containing the current user name.

A test like this could be achieved by putting all logic within a test(), but it would be nice to separate these different test responsibilities into different tests(), but at the moment if I put them in different tests(), the page reloads and I'm not testing that the client side behaviour is correct.
Currently a test like this would be written
fixture("test save item saves a updates grid');

test("check inputs, save, navigate, check grid" async t => {
  //test cascading dropdowns
  //check boxes
  // assert items are enabled/disabled etc
  // do a save
  // assert no validation errors
  // navigate to grid page
  // assert updated item exists in grid
});

IMO, a nicer way to write these would be each test has a single responsibility
fixture("test save item saves a updates grid', { noReloadBetweenTests: true });

test("check inputs" async t => {
  //test cascading dropdowns
  //check boxes
  // assert items are enabled/disabled etc
});
// No page refresh please!!

test("save without validation errors" async t => {
  // do a save
  // assert no validation errors
});
// No page refresh please!!

test("item exists in grid" async t => {
  // navigate to grid page
  // assert updated item exists in grid
});

The fact that it would improve the performance of running the tests in the fixture would be a bonus (for me) rather than the goal.
As mentioned by @iexplore in #1509, enabling this via a 'noReloadBetweenTests' option or similar on the fixture would be a great solution to this.

+1 for adding noReloadBeetweenTests option.
Same as in a couple of comments above - I would rather utilize test cafe's ability to define more granular tests, but due to my system under test being a SPA - I can't achieve this. I end up with much larger tests that test multiple things at once.

@inikulin - what about supporting shared step(s) per Fixture (e.g. .useRole(), or other async func) and not just at the Test level?  Most testing libraries have this concept already where an expensive context/scenario can be initialized for a group of Tests... would be very handy in SPA and other cases where setup is consistent (and immutable)

@brettveenstra, If I get you idea right you can try to use Role not for logging actions only. For example you can try to create a Role and perform in the initialization function some actions with your SPA that will change the state of the application. And try to use this role in different tests. In fact User Role saves and restores cookies and local/session storages in the browser. Is it enough to restore the state of the SPA?

@oneillci, @classicalConditioning I'm not sure that splitting the test case to several tests helps. For example if you have three tests the second depends on the first one and the third depends on the second:
test('test1', () => { // check create user form and create a user });
// no reload
test('test2', () => { // check user is created in some other view });
// no reload
test('test3', () => { // do something else with the user });

For example if the test1 is failed there is no reason to run test2 and test3 (because user is not created).
If the test3 is failed you have to run all tests to check the issue.
If you put all these actions into one test you have the same. If the test fails TestCafe shows the line where it happens, so you can easily determine what the part of the test is broken.

@AlexanderMoskovkin
here is an example of what I am talking about.
Given a grid that has a filtering capability. There are three filters: First Name, Last Name, City.
Here are my tests:

this is the way I need to structure them if I don't want current testcafe to reset browser's localStorage and cookies:

Test 1:

login
filter by First Name
assert that result is correct
reset filter
filter by Last Name
assert that result is correct
reset filter
filter by City
assert that result is correct
reset filter
filter by First Name and Last Name
assert that result is correct
reset filter
filter by First Name and City
assert that result is correct
reset filter
filter by Last Name and City
assert that result is correct
reset filter

This is the way I would like to structure my tests to keep them more readable, but I can't since the browser's localStorage and Cookies are reset after each test, therefore I have to login before each test

Test 1:

login
filter by First Name
assert that result is correct
reset filter

Test 2:

login
filter by Last Name
assert that result is correct
reset filter

Test 3:

login
filter by City
assert that result is correct
reset filter

Test 4:

login
filter by First Name and Last Name
assert that result is correct
reset filter

Test 5:

login
filter by First Name and City
assert that result is correct
reset filter

Test 6:

login
filter by Last Name and City
assert that result is correct
reset filter

This is the way I would like to structure my tests if there was an option to not reset browser's localStorage and cookies. (login only in the first test)

Test 1:

login
filter by First Name
assert that result is correct
reset filter

Test 2:

filter by Last Name
assert that result is correct
reset filter

Test 3:

filter by City
assert that result is correct
reset filter

Test 4:

filter by First Name and Last Name
assert that result is correct
reset filter

Test 5:

filter by First Name and City
assert that result is correct
reset filter

Test 6:

filter by Last Name and City
assert that result is correct
reset filter

I hope it is clear that in this scenario tests do not depend on each other. Sorry about a lengthy example.

@AlexanderMoskovkin even better is what @brettveenstra is proposing.
If there was be a way to specify with which role an entire fixture is executed - that would be very handy, IMHO.

If there was be a way to specify with which role an entire fixture is executed - that would be very handy, IMHO.

It seems you can try this approach with the current API:
const someRole = Role('http://start-page', async t => {
    // do some actions
}, { preserveUrl: true });

fixture `fixture1`
    .beforeEach(async t => {
        await t.useRole(someRole);
    });

//...

@AlexanderMoskovkin this seems to work, thanks. I saw preserveUrl in documentation, however it was not clear that it would solve my problem. If I get it right, when you use a t.useRole(userRole) all steps defined in the userRole will be executed. So it feels like these same steps will be executed before each test, If you put it in .beforeEach. It would be nice if there was a cleaner way to say that I want to use a particular user role for entire fixture.

@AlexanderMoskovkin thanks for the quick reply ... if that works as you say, is there a reason why the fixture api doesn't support useRole?
example:
fixture `fixture1`
   .useRole(someRole);

per the documentation, the beforeEach suggests that your workaround will fire for EACH test belonging to the fixture (which is inherently what I don't want) so cognitive hurdle there with the API ...
putting useRole at fixture level could then automatically set the preserveUrl parameter and I could re-use the same someRole across other tests

I'm sorry, it seems I missed your questions.

So it feels like these same steps will be executed before each test, If you put it in .beforeEach

@classicalConditioning, A steps for the role initialization function will be executed once for the whole test run.
For example, if you have Role(async () => { /* await someActions() */ }) and call useRole in the beforeEach hook it will work in the following way:

When the first test is started TestCafe calls useRole from the beforeEach hook. Since the role is not initialized TestCafe executes its initialization function. Then TestCafe saves the page state (cookies, storages..).
When each next test is started TestCafe calls useRole again. But since the role was initialized before and we have cookies/storages for it, TestCafe just restore cookies/storages and reloads the page.

is there a reason why the fixture api doesn't support useRole

@brettveenstra Adding useRole to the fixture sounds reasonable, we'll consider it. Meanwhile the approach with beforeEach should work properly as I described above. It adds only one additional page reloading for each test.

@AlexanderMoskovkin I get that, however it is not clear from naming conventions being used that useRole is executed only once even though it is inside of beforeEach hook.

@AlexanderMoskovkin The restore of cookies/storages solves a lot.
But can there be option to write an involved test with multiple steps and see messages of those steps like you see between tests? It's like another sublevel within tests.

it is not clear from naming conventions being used that useRole is executed only once even though it is inside of beforeEach hook.

To be accurate the useRole command is executed in each test in this case. But it works in different ways for the first time and for the next times.
A goal of the useRole command is to set necessary cookies/storages values. If it has already saved values then it just restores them, if not - it runs the initialization function.

@iexplore, It seems we have a proposal for this (Implement test sections) but now we can't get any estimates about it.

Hi @AlexanderMoskovkin is there an intention to implement the 'noReloadBetweenTests' option? I agree with @oneillci point of view towards the organization of tests.

Sounds like a good idea to provide an option to disable page reload after each test. It would be very handy for testing web forms that only allow you to go to the next section after completing the current section.
Would you consider to implement it @AndreyBelym  ?

Hi @lixualinta, our team is discussing this feature right now. I've made a prototype build without test page reloading.
All tests in all fixtures must have the same test page URL, otherwise it won't work.
You can download it from GitHub: https://github.com/AndreyBelym/testcafe/releases/download/no-reload-demo-1/testcafe-0.20.0-alpha.3.tgz and then install the TGZ archive with npm, or just install it with npm i https://git.io/vp6Pf.

Before:

After using @AndreyBelym no-reload-demo-1
After:

~400% faster

how's this going? :)

It's not ready for production use, because it's not documented and its API can be changed or removed completely, but you could try it in v0.20.4. Take a look at https://github.com/DevExpress/testcafe/commit/29621ec7f8132f0d7b387a29c0c0bec5e304bcca.

Hello, interested in this feature as well. I tried using the --disable-page-reloads flag with both versions 0.20.5 and 0.20.4 but still seeing page reloads. I was wondering if there is anything else I need to know about this experimental feature.

Hi @chinjon, currently it doesn't reload a page between tests only if the second test's page is same as the page where the first test finished. E. g.
test
  .page `a.html`
  (t => t.navigateTo('b.html');

test
  .page `b.html`
  (t => { ... })

won't reload the b.html page, but
test
  .page `a.html`
  (t => t.navigateTo('b.html');

test
  .page `a.html`
  (t => { ... })

will return the browser from b.html to a.html.

@AndreyBelym Thank you for the speedy response.
Context to my previous comment, I had tests set up like so:
fixture
  .page `url.html`

test1()

test2()

Essentially all of the tests would have the same URL in this case. I tried following your example where you had the navigateTo() method within the test(s) but for that same url.html URL. Still seeing reloads.
Also, thank you so much for TestCafe and the continued development. It's such a wonderful tool.

Starts describing this in PR #2643

Hi @AndreyBelym,
I structured my tests in the following way:
fixture Testing page reloads
test
loginFunction();
('test1', async t => { t.navigateTo('b.html') });
test
.page b.html
(t => { ... })
I ran tetscafe using the --disable-page-reloads flag and after test1 finishes successfully it is redirected to about:blank.
Since I'm not defining an initial page in fixtures page I think that testcafe is ignoring --disable-page-reloads
Using v0.20.5

Hello, can anyone point me to what is the exact status of this? What's the most legitimate way of achieving in this point of time this?

I already rely heavily on this feature to test my Vue.js website (server side rendered). It is the only way to properly test SPA functionality. I hope DevExpress understands the need for this feature to exist. Especially given that today more and more "regular" sites are turning to SPA frameworks with server side rendering for SEO.

@AndreyBelym would you be able to give a short example usage of how to use modifiers? I am new to testcafe and maybe I am not understanding how to use this feature.  Can fixture.disblePageReloads be used in combination with a page so you can specify a page to use beginning but not reload after the first test uses this page.
I was trying to use it like this
fixture fixture1    .disblePageReloads     .page${config.Urls.blackboardLogin};

@barretvasilchik yuo made a typo: use .disablePageReloads instead of .disblePageReloads
fixture .disablePageReloads fixture1    .page${config.Urls.blackboardLogin};

@ZeleniiZmey good catch. That's what I get for copy and pasting.

I tried to follow the steps mentioned above but without 100% success.
Seems like the solution disablePageReloads only works with a limit of 2 tests.
If i have 3 tests, when testcafe is changing from test2 to test3 there's a reload
What i tried:

adding in the fixture: fixture.disablePageReloads
adding in each test: test.disablePageReloads
adding the flag: --disable-page-reloads

I'm using version 0.22.0

using .disablePageReloads doest prevents reloading page between tests. Page gets reloaded with state preserved.
Is there any workaround.

fixture
.page url.html
test1()
test2()
In test1 navigates to certain page in the website.
In test2 performs actions after navigating to certain page.
But after test1 website gets reloaded, so website goes to initial page.
I don't want to reload the website after each test. Is there any way for that.
Tried both .disablePageReloads and useRoles. both preserve state on reloading but doesn't prevents reloading.

"@fixture griffin";
"@page https://******.com";
"@test"["gr"] = {
'1.Click input "Account Name"': function() {
act.click("#accountname");
},
"2.Press key CAPSLOCK": function() {
act.press("capslock");
},
'3.Type in input "Account Name"': function() {
act.type("#accountname", "@@@@");
},
"4.Press key TAB": function() {
act.press("tab");
},
'5.Type in password input "Password"': function() {
act.type("#accountpassword", "C");
};
In testCafe studio every action is split into sections. Like this I would like to split my actions inside a test into sections. Even splitting test is fine, but I couldn't do it because on every test page reloads.
Any help will be most grateful.
Thanks

@subbiah2806, it's not a TestCafe Studio, but the old TestCafe (15.x) test file. Old test file syntax is in legacy state, and won't get any new features. So disabling page reloads won't work with the old test file syntax.

My apologies guys please provide some high level documentation on above issue.
Below is the syntax I use where .disablePageReloads doesnt work. It preserves the state, but refreshs the page between test.
I cant wrap a whole test of a website into one test.
I have 51pages and approx 8 test a page which refresh  the page 408 times. After every test I need to navigate back the page where it left earlier to start the test.
So basically because of this one functionality I dont want to leave such a great tool
fixture Getting Started
.disablepagereload
.page('http://testcafe.devexpress.com/example');
test('My first test', async t => {
// Test code
});

@AndreyBelym,
As i have read the disablePageReloads() has been release on version 0.21. However, I am using the version 0.22, when i try to call test.disablePageReloads(), it gives error that Property 'disablePageReloads' does not exist on type 'TestFn'.
Could you please help me to clarify this?
Thanks.

Hey @VasilyStrelyaev - I noticed that you removed the "Documentation: required" label. Does this mean that disablePageReloads is now documented somewhere?
I'd love to take a look at those docs if that is the case as disablePageReloads is a feature that would really be useful to me. Is there a link for the docs?
Test Cafe is great by the way :)

Hi @darrylgrant ,
We've decided to keep this feature 'for internal use' for now. That's why we didn't announce it in our release notes or mention in the documentation.

There are several reasons behind this decision:

We assume that it's hard to write tests so that they don't require page reloads, which makes this feature difficult to use.
We think that writing tests in such a way affects their stability.
There are some aspects of this feature that aren't finished yet. For example, using this feature when tests are run concurrently.

Thanks @VasilyStrelyaev - I appreciate the info. 👍

I would ask to please not forget about this feature @VasilyStrelyaev.
I implemented this in different projects and the feedback was always the same. Please make them sequential (the login process with IdentityServer is veeeeeeery slow). I can hack my way, but that is not good.
I also give talks about testcafé

And the feedback I always get is the same, sequential tests.

Testcafe team,
Do you have any plans to release this feature in the near future?

Hello team,
I tested few scenarios:
fixture `google`
  .disablePageReloads
  .page`www.google.com`

test('type Hello', async t => {
  await t
            .typeText('#tsf > div:nth-child(2) > div.A8SBwf > div.RNNXgb > div > div.a4bIc > input', 'Hello ');
})

test('type World', async t => {
  await t
            .typeText('#tsf > div:nth-child(2) > div.A8SBwf > div.RNNXgb > div > div.a4bIc > input', 'World');
})

Now on above code both test's url are same so page is not reloaded. It types Hello World.
fixture `google`
  .disablePageReloads
  .page`www.google.com`

test('type Hello', async t => {
  await t
            .typeText('#tsf > div:nth-child(2) > div.A8SBwf > div.RNNXgb > div > div.a4bIc > input', 'Hello ');
})

test('click search button', async t => {
  await t
            .click(Selector('#tsf > div:nth-child(2) > div.A8SBwf > div.FPdoLc.VlcLAe > center > input[type="submit"]:nth-child(1)'));
})

test('click map's button' async t => {
  await t
                .click(Selector('#hdtb-msb-vis > div:nth-child(2) > a'));
})

Now in above code after typing Hello it clicks search button, Then it should click on map's button in next screen but page reload's and again comes to www.google.com where there is no map's button.
Is there any way to preserve url between tests or stop reloading???

Will we see an implementation in the near future? I still don't get why it is not implemented yet

For my usecase, it would make sense if failed tests triggered a reload for the subsequent test. This would significantly simplify writing cleanup code.
My usecase is an SPA where the tests are independent. Each test includes "navigating" to the desired part of the application as part of the test, and resetting the state of the app when done.

I see that this issue is closed, but there is no official implementation yet as far as I can tell. Am I missing something? This is an important feature for SPA's imho.
Could someone give an update on this issue please?

There's no updates about this feature, this comment completely describes the situation.

Thanks for the update @AndreyBelym. Here is my 2 cents on the matter.

We assume that it's hard to write tests so that they don't require page reloads, which makes this feature difficult to use.
We think that writing tests in such a way affects their stability.
There are some aspects of this feature that aren't finished yet. For example, using this feature when tests are run concurrently.

I just did a quick test with Cypress and they don't reload between tests either, so it should be possible to roll this out if they can do it. Cypress can also run in parallel, although I have not used or tested that feature with the code below.
If anything, this flag should be opt-in like @valerii-cognite mentioned in the comment above.
I used the following Cypress to test my claim:
context('Testcafé homepage', () => {
    before(() => {
      cy.visit('https://devexpress.github.io/testcafe')
    })

    it('should have a get started button', () => {
        cy.get('.get-started-button').contains('Get Started');
    })

    it('should have a how it works section', () => {
        cy.get('h1').should('have.text', 'How it works!');
    })
  })

I like so much about test cafe but I think this will be a deal breaker for a lot of people testing SPA's. I've followed this thread for about a year now and IMO it's much more of a philosophical difference rather than any technical limitation. It's up the owners of this project to decide the direction they want to pursue and I respect that. But closing this issue flies in the face of how developers of SPA's work and also how they behave at runtime. It strikes me as purism over practicality and I say this with a lot of respect for the testcafe development team as, aside from this, it truly is an excellent tool. IMO, testing SPA's will not be a 1st class citizen in testcafe unless this scenario is addressed


Break up Dockerfile

into one (or more) base images, to streamline deployment

Webkit install should happen first (since it won't change)
then apt-get and node installs, which change occasionally
then copy/install of working directory, which changes ALL THE TIME

You can now docker pull pudo/aleph-base:1.0.


Finish enhancing ReflectCommandExt to work with Bundles

Objective

Finish resolving https://github.com/bevyengine/bevy/issues/15125
Inserting bundles was implemented in https://github.com/bevyengine/bevy/pull/15128 but removing bundles still needed to be implemented.

Solution

Modified bevy_ecs::reflect::entity_commands::remove_reflect to handle both components and bundles
Modified documentation of ReflectCommandExt methods to reflect that one can now use bundles with these commands.

Testing

Three tests were added to match the ones for inserting components.

@miniex could I get your review on this follow-up work? :)

Awesome, thank you both.


Add ops::* to the prelude in core

This PR fixes the bug described in #3891 by adding ops to the prelude in core. This change is congruent with Rust's approach as well.
This is a breaking change---if any users have any traits manually implemented for which core already has an existing implementation, this will now create an error. A rightful one, IMO, but a breaking change nonetheless.
A few of the tests were written in a way that is not compatible with this change---so this PR rewrites these. The only one of note is that a old should_pass/language/trait_override_bug test was refactored to a new should_fail/redefine_method_from_core test.
This PR also refactors the trait finding algorithm in check_if_trait_constraints_are_satisfied_for_type to reduce it from O(n^2) to O(n).
Closes #3891

Unsure about trait_map.rs but looks reasonable otherwise. Dropping an approval to bump up the count

Would it make more sense if I moved that to a different PR @Braqzen? That change came about while debugging, and I didn't want to erase a big-O improvement 😃

Unsure about trait_map.rs but looks reasonable otherwise. Dropping an approval to bump up the count

Would it make more sense if I moved that to a different PR @Braqzen? That change came about while debugging but turned out to be unnecessary, but I didn't want to erase a big-O improvement smiley

No, it's okay. Someone who knows what's going on there should approve though. I was just saying that that my approval is mostly for the other things


Creating a 3D renderer

Title ^^^

Beginning development

Forget it, might reopen later

Will continue in Three.ph repo


[6.x] Add -filled- ability to the support Arr class

This PR introduces a new method filled for the current \Illuminate\Support\Arr class.
This method works as you might expect allowing dot notation for nested checks.
Here is the method signature & implementation:
public static function filled($array, $keys)
{
   //code
}

The reason behind it
As you might know by now, we currently have two methods to check whether we have a given key(s) within a given array. This works fine, but it does not provide the ability to check whether we have a value for a given key. Hence, you will be able to have this behavior if this PR is merged.
Example
$data = [
            'one' => 1,
            'two' => '',
            'three' => null,
            'foo' => [
                'one' => 1,
                'two' => '',
                'three' => null,
            ],
        ];

if (Arr::filled($data, 'one')) {
//good to go!
}

You will be able to see more uses case here
Nice to have
If this PR is approved, we could also add an empty method. So, we have a positive way to ask in given conditions.

Cheers,

I was looking for something like that hope it'll merge
https://laracasts.com/discuss/channels/laravel/check-if-specific-keys-in-collection-has-value-or-not

Thanks for the feedback guys. I would be able to adjust the condition however it's needed. But, I would wait for the Laravel final input for me to do so.
From my point of view, empty is the right way to go. But, I am keen to update this method to abide by the framework behavior.
Let's see. 👍

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


Support For Interpolated String Literal Expressions

@chazt3n commented on Wed Jul 19 2017
It would be awesome to have support for code like:
Console.WriteLine($"Name = {name}, hours = {hours:hh}");

@chazt3n This should be possible, OOTB, once we move to the latest version of Roslyn, which is due to ship in the next release, 0.22.0.
For now, you might be able to use this today by passing the -Experimental flag.

@gep13 could we close this as #1645 is merged?

@mholo65 yes, I would say that that is correct, yes.

Relates to #1645


Incompatibility with Pam's Portal Poof

OTG Plugin or Mod
[Please specify if it's about Forge Mod or Spigot server Plugin placing "x" into []]

[X ] OTG Mod for Forge
[ ] OTG Plugin for Spigot

OTG Version
[Please specify the full OTG version that you are running by placing "x" into []]

[ X] 1.12.2_v8_r1
[ ] 1.12.2_v7_DEV_r26
[ ] 1.12.2-v6
[ ] 1.12.2-v5
[ ] 1.11.2-v8
[ ] 1.11.2-v9
[ ] 1.10.2-v21
[ ] Other - specify here

Forge or Spigot Versions
Forge <IP_ADDRESS>38
What other plugins are you running?
Pam's Portal Poof, 1.12.Xa
Description
When you create a nether portal like normal, you can light it and go through to the nether. With PPP installed but OTG removed, the portal is disabled (intended behaviour) but when OTG is installed alongside OTG the portal is enabled again.

Hey @Profilename1 , thanks for reporting this. Will need to take a look at this for a future release, atm other things have prio though, so moving to backlog for now.

Should hopefully be fixed for v9_r10, portal mechanics have been changed, otg has its own portal block(s) now.


Class 'Zend\Permissions\Rbac\AbstractRole' not found

After this update: https://github.com/zendframework/zend-permissions-rbac/commit/ad2ca66fe415e6ead448bcac8aefb157c4447dc6#diff-3a7160977f48ae6153291911a9ca7bca

@tasselchof These changes are in v3 of zend-permissions-rbac.
There is already PR which adds compatibility with zend-permissions-rbac v3 - see #137

This repository has been closed and moved to laminas-api-tools/api-tools-mvc-auth; a new issue has been opened at https://github.com/laminas-api-tools/api-tools-mvc-auth/issues/2.


Stuttering frames

hi there, i'm completely new to this wayland stuff. i have an issue with the frames stuttering on some programs. gaming seems to work perfectly from what i've tested but other applications such as reaper, chrome, discord act very strange.
https://drive.google.com/file/d/1foC8GGKnDunzdEuaqLVFfXAL97r_MZ2t/view?usp=sharing
Here is another video of the same application, but running as fullscreen. Different behaviour.
https://drive.google.com/file/d/1fqVLO9LyfD_7Ia_AoOrXQdG7oxQvcxQB/view?usp=share_link
If it helps:
Kernel: 6.3.4-arch1-1
CPU: AMD Ryzen 7 5700X (16)
GPU: NVIDIA GeForce RTX 3060
Resolution: 2560x1440
Refresh rate: 60
Default environment names: (.config/hypr/hyprland.conf)
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = WLR_NO_HARDWARE_CURSORS,1

looks like normal nvidia to me
try commenting out env = GBM_BACKEND,nvidia-drm too, AFAIK it's redundant now and causes issues? I don't use nvidia though.
Generally nvidia is not supported, so I can't help you here, but you can ask around on the discord server, maybe someone knows.

Commenting it out has no difference. i'll try to find an answer in the discord, then.


Unsigned decimals in prisma schema

Problem
At the moment we're unable to create an unsigned decimal in prisma. Any chance the team can add it?
Suggested solution
Would be great to have for example @db.UnsignedDecimal
balance               Decimal   @default(0) @db.UnsignedDecimal(15, 2)

Alternatives
Additional context

Which database are you using @dikkeduif ?
Note from MySQL docs:

As of MySQL 8.0.17, the UNSIGNED attribute is deprecated for columns of type FLOAT, DOUBLE, and DECIMAL (and any synonyms); you should expect support for it to be removed in a future version of MySQL.

It seems that UNSIGNED DECIMAL is deprecated and will be removed in the future.


Make prediction manually

Hi, I would like to make a prediction with tdabc. When I first initialise a TDABascedClassifier and use the fit(X_train,y_train) function and then try the predict(x), how I am used to with sklearn, I run into a value error "The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()".
Here, x is a vector from the evaluation subset.
What is the correct way to do this?

Hi in #1, a similar request was explained. In the method execute_tdabc from https://github.com/rolan2kn/TDABC-4-ADAC/blob/master/testing_tools/repeated_cross_validation.py you can see that fit and predict are not the same as sklearn. Fit is used to pass parameters to the tdabc method. X,y are contained by the DatasetHandler class and need to be splitted into train and test sets. This is a simple overwiew of the code based on execute and execute_tdabc methods:
datahdlr = DataHandler()
datahdlr.load_dataset(X, Y)
size_data = datahdlr.dataset_size()
k = 10 // ten fold
jth_fold = 1    // jth fold
fold_size = int((size_data * k + 99) // 100)  # fold_size
# it represents
# the k% of all data
folds = int((size_data + fold_size - 1) / fold_size)
datahdlr.dataset_handler.split_dataset(fold_size, jth_fold) // separate train and test data
tdabc = TDABasedClassifierUsingLinkPropagation(data_handler=datahdlr)
X_test, Y_test = self.dataset_handler.get_tdabc_data()   # train data is inside data handler
tdabc.fit(selector=SelectorTypeHandler.AVERAGE, KJ=[fold_size, jth_fold], fold_sequence=self.fold_sequence_name(),
can_i_draw=False, filtration=False)
predicted_values = tdabc.predict(X=X_tests)
#now you can compare predicted_values with Y_test even with sklearn.
As I mentioned this is simply the code of a paper, specifically designed for that paper, you are fee to adapt it.


Single Select can't clear selection once an item is selected

Description of the bug
Once an item is selected, either by typing and searching or clicking, it is not possible to clear selection.
Steps To Reproduce

Focus on select
Select item, either by typing or using mouse to select

Additional Information
As a user I expect that a clear icon button would appear so that I can trigger it to clear the selection.
Just deleting the text value in input should also suffice to clear selection.

Is would rather consider this as a feature request than i bug. In a native select (and on radio buttons) there is no possibility to clear the selection. General practice is to add an empty option in cases where this should be possible.

Is would rather consider this as a feature request than a bug. In a native select (and on radio buttons) there is no possibility to clear the selection. General practice is to add an empty option in cases where this should be possible.

If we want this the Select to behave as a native select then we should maybe not have an input element as a element for selected options or typing? 🤔
I find it very confusing that its an input element and the list underneath is not filtered or that I can't clear it. As a user when I am prompted with a input field and a list of options, I would expect the list to be filtered when I type something and be able to clear it.

hmm, maybe we need have a Autocomplete and Select component? Let select be a select and autocomplete be autocomplete. Our current Select I feel is currently a mix of both.

This is solved by #1090
You can clear selection in single select mode by just deleting the input value text.
If this feature is not wanted, you can use "controlled" mode to prevent complete clear.


[NO QA] Fix imports messed up during merge

Details
There were some imports that were messed up while resolving a merge that were preventing the RequestCallPage from rendering. This PR fixes them.
Fixed Issues
$ N/A
Tests

Navigate to the request call page <baseURL>/request-call
Verify it renders without any errors in the JS console.

QA Steps
N/A
Tested On

[x] Web
[ ] Mobile Web
[x] Desktop
[x] iOS
[x] Android

Screenshots
N/A

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

🚀 Deployed to staging in version: 1.0.73-4🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production in version: 1.0.74-0🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


website not displaying correctly

When selecting one of three example it jumps to the generator section, however return back to original home page does not show all other examples again, the slideshow does not show.

Ooh, well spotted. Thanks!


ES/Redis AWS Services - EC/ES Instance tagging

In order to [reason/outcome/goal], [someone or "we"] want [a specific change in product implementation/behavior]
Acceptance Criteria

[x] Making sure instance tagging is working so individual service instances can be traced back to customers for ES

Security considerations
n/a
Implementation sketch

[x] Update the broker code so that any AWS tagging can be made to each service instance to provide better tracking

https://github.com/cloud-gov/aws-broker/pull/129 for Elasticsearch
Redis does not support tags - the service guid was added to the name of the cluster


Link doesn't work in left sidemenu when I scroll down on main content window

Bug
The link doesn't work (unable to click on link) in left sidemenu (floating) (of angular material website - components page) when I scroll down on the main content window
What is the expected behavior?
I should be able to click on left sidemenu, even if I've scrolled down on the page.
What is the current behavior?
When I scroll down on the main content window the left floating sidemenu links become disabled or don't work.
What are the steps to reproduce?

Go to the Angular Material website
Go to Components Page
Expand 'Layout' option (Left-hand sidemenu)
Click on 'Card'
Scroll down to bottom of Main content
Go to left-hand sidemenu and try to click on 'Divider'

Which versions of AngularJS, Material, OS, and browsers are affected?
See current Angular Material website
Is there anything else we should know? Stack Traces, Screenshots, etc.
I've included a Giphy here:
http://www.giphy.com/gifs/k7yG7NKZPpHHUpxJtW

What browser are you using?
There's a seperate repo for the Material website: https://github.com/angular/material.angular.io

@neilbo Cannot reproduce the bug on chrome or firefox. Could you please provide more information?


Dockerfile does not build on armel

Hi,
I just tried building the Dockerfile on my armel box. It fails to build with the following error:
 ---> 7424d653b82a
Step 4/8 : RUN pip --no-cache-dir install --upgrade pip
 ---> Running in 629f7e46aa78
Traceback (most recent call last):
  File "/usr/local/bin/pip", line 7, in <module>
    from pip import main
  File "/usr/local/lib/python2.7/site-packages/pip/__init__.py", line 5, in <module>
    import logging
  File "/usr/local/lib/python2.7/logging/__init__.py", line 26, in <module>
    import sys, os, time, cStringIO, traceback, warnings, weakref, collections
  File "/usr/local/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (

The likely reason is that the FROM image is python:2, which contains a python built from source. The apt-get invocation however installs python packages from Debian.

@mhaas any way you can create a PR with the patch so long as it doesn't break anything else?

@Aareon I was just working on the PR, but I cannot run current master with the patch above due to commit 5de43fc45c32245facb8d12121c11903bc19b421
Does python-firetv now require python 3?
mhaas@ganymed:~/dev/python-firetv$ docker run python-firetv
Traceback (most recent call last):
  File "/usr/local/bin/firetv-server", line 7, in <module>
    from firetv.__main__ import main
  File "/usr/local/lib/python2.7/dist-packages/firetv/__main__.py", line 36
    def is_valid_host(host: str):
                          ^
SyntaxError: invalid syntax

odd. What version of Python are you using?


build: enable mysql service

att

On Unix, MySQL programs treat the host name localhost specially, in a way that is likely different from what you expect compared to other network-based programs: the client connects using a Unix socket file.

Lesson learned the hard (time wasting) way.


Introduce plyer as a dependency for kivy

Some features that we need are not implemented in the providers we use, there is a need for calling OS specific APIs in certain cases.
We have discussed this with @akshayaurora, and using plyer minght be a good way of going forward, instead of cluttering the kivy codebase with API calls for every platform.
Some of the most evident kivy features that need this is dpi and scale detection, on desktop, we hardcode 96. for dpi.
What do you guys think about this, are you ok with implementing suitable things in plyer and calling plyer from kivy? Or do you have other alternatives in mind?

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/24877068-introduce-plyer-as-a-dependency-for-kivy?utm_campaign=plugin&utm_content=tracker%2F42681&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F42681&utm_medium=issues&utm_source=github).

imho plyer should be merged then to kivy entirely.
what's the benefit of having a separate package which is part of kivy core then anyway?

@rnixx plyer features can and are used independently from kivy.

ok, i thought it's used within kivy only.

I am closing this. It was a discussion about whether something would be okay (apparently yes), rather than a request to take action.


Fetch runtime environment variables on startup

At startup, fetch environment variables from the database. If not found, crash the component.
Restructed app.js to wait till the initialization of database to obtain environment variables and then proceeds with setting up the Express app and starting the server.

@jugnu-appveen


Fixing outdated names and links + spacefish prompt

Some fisherman related repo names were changed, so the current links work until someone takes again the fisherman name. These outdated links were updated.
Spacefish added to the prompt package section.

@tiborsimon Thank you Tibor! 🎉


testing: Add errored tests to failed tests list.

Fixes: #4716

@showell, can you please check this? I am not sure I have found the problem you were pointing out. Can you elaborate what the problem was.
I have changed the code so that the tests which threw errors are also marked for re-run.

This code change looks likely correct to me.

Merged, thanks @umairwaheed!


horizontal/vertical line image annotation

Hi,
I wanted to add an Icon as an annotation to a horizontal/vertical line, and I saw that the only solution is to use an Image or a SizedPicture object, for which we have an example in the readme. I realised that there is also no parameter to change the position of the annotation in the y axis, which would be nice to have.
I saw the discussion when this line annotation feature was added and I think it would be best if this was generalised using Widgets instead of having separate parameters for Images or SizedPictures. Maybe this new annotation feature with widgets could be even more generalised and added to other objects such as RangeAnnotations, etc.
Thank you.

Hi @MartonGeda.
Thanks for your feedback.
Allow to use a widget in our drawing chart is not easy as you think (We are investigating about it)
BTW we can have a parameter to change the position.


About Code

请问代码什么时候会公布？

Any update on the code release?

The code is released. Feel free to contact me if you have any questions.


Plugin always unlock latch

With the new version homebridge-tedee v0.3.1 my door latch is constantly unlocked when I open the door via Homekit.
This is not good in my case.
Tedee-App works well.
My Config:
{
"platform": "TedeePlatform",
"emailAddress"<EMAIL_ADDRESS>"password": "smartapfel;-)",
"devices": [
{
"name": "Haustür",
"unlatchFromLockedToUnlocked": false,
"unlatchFromUnlockedToUnlocked": false,
"unlatchLock": false,
"disableUnlock": false,
"defaultLockName": "Haustür",
"defaultLatchName": "Haustür Falle"
}
],
"updateInterval": 30
},

Are you sure that you restarted Homebridge after setting unlatchFromLockedToUnlocked to false?
Can you check the logs for the entry that is added when you unlock the door?

Yes, i am shure!
How to check the Logs?

btw: my Config works well till updatimhg the Plugin today.

That highly depends on your installation method and whether you're using Hoobs. I suggest that you check the documentation based on how you installed Homebridge.

I don´t use Hoobs. Do you mean the Homebridge Log?
[19.5.2021, 11:00:21] [TedeePlatform] [Haustür] Close via HomeKit requested.
[19.5.2021, 11:00:21] [TedeePlatform] [Haustür] Closed via API.
[19.5.2021, 11:00:29] [TedeePlatform] [Haustür] Open via HomeKit requested.
[19.5.2021, 11:00:30] [TedeePlatform] [Haustür] Opened via API.

OK, that looks fine to me (the plugin sends the OPEN command, not the PULL-SPRING command).
The issue is related to #11, there might have been some changed from Tedee that changed the behavior.
I'm closing this issue, you problem will be tracked in #11.


Feature Request - VisualID search

Is your feature request related to a problem? Please describe.
From the workspace monitoring (or the log analytics) i can find the Visual ID for a visual that contributes to my capacity utilization (for optimization purposes).  But currently with a VisualID it can be difficult to identify where in the report this resides (specifically for large reports with multiple pages and lots of visuals).
Describe the solution you'd like
Would be great to have a function in semantic link labs that allows me to pass a visualID and return details of the visual - either name, or page, or type, or location on page, etc.
Describe alternatives you've considered
I've tried using PBIP format - but since moving to TMDL, the report.json no longer contains a complete list of visuals.  Its now split by page, and requires a lot of tedious searching.
I've also tried using the embedded APIs - but this requires you to loop through pages, and print all visuals per page, and then search.  Its also quite a few clicks.
Additional context
Add any other context or screenshots about the feature request here.

The list_visuals function within the ReportWrapper gives you this info for all visuals within a report.
Here is a notebook which shows how to use it and other related functions.
https://github.com/microsoft/semantic-link-labs/blob/main/notebooks/Report Analysis.ipynb


Webhook Notifications for Document Processing Status Updates

Really impressed with the product. Great work!
I’m using your document processing/ingestion service and encountered a use case that would greatly benefit from webhook support. Currently, we need to implement regular polling to check the status of document processing, which creates additional load on both the client and server. Since document processing can take several minutes, a webhook notification upon processing completion or error would allow us to handle workflows without continuous polling efficiently.
I'm currently polling this API - https://api.groundx.ai/api/v1/ingest/{processId} every 30 seconds to check the status of each process using bullmq and redis. It'd be great to know if you are willing or planning to introduce a webhook for the same.

Hey! @Mauriceac @dphuang2 @eddiechayes
Any update on this?

Hey @Mauriceac @eddiechayes @dphuang2
Any update on this?

Hey @Mauriceac @eddiechayes @dphuang2 Any update on this?

Hi @varun508, if you haven't gotten any feedback yet, I'd recommend filling out the contact form.
(BTW, I only worked with GroundX for a very specific project as an external contractor.)


Logo

gulag-web has one how come we don't. hmph

i beg to differ

if someone proposes a logo sure but i'm far from a designer myself lol..
also personally could care less for anything so only if it's really clean probably :P

hi


Deploy only a folder of the repository

Hi guys,
Is possible to deploy a folder of the repository?
Regards, Nicholls

https://github.com/shipitjs/shipit-deploy/issues/116

Excuse me, thanks!