[WebView] Scrolling to top on recompose

Describe the bug
When a composable using WebView recompose, the WebView scroll to top at its default state.
To Reproduce
Steps to reproduce the behavior:

Create a composable containing the WebView composable from accompanist and a button that is shown based on a boolean.
Use the code at the end of this description if necessary. It implements a scroll listener that shows a button when Y > half of height.
Start scrolling down
Whenever the condition is true, the boolean changes its value -> recomposing -> Webview scrolls to top.

Expected behavior
WebView should keep its last state (at least, devs should have the option to enable this behavior).
Environment:

Android OS version 12
Device: Google Pixel 4
Accompanist version: webview-0.24.6-alpha

Thank you for your help!
@Composable
fun TestViewer(){
var showScrollToTop by remember { mutableStateOf(false) }
val state = rememberWebViewStateWithHTMLData(data = "
Loading...
")

Box(
        modifier = Modifier.fillMaxSize()
    ) {
        WebView(
            state = state,
            onCreated = {
                it.settings.javaScriptEnabled = true
                it.settings.builtInZoomControls = true
                it.settings.displayZoomControls = false
                it.settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
                it.setOnScrollChangeListener { v, _, scrollY, _, _ ->
                    showScrollToTop = scrollY > v.height/2
                }
            },
            captureBackPresses = false,
        )
        Column(
            modifier = Modifier
                .fillMaxSize()
                .padding(16.dp),
            horizontalAlignment = Alignment.End,
            verticalArrangement = Arrangement.Bottom,
        ) {
            Column(
                verticalArrangement = Arrangement.spacedBy(16.dp)
            ) {
                if (showScrollToTop) {
                    FloatingActionButton(
                        onClick = {
                            //TODO
                        },
                        elevation = FloatingActionButtonDefaults.elevation()
                    ) {
                        Icon(Icons.Filled.ArrowUpward, contentDescription = "Top")
                    }
                }
            }
        }
    }
}

I tried to reproduce this but it was working fine for me so there is possibly something else going on. Here is the code sample I used.
@Composable
fun Sample() {
    var showScrollToTop by remember { mutableStateOf(false) }
    val state = rememberWebViewState(url = "https://google.com")

    Box(
        modifier = Modifier.fillMaxSize()
    ) {
        WebView(
            state = state,
            onCreated = {
                it.settings.javaScriptEnabled = true
                it.settings.builtInZoomControls = true
                it.settings.displayZoomControls = false
                it.settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK
                it.setOnScrollChangeListener { _, _, scrollY, _, _ ->
                    showScrollToTop = scrollY > 0
                }
            },
            captureBackPresses = false,
            modifier = Modifier.fillMaxSize()
        )
        if (showScrollToTop) {
            FloatingActionButton(
                onClick = {

                },
                elevation = FloatingActionButtonDefaults.elevation(),
                modifier = Modifier.align(Alignment.BottomEnd).padding(16.dp)
            ) {
                Icon(Icons.Filled.ArrowUpward, contentDescription = "Top")
            }
        }
    }
}

On another note though, it might be hard to actually get your FAB to scroll the webview back to the top as we don't expose the scroll state right now.

Thank you @bentrengrove for your response.
Since the scroll state is not exposed, I ended up by injecting a JS code when content is loaded that allows user to scroll to top.


ReorderableListView triggering onReorder even when have a single item

Description
When ReorderableListView just contains a single item and you try to reorder it, it trigger onReorder with oldIndex = 0 and newIndex = 1.
The list just contains one single element, so the index value 1 is invalid.
Steps to Reproduce

Close this repository: https://github.com/AlbertoMonteiro/flutter_ReorderableListView_bug
Run the application and try to reorder the unique element.

Expected results: Do not trigger onReorder method
Actual results: onReorder being triggered with wrong values

Logs

> flutter analyze
Analyzing bug...
No issues found! (ran in 5.2s)

> flutter doctor -v
[✓] Flutter (Channel stable, v1.17.3, on Microsoft Windows [versÃ£o 10.0.19041.329], locale pt-BR)
    • Flutter version 1.17.3 at C:\devtools\flutter
    • Framework revision b041144f83 (12 days ago), 2020-06-04 09:26:11 -0700
    • Engine revision ee76268252
    • Dart version 2.8.4

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at C:\Users\alberto_albuquerque\AppData\Local\Android\sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[✓] Android Studio (version 4.0)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[✓] VS Code (version 1.46.0)
    • VS Code at C:\Users\alberto_albuquerque\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.11.0

[✓] Connected device (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)

• No issues found!

Hi @AlbertoMonteiro
in the ReorderableListView the commets state
Called when a list child is dropped into a new position to shuffle the underlying list.
This [ReorderableListView] calls [onReorder] after a list child is dropped into a new position.

the onReorder is in fact triggered when the only element in the list
is dropped in a new position, therefore doesn't appear to be a bug.
I can imagine scenarios where the current behaviour could be desirable
(maybe adding an element if the to the list or else);
I'm not sure to understand what issue is trying to fix
and what inconvenience the current behaviour is causing.
Should I consider this issue a feature request?
Thank you

If there is a single element in any collection, there is no way to change the order of this, since the element will be in same order no matter what.
So with the current behavior, this wrong onReorder call, send to the consumer an invalid array position, since child[1] does not exist and even worse throws an exception Uncaught Error: RangeError (index): Index out of range: index should be less than 1: 1
To fix that I have to make a workaround to avoid this issue if (oldIndex < newIndex) newIndex--; and then I have oldIndex == newIndex, so I reordered the element in same position? This is not a state change, the position still the same.
So if the state didn't change, why I have to trigger the onReorder? Just to run an unnecessary computation?

Hi @perclasson I'm tagging you for visibility,
I' don't know if you meant this message as a validation,
in any case please consider the points listed above;
applying these changes might break some app.
Thank you


Add toggle visibliity to layer actions

Description
With the new context menu, I noticed that there was no quick way to toggle visibility for a layer selection. This PR adds this functionality.
Type of change

[ ] Bug-fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

References

How has this been tested?

[ ] example: the test suite for my feature covers cases x, y, and z
[x] example: all tests pass with my change

Final checklist:

[x] My PR is the minimum possible work for the desired functionality
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If I included new strings, I have used trans. to make them localizable.
For more information see our translations guide.

Thanks for working on this @brisvag, could you add a screenshot :) ?
Thanks!


zoom scale sheet view

Please how to add zoom scale to xml files of sheet view ? i am trying to modify xml in my fork for testing .

You'd have to add zoomScale="123" zoomScaleNormal="123" to the in SheetXml::SHEETVIEWS_XML.


Installing gemelli using the reticulate package in R

Hi,
Is it possible to install this package using the reticulate package in R?
I installed the dependency Cython py_install("Cython"), and when I tried to py_install("gemelli") I get the following error:
`Using virtual environment "C:/Users/USER/Documents/.virtualenvs/r-reticulate" ...

"C:/Users/USER/Documents/.virtualenvs/r-reticulate/Scripts/python.exe" -m pip install --upgrade --no-user use-pep517
ERROR: Could not find a version that satisfies the requirement use-pep517 (from versions: none)
ERROR: No matching distribution found for use-pep517`

Thanks

Hi @OmerKamer,
I have never used the reticulate package but found a similar problem here. Could you try doing the normal pip installation of Gemelli and then specify the Python version at the beginning of the R session (see here)? Your R script should look something like this (based on this):
First, module load anaconda3
Then create your virtual environment: your_env
After activating the environment: source activate your_env: pip install gemelli
use_condaenv(condaenv = "your_env", required = TRUE)
py_run_string('import gemelli')

Yeah, it seems like an environment version compatibility issue. Glad it worked within the QIIME2 env! Closing this issue. Feel free to open it again if the issue persists.
Thanks for reporting it!


Exchange Online Prerequisite Check Failure

The current v1.3 and previous v1.2 scipts appear to have a bug in the prereq check for Exchange Online.
The prerequisite checker shows that the module is not installed:

Yet a quick check of installed modules show that it is:

And connecting to Exchange Online via the script works just fine.
It should be noted that only the latest version of the Exchange Online Management PS module is installed (no v2).

Fixed with version 1.3.1 released today


eliminate -F for ln for OpenBSD by abstracting ln flags

OpenBSD's ln does not support the -F flag. This PR drops the flag, only for OpenBSD, so as not to change the behavior for other OSes.

LGTM. Thanks!

Good news from the manpage:
 -F    If the target file already exists and is a directory, then remove it so that the link may occur.  The
       -F option should be used with either -f or -i options.  If none is specified, -f is implied.  The -F
       option is a no-op unless -s option is specified.

In other words, it seems we can actually drop -F entirely.
@bonds Do you agree with my interpretation?

@bonds Nevermind, what it's saying is not what I meant.
Thanks again.


[UX]: improve generated documentation for helper test methods

Description
The side menu of generated documentation doesn't navigate directly to method description.
Find or create new theme which will create better navigation menu.
Affects
None
Subsystem
None

Follows up #24


Broken Link

Link 'conformance reports' to https://cloudblogs.microsoft.com/industry-blog/industry/government/accessibility-conformance-reports/ produces "Not Found" error.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 784b1052-9ed9-3adb-7d38-3241529c8ec2
Version Independent ID: 6e6effbb-bb80-4bae-8644-b5bf44101c0c
Content: U.S. Section 508 - Microsoft Compliance
Content Source: microsoft-365/compliance/offering-Section-508-VPATS.md
Product: microsoft-365-enterprise
GitHub Login: @robmazz
Microsoft Alias: robmazz

@kaileyb - thanks for the feedback, I'm updating the topic with the correct link (https://cloudblogs.microsoft.com/industry-blog/government/2018/09/11/accessibility-conformance-reports/) now.


Automate release process for vendir

Follows pattern used by other Carvel tools. Also adds darwin arm64 binary.
cc @DennisDenuto

Thanks @danielhelfand ! We are going to close this one out, @joaopapereira has kindly done this as part of the following commit:
https://github.com/vmware-tanzu/carvel-vendir/commit/9b42bb6fcee4803e2345269204afb9a4bd3c0016


Error reading AWS SAM CLI generated template.yaml

AWS SAM CLI generates a yaml file.  Because AWS, they like double-colon formatting for some strings.  These blow up the reader.
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
  hello-world

  Sample SAM Template for hello-world

# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Globals:
  Function:
    Timeout: 3

. . .

See line 2.
This causes yaml to blow up with:
~/lambdas/hello-world/template.yaml:2
Transform: AWS::Serverless-2016-10-31
               ^

SyntaxError: Unexpected token ':'
    at Module._compile (internal/modules/cjs/loader.js:881:18)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:962:10)
    at Module.load (internal/modules/cjs/loader.js:798:32)
    at Function.Module._load (internal/modules/cjs/loader.js:711:12)
    at Module.require (internal/modules/cjs/loader.js:838:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at /Users/tarcher/code/sam-theta/routes/index.js:11:30
    at Array.map (<anonymous>)
    at /Users/tarcher/code/sam-theta/routes/index.js:10:31
    at Layer.handle [as handle_request] (/Users/tarcher/code/sam-theta/node_modules/express/lib/router/layer.js:95:5)

Is there an easy way around this?  Clearly I can't change the AWS yaml as a solution.
EDIT:  Also, the Description blows it up as well because of the > symbol.

Could you check which version of yaml you're seeing this with, as well as the exact code that's causing the problem? I'm not able to replicate this at least with the latest version, 1.7.1.

Closing as this is my own derpy-ness that caused the issue.


Initial python 3.9 client wheel build support

Fix build-client-lib-within-docker.sh
Fix build-client-lib.sh and add py39
Add py39 to remaining docker build scripts

Motivation
A python 3.9 client wheel is missing. This is an initial attempt to add it. I'm mainly concerned about Fedora + RHEL7.
Modifications
Mostly just fixing up / modifying build scripts used with docker.
I don't know enough about the build system. I made sufficient changes for me to
be able to do this (roughly):
$ cd pulsar-client-cpp/docker
$ ./create-images.sh
$ ./build-client-lib.sh
$ export BUILD_IMAGE_NAME=pulsar-build
$ ./build-wheels.sh 3.9 cp39-cp39

When I built the wheel on my laptop, I commented out all other versions or
specified just 3.9.
TODO: Documentation
As a new user, it was confusing figuring out how exactly to build this. I can take a quick stab at doc updates after this is merged.

Hi, @BewareMyPower could you please take a look at this?

/pulsar-bot run-failure-tests

@vkvm thanks for the work. would you please help open a new issue to track the  later change for the document?

@vkvm thanks for the work. would you please help open a new issue to track the later change for the document?

Done. See Issue #9410

Hi @vkvm, is there any chance that you could revisit this PR for doc updates?

@momo-jun I think we don't need the doc updates now. These wheels should only be built by GitHub Actions now.

@BewareMyPower Thanks for your information. Good to know that! I will refresh the doc status label.


[] ffmpeg download stuck, temporarily bypass

Initial Checks

[X] I have searched GitHub for a duplicate issue and I'm sure this is something new
[X] I have read and followed the docs & demos and still think this is a bug
[X] I am confident that the issue is with modelscope-agent (not my code, or another library in the ecosystem)

What happened + What you expected to happen
downloading url is timeout
ci workflow use a steady url.
Versions / Dependencies
latest
Reproduction script
wget -O ffmpeg.tar.xz https://johnvansickle.com/ffmpeg/builds/ffmpeg-git-amd64-static.tar.xz
Issue Severity
None

#346  done


@header and @query no longer default the format to csv and mu lti respectively

fix #1710

Does this need fixup in typespec-azure?

Does this need fixup in typespec-azure?

I'll check


Incompatible with latest Intellij IDE builds

Same as previous issue - https://github.com/ikorennoy/logstash-intellij-plugin/issues/34
only for DataGrip #DB-223.8214.6

Updated 30.12.2022


add parse flag: default is empty

allows to send link with pipe format (<https://google.com|google>), e.g.
Links look like this
slack message builder

it is better, than just remove in https://github.com/paulhammond/slackcat/pull/15


SPI driver behaviour alignement

Not sure why sam/sam0 drivers where not implementing the async mode (since it's just using k_poll_signal object to signal the caller).

Codecov Report

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

@@           Coverage Diff           @@
##           master   #11324   +/-   ##
=======================================
  Coverage   51.45%   51.45%
=======================================
  Files         216      216
  Lines       27652    27652
  Branches     6936     6936
=======================================
  Hits        14227    14227
  Misses      10672    10672
  Partials     2753     2753

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 bfb4505...569f954. Read the comment docs.


WebRTC consumer in OvenLiveKit

I put this issue also here :
https://github.com/AirenSoft/OvenPlayer/issues/431

Hello,
this PR illustrates what I was saying in the issue of OvePlayer :
https://github.com/AirenSoft/OvenLiveKit-Web/pull/20


Slow JSON parsing (Moshi). Explore, or allow for alternative?

Hey Apollo team,
We were debugging some slowness in querying for GraphQL data. We have some payloads that are a couple of megs in size. Doing some quick method profiling, and looking at your source, it looks like you guys are using the Moshi library to deserialize the JSON. We think some performance gains can be had by using other libraries out there. We are wondering if you have:
a) Would be open to allowing for pluggable alternatives to Moshi. Perhaps Moshi is good for you guys, and Jackson is great for us, but maybe some other team has yet another preference. The ability to plug in a JSON library of choice would be awesome!
b) Considered alternatives. Moshi doesn't seem to be the fastest option out there (Benchmark comparisons here: https://github.com/fabienrenaud/java-json-benchmark). We've had good success with Jackson.

We just merged a pr that will remove moshi parsing of request objects in favor of custom reflection free parsing. Nothing will be faster than generating the writer logic for each query. Could you kindly try on latest snapshot?

The response parsing does not pass through moshi and also uses custom reflection free parsing

@digitalbuddha Sweet! I'll definitely try it out.


API: Fix typed-enum from spectral/limeflight

During add #9441 I bumped into the error which needed to be fixed.
OAS defines for some fields option to choose (ChoiceFilter). Parameters are defined in OAS as nullable strings but options are integers.
This will transfer definitions to
  - '1'
  - '2'
  - ...

and still keep compatibility with existing systems.

It looks like there has not been any activity here for a while. In order to keep the list of pull requests in a manageable state, we are closing this one for now. If we are making a mistake here, please reopen the pull request, and leave us a note 😄


Backup code in a PR for mac

Backup the current code with 2 commits to support mac.
Which allows to rebase or fast forward with upstream better/easier.
//cc @hungnguyenpersonifyinc

Tried to sync with upstream with this https://github.com/PersonifyInc/avatar-asset-pipeline/pull/3, so no need this PR as we are keeping all code.


Exporter/OcAgent: Add export RPC handler.

Split from https://github.com/census-instrumentation/opencensus-java/pull/1492.

Depends on #1569.

Codecov Report

Merging #1570 into master will decrease coverage by 0.41%.
The diff coverage is 0%.

@@             Coverage Diff              @@
##             master    #1570      +/-   ##
============================================
- Coverage     83.15%   82.73%   -0.42%
  Complexity     1732     1732
============================================
  Files           257      258       +1
  Lines          7966     8006      +40
  Branches        766      768       +2
============================================
  Hits           6624     6624
- Misses         1108     1148      +40
  Partials        234      234

Impacted Files
Coverage Δ
Complexity Δ

...e/ocagent/OcAgentTraceServiceExportRpcHandler.java
0% <0%> (ø)
0 <0> (?)

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 62c0889...d8164b2. Read the comment docs.

SG, thanks!


Fixed the issue and performed a rename to SUnit extension

Pull Request Test Coverage Report for Build 870

9 of 9 (100.0%)  changed or added relevant lines in 5 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 868:
0.0%

Covered Lines:
7938

Relevant Lines:
7938

💛  - Coveralls


Heads up: logging on kubernetes broken in @google-cloud/logging 1.1.2

h/t @bkw googleapis/nodejs-logging-bunyan#31
Lot's of discussion at @google-cloud/logging:
googleapis/nodejs-logging#53
googleapis/nodejs-logging#68
googleapis/nodejs-logging#78

Shit thanks, been grinding at this a while lol

Same problem here! Can't log anything when running inside docker container using minikube. Any news about that ? When I run the process in my machine everything is logged normally.

Folks, the issue in @google-cloud/nodejs-logging has been fixed via https://github.com/googleapis/nodejs-logging/pull/81 and released via v1.1.5 of that library. That version should get picked up when you reinstall your node_modules. Please give that a short and report back if there are still issues. Thanks!

@google-cloud/nodejs-logging fixed the issue for us. https://github.com/googleapis/nodejs-logging/pull/88

I have updated, but looks like that keeps not logging. I need to setup anything more cause i'm using Kubernetes Engine ?

@aasmm7x Are you sure you have the permissions set correctly? Are you running in a GCP environment?

Yes, I'm running an Kubernetes Cluster in GCP. The cluster have those permissions:
Stackdriver Logging API - Write Only
Stackdriver Monitoring API - Full

Actually it's working!  🎉
It was my mistake. I was looking on Stackdriver Logs in my GCP on the Global scope, and not on the GKE Cluster scope!

Glad this is working again! I am going to close this issue.


Same element ID gets repeated when we add more than one Production endpoint

Description:
Same element ID gets repeated when we add more than one Production endpoint
Suggested Labels:
APIM-2.1.0

This could not reproduce. hence close.


typo in Github

(By the way, not really important, but there is a typo in the project description : "Regual expressions, pascal.")

oops
fixed, thank you


Settings section oauth2_client is not working

Gitea version (or commit ref): v1.14.1
Git version: 2.30.2
Operating system: Centos 8.3;  Binary from releases

Database (use [x]):

[ ] PostgreSQL
[ ] MySQL
[ ] MSSQL
[x ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x ] No

Log gist:

Description

It looks file  modules/setting/oauth2_client.go is missing in  release v1.14.1
Settings section oauth2_client is not working.
Screenshots
[domas@x1 gitea]$ git log --name-status HEAD^..HEAD
commit 918d3d96ff30670f0b63d99698d76dab434ba833 (HEAD, tag: v1.14.1)
Author: 6543<EMAIL_ADDRESS>Date:   Fri Apr 16 04:19:09 2021 +0200
Changelog v1.14.1 (#15498)

* RAW Changelog v1.14.1

* wordings

* Apply suggestions from code review

Co-authored-by: techknowlogick<EMAIL_ADDRESS>
* Update CHANGELOG.md

Co-authored-by: 6543<EMAIL_ADDRESS>
* Update CHANGELOG.md

Co-authored-by: 6543<EMAIL_ADDRESS>
Co-authored-by: techknowlogick<EMAIL_ADDRESS>Co-authored-by: Lunny Xiao<EMAIL_ADDRESS>Co-authored-by: techknowlogick<EMAIL_ADDRESS>
    M       CHANGELOG.md

 [domas@x1 gitea]$  git diff-tree --no-commit-id --name-only -r 55eb1745bd5427c6f84f77703a580d580ac379b3
 custom/conf/app.example.ini
 docs/content/doc/advanced/config-cheat-sheet.en-us.md
 models/migrations/migrations.go
 models/migrations/v179.go
 modules/auth/oauth2/oauth2.go
 modules/setting/oauth2_client.go
 modules/setting/setting.go
 routers/user/auth.go
 routers/user/auth_openid.go
 [domas@x1 gitea]$ ls -ltr modules/setting/oauth2_client.go
 ls: cannot access 'modules/setting/oauth2_client.go': No such file or directory
 [domas@x1 gitea]$

###############################################################################
 [domas@x1 gitea_lastest]$  git log --name-status HEAD^..HEAD
 commit d7dbe4feebac7805a4ca184f0989f58de8063d96 (HEAD -> master, origin/master, origin/HEAD)
 Author: Lunny Xiao<EMAIL_ADDRESS> Date:   Thu Apr 29 04:22:54 2021 +0800

     Fix readme render bug (#15649)

      M       routers/repo/view.go
 [domas@x1 gitea_lastest]$  git diff-tree --no-commit-id --name-only -r 55eb1745bd5427c6f84f77703a580d580ac379b3
 custom/conf/app.example.ini
 docs/content/doc/advanced/config-cheat-sheet.en-us.md
 models/migrations/migrations.go
 models/migrations/v179.go
 modules/auth/oauth2/oauth2.go
 modules/setting/oauth2_client.go
 modules/setting/setting.go
 routers/user/auth.go
 routers/user/auth_openid.go
 [domas@x1 gitea_lastest]$ ls -ltr modules/setting/oauth2_client.go
 -rw-rw-r--. 1 domas domas 3355 Apr 29 13:13 modules/setting/oauth2_client.go
 [domas@x1 gitea_lastest]$

 <!-- **If this issue involves the Web Interface, please include a screenshot** -->

Sorry I think this was missed. I don't think the oauth2_client was included in 1.14.1 but in any case the 1.15.6 has already been released so I'm going to close this as out-of-date.


mismatch Cmatrix calculated from Carson's equations with respect to OpenDSS versions <IP_ADDRESS> and <IP_ADDRESS>

I used the test case Example 5.1 from Kersting's book "Distribution system modelling and analysis".
https://gist.github.com/hei06j/e4c1958914c14bcd5e9bfd7f266c491c
OpenDss on windows versions <IP_ADDRESS> and <IP_ADDRESS> matches with the results in the book (i.e. first diagonal element is  15 nF/mile)
OpenDSSDirect.jl version 0.7.0 calculates Cmatrix which is different from the results in the book (i.e. first diagonal element is 10 nF/mile).
https://gist.github.com/hei06j/3b90692f7c232dc0ea1c574b873b6ba3

@hei06j Releasing as soon as the remaining docs are updated. For ODD.jl, you can follow the release through https://github.com/dss-extensions/OpenDSSDirect.jl/pull/66
The issue was more complicated than I expected. When the CapRadius property was added in OpenDSS (December 2019), it made some line configurations to return NaN values, among other issues. One specific example: if you only defined GMRac without an explicit value for the radius/diameter, CapRadius was not initialized (left as a negative value, which in turn resulted in a NaN when used in a logarithm).
In July, a user reported issues. I found the root cause and suggested a fix which was adopted in OpenDSS. Unfortunately the fix still broke another situation: if you define both GMRac and Radius (in this order), it initialized CapRadius through the GMRac value and didn't update it with the Radius value. This was used in the first release of OpenDSS 9.1.
As someone else reported broken values in the same situation you reported here in the official forum, the change was reverted in OpenDSS <IP_ADDRESS>, making it work for this specific scenario (like in your example, New Wiredata.Phase GMR=0.0244 DIAM=0.721 ... ), but leaving it broken if you don't provide the diameter/radius explicitly. This breaks compatibility with older versions.
I sent two possible fixes here but I'm not sure this will be handled there anytime soon.
For the time being, I adopted the simpler fix that just checks for negative/invalid values for CapRadius as seen in https://github.com/dss-extensions/dss_capi/commit/8752b91e41ac65229c90f410049370bfa1bad03b -- this fixed all situations I tested to far, thus I'm going forward with the release here on DSS Extensions. Please feel free to report any potential issue you find directly to us.
One important note is that our current basic test suites didn't catch the issue (and looks like neither did EPRI's), even though they some include some large circuits. Another problem is that, for part of the validation process (this one includes all test/example DSS scripts), it was assumed the current version of OpenDSS is correct. In this situation, that wasn't the case.
I created some extra tests (not in the repository yet) and I'm also considering a slightly different approach when validating the results with the official OpenDSS: to avoid grabbing a buggy OpenDSS as reference, the tests will be updated to use saved known-good results for most of the test files (almost every script from electricdss-tst). Most of code in OpenDSS is very stable and can be validated this way, while "bleeding edge" features like the new models for PVSystem and Storage will need to be compared to the latest OpenDSS since we don't have another reference.
(@kdheepak: FYI)

Besides DSS_Sharp (which will be rewritten for the 0.11.x series), all new packages are now released!


No support to connect a Unix socket

One way to secure the connection to unbound remote-control is to use unix socket with the right permissions.
When using this method, it is easy to limit the scope of the remote-control socket. Moreover Unix socket perform better than TCP sockets and requires less CPU.
On the unbound side, the config look like this:
remote-control:
    control-enable: yes
    control-use-cert: no
    control-interface: /var/run/unbound.sock

Unfortunately, the unbound_exporter requires a TCP connection.

I did just realized that even when using Unix socket, it is not possible to disable TSL (this is a non sense IMHO, but this is how unbound works…). I did update my ticket to reflect that.

@Jean-Daniel, I guess this issue can be closed?

Support for Unix sockets added in bd1b7b7, closing issue.


NSFS : S3 rm with --recursive option does not delete all the objects

Explain the changes

Issue is with list_object api, list_object is failing with specific dir strucute and not returning complete items in that bucket.
dir_key and marker_dir comparison will fail when there are dir with structure slimier to  "-/migrateDir.popFSDir.3803140/" and "/migrateDir.popFSDir.3803140.OldSet/" because "/" considered greater than "."  to fix this all the backslash is replaced with space. This updated marker and dir_key used only for comparison.

Dir structure like this is will fail

/populatefs_dir
--/migrateDir.popFSDir.3803140
----/sparseDir
-----lnk.0.qqqqqqqqqqqqqq
-----lnk.1.qqqqqqqqqqqqqq
-----lnk.2.qqqqqqqqqqqqqq
--/migrateDir.popFSDir.3803140.OldSet
----/sparseDir
-----lnk.0.qqqqqqqqqqqqqq
-----lnk.1.qqqqqqqqqqqqqq
-----lnk.2.qqqqqqqqqqqqqq

Issues: Fixed #xxx / Gap #xxx

S3 upload is successful for a data set (mix of all type of objects, sparse files, files with long name, compressed files etc)
When download via "aws-alias s3 rm s3://bucket-10909 --recursive" , this still displays the left over directories and objects in the bucket. I checked from the FS that the dataset still exists there.

https://github.com/noobaa/noobaa-core/issues/8197
Testing Instructions:

run NC_CORETEST=true node  ./node_modules/.bin/mocha ./src/test/unit_tests/test_namespace_fs.js

[ ] Doc added/updated
[ ] Tests added

PR : 8324 have few overlapping changes, Will update this PR once 8324 is merged,


@dotnet-policy-service agree
@dotnet-policy-service agree [company="{your company}"]

@Ericsandanu did you mean to file this issue? Looks like perhaps it was supposed to be a comment on a PR?


Proper hook implementation

I'm currently implementing a gitignore plugin and ran into a problem regarding a proper timing for my code. Though this issue shall be a bit more general.
(From my understanding) there are currently two hooks. Doc:on_text_change and core.on_doc_save which are both implemented differently. I imagine plugins are going to need a bit more than that and there should be some sort of proper extendable hook implementation to future proof this.
Some hooks I can imagine:

onProjectLoaded
onFileSaved
onConfigLoaded
onCommandRan
onUIReady
etc..

or even:

onBeforeFileSaved
etc..

This could make plugins as well as the application easier to develop and more performant. Let me know what you think.

Generally how hooks work for a lot of functions, is that you simply override the assignment in the appropriate table.
For example, to fire on file save, you'd do:
local file_save = Doc.save
function Doc.save(filename)
  file_save(self.filename)
  core.log("Extra stuff goes here.")
end

That's generally how plugins do it; it's a really lightweight system that's super straightforward, and allows chaining, and is reasonably performant. It also lets you do before, or after.
Definitely though, some actions do require specific hooks, as you want them to occur in the middle of another function call. Probably onProjectLoaded is something we should throw in, as it doesn't look like there's an easy way to hook that. For onConfigLoaded, the config is loaded and modified all over the place; what specific event are you looking to hook here?
onCommandRun you can hook by overriding command.run.
So the vast majority of stuff you can just do outright; but there may be a few cases here or there where it's not easy at the moment, and we should add a specific hook.

(From my understanding) there are currently two hooks. Doc:on_text_change and core.on_doc_save which are both implemented differently.

You are right, they are implemented differently and we may harmonize things a little bit. The two hooks above were introduced into the code by myself and they do not entirely match the rxi's design principles but I think that Doc:on_text_change is "right" while on_doc_save is somewhat wrong. I will try to explain why.
The rxi approach was, as pointed out by @adamharrison and @liquidev, to not use hooks but to directly override function and methods. While this approach may seem crude it is in reality robust and effective and it brings to the code a refreshing simplicity that is appealing to most developers.
So, was it okay to introduce Doc:on_text_change ?
I think the answer is "yes". The reason is that some plugins needs to be informed when the text change. On the other side there is no single function you can override to achieve this because text changes happens in many different functions. Therefore it is logical and convenient to add a function Doc:on_text_change just to provide the plugin a function to override, knowing that it will be called whenever text changes.
Notice also that the plugins works by overriding the function Doc:on_text_change. So, to resume, the function Doc:on_text_change:

did not naturally occur in the implementation but it is artificially introduced
it is directly overrided by plugins as intended in the rxi's design principles.

Because of the arguments above I argue that Doc:on_text_change is right, in the sense that is the simplest solution to the problem and is aligned with the rxi's design principles.
For the function core.on_doc_save the same reasoning applies except I introduced the function core.add_save_hook which isn't needed because plugins can just override the function itself. So this is probably a minor complication I accidentally added.

I imagine plugins are going to need a bit more than that and there should be some sort of proper extendable hook implementation to future proof this.

Well, I think we don't need to foresee what plugins may need in the future, we can just add "hooks" or entry points - we may call them - when the need arises.

Some hooks I can imagine:

onProjectLoaded
onFileSaved
onConfigLoaded
onCommandRan
onUIReady
etc..

or even:

onBeforeFileSaved
etc..

So, which one do you really need for the gitignore plugin ?

This could make plugins as well as the application easier to develop and more performant. Let me know what you think.

I think that to keep the application simple and performant we need to keep the code as simple as possible and introduce features only when strictly needed, with parsimony. It is a continuous tension between the things you may want to add and the needs of keeping things small and simple. In addition we chose to adhere to the rxi's design principles and any departures from them needs to be carefully evaluated.
So, to summarize I propose:

to simplify core.on_doc_save/close to remove the hooks mechanism (i.e. the array core.doc_save_hooks and the function core.add_save_hook and the corresponding one for the close operation). Plugins should just override the core.on_doc_save/close functions.
we do not introduce all the hooks or entry points we don't currently need
we introduce only the hooks or entry points you actually needs for the gitignore plugin

For (3) it is inderstood that if a function to override already exists no new hook or entry point should be added.
Ok, it was along post but I think it was worth some argumentation. Let me know if my proposition make sense for you.

I think that to keep the application simple and performant we need to keep the code as simple as possible and introduce features only when strictly needed, with parsimony. It is a continuous tension between the things you may want to add and the needs of keeping things small and simple. In addition we chose to adhere to the rxi's design principles and any departures from them needs to be carefully evaluated.

Agreed.

to simplify core.on_doc_save/close to remove the hooks mechanism (i.e. the array core.doc_save_hooks and the function core.add_save_hook and the corresponding one for the close operation). Plugins should just override the core.on_doc_save/close functions.
we do not introduce all the hooks or entry points we don't currently need
we introduce only the hooks or entry points you actually needs for the gitignore plugin

I am in accordance with all 3 of these proposals.

Generally how hooks work for a lot of functions, is that you simply override the assignment in the appropriate table.

This seems like a great system for most use cases 👍

So, was it okay to introduce Doc:on_text_change ?

 The thing I wanted to point out is that it could create a mess when the application grows and I therefore think it should be defined early on. I see you already cleaned it up. Awesome!

Well, I think we don't need to foresee what plugins may need in the future, we can just add "hooks" or entry points - we may call them - when the need arises.

Agreed.

So, which one do you really need for the gitignore plugin ?

My approaches so far didn't work out. I got an other idea in mind. I'll create a hook if I need one.
One more thing: One could take the approach of overriding things a bit further. Instead of adding a method on_project_loaded_hook instead there could be a method load_project which could be overridden. Then there wouldn't be any explicit hooks. Though this could create more clutter than it solves problems. Let me know what you think.
Also I don't have that much spare time right now so please excuse my slow answering and development time.

One more thing: One could take the approach of overriding things a bit further. Instead of adding a method on_project_loaded_hook instead there could be a method load_project which could be overridden. Then there wouldn't be any explicit hooks. Though this could create more clutter than it solves problems. Let me know what you think.

Yeah; this is what should generally be done. If you need to break out additional functions so you can override them, that's much preferred to having a specific hook function that doesn't do anything unless overridden.

I second the comment of Adam.
Find the most natural function to override and use it. If the function exists but is not public make it public. If the function you need doesn't exist create a on_project_load function to override.
I think this is what emerges from the discussion we had.


Doc updates

Comments
Various doc updates. Getting rid of references to old testnet and general polishing.
Issue Number

bors r+


Relax Pydantic version update

Checklist before merging

[x] I added an appropriate entry to CHANGELOG.md

Closes discussion on #768

Is the CI fail related with the PR? I am a bit confused

Is the CI fail related with the PR?

No, it's due to the most recent pip and scmultiplex (see https://github.com/fmi-basel/gliberal-scMultipleX/issues/106).


Add custom features to NER

Description of Problem:
Right now custom entities can only use pos features from spacy and a handful of simple features. This seems to be in contrast to the flexibility and power of the other pipeline components which can take advantage of any combination of built-in and custom featurizers. Ideally, there would be a way to pass ner_features to the CRFEntityExtractor. In particular, this would let you train NER that used word/token vectors straight from spacy (or other pretrained models)
Overview of the Solution:

CRFEntityExtractor needs to additionally check for ner_features on the message and add them to the feature dict it passes to sklearn_crfsuite.
There need to be NER featurizer classes added

Examples (if relevant):
The skeleton of this (both adding a spacy-based featurizer and making CRFEntityExtractor use ner_features) is implemented in this PR
https://github.com/RasaHQ/rasa/pull/4187
Please let me know if this looks like a useful feature and if this PR is heading in the right direction.
Still necessary:

Add tests
Extend Featurizer to also have _combine_with_existing_ner_features
Validate that having default spacy tokens noticeably improves NER for a sample task
Make spacy only optionally add to ner_features
Replace the hard-coded lambda functions in CRFEntityExtractor with a simple Featurizer

Definition of Done:
<!-- What needs to be there to consider this feature as done?
- [ ] Tests are added
- [ ] Feature described the docs
- [ ] Feature mentioned in the changelog

Thanks for submitting this feature request 🚀@MetcalfeTom will get back to you about it soon!✨
Caw! 🐧

thanks @jamesmf ! I really like the general idea + its flexibility, very cool proposal. Regarding your "still necessary" list, I agree an important step is showing that this improves performance on 1-2 example datasets.

Here's the experiment I ran.
Config.yml looks like this:
pipeline:
  - name: "SpacyNLP"
  - name: "SpacyTokenizer"
  - name: "SpacyFeaturizer"
  - name: "CRFEntityExtractor"
    features: [ ["low", "title", "upper", "ner_features"],
      [
          "bias",
          "ner_features",
      ],
     ["low", "title", "upper", "ner_features"]]

Config_orig.yml only uses the default features before adding ner_features
pipeline:
  - name: "SpacyNLP"
  - name: "SpacyTokenizer"
  - name: "SpacyFeaturizer"
  - name: "CRFEntityExtractor"
    features: [ ["low", "title", "upper"],
      [
          "bias",
          "low",
          "prefix5",
          "prefix2",
          "suffix5",
          "suffix3",
          "suffix2",
          "upper",
          "title",
          "digit",
          "pattern",
      ],
     ["low", "title", "upper"]]

I then ran a rasa test nlu --config config.yml config_orig.yml --nlu data/nlu.md  --runs 5 --percentages 25 50 inside restaurantbot.
These are the (mean) results from each CRFEntityExtractor.json in the result.
{
  "25%": {
    "micro avg": {
      "config": 0.9839785565918215,
      "config_orig": 0.979184211632882
    },
    "macro avg": {
      "config": 0.9537193190641351,
      "config_orig": 0.896015038647866
    },
    "weighted avg": {
      "config": 0.9839827425204907,
      "config_orig": 0.9786516417647068
    }
  },
  "50%": {
    "micro avg": {
      "config": 0.9785380738557364,
      "config_orig": 0.9744053746311708
    },
    "macro avg": {
      "config": 0.9454309319154636,
      "config_orig": 0.8360626493692491
    },
    "weighted avg": {
      "config": 0.978586347904418,
      "config_orig": 0.9735714854886236
    }
  }
}

You can see the new (config) CRFEntityExtractor that uses primarily ner_features from a en_core_web_md spacy model slightly outperforms the original (config_orig) across all metrics at both holdout values. I did not test adding ner_features on top of ALL the existing features, though.

I've been considering a similar thing and one particular feature I am hoping to implement, and would be great to see in this implementation, is 'distance to keyword'. For example, I am trying to extract destination and origin addresses and a feature which may be important is the distance of a given token/word to a 'from' or 'to' word (from a list) in that sentence.
In terms of this PR would the idea be that i create this as a customer featuriser which can plug into this new config?

@Zylatis yes, if you wanted to add that as a component compatible with this, I would imagine you'd create something like this:
class KeywordDistanceFeaturizer(Featurizer):
    ...
    def process(self, message):
         # compute an np array of shape (num_tokens, num_features) where each (i, j) index might be the ith token's distance from the jth keyword
         keyword_features = self.get_keyword_distances(message.get("tokens", []))
         self._combine_with_existing_ner_features(message, keyword_features):

Cool, would definitely be handy. I'm definitely keen to do as much custom feature engineering with this CRF as possible, so if you'd like help on this PR let me know (not an expert by any means but i'd like to contribute if i can). @jamesmf


Update "Change model..." fixes #1457

This works for switching from Detailed PV-Battery / Single Owner to Detailed PV / Battery, but SAM crashes when switching from PVWatts Wind Battery Hybrid / Single Owner to Wind / Single Owner.

I get the same results. Interestingly PVWatts Wind Battery Hybrid / Single Owner to Detailed PV / Single Owner works, so it seems like whatever is causing the crash might be more wind related than hybrids related.


Add more locations of Rwanda

What does this PR do?
It adds more locations and adds other names of the pre-existing locations
Examples

We used to say ruhengeri but now we can say ruhengeri or musanze
We used to say gisenyi but now we can say gisenyi or rubavu
We used to say butare but now we can say butare or huye

Tasks

[x] Add other names of the pre-existing locations
[x] Add more names of the other cities in Rwanda

Thanks for the contribution, @descholar-ceo! I've merged it in my fork (see the commit referenced above).


Docs restructure

As Billy, Andrew, and I discussed, we don't currently have a good separation of admin vs. developer docs, and the separation on the website generated just adds complication.
This PR does the following:

Flattens the structure
Moves all images into the img directory and fixes up the links
Changes "eBPF" to "BPF" in all docs except for the EBPF Bytecode Image Specifications, which really still do include ebpf in the spec.

I decided to leave the tutorial named "tutorial", and went ahead and moved the dev setup and build to a doc.
I think this is ready for review now.


Added gitignore-reload plugin

When the .gitignore file is changed, running this plugin will empty git's cache and readd all the files. This will pick up on the change to .gitignore and blacklist the unwanted files.

Great - thanks!


Incorrect max data size for BC_Gen4_1 to BC_Gen4_10

This doc says 650 max data size for these BC_Gen4 elastic pool skus. This is inconsistent with the portal UI which shows we can create 1TB for all BC_Gen4 pools.
Also please note for the sku GP_Gen5_14 has missing max data size in the doc.
Also please let us know if there's a more reliable way to get the specs for all skus. We have a strong need on the accurate info of all skus.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: ece92a7d-3250-d109-97e9-20a731dc4b20
Version Independent ID: 29a97076-fc64-0ae9-4574-de1aeda237d8
Content: vCore resource limits - elastic pools - Azure SQL Database
Content Source: articles/sql-database/sql-database-vcore-resource-limits-elastic-pools.md
Service: sql-database
Sub-service: elastic-pools
GitHub Login: @oslake
Microsoft Alias: moslake

@zrdw We are checking this and will get back to you.

@zrdw We are checking this with our author for further direction.
@oslake This document has a lot of issues.
For General purpose service tier: Generation 4 compute platform
For 3 Vcore  - Max Data size should be 1536 GB and log space should be 461 GB
For 6 Vcore  - Max Data size should be 2048 GB and log space should be 614 GB
For 7 Vcore  - Max Data size should be 2048 GB and log space should be 614 GB
General purpose service tier: Generation 5 compute platform
For 6 Vcore  - Max Data size should be 1536 GB and log space should be 461 GB
For 12 Vcore  - Max Data size should be 2048 GB and log space should be 614 GB
For 14Vcore  - Max Data size is missing and should be 2048 GB and log space should be 614 GB
For 18 Vcore  - Max Data size should be 3072 GB and log space should be 922 GB
Business critical service tier: Generation 4 compute platform
There should be no configuration with 1 vcore as it starts from 2 vcore
For 2 Vcore  - Max Data size should be 1024 GB and log space should be 307 GB
For 3 Vcore  - Max Data size should be 1024 GB and log space should be 307 GB
For 4 Vcore  - Max Data size should be 1024 GB and log space should be 307 GB
For 5 Vcore  - Max Data size should be 1024 GB and log space should be 307 GB
For 6 Vcore  - Max Data size should be 1024 GB and log space should be 307 GB
For 7 Vcore  - Max Data size should be 1024 GB and log space should be 307 GB
For 8 Vcore  - Max Data size should be 1024 GB and log space should be 307 GB
For 9 Vcore  - Max Data size should be 1024 GB and log space should be 307 GB
For 10 Vcore  - Max Data size should be 1024 GB and log space should be 307 GB
Business critical service tier: Generation 5 compute platform
There should be no configuration with 2 vcore as it starts from 4 vcore
For 4 Vcore  - Max Data size should be 1024 GB and log space should be 307 GB
For 4 Vcore  - Log space should be 461 GB
There are other errors as well but I was not able to compare the same with Portal. Please check this and let us know if you want us to make these changes.

PR ( https://github.com/MicrosoftDocs/azure-docs-pr/pull/97143 ) pending with changes noted by @NavtejSaini-MSFT

Thanks @CarlRabeler for making the changes.
@zrdw The changes have been made to the document. We are closing this issue.


extend dlist to detect unlinked nodes and avoid double-remove bugs

This PR marks sys_dnode_t instances that are not in a list so that code does not depend on overloaded external state to assess this condition before potentially violating dlist API requirements.
A second commit uses that API to avoid a double-remove in timeout that could result in a corrupted list of timers, as an alternative solution to a commit in #12204 (for full context see this discussion if that doesn't disappear when the commit goes away.)
A third commit works around an unknown double-remove bug in the kernel poll infrastructure.  Why the events are being removed multiple times should probably be investigated by a kernel maintainer.

Rebased on top of merged #12204, added commit to remove use of _INACTIVE as a flag value to detect timeouts that are not active.

Good stuff here, although I share Andy's concerns about performance impact since dlists tend to be pretty hot code paths, perhaps consider ifdefing the extra checking around CONFIG_ASSERT or something like that?

There are two concerns: impact on code size from the added null assignments, and impact on performance of the null assignments (and, rarely, checks; most of the time the linked state does not need to be checked).
I can run comparisons for code size, if somebody tells me what platform(s) and what test application(s) to use.  What are the criteria for acceptable/unacceptable impact of the change?
Performance is a different issue.  First, I'd need instruction on how that would be evaluated in a meaningful way.
Second, the changes here have two effects: bugs where lists would be corrupted by double removes are converted from undetected corruption to faults at point-of-use; and a way to reliably identify nodes that are not in a list, as is needed with timers.  The first is a quality issue, and we could certainly turn it off in some cases.  The second is a functional capability, which would break if it were optional.
Note that the Linux dlist implementation invalidates the pointers when nodes are removed.  They seem to believe any performance impact is negligible relative to the value of detecting failures.
What do you want me to do?

Note that the Linux dlist implementation invalidates the pointers when nodes are removed. They seem to believe any performance impact is negligible relative to the value of detecting failures.

FWIW, Linux isn't targeting microcontrollers with memory on the order of 64K (or less)

way to reliably identify nodes that are not in a list, as is needed with timers.

Fair enough!

@andrewboie @andyross Thanks for the approvals.  Please take the following into account before merging:
The intermittent failure of mps2_an385 on tests/kernel/mem_slab/mslab_threadsafe/kernel.memory_slabs is due to MPU or BUS errors derefencing invalidated node link pointers during a call _priq_dumb_remove.
By instrumenting the code I can tell that thread->base.qnode_dlist (which is actually used as dnode) has non-null next and prev pointers prior to invoking sys_dlist_remove but at least one null next or prev pointer within sys_dlist_remove.  (Neither is a pointer-to-self, either, which would produce this behavior.)
This appears to be a bug identified by this PR, not one introduced by this PR, although the cause is unclear.  Unlike the poll bug no workaround seems to be effective.  I don't know how to debug this further.

Your approvals came in while I was doing final edits on the warning; glad you caught it.
https://github.com/pabigot/zephyr/commits/diag/20181230a has a diagnostic commit on top of this PR.  The commit message describes how to reproduce the problem.  (The 10563 error code indicates the failing call came from line 563 of the instrumented sched.c under branch condition 10000.)
Thanks for looking at this.

@andyross Thanks for looking at this.  Your description provided some helpful clues.
I was able to replicate the observation of _current having null links in the context of the timer ISR.  In my case it occurred because the main thread had exited (removing itself from all run queues) but was still recorded as the value of _current.  The tick ISR was still active and when it fired tried moved _current to the back of the queue, which caused havoc since it wasn't in a queue at that point.  There might be a better fix, assuming this situation can ever occur in an unhacked kernel; nonetheless I resolved it by changing sliceable to ignore unrunnable threads.
After that red herring was properly tinned I finally found the real problem: mem_slab retains a queue of threads that want to allocate from it that should be scheduled on memory release, but the operation to pull threads from a wait queue didn't handle the case where the queue was empty, at which point it queued garbage.  That's also been fixed.
Finally, I corrected the name of the link field in _thread_base so we no longer appear to be appending lists to lists.

My last patch set solved the problem, by breaking timeslicing.  The proper explanation and solution is in this commit:

kernel: sched: inhibit timeslice from unready thread
If timeslicing is enabled z_clock_announce will attempt to swap the
current thread for another.  The implementation of z_time_slice
assumes that _current is always in the queue, and so moves it, which
relies on valid links in the dnode structure.
When the current thread is in the process of pending itself the thread
may have already been removed from the queue at the point the tick ISR
runs.  This violates the requirement in _move_thread_to_end_of_prio_q
that the thread already be in the queue.
If the current thread is not queued treat it as unsliceable: it's in the
process of being swapped anyway.

I'm leaving this one in place for now:

kernel: sched: avoid potential null pointer dereference in wait queue
The existing code has a too-subtle reliance on the sys_dnode_t instance
being located at the start of its container: this is the only situation
where CONTAINER_OF(NULL, struct, tag) will be guaranteed to produce a
null pointer.
When this required layout is violated, e.g. during diagnostics, the
system fails horribly: for example an empty wait queue will result in an
attempt to operate on a thread that does not exist.
Update all _priq_foo_best implementations to explicitly check for a null
pointer rather than relying on the dnode being first in the thread
structure.

because the original code was way too subtle, wasting time for both @andyross and me.  However, the checks cost 12 bytes to add under SDK 0.9.5, and 16 bytes under gcc 8.2.1, so you can tell me to remove it.

Quick discussion with @pabigot  on skype convinced me I see the arc of what's happening here:
Background: _Swap() on ARM is nonatomic.  It works by triggering a PendSV exception (which is a flagged exception that's really an "interrupt", you set the bit and then the trap will be taken at the next point where the interrupt state allows it) which effects the swap by setting all the appropriate register and stack state and then returning into the next thread.
BUT: PendSV is actually low priority and can itself be preempted (at the beginning of its execution before the hadnler locks interrupts on its own).  So a hardware interrupt can arrive before the swap actually happens, in a state where the old _current has been removed from the list but the new one has not been assigned into the _current pointer.
And boom: that's all that's needed to reproduce the behavior we're seeing.  If it's a timer interrupt and the slice timer expires (and in this particular test interrupts arrive at 1kHz and the slice timeout is set at a single 1ms tick!) it will see the unexpectedly unqueued _current and explode on the now-more-robust dlist code that isn't expecting that.
Now I just need to think about a simple enough workaround.  Honestly I'd be really tempted to change the priority of PendSV to the system maximum priority as this is now the third bug resulting from that situation.  But that really needs to be done by ARM people; there may be good reasons for the priority being what it is.
Beyond that we can certainly treat the timeslice issue with a special case ARM test to see if a PendSV is on the stack below us, I guess.  But even that's a little fiddly -- we can set a global variable out of _Swap() I guess and reset it in the assembly, maybe...  Let me think a bit, or tell me what you come up with.

OK, took almost as much puzzling to figure out how to push to someone else's PR as it did to implement the workaround.  I think I got it right.
This removes the original timeslice workaround in favor of a targetted one that addresses the root cause, and only on affected systems.  Includes a CONFIG_SWAP_NONATOMIC kconfig to enable it on ARM only.  And it also refactors @mike-scott 's fix from the scheduler rewrite so that it's now enabled on ARM only (at the time, we didn't understand the root cause).
The hacked/whiteboxed failure case I had in that mslab test runs indefinitely for me now, and I got it through 65ish runs under sanitycheck without a failure, so I'm reasonably certain this really was the root cause and that this is squashed now.

Last minute change to make the flag a boolean broke a timeslicing test -- it's not enough to know you just pended "something", because you might run AFTER the context switch too, check that the pended thread still matches _current.  Now it works.

Github doesn't allow me to review my own patch, so I'm marking this DNM explicitly and hoping that's noticed in time, my alternative being to close the PR.
A workaround that I provided for a test failure has been replaced by a set of three commits that fix the underlying cause of the failure, which was an unreported infrastructure bug.  The proposed fix over three commits is a reasonable solution for the root cause, though if I could review it I would make some suggestions.
The showstopper is that if merged through this PR these changes would be baselined with approvals from the person who added them and somebody who reviewed the PR before they were added.
This would be a clear violation of the spirit if not letter of the two-sign-off rule Zephyr is using.
@andyross opened #12342 for this (but didn't link to it here or in the commit messages), and I've commented there.  This PR should be held until the underlying bug blocking it is fixed following the proper process.

Um... OK.  That's a valid point.  I'll dismiss my review.  I genuinely thought this was how you wanted me to do this.  Would you prefer I submit your patches out of my own PR?  Help me out here.  I swear, I like your dlist changes; I want them in the tree, and I'm trying to get them merged.
But #12342 isn't a bug.  That's the way _Swap() works on ARM and always has.  I'd personally like to change it, but I don't own the ARM architecture and am not the relevant expert to make the call.

@andyross opened #12342 for this (but didn't link to it here or in the commit messages),

Just FWIW: I actually did.  It looks like I messed it up somehow and the link in the description isn't actually a link.  Profuse apologies, seriously.  I promise I'm not trying to exclude you from anything.


Would like to see SmartOS/Solaris compatibility in this cookbook!

Let me know your thoughts/plans on that? According to this ... Package support is coming soon for sensu and solaris..
Let me know if there is anything I can do!

Thanks for offering your help @joshzitting! As I use SmartOS at home I am also interested in adding support for it in this cookbook, so I'm marking this as an enhancement and we'll assign it to a milestone as we get closer to usable packages for the platform.

smartos is a dying project. I dont think we need this anymore. Ill close it.


Remove C++11 in CI response Boost Math/Multiprecision deprecate C++11 in 2023

Boost Math/Multiprecision intend to deprecate C++11 in 2023. The develop branch (used in this project's CI) already warns on this aspect. For this reason, we will remove C++11 from CI in response to this deprecation.

Will you update the code to take advantage of C++14 features? The main one - I found - was return type deduction improvements, meaning far less use of decltype(complicated-expression-duplicating-body-of-function) in function signatures, replaced with auto. Much nicer!

Will you update the code to take advantage of C++14 features? The main one - I found - was return type deduction improvements

Yes. I have decided to do this. This is a tough choice since it means actually deprecating C++11.
Hi John (@johnmcfarlane) I am glad you asked. I do try to modernize the code (yet honestly I struggle a bit with that).
Some improved features include that (also) interest me (and are interesting for this library) include:

The one you mention (auto return type deduction)
Relaxed constraints on constexpr function complexity.
And this one surprised me but enable_if_t which I had thought was in C++17. It saves typing in templates but is actually available in 14.

I would have wanted constexpr-if, but that comes with 17.
Sometimes, I think you might have made the right choice, going straight away to 20 in cnl, as this saves a lot of headache. But I had insisted on some historical embedded applicability. It's hard to know if that even did any good instead of jumping to 20. I will, however, probably remain at 14 for a while and slowly-but-surely try to modernize. I'd like to keep supporting GCC5 (as my avr platforms need this). Most of this is OK in GCC5's c++11 interpretationi and even still works on GCC4.8's -std=c++1y.
So in a word, I'll bump up to 14 and subsequently try to modernize.
Again, I'm glad you asked. Thanks John!


the 'collide' event can't be detected as expected when applying the following code.

var playerEl = document.querySelector('[camera]');
playerEl.addEventListener('collide', function (e) {
  console.log('Player has collided with body #' + e.detail.body.id);

  e.detail.target.el;  // Original entity (playerEl).
  e.detail.body.el;    // Other entity, which playerEl touched.
  e.detail.contact;    // Stats about the collision (CANNON.ContactEquation).
  e.detail.contact.ni; // Normal (direction) of the collision (CANNON.Vec3).
});

enviroment: aframe 0.7
playerEl.addEventListener('collide', function (e) {} it doesn't work

Could you include more information (ideally a demo) about what you're trying to do? This example code assumes you have a *-body component attached to the camera — collisions are only between things set up for physics.

i'm sorry there is no demo currently, i will try to get it done later.
the code
<a-camera id="camera" wasd-controls="fly:true">
    <a-box id="box1" static-body position="5 1.5 -5" width="1" height="1" depth="1"></a-box>
</a-camera>
<a-box id="box2" dynamic-body position="5 -1.5 -5" width="1" height="1" depth="1"></a-box>

when the camera-box1 hit the box2 ,it does make box2 moved, but nothing print out .
var playerEl = document.querySelector('#camera');
			playerEl.addEventListener('collide', function(e) {
				console.log('Player has collided with body #' + e.detail.body.id);

				e.detail.target.el;  // Original entity (playerEl).
				e.detail.body.el;    // Other entity, which playerEl touched.
				e.detail.contact;    // Stats about the collision (CANNON.ContactEquation).
				e.detail.contact.ni; // Normal (direction) of the collision (CANNON.Vec3).
			});

maybe i have a wrong way of using the aframe-physics-system components?

I see... that looks right. And you're using aframe-extras v2.0.1 or higher?

no
"dependencies": {
    "aframe": "^0.7.0",
    "aframe-animation-component": "^3.2.5",
    "aframe-physics-system": "^2.1.0",
    "autoprefixer": "^7.1.5",
    "axios": "^0.16.2",
    "connect-history-api-fallback": "^1.4.0",
    "copy-webpack-plugin": "^4.1.1",
    "express": "^4.16.2",
    "three": "^0.87.1",
    "vue": "^2.5.2",
    "vue-router": "^2.8.1",
    "vue-template-compiler": "^2.5.2",
    "vuex": "^2.5.0"
  },

here is the demo，could it be fixed or am i wrong?
http://yuicer.com/aframe_demo/

I loaded your code into another server but pulled the physics component
from the CDN (version 2.1) instead of using your local copy.

It worked great.  Regretfully the server was in a temporary container which
I'm not leaving up, but try it on yours.  Looks like it works to me.
I like the idea of making a First Person Camera by adding a static-body
child.
On Thu, Oct 19, 2017 at 3:02 AM, yuicer<EMAIL_ADDRESS>wrote:

here is the demo，could it be fixed or am i wrong?
http://yuicer.com/aframe_demo/
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/donmccurdy/aframe-physics-system/issues/68#issuecomment-337817759,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADW2ba1_LNrOAzqfXYbBIer4zkHiWmeqks5stvP6gaJpZM4P-l1d
.

@dwagner4
coz i can't access to the
http://cdn.rawgit.com/donmccurdy/aframe-physics-system/v2.1.0/dist/aframe-physics-system.min.js
maybe i'm in china?.....
the physics component was copied from the github, the dist folder
https://github.com/donmccurdy/aframe-physics-system
and i also download your pinball project , it still print out nothing.
but, what's the difference between them?

There was a bug until October 13th where collide events did not fire - if you downloaded the file before that, you have the buggy copy.

No worries — sorry about the bug in the previous version.
And thanks @dwagner4 for the tip!


Fixes 2616: add gpg key file endpoint

Summary
Adds an endpoint that returns the GPG key of a repository as a file.
Also adds updates the fields in the config.repo file that is returned by the config.repo file endpoint.
Testing steps

Create a repository with and without a GPG Key
Query the repositories/:uuid/snapshots/:snapshot_uuid/config.repo and repositories/:uuid/gpg_key
Verify the correct returns.

https://issues.redhat.com/browse/HMS-2616

it looks like the gpg_key route is still requiring the identity header:
$ curl  http://<IP_ADDRESS>:8000/api/content-sources/repositories/2c1413eb-119d-4b6f-ab54-c9af4f48c3e6/gpg_key
Bad Request: missing x-rh-identity header

Couple of issues:

I'm still seeing:

$ curl http://<IP_ADDRESS>:8000/api/content-sources/repositories/e68aeb70-6153-4503-8ea2-2ef3af594156/gpg_key/
Bad Request: missing x-rh-identity header

When i fetch a repo.config, the gpg key url has double slashes:

GET http://localhost:8000/api/content-sources/v1.0/repositories/e68aeb70-6153-4503-8ea2-2ef3af594156/snapshots/26b98649-5602-4233-ac09-1ea0ddc54f4d/config.repo

HTTP/1.1 200 OK
Content-Type: text/plain; charset=UTF-8
X-Rh-Identity: eyJpZGVudGl0eSI6eyJ0eXBlIjoiVXNlciIsInVzZXIiOnsidXNlcm5hbWUiOiJmb28ifSwiYWNjb3VudF9udW1iZXIiOiIxMTQ4NjU4OSIsImludGVybmFsIjp7Im9yZ19pZCI6IjE2Nzg4NjE2In19fQo=
X-Rh-Insights-Request-Id: qlRKsyEHNUJeheQBbygwZpwbnhRHDFyB
Date: Tue, 07 Nov 2023 16:05:27 GMT
Content-Length: 296

[azure]
name=azure
baseurl=http://pulp_content:24816/pulp/content/7c419c57/e68aeb70-6153-4503-8ea2-2ef3af594156/891faaf8-f37f-4f07-a04a-527565bda02c/
gpgcheck=1
repo_gpgcheck=1
enabled=1
gpgkey=http://localhost:8000//api/content-sources/repositories/e68aeb70-6153-4503-8ea2-2ef3af594156/gpg_key/

/retest

/retest

Overall this is working great!  One issue i did not forsee.  Right now pulp is republishing the yum metadata, which means the metadata signature is not present, so you get an error:
Error: Failed to download metadata for repo 'azure': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried

from dnf.  There are a couple routes we can go in the future to have pulp either sign the metadata, or preserve the signature, but we need to discuss it a bit.  For now, i think we should always set repo_gpgcheck=0.
I'll file a task to figure out what to do about this.

this needs a rebase now

/retest

Hi @rverdile , please rebase again.


[FR] Global Sprint Goal

Currently, it’s only possible to add a sprint goal for a file. At least I can’t find a way to add it for a folder or globally.
I set myself a goal of 700 words per 25 minutes, but sometimes, the note I’m working on turns out to be shorter than that. In such a case, I begin to work on a new note for which the words written are not calculated toward the sprint goal.
I would like to be able to set a Global Sprint Goal, which will calculate the words written in no matter which note.
Thanks for the amazing plugin!

I concur. It would be great to have an option to set global goal for the vault. I encountered some issues when adding goals to certain folders (while other folders work). I am not sure if it is related to compatibility with other plugins I have (e.g. MAKE.md).


Skipping frames back sometimes makes viewer hang

Description
Clicking the "skip 1 frame back" button on the networked endocytosis model sometimes makes the viewer hang. The playback buttons get stuck in a forever loading state and the only way to fix it is to refresh the page.
Expected Behavior
Skip frame buttons should work without making things hang.
Reproduction
When viewer is installed in simularium-website

On either staging or prod, load endocytosis
Click on the slider to jump 10 seconds or so
Click the Skip 1 Frame Back button
Click it again, and again
At about the 2nd or 3rd click, the viewer hangs (all playback components get stuck in a forever loading state)

When viewer testbed is run alone

Launch the viewer testbed
Select endocytosis from the dropdown and click Load
Click on the slider to jump 10 seconds or so
Click the Skip 1 Frame Back button
Click it again, and again
After about 2 or 3 clicks, the Skip 1 Frame Back button stops working (doesn't do anything)

Comments from Jira issue

@schoinh: Looked into this more with debugger – I think the issue might be in the backend, because I don't see anything wrong with what happens on the client side after clicking the Skip 1 Frame Back button. The viewer code correctly determines that we don't have the desired time/frame in our cache and sends a websocket message like {msgType: 13, time: 9.299999617040157} via RemoteSimulator.gotoRemoteSimulationTime. But then it seems the client sits there forever waiting for a response.

Temporarily fixed with #131 , and resolving this issue in simularium-engine will hopefully resolve this bug long term.


Rename get_new_filepath to build_column

Rename this function to make clear that we cannot only use it to get new filepaths but also directories (or generally any other string using string formatting from existing columns in the data frame)
https://github.com/JohannesWiesner/nisupply/blob/141697eaed7577c1971c7dd858c06824db8f390a/nisupply/structure.py#L44

It should be also be possible to set the name of the new column. Right now it is fixed to filepath_new


ujson cannot set attribute to null

Currently it is possible to use ujson to conveniently mutate json like in this example:

val json = ujson.read(string)
json("url") = "hello"

I actually want to mutate my json object to look like this:

{url: null}

Still, I have not found a way to mutate a json value to null. So this does not work:

json("url") = null

Neither does this work:

json("url") = None

Am I doing something wrong or is this a feature request?

ujson.Null


Remove private keys from tests

Fixes #402  .
Changes proposed in this PR:

Are you still working on this?

Are you still working on this?

Yes, but it is low prio, have some other PRs with higher prio to fix, I'll get back to it.

@mariacarmina status on this?

This issue is still up, but need to start from main branch now. Closing it now.