WebAPI: Unable to get rhx_gis from init request

Please follow the guide below

Issues submitted without this template format will be ignored.
Please read the questions carefully and answer completely.
Do not post screenshots of error messages or code.
Put an x into all the boxes [ ] relevant to your issue (==> [x] no spaces).
Use the Preview tab to see how your issue will actually look like.
Issues about reverse engineering is out of scope and will be closed without response.
Any mention of spam-like actions or spam-related tools/libs/etc is strictly not allowed.

Before submitting an issue, make sure you have:

[x] Updated to the lastest version v1.6.0
[x] Read the README and docs
[x] Searched the bugtracker for similar issues including closed ones
[x] Reviewed the sample code in tests and examples

Which client are you using?

[ ] app (instagram_private_api/)
[x] web (instagram_web_api/)

Describe your issue
Hi everyone,
From today web api will report error "Unable to get rhx_gis from init request".
I researched about this issue in other projects, some suggest to remove rhx_gis and X-Instagram-GIS, I tried this solution, at first it could successfully login and call api, but later web api reported "instagram_web_api.errors.ClientBadRequestError". I had also processed the challenges from IG website, but still no success any more.
Would be very nice if someone finds how to fix this new change.
Thanks.

Paste the output of python -V here:
Code:
# Example code that will produce the error reported
from instagram_web_api import Client

    api = Client(proxy=getProxy(),  settings=None,
                 username=username, password=password)
    api.login()

Error/Debug Log:
File "/Library/Python/2.7/site-packages/instagram_web_api/client.py", line 390, in login
login_res = self._make_request('https://www.instagram.com/accounts/login/ajax/', params=params)
File "/Library/Python/2.7/site-packages/instagram_web_api/client.py", line 291, in _make_request
raise ClientBadRequestError(msg, e.code)
ClientBadRequestError: HTTPError "Bad Request" while opening https://www.instagram.com/accounts/login/ajax/

@xinhuang327
Your issue report does not conform to the issue template that has been specified for this repo:
https://raw.githubusercontent.com/ping/instagram_private_api/master/.github/ISSUE_TEMPLATE.md
Please edit your issue to comply with the template requirement.
This issue will be closed after 24 hours if no followup action is taken.

[This comment is auto-generated. ref=notemplate]

I'm getting the same issue. Using version 1.6.0, with instagram_web_api.
When I call:
Client(auto_patch=True, drop_incompat_keys=False)
I get
ClientError: Unable to get rhx_gis from init request.

Yes, the same issue. rhx_gis was expelled from IG response

I've just run into the same issue and fixed it temporarily by using a static rhx_gis that I found online. Use something like this to get it working for now:
rhx_gis = self._extract_rhx_gis(init_res_content) or "4f8732eb9ba7d1c8e8897a75d6474d4eb3f5279137431b2aafb71fafe2abe178"

I've just run into the same issue and fixed it temporarily by using a static rhx_gis that I found online. Use something like this to get it working for now:
rhx_gis = self._extract_rhx_gis(init_res_content) or "4f8732eb9ba7d1c8e8897a75d6474d4eb3f5279137431b2aafb71fafe2abe178"```

I do not work with this library, but I also encountered this problem. With the help of js reverse, I seem to have found a solution.
In sharedData data is output on the page. See field config->viewerId. It is now transmitted instead of rhx_gis. The string to form md5 looks like: {"id": "11612471724"}
{     "config": {         "csrf_token": "xoKnKvuk9HXYAyO7nwNP9BQVxfxvlEvw",         "viewerId": "11612471724"     }, ...

Based on two upper commenters:
line 317 in client.py
def _extract_rhx_gis(html):
    tmp_str = ':{"id":"'+f'{random.randint(10000000,99999999)}'+'"}'
    return hashlib.md5(b'tmp_str')

Will solve the problem

Based on two upper commenters:
line 317 in client.py
def _extract_rhx_gis(html):
    tmp_str = ':{"id":"'+f'{random.randint(10000000,99999999)}'+'"}'
    return hashlib.md5(b'tmp_str')

Will solve the problem

You can actually put any string there and it will work, you don't have to extract anything. I've tried that myself though.

Based on two upper commenters:
line 317 in client.py
def _extract_rhx_gis(html):
    tmp_str = ':{"id":"'+f'{random.randint(10000000,99999999)}'+'"}'
    return hashlib.md5(b'tmp_str')

Will solve the problem

This works for Python 3.5+
Here is a solution which works on 2.7 for me
def _extract_rhx_gis(html):
tmp_str = ':{"id":{"'+ "{}" +'"}}'.format(random.randint(10000000,99999999))
return hashlib.md5(b'tmp_str')

Had to make some changes to the code above to make it work:
def _extract_rhx_gis(html):     tmp_str = ':{"id":"'+f'{random.randint(10000000,99999999)}'+'"}'     return hashlib.md5(tmp_str.encode()).hexdigest()
b'tmp_str' is just the string 'tmp_str', which negates the point of generating one

This is still an issue :)

I've put the fix that @Mithorium suggested in a fork and made a pull request into the base repository. Take it or leave it but I hope this can be resolved soon!
Instagram's changed their APIs out from under us before and it's always a bit of a fire drill getting them up and running again

I'm still having this problem. I don't think the PR will be accepted though @thekensman , both lines of code added produce security issues in Codacy.

Yes I'm not sure if there's a more secure fix to be had - the PR is there for convenience, or to inspire a more robust solution to replace it

I've fixed this issue with creating new class and overwrite it's static method.
import hashlib
import string
import random

from instagram_web_api import Client

class MyClient(Client):
    @staticmethod
    def _extract_rhx_gis(html):
        options = string.ascii_lowercase + string.digits
        text = ''.join([random.choice(options) for _ in range(8)])
        return hashlib.md5(text.encode())

for some reasons @pourya2374 's code gives me an error. So I edited it slightly to fix this error:
import hashlib
import string
import random

from instagram_web_api import Client

class MyClient(Client):
    @staticmethod
    def _extract_rhx_gis(html):
        options = string.ascii_lowercase + string.digits
        text = ''.join([random.choice(options) for _ in range(8)])
        return hashlib.md5(text.encode()).hexdigest()

This issue is still present, why isn't there any fix on the master branch yet?

@javad94 it worked for me a few weeks but suddenly I'm getting the same error:
instagram_web_api.errors.ClientBadRequestError: HTTPError "Bad Request" while opening https://www.instagram.com/accounts/login/ajax/
77db6e1c30c697195362aa4ed593

Getting same error as @pyinto
instagram_web_api.errors.ClientBadRequestError: HTTPError "Bad Request" while opening https://www.instagram.com/accounts/login/ajax

Instagram does not allow sending a plain text password at accounts/login/ajax/ anymore, it requires enc_password parameter instead. Refer to this dilame/instagram-private-api#1010

I provided a fix with code from @javad94

@eracle I tried your fix, but as others described, now I'm getting:
instagram_web_api.errors.ClientBadRequestError: HTTPError "Bad Request" while opening https://www.instagram.com/accounts/login/ajax/

Not sure how to fix per the enc_password parameter, as @fenchelfen pointed out.

No solutions ? i still have the same error as @agucova

Here is the working solution as of 1 July, use MyClient instead of using the libraries class directly.
`class MyClient(Client):
@staticmethod
def _extract_rhx_gis(html):
options = string.ascii_lowercase + string.digits
text = ''.join([random.choice(options) for _ in range(8)])
return hashlib.md5(text.encode()).hexdigest()
def login(self):
    """Login to the web site."""
    if not self.username or not self.password:
        raise ClientError('username/password is blank')

    time = str(int(datetime.datetime.now().timestamp()))
    enc_password = f"#PWD_INSTAGRAM_BROWSER:0:{time}:{self.password}"

    params = {'username': self.username, 'enc_password': enc_password, 'queryParams': '{}', 'optIntoOneTap': False}
    self._init_rollout_hash()
    login_res = self._make_request('https://www.instagram.com/accounts/login/ajax/', params=params)
    if not login_res.get('status', '') == 'ok' or not login_res.get ('authenticated'):
        raise ClientLoginError('Unable to login')

    if self.on_login:
        on_login_callback = self.on_login
        on_login_callback(self)
    return login_res`

No solutions ? i still have the same error as @agucova
Please take a look at the code above.

No solutions ? i still have the same error as @agucova

Please take a look at the code above.

 I don't know how to add cookies to them, I get an error.
Unexpected exception: _ _ init__ () accepts 1 to 2 positional arguments bat 3 were given
In the line:
api = MyClient(
                    username, password,
                    on_login=lambda x: self.onlogin_callback(x, self.file_name))

I'm just trying to create and make an example from here:
https://github.com/ping/instagram_private_api/blob/master/examples/savesettings_logincallback.py

No solutions ? i still have the same error as @agucova

Please take a look at the code above.

 I don't know how to add cookies to them, I get an error.
Unexpected exception: _ _ init__ () accepts 1 to 2 positional arguments bat 3 were given
In the line:
api = MyClient(
                    username, password,
                    on_login=lambda x: self.onlogin_callback(x, self.file_name))

I'm just trying to create and make an example from here:
https://github.com/ping/instagram_private_api/blob/master/examples/savesettings_logincallback.py

well actually you have to remove the self before 'onlogin_callback'

Hey guys, this is web enc_password api:
https://leesoar.com/api-v1/ig?pub_key=20ed90203c457a2f9efc20820c2452403bff6424de39ff9cc928a751e07f6915&pub_id=229&pwd=xxx&t=1596703337&secret_key=a9ad0489a73146c68ec514ffce5cbaba
the secret_key have 200 times.

"t" is timestamp
"pwd" is password
"version" is pub_version, and default is 10
"action" default is "enc_password"

It returns:
{ "code": 1, "message": "ok", "enc_password": "#PWD_INSTAGRAM_BROWSER:10:1596703337:AQpQAH4W1vHVVa7730diM49fhY5Cn0CsgfGsZ5zA613WkRJDn3ujkqqwEdtnV7BrjgJsW3zinQ1OrSnTdgU2We72gWztHxM7OW2NSfvVR/4AGuCZGbR8mpk30wEzP4Z9tPLfxmr/o3Nmk6v7", "pub_key": "20ed90203c457a2f9efc20820c2452403bff6424de39ff9cc928a751e07f6915", "pub_id": "229", "pwd": "xxx", "version": 10, "t": "1596703337" }

python 2.7 script version of @HashamGhuffary
import hashlib
import string
import random
from instagram_web_api import Client, ClientCompatPatch, ClientError, ClientLoginError
import  time

class MyClient(Client):

    @staticmethod
    def _extract_rhx_gis(html):
        options = string.ascii_lowercase + string.digits
        text = ''.join([random.choice(options) for _ in range(8)])
        return hashlib.md5(text.encode()).hexdigest()

    def login(self):
        self.username = ''
        self.password = ''
        """Login to the web site."""
        if not self.username or not self.password:
            raise ClientError('username/password is blank')

        #time = str(int(datetime.datetime.now().timestamp()))
        #enc_password = f"#PWD_INSTAGRAM_BROWSER:0:{time}:{self.password}"
        enc_password = ("#PWD_INSTAGRAM_BROWSER:0:{}:{}".format(int(time.time()), self.password)) #python2.7

        params = {'username': self.username, 'enc_password': enc_password, 'queryParams': '{}', 'optIntoOneTap': False}
        self._init_rollout_hash()
        login_res = self._make_request('https://www.instagram.com/accounts/login/ajax/', params=params)
        if not login_res.get('status', '') == 'ok' or not login_res.get ('authenticated'):
            raise ClientLoginError('Unable to login')

        if self.on_login:
            on_login_callback = self.on_login
            on_login_callback(self)
        return login_res

I have the same issue. In on web mode and when I tried with Client() return rhx_gis error.
Any solution?
Thanks!!

Here is the working solution as of 1 July, use MyClient instead of using the libraries class directly.
import hashlib
import string
import random
from instagram_web_api import Client, ClientCompatPatch, ClientError, ClientLoginError
import datetime

class MyClient(Client):

    @staticmethod
    def _extract_rhx_gis(html):
        options = string.ascii_lowercase + string.digits
        text = ''.join([random.choice(options) for _ in range(8)])
        return hashlib.md5(text.encode()).hexdigest()

    def login(self):
        """Login to the web site."""
        if not self.username or not self.password:
            raise ClientError('username/password is blank')

        time = str(int(datetime.datetime.now().timestamp()))
        enc_password = f"#PWD_INSTAGRAM_BROWSER:0:{time}:{self.password}"

        params = {'username': self.username, 'enc_password': enc_password, 'queryParams': '{}', 'optIntoOneTap': False}
        self._init_rollout_hash()
        login_res = self._make_request('https://www.instagram.com/accounts/login/ajax/', params=params)
        if not login_res.get('status', '') == 'ok' or not login_res.get ('authenticated'):
            raise ClientLoginError('Unable to login')

        if self.on_login:
            on_login_callback = self.on_login
            on_login_callback(self)
        return login_res

I'm a little confused? Where does this go? Does anything else need to be replaced so that the MyClient class will be used instead?

@ajbenz18 you should put that at top of your script.

Using this solution gave me a JSONDecodeError when using user_info2
Is this a function that you have be authenticated to use?
Traceback (most recent call last):   File "c:\Users\DavWi\OneDrive\Desktop\projects\instadata\test2.py", line 38, in <module>     print(fc.user_info2(1176013646))   File "C:\Users\DavWi\AppData\Local\Programs\Python\Python39\lib\site-packages\instagram_web_api\client.py", line 433, in user_info2     info = self._make_request(endpoint, query={'__a': '1'})   File "C:\Users\DavWi\AppData\Local\Programs\Python\Python39\lib\site-packages\instagram_web_api\client.py", line 284, in _make_request     return json.loads(response_content)   File "C:\Users\DavWi\AppData\Local\Programs\Python\Python39\lib\json\__init__.py", line 346, in loads     return _default_decoder.decode(s)   File "C:\Users\DavWi\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 337, in decode     obj, end = self.raw_decode(s, idx=_w(s, 0).end())   File "C:\Users\DavWi\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 355, in raw_decode     raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

@DavideWiest
you're better off using python 3.5 or 2.7

#enc_password = f"#PWD_INSTAGRAM_BROWSER:0:{time}:{self.password}"
enc_password = ("#PWD_INSTAGRAM_BROWSER:0:{}:{}".format(int(time.time()), self.password)) #python2.7
For others running into issues, please note these 2 lines in the code i posted above ^_^ the syntax for formatting password changes from 2.7 to 3.5 ...

Ok, thanks!

@DavideWiest
you're better off using python 3.5 or 2.7

does this fix the issue or is it just better generally when using the package?

from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

@DavideWiest
you're better off using python 3.5 or 2.7

does this fix the issue or is it just better generally when using the package?

Weere you able to get a solution?

@Ladet02
I now use user_info and log in instead

Here is the working solution as of 1 July, use MyClient instead of using the libraries class directly.
import hashlib
import string
import random
from instagram_web_api import Client, ClientCompatPatch, ClientError, ClientLoginError
import datetime

class MyClient(Client):

    @staticmethod
    def _extract_rhx_gis(html):
        options = string.ascii_lowercase + string.digits
        text = ''.join([random.choice(options) for _ in range(8)])
        return hashlib.md5(text.encode()).hexdigest()

    def login(self):
        """Login to the web site."""
        if not self.username or not self.password:
            raise ClientError('username/password is blank')

        time = str(int(datetime.datetime.now().timestamp()))
        enc_password = f"#PWD_INSTAGRAM_BROWSER:0:{time}:{self.password}"

        params = {'username': self.username, 'enc_password': enc_password, 'queryParams': '{}', 'optIntoOneTap': False}
        self._init_rollout_hash()
        login_res = self._make_request('https://www.instagram.com/accounts/login/ajax/', params=params)
        if not login_res.get('status', '') == 'ok' or not login_res.get ('authenticated'):
            raise ClientLoginError('Unable to login')

        if self.on_login:
            on_login_callback = self.on_login
            on_login_callback(self)
        return login_res

it worked for me
the problem was the params var
params = {'username': self.username, 'password': self.password, 'queryParams': '{}'} # this no longer work
but as you provided
enc_password = f"#PWD_INSTAGRAM_BROWSER:0:{time}:{self.password}"
params = {'username': self.username, 'enc_password': enc_password, 'queryParams': '{}', 'optIntoOneTap': False}
this worked 100%
thank you


Thesis rejected because of the Quote page

I had my thesis rejected because of the Quote page.
In this template, the quote is put as the second cover page. This includes all the title information, as it just a variation of the cover, with a cover instead of a figure.
This got my document rejected.
Turns out the quote is supposed to be on an empty page, last thing in the cover pages (after the abstracts).

Quote was removed on 42b16ba
The only thing left to do is remove the \Quote command, which is no longer needed, and this issue can be closed
https://github.com/detiuaveiro/ua-thesis-template/blob/442912ca7671f50fc8c1aed51985954a06fe1533/uaThesisTemplate.sty#L36


Remove book notebook from toc

This PR fixes #14116
Book notebooks:

Standalone notebooks:

Pull Request Test Coverage Report for Build 647153169

26 of 33 (78.79%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.001%) to 43.179%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

extensions/notebook/src/book/bookTreeItem.ts
15
17
88.24%

extensions/notebook/src/book/bookTreeView.ts
2
4
50.0%

extensions/notebook/src/book/bookTocManager.ts
4
7
57.14%

Totals

Change from base Build 647126944:
-0.001%

Covered Lines:
25314

Relevant Lines:
53458

💛  - Coveralls


VPS crash when I run the main program

Hi, Thank you for spending time reading this.
I am having a weird problem. I have an expressvpn subscription and I install the ubuntu python binding according to your post. The script runs on a remote server, a VPS in this case. Unfortunately,  the VPS usually freeze after I run the script and I have to restart the server. Any idea why that is the case or am I missing something?
Thank you so much and best regards

Can you try to run it locally and try to see if any errors occur? It's possible that we have to upgrade the express VPN to a newer version.

Try to run this script: https://github.com/philipperemy/expressvpn-python/blob/master/vpn.sh
It should update your IP every 60 seconds. I think that's a good start for troubleshooting.

Thank you so much for your quick response
Also, when I try to scrape with the keyword "umbrella", there is a section on the search result page that gives

which display on the webpage:

Is there a conflict between this section and the line


iOS targets failing to build with 'Could not find "org.kodein.type:kodein-type"'

Hello,
Recently, our iOS builds started failing with the following error in modules that depend on kodein-core ("org.kodein.di:kodein-di"):
Could not find "org.kodein.type:kodein-type" in [/<project_folder>, /<user_folder>/.konan/klib, /<user_folder>/.konan/kotlin-native-prebuilt-macos-aarch64-1.8.22/klib/common, /<user_folder>/.konan/kotlin-native-prebuilt-macos-aarch64-1.8.22/klib/platform/ios_simulator_arm64]
We're not entirely sure what's causing the issue but, among several changes, we recently upgraded Android Gradle Plugin to version 8. Besides that, we're using:

Kotlin 1.8.22
Kodein 7.20.2

What we tried so far:

Playing around with different Kotlin and Kodein versions
Deleting gradle and Xcode caches and re-downloading dependencies
Explicitly declaring the kodein dependency on affected modules
Explicitly declaring the kodein repo dependency on affected modules
Separating dependencies per target instead of having a shared commonMain dependency
Downgrading to AGP 7, but this one isn't possible due to other dependencies in the project

Another detail is that we're not using Cocoapods for the iOS framework but, instead, we build the XCFramework with the auto-generated gradle task ./gradlew <project>:embedAndSignAppleFrameworkForXcode
Android is still working with no issues, it's only affecting iOS.
Any clues as to what could be causing the failure?
Is there any other information we might provide to help debug the issue?

You shouldn't need to add transitive dependencies, neither for iOS nor Android.
Unless you are doing some custom work with the TypeTokens?
As you are building an XCFramework, did you add your modules as export of your iOS build?


scaffolder-backend-module-kubernetes - version:bump to v1.34.2

Backstage release v1.34.2 has been published, this Pull Request contains the changes to upgrade scaffolder-backend-module-kubernetes to this new release
Please review the changelog before approving, there may be manual changes needed:

Changelog: v1.34.2
Upgrade Helper: From 1.33.0 to 1.34.2

Created by Version Bump<PHONE_NUMBER>8

Taking the version bump approach as it seems like a safe path than using Renovate - https://github.com/backstage/community-plugins/pull/2149


Add custom email backends.

Allow users to configure a custom email backend using the
EMAIL_BACKEND configuration variable, which accepts a dotted import
path. The backend defaults to the existing send_email helper, which is
renamed to send_email_smtp. This can be used to send email without
using SMTP, e.g. when sending mail via API.
Note: this patch uses importlib instead of the deprecated imp module
which is used elsewhere throughout airflow.
[Resolves #1103]

@jmcarp if you dont mind adding the tests in this patch that would be great!

@bolkedebruin tests added! I see that the builds are failing in check-license.sh, but not sure why--other PRs seem to be failing with the same error.

Tests failing are unrelated to this PR. I need to fix that. Will merge this one.


Backpacks dupe themselves very easily

Version 20.1-0.4-v2
Dying with a backpack in trinket slot both places the backpack on the ground, and drops one as an item.
In creative, equipping a backpack to trinket slot, unequipping and reequipping it will duplicate itself into a different available trinket slot. These duplicates place them in any and all slots. Mods adding trinket slots installed are Things, Supplementaries, and Cosmetic Armor.
https://github.com/BeansGalaxy/Beans-Backpacks-2/assets/121355849/ca6ad0e9-89c0-4f14-b963-68f8e3b4e3da

Further information about the dying dupe method; it occurs with raw vanilla item splatter, no grave required. (just read the death dupe related to gravemod post and thought to clarify)
Also just tested on a raw profile, just this mod and fabric API. Both issues are specifically trinket slot related, death dupe not replicable with the pseudo slot added by this mod.

Dying with a backpack was a problem in Curios and Trinkets and is now fixed in 20.1-0.5-v2. As for the creative bug, I re-wrote how I access the Curios/Trinkets slot so that it will always check and set to the 1st back slot.


Utilize the SmallRye OpenAPI library (smallrye-open-api 1.0.0)

This fixes issue https://github.com/thorntail/thorntail/issues/972 for v2 of Thorntail.
Please take a look at the fraction module configuration.  I think it's OK but wouldn't bet much money on it.  Otherwise it's mostly the removal of code. :)

[*] Have you followed the guidelines in our Contributing document?
[ ] [v2] Have you created a JIRA and used it in the commit message?
[ ] [v4] Have you created a GitHub Issue and used it in the commit message?
[*] Have you checked to ensure there aren't other open Pull Requests for the same issue?
[*] Have you built the project locally prior to submission with mvn clean install?

OpenAPI TCK test fails on Win, I would've merged if some other non-related test failed there but I guess it may require a bit more investigation ?

It did?  That's odd - I tested the build on Windows.  The OpenAPI stuff passed but all the docker stuff failed because I don't have docker installed on my windows box.
Looks like Fault Tolerance fails.  Some change I made affected FT somehow??
https://ci.wildfly-swarm.io/job/thorntail-pull-request-windows/454/testReport/

The test failure is:  https://ci.wildfly-swarm.io/job/thorntail-pull-request-windows/io.thorntail.testsuite$thorntail-microprofile-tck-fault-tolerance/454/testReport/org.eclipse.microprofile.fault.tolerance.tck.bulkhead/BulkheadAsynchRetryTest/testBulkheadPassiveRetryMethodAsynchronous55/
Unrelated?

Oops, my fault, I spotted:
2018-07-02 07:32:42,697 INFO  [org.jboss.weld.Bootstrap] (pool-1-thread-1) WELD-ENV-002001: Weld SE container internal shut down
java.nio.file.FileSystemException: C:\opt\jenkins\workspace\thorntail-pull-request-windows\testsuite\microprofile-tcks\openapi\target\wfswarmarquillian4461460192853962195.tmp: The process cannot access the file because it is being used by another process.
and got confused, sorry about it, will merge tomorrow then to give a bit more time for others to have a look ...thanks


MM-44524_Add prompt to start trial in Create Team menu entry

Summary
Add prompt to start trial in Create Team menu entry
Ticket Link
https://mattermost.atlassian.net/browse/MM-44524
Screenshots
Limit reached, no trial, view plans:
https://user-images.githubusercontent.com/79058848/170797496-e2408d1c-64d8-4625-a267-6795f0fb067a.mp4
Limit reached, no trial, start trial:
https://user-images.githubusercontent.com/79058848/170797559-2f6ca95a-b636-4fa8-b70f-85b12da0774c.mp4
Trial started:
https://user-images.githubusercontent.com/79058848/170797932-0936cf77-8ec4-4586-9d4d-d00ba7d79d4c.mp4
Trial expired:
https://user-images.githubusercontent.com/79058848/171214485-5f88b539-6bec-4f03-8db9-63a81b88c9b2.mp4
Release Note
NONE

/e2e-test

Successfully triggered e2e testing!
https://git.internal.mattermost.com/qa/cypress-ui-automation/-/pipelines/199663

/e2e-test

Error trying doing the automated Cherry picking. Please do this manually
+++ Updating remotes...
Fetching upstream
Failed to add the RSA host key for IP address '<IP_ADDRESS>' to the list of known hosts (/app/.ssh/known_hosts).
From github.com:mattermost/mattermost-webapp
   fbd9fafd2..1e91440a5  master     -> upstream/master
Fetching origin
Failed to add the RSA host key for IP address '<IP_ADDRESS>' to the list of known hosts (/app/.ssh/known_hosts).
+++ Updating remotes done...
!!! 'upstream/release-cloud' not found. The second argument should be something like upstream/release-0.21.
    (In particular, it needs to be a valid, existing remote branch that I can 'git checkout'.)

+++ Returning you to the master branch and cleaning up.

/cherry-pick cloud

Cherry pick is scheduled.


What is a DQN policy?

In the module stable_baselines.deepq.policies, you have a lot of policies for DQN. This is all very nice, but Q-learning (and DQN) is an off-policy and value-based method, which means that we should be learning a state-action value function with a behaviour policy (like epsilon-ungreedy) that is derived from that value function (which, of course, does not need parameters, apart from the greek letter), not a policy, so what the heck do these policies represent? Are they actually the state-action value function Q(s, a) (in the case of the DQN, a neural network), or what? That's the only thing in DQN that has parameters anyway, so I guess that all those "policies" there are actually neural networks that represent state-action value functions Q(s, a). Right? The documentation is as useless as it could ever be:

Policy object that implements a DQN policy

Yes, I did not look at the code yet.

Hello,
We clarify that point in the developer guide of Stable-Baselines3:
"When we refer to “policy” in Stable-Baselines, this is usually an abuse of language compared to RL terminology. In SB3, “policy” refers to the class that handles all the networks useful for training, so not only the network used to predict actions (the “learned controller”). For instance, the TD3 policy contains the actor, the critic and the target networks."

@araffin Thanks for the answer!
I am not sure this is a good design choice. There is too much abstraction (huh??), in the sense that all RL concepts are lost, for someone that wants to tweak the code, but I guess baselines and stable baselines were not meant for this use case (i.e. to allow the customization of the existing code, models, algorithms, etc).

I am not sure this is a good design choice. There is too much abstraction (huh??), in the sense that (almost) all "usual" RL concepts are lost, for someone that wants to tweak the code, but I guess baselines and stable baselines were not meant for this use case (i.e. to allow the customization of the existing code, models, algorithms, etc).

This is mostly to allow the nice one line syntax that is common to all algorithms. That way, you can use RL algorithms without a complete and detailed knowledge of each algorithm (for instance knowing that SAC has an actor and critic network and that the actor must have a squashing function).
But once you know what we mean by policy in the context of SB, the abuse of language should not be too hard to overcome ;)
If you want to tweak the code, please take a look at Stable-Baselines3, the internals are much cleaner than SB2 ;)

@araffin Ok, just to confirm that I understood. Policies are classes that contain either critics (value functions, in RL terminology) and actors (policies in RL terminology), or any other model that contains trainable parameters. If that's the case, then, e.g., in the case of DQN, you can do as follows (in SB2)
model = DQN(MlpPolicy)
model.learn(total_timesteps=10000)

and MlpPolicy contains the value function. What about DQN? Is this the algorithm you're talking about, in the SB3 documentation, that updates the actual value function?

s this the algorithm you're talking about, in the SB3 documentation, that updates the actual value function?

yes

So, is this class DQN the one actually responsible for collecting samples and training the MlpPolicy?

yes

I think of the class DQN as the RL algorithm and as MlpPolicy as the "model" (either a policy or value function(s))?

yes, that's why we have a BaseAlgorithm and a BaseModel (and BasePolicy derives from BaseModel) ;) (as mentioned here)

Hi @araffin,
Thanks for the explanation.
I would like to customize the Policy for the DQN algorithm, is it possible to do that?
In fact i did try, but i got an error.
`from stable_baselines3 import DQN
from stable_baselines3.common.cmd_util import make_vec_env
import gym
import torch as th
env = CustomEnv()
env = make_vec_env(lambda: env, n_envs=1)
policy_kwargs = dict(activation_fn=th.nn.ReLU,
net_arch=[dict(pi=[4,], vf=[4,])])
model = DQN('MlpPolicy', env, policy_kwargs=policy_kwargs, verbose=1)`
I just want to test a neural network with 4 nodes as inputs (actions) and 4 nodes as outputs (actions).
This is the error that I'm having:
TypeError: empty() received an invalid combination of arguments - got (tuple, dtype=NoneType, device=NoneType), but expected one of:

(tuple of ints size, *, tuple of names names, torch.memory_format memory_format, torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool requires_grad)
(tuple of ints size, *, torch.memory_format memory_format, Tensor out, torch.dtype dtype, torch.layout layout, torch.device device, bool pin_memory, bool requires_grad)

@sheila-janota
You have an extra "[...]" around your net_arch parameter value. Removing those should fix it.
Note that this does not set the number of inputs or outputs; only the sizes of the "hidden layers". The input and output sizes are automatically set to match whatever the environment requires/provides :)

Hi @Miffyli,
Thanks for the insight.
So this means that when I set the environment with the observation space and action space they turn out to be the number of nodes for input and output?
In my case I'm not going to work with hidden layers.
I did visit the stable-baseline3 github, there is a lot of information, and I just want to implement something basic to really understand how it works.

Yes, that is right. Note that by default the network will use two (hidden) layers of 64 nodes, so you might want to change this if you believe it is not enough for your application.

Can i set the hidden layers as None or zero?

You would have to try that, I can not say for sure it would work with net_arch={"pi": [], "vf": []}.

Thanks, very much!

Note: dqn only has a q network, so it would be: net_arch=[]

Hi @araffin,
Thanks.
You mean that, when i use net_arch=[] the neural network architecture will be created without hidden layers, correct?

@sheila-janota Yup!


problem ingesting delimited file to druid

Hi
I like to ingest delimited file to druid. However, I cannot ingest anything because my data is not parsed. I am not sure where is not correct
My tsv file is like
1, 0
2.8736, 8.29
7.10, 8.83
My task spec is below
{
"type" : "index",
"spec" : {
"dataSchema" : {
"dataSource" : "test_append",
"timestampSpec": {
"column": "timestamp",
"format": "iso"
},
"dimensionsSpec" : {
"dimensions": [{ "name" : "requested", "type" : "long" },
{ "name" : "bfee", "type" : "long" }
]
}
},
"ioConfig" : {
"type" : "index",
"inputSource" : {
"type" : "local",
"baseDir" : "/tmp/test",
"filter" : "test_append.csv"
},
"inputFormat" : {
"type" : "tsv",
"columns" : [ "requested", "bfee" ]
},
"appendToExisting" : true,
"dropExisting" : false
},
"tuningConfig" : {
"type" : "index_parallel",
"maxRowsPerSegment" : 5000000,
"maxRowsInMemory" : 25000
}
}
}
Log shows data is not parsed so cannot be published
2023-12-04T21:40:43,048 INFO [[index_test_append_bnilolmo_2023-12-04T21:40:38.315Z]-appenderator-merge] org.apache.druid.segment.realtime.appenderator.AppenderatorImpl - Preparing to push (stats): processed rows: [0], sinks: [0], fireHydrants (across sinks): [0]
2023-12-04T21:40:43,049 INFO [[index_test_append_bnilolmo_2023-12-04T21:40:38.315Z]-appenderator-merge] org.apache.druid.segment.realtime.appenderator.AppenderatorImpl - Push complete...
2023-12-04T21:40:43,057 INFO [task-runner-0-priority-0] org.apache.druid.segment.realtime.appenderator.BaseAppenderatorDriver - Nothing to publish, skipping publish step.
2023-12-04T21:40:43,058 INFO [task-runner-0-priority-0] org.apache.druid.indexing.common.task.IndexTask - Processed[0] events, unparseable[4], thrownAway[0].

Based on the input file name and contents, It looks like you're passing in a .csv file. However, under inputFormat you've specified the type as tsv which is likely causing parse exceptions.
Also - you can set logParseExceptions: true under tuningConfig in order to include the parsing exceptions in your ingestion logs.


Migrate works page to base page

Who's it for?
Us.
Problem to be solved
Migrate the works page to the base page so it can use all components consistently across the whole site.
Done when
out of scope
Page redesign, ie design enhancements that aren't urgent but 'nice to have'
Components

[ ] Image viewer
[x] Buttons
[ ] Meta unit(s)
[ ] Drawer - if needed?
[x] Download module: done with heading and buttons
[ ] Share module: button done; text input / text area to be done
[ ] Licence module
[ ] Captioned image
[ ] Alert ("improving how search works")

Tick = in design system and available on base page

Closing these as I think these pages are going to have a life of their own.


Problems with images

I upload the logo and favicon but they don't render on my pages.

I can't reproduce this problem with Grav 1.6.11, favion and logo are shown with no problems. Are you sure this is a problem with cache?

It worked. I didn't put the right paths to the images i guess. I created a folder for images and it worked. But i have a question, why can't I get the images to display on pages, i attach an image to the page then click import but it doesn't display. Am i doing it wrong? I'm new to grav, sorry.

It is up to what page you are editing. A page has its specific template and the template is used for a specific purpose. So maybe the page's template doesn't show the content where the image is inserted and it just show the content of the page's custom fields.


[core] Make case insensitive dict public

Description
Please add an informative description that covers that changes made by the pull request and link all relevant issues.
If an SDK is being regenerated based on a new swagger spec, a link to the pull request containing these swagger spec changes has been included above.
All SDK Contribution checklist:

[ ] The pull request does not introduce [breaking changes]
[ ] CHANGELOG is updated for new features, bug fixes or other significant changes.
[ ] I have read the contribution guidelines.

General Guidelines and Best Practices

[ ] Title of the pull request is clear and informative.
[ ] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

@xiangyan99 thanks, let me add now

API changes have been detected in azure-cosmos. You can review API changes here

API changes have been detected in azure-core. You can review API changes here
API changes
+ def azure.core.utils.case_insensitive_dict(*args, **kwargs)
+
+

API changes have been detected in azure-core. You can review API changes here
API changes
+ def azure.core.utils.case_insensitive_dict(*args: Any, **kwargs: Any) -> MutableMapping
+
+

/azp run python - cognitivelanguage - ci

/azp run python - tables - ci

/azp run python - anomalydetector - ci

/azp run formrecognizer - ci

/azp run python - formrecognizer - ci

/azp run python - storage - ci

/azp run python - formrecognizer - ci

/azp run python - translation - ci

/azp run python - metricsadvisor - ci

/azp run python - autorest - pr

/azp run python - appconfiguration - ci

/azp run python - tables - ci


chore: bump arabica testnet params

Overview

Checklist

[ ] New and updated code has appropriate documentation
[ ] New and updated code has new and/or updated testing
[ ] Required CI checks are passing
[ ] Visual proof for any user facing features like CLI or documentation updates
[ ] Linked issues closed with keywords

Codecov Report

Merging #2281 (32e62f1) into main (5d0424a) will decrease coverage by 0.08%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #2281      +/-   ##
==========================================
- Coverage   50.65%   50.58%   -0.08%
==========================================
  Files         154      154
  Lines        9620     9620
==========================================
- Hits         4873     4866       -7
- Misses       4323     4328       +5
- Partials      424      426       +2

Impacted Files
Coverage Δ

nodebuilder/p2p/bootstrap.go
6.66% <ø> (ø)

nodebuilder/p2p/genesis.go
0.00% <ø> (ø)

nodebuilder/p2p/network.go
57.89% <ø> (ø)

... and 4 files with indirect coverage changes

nit: upgrade docgen example data https://github.com/jcstein/celestia-node/commit/58b4343159962a1bf6d134bd8711b0b835de3784

Testing if #2282 still happens on this branch

Update, it does start successfully.


Create fizzbuzz-constructor.cpp

fizzbuzz program using constructor in c++

Thank you for your PR!
Unfortunately a solution similar to yours has already been submitted :/
The goal is to find creative/abstract new solutions to FizzBuzz.
Please consult the readme for more information and see The top 5 samples here.
Thanks anyway! :)


CMake openssl support

CMake built as is with the toolchain does not support HTTPS in ExternalProject_Add. I believe this can be fixed by setting --system-libs in the bootstrap call. See
https://github.com/conda-forge/cmake-feedstock/blob/master/recipe/build.sh

I checked locally that setting --system-curl is enough to solve the issue


fix header layout on source page

This fixes the style of the <h1> element on /source/show.  Before this fix, the new social media share button was causing it to float in an odd and unattractive way:

Now, it floats in a lovely and sensible way:

This addresses ticket #8357.

:+1: Lovely and sensible is the correct way to float, IMO.


enhancement speed up decommission process (#13579)

Proposed changes
Issue Number: close #13579
Problem summary
Describe your changes.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[x] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[ ] No
[x] No Need

Has document been added or modified:

[ ] Yes
[x] No
[ ] No Need

Does it need to update dependencies:

[ ] Yes
[x] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[x] No

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

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 38.78 seconds
load time: 623 seconds
storage size:<PHONE_NUMBER>5 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221101032235_clickbench_pr_36982.html


make inversions field concrete

Int is the machine integer used for indexing

Codecov Report

Merging #11 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #11   +/-   ##
=======================================
  Coverage   84.28%   84.28%
=======================================
  Files           3        3
  Lines          70       70
=======================================
  Hits           59       59
  Misses         11       11

Flag
Coverage Δ

#unittests
84.28% <ø> (ø)

Impacted Files
Coverage Δ

src/alphabets.jl
75.00% <ø> (ø)

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 feb9409...1c1d7be. Read the comment docs.


Use pathlib for Intan PR and simplify data type for non header-attached formats

As in the title.
This simplifies the memmap loading eliminating the branches there.
Note that in a future PR we can use the calculated number of samples to simplify the get_signal_size.

This is a great refactor/cleanup @h-mayorquin. Thanks  a bunch.


Eagerly import modules for the current route

Describe the problem
While working on #8957 I was reminded that modulepreload links don't work outside Chromium browsers. (Vite provides a polyfill but we don't use it, but that's probably for the best: as far as I've been able to tell it doesn't actually work, but rather causes duplicate requests.)
The result is that imports create a waterfall — module a isn't requested until its importer b is available, which isn't requested until its importer c is available. In Chrome, a, b and c can all be requested concurrently, resulting in faster application startup.
#8957 exacerbates this problem by separating the app code into a separate chunk that doesn't get imported until the framework code is evaluated.
Describe the proposed solution
I think the solution is actually quite straightforward — instead of trying to polyfill modulepreload with fetch, we just import the modules in question.
In the general case you can't do that because the semantics are different — modulepreload doesn't cause modules to be evaluated, whereas import does. But in our case that's totally fine, because we know the modules were going to be evaluated anyway.
(We should make sure that this only includes modules that are statically imported by the current route — we don't want to eagerly import a module that is ordinarily only imported when a button is clicked, for example.)
The one big problem is the issue that #8957 set out to solve in the first place: if we eagerly import app code, we need to make sure that $env/dynamic/public is populated before it runs. There's a couple of ways this could work:
1. Pollute window
The easiest way is probably to inject a script at the top of the <head>...
<script>sk_env_xyz123={PUBLIC_FOO:'bar'}</script>

...and update $env/dynamic/public accordingly:
export const env = sk_env_xyz123;

Here, xyz123 is a hash of the version name, preventing conflicts even if the app uses embedded: true.
2. Indirection
This would be ideal...
// $env/dynamic/private
export { env } from '<assets>/_app/env.js';

...except that it wouldn't work with relative asset paths, and might be hard to get to work with Vite. (It creates a new module that needs to be requested, though it also solves #8946 quite neatly.)
Alternatives considered
No response
Importance
nice to have
Additional Information
No response

we tried this, doesn't work


use kubectl config instead of kind context and remove need to clone repo locally

Addresses https://github.com/Kuadrant/multicluster-gateway-controller/issues/454
And also removes the addition of the step to clone the repo locally from the ocm-walkthrough due to the fact that it's used as the quickstart where we didn't want to have the need to clone the repo locally.

/hold

/unhold

one comment, rest looks good


Update dependency

Fixes #59

hmm, but this passes https://github.com/keboola/db-extractor-mysql/pull/61/commits/ce1853b1bd0392d5c720500c7a599ea71115b555#diff-ab9f40623aa884f81bddd80e0dcd52d4L19

That's false positive
ds@DS-MacBook-Pro:~/projects/keboola/db-extractor-mysql (david-update-db-extractor-common)$ docker-compose run --rm dev /bin/bash
Starting db-extractor-mysql_mysql_1 ... done
Starting db-extractor-mysql_sshproxy_1 ... done
root@56bfe97ad7c0:/code# php src/run.php --data=/code/data
The child node "outputTable" at path "parameters" must be configured.

ok, just a second, I'll update

We need to revert that require or make those ConfigDefinitions like in db-extractor-common.

Now it's good 👍


Velocity Calculator

Calculator Functions
By entering any three quantities it will evaluate the fourth one.

Contribution Event
GSSOC22
Code of Conduct

[X] I follow Contributing Guidelines & Code of conduct of this project.

Hi I am a GSSOC22 contributer can i work on this?

/assign

can only owner get assigned to the issue???

@vasu-1 the pr is made #290


Provision Elasticsearch users in Terraform

I spent a bit of time trying to get https://github.com/wellcomecollection/catalogue-pipeline/issues/2106 working
It half-works. I spun up a new 2022-07-07 pipeline with the new config, saw it working and messages flowing through. Hooray! But deleting it is harder; I get an error:

│ Error: Provider configuration not present
│
│ To work with module.catalogue_pipeline_2022-07-07.elasticstack_elasticsearch_security_role.works_write["denormalised"] (orphan) its original provider
│ configuration at module.catalogue_pipeline_2022-07-07.provider["registry.terraform.io/elastic/elasticstack"] is required, but it has been removed. This
│ occurs when a provider configuration is removed while objects created by that provider still exist in the state. Re-add the provider configuration to destroy
│ module.catalogue_pipeline_2022-07-07.elasticstack_elasticsearch_security_role.works_write["denormalised"] (orphan), after which you can remove the provider
│ configuration again.

Closing as we're going to end up using API keys instead.


Implement MaterialUiPickersDate typing

Is your feature request related to a problem? Please describe.
The MaterialUiPickersDate provided is currently just an alias for the any type. This should be changed to give better type safety for consumers.
Describe the solution you'd like
Give a concrete typing to the MaterialUiPickersDate type.
Describe alternatives you've considered
N/A
Additional context
None.

Actually that’s a point of todo in v3. Here is an issue in real. We can do only Luxon | Moment | Date | Dayjs type.  So that if someone is using date-fns for example, they will only ever be provided with a Date object, but since the MaterialUiPickersDate would be Luxon | Moment | Date | Dayjs, then they'd have to handle all those possibilities in any callbacks they had?
So the idea then would be to base the MaterialUiPickersDate off of what utils library the user is actually using?

How to implement the Type for MaterialUiPickersDate ?


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from v4.11 to before v5.12.13",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=11538d039ac6efcf4f1a6c536e1b87cd3668a9fd",
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=abb02e05cb1c0a30dd873a29f33bc092067dc35d"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "11538d039ac6efcf4f1a6c536e1b87cd3668a9fd",
      "note": "introduced"
    },
    {
      "type": "commit",
      "value": "abb02e05cb1c0a30dd873a29f33bc092067dc35d",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "net: bridge: fix vlan tunnel dst null pointer dereference\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.12.13 by commit abb02e05cb1c0a30dd873a29f33bc092067dc35d, it was introduced in version v4.11 by commit 11538d039ac6efcf4f1a6c536e1b87cd3668a9fd. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1001089


Should HttpRequestEncoder strip Content-Length headers on GET requests

Currently, if you make a GET request to a server and for some reason add a Content-Length header, but do not send a payload (which is not possible when using GET), then Netty sends the header to the server.  This results in the server waiting to receive the payload (one could argue the server should just drop these requests as well, but apparently some do not).  For example, there is this Spring ticket where they also encounter this issue: https://github.com/spring-projects/spring-framework/issues/25023#issuecomment-1173865081.
Essentially if you use WebClient (Netty-based) and pass headers through, a request could attempt a request to GET with {} payload and Content-Length: 2.  This results in the first request passing and then the next request reads the first two bytes GE and then uses the remainder as the request yielding T /foo since the GE portion mistaken for the prior content-length.
Currently, there is similar behavior in the response encoder : https://github.com/netty/netty/blob/4.1/codec-http/src/main/java/io/netty/handler/codec/http/HttpResponseEncoder.java#L51
However, the request encoder is a noop: https://github.com/netty/netty/blob/4.1/codec-http/src/main/java/io/netty/handler/codec/http/HttpObjectEncoder.java#L554 (the HttpRequestEncoder does not override)
According to the RFC (https://datatracker.ietf.org/doc/html/rfc7230#section-3.3.2), it says:

A user agent SHOULD NOT send a Content-Length header field when the request message does not contain a payload body and the method semantics do not anticipate such a body.

Depending on how that is read, it is possible that a GET request should not send a payload and thus be stripped.  There is an exception for HEAD requests, however.
Expected behavior
Content-Length headers, when added explicitly, are stripped before the HTTP request is sent on GET requests
Actual behavior
Content-Length headers are sent.
Steps to reproduce

Setup a Netty HTTP request pipeline (or use WebClient)
Create a GET request
Add a Content-Length: 2 header
Fetch the data (Verify data is received)
Make a second request on the same connection
Observe that the server most likely fails due to T not supported method

Minimal yet complete reproducer code (or URL to code)
WebClient:
String test1 = webclient.get().uri("/api/foo")
                .headers(h -> h.put("content-length", 2))
                .retrieve().bodyToMono(String.class).block();

// test1 should pass

String test2 = webclient.get().uri("/api/foo")
                .retrieve().bodyToMono(String.class).block();

// test2 should be a failure

Netty version
4.1.90 or anything current
JVM version (e.g. java -version)
17, but any version should yield the issue
OS version (e.g. uname -a)
Mac M1, but any OS should result in same issue

We usually don't try to enforce anything on the sending side.

got same issue here but with POST method
container_ip：<IP_ADDRESS> container_name： ish-intelligence-store-platform-admin-web image_name：tastien-registry-vpc.cn-shanghai.cr.aliyuncs.com/tst-uat/ish-intelligence-store-platform-admin-web:5322 pod_name：ish-intelligence-store-platform-admin-web-6d8d47d954-h8g76 pod_uid：4a8cb38e-fe5c-4e10-b139-e4bf9c140f42 source：stdout time：2024-09-24T01:16:53.710284065Z app_id：intelligence-store-platform-admin-web content：2024-09-24 09:16:53.709 ERROR [intelligence-store-platform-admin-web] [http-nio-8080-exec-187] [07452746a8fbdc11402d448032ddef1f] [||] c.s.i.a.a.WebExceptionHandler -  系统异常 原因：null uri:/intelligence/member/login,堆栈：Request method 'O' not supported org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'O' not supported 	at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleNoMatch(RequestMappingInfoHandlerMapping.java:197) 	at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:379) 	at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:318) 	at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:62) 	at org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:350) 	at org.springfram log_level：ERROR logger_class：c.s.i.a.a.WebExceptionHandler message：null thread：http-nio-8080-exec-187 time：2024-09-24 09:16:53.709 trace_id：07452746a8fbdc11402d448032ddef1f


Unable to build under OSX Sierra because of Protobuf compile error.

Hi guys,
I just wanted you to know that the OSX build doesn't work under OSX Sierra because of this Protobuf compile error: https://github.com/google/protobuf/issues/2182
I'm not sure what to do about this, I think the only option is just wait for a fix in the Protobuf library, then wait for Grpc to icnlude Protobuf with the fix and then update Grpc in Vitess?
Seems like I'm out for a couple of weeks :)

This came up on our mailing list as well: https://groups.google.com/d/msg/vitess/eUwzT7Kw_a0/OMSLuz_uBQAJ
There I've mentioned that the protobuf issue thread lists a work-around and that is to remove -Werror from the Makefile.
Can you please confirm if that works?
I have a feeling that it might take a while until any upstream fix has trickled down to us. In the meantime, I wouldn't mind if we patch the Makefile as part of our travis/install_grpc.sh script. We did this before for other things e.g. here: https://github.com/youtube/vitess/commit/ce4239f84a684712d9c4696525cc64b1f1a0e5c3
Martin, this may be something which is easy for you to put together and test?

I'll try to confirm later today, I have found such flag in protobuf/src/Makefile.am

@michael-berlin so I tried the following with the protobuf dir in travis/install_grpc.sh:
# build protobuf on OSX Sierra
  sed -i '' -e 's,-Werror,,' $VTROOT/dist/grpc/grpc/third_party/protobuf/src/Makefile.am
  sed -i '' -e 's,-Werror,,' $VTROOT/dist/grpc/grpc/third_party/protobuf/more_tests/Makefile
  sed -i '' -e 's,-Werror,,' $VTROOT/dist/grpc/grpc/third_party/protobuf/python/setup.py

the files were replaced before compiling protobuf, but the error still occured. I haven't found any other reasonable occurences of the -Werror flag

I've tried it and the removal of -Werror from the Makefile should work.
See the PR I created: https://github.com/youtube/vitess/pull/2123
Make sure to delete $VTROOT/dist/grpc and re-run bootstrap.sh. Also, make sure that grpc is using its own copy of protobuf and not a system-wide one.
For reference, here's what I tried on my Linux machine (note that the sed syntax there is slightly different):

-Werror is present:

$ grep -e "-Werror" $VTROOT/dist/grpc/grpc/third_party/protobuf/src/Makefile
-Wall -Werror

* Patch `travis/install_grpc.sh` such that it removes the flag before running `make` in the `grpc` directory.

* Remove old `grpc` directory.
```sh
$ rm -rf $VTROOT/dist/grpc

Re-run bootstra.sh.

$ ./bootstrap.sh
[...]
bootstrap finished - run 'source dev.env' in your shell before building.

* `-Werror` is no longer present:

```sh
$ grep -e "-Werror" $VTROOT/dist/grpc/grpc/third_party/protobuf/src/Makefile

I think I didn't write it clearly - yesterday I was doing the same thing as you describe. I used the former 3 sed commands in the travis/install_grpc.sh script before running the make command on protobuf library and the whole thing returned the same error as before. In your pull request, there is one of my 3 sed commands, I don't think this will help.
Or am I not understanding anything?

Yes, you're correct.
Assuming the sed command itself has the desired effect on macOS, this should work. I can only test this on Linux and there it worked.
I've mentioned other reasons why it may not have worked in your case:

dist/grpc directory was not deleted
different protobuf library is used (not the one shipped with grpc)

well, I can test one more time, but I think that the fact, that your changes work in linux proves nothing.
Regarding option 1:
I've seen that the bootstrap script (or the grpc script) in vitess deletes the whole dist/grpc directory on every run, if grpc isn't present (which it wasn't in this case), so in every run I've seen new git clones of grpc and it's dependencies (with protobuf among them) ...
Regarding option 2:
I'm getting a compile error on the protobuf source from grpc, because I'm running the bootstrap.sh script shipped with vitess ... I think that this workaround doesn't work with the shipped protobuf library source...

tested one more time, I even checked the occurence of the Werror string in the protobuf source files during build ... still getting the same error

Is the -Werror string gone now?
Maybe you're using a different protobuf copy?

the -wError string is completely gone from the protobuf sources in the grpc/third_party folder ...
I'm not sure if I follow - but how can I use a different protobuf copy? this error occurs during the build of protobuf. I'm in the Vitess master branch and I'm building the protobuf copy bundled with grpc downloaded during the vitess bootstrap process...
The compile error is purely OSX specific:
third_party/protobuf/src/google/protobuf/stubs/atomicops_internals_macosx.h:173:9: error: 'OSAtomicCompareAndSwap64Barrier' is deprecated: first deprecated in
      macOS 10.12 - Use std::atomic_compare_exchange_strong() from <atomic> instead [-Werror,-Wdeprecated-declarations]
    if (OSAtomicCompareAndSwap64Barrier(
        ^
/usr/include/libkern/OSAtomicDeprecated.h:645:9: note: 'OSAtomicCompareAndSwap64Barrier' has been explicitly marked deprecated here
bool    OSAtomicCompareAndSwap64Barrier( int64_t __oldValue, int64_t __newValue,
        ^

That means that the removal of -Werror doesn't have the right effect? Maybe we need a different compiler flag to disable that check?
Can you verify that -Werror is gone from the c++ command line invocation?
cd $VTROOT/dist/grpc/grpc/third_party/protobuf

# Use -j1 to disable parallel builds (1 simultaneous invocation only).
make -j1

yes, the removal of the -Werror flag doesn't change anything :)
the commands you wanted me to run print this:
~/DEV/vitess/dist/grpc/grpc/third_party/protobuf • make -j1
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-recursive
Making all in .
make[2]: Nothing to be done for `all-am'.
Making all in src
/Applications/Xcode.app/Contents/Developer/usr/bin/make  all-am
make[3]: Nothing to be done for `all-am'.

That's weird. That should have failed.
Martin, do you maybe have time to go through with me on Slack? I sent you a DM there.

no problem, let's do it, if you have time :)

Summary of the debugging session on Slack:

grpc passes -Werror to the protobuf Makefile and therefore the patching didn't work
setting the environment variable CPPFLAGS="-Wno-deprecated-declarations" has the effect that protobuf and grpc compile without errors

@Rastusik created a PR for this: https://github.com/youtube/vitess/pull/2128


Increase the default version of Checkstyle

We should have bumped this in Gradle 3.0 since we were stuck with Checkstyle 5.9
due to JDK6.
Checkstyle 7.0 only supports JDK8, so this introduces something similar to how we handled
JDK6 and older Checkstyle versions.  This PR increases the version to 6.19 which is the last version to support JDK7.
This is related to #1067.

I was tired of running into these sort of false negatives with Sanity Check when a Javadoc comment causes an import to be added:
https://builds.gradle.org/viewLog.html?buildId=2075232&tab=buildResultsDiv&buildTypeId=Gradle_Master_CommitPhase_SanityCheck&logTab=
This is either a bug fix in a later version of Checkstyle or a different default.

@eriwen No rush on this.  I hope it's rather self contained.

Is there a reason not to merge this?

@lptr @big-guy I'm sorry for the delay here. This PR fell off my radar. I expect I will have time to catch up on PRs later this week.


[add-resource] New Skeleton

I would like to add my new skeleton to the Grav Repository.
Here are the project details: tranduyhung/grav-skeleton-x-corporation
Thanks!

Added for next GPM update.


add drizzle orm example

Could you show this with a real database, please?

@radu-matei I will update it.

@radu-matei updated the example to use Spin's SQLite database.


Update/log4j template

added attribute for log level override (updated from hardcoded value)
added attribute for log path override (updated from hardcoded value)

thanks for this :+1: changes look good


drpolicy controller define

- vrg and pv cluster roles manifestworks unify
- drpolicy create/update:
	- finalizer add if absent
	- cluster roles manifestwork create, if absent, for each cluster in drpolicy
- drpolicy delete:
	- cluster roles manifestwork delete for each cluster not in any other drpolicy
	- finalizer remove if present
- ginkgo version increase from 1.16.1 to 1.16.4
- gomega version increase from 1.11.0 to 1.15.0

Signed-off-by: bhatfiel<EMAIL_ADDRESS>

A bug in drpolicy delete unit test was fixed and it now passes.


ERROR: Syntax error: Operator expected

When running some of the examples, e.g. examples/reverse, the following error is thrown:
$ popper.py --info examples/reverse
ERROR: Syntax error: Operator expected
ERROR: assertz((pos_index(3,f([Ato
ERROR: ** here **
ERROR: m('324485'), Atom('443525'), Atom('544261')], [Atom('544261'), Atom('443525'), Atom('324485')])))).
Traceback (most recent call last):
  File "popper.py", line 180, in <module>
    timeout(popper, (settings, stats), timeout_duration=int(settings.timeout))
  File "/home/hakank/inductive_programming/andrewcropper/popper/Popper/popper/util.py", line 51, in timeout
    result = func(*args, **kwargs)
  File "popper.py", line 122, in popper
    tester = Tester(settings)
  File "/home/hakank/inductive_programming/andrewcropper/popper/Popper/popper/tester.py", line 17, in __init__
    self.load_basic()
  File "/home/hakank/inductive_programming/andrewcropper/popper/Popper/popper/tester.py", line 52, in load_basic
    self.load_examples()
  File "/home/hakank/inductive_programming/andrewcropper/popper/Popper/popper/tester.py", line 36, in load_examples
    self.prolog.assertz(f'pos_index({i},{x})')
  File "/usr/local/lib/python3.7/site-packages/pyswip-0.2.10-py3.7.egg/pyswip/prolog.py", line 152, in assertz
  File "/usr/local/lib/python3.7/site-packages/pyswip-0.2.10-py3.7.egg/pyswip/prolog.py", line 129, in __call__
pyswip.prolog.PrologError: Caused by: 'assertz((pos_index(3,f([Atom('324485'), Atom('443525'), Atom('544261')], [Atom('544261'), Atom('443525'), Atom('324485')])))).'. Returned: 'error(syntax_error(operator_expected), string(b"assertz((pos_index(3,f([Atom('324485'), Atom('443525'), Atom('544261')], [Atom('544261'), Atom('443525'), Atom('324485')])))). ", 27))'.

I think it's a very recent error since I'm quite sure I tested all the examples some days ago without any problems.

Thank you @hakank for spotting this silly bug that I recently introduced. This commit should fix it https://github.com/logic-and-learning-lab/Popper/commit/87b0a3551ea2de82ce9a7255d2b6d935041308a1


Aurora demo changes for virtual panel

Applied same changes for virtual panel aurora example as been done for origin one. Tested with 128x128 combined chain.

updated some comments
minor fixes

Thanks for this contribution.


Add metrics to prometheus

Hope add some metrics to prometheus metrics.
Add subscription msgBacklog
Add subscription blockedSubscriptionOnUnackedMsgs
Add consumer blockedSubscriptionOnUnackedMsgs
Add subscription msgRateRedeliver
Add consumer msgRateRedeliver
Add subscription unackedMessages
Add consumer unackedMessages
Should care about memory leak by larger metrics?

@jiazhai 帮我review一下
有个问题  增加了一些指标，指标太多可能导致内存溢出。是否需要加个配置，默认将订阅和消费者的指标关闭

@codelipenghui, Agree your comments, It is a good idea to have a config to control these stats for  subscriptions and consumers.

@sijie @merlimat  Would you please help review this?

Move to #2299. so close this pull request


46271826_unet

code completed 27 OCT,
Had an extension to 27 OCT, but forgot to do a pull request.
Code should be free of bug, and got a test dice score of 99%

No python files in the repository.
Did not solves the chosen problem.
No PyTorch nor TensorFlow using.
No coding design.
No docstring nor comments in the code.
Easy difficulty problem, no higher difficulty marks.
Pull request on the main branch.

No python files in the repository. Did not solves the chosen problem. No PyTorch nor TensorFlow using. No coding design. No docstring nor comments in the code. Easy difficulty problem, no higher difficulty marks.
Pull request on the main branch.

Hi Dear Tutor I think I made the wrong pull request, Can I make another pull request? I did not make any changes after the due date.

No python files in the repository. Did not solves the chosen problem. No PyTorch nor TensorFlow using. No coding design. No docstring nor comments in the code. Easy difficulty problem, no higher difficulty marks.
Pull request on the main branch.

Hi Dear Tutor I think I made the wrong pull request, Can I make another pull request? I did not make any changes after the due date.

Hi there,
Please connect with Shakes to see if you can do this.
Cheers,
Zhao


Version 2.0

Version 2.0 proposal:

BaseResource.get_all renamed to BaseResource.get_many
Require starlette >= 0.14.0 to install, for the functools.partial support
Remove handle_{get, patch, delete, get_many, post} in favor of functools.partial
Marked id argument of get, patch, delete as required, because the framework already expects and passes it.

Since GitHub activity has been very low, backwards compatibility was not really a priority.
Please express any major pet-peeves you would like to see fixed in version 2.0.

Python 3.8 tests failing because of: https://github.com/encode/starlette/pull/1106


[WIP] Improve consistency in NSNumber bridging

Resolves SR-4634 and SR-6322.

@swift-ci Please test

Thank you for working on this! cc: @spevans who I think has also worked in this area.

@swift-ci Please test

@swift-ci please test

@swift-ci Please test

@swift-ci please test


DNSimple DNS Issuer

What this PR does / why we need it:
Adds a DNS issuer for DNSimple
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #472
Special notes for your reviewer:
Release note:

Add DNSimple as a DNS Issuer

/ok-to-test

@dobesv I'll take a look at this again this evening or tomorrow and work through the failing issues to move this forward
@munnerz Thanks for that!

Can't wait to see it finalized soon. :+1: :+1: :+1:

Very excited about this one!!! 👏

/retest

/test chart-verify

/test e2e v1.7
/test e2e v1.9

/retest

/retest

@kragniz this is ready for review

Is there already a timeline, when this request will be merged? We are waiting for it since a very long time and need to issue certificates manually right now


[New Port Request] CorrelationVector

Library name: Correlation Vector
Library description: CorrelationVector-Cpp provides the C++ implementation of the CorrelationVector protocol for tracing and correlation of events through a distributed system.
Source repository URL: https://github.com/microsoft/CorrelationVector-Cpp/commit/cf38d2b44baaf352509ad9980786bc49554c32e4
Project homepage (if different from the source repository):
Anything else that is useful to know when adding (such as optional features the library may have that should be included):

If you wish to add this port in the future, you can reopen this issue, but we're closing it for now.


[Event Request] OnBeforeReturnToAddressForVendor in Table Report Selections 77

Hello,
Could You please add the following event to Table 77 Report Selections to procedure GetEmailAddressForVend?
    procedure GetEmailAddressForVend(BuyFromVendorNo: Code[20]; RecVar: Variant; ReportUsage: Enum "Report Selection Usage"): Text[250]
    var
        Contact: Record Contact;
        PurchaseHeader: Record "Purchase Header";
        Vendor: Record Vendor;
        RecRef: RecordRef;
        ToAddress: Text[250];
        IsHandled: Boolean;
    begin
        OnBeforeGetVendorEmailAddress(BuyFromVendorNo, ToAddress, ReportUsage.AsInteger(), IsHandled, RecVar);
        if IsHandled then
            exit(ToAddress);

        ToAddress := GetPurchaseOrderEmailAddress(BuyFromVendorNo, RecVar, ReportUsage);

        if ToAddress = '' then begin
            RecRef.GetTable(RecVar);
            if RecRef.Number = DATABASE::"Purchase Header" then begin
                PurchaseHeader := RecVar;
                if Contact.Get(PurchaseHeader."Buy-from Contact No.") then
                    ToAddress := Contact."E-Mail";
            end;
        end;

        if ToAddress = '' then
            if Vendor.Get(BuyFromVendorNo) then
                ToAddress := Vendor."E-Mail";
        //NEW CODE
        OnBeforeReturnToAddressForVendor(ToAddress, BuyFromVendorNo);
        //END NEW CODE
        exit(ToAddress);
    end;

Publisher:
    [IntegrationEvent(false, false)]
    local procedure OnBeforeReturnToAddressForVendor(var ToAddress: Text[250]; BuyFromVendorNo: Code[20])
    begin
    end;

Hi,
Why can't you use OnBeforeGetVendorEmailAddress publisher and return ToAddress that you need?

Closed due to inactivity.


CARDS-2348: New question type: postal address

Utilises react-google-autocomplete widget for the address suggestions
Requires a Google API key configured either as a evironment var named GOOGLE_APIKEY or via the admin page /content.html/admin/GoogleApiKey
Can be tested running a test mode via creating an instance of the Postal Address Test Form
New questions of the address type could be created via the questionnaire editor

ready fir test?

I'd wait for the comments first not to waste any time on testing in case the re-testing will be needed.

Would it make sense to move everything related to configuring the API key (i.e. servlet, admin page) outside of data-entry and into its own module? @sdumitriu

Yes it would. Is the key specific to the Maps API or is it for all Google services?

The key is one for any service you would turn on for this key in the Google settings.

Ok, let's move them to a new module google-api.

Not a fan of the package name. io.uhhdata.cards.googleapi? @sdumitriu is there any naming convention we should be following here?

This is the only comment I have left before approval, let's decide on the package naming @veronikaslc @sdumitriu .

I see the new address type. However it does not do anything for me. What am I missing?

I put the API key in ADMINSTRATION/Google API key config page.

Honestly it's hard to tell like that from the scrinshot alone. What do you exactly do? Are there any console errors? If its not video there is not much to conclude.

Once I did export GOGGLE_APIKEY=xxxxxxx I got different behaviour.

Just made a fresh build and tested the admin setting of the key - worked for me.

Rebased on the latest dev.

Todo: update the test questionnaire to showcase the newly introduced searchPlacesAround setting @sdumitriu

@sdumitriu we would need this merged for sparc. Are you able to update the test questionnaire and then merge?


Add ability to copy a wallet address to the clipboard on the Wallet Details page

Feature included in v1.0.5


Please assign me this issue as a part of SSOC

@aapJoysakoi basically, you are trying to add sanskrit language converted name of chanakya niti header?
For further discussion, you should join the discord server


[BUG] PlatformException: Thumbnail request error

Describe the bug
When triggering the asset picker, PlatformException (Thumbnail request error) occurred as below:
Exception has occurred.
PlatformException (PlatformException(Thumbnail request error, java.util.concurrent.ExecutionException: com.bumptech.glide.load.engine.GlideException: Failed to load resource
There were 3 root causes:
java.lang.RuntimeException(setDataSource failed: status = 0x80000000)
java.lang.RuntimeException(setDataSource failed: status = 0x80000000)
java.lang.RuntimeException(setDataSource failed: status = 0x80000000)
 call GlideException#logRootCauses(String) for more detail, null, null))

How to reproduce
Use this minimal code. Please use the same package's version, Flutter version, and device version (if possible).
  _pickPhoto() async {
    final List<AssetEntity>? entityList = await AssetPicker.pickAssets(
      context,
      pickerConfig: AssetPickerConfig(
        maxAssets: 1,
        specialPickerType: SpecialPickerType.noPreview,
        pageSize: 40,
        requestType: RequestType.image,
      ),
    );

    if (entityList == null) return;
    if (entityList.isEmpty) return;
    if (!mounted) return;

    final AssetEntity entity = entityList[0];
    final File? pickedFile = await entity.file;

    if (pickedFile == null) return;
    if (!mounted) return;

    setState(() {
      // This line is specific to my use-case
      // _selectedPhoto = pickedFile;
    });
  }

Steps to reproduce the behavior:

When the _pickPhoto method is called, it will open the assets picker.
In my device, the error occured immediately

Expected behavior
There should be no un-handled exception.
Screenshots

Version information

Device: Redmi Note 10 5G
OS: Android 13
MIUI: 14.0.3
Package Version: 8.5.0
Flutter Version: 3.10.0
Dart SDK Version: Configuring either sdk: ">=2.19.6 <3.0.0" or sdk: ">=3.0.0 <4.0.0" both have the same error.

Same error with me

+1

+1

即使在dart:2.18.6,使用版本wechat_assets_picker: 8.3.2还是存在以上问题，有何解法

The exception thrown by the AseetPickerProvider has been slient by 092e244. If exceptions are thrown by the AssetEntityImage should submit issues to the photo_manager repo.


resolve #3: add dockerfile and some ifs in entrypoint to run safety

It's draft example for dockerfile, but i think if you add feature to get arguments from env variables you can improve docker experience.

Thank you for your contribution! I'll check it later this coming weekend.

It's draft example for dockerfile, but i think if you add feature to get arguments from env variables you can improve docker experience.

Yeah, I'll add getting defaults from the environment variables later.

Hm.. squash & merge does some side-effects..
Merged! Thank you!


Resend test events to Covid pipeline

Background
ReportStream has asked us to resend a number of test events with a certain specimen type to the Covid pipeline. There are just under 400 test events that they would like us to send again.
Action requested
Resend the test events returned by this query: https://www.simplereport.gov/metabase/question/872-test-events-filtered-by-specimen-type
The test events only need to be sent to the Covid pipeline

existing mutation indicates it either sends to UP only or both, not covid only.  Will follow up with RS.

Update: test events should only be sent to the Covid pipeline, not the Universal pipeline, so the mutation will need to be updated to support that functionality


Fix empty collections error on demo app

Q
A

Bug fix?
yes

New feature?
no

Tickets

License
MIT

This pull request fix the "empty collection" error on demo app https://ux.symfony.com/live-component/demos/form-collection-type (juste remove the last element of collection and error appear because empty collection don't fallback in condition ComponentWithFormTrait.php:238)

Hey @luchidalgo!
Thanks for this! But I think I beat you to it by just 1 day (which is crazy because this is an old bug!) https://github.com/symfony/ux/pull/857
Let me know if you have any issues or disagreements with that fix. And actually, it's been tweaked a bit more at https://github.com/symfony/ux/pull/866
Cheers and thanks!

Excellent😃👍 Thanks for your work


feat(processors): add a NOOP Processor

Add a new sghi.etl.core.Processor implementation, NOOPProcessor. This processor simply returns any data it receives without any modifications. It can be used as a placeholder or for situations where data transformation is not needed.

:tada: This PR is included in version 1.0.0-rc.1 :tada:
The release is available on:

v1.0.0-rc.1
GitHub release

Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

v1.0.0
GitHub release

Your semantic-release bot :package::rocket:


Get AidUI Running On MacOS

Related User Story: #7
This task involves attempting to get AidUI working on MacOS (without Docker) while removing the evaluation steps that are causing errors.
Estimated Effort: This task will require significant effort as evaluation takes up a significant portion of the code base, and commenting out code while keeping AidUI in working condition will take effort.
Dependencies: None
Initial Assignments: @StudentJamesChen
Milestone: Sprint 1
Acceptance Criteria: AidUI runs without errors.

We have decided to move efforts away from this issue was running into Case Sensitive operating systems issues on MacOS. Progress has been made on #8 and efforts have been focused there.


Smithing Area Overhauls

Overhauls the Mining Guild, Blast Furnace, and Giants Foundry.
Adds any missing lights, adds textures and materials to appropriate and abled objects, retextures floors.
Adds normals to dirt

Mining Guild:
Added missing textures to Amethyst Walls, Changed floor to have more variety of texture similar to what is found in Motherload Mines.

Blast Furnace:
Adds material map to the furnace, adds textures to crates

Dirt Normal Map:

Giants Foundry:
Add lights and texture to lava outside of forge, Adds material to metal objects around the foundry, Adds material to stone/rock objects around the foundry

With #201


NOOS-517/cross-platform-docker-images

@pieeri I didn't update Docker version because I get this error in circleci Job was rejected because this version of Docker is not supported on this resource class. Try removing the version of Docker in your .circleci/config.yml and re-running
buildx is supported in version 20.10.14


Fuzzer can generate keywords as identifiers

In the grammar, IDENT can be any kind of characters, so the fuzzer generated this:
public if bSO(c P4ZIcme)  {

Which resulted in the tokens:
public
identifier if
identifier bSO
(
identifier c
identifier P4ZIcme
)
{

As if is a keyword in MiniJava the Lexer should not parse it as an identifier.
Same could happen with other keywords that have ten characters or less.

Thanks for pointing that out! I don't think this can be fixed here, but I can hack this in my fork of the gram fuzz lib.

This is fixed with https://github.com/flip1995/gramfuzz/commit/1470529397def3ce8b7f561f48d1a616f245a506
Feel free to reopen if this happens again!


Retrieve matched keyword in 'each' callback

I pass in an array of keywords to the .mark function, and need to do further processing depending on the matched array element, specifically add a term specific onClick handler to the mark DOM element. While the filteroption as far as I can tell does give you access to the keyword, it does not allow you to modify the resulting dom node. The each option, on the other hand, does give you access to the dom node, but not directly to the keyword. Using the .innerText property is insufficient here, as the keyword and the matched text may not be exactly the same depending on the settings for:

diacritics highlighting "Lörèm" for "Lorem"
accuracy (i.e. set to "complementary") highlighting "Lorem" for "Lore"
separateWordSearch highlighting "Lorem" for "Lorem ipsum"

and so on. Apart from caseSensitive these seem hard to manage externally.
Steps to reproduce
https://codepen.io/ietz/pen/RBbJqv
Environment

Google Chrome v67.0.3396.99
mark.js v8.11.1

While this might not be what you're looking for - as you know the filter callback is called with the information you need, then the each callback. With both combined, for example by setting values to a variable for the current entry, you might get what you want.


[EPIC] UI overhaul discussion thread

Summary of plans for UI overhaul.
TMPE button
The 'crown' button that toggles the TM:PE toolbar:

The 'crown' is weird UI for a traffic mod - maybe change it?
Right clicking this button should ideally open TM:PE settings screen (mod options).

Toolbar
I'd like to see a major overhaul of the toolbar (aka 'main menu'). See: #51 and #21
I think we can provide more functionality with 8 buttons than the current 12 buttons.
Lights button - see: #8

Purely for timed traffic lights

The 'toggle traffic lights' feature is moved to Junctions button - see later
The 'manual traffic lights' feature becomes obsolete if we improve timed traffic lights

Tool button:

Visible if 'timed traffic lights' enabled on maintenance tab
Left click = activate/deactivate tool
Right click = toggle persistent 'timed lights' overlay

Junctions button - see: #6

Merge priority signs, junction restrictions and toggle traffic lights in to one 'tool'

Note: Crossings feature moved to Pedestrians tool - see later

Tool button:

Visible if 'priority signs' and/or 'junction restrictions' enabled on maintenance tab
Left click = activate/deactivate tool
Right click = cycle through persistent junction overlay options

Overlays: As there are two applicable, right-click needs to cycle combinations (as applicable, depending on what's enabled on maintenance tab):

None
Priority Signs
Junction Restrictions
Both (Priority + Restrictions)

Pedestrian button - see: #40

Dedicated tool for working with crossings
Tool button:

Visible if (new) 'pedestrian crossings' enabled on maintenance tab
Left click = activate/deactivate tool
Right click = toggle (new) persistent 'transport routes' overly

Routing button - see: #41

Merge lane arrows and lane connector features in to one tool
Tool  button:

Visible if 'lane connector' enabled on maintenance tab
Left click = activate/deactivate tool
Right click = toggle persistent 'lane connectors' overlay

Speeds tool - see: #84
Vehicles button  - see: #42

Enhances the tool with lane highlighting an eraser compatibility
Tool button:

Visible if 'vehicle restrictions' enabled on maintenance tab
Left click = activate/deactivate tool
Right click = toggle persistent 'vehicle restrictions' overlay

Parking button - see: #47

I have some enhancement ideas which I'll post in separate issue

Tool button:

Visible if 'parking restrictions' enabled on maintenance tab
Left click = activate/deactivate tool
Right click = toggle persistent 'parking restrictions' overlay

Eraser button

I'll create separate issue to describe this, but in summary:
Multi-purpose tool:

Can delete customisations associated with active tool

For example, if lane arrows tool is already active, click eraser then click junction to erase the lane arrow/connection customisations for that lane

When used on its own, shows additional buttons for despawning/clearing traffic, etc

I'll add new milestone with regards to User Interface changes.
Additionally I'm thinking about setting up few projects to group some of issues and easier progress tracking, but I'm not sure its worth time.

I imagine the UI updates will be spread across releases / milestones. It might be worth having a "UI" label or project though...

Simplification of tool / button names:

Lights tool
Junction tool
Pedestrian tool
Routing tool
Speeds tool
Vehicle tool
Parking tool
Eraser tool

Lights tool would then become obvious place to toggle traffic lights. Need to ponder how that would work.
Also, if user goes in to Eraser tool (whilst not in another tool), they could Ctrl+Click the other tool buttons to erase stuff associated with them (with confirm dialog to avoid disasters)?

Eraser -> Vehicles = reset all vehicle restrictions to defaults
Eraser -> Lights = reset all traffic lights to defaults
Eraser -> Routing = reset all lane arrows/connectors to defaults
etc...

Any chance to have the button embed into the toolbar like some mods (Touch This, Find It) do?
Also, if it hasn't been done already, a way to apply junction restrictions to an entire roundabout at once?

Also, if it hasn't been done already, a way to apply junction restrictions to an entire roundabout at once?
That is not UI but it is something I'd like also.

@RenaKunisaki We're working on something like that - see #51 - we hope to have a button that adapts to the design of where you drag it (eg. if you drag it over main toolbar strip, it will become a toolbar button).
As for the junction restrictions, we hope to have something like that at some point, but it relies on reliable roundabout detection. It would be better if the roundabout builder mod added the restrictions (I think it already has integration with TMPE but not had chance to test).

As for the junction restrictions, we hope to have something like that at some point, but it relies on reliable roundabout detection. It would be better if the roundabout builder mod added the restrictions (I think it already has integration with TMPE but not had chance to test).

It has TMPE integration, although it sometimes fails like in this video.
In my case, more than roundabouts, I'd want the priority road to have different junction restrictions such as "vehicles enter a blocked junction" for the main road. As for the detection, the one used for priority roads of "Priority signs" appears to be fine, at least, for an initial version.

Hi, I found this thread by accident. My Roundabout Builder mod sure has integration with TMPE, but uses a little cheat to apply the restrictions. After a segment is built, TMPE waits for some time before setting it up, thus I cannot apply the restrictions right away, as they would be removed right after. Thus I added a stopwatch to wait for some time and then apply them, but I am not too happy about it. It would be probably better to wait for a given number of simulation steps because it sometimes happens that the stopwatch goes off too quickly. Anyway, if you have any advice how to integrate it with TMPE better please tell me

Let's make another issue and discuss there. I have some ideas, like there we have an issue regarding an event sending/handling in TM:PE #426 (this is regarding AI but it can be reused for external commands just as well), so if that is ever implemented, you could put an event requesting road restrictions change.

@aubergine10 Regarding the main menu overhaul
Do you reckon having a state-machine in the main menu, where clicking a button would change the main menu to a new view with a ◀ button (go back) and new buttons relevant to the current operation mode? Because that is something we can totally do without actually altering all existing tools, and improve usability by also exposing new buttons with each tool's own available actions.
Something like:

User clicks (Lane Arrows tool)
Main menu panel changes to:

◀ Back (Esc) 🔺 View Conflict Points ✈ Switch to: Lane Connections tool
Help text: Please select a node

@kvakvs I'm not sure. Something does need to change in the top-level UI, but I think the only way to determine best approach is to do some sprints of different ideas.
These are the approaches I can currently think of:

Keep existing floating menu with no changes

Tool context buttons could go to edge of screen (eg. side like Move It, or bottom like curved/straight road buttons)

Replace floating menu with a pop-up 'flower' menu - https://github.com/krzychu124/Cities-Skylines-Traffic-Manager-President-Edition/issues/408#issuecomment-508118319

Tool context buttons could go to edge of screen (like above)

Make floating menu dynamic - https://github.com/krzychu124/Cities-Skylines-Traffic-Manager-President-Edition/issues/38#issuecomment-516898701 (as described in your comment)

IMO this could make switching between top-level tools a bit of a pain

Replace floating tool bar with vanilla style build bar (eg. like Find It does)

Tool context buttons would go at the bottom (like where curved/straight road buttons go)
Takes up a lot of room compared to our floating menu bar

The winner will be whatever "feels" best, but I can't quantify "feel" hence I think we need some sprints to try different approaches.

1 (keep existing) is very similar to 3 (dynamic panel) but they can be combined, so that the top level menu is smaller and is always visible, for allowing you switch the tools. And the space below them would be the context-dependant controls, hints and help?
Iterating on all 4 would take 4x the time though

I think we could likely skip the last one (use vanilla-style build bar) as it takes up too much room.
I still love the idea of the 'flower' menu thing, but how to activate it considering we use right-click already in most tools? Would it only be for top-level tool selection, or/and context options?
For dynamic floating menu, we could possibly add an extra row of context buttons when a tool is active, but it might be confusing for users?