luci-app-watchcat: Typo in watchcat.js

[x] This PR is not from my main or master branch :poop:, but a separate branch :white_check_mark:
[x] Each commit has a valid :black_nib: Signed-off-by<EMAIL_ADDRESS>row (via git commit --signoff)
[x] Each commit and PR title has a valid :memo: <package name>: title first line subject for packages
[ ] Incremented :up: any PKG_VERSION in the Makefile
[ ] Tested on: (architecture, openwrt version, browser) :white_check_mark:
[x] ( Preferred ) Mention: @ the original code author for feedback
[ ] ( Preferred ) Screenshot or mp4 of changes:
[ ] ( Optional ) Closes: e.g. openwrt/luci#issue-number
[ ] ( Optional ) Depends on: e.g. openwrt/packages#pr-number in sister repo
[x] Description: (describe the changes proposed in this PR)

A small PR to fix a typo.

A simple search and replace for ModemManger should do it.

@systemcrash done :heavy_check_mark:

I don't really understand that stray </i> in there. But that's a problem for another day, unless you want to prune it out.

That's more than what I was going to fix first :)
I've added 2 missing <i>, as it was present on line 104 and missing on 94 / 111 and updated all existing translations.
https://github.com/openwrt/luci/blob/82e5c888408a9728576f584088432289809fa293/applications/luci-app-watchcat/htdocs/luci-static/resources/view/watchcat.js#L92-L112

You'll need to update your sign-off email for the checks to pass.

@systemcrash done

Great, thanks @kumy !


failed to download reazon-research/reazonspeech corpus from Hugging Face

Hi, i have try to download reazon-research/reazonspeech corpus from Hugging Face, but failed.
load script:
datasets.load_dataset("reazon-research/reazonspeech")
error massege:
ConnectionError: Couldn't reach https://reazonspeech.s3.abci.ai/small.tsv (error 403)
How do i handle this error

Hi, i have try to download reazon-research/reazonspeech corpus from Hugging Face, but failed.

@zira-wang Sorry for inconvenience!
Right now, the hosting storage we've been using for ReazonSpeech datasets
is out of service (due to a new fiscal year starting in Japan).
We are under the process of renewing our contract so that we can continue
to use the space for hosting our datasets. The service should open back again
soon(ish).

@fujimotos Thank you. Looking forward to using it soon.

@zira-wang The ReazonSpeech dataset is back to online again now.
https://huggingface.co/datasets/reazon-research/reazonspeech
You should be able to check out sample entries on Preview Viewer;
Just let us know if you fail to open the dataset.

@fujimotos
Hello, I am still encountering the same error when attempting to download the dataset:
from datasets import load_dataset

dataset = load_dataset("reazon-research/reazonspeech")

ConnectionError: Couldn't reach https://reazonspeech.s3.abci.ai/small.tsv (ConnectionError(MaxRetryError("HTTPSConnectionPool(host='reazonspeech.s3.abci.ai', port=443): Max retries exceeded with url: /small.tsv (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f49489830d0>: Failed to establish a new connection: [Errno 111] Connection refused'))")))

The URL may not have been updated.

Hello, I am still encountering the same error when attempting to download the dataset:

@Charliewei1 The hosting service is currently under the maintenance.
Here is some more details on the operation schedule:

Start: Fri, Jun 09, 2023 13:00
End: Mon, Jun 12 17:00
Status: ABCI is out of service due to the maintenance of ABCI water cooling system.

The service will be back on next Monday. So wait for that.

@fujimotos Thank you for the update. I appreciate your response and will wait for the service to be restored on Monday.


Some issues found on android

I try to build and debug on my Android. I'm not sure if this is a problem with my configuration.

Encounter CORS.

The title is blocked.

I can't call my keyboard. when the cursor disappears. Especially the ended element such as the table.

Well, here are some issues about experiences:

I think it would be better to put the language selection first or merge the language selection page with the welcome page. The carousel in here looks very strange.

The interactive design on this page has some problems. I waited for a while hoping it could disappear by itself. Then I realized I needed to tap the start now button myself.

It would be better to put the add button in the middle. It would be nice to add an edit button.

Looks very ugly actually in here. These three pictures are too crowded. If pictures are not appropriate for display, only using text is OK too.

Thanks for your assessment. The CORS issue is driving me crazy since Android is theoretically running in HTTPS instead of HTTP. That being said, the issue doesn't appear on iOS, which is weird. I'm working on fixing the title and adding a way to focus the editor when pressing Enter. Regarding the welcome screen, I think I'll be redesigning it to provide a better UX. The idea to add an edit button like in Beaver Notes is brilliant, and we could move the add button to the center. As for the settings, I wanted to provide the same experience we have in Beaver Notes, but we could opt for a simple selector displaying the three options.

I fixed the title issues, and CORS doesn't seem to be complaining in Android Studio. I'll push the changes to the development branch. I'll work on a little diagram to rethink the whole welcome page, and I'll share it with you later to get your opinion.

I've worked on the title field, improved labels, and linked notes. I also fixed the UI/UX on tablets and am currently working on a redesign of the welcome screen. Here's what I came up with. What do you think?

The toolbar covers the title.

I tried it out basically, and the results were right, but the complex operations were still not very smooth. For example, table operations have improved before, but the experience on mobile is still not as good as on a PC. It is difficult to keep it consistent with PC; the mobile phone has its peculiarities. In some situations, it might be better to set the notes to read-only. Additionally, the back button integration is not very good; sometimes when navigating back from a secondary page, it jumps to the home page or even exits the app.
Regarding the design draft of the welcome page, I made some changes to the mobile section based on your design to express my ideas. In principle, I believe we should try to align with common mobile operating habits and adhere to native logic in the design as much as possible. Additionally, I prefer to place the content in the middle to lower part of the screen to make it easier for users to interact with and to align better with the visual sense of gravity. As for the iPad, I don't have many opinions since I haven't used it much and rarely use tablet applications so I regard your opinion.

I've added a design proposal to the Figma board to have the bottom toolbar change according to the selected element. I also fixed the toolbar, which shouldn't appear on mobile. As for the Tablet UI, I'll handle it myself, making the toolbar replicate the behavior proposed for the bottom toolbar on mobile.

Can you tell me the logic of state transition?

The toolbar transition logic is quite simple: if nothing is selected, we get the default state. If one or more words are selected, the toolbar switches to the editor state with text formatting options. When a user is editing a table, the toolbar switches to the table editor. We determine what's active thanks to Tiptap with the following code: editor.isActive('Table').

By default, toggling the heading will affect the whole paragraph. I think it would be better to move it to another place. About the editing table, could there be a priority issue here? If people want to insert images or files into the table, how could they accomplish it?

I suppose we could move the headings in the default toolbar and add a plus button to the table editor to add images and files.

I think we can also collapse the default toolbar. Anyway, this is not a very important issue.

Here's the updated Figma

Here's the updated Figma

I have no issue here.

I've edited the bottom toolbar in the editor to be more suitable than the Figma design. The toolbar is now scrollable and sits atop the keyboard while typing. It adapts based on the selected element: default mode, editing mode (when text is selected), and table editing mode (when typing inside a table). Selecting text in a table switches the toolbar to editing mode. A scrollable toolbar is more user-friendly and versatile than the Figma design. I've attached a video to better demonstrate the workings of the toolbar.
https://github.com/user-attachments/assets/93163afd-7cd6-44a5-976c-61e1944d2b7e

Great! That looks wonderful!

I've updated Beaver Pocket and added some new features to reach feature parity with Beaver Notes. Check it out and let me know if you find any issues, so we can iron out all the quirks and release a release candidate before the final release.

Got an error when I tried to enter the focus mode.

After entering the editing page, using the return gesture will return to the desktop.
On the editing page, the toolbar will shake when the viewport changes. When I click on the icons on the toolbar to take action, the keyboard suddenly collapses then pops up.
Chinese font seems thin. Maybe it is related to the system font.

The above and below parts are placed as close to the center as possible. It looks too scattered.

Another thing I need to say is the import path. MacOS is not case-sensitive, but Linux is. I've encountered this problem more than once.

I'll work on fixing the issues with the import path on Beaver Locker. If you could handle that while I work on Beaver Pocket, it would be brilliant. Thanks!

I've solved most of the issues; however, before releasing a release candidate, I'm working on switching from the Capacitor filesystem to Redux for storing notes. The app is quite slow when loading a large number of notes using the filesystem, which isn't an issue with Beaver Notes, as it stores data using Pinia. Since Pinia isn't available for React, I'm using Redux instead.


This project is alive ?

This project is alive ?

Depends on what you mean by "alive". I use it from time to time.


Generalized the Codebraid support to MkDocs

In #57 support for Codebraid syntax was added, which essentially is just Pandoc attribute syntax, but with a specific class attribute added.
The support was added as an extra identifier in the list of languages, for which Codebraid has support, such as for python: \\{\\.python.+?\\}.
The below example would give the following scope: "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language.markdown" to the entire line:
```{.python .cb.nb jupyter_kernel=python3}
```

However the "language scope" should only be given to the "python" part, and the current support doesn't allow spaces between the curly braces, and it lacks support for all languages.
MkDocs allows a few ways to annotate fenced code blocks, but if additional classes, id or key/value pairs are used, then the curly braces must be used and the language must be prefixed with a dot.  In simple cases where only the language is specified, then the curly braces and the dot may be omitted.  The following are quick examples:
``` { .python #id .class title="My Title"}
```

or
``` python
```

This change removes the Codebraid support from the specific languages as an identifier attribute, and moved into the RegEx by defining it as two alternative cases: surrounded by curly braces or allowing them after the language:

The case where the entire line after the code fence is wrapped in curly braces.  In this case the curly braces is not part of the language and attribute scope.
The case where the attributes follows the language specification in all sorts of ways (I'm specifically thinking of you Gatsby #62).  In this case the curly braces are included in the attribute scope as it is not trivial to handle all the various ways it may be used, and since this is the current behavior.

@microsoft-github-policy-service agree
Closes #153
Refs: https://github.com/Python-Markdown/markdown/blob/master/docs/extensions/fenced_code_blocks.md

@microsoft-github-policy-service agree

It would seem that this PR also has the side effect of fixing the broken Codebraid support for Rust, which was mistakenly matched as R code.  This is most of the changes in the file pr-57_md.json.  The rest are basically just updates to the fenced block not correctly scoping the language and attributes.

@mjbvz, @alexdima, any chance this can receive a review and be moved along?

Moving the milestone
Also, there are merge conflicts

Moving the milestone Also, there are merge conflicts

There would have been no conflicts if this had not been ignored, until way after a MS employee merged other changes (#158), ignoring all other PRs!
I will try and see if I can find the time.  But its about 5months since i invested time into understanding this set of fairly complex expressions.  not to mention setting up a dev environment to test this, in order to implement the suggested changes.


Rancher Backup | Can't migrate to a new HA cluster from single docker install

Rancher Server Setup

Rancher version: 2.6.3
Installation option (Docker install/Helm Chart): docker

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc):

Information about the Cluster

Kubernetes version:  v1.21.7+k3s1
Cluster Type (Local/Downstream): local

Describe the bug

Can't install Rancher on a HA cluster when migrating to a new cluster following Rancher docs https://rancher.com/docs/rancher/v2.6/en/backups/migrating-rancher/
To Reproduce

Create a rancher cluster using a single docker install method
Configure the cluster to use Route53
Create a secret to access your s3 bucket
Go to Apps&Marketplace > Charts
Install rancher - backup app
when installing the app add your s3 info (using the secret your created)
Take a backup
Create a new RKE1 HA cluster (3 nodes)
Follow the docs to migrate to the new cluster from the backup you created
-Install the rancher-backup Helm chart
-Restore from backup using a Restore custom resource
-Install cert-manager
-Bring up Rancher with Helm
https://rancher.com/docs/rancher/v2.6/en/backups/migrating-rancher/#4-bring-up-rancher-with-helm

Result
when running the helm install rancher ... the error is returned
mycommandline % helm install rancher rancher-latest/rancher \
  --namespace cattle-system \
  --set hostname=xxx.xxx.xxx
Error: INSTALLATION FAILED: rendered manifests contain a resource that already exists. Unable to continue with install: Secret "bootstrap-secret" in namespace "cattle-system" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key "app.kubernetes.io/managed-by": must be set to "Helm"; annotation validation error: missing key "meta.helm.sh/release-name": must be set to "rancher"; annotation validation error: missing key "meta.helm.sh/release-namespace": must be set to "cattle-system"

Expected Result

Helm installs rancher on the cluster
Workaround: delete the bootstrap-secret kubectl delete secret bootstrap-secret -n cattle-system and run helm command again -> it installs the rancher successfully

Similar issue found during 2.6.0 release - https://github.com/rancher/rancher/issues/32711

Ran into this issue after uninstall k3s and redeploying rancher. rancher stable

This is most likely solved by the linked issue. I am putting it in the queue for QA to validate.

@nickwsuse can you pls validate on latest 2.7.x Rancher version?

Verified on v2.7.5-rc5
I was able to successfully migrate a single node docker install to an HA cluster using this documentation.
Out of curiosity I also tried to do a restore using an already existing fresh HA using the backup from the single docker install and that did NOT work, though I'm fairly certain that's expected.


Secure publicly hosted pico engine

People shouldn't be able to just navigate to port 8080 and see everything

Currently, the engine is restricted by requiring a username/password, which no one will be able to actually access, since their owner picos were created via the DID method. However, the database dump is still a possible problem...

This ought to also restrict the ruleset edit page..

Done

Navigating to a page that uses a restricted resource will prompt for a username and password. Ask me for either, or I can make a username and password for you.


Add ConditionalOnProfile and ConditionalOnMissingProfile annotations

Codecov Report

Merging #733 into master will increase coverage by 3.62%.
The diff coverage is 78.94%.

@@             Coverage Diff              @@
##             master     #733      +/-   ##
============================================
+ Coverage     47.36%   50.98%   +3.62%
+ Complexity     1535      812     -723
============================================
  Files           347      175     -172
  Lines          9583     4858    -4725
  Branches        949      468     -481
============================================
- Hits           4539     2477    -2062
+ Misses         4708     2185    -2523
+ Partials        336      196     -140

Impacted Files
Coverage Δ
Complexity Δ

...rk/apollo/common/condition/OnProfileCondition.java
78.94% <78.94%> (ø)
6 <6> (?)

.../portal/spi/defaultimpl/DefaultUserInfoHolder.java

...p/framework/apollo/portal/api/AdminServiceAPI.java

...configservice/controller/ConfigFileController.java

...rk/apollo/openapi/v1/controller/AppController.java

...o/portal/component/AdminServiceAddressLocator.java

...portal/component/txtresolver/FileTextResolver.java

.../framework/apollo/openapi/entity/ConsumerRole.java

...ip/framework/apollo/portal/entity/po/Favorite.java

...o/configservice/wrapper/DeferredResultWrapper.java

... and 165 more

Continue to review full report at Codecov.

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


ClientException with SocketException

Checklist

[X] I am able to reproduce the bug with the latest version.
[X] I made sure that there are no existing issues - open or closed - which I could contribute my information to.
[X] I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
[X] This issue contains only one bug, that only occurs in Squawker

Affected version
v3.8.3+300016323
Steps to reproduce the bug

Try to login with your Twitter account
api.twitter.com hostname not found error occurs

Expected behavior
It should be able to login without issues
Actual behavior
It does not login or able to view tweets
Screenshots/Screen recordings

Logs
None (Screenshot attached above)
Affected Android/Custom ROM version
Android 14 / One UI 6.1.1
Affected device model
Samsung Galaxy S22+
Additional information
No response

Unfortunately j-fbriere went quiet recently so I assume this one could not be able to be fixed. But I will be leaving this issue open in case briere comes back and fix this app.


Corrupt JAR file

java -jar zipkin-dependencies.jar fails with "Error: Invalid or corrupt jarfile zipkin-dependencies.jar"
Running the docker container locally and inspecting the JAR file shows that it consists of:
{
  "errors" : [ {
    "status" : 404,
    "message" : "Could not find resource"
  } ]
}

Running the curl command used in the Dockerfile does download a valid JAR file.  My suspicion is that it might be a timing thing between the zipkin-dependencies build and the docker-zipkin-dependencies build.

We are hit by this issue also

I dated with this problem today

I ran into this issue today

Same here, fixed by docker pull quay.io/openzipkin/zipkin-dependencies:latest.


[SPARK-31923][Core]Ignore internal accumulators that use unrecognized types rather than crashing

What changes were proposed in this pull request?
Ignore internal accumulators that use unrecognized types rather than crashing so that an event log containing such accumulators can still be converted to JSON and logged.
Why are the changes needed?
A user may use internal accumulators by adding the internal.metrics. prefix to the accumulator name to hide sensitive information from UI (Accumulators except internal ones will be shown in Spark UI).
However, org.apache.spark.util.JsonProtocol.accumValueToJson assumes an internal accumulator has only 3 possible types: int, long, and java.util.List[(BlockId, BlockStatus)]. When an internal accumulator uses an unexpected type, it will crash.
An event log that contains such accumulator will be dropped because it cannot be converted to JSON, and it will cause weird UI issue when rendering in Spark History Server. For example, if SparkListenerTaskEnd is dropped because of this issue, the user will see the task is still running even if it was finished.
It's better to make accumValueToJson more robust because it's up to the user to pick up the accumulator name.
Does this PR introduce any user-facing change?
No
How was this patch tested?
The new unit tests.

Test build #123592 has finished for PR 28744 at commit 7716ab6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/123592/
Test PASSed.

cc @tdas @cloud-fan

LGTM. We should backport this branch-3.0 as well as this is a good narrow bug fix with low risk.

Thanks! I will also merge this to branch-2.4 for the same reason.

Merged to master and branch-3.0. There is some minor conflict with branch-2.4. I will submit a backport PR.

Late LGTM. Thank you for making this available at master/3.0/2.4, @zsxwing and @tdas .


Wrong candidates/Offices retrieved

"Peter McVay" (candidate for New Hampshire House of Representatives Rockingham 14)  appearing in place of "Peter Gagyi" for New Hampshire House of Representatives Merrimack 20. https://api.wevoteusa.org/c/39857/edit/?google_civic_election_id=1000074&state_code=
-Should be https://ballotpedia.org/Peter_Gagyi

"John O'Connor" (Candidate for New Hampshire House of Representatives Rockingham 6) appearing in place of "John J. O'Connor" for     New Hampshire House of Representatives Sullivan 4 https://api.wevoteusa.org/c/wv02cand39771/edit/

-Should be https://ballotpedia.org/John_J.O%27Connor(New_Hampshire)

Could not reproduce.


Icons8 API is a PAID service

Current Link - https://icons8.docs.apiary.io/#reference/0/meta
The link provided in the present version redirects to an old version of API, which does not work.
The updated section of API is in link, which has its endpoint details in link
But then it turns out, it's not the original website.
Original API documentation - https://developers.icons8.com/docs. It has many other services other than icons.
All of which is available on a trial period. Not available for free. Link
Haven't seen any API key on the https://developers.icons8.com/api-keys after filling the Typeform as well
There is a subsidiary omg-img, which is free.
Free Icons API from Icons8 - http://img.icons8.com/
Does anybody want to take this up?

I can give it a shot. Thanks for digging into it!

@c6z3h Wait for approval from a maintainer. Then you can make the required changes.

This looks good to me. Thank you so much for checking and letting us know this @hippyaki ❤
I will review the PR.


Meetup Suggestion: Albany Bitcoin Group

Thanks for making a suggestion for a new meetup.
Please note: Only suggest bitcoin-only meetups.
Meetups which promote any coin or token other than Bitcoin are not suitable for listing.
Altcoin's are only mentioned in the context of warnings or lessons learnt for bitcoin.
Required:

Name of Meetup: Albany Meetup group
Location Of Meetup: Online or near Albany NY
At least one of the following:

Meetup Page (or similar): https://www.meetup.com/bitcoin-albany/

Optional

Name of Organiser(s) & Twitter Handle: https://twitter.com/abhiShandy
Tweet your commitment: https://twitter.com/abhiShandy/status/1599407285054607360?s=20&t=AzLOxKS5SYwP6BLjSYZ8zA

As the organiser of Albany Bitcoin Meetup I can confirm that the meetup is bitcoin-only
-The meetup is bitcoin focused.
-'Altcoins' are scams and are not promoted in talks/presentations at our meetups.
#bitcoinonlymeetups @bitcoinonly_

ok, please make a pull request.


make all links from the answers external #340

fix #340 by making all links from the answers external
remove the external link icon if we don't need to distinguish between 2 types of links
https://stampy-ui.aprillion.workers.dev/

is this how it should always work? So search and related questions will add new cards, but links in the question will reload the site? That might be a bit confusing...

is this how it should always work? So search and related questions will add new cards, but links in the question will reload the site? That might be a bit confusing...

what reload? it should always open on new tab, can you give me repro steps when it reloads?

s/reload/new tab/g. But the functional result is the same. Can be good, I suppose, but would be unexpected for me


Fix VS 2019 (Toolset 142) build

The code used std::function<...> without include <functional> header.
Add the missing  header to PCH.

Note, <functional> was included by <string> in the STL come with VS 2017 (Toolset 141).
The STL team restructured the code, thus now we need to include it directly.

I think this was already fixed in #449

Closing for duplication.


Not working correctly on android devices

It works fine on iOS, but in android have dragged item positioning issue. When you start dragging, item is below your finger. If you fix this issue, this will be the best RN draggable plugin.

Ultimately due to a 7-year bug in React Native. I've now gone and fixed it by using LayoutChangeEvent's dimensions instead of relying on measure(). Verified works on Android.
Launched as v3.0.1. Thanks for reporting the issue!


Events / operations still say "container" when using a VM

When you start a VM you will get an event with the message "starting container"
Would it be possible to say "starting container" or "starting virtual machine" or if easier just the agnostic "starting instance"

Yeah, I've been planning on renaming all the operations to say instance instead. I've already done that to the lifecycle events in 4.9

Great thanks!


你好 我在adapter中使用多布局 可是position总是获取不正确，请问有办法解决吗

大神 有看的吗

你可以看看我写的Demo的，由于从Adapter中获取到的position是不准的，所以是保存在list的每个Item中的

你好 我按照你上面说的写了，出现了一个问题，在当前卡片快滑动出去的时候，下一张卡片还是原来列表中的数据，当完全划出时，会闪一下变成新的布局。所以现在我想达到的效果是，当在滑动的过程中，下一个card显示的是另外一个布局，请问有办法吗
多布局的实现我写在一个布局中，通过控制显示隐藏来实现的。

var bean = datalist[position]
var num = if (position == 0) {
tempList?.indexOf(bean)
} else {
-1
}
    if (num!= -1 &&num!=0 && num % 5 == 0) {
        holder.publisherAdView.visibility = View.VISIBLE
        holder.rl_content.visibility = View.GONE
       ...
    } else {
        holder.publisherAdView.visibility = View.GONE
        holder.rl_content.visibility = View.VISIBLE
      .....
        holder?.img?.setRemoteImagePicass(bean.avatar, R.mipmap.holder)
       ...
    }

Hello,
We have an exciting opportunity for you! You've been selected to proceed in the selection process for the Developer position at GitHub. Congratulations on your achievement!
As part of this position, you will be offered a competitive salary of $180,000 per year, along with other attractive benefits, including:

Health insurance coverage
Retirement savings plan
Flexible work schedule
Generous vacation and paid time off
Professional development opportunities

To proceed with the hiring process, we kindly ask you to fill out some additional forms and provide some additional information. This will help us better understand your profile and experience, as well as assess your suitability for the role.
Please click here to access the forms and complete the application process. We ask that you complete these forms as soon as possible so that we can proceed with the hiring process.
Important: You have 24 hours to complete the application process.
If you have any questions or need further information, please don't hesitate to contact us.
Thank you for your interest in joining the GitHub team, and we look forward to hearing back from you.
Best regards,
GitHub Recruitment Team
JingYin007, @YunanEngr, @leietal, @lleii, @brucewinger, @raptazure, @jackusa, @awesomeric, @yzzymt, @DimaLiLongJi, @XuBianjia, @lilin-lab, @yunstv, @gebaocai, @efonfighting, @mygoda, @OneSeven, @turober, @thimper, @tanghaijun


Persist trending selectors between tags

PR Type

[x] Bugfix • Fixes #2679 Persist trending selectors between tags

When switching between tags, the selector defaults back to Trending even though you had another option already selected. I think it makes more sense to persist them.

Also, added persistence to Channel selection in Publish Page per discussion with Tom.
Skip the suggested change in the wallet for now until this method is reviewed.  There might be better ways to handle the history.
Code changes

orderParamUser will store the last user state persistently. The persistent state is also made unique for each page (i.e. "Your Tags" and "All Content" will have unique states).
If the parent component passes in a specific order, that will be respected and will also become the new persisted value. One example is "Your Following", where it always starts at 'New'.
Handling navigation history was a bit troublesome:
The test case:

Enter "Your Tags" (assume start at 'Trending')
Click 'New'
Click 'Top'
Back
Back (it should return to 'Trending')
As the top page history does not have any ?order= value, we ended up with a no-op for the last Back. orderParamEntry is added to handle this, giving it a value to fall back to.

This is awesome! Nice work!!


Issue/64 python server

Adds a Python server with flask, and updates the clis (python still only does blue).

I still think that the messages to verify shouldn't be created dynamically by the server as it causes the verification process to fail when user sent a message with slightly different format that is still an acceptable JSON. For example user can sign the following message:
{
   "pubKey": "xxx",
   "enteredText": "Foo",
   "timestamp": "xxx"
}

which is still acceptable form by the design, but the server will check for:
{{"pubKey":"xxx","enteredText":"Foo","timestamp":"xxx"}}

This results in an error as the message was "altered" by the server.
Other than that I have nothing more to add.

I don't disagree entirely, but that part is left to the implementer, and not a part of the protocol. My motivation for having the message be constructed on the backend from the payload rather than sent by the client is threefold:

It makes it so that the backend doesn't have to verify that the data in the message matches what is sent in the payload. If for example a client sent a message like giveme10points, but sends a payload like:

{giveme: 500}

what does that mismatch mean?

A server might handle requests from different transports, and weird reconstruction might be necessary, so seemed reasonable to just assume it from the start

Something just feels weird about having that info exposed in the request. I know it's not any more secure, but feels right not to send it already constructed.

I do think though that the use of JSON for the messages in the first place is confusing everything. Kal and I updated Continuebee to be just concatenated strings for the message so as to avoid JSON's different stringification across different languages. I wouldn't be opposed to changing all the examples to using that for messages instead, but there are bigger things for right now.


Implement ExprPlugin

Adds ExprPlugin which allows direct access to javaplugin instances either by name or from a javatype. This makes it easier to get an instance of a plugin without having to import org.bukkit.Bukkit and grab it from the PluginManager. Test script:
import:
	ch.njol.skript.Skript as pluginMainClass
	ch.njol.skript.ScriptLoader as otherPluginClass
	java.lang.String as notAPluginClass

on load:
	broadcast "pluginMainClass: %instance of plugin pluginMainClass%"
	broadcast "otherPluginClass: %instance of plugin otherPluginClass%"
	broadcast "notAPluginClass: %instance of plugin notAPluginClass%"
	broadcast "Null: %instance of plugin {_null}%"
	broadcast "Case insensitive (sKrIpT): %instance of plugin "sKrIpT"%"
	broadcast "Case sensitive (Skript): %instance of plugin "Skript"%"
	broadcast "Call instance method of plugin instance: %(instance of plugin "Skript").getUpdater()%"

Output:
[02:20:49 INFO]: [Skript] Reloading test.sk...
[02:20:49 INFO]: pluginMainClass: Skript v2.6.1
[02:20:49 INFO]: otherPluginClass: Skript v2.6.1
[02:20:49 INFO]: notAPluginClass: <none>
[02:20:49 INFO]: Null: <none>
[02:20:49 INFO]: Case insensitive (sKrIpT): Skript v2.6.1
[02:20:49 INFO]: Case sensitive (Skript): Skript v2.6.1
[02:20:49 INFO]: Call instance method of plugin instance: ch.njol.skript.SkriptUpdater@219b27ec
[02:20:49 INFO]: [Skript] Successfully reloaded test.sk. (27ms)

I've made a few changes, among others disallowing the use of none-main plugin classes (such as ScriptLoader) with this expression. I did this because I often see people struggle with getting the instance of a certain class, and people might think this expression does it for them, plus the benefit of being able to call it on a non-main plugin class is small.


Fix db use method

While playing around with alasql and looking into the code, I noticed that if you call alasql.use on a DB that doesn't exist, alasql.useid will always be that DB name. Invalidating any future DB operations if you don't correctly set the useid.
I believe it makes more sense to check if the DB name is valid, then set alasql.useid. As opposed to just setting alasql.useid regardless of its validity.
This PR aims to fix this issue. I've added a corresponding test. :smile:

You even added a test - Thank you:)


specify origin specifically for rev-list

[ ] This patch includes any updated documentation of the proposed changes
[ ] This patch includes tests that verify the proposed changes work as expected

Codecov Report

Merging #1011 into master will decrease coverage by 0.1%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #1011      +/-   ##
==========================================
- Coverage    77.1%   76.99%   -0.11%
==========================================
  Files          52       52
  Lines        5604     5604
==========================================
- Hits         4321     4315       -6
- Misses       1283     1289       +6

Impacted Files
Coverage Δ

vent/api/menu_helpers.py
92.71% <ø> (ø)
:arrow_up:

vent/api/plugins.py
77.2% <0%> (-1.04%)
:arrow_down:

Continue to review full report at Codecov.

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


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-yml-archive-non-versioning-archive/pull/462 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-yml-archive-non-versioning-archive.git

Docs Build status updates of commit 64c40d6:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

docs/TOC.yml
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/article3-1-1.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/article3-1-2.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level1/article3-1-3.yml
:white_check_mark:Succeeded
View

docs/to-be-archive/level2/article3-2-1.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level2/article3-2-2.md
:white_check_mark:Succeeded
View

docs/to-be-archive/level2/article3-2-3.yml
: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


SluggableBehavior in latest version work not properly

What steps will reproduce the problem?
i used yii2-app-basic template,when use SluggableBehavior,it work not properly with chinese,below is my code ,what extra config i needed?
What is the expected result?
it can translate chinese into english. eg:美国 ->mei-guo
What do you get instead?

Additional info

Q
A

Yii version
Yii v2.0.7

PHP version
php5.5.12

Operating system
win7

It seems, that you do not have ICU.
Did you verify your environment with requirements checker as described in the guide?
I've added a test to verify your case: https://github.com/yiisoft/yii2/commit/499ee6de9ea468cb2a95ecc43a7a588f8b1a321e

yes i know

So do you have ICU?

i used php with the php-cgi.exe in the nginx server
my problem is resolved by modified php.ini file


Add JSON config file for Ratel

Please add a --config=/path/file.json option to ratel  for more consistancy. Consider renaming -addr to something more descriptive eg. --host. Mind the --, please.
Btw. is telemetry missing in --help option or no more valid?

Here's the flags that Ratel currently recognizes:
	portPtr := flag.Int("port", defaultPort, "Port on which the ratel server will run.") 	addrPtr := flag.String("addr", defaultAddr, "Address of the Dgraph server.") 	versionFlagPtr := flag.Bool("version", false, "Prints the version of ratel.")
IIRC --my is used to tell alphas and zeros what is their own network host/port. In Ratel addr is the name of the server it'd connect to.
JSON config sounds like a cool feature

With #182 merged, you should be able to use config files in JSON, TOML, YAML, HCL, envfile orJava properties config files with the integration of Viper/Cobra.

Github issues have been deprecated.
This issue has been moved to discuss. You can follow the conversation there and also subscribe to updates by changing your notification preferences.


pythonPackages.udiskie: replace alias with abort

closes #40941. Fix suggested by @dotlambda.

Reverted in d4890642b40b297f654c4cf9adfad742aa507a99 because this breaks nix-env:
$ nix-env -f . -qa
error: evaluation aborted with the following error message: 'pythonPackages.udiskie has been replaced by udiskie'
(use '--show-trace' to show detailed location information)


Fix material-ui peer dependency on legacy version

Hello,
The last stable version of Material UI V0 is :
    "material-ui": "^0.20.2",

I made this PR because, with the last version of NPM, it blocks the npm install when using Dockerhub node 15 image (on CI) :
Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>|| ^1.0.0-beta.1" from<EMAIL_ADDRESS>npm ERR! node_modules/mdi-material-ui
npm ERR<EMAIL_ADDRESS>from the root project

I will also fix the following message for all these users that use the legacy version as we are ...
npm i
[...]
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| ^1.0.0-beta.1 but none is installed. You must install peer dependencies yourself.

Thank you, much appreciated. :+1: I'll publish a new version later.


Adds hash to the base GUI template

Context
To give greater context of the current build in use when deployed.
Changes proposed in this pull request
Adds the image hash via the image tag to the web GUI.
Guidance to review
Does this approach work, and are we happy with this positioning?
Could probably do with some conditional logic to exclude this from production builds.

Currently adds 'Local Build' in the right corner when working offline, otherwise will pull in the docker image tag.

Closing in favour of #295


Send as an email attachment

Can the addition of "send pdf as an email attachement" option be considered?
My workflow includes opening a pdf article in firefox, saving it to a temporary location and then opening gmail to send the newly downloaded file to my kindle or to a coleague.
More generally, what would be the appropriate way to create an http request containing the entire pdf file object?

+1

+1

+1

+1

+1

I would like to ask everyone not to add +1 comment anymore. Use GitHub's reaction button on the original (top) comment instead. This avoids mail/notification spam and allows us to prioritize issues by sorting on the number of +1 reactions given. Thanks.

+1

The web platform doesn't generally, for obvious security reasons, support adding attachments to mailto: links and this issue is thus probably not possible to solve. @timvandermeij Should this issue simply be closed as wontfix (or even cantfix)?

Yes, I don't see this happening any time soon.


Remove "Warnrmation"

It seems some search-and-replace caught the word "Information". This cleans it up.

Merged; thanks for catching this (and taking the time to submit a PR that fixes it!)


PR: Avoid RuntimeError when handling completion responses

These errors were triggered when a CodeEditor instance was removed before responses can be processed by it.

@andfoy, do we need something similar for Kite? I mean, I don't know if Kite holds CodeEditor instances as our LSP plugin does.

@ccordoba12, this PR handles all CodeEditor references, including both Kite and LSP

Nice! Thanks for the confirmation!


Update index.html

added the followup link to Career , Stories , Cleartrip on the bottom right corneer

Git conflicts are occur. first do git pull and then push and then make a PR


Feature/chronicle uses client sdk

feat: Chronicle now uses async-sawtooth-sdk

Client abstractions - LedgerReader / LedgerWriter now in common
Specialisation for transactions and events done in chronicle-protocol and
opa-protocol
Simulated TPs now use the actual Chronicle / Opa TransactionHandlers, both during tests
and in inmem / dev mode
Some minor changes to the work in async-sawtooth-sdk so it is suited
for both OPA and Chronicle

Fixed for a Mac issue but now investigating a build issue, should be an easy fix.


Initialize all user-options upfront in AppOptions

Initialize all user-options upfront, to allow getting the options without having to check if they exist first. (This is easier to implement after PR #18475 landed.)

Move the user-options into a private field in AppOptions. (This code is old enough to pre-date general availability of that class feature.)

Move code/methods limited to GENERIC-builds into AppOptions.

/botio integrationtest

/botio-linux integrationtest

/botio-linux preview

/botio test


PathMetadata._load_metadata called too many times

Currently it's called 3 times for each file. Get this down to once.
New branch: reduce_calls_to_PathMetadata_load_metadata for this.

See b95f027 for a start on this.

Looking quite promising. Refactored code into metadata.py. Now only gets called once per file (on fully complete remakefiles anyway). Speeds up a slow remakefile by approx 30% (~60s to ~40s).

All tests passing as well. Use this for a bit then can probably merge back into master.


Perhaps use explicit "fold" style

Many streaming functions factor through a "fold" that guarantees that they consume their arguments sequentially and transform them with monad homomorphisms before re-emitting them.  (cf. foldMap).  Is this style something you're interested in pursuing, either internally or in the public API?
{-# LANGUAGE Rank2Types #-}
{-# LANGUAGE ExistentialQuantification #-}

import qualified Streaming as S
import qualified Streaming.Prelude as S
import qualified Control.Monad.Free as F
import qualified Control.Monad.Trans.Writer as W
import qualified Data.Monoid as M

data Fold f m n = forall o.   There exists a function fold such that many of the standard streaming functions are fold . f for some f.


'Process' object has no attribute "memory_info'

Can't get this to run on OSX, and cannot figure what i'm doing wrong, as this is how it works in psutil and it seems how it's covered in the docs too.

ok so reading the tests it seems virtual_memory and swap_memory is missing, so supposedly it's not supported on OSX.

Can't get this to run on OSX, and cannot figure what i'm doing wrong, as this is how it works in psutil and it seems how it's covered in the docs too.

Many of pypsutil's features, including Process.memory_info(), were written after I released v0.1.0 on PyPI. As a result, the docs (which are built off of master) describe some features that aren't available if you just install the package from PyPI. Here are the docs for v0.1.0, so you can see what's supported there. I meant to make a new release a while ago but never got around to it.
Sometime soon, I'll take a look and see if there's anything else I want to get in, then perhaps make a v0.2.0 release. In the meantime, you should be able to install pypsutil from the master branch of the git repo with one of the following (depending on your situation):
If you just want to install it:
pip install -e 'git+https://github.com/cptpcrd/pypsutil.git@master#egg=pypsutil'

If you use virtualenv, add this to your requirements.txt:
-e git+https://github.com/cptpcrd/pypsutil.git@master#egg=pypsutil

If you use pipenv:
pipenv install -e 'git+https://github.com/cptpcrd/pypsutil.git@master#egg=pypsutil'

I try to keep master in a usable state, so don't worry too much about breakage.

Excellent thank you.

Released v0.2.0:
https://github.com/cptpcrd/pypsutil/releases/tag/v0.2.0
https://pypi.org/project/pypsutil/#history


How do you add a message in a test suite?

Background:
I am running a customize third-party mocha reporter like this:
` var customReporter = function (runner) {  // private method
    runner.on('pass', function (test) {
        console.log('The following test has passed: '+test.title);
        console.log(test);
        testsPassed++;
        totalTests++;
    });

    runner.on('fail', function (test) {
        console.log('the following test has failed: '+test.title);
        testsFailed++;
        totalTests++;
    });

    runner.on('pending', function (test) {
            console.log('pending');
            pending.push(test);
    });`

Is it possible to include in a 'describe', 'it' block a message, which will be displayed when the tests are failing? The message is in my case the error message I get from the API call I'm testing. I wonder how I can pass it inside my tests to be visible in my reporter. I am using Chai for assertions.
it('Checking firsName is valid', function (done) {         var key = keyJson[0];         expect(json.profiles[key]["firstName"]).to.not.equal(" ");         done();          //how to include the json here?      });

any solution to this?

The solution I have so far is using try and catch, however this is not elegant at all:
it('Checking guid', function (done) {
var key = keyJson[0];
try {
expect(json.profiles[key]["guid"]).to.equal('PSI'+key);
done();
}catch(err)
{
done(new Error("No Json returned"));
}
});
Would it be possible to allow done to receive a custom error message without checking first if the test fails or not? At the moment, inserting an error message in done, when the test passes, causes the failure of the test. So, when you run it programmatically, the custom reporter should be dealing with the errors. My main problem is that there is not elegant way to override mocha error messages and use my own.
Thoughts?

test.fullTitle() work for you?

var _ = require('lodash');

describe('suite', function () {
  it('Checking guid', function (done) {
    var key = keyJson[0];
    var res = _.attempt(expect(json.profiles[key]["guid"]).to.equal('PSI'+key));
    return (_.isError(res)) ?
      done(new Error("No JSON returned"));
      done();
});

Did you try using a wrapper function that is passed the done function and your custom error message as arguments?

BTW, you could alter Chai's default expect assertion message:
See here and here for details.

BTW, your testsPassed, testsFailed, and totalTests variables above are already available via Mocha-provided runner.stats object.


Setting password on a managed SP

To minimize the number of service principals and applications in the directory, I have tried setting a password on a system-managed SP by using this API https://docs.microsoft.com/en-us/graph/api/serviceprincipal-addpassword?view=graph-rest-1.0&tabs=http
Surprisingly, it worked as expected. The application's system-managed identity continued to work, and I could authenticate with that SP also using the password I set. Can one rely on this behavior in the future? I.e., at least that the system will not delete user-created password credentials?

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

ID: 07551795-7de9-95d5-486c-579b8332e054
Version Independent ID: 925ae422-7975-4ecb-eded-4c36a29a95a3
Content: FAQs and known issues with managed identities - Azure AD
Content Source: articles/active-directory/managed-identities-azure-resources/known-issues.md
Service: active-directory
Sub-service: msi
GitHub Login: @barclayn
Microsoft Alias: barclayn

@zvrba Thank you for your feedback . We will investigate and update the thread.

Can you please expand what you mean by application's system-managed identity? Are you referring to Azure Managed identities (aka.ms/managedidentity) or an Azure AD Application Registration and the corresponding Service principal that gets created? I'm guessing you are referring to the later, in which case this is expected.
If you do a Get on the SP using its ID, what is the value of Service principal type?

I'm referring to Azure Managed Identities.

Being able to set password on a managed identity credential is not expected behavior and you should not take a dependency on it.

Just adding a note from this  doc "AAD is not supported for on-prem SQL Server, and this includes MSIs" for additional info.

Just adding a note from this  doc "AAD is not supported for on-prem SQL Server, and this includes MSIs" for additional info.


Support DnD for problem markers and search matches

In Problems/Search view, one can DnD a file resource into editor. This request is to support the same functionality for Problem Marker entries and Search match entries.

To support range selection in URI, extended URI fragment selection syntax to support ranges. Eg:
file:///some/file.js#73,84-83,52
file:///some/file.js#L73,84-L83,52

CC @roblourens - Search matches also support this behavior now.

Thanks!


nixos/powerdns: use upstream systemd unit

Motivation for this change

bump to newest release of PowerDNS
use the upstream systemd unit
run as non-root
nobody/nogroup shouldn't be used

Things done

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

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

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

I ran some minimal testing with the gmysql backend using this configuration:
  services.mysql.enable = true;
  services.mysql.package = pkgs.mariadb;
  services.mysql.ensureDatabases = [ "powerdns" ];
  services.mysql.ensureUsers = [
    { name = "pdns";
      ensurePermissions = { "powerdns.*" = "ALL PRIVILEGES"; };
    }
  ];

  services.powerdns.enable = true;
  services.powerdns.extraConfig = ''
    launch=gmysql
    gmysql-user=pdns
    gmysql-host=localhost
  '';

From there I was able to create and edit a zone using pdnsutil (more specifically, sudo -u pdns EDITOR=nano pdnsutil...).

@GrahamcOfBorg test powerdns

I have extended the test with your setup and also added a subtest for changing records with pdnsutil.


build(deps): Bump build-tools dependencies in client

Upgrading to build-tools 0.18.2 to pull in the fixes from #15923.
Updated the following:
client (release group)
Dependencies on build-tools updated:
@fluid-tools/build-cli: ^0.18.2
@fluidframework/build-tools: ^0.18.2
@fluidframework/bundle-size-tools: ^0.18.2
Commands used:
flub bump deps build-tools -g client

The CI failure is because #15922 is not included. I'm going ahead and merging since @kian-thompson already has an open PR porting that change.


Directives : Access to directives of a wrapper

What problem ?
I wanted to test the content of v-tooltip directive. I faced the following problem :
const cmp = shallowMount(Component, defaultParams);
expect(cmp.find('div').?????).toEqual('Hello'))
I don't know how to access the content of the directive.
I wonder if that's possible to access to it in some way like that:
const cmp = shallowMount(Component, defaultParams);
expect(cmp.find('div').directives('tooltip').content).toEqual('Hello'))

@sbenyoub-accor Did you get the right way to deal with it, and I has the same problem.

@sbenyoub-accor Did you get the right way to deal with it, and I has the same problem.

nop :/


Make cli use Version#to_file instead of reimplementing inline.

The punch CLI was writing Version info back to the version file
inline. This was leading to the DateVersionPart bug sticking around
for command-line usage, even though Version#to_file was already fixed.
Since there was already an instance method on Version for
serializing that data to a file, I made the CLI use that method,
instead of reimplementing the logic inline.

Many thanks. I created and published version 1.4.5 with this patch


[Enhancement] Ability to capture KeyDown/KeyUp/LongPress events in Android

Android has a event API off the main Application Activity with OnKeyDown/OnKeyUp/OnLongPress events; this api will pass in an entire event class called the KeyEvent
https://developer.android.com/reference/android/view/KeyEvent.Callback.html
https://developer.android.com/reference/android/view/KeyEvent.html
From this class; you can find out:
Pretty much anything about the key stroke(s) hit.  Including metadata like Shift/Ctrl/Alt, etc...
Different types of real keys and special keys like "Calculator", "Volume", "Brightness"...
I would like to create a general purpose plugin where I can pass back to flutter basically the entire KeyEvent and my Dart code will decide what to do with the keystroke.  In the event that Dart will handle the key or keystroke, it will return true so that the Android OS will no longer do anything with the keystroke.  In the event that Flutter does not handle the key; then I need to return 'false' to the Android OS.
At this moment, because the onKeyDown and onKeyUp and are synchronous events that MUST return true or false when they are done, meaning that there is no way to currently process and handle the event in Flutter, because the minute I send the key over to Dart; the Native OEM side continues and by the time Dart sees the Key to respond; it has already returned back to the OS.
This is blocked by the inability to do sync communication events like engine pull# https://github.com/flutter/engine/pull/4358
CC: @Hixie

The way we normally implement this kind of thing, e.g. the way we implement the accessibility support (which is also a bunch of synchronous APIs), is to have the framework proactively send information to the code running on the OEM side, so that when the request comes in, it can respond immediately. Would that approach work for this problem?

There are some scenarios it could work -- for example if all I wanted to do was trap the volume keys...  Then I could write my JAVA wrapper code to only check for VolUp/VolDown and then return true when that occurred and false when it didn't and send those keys over the Async bridge into Dart land..
However this would not be a generic solution, which is what I am aiming for when I develop a plugin.
One app might need to capture Meta-A and another app; Brightness-Up.     If you checkout the second link I provided you can see the vast number of permutations that can occur which would make this a nightmare to actually pre-decide.     There are over 240 flags in addition to all the things like getAction(), getKeyCode(), getScanCode() and getMetaState(), getUnicodeChar() etc.   I don't see anyway to make this "generic" and pre-calculate what you need as each app will want to capture different keystrokes for different reasons.   For example a game using a bluetooth keyboard might want to capture WASD, shift, Alt, Ctrl.  on the left side of the keyboard and Arrows, insert, delete on the right side.
I believe the first version of the plugin that I am thinking of would basically take a flag for which of these calls are needed to track and then call each of those calls to gather the info and create a similar interface on the dart side of the bridge.    i.e. something like captureKeyDown(METASTATE|SCANCODE|KEYCODE, myHandler) and then on the Android side it would automatically on each keystroke fill in the MetaState, ScanCode and Keycode structures to send over the sync bridge to myHandler.   The myHandler would then decide what is valid to capture and then proceed to handle the  key stroke how it needs to and return true/false back over the sync bridge to clear the sync state.   If need be -- the dart side of the bridge could have a required "SyncAnswer" call which would clear the sync state and return the value midway through the handler or whatever to allow us to answer immediately back before we actually handle the keystroke...

It seems like it's always possible to know the list of key combinations that are going to be handled ahead of time. Can't you just send an array that says "Meta-A, Brightness-Up", or "W, A, S, D, Left Shift, Left Alt, Left Ctrl, Up, Down, Left, Right, Insert, Delete"?

@Hixie - If I am writing something specifically for my own app; then yes you can handle some of this.
The main answer is nope; if I am writing a generic plugin, and then only the final consumer of the plugin is who knows what keys they are capturing (and when), I as the plugin author has NO idea when/what keys they are wanting to capture and in what instances they don't want to capture.   So my goal is to return all keys back they want.   So in this plugin I would have to have some sort of customization function like .captureKeyDown(....) that I post as a message back to java from dart; then in java track every one of these -- then any keystroke that matches my array; I then pass a message back to Dart.  So in this way it can work.
However,  I might not want to capture WASD when in a text field; so the criteria becomes capture of some keys is valid only at certain points of time. Some of this can be pre-determined but now introduces the side effect of race conditions that can happen frequently in keys captured/not captured messages and when they hit vs when a keystroke is hitting.
So having the ability to call into Dart, have dart process the values; then it figure out if it needs to actually capture or not-capture the characters is pretty critical to be well rounded plugin without race conditions.
I can think of several ways to work around many of these issues; but the only reason they are all issues is because of the lack of sync support.   Seriously, In every other product I've used this is handled extremely easily, in Flutter this is literally a nightmare to do anything really custom in this area, and literally requires a lot of extra overhead on both the Java side and the Dart to do anything that would normally be extremely simple, and  finally the async implementation will always have extra or missing captures do to the race condition that it creates by the nature of its design.

Yes, as a flutter developer who is implementing custom key combinations, I hope this issue can be solved soon.

@gspencergoog Was this addressed by the overhaul of key handling?

Yes, if I understand correctly, this was addressed in the overhaul of the key event system. We now respond immediately to the OS with "yes, it was handled", and then if the framework doesn't handle it, then we synthesize a new identical key event and respond "no, we didn't handle it" when the synthesized event arrives at our handler which lets the OS handle it.


Update g2tmpl to 1.12.0 on NOAA-Cloud (CSPs)

Can we update g2tmpl within spack-stack on CSPs to 1.12.0?
The current develop branch on CSPs has problem to compile:
./compile_upp.sh
Building for machine noaacloud, compiler intel
Lmod has detected the following error: The following module(s) are unknown: "g2tmpl/1.12.0"
Please check the spelling or version number. Also try "module spider ..."
It is also possible your cache file is out-of-date; it may help to try:
$ module --ignore_cache load "g2tmpl/1.12.0"
Also make sure that all modulefiles written in TCL start with the string #%Module
Executing this command requires loading "g2tmpl/1.12.0" which failed while processing the following module(s):
Module fullname  Module Filename

upp_common       /contrib/Wei.Huang/src/global-workflow-cloud/sorc/ufs_model.fd/FV3/upp/modulefiles/upp_common.lua
noaacloud        /contrib/Wei.Huang/src/global-workflow-cloud/sorc/ufs_model.fd/FV3/upp/modulefiles/noaacloud.lua
Current on CSPs, we have:
[Wei.Huang@wei1epic2azure3slurm-85 c48atm]$ module spider g2tmpl
g2tmpl: g2tmpl/1.10.2
If we force to use g2tmpl/1.10.2, we got error:
/contrib/Wei.Huang/src/global-workflow-cloud/sorc/ufs_model.fd/FV3/upp/sorc/ncep_post.fd/grib2_module.f(502): error #6580: Name in only-list does not exist or is not accessible. [G2SEC4_TEMP9]
g2sec4_temp0,g2sec4_temp8,g2sec4_temp9,g2sec4_temp44, &
-----------------------------------------------------^
/contrib/Wei.Huang/src/global-workflow-cloud/sorc/ufs_model.fd/FV3/upp/sorc/ncep_post.fd/grib2_module.f(503): error #6580: Name in only-list does not exist or is not accessible. [G2SEC4_TEMP46]
g2sec4_temp46,g2sec4_temp48,g2sec5_temp0,g2sec5_temp2, &
---------------------------^
compilation aborted for /contrib/Wei.Huang/src/global-workflow-cloud/sorc/ufs_model.fd/FV3/upp/sorc/ncep_post.fd/grib2_module.f (code 1)
make[2]: *** [sorc/ncep_post.fd/CMakeFiles/upp.dir/grib2_module.f.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [sorc/ncep_post.fd/CMakeFiles/upp.dir/all] Error 2
make: *** [all] Error 2

@weihuang-jedi This request was made to us in the past, and for this purpose we installed an addon environment called upp-env for spack-stack-1.6.0. I don't have access to your NOAA CSPs, but on S4 these directories = environments exist in spack-stack-1.6.0/envs:
-bash-4.2$ ls -l envs/
total 46
drwxr-xr-x 6 jedipara domain users 11776 Jan  3  2024 gsi-addon-env
drwxr-xr-x 6 jedipara domain users 11776 Jan  2  2024 unified-env
drwxr-xr-x 7 jedipara domain users 11776 Apr 24 17:13 upp-addon-env

This should be the same on ParallelWorks. If you can locate upp-addon-env, please try to use that. It's the same as unified-env, except that it has<EMAIL_ADDRESS>

@Dom Heinzeller @.***> I do not see upp-addon-env on AWS:
@.*** modulefiles]$ pwd
/contrib/Wei.Huang/src/global-workflow-cloud/sorc/ufs_model.fd/FV3/upp/modulefiles
@.*** modulefiles]$ ls -l
/contrib/spack-stack/spack-stack-1.6.0/envs
total 8
drwxr-xr-x. 6 root root 6144 Apr 17 23:04 gsi-addon-env
drwxr-xr-x. 6 root root 6144 Jun 11 14:37 unified-env
On Mon, Jul 8, 2024 at 9:42 AM Dom Heinzeller @.***>
wrote:

@weihuang-jedi https://github.com/weihuang-jedi This request was made
to us in the past, and for this purpose we installed an addon environment
called upp-env for spack-stack-1.6.0. I don't have access to your NOAA
CSPs, but on S4 these directories = environments exist in
spack-stack-1.6.0/envs:
-bash-4.2$ ls -l envs/
total 46
drwxr-xr-x 6 jedipara domain users 11776 Jan  3  2024 gsi-addon-env
drwxr-xr-x 6 jedipara domain users 11776 Jan  2  2024 unified-env
drwxr-xr-x 7 jedipara domain users 11776 Apr 24 17:13 upp-addon-env
This should be the same on ParallelWorks. If you can locate upp-addon-env,
please try to use that. It's the same as unified-env, except that it has
@.***
—
Reply to this email directly, view it on GitHub
https://github.com/JCSDA/spack-stack/issues/1183#issuecomment-2214475958,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASMCH6ZS4TUCRGDWDR65BD3ZLKXMLAVCNFSM6AAAAABKRAXMCWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJUGQ3TKOJVHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

@natalie-perlin Can you fix this, please?

@climbfuji - will install upp-addon-env on NOAA CSP. Where is the best place to find directions (any specific PRs?)

See https://github.com/JCSDA/spack-stack/issues/1087

On CSPs, please install at: /contrib/spack-stack/spack-stack-1.6.0/envs

Installation of upp-addon-env completed for AWS, GCloud, and Azure ( for CentOS )
A chained environment with g2tmpl/1.12.0 is installed in
/contrib/spack-stack/spack-stack-1.6.0/envs/upp-addon-env

Thanks @natalie-perlin ! Closing this, please reopen if there are still issues.

Thank you @natalie-perlin !


Is LFS_NAME_MAX 255 bytes a little larger?

Most files or directories do not have a so long name.  If user define 'struct lfs_info' on the stack, it may be unsafe. I have reduced LFS_NAME_MAX  to 32 and it works. But I don't want to modify ‘lfs.h’. Should  this macro appear in ‘lfs_util.h’ ?

 I've actually added an ifdef so you can redefine it to a good value is good for your system: https://github.com/geky/littlefs/pull/48
One concern is portability (ie mounting a storage device onto a PC), since different systems may support different name sizes. In #48 I added the file name size as an entry in the superblock at format time, so other systems should respect it.
That's the main reason it's not supported quite yet.

No, not on windows at the moment. Though I hope put one together when I have the time (or I'd be excited if someone else put one together).
There is a fuse wrapper which allows you to mount LittleFS in linux. You could use a virtual machine, although it wouldn't be convenient:
https://github.com/geky/littlefs-fuse


Rust treatment

Remove and seal rust.

The container floor is removed, we can now start with the rust treatment.

Inform
Buy
share infos about products and work.


Provide the ability to test messaging configuration BE

Description
As a Privacy Engineer , I want to ensure the messaging configuration is working as expected.
Assumptions

The user has completed the configuration of the messaging service as implemented in this  .
The user has all the required permissions.

AC

Once the messaging provider details are successfully updated, I can enter a test identifier (Email or SMS) based on the messaging service type.
I can click on test the  configuration to send a test message.
I’m notified if the message was successfully sent, and they can check their respective channel (Email or SMS).
I’m notified if the message fails to be sent and the reason for the situation.

Figma link

Hey @sanders41 , AT is going to be taking/assisting with some of this work - what's the status of this BE work? Thanks

Hey @sanders41 , AT is going to be taking/assisting with some of this work - what's the status of this BE work? Thanks

PR here for this #2585


Resetting filter rows

Amazing to see these experiments!
An issue is that the FILTER ROWS doesn't reset after search. The following steps are to reproduce the issue:
1- Build the table with multiple columns.
2- Use FILTER ROWS to filter the table by a value of one column.
3- Press the FILTER ROWS to show the filtered table without the search boxes.
4- The only way to restore the the unfiltered table is to refresh the page as the search boxes doesn't hold the filtering value.
Let me know if I am missing something. Thanks J

Thanks for reporting @ahmedfsalhin ! This was finally fixed in #4 :)

Hello,
I recently came across the same issue, using the latest version of dash-table-experiments.
In the example below, if I filter by one column and then hide the search boxes, these still do not remember the value I filtered by. If I try to filter this further, it seems to apply the new filter on top of the old one, so I'm assuming it does store the old filter but it does not display it. You can display all the data by trying to filter on the same column again and then deleting your filter, or by refreshing the page.

As far as I can tell this is the same issue raised above. Not sure if the bug was reintroduced in a later commit or if I'm doing something wrong. The code I used for this is the example provided in this repo (usage-callback.py).
Thanks,
Andra


firewalld: 1.2.0 -> 1.2.1

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/firewalld/firewalld/releases.
meta.description for firewalld is: "Firewall daemon with D-Bus interface"
meta.homepage for firewalld is: "https://github.com/firewalld/firewalld"
meta.changelog for firewalld is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.2.1 with grep in /nix/store/abgp7qbhqr7dcn86jhrzqqlpadmw87fb-firewalld-1.2.1
found 1.2.1 in filename of file in /nix/store/abgp7qbhqr7dcn86jhrzqqlpadmw87fb-firewalld-1.2.1

Rebuild report (if merged into master) (click to expand)

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
firewalld
firewalld-gui

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/abgp7qbhqr7dcn86jhrzqqlpadmw87fb-firewalld-1.2.1 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A firewalld https://github.com/r-ryantm/nixpkgs/archive/4ef94986dc19c19e49609b95bae90be3b0ba41e6.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/abgp7qbhqr7dcn86jhrzqqlpadmw87fb-firewalld-1.2.1
ls -la /nix/store/abgp7qbhqr7dcn86jhrzqqlpadmw87fb-firewalld-1.2.1/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

firewalld
firewalld-gui

Maintainer pings
cc @SuperSandro2000 for testing.

There seems to be an dependency issue:

[nix-shell:~/.cache/nixpkgs-review/pr-193523]$ ./results/firewalld/bin/firewall-applet
Traceback (most recent call last):
  File "/nix/store/abgp7qbhqr7dcn86jhrzqqlpadmw87fb-firewalld-1.2.1/bin/.firewall-applet-wrapped", line 25, in <module>
    from PyQt5 import QtGui, QtCore, QtWidgets
ModuleNotFoundError: No module named 'PyQt5'

That only works in the GUI variant. The symlinks should probably be cleaned up.


Pls, help...

`2023-11-12 16:18:27,574 - UVR BEGIN
Running on local URL:  http://<IP_ADDRESS>:7861

To create a public link, set `share=True` in `launch()`.
2023-11-12 16:18:53,472 - HTTP Request: POST http://<IP_ADDRESS>:7861/reset "HTTP/1.1 200 OK"
2023-11-12 16:18:53,526 - Task exception was never retrieved
future: <Task finished name='i3cszgik4t_3' coro=<Queue.process_events() done, defined at C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\gradio\queueing.py:329> exception=AssertionError('No event data')>
Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\gradio\queueing.py", line 343, in process_events
    response = await self.call_prediction(awake_events, batch)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\gradio\queueing.py", line 303, in call_prediction
    assert data is not None, "No event data"
AssertionError: No event data
2023-11-12 16:18:53,530 - HTTP Request: POST http://<IP_ADDRESS>:7861/reset "HTTP/1.1 200 OK"
2023-11-12 16:18:53,589 - Task exception was never retrieved
future: <Task finished name='i3cszgik4t_2' coro=<Queue.process_events() done, defined at C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\gradio\queueing.py:329> exception=AssertionError('No event data')>
Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\gradio\queueing.py", line 343, in process_events
    response = await self.call_prediction(awake_events, batch)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\gradio\queueing.py", line 303, in call_prediction
    assert data is not None, "No event data"
AssertionError: No event data
2023-11-12 16:18:53,592 - HTTP Request: POST http://<IP_ADDRESS>:7861/reset "HTTP/1.1 200 OK"
2023-11-12 16:18:53,653 - Task exception was never retrieved
future: <Task finished name='i3cszgik4t_1' coro=<Queue.process_events() done, defined at C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\gradio\queueing.py:329> exception=AssertionError('No event data')>
Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\gradio\queueing.py", line 343, in process_events
    response = await self.call_prediction(awake_events, batch)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\site-packages\gradio\queueing.py", line 303, in call_prediction
    assert data is not None, "No event data"
AssertionError: No event data
2023-11-12 16:18:53,656 - HTTP Request: POST http://<IP_ADDRESS>:7861/reset "HTTP/1.1 200 OK"`

What this error?

3.10 maybe it's broken on 3.10 ldk

maybe it's broken on 3.10 ldk or that model is not supported

Noice, btw I fixed this... Ima just puted model mdx net and select it, it worked witohut github/dora xD, but pls bro can u slightly change the api structure so that there is also an input_audio and output_folder type parameter

maybe it's broken on 3.10 ldk or that model is not supported

Noice, btw I fixed this... Ima just puted model mdx net and select it, it worked witohut github/dora xD, but pls bro can u slightly change the api structure so that there is also an input_audio and output_folder type parameter

im not the mantainer but ok

maybe it's broken on 3.10 ldk or that model is not supported

Noice, btw I fixed this... Ima just puted model mdx net and select it, it worked witohut github/dora xD, but pls bro can u slightly change the api structure so that there is also an input_audio and output_folder type parameter

im not the mantainer but ok (anyways i think i should rewrite this)

:)......

maybe it's broken on 3.10 ldk or that model is not supported

Noice, btw I fixed this... Ima just puted model mdx net and select it, it worked witohut github/dora xD, but pls bro can u slightly change the api structure so that there is also an input_audio and output_folder type parameter

im going to de this on saturday

maybe it's broken on 3.10 ldk or that model is not supported

Noice, btw I fixed this... Ima just puted model mdx net and select it, it worked witohut github/dora xD, but pls bro can u slightly change the api structure so that there is also an input_audio and output_folder type parameter

im going to de this on saturday

Delete???!!!!


Updated new utils code

@kicheolkim This is the first utils code for pulling expression tables from files, let me know if you have any questions. If you don't have any objection to this pull request, I will merge it onto the master branch.

@kicheolkim We can schedule an additional meeting if you want, let me know through kakaotalk for that.


Alertmanager endpoints configured inside Prometheus disappear after a few seconds

What did you do?
Configure Prometheus alerting endpoints using AlertmanagerEndpoints.
What did you expect to see?
Expected alertmanager endpoints to be correctly listed under status Prometheus path (Runtime & Build Information).
What did you see instead? Under which circumstances?
The Alertmanager Endpoints correctly showed up for a few seconds and disappears. This happens the first time a Prometheus instance is created and every time the Alertmanager service is created/destroyed.
Environment

Kubernetes version information:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.2", GitCommit:"477efc3cbe6a7effca06bd1452fa356e2201e1ee", GitTreeState:"clean", BuildDate:"2017-04-19T20:33:11Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.2", GitCommit:"477efc3cbe6a7effca06bd1452fa356e2201e1ee", GitTreeState:"clean", BuildDate:"2017-04-19T20:22:08Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}

Kubernetes cluster kind:
kubeadm cluster

Manifests:

# Pasting only relevant manifests:
# Alertmanager Service:
apiVersion: v1
kind: Service
metadata:
  name: test-am
  namespace: monitoring
spec:
  type: NodePort
  ports:
  - name: web
    nodePort: 30903
    port: 9093
    protocol: TCP
    targetPort: web
  selector:
    alertmanager: test-am
---
# Prometheus
apiVersion: monitoring.coreos.com/v1alpha1
kind: Prometheus
metadata:
  name: test-prom
  namespace: monitoring
spec:
  serviceAccountName: prometheus
  serviceMonitorSelector:
    matchLabels:
      team: operator
  version: v1.6.1
  retention: 1h
  resources:
    requests:
      memory: 400Mi
  ruleSelector:
    matchLabels:
      role: prometheus-rules
      prometheus: test-prom
  alerting:
    alertmanagers:
      - namespace: monitoring
        name: test-am
        port: web

Prometheus Operator Logs:
I looked at prometheus operator logs and prometheus logs and didn't find anything out of the ordinary.

Yes we discovered this recently as well, it is a problem with Prometheus itself though. I created a PR there to fix it: https://github.com/prometheus/prometheus/pull/2731. We should be able to release Prometheus including this patch by today or tomorrow..

The PR on the Prometheus repo is merged so closing here.


Add link to cluster name in topic and group pages

So it's easier to navigate back and forth.

Great! This was in my todo list :) Thanks!

BTW, it would be awesome to have your todo list opened as GitHub issues so others can get involved and help out.

Yes, agreed, will do.


About Berlin Kudamm Dataset

First of all, Thank you for your wonderful work.
I have a question about the Berlin Kudamm datasets.
In your letter, Berlin Kudamm dataset was explained as follows.
" ... The total traverse span is about 3 Km, where the reference traverse contains 314 frames and the query traverse has 280 frames."
When i checked the more details regarding the Berlin Kudamm dataset on reference paper, I found out that there was a difference about Berlin Kudamm datasets.
In reference paper, Berlin Kudamm datasets was explained that the number of frames was 424 frames as follows.

I wonder why there is a difference. Can you explain why?
Thank you in advance.

Thank you for your interest in our work.
The Berlin datasets were initially introduced in this paper. The dataset is obtained by downloading 3 Km sequences from Mapillary, where the frames are parsed based on GPS data to get accurate ground-truth correspondences. The provided version of Berlin Kudamm is downloaded from Mapillary and uses 594 frames in total.
I have also enquired about it from the original source within our group for further info.
I hope this resolves your query.

Thank you for your answers.
Hmm.. That was very strange.
In 'Place Recognition with ConvNet Landmarks: Viewpoint-Robust, Condition-Robust, Training-Free',  Berlin kudamm datasets was explained as follows..
" .. We ownloaded three sequences of images that exerted significant viewpoint changes and make these available to the community along with ground truth data. For example, the images of the Berlin Kurfurstendamm ¨ (201 + 222 frames, 3 km) .. "
I am still confused. but thank you.

Hope the following further info helps:
"The Berlin dataset version we used is the same as that described in this paper (arXiv). It is a larger version of what was used in the original paper with additional images prepended to both the reference and query traverses of the latter.
The images are downloaded from Mapillary using the provided Matlab script, and imageList*.txt are the individual Mapillary keys for each image in the dataset."
imageList2.txt
Download_Sequences.m.txt

thank you!!


Updating /etc/tedge/plugins/tedge-log-plugin.toml results in multiple log_upload metadata messages being sent

Describe the bug
When saving a modification to /etc/tedge/plugins/tedge-log-plugin.toml, multiple log_upload messages are created, resulting in multiple 118 Smartrest messages being sent:
(`tedge-log-plugin.toml` saved)

[te/device/main///cmd/log_upload] {"types":[]}
[te/device/main///cmd/log_upload] {"types":[]}
[c8y/s/us] 118,
[c8y/s/us] 118,
[te/device/main///cmd/log_upload] {"types":["mosquitto","software-management"]}
[te/device/main///cmd/log_upload] {"types":["mosquitto","software-management"]}
[te/device/main///cmd/log_upload] {"types":["mosquitto","software-management"]}
[te/device/main///cmd/log_upload] {"types":["mosquitto","software-management"]}
[c8y/s/us] 118,mosquitto,software-management
[c8y/s/us] 118,mosquitto,software-management
[c8y/s/us] 118,mosquitto,software-management
[c8y/s/us] 118,mosquitto,software-management

Messages with empty "types" parameter can appear when saving the file with vim. Here's the relevant log output:
2023-11-14T16:57:49.406620439Z DEBUG Log Manager: recv Some(FsWatchEvent(Modified("/etc/tedge/plugins/tedge-log-plugin.toml")))
2023-11-14T16:57:49.40664234Z  INFO log_manager::config: Using the configuration from /etc/tedge/plugins/tedge-log-plugin.toml
2023-11-14T16:57:49.40667632Z  WARN log_manager::config: The config file /etc/tedge/plugins/tedge-log-plugin.toml does not exist or is not readable.

When this file can't be read, an empty types list is used. It would be better not to send the message in this case.
Additionally, to not produce duplicate messages, a debouncer can be used, as described in notify crate documentation.
To Reproduce

Open /etc/tedge/plugins/tedge-log-plugin.toml with vim.
Modify the file (optional, in my case duplicate messages are produced even if no modifications were introduced)
Save the file
Duplicate messages are sent to te/device/main///cmd/log_upload

Expected behavior
At most 1 log_upload metadata message should be sent.

Yes this is a by-product for the multiple inotify events that get produced in very short succession which triggers the actor messages.

After doing some more testing, editing the tedge-log-plugin.toml using vi yields multiple messages (though vim.tiny is ok).
For example:
vi /etc/tedge/plugins/tedge-log-plugin.toml

Yields the following mqtt messages:
[te/device/main///cmd/log_upload] {"types":["c8y_Command","firmware_update","software-management"]}
[te/device/main///cmd/log_upload] {"types":["c8y_Command","firmware_update","software-management"]}
[te/device/main///cmd/log_upload] {"types":["c8y_Command","firmware_update","software-management"]}
[c8y/s/us] 118,c8y_Command,firmware_update,software-management
[c8y/s/us] 118,c8y_Command,firmware_update,software-management
[c8y/s/us] 118,c8y_Command,firmware_update,software-management

vi is still preferred on some devices (e.g. it is the default in yocto as vi is included in busybox).

QA instructions
For configuration files of tedge-log-plugin and tedge-configuration-plugin, for any single change made with any editor (I tested vi, vim, neovim and nano), only one message is emitted on a given topic.
In case of tedge-configuration-plugin, an edit results in 2 messages being published, one each for 2 topics: te/device/main///cmd/config_snapshot and te/device/main///cmd/config_update, which is expected.
I haven't written a Robot Framework test for it because the editors are interactive programs, so I expect trying to spawn them and simulate inputs in a test would be tricky, and I'm not sure if worth the effort. However I added a Rust unit test to notify crate to make sure that on the API side at least, debouncing works as expected.

QA has thoroughly checked the bug and here are the results:

[ ] Test for ticket exists in the test suite.
[x] QA has tested the bug and it's not reproducable anymore


Still downloaded VC despite wrong password with mock-server

Describe the bug
I'm testing inji debug build that is pointed to our mocked API http://mock.mimoto.newlogic.dev. I add UIN<PHONE_NUMBER> and when there is password prompt, I entered a wrong password. The VC is still downloaded into the app.
To Reproduce
Steps to reproduce the behavior:

I'm using Android emulator in doing this test.
I'm at develop branch of latest commit hash dbd6bee5d24c6abd0cbb1992b4466e240fe47d85 as of logging this ticket.
Followed the steps in README to start and run
The VC is still downloaded despite wrong password

Expected behavior
The VC should not get downloaded if password is wrong.
Desktop (please complete the following information):

OS: Mac OS
Browser: chrome

Smartphone (please complete the following information):

Device: Android AVD emulator

I git pull to pick latest changes in develop branch. I redo the steps as I did before and I am still seeing the same problems. There are two:

OPT request commences despite password got inputted
VC gets downloaded despite wrong password is inputted

I pushed testmockapi branch for this.
https://drive.google.com/file/d/1UxeBNjDSvnxFMbKnwy7amCF7dZN6trIr/view?usp=sharing


Commit id fetching doesn't work if checked out to a subdirectory

Here is a repro commit.
This uses vcpkg as a submodule and the repository is checked out to the "plugin" subdirectory.
The following is printed in this action:
Running command '/usr/bin/git' with args 'submodule,status,/home/runner/work/RewardsTheater/RewardsTheater/plugin/vcpkg' in current directory '/home/runner/work/RewardsTheater/RewardsTheater'.
fatal: not a git repository (or any of the parent directories): .git

That's because this git status command is run in /home/runner/work/RewardsTheater/RewardsTheater which is indeed not a git repository—the plugin subdirectory is.
This is a regression: such an error wasn't occuring on 6fe69898af670ac05f4a8427cc5cff4fb361cee5.
With that commit, it instead runs (as expected)
Running command '/usr/bin/git' with args 'rev-parse,HEAD' in current directory '/home/runner/work/RewardsTheater/RewardsTheater/plugin/vcpkg'.

@gottagofaster236 thank you for reporting this issue! The run-vcpkg action makes the assumption that the GitHub workspace directory contains a Git repository whose vcpkg is a submodule of. You should be able to set the process.env.GITHUB_WORKSPACE to any value you want to get the behaviour you want. For example:
uses: lukka/run-vcpkg@v11
[...]
env:
  GITHUB_WORKSPACE: ${{ github.workspace }}/plugins

I hope that above suggestion works good, if it does not, I look forward to a community provided PR to find a solution for this.

Adding a "GITHUB_WORKSPACE" environment variable didn't change the current directory unfortunately

@gottagofaster236 could you enable debugging log for GH action? I wonder if the verbose log could shed some light in why the code here does not pick the environment variable set.
Another workaround would be to try setting the GITHUB_WORKSPACE at job level, that is:
[...]
env:
  GITHUB_WORKSPACE: ${{ github.workspace }}/plugins

jobs:
[...]

or probably my suggestion is totally off because the runner is always going to setup and force the GITHUB_WORKSPACE env var hence defeating this suggestion :/

Here's the run with debugging log enabled

Another workaround would be to try setting the GITHUB_WORKSPACE at job level
I think it can break other unrelated jobs so I would rather not do that

@gottagofaster236 thank you for providing the verbose log, though I can't see why the suggested workaround does not work.
Probably you may workaround it by putting the vcpkg commit id in the vcpkg.json file, although not ideal.
Regarding fixing run-vcpkg to support such scenario, I think it would suffice to change the isVcpkgSubmodule function to use as cwd the fullVcpkgPath parent directory (i.e. one level up only), add a test to cover this scenario and hopefully nothing else gets regressed (which should be spotted by existing tests).
I look forward to see a community provided PR to fix this issue. Of course I'll try this as well but I am not making any promise.


teensyduino: add missing dependencies for teensy-loader

Motivation for this change
This is a fixed version of https://github.com/NixOS/nixpkgs/pull/75560 that adds the missing package arguments (cairo and udev) at the top of the file.
Things done

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

[X] NixOS
[ ] macOS
[ ] other Linux distributions

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

Sorry about forgetting that, I've added teensyduino: to the commit message now.


Looking for clarification on the MSBuild.Obfuscar nuget project

Can anyone chime in and explain the purpose of the MSBuild.Obfuscar nuget package and how it is intended to be used?

That's not a package falling under this project, but maintained by somebody else.
Therefore, no question about it will be answered here.


How osbs-client reads config and creates builds

osbs-client portion of https://github.com/sosiouxme/atomic-reactor/issues/1

Initial creation of the build
koji-containerbuild-builder imports the osbs client in /usr/lib/koji-builder-plugins/builder_containerbuild.py and uses it to create a container build. It creates an osbs.conf.Configuration() as conf
Configuration is created with its defaults:
https://github.com/sosiouxme/osbs-client/blob/9f8ea0530ed263f227a8d93b82c22867b0d5e8d8/osbs/conf.py#L39-L55
https://github.com/sosiouxme/osbs-client/blob/9f8ea0530ed263f227a8d93b82c22867b0d5e8d8/osbs/constants.py#L17-L18
Meaning /etc/osbs.conf which (in the environment of kojid) looks like:
[general]
build_json_dir = /usr/share/osbs/
verbose = 1
openshift_required_version = 1.0.6

[platform:x86_64]
architecture = amd64
enable_v1 = true

[default]
authoritative_registry = registry.fedoraproject.org
build_image = local_buildroot:latest
build_type = prod
distribution_scope = public
koji_certs_secret = kojisecret
koji_hub = https://<IP_ADDRESS>:8083/kojihub
koji_root = https://<IP_ADDRESS>:8083/kojifiles
namespace = osbs
openshift_url = https://<IP_ADDRESS>:8443/
registry_api_versions = v1,v2
registry_secret = v2-registry-dockercfg
registry_uri = https://<IP_ADDRESS>:5000/v2
source_registry_uri = http://registry.fedoraproject.org
sources_command = rhpkg sources
use_auth = true
use_kerberos = false
vendor = Red Hat, Inc.
verify_ssl = false
client_config_secret = client-config-secret
reactor_config_map = reactor-config-map
can_orchestrate = true
username = osbs
password = osbs

[scratch]
... similar ...

This is used to create osbs as osbs.api.OSBS(conf, conf):
https://github.com/sosiouxme/osbs-client/blob/9f8ea0530ed263f227a8d93b82c22867b0d5e8d8/osbs/api.py#L89-L94
... which essentially just copies config values from the [default] section over to an OpenShift() instance:
https://github.com/sosiouxme/osbs-client/blob/9f8ea0530ed263f227a8d93b82c22867b0d5e8d8/osbs/core.py#L49-L51
It then uses that to call osbs.create_orchestrator_build(orchestrator_create_build_args).
https://github.com/sosiouxme/osbs-client/blob/9f8ea0530ed263f227a8d93b82c22867b0d5e8d8/osbs/api.py#L763-L774
Build args look like:
{'architecture': None,
 'component': 'docker-hello-world',
 'git_branch': 'osbs-box-demo',
 'git_ref': 'origin/osbs-box-demo',
 'git_uri': 'git://github.com/sosiouxme/docker-hello-world',
 'koji_task_id': 4,
 'platforms': ['x86_64'],
 'scratch': False,
 'target': 'candidate',
 'user': 'kojiadmin',
 'yum_repourls': []
}

osbs.create_orchestrator_build sets defaults for conf templates based on constants:
https://github.com/sosiouxme/osbs-client/blob/9f8ea0530ed263f227a8d93b82c22867b0d5e8d8/osbs/api.py#L792-L798
https://github.com/sosiouxme/osbs-client/blob/9f8ea0530ed263f227a8d93b82c22867b0d5e8d8/osbs/constants.py#L21-L29
... and creates a build:
https://github.com/sosiouxme/osbs-client/blob/9f8ea0530ed263f227a8d93b82c22867b0d5e8d8/osbs/api.py#L535-L549
This creates a BuildRequestV2:
https://github.com/sosiouxme/osbs-client/blob/9f8ea0530ed263f227a8d93b82c22867b0d5e8d8/osbs/build/build_requestv2.py#L25-L29
which creates a BuildUserParams to store as user_params:
https://github.com/sosiouxme/osbs-client/blob/9f8ea0530ed263f227a8d93b82c22867b0d5e8d8/osbs/build/user_params.py#L24
https://github.com/sosiouxme/osbs-client/blob/9f8ea0530ed263f227a8d93b82c22867b0d5e8d8/osbs/build/spec.py#L109
A bunch of params are set on this and then it's passed on to be rendered into an OpenShift BuildConfig json:
https://github.com/sosiouxme/osbs-client/blob/9f8ea0530ed263f227a8d93b82c22867b0d5e8d8/osbs/api.py#L425-L426
Which is either created or updated in OpenShift, along with attendant ImageStream and triggers. It results in:
apiVersion: v1
kind: BuildConfig
metadata:
  creationTimestamp: 2018-04-25T18:29:51Z
  labels:
    git-branch: osbs-box-demo
    git-repo-name: docker-hello-world
    is_autorebuild: "true"
    koji-task-id: "6"
  name: docker-hello-world-osbs-box-demo-f7644
  namespace: osbs
  resourceVersion: "101482"
  selfLink: /oapi/v1/namespaces/osbs/buildconfigs/docker-hello-world-osbs-box-demo-f7644
  uid: a4786c3a-48b6-11e8-afa9-54e1addf5a42
spec:
  nodeSelector: null
  output:
    to:
      kind: DockerImage
      name: kojiadmin/docker-hello-world:candidate-32571-20180425182951
  postCommit: {}
  resources: {}
  runPolicy: Serial
  source:
    git:
      ref: origin/osbs-box-demo
      uri: git://github.com/sosiouxme/docker-hello-world
    type: Git
  strategy:
    customStrategy:
      env:
      - name: REACTOR_CONFIG
        valueFrom:
          configMapKeyRef:
            key: config.yaml
            name: reactor-config-map
      - name: USER_PARAMS
        value: '{"arrangement_version": 6, "base_image": "fedora:latest", "build_image":
          "local_buildroot:latest", "build_json_dir": "/usr/share/osbs/", "build_type":
          "orchestrator", "component": "docker-hello-world", "customize_conf": "orchestrator_customize.json",
          "git_branch": "osbs-box-demo", "git_ref": "origin/osbs-box-demo", "git_uri":
          "git://github.com/sosiouxme/docker-hello-world", "image_tag": "kojiadmin/docker-hello-world:candidate-32571-20180425182951",
          "imagestream_name": "lucarval-docker-hello-world", "koji_target": "candidate",
          "koji_task_id": 6, "name": "docker-hello-world-osbs-box-demo-f7644", "platforms":
          ["x86_64"], "reactor_config_map": "reactor-config-map", "trigger_imagestreamtag":
          "fedora:latest", "user": "kojiadmin"}'
      exposeDockerSocket: true
      from:
        kind: DockerImage
        name: local_buildroot:latest
      secrets:
      - mountPath: /var/run/secrets/atomic-reactor/client-config-secret
        secretSource:
          name: client-config-secret
      - mountPath: /var/run/secrets/atomic-reactor/kojisecret
        secretSource:
          name: kojisecret
      - mountPath: /var/run/secrets/atomic-reactor/v2-registry-dockercfg
        secretSource:
          name: v2-registry-dockercfg
    type: Custom
  triggers: []
status:
  lastVersion: 1

This results in the build pod running atomic-reactor.

Within the build pod, atomic_reactor creates an OSBS with Configuration(build_json_dir="/usr/share/osbs")


Opening a new file no longer opens into the focussed column

Does this issue occur when all extensions are disabled?: Yes

Version: 1.84.2 (Universal)
Commit: 1a5daa3a0231a0fbba4f14db7ec463cf99d7768e
Date: 2023-11-09T10:52:33.687Z (3 wks ago)
Electron: 25.9.2
ElectronBuildId: 24603566
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: <IP_ADDRESS>-electron.0
OS: Darwin arm64 21.6.0
Steps to Reproduce:

Open VSCode with 'Two columns' editor layout
Focus your cursor into a file on the right
Open a new file - either click in the side bar, or shortcut to open

See that the new file is opened in the left window, not the focussed window.
Until recently, files would open in the focussed pane/column by default

/gifPlease

Thanks for reporting this issue! Unfortunately, it's hard for us to understand what issue you're seeing. Please help us out by providing a screen recording showing exactly what isn't working as expected. While we can work with most standard formats, .gif files are preferred as they are displayed inline on GitHub. You may find https://gifcap.dev helpful as a browser-based gif recording tool.
If the issue depends on keyboard input, you can help us by enabling screencast mode for the recording (Developer: Toggle Screencast Mode in the command palette). Lastly, please attach this file via the GitHub web interface as emailed responses will strip files out from the issue.
Happy coding!

In making the video I did the repro steps in a new workspace. It did not happen in the new workspace.
After resetting my problematic workspace to Single layout, then back to Two column layout, the issue was gone.