Add timeout to Outbound::bind_service

Closes #403.
When the Destination service does not return a result for a service, the proxy connection for that service will hang indefinitely waiting for a result from Destination. If, for example, the requested name doesn't exist, this means that the proxy will wait forever, rather than responding with an error.
I've added a timeout wrapping the service returned from <Outbound as Recognize>::bind_service. The timeout can be configured by setting the CONDUIT_PROXY_BIND_TIMEOUT environment variable, and defaults to 10 seconds (because that's the default value for a similar configuration in Linkerd).
Testing with @klingerf's reproduction from #403:
curl -sIH 'Host: httpbin.org' $(minikube service proxy-http --url)/get | head -n1
HTTP/1.1 500 Internal Server Error

proxy logs:
proxy-5698f79b66-8rczl conduit-proxy INFO conduit_proxy using controller at HostAndPort { host: Domain("proxy-api.conduit.svc.cluster.local"), port: 8086 }
proxy-5698f79b66-8rczl conduit-proxy INFO conduit_proxy routing on V4(<IP_ADDRESS>:4140)
proxy-5698f79b66-8rczl conduit-proxy INFO conduit_proxy proxying on V4(<IP_ADDRESS>:4143) to None
proxy-5698f79b66-8rczl conduit-proxy INFO conduit_proxy::transport::connect "controller-client", DNS resolved proxy-api.conduit.svc.cluster.local to <IP_ADDRESS>
proxy-5698f79b66-8rczl conduit-proxy ERR! conduit_proxy::map_err turning service error into 500: Inner(Timeout(Duration { secs: 10, nanos: 0 }))

Right now, the way we handle the timeout could use some improvement --- I'd like to log a more descriptive message than conduit_proxy::map_err turning service error into 500: Inner(Timeout(Duration { secs: 10, nanos: 0 })), and I think it would be Morally Correct to return a 504 Gateway Timeout error code rather than Internal Server Error here. However, I think this would involve a slightly broader set of changes to MapErr and to logging, so I decided to save it for a subsequent PR.

@hawkw can you create a followup issue regarding error status codes?

@seanmonstar I didn't write a unit test for this, because I thought a timing-reliant test would be too flaky to run on CI and a better approach would be to wait until we have some kind of mock timer implementation in Tokio. If you or @olix0r think that it would be worthwhile to write a test for this behavior, I definitely can do that.

The timeout can be set to something small, like 100 ms, in the unit test, and it shouldn't be flaky... If the request is not being timed out reliably, that's bad!

@seanmonstar I spoke to @olix0r about this briefly and I believe he is opposed to any tests that rely on timing running on CI, regardless of how small the timeout value is. However, I've opened #440 for making Travis skip timing-reliant tests but still having them run them locally.

Okay @seanmonstar, ed157a6f4a4be9d24b5a0e5496dd9b8ce4e21b81 adds an implementation to the previously unimplemented outbound_times_out test in discovery.rs.
Since the added test is timing-dependent, this branch now depends on my PR #441, which adds a feature for skipping flaky tests on CI. We'll want to merge #441 first.

@olix0r I've opened #442 to track the followup work relating to returning more correct error codes.

I'm personally kind of iffy about tests that don't get run in CI: we probably won't remember to run them ourselves locally, either. 🤷♂

@seanmonstar the tests are enabled by default locally --- I felt that way, too!  The flaky_tests feature is only disabled on CI and inside of a Docker build.
Eventually, I'd like to write a mock timer so it can be run in CI.


Use NodeTraverser and NodeVisitor to build repo

This way all FunctionLike statements will be included in the repo.
Fixes #8

Please run the php-cs-fixer as described in the README (since at least 1 minute :-) )

Fixed styles using php-cs-fixer


Exception : Mediapipe dependencies not found

Traceback (most recent call last):
  File "src/preprocess.py", line 98, in <module>
    main(input_data_path, classification)
  File "src/preprocess.py", line 35, in main
    raise Exception("Mediapipe dependencies not found.")
Exception: Mediapipe dependencies not found.

I dunno know which dependencies it is talking about
here's how i did it
python src/preprocess.py --input_dataset_path C:\Users\ekans\Desktop\mediapipe\Model --classification User1


Merge the androidx to master

Now Android Studio 3.2 and the androidx 1.0.0 versions are stable.
Merging the androidx features to the master is ready.

@MGaetan89 please confirm I'm going to merge the commits including yours into master. (Just in case because it's the same repository).
@yaraki Could you proof read?

I just had a minor comment, but it should be good otherwise.
I was using the beta version on a test app for a while without any issues.

Thanks. Merged.


how-to  in readme

Newbie to both Plan9 and Golang here. Please excuse using Issues as a communication channel - will happily use another if provided.
Trying to build the packages, but makefile returns:
:~/workspace/9fans/go.git/acme$ make
Makefile:1: /usr/local/go/src/Make.inc: No such file or directory
Makefile:7: /usr/local/go/src/Make.pkg: No such file or directory
make: *** No rule to make target '/usr/local/go/src/Make.pkg'.  Stop.

my GOROOT is pointing to the Golang deployment as below:
~/workspace/9fans/go.git/acme$ $GOROOT/bin/go version
go version go1.15.2 linux/amd64

It would be great if README contained a section on build steps.

If you're trying to build and run acme, this is the wrong repo. You want to install plan9port, which comes with acme and many other Plan 9 tools that run on unix.

@fhs  thank you for reply. I am wondering whether it would be a good addition to the README file to mention how each package is supposed to be build and used. For instance, the Makefile is referencing $GOROOT/src/Make.inc and $GOROOT/src/Make.pkg, while none of those files are present in the Go codebase
Should we expect that planplan9port build mechanism will create those files?

@mushkevych The makefiles are left over from long ago when Go used to use them. They should be removed (PR #24).
I don't think there is a need to add anything to README. It should already be clear to any Go programmer how to use this package. I suggest studying how to build a Go programs first. See https://golang.org/doc/code.html#ImportingRemote

@fhs #24 clarified it all. Thank you. Closing this issue.


It should be possible to use this action without running setup-ruby

So for instance I can test a given branch/commit of setup-ruby.
      - uses: eregon/setup-ruby@somebranch
        with:
          ruby-version: ${{ matrix.ruby }}
      - uses: MSP-Greg/setup-ruby-pkgs@v1
        with:
          apt-get: ragel
          brew: ragel
          mingw: _upgrade_ openssl ragel

Currently this fails:
https://github.com/eregon/puma/runs/745365296?check_suite_focus=true
Run MSP-Greg/setup-ruby-pkgs@v1
  with:
    apt-get: ragel
    brew: ragel
    mingw: _upgrade_ openssl ragel
    ruby-version: default
    bundler: default
    working-directory: .
  env:
    CI: true
    TESTOPTS: -v
    PATH: /home/runner/.rubies/ruby-2.2.10/bin:/usr/share/rust/.cargo/bin:/home/runner/.config/composer/vendor/bin:/home/runner/.dotnet/tools:/snap/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin
Image info: https://github.com/actions/virtual-environments/tree/ubuntu18/20200518.1/images/linux
  Running ruby/setup-ruby
  pwd: /home/runner/work/puma/puma
##[error]input ruby-version needs to be specified if no .ruby-version or .tool-versions file exists
  took   0.18 s
  Running MSP-Greg/setup-ruby-pkgs 1.12.0
apt-get ragel
  took   7.39 s

There is actually logic for this:
https://github.com/MSP-Greg/setup-ruby-pkgs/blob/55f53bfc958141703e587affef934b6848eae76d/index.js#L30
But that expects an empty string for Ruby version, and that's not the default value from action.yml.
I would have thought just not setting ruby-version for this action would be enough to not run setup-ruby in this action. But that means the behavior when ruby-version is unset (If the ruby-version input is not specified, .ruby-version is tried first, followed by .tool-versions) cannot be used with this action. Thoughts?

I realized this issue earlier, but was working on something else.  Let me switch gears.
I was wondering about testing the location of the enabled/default ruby?  If it has been changed from toolcache, than setup-ruby has run?
Also, maybe I should add an input that specifies what branch/tag is used for setup-ruby?  That might help for our own testing?

I was wondering about testing the location of the enabled/default ruby? If it has been changed from toolcache, than setup-ruby has run?

That's an interesting idea, but it would mean it would also not run if e.g. PATH was changed to include another Ruby. Probably a rare case, but quite confusing then.
Concretely, using ruby-version: '' is not so bad, but I'd suggest maybe having another word to not have to care about quoting like skip:
- uses: MSP-Greg/setup-ruby-pkgs@v1
  with:
    ruby-version: skip
    # Or maybe better
    setup-ruby: skip

@eregon
Should ruby-version: none bypass running setup-ruby?  That way, it's 'opt in' to bypass.   BTW, adding bundler-cache as an input...

Yeah, none or skip sounds fine, and I think that's the simplest solution here.
none is already used for the bundler input so it's kind of consistent.

Working on it.  I'll use 'none'.  I'll also make it clear in actions.yml what inputs are passed to setup-ruby...

Done v1.13.0

Thanks!


Fix typo in readme

Fix what I believe is a simple typo in the readme!
Thanks for the great client!

These examples are actually duplicated in go code so they can be tested: https://github.com/ericchiang/k8s/blob/master/examples/in-cluster-client.go#L25
Mind adding this change there too? :)

Yep! Added

lgtm, thanks!


Simplify creation of blueprint delete confirmation message

we got rid of __('?'), __('blueprint?') which would be kind of weird to translate
we don't construct the confirmation message in two places
we reduced the amount of code :-)

@AparnaKarve Review please?

@mzazrivec Looks great.
@dclarizio OK to merge.


Handling images inside p

Hi,
when placing an image inside an p-Tag the image can't be moved. Made a quick pen for illustration:
http://codepen.io/BugHunter2k/full/ZQdNGy/
is this by design or is this a  bug?

Hi @BugHunter2k images within paragraphs are not part of the editable environment, rather they are content within the editable paragraph - so not being able to drag-drop them around in the same way as editable images is by design (is as much that I've not looked at implementing that to date - but if it's a popular request I'd happily look into it).
If you're stuck for a short term solution you can move the image within the code by using the code section of the properties dialog.


Users can get more information on terms in the wiki

Description
As shown in the design terms which need an additional explanation are highlighted in the text and users can click on the highlight to get more information on a specific term.

To dicuss

Is a term just a simple text with an explanation or is a wikipedia page needed that user can go to?

A term is related to a wikipedia page

Is the explanation shown inline or in a popup? popup
How is the term highlighted, does the content manager do this or is it highlighted automatically? Content manager

Acceptance criteria

[ ] User can click trough to a statictermpage
[ ] Users can click on a term to see an introduction
[x] Content managers can insert terms in the richttext element
[x] Staticterm pages are listed as terms in the richttext editor
[x] Staticterm pages have a mandatory introduction
[ ] Terms are "automatically" highlighted in texts on interactive content with an underline

@pascalalferink @broekhuisg I created the option to reference a staticTermPage in the richtext as a link. When you select a text in a richtexteditor and click the " icon you can select an existing staticTermPage which is then included as a link.
A staticTermPage is a StaticPage with a mandatory introduction, Kasper said that the terms will always link to a staticPage, if in the future we need to add more page types this is possible.
Todo:
The api renders a term link in the following form term2 we have some limited control over the attributes in handlers.py but not over the tag or text of the link so we should add some functionalty in react which parses these links into a nice modal with a link.

Inherit from termpage to make it more flexible in the future and easier to get all pages that can be terms by type

Clickable terms are marked with a dotted line
When clicked, a modal appears with the test from the data-introduction-text

@antw  / @broekhuisg  could one of you review this feature?
https://github.com/ZEnMo/Holon-webapp/pull/170


Use Different Sass Loader

Hello, thanks for mantaining this project. Actually I'm using CRA 3.x with Typescript, and it uses the sass-loader as default for Sass processing.
How could I change it to use the yibn2008/fast-sass-loader?
I found the issue #18, but I don't know if it applies to this too.
Best regards.

Fixed. But didn't get a way to make ~ imports (node_modules ref) to work.

@brunoalano glad to hear you managed to fix it––have you tried babel-plugin-module-resolver ?


[ci] Deploy to gh-pages automatically #172

closes #172

*Try opening any link here: https://openwisp.github.io/netjsongraph.js/, it doesn't work for me. I see the commit in the gh-pages branch coincides in timing with this commit here, so I am assuming these change broke the gh-pages, what do you think?.

Another thing I notice is the following, the commit message of 3f54419, deploy: 7c81ffb, but the commit hash I see here is 589128a, so the two do not match, why is that? Can we have them match?

The commit message used to work properly in my fork. Are you sure you changed the gh-pages deployment branch in settings to gh-pages? Currently the gh-pages build last run on the the merging of previous PR.

Now the links are working. This commit is getting merged with the last commit of gsoc22 branch at gh-pages branch. I guess that is the reason for the different commit message.


ModuleNotFoundError: No module named 'atoma' on heroku

even though I think I correctly declared the module in the requirements file.

It's hard to investigate without more information. Do you have excerpt of code or build logs?

Sorry, there you go:
2018-11-05T11:31:37.514358+00:00 app[bot.1]:     import atoma, requests
2018-11-05T11:31:37.514363+00:00 app[bot.1]: ModuleNotFoundError: No module named 'atoma'
2018-11-05T11:31:37.667656+00:00 heroku[bot.1]: State changed from up to crashed
2018-11-05T11:31:37.603795+00:00 heroku[bot.1]: Process exited with status 1

2018-11-05T12:30:15.000000+00:00 app[api]: Build started by user<EMAIL_ADDRESS>2018-11-05T12:30:35.334943+00:00 heroku[bot.1]: State changed from crashed to starting
2018-11-05T12:30:35.010969+00:00 app[api]: Release v67 created by user<EMAIL_ADDRESS>2018-11-05T12:30:35.010969+00:00 app[api]: Deploy 1d85fe2c by user<EMAIL_ADDRESS>2018-11-05T12:30:46.540199+00:00 heroku[bot.1]: Starting process with command `python PukiWikiDicoRSS.py`
2018-11-05T12:30:47.172806+00:00 heroku[bot.1]: State changed from starting to up
2018-11-05T12:30:50.625255+00:00 heroku[bot.1]: Process exited with status 1
2018-11-05T12:30:50.525135+00:00 app[bot.1]: Traceback (most recent call last):
2018-11-05T12:30:50.525161+00:00 app[bot.1]:   File "PukiWikiDicoRSS.py", line 121, in <module>
2018-11-05T12:30:50.525624+00:00 app[bot.1]:     import atoma
2018-11-05T12:30:50.525627+00:00 app[bot.1]: ModuleNotFoundError: No module named 'atoma'
2018-11-05T12:30:50.764174+00:00 heroku[bot.1]: State changed from up to crashed
2018-11-05T12:30:46.000000+00:00 app[api]: Build succeeded

hang on! I think I might have failed to update the Pipfile. Let me check

Indeed, for some reason I forgot to update the pipfile, resulting in the build succeeding modulo the installation of some modules installed from pipenv and not the (global) pip. My bad. Thanks and congratulations on your nice module!


Synthesis failed for java-bigquerystorage

Hello! Autosynth couldn't regenerate java-bigquerystorage. :broken_heart:
Here's the output from running synth.py:
Cloning into 'working_repo'...
Switched to a new branch 'autosynth'
Cloning into '/tmpfs/tmp/tmp8rh1qip4/working_repo_dup'...
done.
Cloning into '/tmpfs/tmp/tmp8rh1qip4/googleapis'...
fatal: destination path '/tmpfs/tmp/tmp8rh1qip4/googleapis' already exists and is not an empty directory.
Traceback (most recent call last):
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/tmpfs/src/git/autosynth/autosynth/synth.py", line 509, in <module>
    main()
  File "/tmpfs/src/git/autosynth/autosynth/synth.py", line 356, in main
    return _inner_main(temp_dir)
  File "/tmpfs/src/git/autosynth/autosynth/synth.py", line 447, in _inner_main
    ] + enumerate_versions(metadata, {"git": GitSource(temp_dir)})
  File "/tmpfs/src/git/autosynth/autosynth/synth.py", line 82, in enumerate_versions
    versions = asource.enumerate_versions(source[source_type])
  File "/tmpfs/src/git/autosynth/autosynth/git_source.py", line 104, in enumerate_versions
    git.clone_repo(remote, local_repo_dir)
  File "/tmpfs/src/git/autosynth/autosynth/git.py", line 37, in clone_repo
    ["git", "clone", "--single-branch", source_url, "--", target_path]
  File "/home/kbuilder/.pyenv/versions/3.6.9/lib/python3.6/subprocess.py", line 311, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['git', 'clone', '--single-branch', 'https://github.com/googleapis/googleapis.git', '--', '/tmpfs/tmp/tmp8rh1qip4/googleapis']' returned non-zero exit status 128.

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart:


Change directory structure so users can easily see where the code of the NuGet packages are

Ardalis couldn't have done it better :-)

Best wait after merge of #17


fix(android): add missing imports

gradlew build currently fails with:
> Task :capacitor-community-http:compileDebugJavaWithJavac FAILED
C:\test\node_modules\@capacitor-community\http\android\src\main\java\com\getcapacitor\plugin\http\Http.java:467: error: cannot find symbol
    private void writeToOutputStream(OutputStream out, String data) throws IOException {
                                     ^
  symbol:   class OutputStream
  location: class Http
C:\test\node_modules\@capacitor-community\http\android\src\main\java\com\getcapacitor\plugin\http\Http.java:469: error: cannot find symbol
            os.write(data.getBytes(StandardCharsets.UTF_8));
                                   ^
  symbol:   variable StandardCharsets
  location: class Http
Note<EMAIL_ADDRESS>uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
2 errors
<===----------> 26% EXECUTING [1s]
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':capacitor-community-http:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s
18 actionable tasks: 1 executed, 17 up-to-date

This fix imports the missing references.

I had the same problem and can confirm this works

@thomasvidas is there any change to get this done in a new release version?

@thomasvidas is there any change to get this done in a new release version?

Yes. Once I handle the outstanding issues and PRs I plan on releasing a 0.3.0 to npm. I can't give you an ETA but I'm trying to get it out soon. You can pull down the master branch right now if you need a more immediate fix though.

Yes. Once I handle the outstanding issues and PRs I plan on releasing a 0.3.0 to npm. I can't give you an ETA but I'm trying to get it out soon. You can pull down the master branch right now if you need a more immediate fix though.

@thomasvidas the problem with using this repository is it does not include the distribution folder.

@thomasvidas the problem with using this repository is it does not include the distribution folder.

You can pull down the repo and run the following npm commands to build the dist folder
npm install
npm run build

You can pull down the repo and run the following npm commands to build the dist folder
npm install
npm run build

@thomasvidas yeah, we did that, but for production it is not a out-of-the-box idea.
Thanks.

@thomasvidas yeah, we did that, but for production it is not a out-of-the-box idea.
Thanks.

@thomasvidas We did that, but it does not seem intuitive since installing by the repo does not include the src folder and pulling down, building, copying and pasting does not seem suitable for a production environment.
Thanks.

@thomasvidas We did that, but it does not seem intuitive since installing by the repo does not include the src folder and pulling down, building, copying and pasting does not seem suitable for a production environment.
Thanks.


com.android.tools.build:gradle:8.6.0

Describe your changes
Issue ticket number and link
Checklist before requesting a review
For each PR

[x] Add Copyright if it missed:
- "Copyright (c) 2019-present Axmol Engine contributors (see AUTHORS.md)."

[x] I have performed a self-review of my code.
Optional:

[ ] I have checked readme and add important infos to this PR.
[ ] I have added/adapted some tests too.

For core/new feature PR

[ ] I have checked readme and add important infos to this PR.
[ ] I have added thorough tests.

This PR will affect android studio version requirement from 2023.3.1 to 2024.1.2


Update AboutUs with basic information.

Codecov Report

Merging #36 (23f5347) into master (16197f4) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #36   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

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 16197f4...23f5347. Read the comment docs.


SSO not working with React Webchat

Is it an issue related to Adaptive Cards?

[ ] Yes, this is an Adaptive Card issue but it is specific to Web Chat.

Do you have any screenshots?
The below code is used with React webchat with Directline secret and generating the token for the bot.
thisObject.directLine.postActivity({
                type: 'event',
                name: 'signin/tokenExchange',
                value: {
                    id: activity.attachments[0].content.tokenExchangeResource.id,
                    connectionName: activity.attachments[0].content.connectionName,
                    token: token,
                },
                "from": {
                    id: "Email",
                    name: "name",
                    role: "user"
                }
              }).subscribe(
                id =>
                {
                    debugger;
                    if (id === 'retry')
                    {
                      //document.location.reload();
                        // bot was not able to handle the invoke, so display the oauthCard
                        return next(action);
                    }
                    // else: tokenexchange successful and we do not display the oauthCard
                },
                error =>
                {

                    // an error occurred to display the oauthCard
                    return next(action);
                }

What version of Web Chat are you using?
Latest production
Which distribution are you using Web Chat from?
NPM
Which hosting environment does this issue primarily affect?
SharePoint
Which browsers and platforms do the issue happened?
Browser: Edge (latest), Browser: Chrome (latest), Browser: Firefox (latest)
Which area does this issue affect?
Others/unrelated
Is this an accessibility issue?

[ ] Yes, this is an accessibility issue.

Please describe the bug
We currently use React webchat to embed into a SharePage page (using React Npm and spfx). The code mentioned above forces the Single Sign On using AAD Authentication by generating the token using Directline secret. But seems like everytime the login button keeps coming even though the token generation is fine. The same code works fine with webchat.js bundle. Need your help to figure out why this is not working. Appreciate your help.
Do you see any errors in console log?
No errors
How to reproduce the issue?

Try typing a text in webchat and the oauth login card event will be trigerred
This will call token generation code and supposed to do token exchange so that user is logged in

What is the expected and actual behavior?
Expected: Single Sign On should work and Login button should not be displayed as user has already logged in
Actual: Login button is being displayed always
Adaptive Card JSON
No response
Additional context
No response

@aksridhar, is your implementation based off of one of the SSO samples provided in this repo? If so, can you tell me which one?

Hello @stevkan  Thanks for responding so quickly.  The original react code was from https://github.com/microsoft/BotFramework-WebChat but the webchat always prompted for login and hence I was trying to use the webchat.js SSO sample available in https://learn.microsoft.com/en-us/power-virtual-agents/configure-sso. Our bot is PVA Bot and we are using webchat.js and it works fine with SSO but using React webchat it always prompts for login

Thanks a lot Steven. Really appreciate it.
Thanks,Sridhar
On Wednesday, November 30, 2022 at 08:11:53 PM EST, Steven Kanberg @.***> wrote:
@aksridhar - thank you for your patience. I've been looking into this and hope to have a useful update for you soon.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

@aksridhar - Thank you for your patience. I'm having some trouble getting a repro setup of this. Please accept my apology for the wait. I have a couple quick clarifying questions.
When you say you are using React Web Chat, do you mean you are using the React flavor of Web Chat as in window.ReactDOM.render()? Or do you mean you are using Web Chat within a React framework project?

The original react code was from https://github.com/microsoft/BotFramework-WebChat

Can you tell me which Web Chat SSO sample you had initially tried?

Our bot is PVA Bot and we are using webchat.js and it works fine with SSO but using React webchat it always prompts for login

Does this occur in React regardless of whether you are using the BotFramework-WebChat sample or the PVA Web Chat sample?

@aksridhar - I was able to get both the PVA SSO and Web Chat SSO samples up and running while connected to a PVA bot, but with limited success.
I know the Web Chat SSO sample works since I can successfully use SSO to login when I connect to my BotFramework SDK bot. However, using the same OAuth credentials in PVA's Authentication that are used in the SDK bot registration's OAuth setup only ever produces the magic code.
The same is true for the PVA SSO sample in that it only ever produces the magic code. (This sample doesn't work with a BF SDK bot.)
That both sample code bases, using entirely different methods for implementing Web Chat, produce the same result leads me to believe that the issue is on the PVA side. I'm working on identifying who the right person in the PVA team is that could help me with this. I'll provide an update once I know who this is and have had a chance to discuss this with them.
What I have not been able to repro is the reoccuring login prompt after login. I suspect you are not actually getting logged in which is resulting in the below code getting executed. How are you verifying your login status?
if (id === 'retry')
    {
        //document.location.reload();
        // bot was not able to handle the invoke, so display the oauthCard
        return next(action);
    }
    // else: tokenexchange successful and we do not display the oauthCard

Hello @stevkan  Really apologize for the delay in responding. Thank you so much for looking into this. One thing I love about React control for webchat is that it does not show any login prompt. My channel will be Teams and with webchat and PVA I am able to get SSO to work but it keeps signing in very often. I am hoping to avoid this with React and PVA. The token creation is successful but token exchange code is not working with React approach.

@aksridhar - I'm including the primary Web Chat developer in this conversation to rely on his expertise. However, as he is out for the holidays until after the new year, we can't expect a response until after then. Your patience will be appreciated.
@compulim - DRI suggested may have insights on how to successfully setup SSO with a PVA bot. Can you provide any thoughts or guidance on this?

@aksridhar I am not familiar with how SSO works with PVA. I am reading some docs from here, https://learn.microsoft.com/en-us/power-virtual-agents/configure-sso#configure-your-custom-canvas-html-code-to-enable-sso.
Comparing with your code, the postActivity() call is sending an activity of type "invoke", rather than "event".
  directLine.postActivity({
-   type: 'event',
+   type: 'invoke',
    name: 'signin/tokenExchange',

Please let us know if it works. This is directly talking to PVA bot outside of Web Chat. If it doesn't work , we will find someone from PVA who owns the SSO part to help. Probably CK or Jeff.

Hello @compulim Thank you so much for looking into it. I already created a ticket in PVA forum but did not hear anything till date. The PVA code does work with javascript but I am trying to use react component. I am passing 'invoke' as that is the only value allowed.
thisObject.directLine.postActivity({                 type: 'event',                 name: 'signin/tokenExchange',                 value: {                     id: activity.attachments[0].content.tokenExchangeResource.id,                     connectionName: activity.attachments[0].content.connectionName,                     token: token,                 },                 "from": {                     id: "",                     name: ""                 }               }).subscribe(
Looks like the token exchange is not happening.

Salem is going to look at this ticket.

Bumping this as I've ran into the same issue (or so it seems).
This sample works - if the user logs in before BF sends the sign in request, the OAuth card is not displayed.
The same logic in a React component fails, though. More specifically, sending the invoke activity fails with the following error (although the actuall HTTP status is 502 - bad gateway)
{   "error": {     "code": "BotError",     "message": "Failed to send activity: bot returned an error"   },   "httpStatusCode": 500 }


Objection engine rewrite

Since starting to contribute to this project, there have been quite a few things I've wanted to add, but found difficult to do with the way the current video-building system is structured:

Add "Hold it!" and "Take that!" bubbles, and allow them to be inserted at any point in dialogue (#42)
Mid-dialogue pauses, sound effects, and animations for emphasis (#29)
Relatively easily make videos for other Ace Attorney games using different assets (#71)
Potential to add other shots, like jury murmurs, gavel banging, close-ups with action lines (#5)
Panning animation between the defense's bench, witness stand, and prosecutor's bench
Generally speaking, more customization/control over the dialogue, that can more closely rival the original games

I've been working on a "rough draft" of a rendering system rewrite. This is a sample export of what I have so far:
https://user-images.githubusercontent.com/9957987/201572929-8bc48f74-2047-4e73-90f1-a625d57e0808.mp4
In addition to the text colors, self-closing tags can also be used to do things like change a character sprite, play an animation, or wait a specific period of time. This gives the user the ability to make much more dynamic scenes! The downside is that because so much is controlled via the input script, the input text size becomes a lot bigger. For example, here's the text for the first dialogue box from Phoenix in the video:
<startblip male/><sprite left new_assets/character_sprites/phoenix/phoenix-normal-talk.gif/>I am going to <red>slam the desk</red><sprite left new_assets/character_sprites/phoenix/phoenix-normal-idle.gif/><stopblip/><wait 1/> <stopblip/><objection phoenix/><wait 0.8/> <phoenixslam/><wait 0.8/> I<startblip male/><sprite left new_assets/character_sprites/phoenix/phoenix-normal-talk.gif/> just did it<stopblip/><holdit phoenix/><wait 0.8/> <startblip male/>did you see that <green>was i cool</green><sprite left new_assets/character_sprites/phoenix/phoenix-normal-idle.gif/><stopblip/><showarrow/><wait 3/>?<hidearrow/><playsound pichoop/>
Most of these tags (such as startblip, stopblip, etc) could be added to the text by an intermediate step between the user input and the actual rendering, so unless a user wanted to script out actions very specifically, they probably wouldn't need to worry with most of it. I also often use Python's f-strings to create macros, such as SLAM_PHX = "<phoenixslam/><wait 0.8/>".
If you think this sounds good, I can start a new branch of Objection! and work on a more polished version! There are some major things I still need to get figured out, including reworking the tag system to better support commands and determining how the flow of action will be kept consistent. As such, it probably would not be ready for use in Objection! for quite a while. If I were to go ahead with continuing its development, though, it'd make sense to note it for the other issues listed above. That way, no one would address them, only for their changes to be wiped out by the new rendering engine.
Please let me know if you have any thoughts/questions/concerns/etc! 😄
Edit: Here's a link to my repository. The code (especially ace_attorney_scene.py, where the Ace Attorney-specific stuff happens) is a bit of a mess, sorry 😅  https://github.com/Meorge/ObjectionRenderer2Rough

Hi
This seems like a good idea. Inlining command in texts is usually done. It's basically how HTML works. I know Pokemon games work the same.
My main issues are two, but they're solvable (probably):

We have to make sure the parser works fine. It shouldn't crash and it should handle edge cases
The library may have to provide a way to escape/sanitize a text in case the "intermediate step" (the caller) wants to avoid users from writing code.

Apart from that I think the system may be a good idea and will help with future functionalities of objection engine.
I'll go ahead and mark those issues... not sure how but I'll mark them :P
I'm also gonna pin this issue.
Please use this issue to explain any doubts you find.

Great, thanks! I'll try to get started on the revamped parser later this week - I've got an idea on how it would work, but need to get some time to experiment with it and figure out the fine details.

Got some good progress done today - actions are no longer tied to specific strings, so I don't have to do weird stuff with spaces anymore!
https://user-images.githubusercontent.com/9957987/202365153-7a82f80d-1d90-46b6-976d-170854ec294e.mp4
I still need to get it working with multiple pages/boxes of dialogue.

I'm continuing to make slow but steady progress. We now have multiple pages, the prosecutor's bench, and some more effects (shake and flash)!
https://user-images.githubusercontent.com/9957987/202835142-74490a47-4b8a-4b18-9455-3adc6f045dc4.mp4
I've been working on it in my separate repository up to now, but within the next few days I'm planning to move the code to my fork + branch of Objection so that more of its progress will be logged in the repo's commit history.
As for the issues you brought up, I definitely need to make sure that string-to-number conversions don't crash the program, although I think it may be good for them to print a warning to the user and/or emit some sort of signal so that a calling application knows there was an issue. I still need to figure out how to make tags escapable...

If you don't know how to do something (as the escape tags thing) you can open a MR maybe I can take a look to it. I was thinking to just do a classical programming backslash \ to escape all reserved characters (<>/)
I don't think it would be strictly necessary for implementing it anyway

For the tag-escaping: I'm currently omitting escaped tags via a negative lookbehind: (?<!\\)<(/?)(.+?)(/??)> This works, except the backslash is still visible in the displayed text. It may be that this is a spot where something other than regular expressions would work fine (or maybe even better).
It's still got a ways to go before it's ready to replace the existing renderer, but the API/user function calls are starting to look more like what we're expecting. Here's an exported video and the current function calls for it:
https://user-images.githubusercontent.com/9957987/203684175-c1bdd68d-01fc-4395-b0a6-65cbbdc618dc.mp4
pages: list[DialoguePage] = []

pages.append(DialoguePage([DialogueAction("music start cross-moderato", 0)]))
pages.extend(get_boxes_with_pauses(
    user_name="Phoenix",
    character="phoenix",
    text="Hello it is I, Phoenix Wright. I am saying some lines of text."
))
pages.extend(get_boxes_with_pauses(
    user_name="Edgeworth",
    character="edgeworth",
    text="And I am the antagonist, Edgeworth. I am also saying some lines of text. Here is a third line, because I am very serious."
))
pages.extend(get_boxes_with_pauses(
    user_name="Gumshoe",
    character="gumshoe",
    text="Hey, pal! I'm on the witness stand! Ain't that cool? Woah ho ho look at me!"
))
pages.extend(get_boxes_with_pauses(
    user_name="Judge",
    character="judge",
    text="And I'm over here, on another screen! Isn't that just the neatest thing?"
))

pages.extend(get_boxes_with_pauses(
    user_name="Lotta",
    character="lotta",
    text="Don't forget about me, m'kay? I'm still here too."
))

director = AceAttorneyDirector()
director.set_current_pages(pages)
director.render_movie(-15)

Things that still need to be done for the renderer itself, especially issues visible in this video:

[ ] Objects in wide court shot

[ ] Defense bench
[ ] Prosecutor bench
[ ] Witness stand

[ ] Improve text wrapping

[ ] Words should wrap sooner than they do right now
[ ] Add a pause after a box ends, if one character's dialogue spans more than one box

[ ] RTL support (just realized this rewrite doesn't have the RTL updates that my previous pull request added to the older renderer, haha 😅 )
[ ] Presenting evidence

Once these are done, we'll be able to work more on the API. And once that's done, we can start working on nice little features, like:

[ ] Pauses after the ends of sentences
[ ] Analyze sentences' sentiment and change sprites mid-box based on them
[ ] Analyze the sentiment of words within a sentence and add impact effects/text coloring
[ ] Action line close-up shots, judge gavel smash, courtroom mumbling, etc

My branch with this code is at https://github.com/Meorge/objection_engine/tree/v4. It uses a new assets folder at https://drive.google.com/drive/folders/1-2NV-wpXPovJXW3KaI34AXRZFsrqm1oM?usp=sharing. I may be making changes to the contents and structure of this folder, so until we have an official release it probably doesn't make sense to host it somewhere else. I'd be more than happy to submit a PR for the code if you would like, but I don't know if it's complete enough for that to make sense yet, haha.

Now that school's out for the year, I have more time to spend working on this! 🥳
One somewhat-major change I have gone with is with making the HTML-style tag system optional. Before, the tags and text were "compiled" into lists of command objects that stated in what sequence they should be evaluated. Converting from "raw" text (as we might have scraped from Discord or Twitter) would follow a few steps:

Figure out where to place the HTML-style tags in the raw text string, and place them there, creating a new string
Compile the string into the list of command objects
Run the engine on the list of objects

This change cuts out step 1 by converting the raw text directly into the list of command objects. Not only is it more efficient, but I think it should also make it easier/more intuitive to code! I didn't remove any of the code for the HTML-style tag functionality. So if a user wanted to place commands at specific points or color specific chunks of text, they could do that too.

Evidence is now in! It also tries to detect proper nouns using Polyglot, and gives them a 50% chance of being colored red.
https://user-images.githubusercontent.com/9957987/208227044-45a53326-10cc-4740-ad88-0f0232c6065b.mp4
I also used the rich library to spruce up the terminal output:
https://user-images.githubusercontent.com/9957987/208227009-7a471b02-d86d-4b79-8b82-56c27f210672.mov
At this point, I don't think there's a whole lot more that'll be necessary before submitting the pull request. I'll see if I can get the sentence wrapping to work a bit better, and then I think it's mostly just moving the rest of the character sprites over to the new system.

The work you're doing here is gigantic Meorge. Things look so much better and that's using only your PoC.
The terminal output is also perfect
To be honest I even feel a bit bad you're doing do much work without help. Thanks a lot. I'll sure users will appreciate it once it reaches prod

Thanks so much! 😄
I'm having fun working on it, so no worries. I suppose, if anything my main concern is how readable it will be for other maintainers. One of the main goals with this rewrite was to make it more modular and extensible, so that in the future others could add new features and fixes more easily than the current system. I've got a pretty good understanding of how this new system works, but I think it'll be good for me to thoroughly document the architecture and interface so that others understand how to work with it.
Beyond that, I'd also like to see what can be optimized before publishing the v4 engine. As can be seen in the terminal video there, it took about 56 seconds to render a 50-second video. I'll have to compare it to the current engine to be sure, but I'm pretty sure that's a lot more time than it would take.

At this point, I'm feeling like it is quite close to ready for an alpha/beta release! I've written some documentation on the basic structure of the input, as well as tutorials for creating custom characters and music packs.
A few things I think would be good to have before the alpha/beta release:

[ ] Some kind of probability curve for determining when to pan the camera instead of cutting. Currently the camera will always pan between the left, center, and right sides of the courtroom, causing a lot of dead time. I'm thinking it should start with the camera pan probability at 1.0 - then, when the camera pans, it gets set to a low value (say, 0.1) and then slowly creeps back up towards 1.0 (perhaps more quickly, the longer the camera stays fixed in one position).
[ ] Better/more flexible sentiment analysis. Polyglot is great for being able to recognize so many languages in theory, but so far I've been finding it doesn't do a very good job with analyzing the English text I've given it. I think it might be worth looking into other models, such as some found on Hugging Face specifically trained on "internet speak". If there's a way we can prioritize one but fall back to another, that would be best.

About performance. Current engine it's not exactly fast. In fact I was thinking about rewriting parts to rust but it was too much work. So don't worry about it
The probability curve seems like a good idea. Panning it all the time is definitely not the best option since it will just be less impactful than just switching immediately
I will try if I find the tume the hugging face model. If it performs better than Textblob it'd be supper. If it performs better than polyglot we could maybe even try LibreTranslate+Hugging Face and ditch polyglot entirely. But this for sure needs further testing before making any decisions

Sounds good on the performance - I won't worry too much with it for now, we'll see how the engine performs and we can make further optimizations if/when necessary.
Regarding the probability curve, do you think that might be a good thing to hold off on for a separate PR? It'd be easy enough to temporarily disable the panning code for now and just have it always cut instead, replicating the behavior of the v3 engine. Similarly, it might make sense to just use the current sentiment analyzers for the first release of v4, and then work on improved analysis once that's out there.


pull request for e2e test at 02/05/2017 14:15:08

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Provide to_homogeneous for MatrixN

There already is a to_homogeneous method for VectorN, it would be great if nalgebra would provide the same for MatrixN (and SquareMatrix) to allow homogeneous coordinates in higher dimensions.
Such method would increase the dimensions of MatrixN to N+1 and set mat[(N,N)] = 1.
I could try to implement such a method, but right now I am still trying to better understand the structure of nalgebra. @sebcrozet would you be interested in such a method?

That would be useful, yes! The implementation and trait bounds would likely look very much like the .to_homogenous() method from the Rotation type there.
Note however that since there already is a to_homogeneous for VectorN, you may end up with a duplicated method error (because VectorN itself is an alias to a matrix). One way to solve this may be to add the D: IsNotStaticOne trait bound where D is the dimension type parameter.

Cool! My plan would be to move to_homogeneous() from Rotation to MatrixN. Rotation stores a MatrixN internally, so then we can just call this method there instead.
As you have predicted, I am running into problems with duplicated method errors. Adding D: IsNotStaticOne does not seem to fix this problem. I have added it as a trait bound for the method, and the impl block, but still get the errors. Do you have any other ideas on how to solve this problem? Oh and by the way, what is the actual purpose of IsNotStaticOne?

The IsNotStaticOne trait is implemented by Dynamic and by all type-level integer except U1. So may sometimes be enough to disambiguate situations where other impls of a trait already exist for vectors because vectors are just matrices with a number of columns equal to U1.
Would you mind showing what you tried so far so I can try help figuring out how to deal with this? By opening a PR maybe?

I think that I got the disambiguation to work, but now I'm having trouble to get the Allocator to work with DimNameSum. Here is the PR: #475. Could you maybe take a short look at it? Thank you!


Score not significantly improved

Below I have attached the training process for 6600 episodes with a total of 20000 episodes. The score results did not improve significantly, is this normal?
if I read in the readme, even 2000 episodes of robots can reach the finish point

Sorry for the late response.
I have re-tested the code, and everything seems fine. I've attached a GIF that shows the agent in the training phase, and it demonstrates that the agent is learning to solve the problem even before episode 1500. Additionally, I’ve included the new run result plot demonstrating the rewards received during training.

I am closing this issue as the answer has been provided.

I am closing this issue as the answer has been provided.


Add tests for Path::iter()

I'm starting to rust-ify parts of librsvg.  In there, sometimes I need to take apart a cairo_path_t and look at the segments by hand.  I noticed that gtk-rs/cairo has a very convenient Path::iter() which gives me exactly what I need!
I'd like to have a couple of tests for the path iterator and PathSegments in general.  Would you be interested in a pull request that adds tests like these inside the cairo module?  (I think the gtk-rs/tests module is for runnable-by-hand tests, not unit tests for little pieces; is this correct?)

Sure! Tests and examples are always appreciated.

I started writing tests and this came up.  The start of the test code goes like this:
#[cfg(test)]
mod tests {
    use super::*;
    use context::*;
    use image_surface::*;
    use ffi::enums::Format;

    fn make_cr() -> Context {
        let surface = ImageSurface::create(Format::Rgb24, 1, 1);

        Context::new(&surface)
    }

    #[test]
    fn empty_path_doesnt_iter() {
        let cr = make_cr();

        let path = cr.copy_path();

        assert!(path.iter().next().is_none());
    }

`
But when the test runs, it hits an assertion inside c_vec:
---- paths::tests::empty_path_doesnt_iter stdout ----
        thread 'paths::tests::empty_path_doesnt_iter' panicked at 'assertion failed: base != ptr::null_mut()', /home/federico/.cargo/registry/src/github.com-1ecc6299db9ec823/c_vec-1.0.12/src/c_vec.rs:65
stack backtrace:
   1:     0x55c57dc39a4f - std::sys::backtrace::tracing::imp::write::h82353b94d9957b5a
   2:     0x55c57dc3d1eb - std::panicking::default_hook::_$u7b$$u7b$closure$u7d$$u7d$::hd08c9fd28a21a931
   3:     0x55c57dc3cddc - std::panicking::default_hook::h9f5ce461fe95b992
   4:     0x55c57dc30f5d - std::panicking::rust_panic_with_hook::hfb9137c9fa89bbb0
   5:     0x55c57dbf6997 - std::panicking::begin_panic::h91a119e8e2811f21
                        at src/libstd/panicking.rs:328
   6:     0x55c57dbf760e - _<c_vec..CVec<T>>::new::h84c3ddbccdcb9a14
                        at /home/federico/src/gtk-rs/cairo/src/<std macros>:3
   7:     0x55c57dbf758f - cairo::paths::Path::iter::h1af455054fc746f9
                        at /home/federico/src/gtk-rs/cairo/src/paths.rs:44
   8:     0x55c57dbf8207 - cairo::paths::tests::empty_path_doesnt_iter::h2932713d195e9b90
                        at /home/federico/src/gtk-rs/cairo/src/paths.rs:128

This happens in Path::iter(), when calling CVec::new(data_ptr=NULL, length=0) - that function asserts that data_ptr is not null.
However, that is the kind of cairo_path_t that cairo_copy_path() returns for an empty path.
I'm not sure about these two options:

Check for this situation in paths.rs, and deal with it there.
Make CVec::new() understand that pointer=null and length=0 is a C idiom for "empty array".

What do you prefer?

You can see the tests in paths.rs from https://github.com/federicomenaquintero/cairo/tree/path-tests

IMHO better fix Path::iter()

Done!  Submitted a pull request.

The pull request got merged and the tests are in place; closing this issue now.


Left Nav Routes and event handlers

Hi, I'm trying to specify an action when a user clicks on an item in the LeftNav component; however, nothing is happening.
How do I attach behavior to a link in the LeftNav?
render() {
    var styles = this.getStyles();
    var authData = this.state.authData;

    var menuItems = [
      { type: MenuItem.Types.SUBHEADER, text: 'Settings' },
      {
         type: MenuItem.Types.LINK,
         route: 'root',
         text: 'Root'
      }
    ];
}

    return (

        <LeftNav ref="leftNav" docked={false} menuItems={menuItems} onNavOpen={this.onNavOpen} onChange={this.onChange}/>

    );
}

@hackingbeauty you have defined an onChange function right? If you haven't, that's what you need. Here's an example:
onChange(e, key, payload) {
    <some_instance_of_react_router>.transitionTo(payload.route);
  }

Of course, you need to set up React router and define the routes. Here's a basic example on how to do so. You can also look at how routing is done in the source code for the docs, namely the app.jsx, app-routes.jsx and app-left-nav.jsx files.

Yes, I have defined onChange; however, onChange doesn't seem to work.
onChange(e, key, payload){
    alert('hi');
    transitionTo(payload.route);
  },

  render() {
    var menuItems = [
      { type: MenuItem.Types.SUBHEADER, text: 'Settings' },
      {
         type: MenuItem.Types.LINK,
         route: 'all-videos',
         text: 'All videos'
      },
      {
         type: MenuItem.Types.LINK,
         route: 'tagged-videos',
         text: 'Tagged videos'
      }
    ];

    return (

        <LeftNav ref="leftNav" docked={false} menuItems={menuItems} onChange={this.onChange}/>

    );
  }

Any ideas?

If you debug with developer tools on Chrome or something, does the console say anything? (warnings / errors)

Did anything ever come of this?  I cannot get any item in LeftNav to respond to a click either.

Also, linking @oliviertassinari and @hai-cea so they can look into this..

LeftNav now supports nested children, which is the preferred usage. the actionJSON will soon be deprecated.

So how can we use this?  Can I put React components inside of the LeftNav now?

Yes, you can pretty much put anything in it, just like a div.


Extraction Fail

What i tried:
Using only Found footage mod;
Changing url to https://foundfootage-server.assasans.dev ;
Reinstalling game and mods - my thoughts was "maybe its problem from my side"
I was able to extract recording only once, when i used vpn, but it was on other url. But of course vpn is not a good solution for this.
I really like the idea of this mod, so i hope this can help a little bit to fix this.
There is a lot of "Spawned found camera" in log, i think its because spawnrate set to 1, so i can find camera faster and test if mod is working for me.
Also i after reading log i found "404 not found" error when footage was downloading i think. Idk maybe its important

LogOutput.log

That's strange, the mod can't even get the version from the server, so it's definitely not a random broken video error.

[Info   :   Console] An error occurred while fetching version: 404 (Not Found)
[Error  :Found Footage] Local version 0.2.1 is NOT compatible with remote 0.0.0 (incompatible)

Open https://foundfootage-server.assasans.dev/version in your browser and verify that the issuer of the SSL certificate is C=US; O=Let's Encrypt; CN=E1. Have you installed any root certificates from your ISP / government?

In certificate all same as you said, C=US, CN=E1, O=Let's Encrypt.
Dont really know what is "root certificate" but after some research i dont think i ever downloaded something like that

Ok i think i get it to work.
The issue was: im blind as hell.
In confige was https://foundfootage-server.assasans.dev/version
Not the https://foundfootage-server.assasans.dev
After changing to this, when i grabed camera console started spaming about CreateFakeVideo, so i already thought mod is working, then i got CD and successfully watched video of random dude.
Awesome mod and misstake from my side. 👍

Everything works, just one small mistake can break everything so if someone also made same misstake i hope they would see this


Rename getModelEnvironment to modelEnvironment

What is the purpose of the change
Fix #12542
Fix #12121
Fix #11785
Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #12551 (f07d3b1) into 3.2 (467622a) will decrease coverage by 0.26%.
The diff coverage is n/a.

:exclamation: Current head f07d3b1 differs from pull request most recent head 4276aa4. Consider uploading reports for the commit 4276aa4 to get more accurate results

@@             Coverage Diff              @@
##                3.2   #12551      +/-   ##
============================================
- Coverage     69.44%   69.19%   -0.26%
+ Complexity      338        2     -336
============================================
  Files          3496     1637    -1859
  Lines        165133    67525   -97608
  Branches      27752     9907   -17845
============================================
- Hits         114674    46721   -67953
+ Misses        40423    16274   -24149
+ Partials      10036     4530    -5506

see 1890 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Azure Disk Encryption Migration from 2p to 1p

Resource Provider

Compute Resource Provider (CRP)
Description of Feature or Work Requested

Migration from 2p to 1p conceptual documentation (contact emdong if having access issues)
https://microsoft.sharepoint.com/teams/AzureSecurityCompliance/Security/_layouts/15/Doc.aspx?sourcedoc={c820c6d1-ba1e-45d8-bd74-5e103f5ac176}&action=edit&wd=target%28Dev.one%7Cd00dbe50-2249-48a0-9e60-77d8d2372b57%2FMigration%202pass%20to%201pass%7C41151f10-495a-442b-89ff-644bab53eb08%2F%29&wdorigin=703
Minimum API Version Required

Latest CRP API version - Azure Disk Encryption (ADE) does not have a dependency on CRP version.
Swagger Link

Azure Disk Encryption (ADE) does not have a separate API call. ADE is part of VMExtensions PUT.
Target Date

Target for GA in Iron. Currently, there is not a more specific ETA.

feature request


Implement support for the HATEOAS constraint

According to Roy Fielding:

"REST is defined by four interface constraints: identification of resources; manipulation of resources through representations; self-descriptive messages; and, hypermedia as the engine of application state." [1]

The first three are incorporated by RestKit (although it seems to couple REST to HTTP), but the latter one is missing. Namely, there is no built-in support for links representing possible state transitions or resource relationships, but rather the related entities need to be embedded or to be asked for with isolated queries based on id's.

"...if the engine of application state (and hence the API) is not being driven by hypertext, then it cannot be RESTful and cannot be a REST API. Period. " [2]

I think most people entirely miss the HATEOAS constraint, because most frameworks neither enforce, nor support the usage of them. Changing this for RestKit could improve the quality of and finally enable REST for wannabe-rest-systems.

What's the status of HATEOAS support here? In my mind, this is the most important part of "REST", especially given that using HTTP gives you most of the constraints for free, and I was disappointed to find that a library called "RestKit" doesn't support some of the core concepts of REST.
I'd like to explore adding support for Hypermedia controls, but I've never used RestKit before. Would anyone be interested in helping out with this?


Missing Django requirement?

Hi :wave:
While trying to upgrade and convert this repository to use the new conventions, I got some errors by missing Django:
PYTHONPATH="testapp" \
	python -b -W always -m coverage run testapp/manage.py test ${TEST_ARGS:-tests}
Traceback (most recent call last):
  File "testapp/manage.py", line 11, in main
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

Looking at this line above and comparing with all other django-* apps we have in the org, I believe this app is missing a dependency there. Initially, I thought django-environ was requiring Django but checking in their repo it's clear they have no installation requirements either.
https://github.com/surface-security/django-environ-ppb/blob/0f972b7c669e646d4256a6cfebf996e799fb05d2/setup.cfg#L29-L31
After adding Django >= 3.0, <4 as we have done to others, test suite works successfully.
(django-environ-ppb) MACVQTH71XGGF :: github.com/surface-security/django-environ-ppb ‹misc-tweak_workflows*› » tox -e py -v
py: find interpreter for spec PythonSpec(path=/Users/silvag3/.pyenv/versions/3.11.1/envs/django-environ-ppb/bin/python3.11)
py: proposed PythonInfo(spec=CPython3.11.1.final.0-64, system=/Users/silvag3/.pyenv/versions/3.11.1/bin/python3.11, exe=/Users/silvag3/.pyenv/versions/3.11.1/envs/django-environ-ppb/bin/python3.11, platform=darwin, version='3.11.1 (main, Jan 11 2023, 15:59:02) [Clang 14.0.0 (clang-14<IP_ADDRESS>)]', encoding_fs_io=utf-8-utf-8)
.pkg: find interpreter for spec PythonSpec(path=/Users/silvag3/.pyenv/versions/3.11.1/envs/django-environ-ppb/bin/python3.11)
.pkg: proposed PythonInfo(spec=CPython3.11.1.final.0-64, system=/Users/silvag3/.pyenv/versions/3.11.1/bin/python3.11, exe=/Users/silvag3/.pyenv/versions/3.11.1/envs/django-environ-ppb/bin/python3.11, platform=darwin, version='3.11.1 (main, Jan 11 2023, 15:59:02) [Clang 14.0.0 (clang-14<IP_ADDRESS>)]', encoding_fs_io=utf-8-utf-8)
.pkg: _optional_hooks> python /Users/silvag3/.pyenv/versions/3.11.1/envs/django-environ-ppb/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: exit None (0.13 seconds) /Users/silvag3/github.com/surface-security/django-environ-ppb> python /Users/silvag3/.pyenv/versions/3.11.1/envs/django-environ-ppb/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ pid=62671
.pkg: get_requires_for_build_sdist> python /Users/silvag3/.pyenv/versions/3.11.1/envs/django-environ-ppb/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: exit None (0.03 seconds) /Users/silvag3/github.com/surface-security/django-environ-ppb> python /Users/silvag3/.pyenv/versions/3.11.1/envs/django-environ-ppb/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ pid=62671
.pkg: prepare_metadata_for_build_wheel> python /Users/silvag3/.pyenv/versions/3.11.1/envs/django-environ-ppb/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: exit None (0.03 seconds) /Users/silvag3/github.com/surface-security/django-environ-ppb> python /Users/silvag3/.pyenv/versions/3.11.1/envs/django-environ-ppb/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ pid=62671
.pkg: build_sdist> python /Users/silvag3/.pyenv/versions/3.11.1/envs/django-environ-ppb/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: exit None (0.02 seconds) /Users/silvag3/github.com/surface-security/django-environ-ppb> python /Users/silvag3/.pyenv/versions/3.11.1/envs/django-environ-ppb/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__ pid=62671
py: install_package_deps> python -I -m pip install --pre 'Django<4,>=3.0' --pre
py: exit 0 (4.17 seconds) /Users/silvag3/github.com/surface-security/django-environ-ppb> python -I -m pip install --pre 'Django<4,>=3.0' --pre pid=62728
py: install_package> python -I -m pip install --pre --force-reinstall --no-deps /Users/silvag3/github.com/surface-security/django-environ-ppb/.tox/.tmp/package/2/django-environ-ppb-1.0.0.tar.gz --pre
py: exit 0 (0.62 seconds) /Users/silvag3/github.com/surface-security/django-environ-ppb> python -I -m pip install --pre --force-reinstall --no-deps /Users/silvag3/github.com/surface-security/django-environ-ppb/.tox/.tmp/package/2/django-environ-ppb-1.0.0.tar.gz --pre pid=62736
py: commands[0]> make coverage TEST_ARGS=tests
PYTHONPATH="testapp" \
                python -b -W always -m coverage run testapp/manage.py test ${TEST_ARGS:-tests}
/Users/silvag3/github.com/surface-security/django-environ-ppb/.tox/py/lib/python3.11/site-packages/certifi/core.py:36: DeprecationWarning: path is deprecated. Use files() instead. Refer to https://importlib-resources.readthedocs.io/en/latest/using.html#migrating-from-legacy for migration advice.
  _CACERT_CTX = get_path("certifi", "cacert.pem")
/Users/silvag3/github.com/surface-security/django-environ-ppb/.tox/py/lib/python3.11/site-packages/environ/environ.py:754: UserWarning: Error reading /Users/silvag3/github.com/surface-security/django-environ-ppb/testapp/local.env - if you're not configuring your environment separately, check this.
  warnings.warn(
/Users/silvag3/github.com/surface-security/django-environ-ppb/.tox/py/lib/python3.11/site-packages/django/http/request.py:1: DeprecationWarning: 'cgi' is deprecated and slated for removal in Python 3.13
  import cgi
/Users/silvag3/github.com/surface-security/django-environ-ppb/.tox/py/lib/python3.11/site-packages/django/utils/encoding.py:266: DeprecationWarning: Use setlocale(), getencoding() and getlocale() instead
  encoding = locale.getdefaultlocale()[1] or 'ascii'
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
....
----------------------------------------------------------------------
Ran 4 tests in 0.004s

OK
Destroying test database for alias 'default'...
/Users/silvag3/github.com/surface-security/django-environ-ppb/.tox/py/lib/python3.11/site-packages/coverage/control.py:836: CoverageWarning: No data was collected. (no-data-collected)
  self._warn("No data was collected.", slug="no-data-collected")
coverage report
Name                     Stmts   Miss  Cover   Missing
------------------------------------------------------
ppbenviron/__init__.py      69     69     0%   1-101
------------------------------------------------------
TOTAL                       69     69     0%

tl;dr: Are we missing Django dependency in this project? If not, what's missing in the steps to have Django available for testapp?

I think the original app did not have django as a dependency because the app itself had no models or anything that required django.
So django would have to be installed only by tox which should already have been I think...
But either way is fine I suppose!

I think the original app did not have django as a dependency because the app itself had no models or anything that required django.
So django would have to be installed only by tox which should already have been I think...
But either way is fine I suppose!

Perhaps tox API changed and it's no longer installing with the current instructions. I'll try that approach then. Thanks!

I realized I misunderstood how tox handles the env block here: https://github.com/surface-security/django-environ-ppb/blob/main/tox.ini#L7-L9
I assumed this was a matrix of versions to install and run, and therefore it was failing. Closing this as a non-fixable because this app doesn't need to directly depend on Django.


Interbase/Firebird Database driver

Continuation of https://github.com/EllisLab/CodeIgniter/pull/1041
This is a database driver to support Firebird/Interbase databases.

Anything else, @narfbg?

@timw4mail Looks ok to me, the num_rows implementation is a bit awkward, but if it works (you've tested it - right? :)) - should be good for an initial version of the driver. Probably @philsturgeon could have an opinion on the heredoc usage and/or anything else that we might have missed.

@narfbg Yes, I've tested the count, and it works correctly.

@gaker @philsturgeon @pkriete How does this look to you guys?

Any other feedback?

@philsturgeon  @gaker @pkriete Can this be merged now?

One thumbs up. Somebody want to second?

That's now the second time I've had to manually merge the changelog. @narfbg could you send this so I don't have to worry about manually merging the changelog again?


How the enable monitoring option on the lancher UI interface adapts to the existing monitoring components

rancher v2.2.7
Hello, does the lancher UI interface enable monitoring to support the existing monitoring components,I have deployed Prometheus in the k8s cluster

It's not supported yet. Close in favor of https://github.com/rancher/rancher/issues/17370


Implement dumps routes in .NET SDK

added Dumps model and routes
added tests

#69 Implement dumps

@eskombro please check. Also, as for me... it'll be better if error handling will be better :) Maybe with MeiliSearch own Exception with all the exception details. It's just proposition :)

Hello @AlexNDRmac! Thanks for this PR!
Yes, an error handler is clearly missing in this SDK, it's on my TODO, I will add it soon 😉
I'll check your PR at the beginning of the coming week. Thanks again for your contribution!!

bors try

bors merge


Change float to int in Player class

Creating a Player object leads to a problem in the _batting_fielding_averages method, on line 84, with num_formats using the / operator, which gives a float instead of the // operator to get an int. This raises an error when it is used to create a range on line 85.

@abbygriffiths Hi, thanks for the report. Is this still an issue for you, and are you using Python 2 or 3?


[Event Request] CU 5880 Phys. Invt. Order-Finish and CU 5884 Phys. Invt. Order-Post

Requesting new events in codeunits 5880 Phys. Invt. Order-Finish and 5884 Phys. Invt. Order-Post.
For 5880 Phys. Invt. Order-Finish, I propose the following events in the Code() function: OnBeforeFinishPhysInvtOrder at the beginning of the function, and OnAfterFinishPhysInvtOrder at the end of the function.
For 5884 Phys. Invt. Order-Post, I propose the following events:

At the beginning of the Code function: OnBeforePostPhysInvtOrder
At the end of the Code function: OnAfterPostPhysInvtOrder
At the beginning of the InsertPostedHeader function: OnBeforeInsertPostedHeader
At the end of the InsertPostedHeader function: OnAfterInsertPostedHeader
At the beginning of the InsertPostedLine function: OnBeforeInsertPostedLine
At the end of the InsertPostedLine function: OnAfterInsertPostedLine
At the beginning of the InsertPostedRecordings function: OnBeforeInsertPostedRecordings
At the end of the InsertPostedRecordings function: OnAfterInsertPostedRecordings
Before inserting an individual posted recording header in the InsertPostedRecordings function, probably before line 350 of the codeunit: OnBeforeInsertPostedRecordingRecord
After inserting an individual posted recording header in the InsertPostedRecordings function, probably after line 353 of the codeunit: OnBeforeInsertPostedRecordingRecord
Before inserting an individual posted recording line in the InsertPostedRecordings function, probably before line 360 of the codeunit: OnBeforeInsertPostedRecordingLine
After inserting an individual posted recording line in the InsertPostedRecordings function, probably after line 363 of the codeunit: OnAfterInsertPostedRecordingLine
At the beginning of the InsertPostedCommentLine function: OnBeforeInsertPostedCommentLine
At the end of the InsertPostedCommentLine function: OnAfterInsertPostedCommentLine

Please always put the full detailed signature of the requested events.
If you use AL code copied from VSCode instead of screenshots it will speed up the process of implementation.


Clustering algorithm based on HashingTF LSH method

Hi @agarwalpratikkumar ,
thanks a lot for the update. I can see that Travis CI is still complaining about the graph-frames dependency: https://travis-ci.org/SANSA-Stack/SANSA-ML/builds/652965675#L5810 . Would it be possible that you try to fix it before we merge the PR.
Best regards,

Hi @GezimSejdiu
I added graph-frames as an external jar in the eclipse but I was unable to push it on git. Can you please tell me how can I add this jar on git.


9042-set-none-styles-for-unknown-geometry

Fallback solution for #9042
ping @javisantana

:es:

Frontend tests passing, so merging


Sass 3.3/3.4 support

!global assignment (#241)
lists
built-in functions (#191)
source-map (#135)
@extend !optional
@at-root (#193)

Needed, otherwise it is unusable !!!

Merging issue into #257


Replace timeline lookup mechanism with timeline-scope support

Demos such as /demo/view-timeline-css/with-delays-using-animation-time-range.html track a subject that is a sibling of the animated elements. For those to work properly in the native implementation, one needs to hoist up the scope of the timeline using timeline-scope.
The polyfill however ignores this timeline-scope declaration and performs timeline lookups based on an earlier version of the spec.
I am filing this bug to:

Fix the current lookup behavior so that it aligns with the spec.
Add support for timeline-scope instead.

@bramus @zouhir @flackr

The polyfill however ignores this timeline-scope declaration and performs timeline lookups based on an earlier version of the spec.

Is there any workaround for tracking siblings in the current implementation?


Different file access permission for different user?

Is there any way to configure Droppy such that if different user login, they will have different access permissions? If not, is this going to be a future feature?

I don't think that I'll have time or motivation to add something like that. Doing proper permissions that work consistently cross-platforms means I cannot make use file system permissions, but would have to implement everything on my own.
Maybe it's an option to you to run multiple instances for your users instead.

You mentioned you can make use of file system permissions to do what? Is that possible to treat different Droppy users differently by utilizing filesystem permissions?
One ad-hoc approach to solve this issue is to host two or more Droppy instance and using different user config files (with different permissions configured).

Just tried droppy out. On that note - what is the difference between privileged and normal users?
Would it be possible to just restrict certain actions to non-privileged users? (e.g. they cannot delete etc.)?


[Feature request] Support for OpenID Connect

Support for OpenID Connect

I was currently thinking about Okta integration, as we use this for internal user authentication. Okta does support OICD, but the first question to tackle is on how to integrate this.
In it's current form, SSO providers like GitLab have to be configured by the instance admin via Environment Variables. However, this means the Repman.io SaaS offering can not easily connect to your custom GitLab instance or GitHub Enterprise (as far as I know off).
Sentry handles this differently, it offers the SSO configured per organization. Some examples:
Login Flow
Regular login page, for non-SSO users

The ability login with sso for an organization can be done by going to [instancehost].com/[organization alias] or selecting the tab on the login page and filling out the organization alias:

After that you will be greeted with a screen of the available SSO options:

Configuring SSO
SSO can be configured in the Organization Settings -> auth, you will see a list of SSO providers available:

Then it's just a matter of configuring:

This could also pave the way for https://github.com/repman-io/repman/issues/58 and others


Any Measure Tool can be added to the map?

Measure distance or area from the map...

there is external package for this try to lookup in pub.dev

You can use latlong to get the distance between two points. Use a onTap callback to get your two locations.


curl request results in: LibreSSL SSL_connect: SSL_ERROR_SYSCALL

Is there an existing issue for this?

[X] I have searched the existing issues

Run a Diagnostic and Paste Link Here
ddev version v1.21.3
Docker Desktop for Mac: 4.15.0 (93002)
Docker Desktop for Mac: Compose: v2.13.0
Mac OS Version: 13.0.1 (22A400)
Apple M1
DDEV config:
name: typo3git
type: typo3
docroot: ""
php_version: "8.1"
webserver_type: nginx-fpm
router_http_port: "80"
router_https_port: "443"
xdebug_enabled: false
additional_hostnames: []
additional_fqdns: []
database:
  type: mariadb
  version: "10.3"
nfs_mount_enabled: false
mutagen_enabled: false
use_dns_when_possible: true
composer_version: "2"
web_environment: []
nodejs_version: "16"

Expected Behavior
Get a curl response from my DDEV project without SSL error
Actual Behavior
curl results into an error:
curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to typo3git.ddev.site:443

Steps To Reproduce
curl -vvv -X 'POST' 'https://typo3git.ddev.site'

Trying ::1:443...
connect to ::1 port 443 failed: Connection refused
Trying <IP_ADDRESS>:443...
Connected to typo3git.ddev.site (<IP_ADDRESS>) port 443 (#0)
ALPN: offers h2
ALPN: offers http/1.1
CAfile: /etc/ssl/cert.pem
CApath: none
(304) (OUT), TLS handshake, Client hello (1):
LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to typo3git.ddev.site:443
Closing connection 0
curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to typo3git.ddev.site:443

Anything else?
If I try requesting my DDEV project with generated SSL port it works:
curl -vvv -X 'POST' '<IP_ADDRESS>:50234'

Seems that somekind of DNS does not work correctly.
Trying <IP_ADDRESS>:443

is IMO totally wrong.

Hello @rfay
here is the gist: https://gist.github.com/froemken/18a43eb9eeb2f3c8a020160a79d726ed
I already use the curl version of homebrew
Warning: curl 7.86.0 is already installed and up-to-date.
To reinstall 7.86.0, run:
  brew reinstall curl

ddev poweroff && mkcert -uninstall && mkcert -install && ddev start typo3git

does not help. Problem is still the same.
Accessing the project with Google Chrome browser is no problem. I can access TYPO3 backend and frontend without any errors.

Your curl is working perfectly and so is mkcert. See

======== Curl of site from outside:
HTTP/1.1 200 OK
Server: nginx/1.20.1
Date: Sun, 04 Dec 2022 13:09:52 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding

DDEV used it quite successfully on the test project.
I imagine if you create a plain vanilla TYPO3 project using the DDEV quickstart it will also work perfectly with curl.

I seem to have had exactly this problem, and went poking around at a number of things. In the end, it seems to be fixed with brew reinstall ca-certificates, not sure why. So perhaps
ddev poweroff
brew reinstall ca-certificates
mkcert -uninstall
mkcert -install
ddev start

Like you, I poked at a number of things, but it looked like the ca-certificates repair worked for curl; I also did a reinstall of curl along the way, there could be another permutation that mattered.

No response, so closing, happy to continue this conversation, and hope you got it sorted out @froemken

Hi @rfay
thank you for your help.
The directory .ddev/custom_certs does not exist in my project.
I just have update DDEV to version v1.21.4
Further I have executed your list of commands one after the other.
The problem still exists:
➜  typo3_git curl -vvv 'https://typo3git.ddev.site/extensions'
*   Trying ::1:443...
* connect to ::1 port 443 failed: Connection refused
*   Trying <IP_ADDRESS>:443...
* Connected to typo3git.ddev.site (<IP_ADDRESS>) port 443 (#0)
* ALPN: offers h2
* ALPN: offers http/1.1
*  CAfile: /etc/ssl/cert.pem
*  CApath: none
* (304) (OUT), TLS handshake, Client hello (1):
* LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to typo3git.ddev.site:443
* Closing connection 0
curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to typo3git.ddev.site:443

Nice X-Mas
Stefan

Interesting, it shouldn't have been trying ::1:443 (ipv6) - it seems you must have *.ddev.site defined somewhere other than DNS? But at least it got the right IP when trying ipv4
Your problem may actually be related to https://stackoverflow.com/questions/48987512/ssl-connect-ssl-error-syscall-in-connection-to-github-com443
but please remove any reference to *.ddev.site in your /etc/hosts file, and if you're using a custom DNS, could you please turn it off temporarily?


Certain characters in twitter status break authentication

Hello,
I'm attempting to use this library to update Twitter, sort of like in the example code. It works most of the time, unless the status body contains certain characters: !, *, (, ), and a handful of others. Whereas it works normally without those characters, attempting to send a tweet with an exclamation point cause Twitter to return its error code "32", "Could not authenticate you."
This may be the same underlying problem discussed but never addressed in this Issue: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3046 So it's possible that the solution may lie deeper than this library, but I thought I'd bring it up here just in case.
I've tried various workarounds like replacing ! with %21 in the url string, but all to no avail. Any suggestions? I can provide sample code to reproduce if necessary.
Thanks,
Zach

You need to percent encode the status, and include the encoding: false
parameter in the post body.
On Wed, Apr 8, 2015, 22:24 Zach Whalen<EMAIL_ADDRESS>wrote:

Hello,
I'm attempting to use this library to update Twitter, sort of like in the
example code. It works most of the time, unless the status body
contains certain characters: !, *, (, ), and a handful of others. Whereas
it works normally without those characters, attempting to send a tweet with
an exclamation point cause Twitter to return its error code "32", "Could
not authenticate you."
This may be the same underlying problem discussed but never addressed in
this Issue:
https://code.google.com/p/google-apps-script-issues/issues/detail?id=3046
So it's possible that the solution may lie deeper than this library, but I
thought I'd bring it up here just in case.
I've tried various workarounds like replacing ! with %21 in the url
string, but all to no avail. Any suggestions? I can provide sample code to
reproduce if necessary.
Thanks,
Zach
—
Reply to this email directly or view it on GitHub
https://github.com/googlesamples/apps-script-oauth1/issues/5.

You mean like in the options array pasted to service.fetch ? I tried this (example below) and still get the same error:
var status = 'https://api.twitter.com/1.1/statuses/update.json?status=This%20what%21'
var options =
    {
    "method": "POST",
    "muteHttpExceptions": false,
    "encoding" : false
    };
try {
    var result = service.fetch(status, options);
    Logger.log(result.getContentText());
  }
catch (e) {
    Logger.log(e.toString());
}

Check that the percent encoding is working properly. There are some special
characters that can be passed without a problem, while others will cause
problems and need to be percent encoded. For example, you can't pass !, *,
( or ).
I'm going by memory, since it's been a few months since I grappled with
this. I posted to G+ about it, here's the link.
https://plus.google.com/+JamesPetersen02/posts/7xnheyidqRM
On Thu, Apr 9, 2015 at 9:19 AM Zach Whalen<EMAIL_ADDRESS>wrote:

You mean like in the options array pasted to service.fetch ? I tried this
(example below) and still get the same error:
var status = 'https://api.twitter.com/1.1/statuses/update.json?status=This what!'var options =
{
"method": "POST",
"muteHttpExceptions": false,
"encoding" : false
};try {
var result = service.fetch(status, options);
Logger.log(result.getContentText());
}  catch (e) {
Logger.log(e.toString());
}
—
Reply to this email directly or view it on GitHub
https://github.com/googlesamples/apps-script-oauth1/issues/5#issuecomment-91229434
.

This worked! Wow, thanks. The important parameter to set false is "escaping" not "encoding."
Awesome.


LEGO: Pull request from lego/hb_935_20170712213543147 to master

LEGO: Pull request from lego/hb_935_20170712213543147 to master with localized lcls

@csigs,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot


Android 64bit support

By August 1, 2019, 64 bit support is required for android apps. Are there any plans for updating the vuforia sdk to the latest version with 64 bit support?

Hi @chkatz, I've not got any immediate concrete plans - the process of upgrading the SDK is quite onerous and it is my understanding the at the 'classic' license model that this plugin supports is no longer offered.
It's a shame but at the moment I'm not in a position to consistently support the library - any efforts on my part will be ad-hoc.
I'd be more than happy to accept a PR though if you, or anyone else was interested


Missing "Focus Breadcrumbs" command

Type: Bug
The documentation suggests using the "Focus Breadcrumbs" command (bound to ⌘. and Control+. by default) here: https://code.visualstudio.com/Docs/editor/editingevolved#_breadcrumb-keyboard-navigation
However, the command is missing from the command pallette (⌘⇧P/Control+Shift+P). This makes it harder to discover and to learn the keybinding. Looking at the keyboard bindings list, the command lacks an English name, which seems to indicate it has been (accidentally?) removed from the command pallette.
This reproduces on Insiders and on the October 2022 (Version: 1.73.1).
VS Code version: Code - Insiders 1.74.0-insider (Universal) (ef415578d1b1019db585718968a303eeca4b8979, 2022-11-11T05:18:46.092Z)
OS version: Darwin arm64 21.6.0
Modes:
Sandboxed: Yes

System Info

Item
Value

CPUs
Apple M1 Pro (10 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
6, 5, 5

Memory (System)
16.00GB (0.11GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions: none
A/B Experiments
vsliv695:30137379
vsins829:30139715
vsliv368cf:30146710
vsreu685:30147344
python383:30185418
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30422396
pythontb:30258533
pythonptprofiler:30281269
vsdfh931cf:30280410
vshan820:30294714
pythondataviewer:30285072
vscod805cf:30301675
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593cf:30376535
pythonvs932:30404738
cppdebug:30492333
vsclangdf:30492506
c4g48928:30535728
dsvsc012:30540252
pylantcb52:30590116
vsccc:30564266
pyindex848:30577858
nodejswelcome1:30587009
gswce1:30602633
34cci188:30599831
pyind779:30600159
dbltrim-noruby:30604474

+1 for adding them to the command palette. Current registerCommandAndKeybindingRule is used but registerAction2 would be better here

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

@jrieken Ill submit the PR.

To verify

check the the command palette has command for
Focus Breadcrumbs, and
Focus and Select Breadcrumbs

Notice that you have to first open a persisted document:


Add new command support

Add new command support  for corral
There is already an init command, why is it superfluous?
It is the premise of adding template system to corral.
corral new hello

It looks like this logic：
mkdir hello
cd hello
corral init

The final new command:
corral new <template> mylib

results:
hello
├── corral.json
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── examples
│   └── simple-example
│       └── simple-example.pony
├── gitattributes
├── gitignore
├── hello
│   └── _test.pony
├── LICENSE
├── Makefile
├── README.md
├── RELEASE_PROCESS.md
└── STYLE_GUIDE.md

This is something we've discussed. Rolling the scaffolding packages into corral.
Do you have ideas on how this would be implemented?

Do you have ideas on how this would be implemented?
Yes.

Are you saying it is a direct copy? Everything will be exactly the same? "looks like" suggests differences.
I'd like to see a write up of how the templating would work for corral, not "looks like" something else.
The process of doing the design for corral will likely expose dependencies and other issues that will need to be discussed and worked through.

Not a simple copy. When a project is created using a template, it will automatically download the dependencies specified in corral.json.

corral.json is part of the template, the author of the template has built in the required dependency information

Not a simple copy. When a project is created using a template, it will automatically download the dependencies specified in corral.json.

I dont understand

corral.json is part of the template, the author of the template has built in the required dependency information

I don't understand.

For example:
corral new <templete> hello

You will get this directory:
hello
├── corral.json
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── examples
│   └── simple-example
│       └── simple-example.pony
├── gitattributes
├── gitignore
├── hello
│   └── _test.pony
├── LICENSE
├── Makefile
├── README.md
├── RELEASE_PROCESS.md
└── STYLE_GUIDE.md

Its corral.json content is:
{
  "deps": [
    {
      "locator": "github.com/mfelsche/ponycheck.git",
      "version": "0.5.4"
    },
    {
      "locator": "github.com/ponylang/valbytes.git",
      "version": "0.5.0"
    },
    {
      "locator": "github.com/ponylang/net_ssl.git",
      "version": "1.0.0"
    }
  ],
  "info": {}
}

I don't understand what your replies have to do with how the templating would work.

To put it simply: initialize a pony project with a specific structure and automatically download dependencies.

To put it simply: initialize a pony project with a specific structure and automatically download dependencies.

This reply has as far as I can tell nothing to do with what I asked. But I see where the confusion is so let me try again:
Are you saying this will be a  is a direct copy of how leingein works? Everything will be exactly the same? You siad "looks like" suggests differences.
I'd like to see a write up of how the templating would work for corral, not "looks like" something else.
The process of doing the design for corral will likely expose dependencies and other issues that will need to be discussed and worked through.

Yes, it will be a is a direct copy of how Leiningen works.
I think the meaning of the template system is to help people quickly clone an existing engineering structure style.

About templates, I think the problems of corral and lein are similar. We can learn from its ideas.

I absolutely this Corral should have a new command to encompass the library scaffolding.
I see this similar to but not the same as lein. From reading the lein docs it appears that what it does is use Mustache for templating and replaces Mustache variables with their values. My foreseen problem is how to handle variables without values? If arbitrary templates are allowed then so to are arbitrary variables.
I think a more limited design is best at this point and we can expand as needed.

My alternative proposal is mostly to do what the library scaffolding does currently, but in Pony rather than BASH. We limited the allowed variables to those currently available here and reuse the templates already available in the library scaffolding generator src/ directory.
The improvement I would make beyond the library scaffolding is adding more options in the form choices to use stable versus corral and ghactions versus circleci.
So the command might be used as corral new myproject --ci=ghactions --deps=corral to get a myproject using GitHub Actions and corral init ran in the new directory.
The more user-centric variables (i.e., GITHUB_USER and COMMIT_EMAIL) would be set as a corral new config stored at ~/.corral/config/new.toml.
This would then perhaps require an addition configuration command used like corral config GITHUB_USER=rhagenson
We would need to determine what a minimum configuration looks like and what a local override then looks like. Alternatively we can drastically pare down functionality and go more of the cargo route where corral new myproject would do little more than build a directory called myproject with a src/main.pony and corral.json file. Fewer options, fewer fluff, and fewer problems to start. Any additional features such as pre-configured CI could be added manually or rolled into corral new at a later point in time.

My vote as a hopeful individual is the proposal above to roll all of the library scaffolding into a corral new, but my internal "hold your horses" says make it as minimal as possible now and expand as needed. I have used the library scaffolding many times and I would not have included CI for most of the projects I started -- they were for my use so I was not going to use CI anyhow until I had at least written a handful of tests worthy of having validated on new commits.

@rhagenson stable is deprecated so I don't want to support it, but YES to like what is being done currently in scaffolding but in Pony.
I don't want to support CircleCI at this time. Multiple things are tied to GH already in the scaffolding and setting up GHActions is much easier so I think we should go with it.

Sounds good. So a blend of minimal with rolling functionality over is what you have in mind?
Something like corral new myproject --with-ghactions perhaps?

Who is working on this? I can't find a PR or branch regarding this topic.

AFAIK, no one is working on this at the moment


Login failure - invalid session id, user is not logged in

Hi, When I try to log in using crunchy, I get the following message from below and need to wait a while or switch proxies to use it
crunchy login --persistent <email> <password> -p http://<IP_ADDRESS>:****
invalid session id, user is not logged in
os: windows 11 22000
version: 2.2.1 (Installation via scoop)

Does it work if you switch to another proxy or using none at all?

Switch the proxy and wait for a period of time, or wait for a period of time without switching the proxy is also effective
Not available in my country without proxy crunchyroll

I've managed to reproduce it now. When logging in, the crunchy server should always return the same response when the correct credentials are given, but in some cases it doesn't. And I have absolutely no idea why because it makes no really sense. It may be a rate limit or something but they return nothing which could point to this. Some internal calls use and expect the data that is missing from the login request, and therefore your error is (incorrectly) raised.
A fix for will be available in the next few days, until then you have to continue switching your proxies.

Well ok my initial thought how to fix it won't work. When requesting login multiple time, this error eventually happens (translated: "A system error occurred. Please contact us for help")

 Well ok my initial thought how to fix it won't work. When requesting login multiple time, this error eventually happens (translated: "A system error occurred. Please contact us for help")

Das liegt daran das du den Login nicht offen hälst durch cookies oder sieht zumindest für mich danach aus, die zeitlichen abstände sind zu Kurz nach dem login bei jeden Download Loggt er sich erneut ein mich wirft er beim 4. Mal raus.
Wenn ich aber etwas warte ca 5 bis 10 minuten bis zum nächsten download kommt dieser Fehler nicht.
(war jetzt zufaul es zu übersetzen)

After some research I've came to the same conclusion. This is fixed in afa975c459947f613ea950ae2927d596918530ca which caches the session id in a temporary file.

Fixed in v2.2.2.

Wouldn't it be better to store the SessionID only for the current CLI Session, or check if there is a login failure after a automatic login, and if so the SessionID should be deleted + creds should be entered again by the user.

This is how the session id is stored / login process is structured if logged in persistent with credentials.
graph TD;
    A["Does session id exist (stored in a temporary file, e.g. /tmp/.crunchy on linux)"];
    A -- Yes --> B[Does logging in with the id work];
    A -- No --> C["Login with credentials (which are stored on a peristent location) and store the session id in the temporary file"];
    B -- Yes --> D[Download requested episode etc.];
    B -- No --> C;
    C --> D;

Instead of storing the Creds in clear text, wouldn't it be better to encrypt it with a specific password that the user has to enter upon cred load?

This is a good idea for v3


internal/filetypes: unexpected acceptance of arbitrary tag=value pairs

What version of CUE are you using (cue version)?

$ cue version
v0.10.0-alpha.1

Does this issue reproduce with the latest stable release?
Yes (v0.9.2)
What did you do?
! exec cue export json+iddfghdfg=sdfvdfsvb+anythingelse=blah: x

-- x --
{"foo": true}

What did you expect to see?
A passing test
What did you see instead?
> ! exec cue export json+unknowntag=somearbitraryvalue+anythingelse=blah: x
[stdout]
{
    "foo": true
}
FAIL: /tmp/x.txtar:1: unexpected command success

Even though there is clearly no tag unknowntag pr anythingelse, the filetype logic lets it through without issue.
There is probably further conversation to be had about whether attr=val-style filetype attributes
are worth having in general. The ability to have arbitrary values arguably makes it harder to
solve issue #3280 because the set of possible parameters becomes open-ended,
and this style of attribute is not actually used for anything significant in practiced currently.

Fixed by https://cuelang.org/cl/1200901


update docs and ajv versions

Pull Request Test Coverage Report for Build 868948832

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 90.299%

Totals

Change from base Build 861029007:
0.0%

Covered Lines:
104

Relevant Lines:
108

💛  - Coveralls