Android dependencies for API 24+

Plugin.Permissions requires Xamarin.Android.Support.v4. Unfortunately other Xamarin packages, like AppCompat, that used to require this library (in versions up to <IP_ADDRESS>) now require things like Xamarin.Android.Support.Core.Utils, which define the same symbols. This means that in order to compile projects that use both Plugin.Permissions and AppCompat, I need to use the 23.x version of AppCompat et al, not the 24.x version.
Currently I don't need the 24.x versions of Xamarin's support library; I can get by with the 23.x versions. But it seems like something to keep in mind.

Total coincidence that this turned out to be Issue #24. :)

I usually keep in line with what Xamarin.Forms currently targets. Usually there aren't any breaking changes in between when upating, but could be the versions changed and such... let me think about how I can do it.

Thanks so much again for your effort on various Xamarin plugins. Settings, Permissions, and your work updating the Media plugin ... all very much appreciated.

I tested this out and it and it seemed to work great with all of the 24.X installed. I have the library set to >= 23.3.0 so it should be working just fine. Tested with permissions and the geolocator plugin.
I have included a sample: https://github.com/jamesmontemagno/PermissionsPlugin/tree/master/samples

Try testing with AppCompat 24.x. AppCompat 24.x requires different packages than AppCompat 23.x (used by the current version of Xamarin.Forms) and the symbols those packages define conflict with Xamarin.Android.Support.v4.

Xamarin.Forms requires 23.3.0 to be installed.
I created a non-xamarin.forms app installed all 24.x and it worked perfect. I linked to the sample including the non-forms.
Feel free to pull down the repo and run the sample.


chore(main): release 0.9.0

:robot: I have created a release beep boop
0.9.0 (2023-08-10)
Features

Updates supported resource types (1) (#242) (7f0b6f2)
Updates supported resource types (1) (#250) (9cb60ba)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/udondan/cfn-teleport/releases/tag/v0.9.0 :sunflower:


test: add test for json and css

Hi Evan, thanks for bringing us vite. vite really brings back pleasure to my development life.
I was working on css/json import but it has already been implemented.
But I still cherry-picked my test part and hope it can help. Thanks!

👍


typedInput change event incorrect value

What are the steps to reproduce?
Create a new node type by using this code;
In the html node definition set this code;

Then run node-red and open the node settings.
What happens?
In the console;
console.log({e: "onchange", type: type, value: value}) // Object {e: "onchange", type: S.Event, value: true}
console.log(querySelect.typedInput('type')) // device

What do you expect to happen?
In the console;
console.log({e: "onchange", type: type, value: value}) // Object {e: "onchange", type: S.Event, value: "device"}
console.log(querySelect.typedInput('type')) // device

Side note
If I put the on.change() before  typedInput() I get 2 events, the first one is correct and then the second one the value is true.
After the initial event, all the next one are correct.
Please tell us about your environment:

[ ] Node-RED version: v1.2.9
[ ] Node.js version: v15.3.0
[ ] npm version: 7.0.14
[ ] Platform/OS: Windows 10
[ ] Browser: Google chrome in privacy mode

Yes, there's definitely something wrong here - both in the code and the docs.
The change event handler function should take three arguments, not the two suggested by the docs.

$(".input").on('change', function(event, type, value) {} );

But I can also see we were triggering the event incorrectly so the value argument wasn't getting passed through.
I've fixed that in the code - and will get the docs updated as well.
As for the 2 events you mention in the side note - I can't immediately see where that initial event (with true) is getting fired from. Will need to dig some more. What is odd is I can see that event getting triggered with the change event handler registered after the typedInput() call as well... investigation continues.

I tried to set a third argument in my callback but last was alway undefined. Maybe I test only with the type that don't have values.

I have tracked it down.
Once the edit dialog has been built, it automatically triggers the change event on all of the inputs that match node property names. As the standard input change event doesn't have any arguments, the editor passes a true as an internal flag to another piece of internal editor code.
We can probably find a different way of passing that flag so it doesn't show up to 'normal' event listeners, however it will mean the TypedInput change handler is invoked with undefined for both of its arguments as the editor code doesn't know the TypedInput has overloaded the Change event to provide those extra arguments.
Another option would be to make this editor code aware of the TypedInput behaviour and get it to do the right thing. I've tried to avoid doing that as it means the behaviour is now coded in two different places and adds an implicit dependency.

My javascript debugger say it's from this :
https://github.com/node-red/node-red/blob/69befe8f0efabaee53577d30ece7d245f03355a8/packages/node_modules/%40node-red/editor-client/src/js/ui/editor.js#L474

Yes - that's the code I was talking about in my previous comment

Yes - that's the code I was talking about in my previous comment

Yes I saw that after ;)

Fixed pushed to dev branch for the 1.3 release.

Thanks

@knolleary , I have the same issue when I register in oneditprepare for change event on the configuration node. Does he use typeinput internally and already fixed or it's an other issue ?


Autostop doesn't take idle jobs into account

Execute nodes should check for any idle jobs they're eligible before shutting down.

This is fixed in the 7.8 CycleCloud relase. Release notes are here.


fillColor ignored in device ios for MapView.Circle

Bug
fillColor property seemed to be ignored while running map on actual device. It is working fine on latest version of ios in simulator but when working with the actual physical device the colors doesn't fill up in the circles. Below are the screenshot

Environment info
React native info output:
System:
OS: macOS 10.15.1
CPU: (8) x64 Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz
Memory: 358.16 MB / 16.00 GB
Shell: 3.2.57 - /bin/bash
Binaries:
Node: 10.16.0 - /usr/local/bin/node
npm: 6.11.3 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 13.2, DriverKit 19.0, macOS 10.15, tvOS 13.2, watchOS 6.1
Android SDK:
API Levels: 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29
Build Tools: 28.0.3, 29.0.0
System Images: android-28 | Google Play Intel x86 Atom, android-29 | Google APIs Intel x86 Atom, android-29 | Google Play Intel x86 Atom
Android NDK: 20.0.5594570
IDEs:
Android Studio: 3.4 AI-183.6<IP_ADDRESS>92245
Xcode: 11.2/11B52 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.6 => 16.8.6
react-native: 0.60.5 => 0.60.5
npmGlobalPackages:
react-native-cli: 2.0.1
Library version:0.26.1
Steps To Reproduce

Add the code below

<MapView.Circle
                key = { (location.latitude + index + location.longitude).toString() }
                center = { center }
                radius = { x.radius }
                strokeWidth = { 1 }
                strokeColor = { x.color }
                fillColor = { x.color }
              />)

Describe what you expected to happen:

fillColor and strokeColor should work as it is working on simulator

Reproducible sample code

i got same issue

<

Try this maybe? https://github.com/react-native-community/react-native-maps/issues/3025#issuecomment-538345230

Same issue. Using react-native-maps 0.26.1

Try this maybe? #3025 (comment)

Tried this commit, fix the issue on temporary basis but on some instance and on some devices this approach still doesn't work.

Same here...

Still occuring on iOS simulator ( iPhone 8 Plus )

Same problem!
Any solution? 🙄

Same problem!
Any solution?

Same problem!
Any solution?

This solutions: fix in render for Polygon and fix in library for Polygon is works.

This solutions: fix in render for Polygon and fix in library for Polygon is works.

Same problem!
Any solution?

Same problem! 😣
Any solution?

Hi, I resolved this issue making an setInterval per Circle, something like this:
const interval = setInterval(() => {             this.circle.setNativeProps({                 fillColor: this.props.fillColor,                 strokeColor: this.props.strokeColor,             })             clearInterval(interval)         }, 10)
If you have to create a lot of Circles you can create an component to render Circles
`
import React, { Component } from 'react'
import { Circle } from 'react-native-maps'
interface Props {
center: {
latitude: number,
longitude: number
}
radius: number
fillColor: string
strokeColor: string
strokeWidth: number
onPress?: Function
}
class CircleComponent extends Component {
circle: any
state = {
}
componentDidMount() {
    const interval = setInterval(() => {
        this.circle.setNativeProps({
            fillColor: this.props.fillColor,
            strokeColor: this.props.strokeColor,
        })
        clearInterval(interval)
    }, 10)
}
onPress() {
    if (this.props.onPress) {
        this.props.onPress()
    }
}
render() {
    this.onPress = this.onPress.bind(this)
    return (
        <Circle
            ref={ref => { this.circle = ref; }}
            center={this.props.center}
            radius={this.props.radius}
            fillColor={this.props.fillColor}
            strokeColor={this.props.strokeColor}
            strokeWidth={this.props.strokeWidth}
            onPress={this.onPress}
        />
    )
}

}
export default CircleComponent
`
then import this component on the map:
`
render() {
return (

<MapView
provider={PROVIDER_GOOGLE}
style={styles.mapStyle}
zoomEnabled={true}
moveOnMarkerPress={true}
region={{
latitude: this.state.mapLat,
longitude: this.state.mapLng,
latitudeDelta: 0.0600,
longitudeDelta: 0.0600
                    }}
                    mapType="standard"
                    onMapReady={() => {
                        this.circles()
                    }}
                >
                    {
                        this.state.circles.map((item, index) => {
                            const color = item.color
                            return (
                                <CircleGeofence
                                    key={index}
                                    center={{
                                        latitude: item.latitude,
                                        longitude: item.longitude
                                    }}
                                    radius={geofence.radius}
                                    fillColor={color}
                                    strokeColor={geofence.color}
                                    strokeWidth={3}
                                />
                            )
                        })
                    }
                </MapView>
        </View>
    )
}

`
I hope it helps you!


Testing: Frontend

User story

As a {HR employee}
I want / need {a well functioning frontend without bugs}
So that {I can efficiently and effectively interact with the system and trust in it}

Acceptance criteria

Create a general concept for testing of the frontend functionalities: How can a high quality of the components be assured?
Think of first testing scenarios. Be able to present them, know broadly how they can be implemented. No need for actual implementation yet.

Definition of done (DoD)

Added only after week 5
The same for all features
Here goes the project specific part

DoD general criteria

Feature has been fully implemented
Feature has been merged into the mainline
All acceptance criteria were met
Product owner approved features
All tests are passing
Developers agreed to release

@veitmo
I think the acceptance criteria need some work. It is a general task and the result is open:
Do you want a template for testing future tasks?
Maybe you want someone to create a small but specific test case in order to show a result. (As a SD you will have to implement a test case anyways to check whether the test framework works properly)
The SDs will use the test cases to check automatically whether new features create bugs/errors.
For example, the release manager wants to have a set of tests he can run after merging features to check, whether old features are working fine.
I hope it helps to clarify why we (SD) want and need tests :)


test: add automated e2e testing

Use cypress
Improve confidence in doing releases and merging to main

I closed this since E2E testing is stable and we have a couple of tests


Install fail on Atom Editor v1.7.4 Win64 install

Any ideas?
$ apm install atom-coderoad
Installing atom-coderoad to C:\Users\boxman.atom\packages failed

<EMAIL_ADDRESS>install C:\Users\boxman\AppData\Local\Temp\apm-install-dir-116425-8380-7yo4lb\node_modules\atom-coderoad\node_modules\highlights\node_modules\first-mate\node_modules\oniguruma
node-gyp rebuild

'node-gyp' is not recognized as an internal or external command,
operable program or batch file.
npm WARN engine<EMAIL_ADDRESS>wanted: {"node":">=0.12"} (current: {"node":"0.10.40","npm":"2.13.3"})
npm WARN peerDependencies The peer dependency<EMAIL_ADDRESS>included from react-addons-update will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm WARN peerDependencies The peer dependency<EMAIL_ADDRESS>included from react-addons-transition-group will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm WARN peerDependencies The peer dependency<EMAIL_ADDRESS>included from react-addons-create-fragment will no
npm WARN peerDependencies longer be automatically installed to fulfill the peerDependency
npm WARN peerDependencies in npm 3+. Your application will need to depend on it explicitly.
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\Users\boxman\AppData\Local\atom\app-1.7.4\resources\app\apm\bin\node.exe" "C:\Users\boxman\AppData\Local\atom\app-1.7.4\resources\app\apm\node_modules\npm\bin\npm-cli.js" "--globalconfig" "C:\Users\boxman\.atom\.apm\.apmrc" "--userconfig" "C:\Users\boxman\.atom\.apmrc" "install" "C:\Users\boxman\AppData\Local\Temp\d-116425-8380-yx3eod\package.tgz" "--target=0.36.8" "--arch=ia32"
npm ERR! node v0.10.40
npm ERR! npm  v2.13.3
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the oniguruma package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls oniguruma
npm ERR! There is likely additional logging output above.

Try running apm rebuild atom-coderoad in terminal.
Otherwise, try deleting your node_modules directory and for atom-coderoad and re-running > npm i.

Just noticed you were running it on Windows. This may be a node-gyp dependency problem. Unfortunately, there is no quick install yet for Windows.
Dependencies include Python 2.7, Visual C++ Build Tools, and possibly a few others.
Check out the node-gyp dependencies for your version of Windows.

Okay, thanks for the update! I'll try it on Linux!


stage1: Fix boot issue where %esi was wrong on stage2 entry

The changes to support TDX from stage1 introduced an exchange of the BSP/AP index between stage1 and stage2. This was not implemented in the non-TDX case resulting in a non-zero %edi register on entry to stage2, resulting in the identity mapped page table not being configured.
This patch clears %esi on entry to stage2.

I tested this patch and it fixes the boot for us. Thanks!


fix formatting by correcting order of element generation, space handling

Fixes #404 and a bunch of other associated issues around newlines and ordering output when formatting=true. I suspect this fixes most of the issues with formatting==True

Hi @dlwh, thanks for the PR, it seems really helpful!
I see a small regression on my benchmark (see readme in tests/) in terms of accuracy and speed, the latter is probably related to your change in the trimming function, it is necessary?
As for the accuracy I'll try to see if I find something. Integrating the PR bit by bit (say function by function) could also be useful as the changes could reach further than expected.

oh sorry the trim part can be reverted, missed that when cleaning up!
The spaces change is necessary because the spaces trimming is incorrect when outputting with formatting. Two words can get merged into one, etc.

I just tried the trim() part and it slows things a bit but that's not all, we need to check what's happening function-by-function.
I can have a look at it next week, feel free to work on the PR if you wish to add or amend anything.

i reverted the changes to trim. My bad!

something seems wrong on master? (I ran pip install -r eval-requirements.txt)
Your branch is up to date with 'origin/master'.
~/src/trafilatura/tests (master)$ python comparison.py
(node:42555) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Traceback (most recent call last):
  File "/Users/dlwh/src/trafilatura/tests/comparison.py", line 613, in <module>
    result = run_resiliparse(htmlstring)
  File "/Users/dlwh/src/trafilatura/tests/comparison.py", line 346, in run_resiliparse
    decoded = bytes_to_str(htmlstring, detect_encoding(htmlstring))
TypeError: Argument 'data' has incorrect type (expected bytes, got str)

Thanks for the change!
I don't run the evaluation script on a regular basis so it could be that lines need to be changed to account for updated dependencies or functions.
For the time being you can run a minimal version of it to focus on Trafilatura only. If I compare the master version of Trafilatura with this PR I see a slight drop in the results. Nothing worrying as such but I cannot explain it which and I'd like to pinpoint the change which leads to it.

Hi @dlwh, I checked the code again, could you please address the questions above?
Also, I still don't quite understand the changes made to the xmltotxt() function, maybe the following example is too simple to grasp the point you're addressing but it seems to me that doc.iter("*") already returns all elements in the right order.
from lxml import etree

doc = etree.fromstring("<doc><c>Test</c><d/></doc>")
assert list(doc) == doc.getchildren()  # first level, neither root nor children: a, b, d
assert doc.xpath("//*") == list(doc.iter("*"))  # depth-first, all elements: doc, a, b, c, d

Since the tests pass and your PR handles more complex elements (e.g. formatting) I'll integrate the PR once the open questions have been addressed, I'd just like to understand the interest of the recursive function.
What do you think?

the issue is with tail and "post formatting". The current code does a preorder traversal of the tree, handling .text and .tail at the same time. The correct order for is pre_format + e.text + ''.join(recurse(c) for c in e.children) + post_format + e.tail but the current code does roughly pre_format + e.text + e.tail + post_format + ''.join(recurse(c) for c in e.children)
The code happens to be correct for no-formatting because the tree is highly flattened, but once you preserve formatting it behaves badly.
As an example:
def test_recurse_formatting():
    htmlstring = '''

 this is a bold  test of the italic function

    this is a link

    '''

    result = extract(htmlstring, no_fallback=True, output_format='txt', config=ZERO_CONFIG, include_formatting=True, include_links=True)
    print(result)

In master, this produces
this is a
**bold ** test of the *italic* function [this is a link](test.html)

while in my patch, this produces
this is a **bold ** test of the *italic* function
[this is a link](test.html)

This still isn't quite right (there should be another newline) but it's better.
All that said, I've decided to move to readability-->html2text. I think trafilatura is overall marginally better at extracting content, but readability does a much better job at preserving formatting (even comparing to Trafilatura's XML component)
I do appreciate the work you've done. I think this is a good project, it just doesn't quite have the functionality I need.
I think misprocessing of tail is a pretty pervasive problem in this code base, fwiw. For instance, in main (and in this patch), this text gets reordered at the XML level:
def test_recurse_formatting():
    htmlstring = '''

 this is a bold zz test of the italic function

    this is a link

    '''

    result = extract(htmlstring, no_fallback=True, output_format='xml', config=ZERO_CONFIG, include_formatting=True, include_links=True)
    print(result)

this produces
<doc categories="" tags="" fingerprint="9af9dbb52a4f0283">

 this is a <ref target="test.html"> test of the bold zz</ref>
<hi rend="#i">italic</hi>function
<ref target="test.html">this is a link</ref>

  <comments/>
</doc>

Note that "test of the" got moved to the beginning of the ref somehow, while it should be inside in the ref's tail.

Thanks for the detailed explanation and thanks again for the PR.
There is indeed a problem with nested elements in certain cases, this comes from the fact that I don't primarily focus on formatting or links, these features were added on request. The tests cover most difficulties but not all. The issue with element tails is also deeply linked to LXML, a package which is mainly beneficial but is also difficult to work with at times.
As you say, extraction accuracy depends on one's particular use case, software packages merely try to strike a balance. Existing evaluations focus on html2txt conversion which entails some structure (e.g. paragraph text not garbled, list elements correctly separated, etc.) though not in a full-fledged XML way.
Readability works OKish for English but external evaluations seem to agree on the fact that Trafilatura does a better job at extracting text. I recently found this evaluation on English news sources and Trafilatura compares favorably to the rest, even before work in PR #530.
In any case, feel free to follow the development of Trafilatura as issues with formatting could get fixed over time.


[OTHER] When you run npm install, package-lock.json is updated

What would you like to share?
When the version number is updated in package.json, npm install should be run to update package-lock.json with the new version number and add it to the commit.
In this way, in case of a first-timer willing to contribute to a "good first issue" won't be confused from the get-go with a modified file they are not supposed to commit.
Additional information
No response

Adding it to a git pre-commit hook something like:
"check if package.json had been modified and in case run this npm i --package-lock-only"
The --package-lock-only argument will only update the package-lock.json, instead of checking node_modules and downloading dependencies.
I'm not super skilled with git hooks, if you don't find anybody else to work on this, you can assign it to me.
I don't promise you to fix it tomorrow though.

I'll take a stab at it! I don't know much about git hooks either but I'll document thoroughly for us @ctoffanin

Good, if you have problems ping me (I'm sure it won't happen)

PR ready! Can I pls get some eyes on it? https://github.com/Njong392/Abbreve/pull/127
@Njong392 @ctoffanin @mathiasayivor


ESM interoperability question

Hi!
I am really not very experienced in JS/TS, especially in its complicated module systems.
However, I'd like to bring one concern here. I have issues in using this library for my ESM JavaScript project.
When I try to run unit tests using Mocha, after importing the library I get a runtime error, saying it cannot resolve one of the dependencies:
> npx mocha

Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'xxx\node_modules\@microlabs\otel-cf-workers\dist\sampling' imported from<EMAIL_ADDRESS>
    at new NodeError (node:internal/errors:393:5)
    at finalizeResolution (node:internal/modules/esm/resolve:323:11)
    at moduleResolve (node:internal/modules/esm/resolve:916:10)
    at defaultResolve (node:internal/modules/esm/resolve:1124:11)
    at nextResolve (node:internal/modules/esm/loader:163:28)
    at ESMLoader.resolve (node:internal/modules/esm/loader:841:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:76:40)
    at link (node:internal/modules/esm/module_job:75:36)

The reason is that ./dist has index.js which contains CommonJS-compatible imports (without the .js extention) but it is not compatible with ESM. Most probably, TypeScript does some magic resolving modules w/o extensions. However, if we look at the guide for TypeScript,
https://www.typescriptlang.org/docs/handbook/esm-node.html
it mentions that either one should use ESM-compatible syntax:
// ./bar.ts
import { helper } from "./foo.js"; // works in ESM & CJS
helper();

or have ESM & CommonJS separated by export index files at package.json:
...
"exports": {
        ".": {
            // Entry-point for `import "my-package"` in ESM
            "import": "./esm/index.js",
            // Entry-point for `require("my-package") in CJS
            "require": "./commonjs/index.cjs",
        },
    },
    // CJS fall-back for older versions of Node.js
    "main": "./commonjs/index.cjs",
...

Now, my question is, is it something which be introduced in this library?
I know that as a workaround, I can use some bundler and run my unit tests after building the code, but I guess my proposal may be a more "right" thing to do.
Apologize in advance, if this proposal contains some obvious errors or misunderstanding from my side.
Thanks for the great library!

Hey! I am absolutely no wizard in module systems either.
But you are absolutely correct in that I would like this to "just work" for everyone.. so certainly going to have a look to see what the best way forward is.

Ok.. so I have tried to follow the gist of all the module system wizards and it looks like it works now, but I would love for you to give this a go and check if that is indeed actually the case. It was released in 1.0.0-rc3.

@evanderkoogh Thanks for looking at this issue!
Can you please check your index.js? There are a couple of imports without .js left.

This "Are the types wrong?" tool is really helpful for types and more general package issues.
It found a few issues

You can also npm pack a local install and upload it to iterate on the changes. There's also a CLI

Right..
So I just retested 1.0.0-rc.7 and it passed all of the things.

Can you let me know if this still happens?


Box Cloud Drive Contents Missing

Explain the bug
When browsing the contents of the "Box" cloud drive, there is only a single file. When reviewing this directory within regular Windows Explorer, all expected content is there.
To reproduce

Go to Cloud Drives
Click on Box
Review the list of content

Expected behavior
When browsing the contents of the "Box" cloud drive, there is only a single file. When reviewing this directory within regular Windows Explorer, all expected content is there.
debug.txt
debug_fulltrust.txt

Logfile
Upload the log file here for us to understand your issue better.

You can access it from Settings->About->Open log location.
or
Copy the debug.log and debug_fulltrust.log from the following directory, and upload the files here.
%localappdata%\Packages\49306atecsolution.FilesUWP_et10x9a9vyk8t\LocalState

Screenshots
Add screenshots to help explain your problem if needed.
System Information

OS Version: Windows 10 2004 19041.746
App version: <IP_ADDRESS>

Additional comment
Add any other comment about the problem here. Does this problem happen again after restarting the app?

Could you check if turning on "show hidden files" and turning off "hide system files and folders" options the missing items appear?

I couldnt find "hide system files and folders" as a specific option, but I did follow what I think was your intended instructions as per the screenshot.
This did not resolve the issue.

Box seem to create a virtual folder where it loads the list on demand for online-only files unlike OneDrive which creates a placeholder file for each online-only file

@Jaiganeshkumaran That might be the case, but what about files that are kept locally on disk via its always sync feature? Surely those would be present.

@madtempest This issue should be resolved with #4921.


Amazon Polly settings gone

Copied over the wrong user key & after it failed to authenticate I was unable to fix it. All Polly settings seems to have gone away. Have manually deleted the config files & completely reinstalled dalamud, but haven't been able to get the polly settings to show up again.

I’ll look into this, but to undo that you need to remove the credentials stored in Windows Credential Manager. https://goatcorp.github.io/faq/xl_troubleshooting.html this guide shows how to do that.

The entry should be labeled TextToTalk_AccessKeys_AmazonPolly

ah, credential manager - easy enough. Thank you for the response! I should
be good from here
On Wed, Sep 8, 2021 at 10:52 AM karashiiro @.***> wrote:

The entry should be labeled TextToTalk_AccessKeys_AmazonPolly
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/karashiiro/TextToTalk/issues/44#issuecomment-915359667,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOI55PGP4NH6Y4M3PQJKB3LUA6BDXANCNFSM5DULABKQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

I too had this issue, but someone in the discord gave me this advice and it worked.


Restart doesn't wait long enough if the host can't be found

At https://github.com/qca/boardfarm/blob/master/devices/debian.py#L80 the ping tests are supposed to be spread at least 1 second apart. This doesn't actually work if you're trying to ping a hostname which can't be found because it's rebooting. In that case, there's no delay of 1 second and the host isn't able to reboot fast enough and the reset fails.
I've done a work around for prpl by adding an extra time.sleep(1) in the except statement but that sort of changes the semantics. In some cases with the fix you'll wait 2 seconds (if the ping never returns) or 1 second if the host name can't be found. Nonetheless, it does wait long enough for a reboot.

Two options:

Do DNS lookup first, and wait for it... but since it's weird you are probably getting IP via some local broadcast that makes me think 2 is better
pexpect.spawn("sleep 1 & ping ...; fg") or pexect.spawn("ping foo || sleep 1") - always wait one second, or wait a second if it fails...

Waiting 2 seconds is not the end of the world honestly.

Eric, did you find a workable solution?


An alternative to #6: Gabe Becker's proposed 2-repo solution

Suppose r-releases.r-universe.dev is a repo with all the releases, and there is downstream universe with just the ones that pass R CMD check and revdep checks, just as @gmbecker originally proposed in https://github.com/r-universe-org/help/issues/363. It should be simple to scrape the check results from https://github.com/r-universe/r-releases/actions, select a subset of https://github.com/r-releases/r-releases.r-universe.dev/blob/main/packages.json with non-broken packages, and then create a different universe downstream.
As part of that selection process, maybe we could impose version number etiquette too. Suppose we get the version numbers and their commit hashes when we scrape https://github.com/r-universe/r-releases/actions. (@jeroen, this may rely on the nice titles you give the jobs, such as r.releases.utils 0.0.5 and sys 3.3.) If we detect that the commit hashes are different but the latest version is not strictly greater than the previous one, then we can omit the package from the production repo.
The advantages over #6 are:

The ability to use install.pacakges() normally.
Faster installation and no risk of hitting rate limits because there would be no GitHub API calls at installation time.

To me (2) is more important than (1).
The challenges relative to #6 are:

Learning how to scrape https://github.com/r-universe/r-releases/actions.
Figuring out where to put that downstream universe.

I was hoping to have all repos part of https://github.com/r-releases, but I think the creation of a new universe would mean the creation of a new special repo, e.g. https://github.com/r-prd/r-prd.r-universe.dev. I would be open to a better name than this.

What would be a good GitHub owner name for this new downstream production-level R universe? r-prd? r-releases-prod? r-valid?

I might be missing something, but whether a package is 'broken' or not depends on the cohort of packages the user actually has installed, doesn't it? If only 2 repos, then a package can only be 'broken' or not. There may be many valid dependency chains, with only one broken.
A -> B -> C
B -> D
Where A is upstream. An update to A causes B's tests to fail. It is put in the broken repo along with C and D.
However, in actuality C's tests all pass, only D's fail. This is as C and D use different subsets of functions from B. That means that A -> B -> C is a valid dependency chain that would be broken by this 2 repo arrangement.
Then just using a 'normal' install.packages() won't find any of B, C or D any more.

Yeah, the whole revdep chain would need to go down too. It’s a little extra work up front, but then we could skip scraping those revdeps altogether. Not impossible for this way of doing things.

As you say, maybe that’s heavy-handed. However, I don’t see a generic way to find out which subset of a package is failing, just from information in logs.

If the test suite is adequate, then a package only needs to pass its own tests right. It doesn't need to know if an upstream dependency passes all of its tests, or even further removed whether that package's 100 revdeps pass theirs.
So I'm quite in favour of the checks dashboard type thing, or a function that returns this. You only need to know for the package you are installing. Then on an ongoing basis, the checker function can come in handy.
It's the power of decentralisation. Let each individual community decide what it wants to use.

sorry maybe this belongs in #6

From https://github.com/r-releases/help/issues/6#issuecomment-1974901062

After https://github.com/r-universe-org/help/issues/370, implementation can begin.
After https://github.com/r-universe-org/help/issues/369, user-side package correctness/compatibility guarantees will exceed those of CRAN.

These points also support #10. With https://github.com/r-universe-org/help/issues/369, it will only be necessary to scrape the existing check results (no need for revdep checks).

For a downstream production-level repo, it would be ideal to leverage R-universe as much as possible. My only concern is that we may get a duplicated (and possibly conflicting) set of health checks, and we want to be sure we only use the ones from https://r-releases.r-universe.dev. (Maybe we can suppress testing in "https://r-production.r-universe.dev" and just create the builds?)

Actually, it could be important to pass health checks in both production and QA. So we would want to pull from both https://r-releases.r-universe.dev and "https://r-production.r-universe.dev" to decide whether to keep a package on "https://r-production.r-universe.dev".

On second thought: to have the right user-side guarantees, I think we would need to remove reverse dependencies from "https://r-production.r-universe.dev" if something goes wrong with a package. If that is the case, then https://r-releases.r-universe.dev/ and "https://r-production.r-universe.dev" have the exact same dependency graphs for every package that is checked. In that case, any test failures would in "https://r-production.r-universe.dev" would just be intermittent ones, and I think it would be brittle to react to those.
So my current preference is to:

Only keep packages on "https://r-production.r-universe.dev" if the package and its reverse dependencies in https://r-releases.r-universe.dev/ succeed.
Only use the checks in https://r-releases.r-universe.dev/ to inform the decisions in (1).
If we can, cuppress R CMD check in  "https://r-production.r-universe.dev" to avoid confusion and duplication.

Yes, I think 3 is the logical conclusion, you'd be able to rely on the checks from R-releases.

To recap recent discussions: we decided to put #6 on hold as we pursue #10. If the dual-repo option works well, then we will close #6 as "not planned".

I might be missing something, but whether a package is 'broken' or not depends on the cohort of packages the user actually has installed, doesn't it? If only 2 repos, then a package can only be 'broken' or not. There may be many valid dependency chains, with only one broken.
A -> B -> C ....... B -> D
Where A is upstream. An update to A causes B's tests to fail. It is put in the broken repo along with C and D.
However, in actuality C's tests all pass, only D's fail. This is as C and D use different subsets of functions from B. That means that A -> B -> C is a valid dependency chain that would be broken by this 2 repo arrangement.
Then just using a 'normal' install.packages() won't find any of B, C or D any more.

If B isnt passing its own tests, then B is broken, meaning it should only be offered in a "use at your own risk" capacity. That risk may sometimes be quite small, e.g., the notorious 1 test breaks on M1 macs case,  but without an evolution of how tests are treated in R packages, similar to what @HenrikBengtsson brought up in the latest working group call, install.packages doesn't have the ability to differentiate quantify risk.
Given then that there is some risk, my argument is that that risk should be opt-in rather than opt-out. Users can opt into that risk by adding the unsafe repo (or whatever we end up calling it if that is too pejorative) to their repos, either via option or via the argument to install.packages. If they did that, they would be able to get all of {A, B, C, D}).
I think making risk like this opt-out would be detrimental to end users, particularly novice ones, since the tooling is insufficient to even tell them that the risk exists, much less to help them assess it. Furthermore it would be antithethical to the concept of production, as while you might need to do this but it would need to be a manual intervention by the admin in my experience, and may (reasonably) not be allowed at all in a validated context, regardless of how unbroken we might expect C's functionality to be.
The other thing to keep in mind is that just because someone does isntall.packages("C"), does not mean that they won't also sometimes directly use functionality from B in their scripts, including parts of B that aren't the bits that C use. B could still be broken for some of their intended purposes, even if C itself "works fine", which would mean that the repo is still serving a package broken to its intended purpose to the user.

Thank you @gmbecker, we are taking all of these considerations into account. For these and other reasons, i.e. prior expectations for novice users using install.packages(), we are actually looking at your 2-repo proposal as a priority. The 'production' repo could then be the default as you describe above, with the choice of opting out to the wider 'community' or 'QA' repo or whatever you want to call it.

We now have space to host the two repos:

repo
QA
production

install.packages(repos = "...")
https://multiverse.r-multiverse.org
https://production.-multiverse.org

packages.json
https://github.com/r-multiverse/multiverse
https://github.com/r-multiverse/production

R-universe
https://github.com/r-universe/r-multiverse
https://github.com/r-universe/r-production

I am about to start working on:

Migrating to the new location for the QA universe.
Building the production packages.json based on the results of automated checks.

The two-repo strategy is well underway, and given https://github.com/r-multiverse/help/issues/57, I think we can close the thread above.


Up the Rainbow dependency to 4.0.0 and above?

I tried changing: https://github.com/mattyoung/spinner
but I don't know why I get:

/Users/matty/Devel/ArgumentParser/Projects/WebGrep/Sources/WebGrep.swift:93:19 Value of type 'Spinner' has no member 'updateText'

Ok, so these function were change to message, success, error. I see there is a 2.0.0 version but Rainbow still not set to version 4.0.0

I have some time to update the dependency this weekend. Unless you would like to submit a PR I would be happy to review?

Created a new that includes this: https://github.com/dominicegginton/spinner/releases/tag/2.1.0


Add Sample Launch Page App to code sample table

@erikadoyle

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/m365-apps/extend-m365-teams-personal-tab.md
94
21
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Docs Build status updates of commit 11d392a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/m365-apps/extend-m365-teams-personal-tab.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Thanks @AnanyaBarthakur1, the table entry looks good. Let's plan to merge (publish) this doc update once the sample readme file has instructions on how to run the sample. Thanks!

@surbhigupta12 would you mind helping us merge this once you have a chance? Thanks!


Fix 1136

Removed all unnecessary conn_handler as parameter. Note that queues need to have the conn_handler and the queue_name, thus no removing.

Coverage decreased (-0.01%) to 79.31% when pulling 2de4acd89b7c9d26bc53457aee5cf3fdf7a7e56a on antgonza:fix-1136 into ef7955ce2b7063278bb1300dc84cc00e070b8417 on biocore:master.

:+1:
@antgonza thanks for working on this! The code in here looks good. This PR is also a good exercise, since I noticed in how many places the queues are needed and we are not using them! That is a separate issue though, and we already have an issue to keep track of that, so this is good to merge :-)


Remove code for upgrading alpha to master

https://github.com/flutter/flutter/blob/master/packages/flutter_tools/lib/src/commands/upgrade.dart#L39
Is no longer needed.  Removing this blocks releasing alpha:
https://github.com/flutter/flutter/wiki/Release-process

@yjbanov also mentioned there is code about checking if your branch is up to date which will also need to be taught about alpha.

It's here: https://github.com/flutter/flutter/blob/a5593b167828732cd959444fda02f0be196aa0eb/packages/flutter_tools/lib/src/version.dart#L110


Lost of precision due to the use of float as type for degrees

Function minmea_tocoord now converts positions from type minmea_float to type double.
Conversion from latitude and longitude to meters:

delta_latitude_in_meters = delta_latitude_in_degrees * 40008000 / 360
delta_longitude_in_meters = delta_longitude_in_degrees * 40075160 * cos(latitude_in_degrees) / 360
The below examples are centered in the conversions of longitude to meters in its worst case (latitude 0º).

The use of the type minmea_float for storing the positions seems to be convenient:

Mapping of digits in 32 bit integer range:
2**31       21474 83648
Latitude    XDDMM.MMMMM
Longitude   DDDMM.MMMMM
It allows to store 5 decimals, so we will obtain an error of 0.00001 / 60 * 40075160 * cos(0) / 360 = 0.01855 m.
In the readme it is specified an error of 2 cm. It matches with the above value.

Use of float for storing the positions is not convenient:

The precision of float is between 6 and 7 digits.
The precission of double is between 15 and 16 digits.
The worst case is with a latitude 0.0 º (equator) and a longitude with 3 digits used by the degrees part.
If we use the type float, 4 digits are available for the decimal part of the longitude, so we will obtain an error of 0.0001 * 40075160 * cos(0) / 360 = 11.13 m.
If we use the type double, 13 digits are available for the decimal part of the longitude, so we will obtain an error of 0.0000000000001 * 40075160 * cos(0) / 360 = 0.00000001113 m.
We need at least 7 digits for the decimal part of the longitude to obtain an error of 0.0000001 * 40075160 * cos(0) / 360 = 0.01113 m.

References:

https://blog.demofox.org/2017/11/21/floating-point-precision/.
https://stackoverflow.com/questions/3024404/transform-longitude-latitude-into-meters

I also would like this modification.

+1, looks like a simple change.  If there are MCUs out there that really can't or shouldn't be using doubles, then maybe provide a #ifdef MINMEA_USE_FLOAT for users that really need 32-bit floats?

I also would like this modification. there is experience of experiencing problems with float-type GPS coordinate errors.

The tests are not building. You should change the use of fabsf in tests.c to fabs to follow the type change


Update README.md

Change broken App Outlet link

Sorry there was already another merge request on this.


Can't create hierarchical app setting for Azure WebApp

The command built with example
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings My:Hierarchical:Config:Data="some value"

returns
"Code":"BadRequest","Message":"AppSetting with name 'My:Hierarchical:Config:Data' is not allowed."

The same result when trying to create similar app settings through azure web portal.

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

ID: 568d6695-8344-3d44-aaaf-c00786f9bee1
Version Independent ID: 60034daf-9dff-5b16-9ff8-f675bafac61d
Content: Configure ASP.NET Core apps - Azure App Service
Content Source: articles/app-service/configure-language-dotnetcore.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

@MichaelSL, Thanks for the question! We're taking a look into this and will get back to you soon.
While I'm taking a look into this (with a repro),  just to clarify, I believe the cmdlet that you'd tried and shared is via Azure Cloud Shell.
Configure app settings values
az_webapp_config_appsettings_set

@MichaelSL, I have tried the same cmdlet and it works. Just to clarify, is that Core WebApp on Linux or something else?

I'm not sure about the input you'd set, if the issue still persist, run the cmdlet with --debug to fetch more info. Please do share more info after concealing private details (I understand you have mentioned it's the same case via Portal).

tried once again:
az webapp config appsettings set -n app-name -g ResourcePlanName --debug --settings ConnectionStrings:liteDb=schoolFinder.litedb
Command arguments: ['webapp', 'config', 'appsettings', 'set', '-n', 'app-name', '-g', 'ResourcePlanName', '--debug', '--settings', 'ConnectionStrings:liteDb=schoolFinder.litedb']
<..REDACTED..>
msrest.http_logger : Response status: 400
msrest.http_logger : Response headers:
msrest.http_logger :     'Cache-Control': 'no-cache'
msrest.http_logger :     'Pragma': 'no-cache'
msrest.http_logger :     'Content-Length': '483'
msrest.http_logger :     'Content-Type': 'application/json; charset=utf-8'
msrest.http_logger :     'Expires': '-1'
msrest.http_logger :     'ETag': '"1D6BCAD7341D52B"'
msrest.http_logger :     'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
msrest.http_logger :     'Server': 'Microsoft-IIS/10.0'
msrest.http_logger :     'X-AspNet-Version': '4.0.30319'
msrest.http_logger :     'X-Powered-By': 'ASP.NET'
msrest.http_logger :     'x-ms-ratelimit-remaining-subscription-writes': '1199'
msrest.http_logger :     'x-ms-request-id': 'd6896057-208e-478b-9c24-f6fc04c122f0'
msrest.http_logger :     'x-ms-correlation-request-id': 'd6896057-208e-478b-9c24-f6fc04c122f0'
msrest.http_logger :     'x-ms-routing-request-id': 'NORTHCENTRALUS:20201121T063939Z:d6896057-208e-478b-9c24-f6fc04c122f0'
msrest.http_logger :     'X-Content-Type-Options': 'nosniff'
msrest.http_logger :     'Date': 'Sat, 21 Nov 2020 06:39:39 GMT'
msrest.http_logger : Response content:
msrest.http_logger : {"Code":"BadRequest","Message":"AppSetting with name 'ConnectionStrings:liteDb' is not allowed.","Target":null,"Details":[{"Message":"AppSetting with name 'ConnectionStrings:liteDb' is not allowed."},{"Code":"BadRequest"},{"ErrorEntity":{"ExtendedCode":"04072","MessageTemplate":"AppSetting with name '{0}' is not allowed.","Parameters":["ConnectionStrings:liteDb"],"Code":"BadRequest","Message":"AppSetting with name 'ConnectionStrings:liteDb' is not allowed."}}],"Innererror":null}
msrest.exceptions : Operation returned an invalid status code 'Bad Request'
cli.azure.cli.core.util : Operation returned an invalid status code 'Bad Request'
Operation returned an invalid status code 'Bad Request'
Event: Cli.PostExecute [<function AzCliLogging.deinit_cmd_metadata_logging at 0x03870A50>]
az_command_data_logger : exit code: 1
telemetry.save : Save telemetry record of length 5316 in cache

@MichaelSL, Thanks for the update.
At runtime, connection strings are available as environment variables, prefixed with the following connection types:
SQLServer: SQLCONNSTR_
MySQL: MYSQLCONNSTR_
SQLAzure: SQLAZURECONNSTR_
Custom: CUSTOMCONNSTR_
PostgreSQL: POSTGRESQLCONNSTR_
It looks like you have added it as  'liteDb', kindly review the Connection String  settings.

MichaelSL, We will close this out, but if you feel you need more information please just let us know.

@AjayKumar-MSFT , maybe it makes sense to add a note to the documentation that connection strings shouldn't be added as a hierarchical parameters?

Thanks for the follow-up and your feedback @MichaelSL. Your feedback has been shared with the content owner (@cephalin) for further review and make appropriate changes.


allowing empty paymentData in Simulator

Fine in principle, however Id prefer the architectures and os versions not to be hardcoded in a single if || block.


Migrations should not be triggered by hot reload

Migration applied automatically when a file is created can be messy because a user can:

Save a a file with a partial migration
Platformatic DB applies the partial migration
The user complete the mifration and saves again
Platformatic DB doesn't execute the migration (because already applied).

To fix this we need to disable the automatic execution on migration, user must always execute npx platformatic db migrate
Also, migrations must live reload the server when done.

Fixed by https://github.com/platformatic/platformatic/pull/86


Gateway signing messages on reading (Part.1)

The gateway should sign messages read from any external datasource to proof its authenticity on the smart OffchainResolver smart contract.

[X] Gateway has its own private key
[X] It read data from an external datasource (DB, L2)
[ ] It signs the read data with it's private key so the contract can proof that it came from the right place

continuation on #50


Echart bar is rendered to weird state after dashboard refresh

Hello,
Issue is reproduced as on grafana v9, as on latest v10.
We use latest plugin v5.0.0.
We did not notice this issue previously.
My panel setting:
`const percentile = replaceVariables('$le');
const gameType = replaceVariables('$gameType');
const cluster = replaceVariables('$cluster');
const browserName = replaceVariables('$browserName');
const operatingSystemName = replaceVariables('$operatingSystemName');
const directLaunch = replaceVariables('$directLaunch');
const cacheBucket = replaceVariables('$cacheBucket');
const mobile = []
const desktop = []
for (var i = 0, leni = (data.series).length; i < leni; i++) {
const array = {}
const trueArray = {}
const deductArray = {}
const keys = (data.series[i].fields).map(value => value.name)
const le = data.series[i].fields[.invert(keys).le].values.buffer
const device = data.series[i].fields[.invert(keys).deviceType].values.buffer
const values = data.series[i].fields[keys.length - 1].values.buffer
let inf = 0
for (var m = 0, lenm = le.length; m < lenm; m++) {
if (le[m] == 'Infinity') {

  inf = inf + values[m]
}
else {
  array[le[m]] && array[le[m]][device[m]] ? prev_value = array[le[m]][device[m]] : prev_value = 0
  array[le[m]] ? Object.assign(array[le[m]], { [device[m]]: values[m] + prev_value }) : array[le[m]] = { [device[m]]: values[m] + prev_value }
}

}
trueArray[0] = array[Object.keys(array)[0]]
let count = 0
for (var r = 1, lenr = Object.keys(array).length; r < lenr; r++) {
le_r = Object.keys(array)[r]
val_mob = array[Object.keys(array)[r]].mobile
if (!val_mob) { val_mob = 0 }
val_desk = array[Object.keys(array)[r]].desktop
if (!val_desk) { val_desk = 0 }
prev_mob = array[Object.keys(array)[r - 1]].mobile
if (!prev_mob) { prev_mob = 0 }
prev_desk = array[Object.keys(array)[r - 1]].desktop
if (!prev_desk) { prev_desk = 0 }
count = count + (val_mob - prev_mob) + (val_desk - prev_desk)
trueArray[le_r] = { mobile: val_mob - prev_mob, desktop: val_desk - prev_desk }
}
let to_deduct = count - (count * percentile)
for (var n = Object.keys(trueArray).length - 1; n >= 0; n--) {
let mob = trueArray[Object.keys(trueArray)[n]].mobile
let desk = trueArray[Object.keys(trueArray)[n]].desktop
if (mob > desk && to_deduct > 0) {
  diff = mob - desk
  if (to_deduct <= diff) {
    mob = mob - to_deduct

  }
  else {
    mob = mob - diff
    to_deduct = to_deduct - diff
    mob = mob - to_deduct / 2
    desk = desk - to_deduct / 2
  }
}
else if (desk > mob && to_deduct > 0) {
  diff = desk - mob
  if (to_deduct <= diff) {
    desk = desk - to_deduct
  }
  else {
    desk = desk - diff
    to_deduct = to_deduct - diff
    mob = mob - to_deduct / 2
    desk = desk - to_deduct / 2
  }
}

else if (to_deduct > 0) {
  mob = mob - to_deduct / 2
  desk = desk - to_deduct / 2
}
if (mob <= 0 && desk <= 0) {
  to_deduct = Math.abs(desk) + Math.abs(mob)
  desk = 0
  mob = 0
}
else if (mob <= 0 && desk > 0) {
  to_deduct = Math.abs(mob)
  mob = 0
  deductArray[Object.keys(trueArray)[n]] = { mobile: mob, desktop: desk }

}
else if (mob > 0 && desk <= 0) {
  to_deduct = Math.abs(desk)
  desk = 0
  deductArray[Object.keys(trueArray)[n]] = { mobile: mob, desktop: desk }
}
else if (mob > 0 && desk > 0) {
  to_deduct = 0
  deductArray[Object.keys(trueArray)[n]] = { mobile: mob, desktop: desk }

}

}
let sum_mob = 0
let sum_desk = 0
for (var v = 0, lenv = (Object.keys(deductArray)).length; v < lenv; v++) {
sum_mob = sum_mob + deductArray[Object.keys(deductArray)[v]].mobile * Object.keys(deductArray)[v]
sum_desk = sum_desk + deductArray[Object.keys(deductArray)[v]].desktop * Object.keys(deductArray)[v]
}
let count_mob = 0
let count_desk = 0
for (var v = 0, lenv = (Object.keys(deductArray)).length; v < lenv; v++) {
count_mob = count_mob + deductArray[Object.keys(deductArray)[v]].mobile
count_desk = count_desk + deductArray[Object.keys(deductArray)[v]].desktop
}
mobile.push([(sum_mob / count_mob).toFixed(0), data.series[i].refId, (sum_mob / count_mob).toFixed(0)])
desktop.push([(sum_desk / count_desk).toFixed(0), data.series[i].refId, (sum_desk / count_desk).toFixed(0)])
}
return option = {
backgroundColor: (theme.colors.background.primary),
grid: { containLabel: true, left: '5%' },
xAxis: {
axisLabel: {
formatter: '{value} ms',
show: false
},
show: false
},
yAxis: {
type: 'category',
inverse: true,
axisLabel: {
fontSize: 16,
fontWeight: 'bold',
align: 'right',
},
axisLine: {
show: false
},
axisTick: {
show: false
}
},
visualMap: {
show: false,
orient: 'horizontal',
left: 'center',
formatter: '{value} ms',
min: 0,
max: 5000,
text: ['High Score', 'Low Score'],
// Map the score column to color
dimension: 0,
inRange: {
color: ['#005b96', '#ecb939', '#FD665F']
}
},
series: [
{
type: 'bar',
data: desktop,
name: 'Desktop',
encode: {
// Map the "amount" column to X axis.
x: 'value',
// Map the "product" column to Y axis
y: 'type'
},
label: {
show: true,
position: 'right',
valueAnimation: true,
formatter: '{@value} ms',
rich: {
name: {}
},
fontSize: 16,
fontWeight: 'bold',
textBorderWidth: 0,
textBorderColor: (theme.colors.background.primary)
}
}
]
};
`
https://github.com/VolkovLabs/volkovlabs-echarts-panel/assets/96792836/a18ff432-3c4c-4d6d-ab54-731335cf5b90
What is hapenning:
After refresh, the echart panel shows some data which is not present anywehere (I was checking every step of calculation in every loop). After some actions to rerender panel, the data back to correct state.
Steps to reproduce:

Load dashboard.
Change time range.
After data loaded, see an issue.
Change size of panel.
Data is back to normal.

Expected result:
Panel is rendered after data is loaded and calculated.

As ususally, found how to resolve when already asked for help.
This option fixes issue:
return option = {   animation: false,
Sure, chart not animated.
Maybe you still can take a look and problem can be in plugin.

@andrejshapal, could you try Apache ECharts 4.5.0?
We removed clearing the chart, which was an issue with Streaming, and I am thinking that it may lead to this issue with animation enabled.

@andrejshapal Have you had a chance to test on 4.5.0?
I plan to release a new version today and I want to make sure it's not an issue with v5.
I am not sure how to reproduce this issue.

@andrejshapal Also, if you use Canvas render in the panel options, please test with SVG renderer.
Another community member had a similar ghosting issue resolved using an SVG renderer.

@mikhail-vl SVG did not fix issue. 4.5.0 did.

@andrejshapal I found this old issue in the Apache EChart: https://github.com/apache/echarts/issues/6202.
Thank you for confirming the problem with v5. One of the changes we made is to replace clear() and the default merge option to not Merge with removed clear() for streaming.
I could not reproduce the issue using your code so far to confirm the fix. Could you try the possible fix in the signed CI artifact on your QA? https://github.com/VolkovLabs/volkovlabs-echarts-panel/actions/runs/5836485857
@asimonok, please take a look if I am missing anything.

@mikhail-vl The 5.1.0 version did not resolve an issue. Neither from pipeline, neither from grafana library.

Also, I doublechecked and on the same environment and in 4.5.0 issue did not persist.

@andrejshapal Thank you for testing.
I found the same correlation that the difference is displayed in front of the initial value. It was an idea that the previous elements were not cleaned properly before the animation started.
We will continue the investigation next week.

Hi @andrejshapal
I was able to reproduce the issue. The problem is passing string values. Method Number.toFixed returns string - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed
So passing numbers instead of strings fixes the issue.
Please look at the comment to see more details - https://github.com/VolkovLabs/volkovlabs-echarts-panel/pull/209#issuecomment-1676835718
Please adjust the code by passing data as numbers instead of string
mobile.push([parseInt((sum_mob / count_mob).toFixed(0)), data.series[i].refId, parseInt((sum_mob / count_mob).toFixed(0))])
desktop.push([parseInt((sum_desk / count_desk).toFixed(0)), data.series[i].refId, parseInt((sum_desk / count_desk).toFixed(0))])

Please let us know if the issue still exists for you after changes.

@asimonok
Hello.
I can confirm issue is fixed by converting values to int.


[DJANGO] Support sensitive_variables decorators in integration

Problem Statement
In the Django framework, a utility exists to declare that a variable is sensitive or not.
https://docs.djangoproject.com/en/3.2/_modules/django/views/decorators/debug/
Would it be possible to support this functionality in the integration directly?
Solution Brainstorm
The SDK tries to read the sensitive_variables attribute on the functions it passes to add them to sensitive information not to be displayed clearly in sentry.

Hey @ryshu thanks for bringing this up.
Sounds like a good idea. I put this on our internal backlog, but as we are a bit swamped right now it will take some time until we pick this up.
But PRs are always welcome if you want to give it a go!

Hello @antonpirker,
Glad to hear it.
I'm not against helping you but I currently don't know anything about the internal workings of the package and the event scrubber so I don't think I'll be of much help to you on the issue.
If you have the time to give me some keys to a possible technical solution, I could look into implementing it later.

Hey @ryshu
That's fine, we just leave the issue here open and if I find some time to look into this (I also need to read some code to find out how to do this) I eventually ping you again! Thanks!

Hey @antonpirker , I wanted to contribute and I have taken a look at the Django integration and Django debug sensitive variables code.

sensitive_variables decorator is used to declare the sensitive variables (SV).
The SV keys are stored as decorator variables as sensitive_variables_wrapper.sensitive_variables = variables ,

we loop through each exception frame to check if the decorator frame exists. Then extract all sensitive variables and hide them. I was also thinking its better to hide the sensitive_variable decorator frame as well.
All these have to be implemented in utils.serialize_frame which is not very specific to django integration. Need some suggestions on how the implementation should be. The only way to extract the declared sensitive variables is from the decorator frame.
Possible solution  - we can use mechanism.type == django as a way to implement specifically for django integration inside utils but this feels bad.

Hey @vagi8 . Yea, we do not want to have code specifically for Django in utils. That is a no go.
I guess we can just say, that we can not support this at the moment. Thanks for looking into this @vagi8 this really helped taking some of the load from our shoulders!

Hey @antonpirker,
I have raised a PR for this.

Hey @vagi8 !
Wow, thanks for the PR! We will have a look at it. I can not promise any ETA yes, because right now PRs are kind of piling up :-)


Hashtower refactor

Description
Makes the hash tower less recursive. Instead use H levels of W elements. Each level digest being a single poseidon hash.
Implements the stronger R values that is a function of tower items.
Related Issue

Does this introduce a breaking change?

[x] Yes
[ ] No

Other information

Depends #49
Average insertion gas cost for 500 items: 193k
@LCamel Take a look and lmk what you think. I'm pretty sure we can figure out a way to use the polyum function for each level by trading incrementality for stronger R values.

Something else we should consider, this type of structure is advantageous against a traditional tree because the number of elements scales up more aggressively.
e.g. comparing a binary tree and a hashtower with W = 2
hashtower depth 10: 2046 items
tree depth 10: 1024 items

hashtower depth 20: 2,097,150 items
tree depth 20: 1,048,576 items

hashtower depth 30: 2,147,483,646 items
tree depth 30: 1,073,741,824 items

So for the same constraints in ZK we get double the number of items with a hashtower as compared to a binary tree.

Ok so i think we can use the polysum for the whole data structure. I'm using an approach in unirep where I take a random value, polysum it, hash the polysum output, then use that output as the R in a second polysum.
So if I have data[] that i want to checksum I'll take a random value r and do
const F = // field constant
const r = // strong random value that is externally verified
const data = [] // the data to hash

let R = 0n;

for (let x = 0; x < data.length; x++) {
  R = (R + data[x] * r**x) % F
}

R = poseidon1([R])

// now do the final polysum

let checksum = 0

for (let x = 0; x < data.length; x++) {
  checksum = (checksum + data[x] * R**x) % F
}

return checksum

Imagining the case of a single item, to find a collision we need an item and item1 such that
poseidon1([item]) * item == poseidon1([item1]) * item1

This should be pretty close to the collision resistance of poseidon.
Applying it to the data structure, we could choose a constant r and do the digest for each level like described above. Each insertion would cost 1 PoseidonT2 for each level that is changed. In ZK we would only need H PoseidonT2 operations.

Going to close this, the branch is still present in my fork


Remove dependency on auth0

auth0 is required only if you want to use the auth0-related components, but it is currently listed in dependencies and so is always installed. It would be nice to move those components into @convex-use/auth0 or something similar so the core does not require any specific auth library.

The Convex usage could maybe move it a separate package too? and list @convex-vue/use in its peerDependencies.

Yep you're right ! Auth0 was only installed to be used in the playground of @convex-vue/core. It has been moved to dev dependencies

@loicpennequin Amazing, thanks!


Apc error

Q
A

Bug report?
[ ]

Feature request?
[ ]

Support request?
[x ]

I got this error when trying to access cocorico
2020/09/22 09:37:12 [error] 8859#8859: *39 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\UndefinedFunctionException: Attempted to call function "apc_fetch" from namespace "Doctrine\Common\Cache". in /var/www/html/cocorico/vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php:41
Stack trace:
#0 /var/www/html/cocorico/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php(221): Doctrine\Common\Cache\ApcCache->doFetch('DoctrineNamespa...')
#1 /var/www/html/cocorico/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php(194): Doctrine\Common\Cache\CacheProvider->getNamespaceVersion()
#2 /var/www/html/cocorico/vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php(79): Doctrine\Common\Cache\CacheProvider->getNamespacedId('Cocorico\UserBu...')
#3 /var/www/html/cocorico/vendor/doctrine/common/lib/Doctrine/Common/Persistence/Mapping/AbstractClassMetadataFactory.php(211): Doctrine\Common\Cache\CacheProvider->fetch('Cocorico\UserBu...')
#4 /var/www/html/cocorico/vendor/doctrine/orm/lib/Do" while reading response header from upstream, client:
I know this is related to apc not being installed and it has been replaced by apcu on php7, but I can't disable or use apcu or arraycache
I've tried to disabled apc on /var/www/html/cocorico/app/config/config_prod.yml
imports:
- { resource: config.yml }
- { resource<EMAIL_ADDRESS>#doctrine:
orm:
metadata_cache_driver: apc
query_cache_driver: apc
result_cache_driver: apc
What else can I do to fix this issue?
thanks

It seems that I need to run
php bin/console cache:clear --no-warmup --env=dev
That's solved now
Silly question:
how do I change the website password once I logged in?
thanks

Hello @liemteksun,
Doctrine cache are used for prod env. A change for replacing apc by apcu has just been done here: https://github.com/Cocolabs-SAS/cocorico/commit/76f9313da046db7255b3a9f12d9b1d3cbb164c37
To change password user go to MyDashboard > Profile > Contact Information : /en/dashboard/user/edit-contact


Use BikeShed

I wonder if anyone would object to using BikeShed instead of ReSpec to render the W3C layout around our spec.
I personally find it a lot more comfortable and maintainable. It is basically a Markdown variant that you run through a preprocessor to get the HTML. This makes it a lot more readable. It also allows for a clear separation between content, metadata and bibliography. All this additionally makes diffs in PRs much more easy to consume as a reviewer.
In any case, it's just a proposal. I know there are some people who prefer to dig the HTML tags of ReSpec 😉

None of the groups I am or have been in use BikeShed, so far as I'm aware. I review a LOT of ReSpec markup, and it's quite readable. It even supports bits and pieces of Markdown (e.g., ` wrappers can be used instead of <code>), which are surprising when first encountered, but have not been hard to adapt to.
I will also note that in my experience, Markdown is FAR less powerful or flexible than HTML, and hence, less useful for complex layout, which is often desirable if not necessary in specification documents. Theoretically, HTML can always be included in a Markdown document; this is not always so, in practice. Having no evidence either way, I would not be surprised to find that BikeShed is similarly less powerful or flexible than ReSpec.
I would need to see an example set of documents that use both markup schemes, one per document, to produce (roughly) the same (hopefully complicated) HTML after ReSpec or BikeShed processing, to have an educated response to this. Lacking such, I'd prefer to stick with the HTML ReSpec.

@TallTed, I understand your conservative stance, but I can assure you that BikeShed is a lot more readable than ReSpec. Whether the later is more powerful than the former in absolute sense, I couldn't say, but I have used it in multiple projects without ever bumping into a limit. You can actually include any HTML in it whenever the Markdown is not enough.
For a relevant example, you can take a look at the Solid Application Interoperability specification.

IMHO, markdown would make for much, much more enjoyable diffing and comparing. +1!

I'm also wondering whether you mean to switch to BikeShed just going forward (for new documents), or to entirely revamp the existing document(s), which seems like a lot of extra work atop the content work that already needs doing.

Maybe give it a try, for new work, and see whether or not folks like it?
Markdown plays more nicely with LLMs, too.
I would be very interested in the workflow.

@TallTed, I believe all documents in the repo are BikeShed actually, but to make it concrete: this is the index of the spec itself. It mostly includes metadata and bibliography, and includes the other BikeShed files in the same folder, which contain mostly markdown text for each section.
The idea would indeed be to translate the latest draft to BikeShed (I can do that), and work on that for the foreseeable future. Let's perhaps put a time interval on it, and if it doesn't work out, revert and apply the passed changes to the original ReScript file.

[@woutermont] all documents in the repo

Please be explicit when you say things like the above.
In context, "the repo" you most likely meant is "the repo" in which we're currently talking, i.e., w3c/WebID, but it appears from the index link you included that "the repo" you actually meant is solid/data-interoperability-panel.
The current editors draft of the WebID spec, which is what we've been discussing here, is in ReSpec, not BikeShed.
Having now taken a brief surf through the data-interoperability-panel spec to which you linked tells me, this will not be a quick-and-easy transition for me and perhaps not for others who are fairly familiar with Turtle, HTML, Markdown, and even ReSpec, but not so native in our reading of JSON-LD, and minimally if at all familiar with BikeShed notation.
I am not in favor of migrating existing (WebID or other) ReSpec docs at this time.
A BikeShed experiment for new (especially WebID) docs might be worthwhile.

In context, "the repo" you most likely meant is "the repo" in which we're currently talking

I didnt read it that way.  I read that wouter was doing you a favour by helping you click through a hyperlink, and then click on a bikeshed document.  IMHO it was a fairly evident task, and wouter was generously helping to guide you.  1-2 minutes of exploring his original hyperlink would have enabled you to answer your question, rather than the whole group managing your navigation path.  e.g. by clicking on the word "bikeshed".  Personal navigation issues may be more easily handled out of band, than involving the whole group.

Having now taken a brief surf through the data-interoperability-panel spec to which you linked tells me, this will not be a quick-and-easy transition for me and perhaps not for others

IMHO seems fairly simple and straightforward.

@woutermont do you have any links that you'd recommend in addition to the [https://speced.github.io/bikeshed/](living standard).
It seems to me that a sensible way to proceed would be to do the scaffolding as a first step, with some boiler plate.  Then add sections one at a time, starting with the abstract.
How does that sound?

From what I can see the most sensible way to proceed is to use
https://github.com/solid/data-interoperability-panel/blob/main/build.sh
echo "Build: running bikeshed"
bikeshed spec proposals/specification/index.bs
bikeshed spec  proposals/primer/application.bs
bikeshed spec  proposals/primer/authorization-agent.bs

echo "Build: running mermaid for sequence diagrams"
for diagram in proposals/*/diagrams/*.seq.mmd
  do
    npx mmdc -i $diagram
done

echo "Build: running mermaid for flowchart diagrams"
for diagram in proposals/*/diagrams/*.flow.mmd
  do
    npx mmdc -i $diagram -o $diagram.png
done

echo "Build: done!"

Then a folder for the spec, specification, seems a good term

The final step that I can see is to replace this:
<pre class="metadata">
Title: Web Identity and Discovery [WebID]
Shortname:
Level: 1
Max ToC Depth: 2
Status:
Group: w3c
URL:
Repository:
Inline Github Issues: title
Editor: Jacopo Scazzosi
Markup Shorthands: markdown yes
Boilerplate: conformance no
Dark Mode: off
Abstract:
  This specification defines a standard means by which user agents
  and servers interact to establish a user's identity, ensuring a structured,
  decentralized approach for identity discovery on the web.
</pre>

Coincidentally I already translated the entire core spec to Bikeshed the past two days. The result is #45.
I indeed use part of the workflow of solid/data-interoperability-panel to allways keep a rendered version of the markdown in sync. Note that the W3C actually provides a GitHub Action (spec-prod) to validate and render Bikeshed, but it can only target GitHub Pages or the W3C Echidna system, not the branch itself.


The main window is not sometimes captured in screenshot, but the popup window is captured.

I posted a issue to chrome driver.
https://groups.google.com/forum/#!topic/chromedriver-users/fJBD8vBJ6Jo
Screenshot is generated on every failed tests.
In chrome driver 2.22 + chrome 51, there is no problem.
But after updating chrome driver 2.27 + chrome 55,
screenshot is sometimes wrong.

There are a main windows and a popup window.
In chrome driver 2.22, always the main windows is captured in screenshots.
In chrome driver 2.27, sometimes the popup window is captured in screenshot.
The screenshot (image file) is the popup window, but the html file is the main window.

Is there any relation to Selenide?

@anyone-can-test No, I don't believe that it's caused by some Selenide change. But thanks for reporting. Did you get some feedback from chromedriver developers?

@asolntsev
no feedback from chromedriver.
Maybe it's related to the recent chromedriver.

Ok, I am closing the issue for now. Feel free to reopen it if new information comes.


fix(test): restore --cleanup

#6054 removed --cleanup. This restores that functionality.
One thing to test would be test-success hooks that define a hook deletion policy, since those will now be cleaned up prior to --cleanup. We want to make sure Helm doesn't error out in those cases. Giving that a spin now; figured I'd PR the fix first though.
Signed-off-by: Matthew Fisher<EMAIL_ADDRESS>

Seems to work when dealing with legacy test cases:
><> ./bin/helm install vault incubator/vault
NAME: vault
LAST DEPLOYED: 2019-08-13 12:00:21.270768616 -0700 PDT m=+0.699809736
NAMESPACE: default
STATUS: deployed

NOTES:
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods --namespace default -l "app=vault" -o jsonpath="{.items[0].metadata.name}")
  echo "Use http://<IP_ADDRESS>:8200 as the Vault address after forwarding."
  kubectl port-forward --namespace default  $POD_NAME 8200:8200

><> ./bin/helm test run vault --cleanup
Pod vault-vault-status-test pending
Pod vault-vault-status-test pending
Pod vault-vault-status-test succeeded

><> k get po
NAME                          READY   STATUS    RESTARTS   AGE
vault-vault-cdb859c4c-6pg4z   1/1     Running   0          20s
vault-vault-cdb859c4c-bh4k5   0/1     Running   0          20s
vault-vault-cdb859c4c-wtcwl   0/1     Running   0          20s

Now if I add a hook delete policy, upgrade the chart and test the same thing:
><> ./bin/helm fetch incubator/vault --untar
><> cat vault/templates/tests/test-vault-status.yaml
apiVersion: v1
kind: Pod
metadata:
  name: "{{ .Release.Name }}-vault-status-test"
  annotations:
    "helm.sh/hook": test-success
    "helm.sh/hook-delete-policy": hook-succeeded
spec:
  containers:
  - name: {{ .Release.Name }}-vault-status-test
    image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
    env:
      - name: VAULT_ADDR
        value: http://{{ template "vault.fullname" . }}.{{ .Release.Namespace }}:8200
    command: ["sh", "-c", "vault status"]
  restartPolicy: Never

I seem to hit an error during cleanup
><> ./bin/helm upgrade vault ./vault/
><> ./bin/helm test run vault
Pod vault-vault-status-test pending
Pod vault-vault-status-test pending
Pod vault-vault-status-test succeeded
Error:

Looking into that now. That looks like an issue with the hook delete policy than with the PR here.

Ah... Same issue as in #6191. I did a quick codebase search and found no additional places where this behaviour may crop up so we should be good now.

Things appear to work as expected though with a deletion policy set and --cleanup set! No errors are produced.
><> ./bin/helm fetch incubator/vault --untar

><> cat vault/templates/tests/test-vault-status.yaml
apiVersion: v1
kind: Pod
metadata:
  name: "{{ .Release.Name }}-vault-status-test"
  annotations:
    "helm.sh/hook": test-success
    "helm.sh/hook-delete-policy": hook-succeeded
spec:
  containers:
  - name: {{ .Release.Name }}-vault-status-test
    image: "{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}"
    env:
      - name: VAULT_ADDR
        value: http://{{ template "vault.fullname" . }}.{{ .Release.Namespace }}:8200
    command: ["sh", "-c", "vault status"]
  restartPolicy: Never

><> ./bin/helm upgrade vault ./vault/

><> ./bin/helm test run vault
Pod vault-vault-status-test pending
Pod vault-vault-status-test pending
Pod vault-vault-status-test succeeded

><> ./bin/helm test run vault --cleanup
Pod vault-vault-status-test pending
Pod vault-vault-status-test pending
Pod vault-vault-status-test succeeded


Optionally force the user to change (or set) their password on the first log on

Let's say that the administrator creates their users from the Dashboard and would like to force them to set the password on the first log on. There are more solutions for this problem for example:

UserPart would have a bool property indicating that the request must be redirected to a password change page - where they don't have to set their old password because they don't know that probably. In this case, the users must be registered with a temporary password that must be forced to be changed.
Password expiration functionality could be reused by setting the ExpiryDate to DateTime.MinValue (there is a related issue currently in progress: https://github.com/OrchardCMS/Orchard/issues/5380).

And there would be a site setting for this in the UserSettingsPart of course.

This could be implemented when the following issue is implemented as well: #6937


Add crestereo dataset

Added a Stereo Matching Dataset interface similar to the Optical Flow one. I believe we will need to have a renaming of datasets based on the task, at least for 2.5D related, as we might have naming clashes if we plan on adding Depth Estimation as well. Since datasets such as Kitti or FallingThings or SceneFlow can be used for multiple of these tasks.
I've also set the outputs of the disparity map and valid mask to (1, H, W), (H, W) to be aligned with the way the Flow datasets output a flow in shape (2, H, W) and a mask in (H, W) where possible.

I close this PR since it is replaced by few other smaller PRs already


[Adaptive] [Expressions] Add Eval function

We should add an eval pre-built function + update docs

P0: eval (property)
P1: eval (string)

in both cases (if the value of the property or the string itself) wrapped curley brackets should be ignored.
e.g.
user.age = 54
turn.step.instance.maxValue = "{user.age}"
eval (turn.step.instance.maxValue) returns 54.

We no longer need this since the related work to expose dialog properties via dialog.instance has been punted out. Dropping 4.5 label.


chore: clean up files

:tada: This PR is included in version 1.0.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


fix: select2 loading issue

Fix:

select2 loading issue on comparison charts

Feat:

remove extra jquery load

Next Task:

Add a default behavior for comparison chart instead of loading everything (select2 does the job but we want to have something not switching while is loading)

This change is


Unable to pull dependencies

I wrote a simple script with a simple dependency to 'com.opencsv:opencsv:4.6'.
I get the following error message:
[kscript] Resolving dependencies...
[kscript]     Resolving com.opencsv:opencsv:4.6...[kscript] [ERROR] Failed while connecting to the server.
    Check the connection (http/https, port, proxy, credentials, etc.) of your maven dependency locators.
    If you suspect this is a bug, you can create an issue on https://github.com/holgerbrandl/kscript
[kscript] [ERROR] Exception: org.sonatype.aether.resolution.DependencyResolutionException:
    failed to load 'com.opencsv:opencsv:jar:4.6 (runtime)' from
        [
            "maven (https://maven.<company>.net/content/groups/public, releases+snapshots) without authentication",
            "maven (https://maven.<company>.net/content/groups/public, releases+snapshots) without authentication"
        ] into /Users/<my_user>/.m2/repository

Is it possible to have a clearer error message on what could be causing this, the repository urls work perfectly on maven and gradle, and I can't seem to find a reason for kscript to fail on resolving the dependencies.

I've tried to reproduce the problem with
//DEPS com.opencsv:opencsv:4.6

print("foo")

but the current version v2.8 of kscript works fine with it.
I agree that the error is a bit cryptic.

I suspect it could be something our company maven settings.xml file. let me clean it up and I'll post a similar example here.

Here it is, I strongly suspect the mirror element, since all our artifacts have to pass through a common repository. I suspect kscript dependency resolution is not taking this into account.
Let me know what you think, I would be more than happy to help figure this issue out.
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                            http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <mirrors>
        <mirror>
            <id>maven</id>
            <mirrorOf>*</mirrorOf>
            <url>https://$maven_host/content/groups/public/</url>
        </mirror>
    </mirrors>
    <servers>
        <server>
            <id>maven</id>
            <username>$username</username>
            <password>$password</password>
        </server>
        <server>
            <id>releases</id>
            <username>$username</username>
            <password>$password</password>
        </server>
        <server>
            <id>snapshots</id>
            <username>$username</username>
            <password>$password</password>
        </server>
    </servers>
    <profiles>
        <profile>
            <id>maven</id>
            <properties>
                <repository.url.releases>https://$maven_host/content/repositories/releases/</repository.url.releases>
                <repository.url.snapshots>https://$maven_host/content/repositories/snapshots/</repository.url.snapshots>
            </properties>
            <repositories>
                <repository>
                    <id>central</id>
                    <url>http://central</url>
                    <releases><enabled>true</enabled></releases>
                    <snapshots><enabled>true</enabled></snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>central</id>
                    <url>http://central</url>
                    <releases><enabled>true</enabled></releases>
                    <snapshots><enabled>true</enabled></snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>maven</activeProfile>
    </activeProfiles>
</settings>

Kscript has support for additional repositories via but it does not implement any mirror specific functionality.
To provide such functionality we would need to either find or setup a mirror repo to establish a unit/regression test. In addtion, we'd need a kscript example. Once the test is in place we can try to complement the current annotations if needed or change the internal resolver implementation.

Alright, I can take this ticket if you wouldn't mind. See if I can explore a solution for this use case.

This would be great. Please let me know if you need help or in case you have any questions.

Thanks I appreciate it! Let me get familiarised with the code base first. I'll fire away any questions that pop up along the way.

@holgerbrandl I still have the same issue, since there's a workaround.
This could be due to certain the each individual ~/.m2/settings.xml which makes debug this issue a bit of a problem.
In my case, I proxying the dependency via a company owned maven repository, it's possible that the dependency solver it's able to deal with this.

Given that the mirror support is not yet implemented, it makes total sense to me that your use case is not yet supported. You mentioned initially that you might be able to help by enhancing kscript's implementation in that regards. Do you still plan to do so?

I'm running into the same (or a similar) issue with jitpack.
Here's a snippet that reproduces the problem:
#!/usr/bin/env kscript

@file:MavenRepository("jitpack","http://jitpack.io")
@file:DependsOn("com.github.uport-project.kotlin-common:signer-common:0.4.0")

import me.uport.sdk.signer.KPSigner

val signer = KPSigner("0x1234")
println("hello ${signer.getAddress()}")

Any suggested workarounds, or a hint on how it could be fixed?
I'd be willing to contribute a PR but I'm new to kscript and don't know where to start

+1 for a fix or workaround

I managed to do some debugging and it lead me to post this issue: https://github.com/jcabi/jcabi-aether/issues/106
It may be too early to tell but it leads me to think it won't be fixed there.
Perhaps a new method of downloading the dependencies is worth investigating.
I'm ignorant when it comes to maven repos but from the looks of it it seems to boil down to a HTTP GET request. I'm sure I'm missing something but if I'm not it may not be very hard to replace.
Any thoughts or suggestions?

Great work. Fingers crossed that they patch it soon so that we can release a new version of kscript including the fix.

Hi, I am currently getting this error over and over again, sometimes it resolves dependencies, but it is very slow. Is this reported issue related? I am not specifying custom maven repo, just DependsOn annotation. Is there any workaround? My scripts are unusable due to this issue right now. Thanks
[kscript] Resolving dependencies...  [kscript]     Resolving software.amazon.awssdk:aws-sdk-java:2.10.56...[kscript] [ERROR] Failed while connecting to the server. Check the connection (http/https, port, proxy, credentials, etc.) of your maven dependency locators. If you suspect this is a bug, you can create an issue on https://github.com/holgerbrandl/kscript  [kscript] [ERROR] Exception: org.sonatype.aether.resolution.DependencyResolutionException: failed to load 'software.amazon.awssdk:aws-sdk-java:jar:2.10.56 (runtime)' from ["jcenter (https://jcenter.bintray.com/, releases+snapshots) without authentication"] into /root/.m2/repository

@jantobola Is this potentially a different topic then? Not sure if jcabi-aether allows to set such a parameter.
Any news on the aether fix @mirceanis

@holgerbrandl no news there.
The aether project has very low activity since 2017 so I don't expect a fix there.
Perhaps a new dependency download tool is necessary.
I don't know of any alternatives. Gradle seems to do a great job, perhaps it's a valid lead.

+1 a better way to pull dependencies. I came here because I had this error:
[kscript]     Resolving com.dailymotion.kinta:kinta-lib:0.1.10...[kscript] [ERROR] Failed while connecting to the server. Check the connection (http/https, port, proxy, credentials, etc.) of your maven dependency locators. If you suspect this is a bug, you can create an issue on https://github.com/holgerbrandl/kscript
[kscript] [ERROR] Exception: org.sonatype.aether.resolution.DependencyResolutionException: failed to load 'com.dailymotion.kinta:kinta-lib:jar:0.1.10 (runtime)' from ["jcenter (https://jcenter.bintray.com/, releases+snapshots) without authentication"] into /Users/m.bonnin/.m2/repository```

The error was actually a transitive dependency requiring an additional repo:

@file:MavenRepository("gradle-releases", "https://repo.gradle.org/gradle/libs-releases-local/")
But tthe error didn't say anything about that.

I'm not sure if this can be fixed without a patch in `jcabi-aether`...
Also, it looks like `jcabi-eather` doesn't play super well with Java 11 (#239).

For what it's worth, the kotlin-main-kts resolver code is there:

https://github.com/JetBrains/kotlin/blob/master/libraries/tools/kotlin-main-kts/src/org/jetbrains/kotlin/mainKts/impl/ivy.kt

But it looks like it has even more limitations:
https://youtrack.jetbrains.com/issue/KT-38212
https://youtrack.jetbrains.com/issue/KT-38006

So maybe Gradle is a good candidate... Or forking aether ? Or rewriting a new one ?

I'm seeing this error but only on certain dependencies that I try to access.
I have custom artifactory that I pull dependencies from. There are multiple versions of the same artefact that I am trying to pull but for some reason I can only resolve some of them.
This one resolves for example (updated with generic values):
@file:MavenRepository("my-art", "https://myartifactory.jfrog.io/myartifactory/gradle-dev-local", user="{{ARTIFACTORY_USR}}", password="{{ARTIFACTORY_PSW}}")
@file:DependsOnMaven("com.myproject.test-helpers:test-helpers:0.0.1")

But this one doesn't (note the version change on the last line):
@file:MavenRepository("my-art", "https://myartifactory.jfrog.io/myartifactory/gradle-dev-local", user="{{ARTIFACTORY_USR}}", password="{{ARTIFACTORY_PSW}}")
@file:DependsOnMaven("com.myproject.test-helpers:test-helpers:0.0.3")

This it what artifactory looks like:

And the 2 dependencies in question:

The only thing I can spot id the size difference, but surely it's not big enough to cause this issue?
Really hoping for a solution on this so posting in case it helps any investigations!
Is there a way around this for now? Is it possible to set a custom dependency manager by using the old way?

I had the same issue today with //DEPS org.javamoney:moneta:1.3! I am pretty sure it was on maven-central. At the end I have added another Maven Repository to make it work: @file:MavenRepository("releases", "https://bintray.com/javamoney/maven/")
It can be a annoying bug if you do not find a fallback repo.

I lost a few hours because of this. Looks like all of the repos I tried didn't work because of this issue.
Anyone know how do I import the clikt repo, for example? Could not get it (and others) to work... I'm afraid if this isn't fixed kscript is not an option for my company :(
Any idea when it will be fixed?

At least the jitpack example from @mirceanis as well as the initial opencsv example  by @andrealexandre work fine when using the new kotlin-scripting-based resolver which you can find/test in branch https://github.com/holgerbrandl/kscript/tree/fix239
I'm closing this ticket because it's covering too many individual examples. Please submit the other examples (which may relate to entirely different root causes) as separate issues. Thank you for your understanding.


ILSpy Doesn't Support Hot Module Reload

Currently we are using assembly based ILSpy decompiler, which will not work for hot module reloaded declarations.
ILSpy seems to support some Method based runtime IL decompiler, which may support hot module reload. We need to investigate this

#46 added runtime in memory assembly based workaround.
Ideally we may want a light weight solution directly working on IL byte code