Stop Job will first make Task become running then stopped

Organization Name:

Short summary about the issue/question:
Stop Job will first make Task become running then stopped.
The running maybe caused by Task does not have Stopping state, so backend completing state is translated to running.
We would better add a Stopping state for Task, and completing state should not change orignal stopping state.
Brief what process you are following:

How to reproduce it:

OpenPAI Environment:

OpenPAI version:
Cloud provider or hardware configuration:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Hardware (e.g. core number, memory size, storage size, GPU type etc.):
Others:

Anything else we need to know:

I think the current display is more straightforward. The job is stopping but some task is not stopped yet. And the user could find out which task is still stucked.
I think a better solution is that launcher could provide a per-task stopping state instead of a fake state guessed by web portal

It is not fake, because if launcher is down, it does not have chance to update the state to be stopping, but the execution type can be modified to be stopped by restserver. So only restserver know it is stopping by check the execution type from APIServer.

Note both launcher and restserver are clients of APIServer. restserver is not directly a client of launcher.

So, let's treat the task as Stopping if and only if state==AttemptDeleting and exitCode === -220


Enable pg-wire-protocol in example

Description
Due to #546 , pg-wire is disable in default. However, psql is a great interface for user to interact with the engine directly. Let's enable it in the example.

Thanks @grieve54706


Change to nETH

Coverage decreased (-77.6%) to 22.036% when pulling c8338196c9e56ed00ad48775ad3a0159da657208 on metagabbar:feat/fixdfk into 4ee2bed99340a3d38578e46044d41325d12cc674 on synapsecns:dev.


Missing license

The code in the repository doesn't seem to have a license. That effectively means all rights reserved and that using and contributing to the code will be... difficult.
You can checkout GitHub's licensing help page help you understand how to license your code :-)
Thanks in advance.

Hi @oizo, thanks for this. Apologies for the very long delay in getting back to you, I have been tied up with a lot of other things off GitHub (unfortunately!)
I have just added a license file - decided that the MIT license was the most appropriate.
Please let me know if you end up using the code and if you need any help with it.
Thanks


Add recipe that uses the service worker as a notification dispatcher to multiple tabs

I'd need help to choose the name :smile:

"Notification Dispatcher" ?

Wow, this is simple and wonderful! :)
I have two suggestions:

This currently doesn't work in Chrome, so we may want to add a note about that in the demo or in the README

It would be awesome to show "feedback" after they click the submit button, like "Now check your other tabs to see the message"

I might also suggest using a <form> tag so the user can hit the ENTER key to submit the message.

@marco-c I really like it, could be a good use case for apps (and +1 on David's feedback).


Foundation is undefined

Foundation is undefined.
import Foundation from 'react-foundation'
console.log(Foundation)
=> undefined

What did you do?
I installed react-foundation using npm  install react-foundation --save and confirmed it is added to package json. And node_modules.
"dependencies": {
    "react": "^16.7.0",
    "react-dom": "^16.7.0",
    "react-foundation": "^0.9.6",
    "react-scripts": "2.1.3"
  },

Logging react in the same way returns a function.
What did you expect to happen?
I expected that would be able to add a something like this and have it work.
<div className="button-basics-example">
  <Button color={Colors.SUCCESS}>Save</Button>
</div>

If I am using it wrong I apologize but as I perceive it, the docs suggest this this how it should be used.
What actually happened?
The above component renders without any styles.
What version of this module are you using?
0.9.6
I am using create-react-app and react 16.7. Please advise what I could be doing incorrectly.

Have you tried
import {Button} from 'foundation';

As you can see in https://github.com/digiaonline/react-foundation/blob/master/src/index.js, react-foundation exports each component separately, so instead of import Foundation from 'react-foundation' you should import the components you need, e.g.:
import {
  Breakpoints,
  Colors,
  Sizes,
  Grid,
  Cell,
  Link,
  ButtonGroup,
} from 'react-foundation';


Issue 97 enable quickumls span groups

This upgrades medspacy to use QuickUMLS 2.6 which now optionally supports span groups and therefore overlapping spans.  Also added unit tests to ensure that this is working as expected.

Oops.  This was meant to be a PR into develop.  Not into master.


Workbook search with filtering failure on older Tableau server versions

Testing a migration from Tableau Server Version: 2020.2.4 (20202.20.0721.1350) 64-bit Windows to newer versions 2021.2.2 (20212.21.0818.1843) 64-bit Linux & 2021.3.1 (20213.21.0917.1006) 64-bit Linux showed a strange behavior:
When querying the API searching for notebooks through their names on the older version, the requests fail with the 0.16.0 version of tableauserverclient.
What is strange, is that searching for the containing project's workbooks, I could still see that one of the, does matches (python == string comparison) the target string.
The query works fin on the newer versions of the server.
Querying the older server with the 0.10 version of tableauserverclient works...
Versions
New environment:

failing Tableau Server version 2020.2.4 (20202.20.0721.1350) 64-bit Windows
Python 3.9
TSC 0.16

it works for:

2021.2.2 (20212.21.0818.1843) 64-bit Linux) & 2021.3.1 (20213.21.0917.1006) 64-bit Linux
Python 3.9
TSC 0.16

And also works for:

Tableau Server version 2020.2.4 (20202.20.0721.1350) 64-bit Windows
Python 3.7
TSC 0.10

To Reproduce
request_options = RequestOptions()
request_options.filter.add(Filter(RequestOptions.Field.ProjectName, RequestOptions.Operator.Equals, project_name))
request_options.filter.add(Filter(RequestOptions.Field.Name, RequestOptions.Operator.Equals, workbook_name))
matching_workbooks, pagination_info = self._tableau.workbooks.get(request_options)
if (pagination_info.total_available != 1):
            self._logger.error(f"Search failed ({pagination_info.total_available} matches)")

You can use the following snippet to see that the workbook is actually there (one of the lines will have a True):
request_options = RequestOptions()
request_options.filter.add(Filter(RequestOptions.Field.ProjectName, RequestOptions.Operator.Equals, project_name))
matching_workbooks, pagination_info = self._tableau.workbooks.get(request_options)
self._logger.warning(f"Failed to correctly identify {workbook_name} in project {project_name} containing:")
for w in matching_workbooks:
    self._logger.warning(f"{w.name} ({w.name == workbook_name})")

Results
On the older version I fail to get the workbook I am searching for.

Very odd, I'll have to look into this.

I don't think it's worth investigating this more closely, so it can just join the list of reasons our handling of server version could be better/


PowerToysRun add custom apps support

Description of the new feature / enhancement
Let user add his/her own apps to be able to receive the typed in commands
Scenario when this would be used?
I have wolfram alpha windows app, I want it to be opened when I want the calculator equation pass into it.
Supporting information
Wolfram alpha (windows app) has also a search field to type in math formulas or equations. I don't know if apps can be opened with a searched text (like browser url search opens browser with searched text typed in)

Thank you. We will consider your feedback, but currently, such changes are not planned.


Refactor Chapters 20 & 21 into a Comprehensive Modern Search Module

Module can have more than one notebook. The following should have a 101 or 102 mention

Dense Vectors, Vector Search systems like Qdrant, Weaviate
BM25
Sparse Vectors e.g. SPLADE++

Following should have a 100 level introduction:

CoLBERT
MRL
Binary Quantization

Pick this up after #38

Closed in favour of #43


Update to react-markdown 5 and make direct dependency

Codecov Report

Merging #846 (420af9f) into master (c24c67d) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #846   +/-   ##
=======================================
  Coverage   95.90%   95.90%
=======================================
  Files         119      119
  Lines         854      854
  Branches      237      237
=======================================
  Hits          819      819
  Misses         33       33
  Partials        2        2

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 c24c67d...420af9f. Read the comment docs.


high load due to massive updates on DEPENDENCYMETRICS and VULNERABILITY

dependencymetrics receives updates one on each line per hour statistically:
`UPDATE "DEPENDENCYMETRICS" SET "LAST_OCCURRENCE"=$1 WHERE "ID"=$2
select relname,n_tup_ins,n_tup_upd,n_live_tup,autovacuum_count from pg_stat_user_tables order by n_tup_upd/n_live_tup desc;
-[ RECORD 1 ]----+-----------------------------------
relname          | DEPENDENCYMETRICS
n_tup_ins       | 186982
n_tup_upd      | 632665605
n_live_tup       | 331487
autovacuum_count | 11352`
An impressing autovacuum_count.
Please reduce the amount of updates. The Database is a persistence layer and not a logfile.

Thousands of single-column updates on VULNERABILITY with the same amount on different columns.
Please consolidate them to multi-column updates

hello, thanks for opening the issue, but i feel this fits better in the original project: https://github.com/DependencyTrack/dependency-track/issues
This is manly a helmcharts with some tweaks, but no tweaks in the "original" code.

Done: https://github.com/DependencyTrack/dependency-track/issues/4036

close


Is there any way so that I can make it portrait instead of landscape?

Basically, I want to have segmentation in a portrait mode and with front camera.

Please check the README file. There is a portrait-friendly version (not by me, though).


Adding Cyber network to faucet

Adding Cyber Network to faucet upon request from growth team

#392  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tarunkhasnavis and the rest of your teammates on  Graphite


fixes for yarn v2

Codecov Report
Base: 100.00% // Head: 100.00% // No change to project coverage :thumbsup:

Coverage data is based on head (54ec946) compared to base (bec77f6).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #30   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files          213       213
  Lines         2204      2204
  Branches       235       235
=========================================
  Hits          2204      2204

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Nuxt 2 - using a store in a plugin outputs an error in console

Reproduction
https://github.com/guillaumeduliscouet/example-nuxt-2
It is a fork of the official exemple with only this added as a nuxt plugin:
export default async ({ $pinia }) => {
    useUserStore($pinia).logout()
}

Steps to reproduce the behavior

Open the app
Open the vue devtools
Wait 1 minute
See the error

Expected behavior
Using a store in a plugin should be possible (right ?) without breaking the devtools
Actual behavior
Everything seems to work in the devtools, but:

the message "user" store installed does not appear
after 1 minute we have an error message:

Here is what I have if I remove the store usage in the plugin:

Additional information
I imagine that the plugin gets called before the Vue app creation ? Seems like pinia is trying to install it's devtools plugin with app: null

The problem is the devtools plugin requires the app to exist in order to be used. Unsure if this is something that should be fixed here or in vue-devtools or if it is actually fixable as nuxt plugins might be executed too early for it to work.

It's been a while, but I'm facing the same issue while migrating from vuex to pinia. Is there no way to use pinia inside nuxt plugin then? Any advise about how to manage nuxt plugin logic when migrating vuex to pinia?

It should work, this error is just about devtools. Normally, Nuxt plugins added in modules are installed before user plugins.
The only thing I can recommend is using nuxt-bridge with nuxt 2 so newer versions of @pinia/nuxt can be used.
Other than that, any help in fixes or docs are very welcome as I really don't have the bandwidth to give this more time.


[cunit] Fix Linux library name and export CMake

Describe the pull request

What does your PR fix?
Fixes #26027, fix Linux library name and export CMake.

Thanks!


PluginlibFactory: The plugin for class 'rviz/Orbit' failed to load.

hi，
I cannot run the rviz after I set up the turtlebot3. I am sure that the rviz runs well few days ago.
[ERROR] [1539135902.578579764]: PluginlibFactory: The plugin for class 'rviz/Orbit' failed to load.  Error: Failed to load library /opt/ros/kinetic/lib/librviz_default_plugin.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = /opt/ros/kinetic/lib/liburdf.so: undefinedsymbol:ZN17rosconsole_bridge26RegisterOutputHandlerProxyD1Ev)

I have solve this problem.
here have been some changes in ROS recently, try:
$ sudo apt update
$ sudo apt upgrade


chore: import repository https://github.com/jenkins-x-sampleproject/nodehttp1.git

this commit will trigger a pipeline to generate the CI/CD configuration which will create a second commit on this Pull Request before it auto merges

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign
You can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jxbotaccount: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

verify
1a861dee5374df5af32aeb51ef1971a97c0e9ad3
link
/test verify

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.


Need Batch service for CGA and other services

Assembly and CGA batch submissions have been requested by several users.  Probably other services could use them as well.

I guess it will be an CLI option for batch submission if we choose to support this feature? @olsonanl @mshukla1

We should try to address CLI functions and batch submission to all services as
One deliverable in one of the future releases (after March), l instead of trying to
do them one service at a time.
-Maulik
On Feb 26, 2019, at 8:02 AM, Dawen Xie <notifications<EMAIL_ADDRESS>wrote:
I guess it will be an CLI option for batch submission if we choose to support this feature? @olsonanlhttps://github.com/olsonanl @mshukla1https://github.com/mshukla1
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/PATRIC3/patric3_website/issues/2211#issuecomment-467449550, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABLd7weILbmMcQGDM7kvZ3hIC8RiZJq_ks5vRT6FgaJpZM4bFrml.


Remove attributes that are not required for SIR anymore

Birth place, phone number, others?
Make birthday optional for #24? Ask day and month only?

Also restore code that checks that template has all its attributes available


coco_interest_class.txt

hi, thanks for your great job. When I used tfoda for vehicle detection and counting, I encounted some problems that maybe need your help. I want to how to get the file 'coco.classes.txt' and 'coco_interest.class.txt'.

By the way, can I understand 'coco_interest.classes.txt' that contains classes of interest for specific task?

coco_interest.classes.txt contains the list of objects you're interested in detecting. If you want to identify all the objects your detector can detect then CLASSES_PATH and CLASSES_OF_INTEREST_PATH would point to the same file/list.

Thanks. When I used mask rcnn model for vehicle detection, there is no any box result presented in the resulting video. What is the problem and how can I do to get desired detection result?  Also, I have try to use faster rcnn model to detect vehicle, but it seems poor performance than that of yolo model. It is unreasonable? In terms of performance, faster rcnn should have been much better than yolo. Therefore, could you please give me some help like parameter setting or some certain operations for better performance on vehicle?
Thanks a lot in advance!
                            cmlin

<EMAIL_ADDRESS>

    Signature is customized by Netease Mail Master

On 08/17/2019 22:58, Nicholas Kajoh wrote: coco_interest.classes.txt contains the list of objects you're interested in detecting. If you want to identify all the objects your detector can detect then CLASSES_PATH and CLASSES_OF_INTEREST_PATH would point to the same file/list.
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.
[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/nicholaskajoh/Vehicle-Counting/issues/23?email_source=notifications\u0026email_token=AMWSBR25QOPNIF2SEDI3UJDQFAGXPA5CNFSM4IMHHQ7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4QNFTQ#issuecomment-522244814",
"url": "https://github.com/nicholaskajoh/Vehicle-Counting/issues/23?email_source=notifications\u0026email_token=AMWSBR25QOPNIF2SEDI3UJDQFAGXPA5CNFSM4IMHHQ7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4QNFTQ#issuecomment-522244814",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]

I used Faster RCNN Inception v2 trained on COCO and the results were quite good. Although YOLO has generally performed better on my test data.
If these pre-trained models are not doing well on your data, you might want to consider training your own custom model.

Thanks. The results of yolo, faster rcnn and mask rcnn are as follows from top to bottom, respectively. You know, the result of yolo is relatively best. I don't know where is the problem that leads to it: many false positive bbox predictions are generated when I used faster rcnn model, and there is no any bbox presented when I used mask rcnn. Need I do some fune-tuning or modifications, but I don't know how to start? In your opinion, what can I do next?

Also, as you mentioned above, what is my custom model you mean? You know, in the area of object detection, rcnn model and yolo model are mainstream option. It is not possible that I design a new model with regards to vehicle detection application in a short time. So, I have to try to experiment these model by transfer learning, and expect to get desired result as good as possible.
Thanks for your kindness, and I am looking forward to your constructive advice.

I don't mean you should create your own neural net architecture like YOLO or RCNN. I mean you should train a YOLO or RCNN model with custom data which is similar to the objects what you want to detect so as to obtain more accurate results.
In terms of getting the best out of these pretrained models, I recommend you record your video at a high enough frame rate (30 FPS and up). Vehicles driving along the road are usually travelling at high speeds hence low frame rate captures tend to contain a lot of blurred images. You might not notice it when watching the video because your eyes/brain smoothen(s) it out. Blurred images can be problematic for object detectors. If you capture at a high frame rate, you can avoid this to a reasonable degree.

Thanks a lot. But I still have some confusions that maybe you can help me.

I want to know how to calculate the AP or mAP value in your code so that I could evaluate the performance of my model. In orther word, where does the code of AP calculation locate?

I don't find 'log' file when I run out my own data and want to check the detection result.

I want to know how to count the number of vehicle in your code, how can I find the process of calculation in your code. Also, I find that the counting number in the left-top of resulting video cannot match to the top number of predicted bbox of vehicle when it presents in the frame immediately. So how can I deal with thie problems.

So sorry for my such many problems due to I am a beginner. I am grateful for your help and kindness, and am looking forward to your letter. Thanks in advance.
Sincerely.
Chunmian Lin
-----原始邮件-----
发件人:"Nicholas Kajoh"<EMAIL_ADDRESS>发送时间:2019-08-18 21:48:52 (星期日)
收件人: nicholaskajoh/Vehicle-Counting<EMAIL_ADDRESS>抄送: ChunmianLin<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>主题: Re: [nicholaskajoh/Vehicle-Counting] coco_interest_class.txt (#23)
I don't mean you should create your own neural net architecture like YOLO or RCNN. I mean you should train a YOLO or RCNN model with custom data which is similar to the objects what you want to detect so as to obtain more accurate results.
In terms of getting the best out of these pretrained models, I recommend you record your video at a high enough frame rate (30 FPS and up). Vehicles driving along the road are usually travelling at high speeds hence low frame rate captures tend to contain a lot of blurred images. You might not notice it when watching the video because your eyes/brain smoothen(s) it out. Blurred images can be problematic for object detectors. If you capture at a high frame rate, you can avoid this to a reasonable degree.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

AP or mAP are concerned with object detection models and not the vehicle counting system (VCS) directly. There are different ways to obtain these metrics depending on the object detection model/framework you're using.

If you run the VCS with the record argument (--record), a log file (log.txt) is created in the root folder of the project. There's ongoing work to overhaul logging so this will change very soon.

After instantiating the VCS (vehicle_counter = VehicleCounter(*params)), you can call the get_count() method to get the current vehicle count. Counting can be done in two ways: a) via a counting line (i.e when a vehicle crosses the line, it's counted) and b) without a counting line (i.e when a vehicle exits the frame, it's counted).

Thanks.  I will check  these problems next.
                            cmlin

<EMAIL_ADDRESS>

    Signature is customized by Netease Mail Master

On 08/20/2019 01:22, Nicholas Kajoh wrote:
AP or mAP are concerned with object detection models and not the vehicle counting system (VCS) directly. There are different ways to obtain these metrics depending on the object detection model/framework you're using.
If you run the VCS with the record argument (--record), a log file (log.txt) is created in the root folder of the project. There's ongoing work to overhaul logging so this will change very soon.
After instantiating the VCS (vehicle_counter = VehicleCounter(*params)), you can call the get_count() method to get the current vehicle count. Counting can be done in two ways: a) via a counting line (i.e when a vehicle crosses the line, it's counted) and b) without a counting line (i.e when a vehicle exits the frame, it's counted).
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or mute the thread.
[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/nicholaskajoh/Vehicle-Counting/issues/23?email_source=notifications\u0026email_token=AMWSBRZWWSPHEJ3KMW75ZWTQFLJERA5CNFSM4IMHHQ7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4TV4WA#issuecomment-522673752",
"url": "https://github.com/nicholaskajoh/Vehicle-Counting/issues/23?email_source=notifications\u0026email_token=AMWSBRZWWSPHEJ3KMW75ZWTQFLJERA5CNFSM4IMHHQ7KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4TV4WA#issuecomment-522673752",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]


Fix search bar

fix search bar go off screen when focused on FLEXFileBrowserTableViewController.m & FLEXSystemLogTableViewController.m
.before.

.after.

Do you have more detailed steps to reproduce this? I'm unable to reproduce (tried on iOS 11.4, both on device and in the simulator of an iPhone 7). Ideally we would not need to do this kind of manual intervention and UISearchController would handle things correctly itself. I'm open to a workaround if there's not a better alternative.

Closing for lack of activity and inability to reproduce the bug at this time. We can reopen this if @lavenntia responds with more information (iOS version, etc)


Supervised objectness score from MCG used for modulation of proposal features

It seems that MCG objectness scores are used to modulate proposal features: https://github.com/shenyunhang/DRN-WSOD-pytorch/blob/DRN-WSOD/projects/WSL/wsl/modeling/roi_heads/roi_heads_wsddn.py#L286
From what I understand, MCG proposals objectness score is trained using strong supervision.
Do you have results without this modulation?

Without this modulation, I'm getting before test-time aug ~66% corloc on OICRREG WSR18 config and ~64% on OICRREG WSR50 config.

This part mainly follows WSDDN and its official implemention in MATLAB.
In our experiments, MCG scores have similar gains (maybe smaller) as EdgeBox scores (table 1 in WSDDN), so we keep it for consistency framework.

wetectron does not have this multiplication (and I also didn't use it when working on ContextLocNet), so I think this is a bit confusing when not mentioned. I'm not sure, but I think OICR also didn't use it. But thanks for explaining!
Using EdgeBox score to compute objectness for given proposals is interesting because it's not learned.


PythonVersions audit: test mixed runtime dependencies

[X] Have you followed the guidelines in our Contributing document?
[X] Have you checked to ensure there aren't other open Pull Requests for the same change?
[X] Have you added an explanation of what your changes do and why you'd like us to include them?
[X] Have you written new tests for your changes? Here's an example.

[ ] Have you successfully run brew tests with your changes locally?

I have been updating a formula in a 3rd-party tap that currently has a runtime dependency on<EMAIL_ADDRESS>(no :build or :test annotations), and I'd like to update it to depend on multiple python versions in order to build bindings against multiple versions but still depend on one version as a runtime dependency, like the following:
  depends_on<EMAIL_ADDRESS>=> [:build, :test]
  depends_on<EMAIL_ADDRESS>
The PythonVersions  audit currently complains about this:
C: [Correctable] FormulaAudit/PythonVersions: References to<EMAIL_ADDRESS>should match the specified python dependency<EMAIL_ADDRESS>  depends_on<EMAIL_ADDRESS>=> [:build, :test]
             ^^^^^^^^^^^^^

If there isn't a problem with depending on a mix of runtime and non-runtime versions of python, I'd like to update the audit to allow this. I've opened this as a draft PR with a failing test that should pass once the audit is updated. Please let me know if this obviously won't be accepted before I spend time to try to update the audit.

I had a old PR on this where general opinion was against: #16119

it could be up for discussion on whether some checks could be made core only.

I'd be fine with this 👍🏻

I've thought about it, and I'll switch our formulae

I had an old PR on this where general opinion was against: #16119

thanks for the reference to the prior discussion here. In the short-term, I'll just use [:build, :test] for all python versions in our tap.

it could be up for discussion on whether some checks could be made core only.

I'd be fine with this 👍🏻

thanks for the feedback. For now I will close this since I'm not planning to work on it immediately, but I will come back to it if it seems useful to our users


Eagerly cached TypedArray objects cause circular dependency for bundler modes

Describe the Bug
Descriptions like cachedInt32Memory0 = new Int32Array(wasm.memory.buffer); creates a circular dependency between the bg module and the instantiation wrapper created by bundlers, because the wrapper needs to import the bg module to pass the exports to WebAssembly.instantiate's second argument (importObject), while this depends on wasm.memory which is initialized after the instantiation is complete.
Steps to Reproduce
I haven't isolated the reproduction yet, because it seems to depend on the use of certain ArrayBuffer related function calls.
I'm using https://github.com/Menci/vite-plugin-wasm, but at a quick glance Webpack should be doing the implementation in basically the same manner.
Errors
Uncaught ReferenceError: can't access lexical declaration 'memory' before initialization
    <anonymous> http://localhost:3000/rust/pkg/wasm_bg.js?t=1655889863398:318

Proposed modification
Just make it lazy.
diff --git a/crates/cli-support/src/js/mod.rs b/crates/cli-support/src/js/mod.rs
index 8ca6a854..86dda79c 100644
--- a/crates/cli-support/src/js/mod.rs
+++ b/crates/cli-support/src/js/mod.rs
@@ -607,10 +607,9 @@ impl<'a> Context<'a> {
             for kind in views {
                 writeln!(
                     out,
-                    "cached{kind}Memory{num} = new {kind}Array(wasm.{mem}.buffer);",
+                    "cached{kind}Memory{num} = new {kind}Array();",
                     kind = kind,
                     num = num,
-                    mem = mem,
                 )
                 .unwrap()
             }

In my case (running in Node.js 16, importing the wasm-bindgen module as an ES module, having changed the wasm-pack-generated package.json to have "type": "module" and a "main" attribute) the problem manifested as:
ReferenceError: memory is not defined

(just adding that comment to make this issue easier for others to find than it was for me! 😊)


forFeature method not accepting EntitySchema as valid type for entities argument

Describe the bug
First of all, awesome project, keep the great work! :)
I´m trying to use to use MikroORM in NestJS setup as a monorepo (so no glob file patterns for me), and trying to use the autoLoadEntities option to be able declare the entities in each module via forFeature.
The problem is that I would like to use EntitySchema declaration instead of using decorators, and the type in the forFeature method doesn't allow them.
I've checked that, if I ignore the typescript error, everything works fine, so my guess is that it's just an oversight of not also declaring EntitySchema as a valid type there.
Stack trace
Type 'EntitySchema<Account, undefined>' is not assignable to type 'EntityName<AnyEntity<any>>'.

To Reproduce
Steps to reproduce the behavior:

Instantiate MikroOrmModule with autoLoadEntities option enabled.
Declare in the forFeature method the EntitySchema you want to use.
Typescript explodes
Ignore TS error
Everything works as expected

Expected behavior
forFeature method to allow for EntitySchema type.
Versions

Dependency
Version

node
16.15.1

typescript
4.7.4

mikro-orm
5.2.0

mongodb-driver
5.2.0

That's weird. The EntityName type comes from the ORM and explicitly has the EntitySchema in union:
https://github.com/mikro-orm/mikro-orm/blob/master/packages/core/src/typings.ts#L148
Aparently its caused by the generic type value.


Update Slack Link to signup page

Closes: N/A
What's Changed
Simple signup link documentation change.
TODO

[ ] Explanation of Change(s)

I do not think the current link makes sense. The user will not have anything to do from that link, since there is a chicken & egg problem.

Suggested the same call to action on all three spots:

...join the #nautobot channel on Network to Code's Slack community...

I think the link should still be on "Network to Code's Slack community" and not "#nautobot" because they have to join the community first before joining the channel. Thoughts?


Add set operations to ASM

Add a group to the ASM called Set.
Set encoding in the protocol is:
element words element length next element words next element length total set length.
[
  elem_0_word_0,
  ...elem_0_word_I,
  elem_0_len,
  ...elem_N_word_0,
  ...elem_N_word_J,
  elem_N_len,
  set_len
]

Contains:
  description: Returns true if the set contains this key.
  stack_in: [encoded_set, key_0, ...key_N, key_len]
  stack_out: [bool]

Difference:
  description: Returns the difference. Values in lhs but not rhs as a new set.
  stack_in: [encoded_set_lhs, encoded_set_rhs]
  stack_out: [encoded_set_difference]

SymmetricDifference:
  description: Returns the symmetric difference. Values in lhs or  rhs but not both as a new set.
  stack_in: [encoded_set_lhs, encoded_set_rhs]
  stack_out: [encoded_set_symmetric_difference]

Intersection:
  description: Returns the intersection of the two sets as a new set.
  stack_in: [encoded_set_lhs, encoded_set_rhs]
  stack_out: [encoded_set_intersection]

Union:
  description: Returns the union of the two sets as a new set.
  stack_in: [encoded_set_lhs, encoded_set_rhs]
  stack_out: [encoded_set_union]

Eq:
  description: Returns true if the two sets are equal. Note order doesn't matter.
  stack_in: [encoded_set_lhs, encoded_set_rhs]
  stack_out: [bool]

Disjoint:
  description: Returns true if the two sets have no elements in common.
  stack_in: [encoded_set_lhs, encoded_set_rhs]
  stack_out: [bool]

Subset:
  description: Returns true if the lhs set is a subset of the rhs set.
  stack_in: [encoded_set_lhs, encoded_set_rhs]
  stack_out: [bool]

Superset:
  description: Returns true if the lhs set is a superset of the rhs set.
  stack_in: [encoded_set_lhs, encoded_set_rhs]
  stack_out: [bool]

@mohammadfawaz This is what it would look like to just add the complete set of set operations to the ASM.
Do you think we should do it?

I'd like to see what @otrho thinks as well. From my point of view:

I think it only makes sense to add these if we introduce sets to Pint. E.g.

var a = {{ 0, 4, 5 }};
var b = {{ 4, 4, 5, 5, 0 }};
constraint a == b; // evaluates to `true`

I think we should change the mutable keys constraint to a subset instead of a equality (assuming that doesn't lead to security issues), which means we should add Subset at least.

So do we think every contract will be using set operations like these?

Every predicate will have a constraint on the set of mutable keys. Currently we're using EqSet for that but I'm suggesting we change it to use Subset. The other stuff is going to be much less common.

I think we also need it for pub vars.
Honestly it's not very complex to implement these. The main downside is using up slots in our 256 ASM. But it might be worth just adding the ops that are needed as the need arises. I can add subset now though.
I'll just design it so there's room set aside in the 8 bytes to add the other set operations if needed

Perhaps we could cut the number of ops down.  There isn't really a need for superset if we have subset, they're inverses.  Even eq could be impemented using two calls to subset. disjoint could use difference, etc.


[Feature Request] Add Server_Name tagKey for multiple Tautulli servers

Is your feature request related to a problem? Please describe.
The value stored in Influx for multiple Tautulli servers would be more useful with a server name set in the varken.ini file.
I have two Tautulli servers and have configured Varken to include both.  I added a Grafana query variable to select the server(s) I want to display. The choices are '1','2' which are not as useful as a specific server name when displaying graphs or filtering information from multiple servers.
Describe the solution you'd like
Add a key/value pair to varken.ini under the Tautulli block (server_name = myuniqueserver) and write the value to influxDB as a tagKey under the Tautulli measurement.
Describe alternatives you've considered
Manually setting alias values for the 'server' tag for each panel in Grafana.  This is problematic when aliasing an integer like '1' compared with aliasing a unique identifier.
Additional context
Screenshot of current variable selector for 'server'

Resulting default Grafana panel alias for 'server'

@ludditus-RPI Kind of related: When you configured Varken to support two Tautulli servers, were you able to do it with environment variables or did you have to edit the ini directly?
I'm trying this in my docker-compose.yml
      - VRKN_GLOBAL_TAUTULLI_SERVER_IDS=1,2
      - VRKN_TAUTULLI_1_URL=tautulli:8181/tautulli
      - VRKN_TAUTULLI_1_FALLBACK_IP=<IP_ADDRESS>
      - VRKN_TAUTULLI_1_APIKEY=xxxxxxxxxxxxxxxx
      - VRKN_TAUTULLI_1_SSL=false
      - VRKN_TAUTULLI_1_VERIFY_SSL=false
      - VRKN_TAUTULLI_1_GET_ACTIVITY=true
      - VRKN_TAUTULLI_1_GET_ACTIVITY_RUN_SECONDS=30
      - VRKN_TAUTULLI_1_GET_STATS=true
      - VRKN_TAUTULLI_1_GET_STATS_RUN_SECONDS=3600
      - VRKN_TAUTULLI_2_URL=tautulli2:8181/tautilli2
      - VRKN_TAUTULLI_2_FALLBACK_IP=<IP_ADDRESS>
      - VRKN_TAUTULLI_2_APIKEY=xxxxxxxxxxxxxxxx
      - VRKN_TAUTULLI_2_SSL=false
      - VRKN_TAUTULLI_2_VERIFY_SSL=false
      - VRKN_TAUTULLI_2_GET_ACTIVITY=true
      - VRKN_TAUTULLI_2_GET_ACTIVITY_RUN_SECONDS=30
      - VRKN_TAUTULLI_2_GET_STATS=true
      - VRKN_TAUTULLI_2_GET_STATS_RUN_SECONDS=3600

But I'm getting this in the logs:
2021-06-03 12:00:55 : DEBUG : iniparser : tautulli:8181/tautulli is a valid URL in module [tautulli-1].
Traceback (most recent call last):
  File "/app/Varken.py", line 92, in <module>
    CONFIG = INIParser(DATA_FOLDER)
  File "/app/varken/iniparser.py", line 29, in __init__
    self.rectify_ini()
  File "/app/varken/iniparser.py", line 138, in rectify_ini
    self.parse_opts()
  File "/app/varken/iniparser.py", line 181, in parse_opts
    url = self.url_check(env.get(f'VRKN_{envsection}_URL', self.config.get(section, 'url')),
  File "/usr/local/lib/python3.9/configparser.py", line 781, in get
    d = self._unify_values(section, vars)
  File "/usr/local/lib/python3.9/configparser.py", line 1149, in _unify_values
    raise NoSectionError(section) from None
configparser.NoSectionError: No section: 'tautulli-2

I've got everything else configured via environment variables and it works when I only specify one server id.

@eiddor Please do not use issues for support.
p.s There is a bug were a second Tautilli server cannot be configured with docker ENVs. Please remove the ENVs and use the config file. If you have any further issues please use our discord server for support.

Apologies @samwiseg0 - Thank you so much!

@samwiseg0 Sorry for the late reply. I have successfully used value mappings and overrides for various dashboard queries, as well as in a custom variable:

This works, but the value mapping or override needs to be repeated on every dashboard panel, which is kind of tedious.  Even if grafana could do a global value mapping that worked across all panels, I don't think you would want to globally map '1' or '2' to a text value for an entire dashboard.
It would be more elegant if the data from Varken included a friendly name for a server in addition to a number, which could be set in the config file. But I understand this is a bit of an edge case (with a workaround) if you'd like to close the issue.

Glad this is working for you.
Let me see if in the API calls we already make we can get the server name. I suspect we cannot. If we can then it should be a quick add. If not I would not prefer to make yet another call to tautulli just for the server name.


chore: prefer named imports over default imports in examples

Chapter 8 -> section 8.1 lacks import of stdError  & Vm
Issue
There are multiple places where forge-std's components are used without importing them .

Lack of stdError and Vm import

A good practice is to use the pattern test_Revert[If|When]_Condition in combination with the [expectRevert](https://book.getfoundry.sh/cheatcodes/expect-revert.html) cheatcode (cheatcodes are explained in greater detail in the following [section](https://book.getfoundry.sh/forge/cheatcodes.html)). Also, other testing practices can be found in the [Tutorials section](https://book.getfoundry.sh/tutorials/best-practices.html). Now, instead of using testFail, you know exactly what reverted and with which error:

    function test_CannotSubtract43() public {
        vm.expectRevert(stdError.arithmeticError);
        testNumber -= 43;
    }

Impact
Beginners get confused when stdError is not found upon compilation of smart contracts because foundry demands explicit imports
Fix
Add following lines in the docs to import used components
import {Vm} from "forge-std/Vm.sol";
import {stdError} from "forge-std/StdError.sol";

If you import as follows: import "forge-std/Test.sol";, as mentioned at the start, it will work
That said, I think we should modify the example code to reflect the best practices (e.g. named imports), especially as this is the entrypoint for beginners. We should also update the Solidity pragma to use pragma solidity ^0.8.13; to reflect the one generated by forge init.
@0xumarkhatab would you like to open a PR for this?

Can I fix this little issue ?

Yes, feel free!

Hi @zsskar would be great to get this fixed, do you still have time to work on it?

Updated the title, resolving this by replacing default imports with named imports
https://github.com/foundry-rs/book/pull/1298


guild search does not work in pyenv (circular import)

(I have only recently found guildai - and must say it is really awesome - in a multitude of ways actually)
I have the problem however that guild search does not work in my pyenv, and just want to check if this is a guild problem, or related to my environment.
Steps to reproduce:
mkdir /tmp/t
cd /tmp/t
pyenv install 3.9.8
pyenv local 3.9.8
pyenv exec python -m venv .venv
source .venv/bin/activate
pip install -U pip guildai

guild search mnist

will result to
Traceback (most recent call last):
  File "/tmp/g/.venv/bin/guild", line 8, in <module>
    sys.exit(main())
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/main_bootstrap.py", line 40, in main
    _main()
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/main_bootstrap.py", line 66, in _main
    guild.main.main()
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/main.py", line 33, in main
    main_cmd.main(standalone_mode=False)
  File "/tmp/g/.venv/lib64/python3.9/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/tmp/g/.venv/lib64/python3.9/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/tmp/g/.venv/lib64/python3.9/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/tmp/g/.venv/lib64/python3.9/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/tmp/g/.venv/lib64/python3.9/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/click_util.py", line 213, in fn
    return fn0(*(args + (Args(**kw),)))
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/commands/search.py", line 38, in search
    search_impl.main(args)
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/commands/search_impl.py", line 24, in main
    formatted = [_format_package(pkg) for pkg in _search(args)]
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/commands/search_impl.py", line 30, in _search
    return pip_util.search(spec, operator)
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/pip_util.py", line 178, in search
    _ensure_search_logger()
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/pip_util.py", line 193, in _ensure_search_logger
    from pip._vendor.requests.packages.urllib3 import connectionpool
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/external/pip/_vendor/requests/__init__.py", line 94, in <module>
    from pip._internal.compat import WINDOWS
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/external/pip/_internal/__init__.py", line 42, in <module>
    from pip._internal import cmdoptions
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/external/pip/_internal/cmdoptions.py", line 16, in <module>
    from pip._internal.index import (
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/external/pip/_internal/index.py", line 24, in <module>
    from pip._internal.download import HAS_TLS, is_url, path_to_url, url_to_path
  File "/tmp/g/.venv/lib64/python3.9/site-packages/guild/external/pip/_internal/download.py", line 325, in <module>
    class PipSession(requests.Session):
AttributeError: partially initialized module 'pip._vendor.requests' has no attribute 'Session' (most likely due to a circular import)

Thanks for the report! This is technically fixed in master and will be available in the next release, however PyPI's XML-RPC interface is disabled at this time so the search function doesn't work. This is true of even pip search.


Ping both Redis and also Next Service for a complete liveness/readiness check

In addition to pinging the required service Redis, also ping Next Service (AI service), which completes the requirement of Liveness/Readiness health probe checks for aiops-data-collector
Fixes AIOPS-119

Codecov Report

Merging #46 into master will increase coverage by 4.57%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
+ Coverage    54.4%   58.97%   +4.57%
==========================================
  Files          15       15
  Lines         500      529      +29
==========================================
+ Hits          272      312      +40
+ Misses        228      217      -11

Impacted Files
Coverage Δ

tests/conftest.py
93.33% <ø> (ø)
:arrow_up:

tests/test_server.py
100% <100%> (ø)
:arrow_up:

server.py
67.81% <100%> (+6.7%)
:arrow_up:

collector/utils.py
90% <0%> (+27.5%)
:arrow_up:

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 16dccb5...3e3b809. Read the comment docs.

While I realize what you mean, IMO,  Readiness should take into account that all the dependencies are available, before making the container ready.
Imagine a situation where the data collector has completed a long running data collection operation (30+ minutes or 40+ minutes), only to find out later that the Next Service was not configured correctly or was not available...
--> making the entire data collection operation a wasted cycle, something that could have been easily avoided by pinging the Next service upfront.
So how about we do this?
Instead of using probes, lets at least do an initial configuration check in data collector to check for the availability of Next Service (by pinging it first)

On a slightly different note, ideally the collected data should be saved in a storage bucket after every successful run, ensuring that the data collection operation is not wasted.
(i.e. if we are not fetching data directly from the datahub, and instead using the data collector)
When we start using Kubeflow, let's look into storing the output of key microservices (like data collector) in a storage bucket.

With Kubeflow, this workflow would be totally redundant since the task in Argo workflow would manage this completely differently. And yeah, a object storage is the preferred way to pass data, I agree.
Besides that. I still don't think we should wait for publisher/ai service to become ready so we can make another service ready. This creates a new chain of dependencies. Imagine a scenario - publisher is not ready. We already know that, since its readiness probe failed. So we have a warning that there's something wrong with publisher. Now, with the probes approach used in this PR, it would mean every service in the pipeline is raising a warning and none of the services is ready. That doesn't help. The opposite approach, when only one service is failing brings much better visibility into the problem. It identifies the problematic part in plain sight. No need to go and check why every single pod is failing...
Because.. when a readiness probe fails, it doesn't tell you on listener service that it's because publisher service is not ready. It creates a great level of confusion. And the purpose of these probes are to quickly identify the problem.
Also when readiness probe fails many times, it restarts the pod. So because of e.g. failing publisher the whole pipeline is restarting etc.
This is one of the key ideas in microservice architecture - break the app into the smallest parts that can operate separately and when one piece fail, it's easy to recover, identify and investigate the issue. The probes, you're suggesting, make the pipeline fail as a whole and goes against this principle. I don't recommend that.

Yes, with re-architecture and kubeflow, argo etc, the entire landscape of our pipeline would change.
What do you think about pinging the Next Service just as an initial configuration check? No need for probes.
That way at least AIOPS-119 gets addressed.

I wouldn't care about the next service at all. I would care about Redis for the probe. That's good, I like that part. And maybe as I'm thinking about the initial check - what about checking the topological and host inventory presence?
The point I have in mind for not checking the next service as part of the initial startup: Imagine the pipeline being deployed as new (or redeployed via jenkins, etc.) All services are starting together at the same time. So that means, the next service is not available in the time this service is starting. And that would result in this service failing the check and going into the restart... I'm not sure what such chain reaction might result into. I can see the only possible outcome that ocdeployer can have - hanging job which results into a failed jenkins job...

Alright, all fair points!
Re-architecure/Kubeflow should take care of the issue that I mentioned above https://github.com/ManageIQ/aiops-data-collector/pull/46#issuecomment-510973827 by using object storage/s3 buckets etc
So in light of all the points laid above, I'm closing this PR.
Thanks @tumido


Any work already or interest in adding gitlab-ci support

I am just learning about gitlab-ci and, in particular, ECP-CI resources which are all being enabled via gitlab servers and gitlab-ci services.
I am wondering if BLT project is already making progress or would be interested in working with me to add gitlab-ci support, and, in particular, demonstrating calc-pi and other tests running across ECP-CI complex?

@markcmiller86 that would be great, however I am not sure what the status of the ECP-CI is right now? There may be constraints about who can commit?
I think we have some internal testing setup for blt inside LLNL.

however I am not sure what the status of the ECP-CI is right now?

I am working regularly with that team helping to develop examples and documentation. I hope to be helping them with the ECP-CI tutorial at ECP meeting.
What I am thinking for BLT is to have calc-pi and other examples working in gitlab ci, first locally at LLNL and then across ECP-CI resources.

Fixed in #457


support for azure data lake gen2 (dfs.core.windows.net)

Authenticating with ADLS gen2 is currently not supported for managed service identities which makes it necessary to register an app in order to generate client IDs and secrets. This is completely overkill for my use case which is writing a very small amount of data to an ADLS gen2 container with python scripts running in a virtual machine. Having to register an app makes it also impossible to fully automate my infrastructure deployment with Terraform.

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

ID: 726adac9-1848-01a6-9586-842c81f820f7
Version Independent ID: 249db438-8c95-8e69-f69e-8e48fcd0b359
Content: Azure Services that support managed identities - Azure AD
Content Source: articles/active-directory/managed-identities-azure-resources/services-support-managed-identities.md
Service: active-directory
Sub-service: msi
GitHub Login: @barclayn
Microsoft Alias: barclayn

@juven-itsapark We appreciate the candid feedback . We will investigate on this and provide an update.

@juven-itsapark We use github primarily for document improvement . A product feedback and Feature request are always welcome on the Uservoice feedback portal. I have created a feature request for you as per the details you have provided and would request you to upvote it .
https://feedback.azure.com/forums/327234-data-lake/suggestions/42768950-managed-identity-support-for-azure-data-lake-gen-2
In future you can directly provide the feedback on the Azure user voice feedback site. This is periodically reviewed and prioritized by the product team . Hope this helps.
Thank you.


Create a staging environment for Camunda Self-managed

The goal is to create a staging environment for internal camundi to experiment with camunda self-managed.  There are functional differences between self-managed and SaaS, but these differences are not apparent unless you have the technical skills to deploy the software yourself.
So this would be for:

an application engineer with low kubernetes expertise to be able to see how their features are used in self-managed
a product owner who wants to validate whether an epic is complete
a legal or security team member testing for compliance
a QA team member trying to share reproduction steps with their team members.

@jessesimpson36 could you please add a description for this issue? It's not clear what is the goal here.

I added a description for this issue


Added a parameter to decide what SpellResult is return on a fail.

If I'm reading this correctly, SpellResult.CANCELLED should return the costs

Currently, if there are many actions underneath this compound action and one of them returns, as far as I can tell, not a pass, it does not go any further in the spell.
This is an unintended feature of this, so until this is figured out, I'm closing this :)


FixedTimeStep systems do not honor their associated app state

Bevy version
0.10
What you did
Consider the following Bevy app:
use bevy::prelude::*;

#[derive(States, PartialEq, Eq, Debug, Default, Hash, Clone, Copy)]
enum AppState {
    #[default]
    First,
    Second,
}

fn main() {
    App::new()
        .add_plugins(MinimalPlugins)
        .insert_resource(FixedTime::new_from_secs(1.0))
        .add_state::<AppState>()
        .add_system(transition_state.in_set(OnUpdate(AppState::First)))
        .add_system(
            print_hello
                .in_schedule(CoreSchedule::FixedUpdate)
                .in_set(OnUpdate(AppState::Second)),
        )
        .run();
}

fn transition_state(time: Res<Time>, mut next_state: ResMut<NextState<AppState>>) {
    if time.elapsed_seconds() > 3.0 {
        println!("Transition state!");
        next_state.set(AppState::Second);
    }
}

fn print_hello() {
    println!("Hello!");
}

What went wrong
The print_hello system runs regardless of the application state. It should only run in the AppState::Second state but it runs also in the AppState::First state.
The following output is generated:
Hello!
Hello!
Transition state!
Hello!
Hello!

If line the line with .in_schedule(CoreSchedule::FixedUpdate) is commented out, the output is:
Transition state!
Hello!
Hello!
Hello!

It's as expected. But of course the system is now run every frame.

Does this work if you use a .run_if(in_state(AppState::Second)) instead? OnUpdate was really only ever intended for the main schedule.

Does this work if you use a .run_if(in_state(AppState::Second)) instead?

Yes, then it works. Thanks!

@alice-i-cecile I'm trying to run a set of systems only when the game is in a certain state, and with a fixed timestep.
First I tried this:
app.add_systems(
    (
        system_a,
        system_b,
        system_c,
    )
    .in_set(labels::Lobby)
    .after(labels::Network)
    .in_set(OnUpdate(GameState::Lobby))
    .in_schedule(CoreSchedule::FixedUpdate)
)

which led me to this issue.
Then I tried
app.add_systems(
    (
        system_a,
        system_b,
        system_c,
    )
    .in_set(labels::Lobby)
    .after(labels::Network)
    .run_if(in_state(GameState::Lobby))
    .in_schedule(CoreSchedule::FixedUpdate)
)

Which gave me some unsatisfied trait bounds:
358 | pub struct SystemConfigs {
    | ------------------------
    | |
    | doesn't satisfy `SystemConfigs: IntoSystem<(), (), _>`
    | doesn't satisfy `SystemConfigs: IntoSystemConfig<_>`
    |
    = note: the following trait bounds were not satisfied:
            `SystemConfigs: IntoSystem<(), (), _>`
            which is required by `SystemConfigs: IntoSystemConfig<_>`
            `&SystemConfigs: IntoSystem<(), (), _>`
            which is required by `&SystemConfigs: IntoSystemConfig<_>`
            `&mut SystemConfigs: IntoSystem<(), (), _>`
            which is required by `&mut SystemConfigs: IntoSystemConfig<_>`

I found distributive_run_if() and tried that:
app.add_systems(
    (
        system_a,
        system_b,
        system_c,
    )
    .in_set(labels::Lobby)
    .after(labels::Network)
    .distributive_run_if(in_state(GameState::Lobby))
    .in_schedule(CoreSchedule::FixedUpdate)
)

which gave:
error[E0277]: the trait bound `impl for<'a> FnMut(Res<'a, State<GameState>>) -> bool: Clone` is not satisfied
   --> server/src/systems/lobby.rs:59:38
    |
59  |                 .distributive_run_if(in_state(GameState::Lobby))
    |                  ------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Clone` is not implemented for `impl for<'a> FnMut(Res<'a, State<GameState>>) -> bool`
    |                  |
    |                  required by a bound introduced by this call
    |
note: required by a bound in `distributive_run_if`
   --> /Users/brian/.cargo/registry/src/github.com-1ecc6299db9ec823/bevy_ecs-0.10.0/src/schedule/config.rs:425:68
    |
425 |     fn distributive_run_if<M>(self, condition: impl Condition<M> + Clone) -> SystemConfigs {
    |                                                                    ^^^^^ required by this bound in `distributive_run_if`
help: use parentheses to call this opaque type
    |
59  |                 .distributive_run_if(in_state(GameState::Lobby)(/* Res<'_, State<GameState>> */))
    |                                                                +++++++++++++++++++++++++++++++++

For more information about this error, try `rustc --explain E0277`.
error: could not compile `sus-server` due to previous error

At this point I'm not sure of the best way to specify that a set of systems should run on a fixed timestep, and only while in a certain state.
If the answer is currently "add the run_if condition on every system in the set", that's totally fine. Just wanted to make sure I wasn't missing something else that'll solve the problem.
Thanks so much for your work on the new stageless API, it's been really cool to see my bevy code shrink in size while remaining functionally the same (along with gaining new ergonomics!)

@st0rmbtw nice! I changed *state to state.0 and it worked perfectly.

@alice-i-cecile can this be closed now that https://github.com/bevyengine/bevy/pull/8260 has been merged?


gpxsee: 7.17 -> 7.18

Motivation for this change
Changelog
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
[x] 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 nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)

$ nix path-info -Sh /nix/store/37dyanggplb63bpk2qb9d8x4jn3axw2a-gpxsee-7.17
/nix/store/37dyanggplb63bpk2qb9d8x4jn3axw2a-gpxsee-7.17	 264.3M
$ nix path-info -Sh /nix/store/saq93zh5l5y0qidvci67flmcwdb5gr9r-gpxsee-7.18
/nix/store/saq93zh5l5y0qidvci67flmcwdb5gr9r-gpxsee-7.18	 264.3M

[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @womfoo

@GrahamcOfBorg build gpxsee


Movie search returns no results while series search works as expected

Describe the bug
Searching for a movie returns no results. Searching for and requesting series works as expected. This is likely a similar issue to #88.
Expected behavior
Movie search results should be returned just like happens for series requests.
Logs
Please copy out the log in it's entirety, please make sure to hide any potential secrets/API keys - although they should be censored via the logging program.
2022-09-11T01:44:29.039Z ba149cbd8135 INFO [doplarr.interaction-state-machine:28] - Performing search for movie top gun
2022-09-11T01:44:29.310Z ba149cbd8135 FATAL [doplarr.utils:78] -
java.lang.Thread.run Thread.java: 831
java.util.concurrent.ThreadPoolExecutor$Worker.run ThreadPoolExecutor.java: 630
java.util.concurrent.ThreadPoolExecutor.runWorker ThreadPoolExecutor.java: 1130
java.util.concurrent.CompletableFuture$AsyncSupply.run CompletableFuture.java: 1769
java.util.concurrent.CompletableFuture.postComplete CompletableFuture.java: 506
java.util.concurrent.CompletableFuture$UniHandle.tryFire CompletableFuture.java: 907
java.util.concurrent.CompletableFuture.uniHandle CompletableFuture.java: 930
jdk.internal.net.http.PlainHttpConnection.lambda$connectAsync$1 PlainHttpConnection.java: 205
jdk.internal.net.http.PlainHttpConnection.checkRetryConnect PlainHttpConnection.java: 229
jdk.internal.net.http.PlainHttpConnection.connectAsync PlainHttpConnection.java: 184
java.security.AccessController.doPrivileged AccessController.java: 554
jdk.internal.net.http.PlainHttpConnection.lambda$connectAsync$0 PlainHttpConnection.java: 182
sun.nio.ch.SocketChannelImpl.connect SocketChannelImpl.java: 846
sun.nio.ch.SocketChannelImpl.beginConnect SocketChannelImpl.java: 759
sun.nio.ch.SocketChannelImpl.ensureOpen SocketChannelImpl.java: 195
java.nio.channels.ClosedChannelException:
java.net.ConnectException:
java.util.concurrent.CompletionException: java.net.ConnectException

Additional context
Doplarr is being run as a docker container inside Unraid. As mentioned above, series requests continue to function as expected and these errors only happen for movie requests. I am using Overseerr instead of radarr/sonarr to manage requests. I have included below the log output for a successful search for a series to compare. The repo I am using is from linuxserver.io
2022-09-11T01:49:26.765Z ba149cbd8135 INFO [doplarr.interaction-state-machine:28] - Performing search for series firefly
2022-09-11T01:49:30.369Z ba149cbd8135 DEBUG [doplarr.core:27] - Received interaction
2022-09-11T01:49:32.394Z ba149cbd8135 DEBUG [doplarr.core:27] - Received interaction
2022-09-11T01:49:32.394Z ba149cbd8135 DEBUG [doplarr.core:27] - Received interaction
2022-09-11T01:49:35.262Z ba149cbd8135 DEBUG [doplarr.core:27] - Received interaction
2022-09-11T01:49:35.262Z ba149cbd8135 DEBUG [doplarr.core:27] - Received interaction

Same issue here.  Currently docker container is only linked up to Overseerr and series lookups work fine.
Error when searching for movie
`2022-09-22T14:41:07.690Z 843a614179ce FATAL [doplarr.utils:?] - Exception from HTTP request
java.lang.Thread.run              Thread.java:  831
...
clojure.core.async.impl.concurrent/counted-thread-factory/reify/fn           concurrent.clj:   29
java.util.concurrent.ThreadPoolExecutor$Worker.run  ThreadPoolExecutor.java:  630
java.util.concurrent.ThreadPoolExecutor.runWorker  ThreadPoolExecutor.java: 1130
...
doplarr.utils/request-and-process-body/fn                utils.clj:   73
clojure.core.async.impl.ioc-macros/run-state-machine-wrapped           ioc_macros.clj:  982
clojure.core.async.impl.ioc-macros/run-state-machine           ioc_macros.clj:  978
doplarr.utils/request-and-process-body/fn/state-machine--auto--                utils.clj:   73
doplarr.utils/request-and-process-body/fn/state-machine--auto--/fn                utils.clj:   75
clojure.core/apply                 core.clj:  667
...
doplarr.backends.radarr.impl/GET                 impl.clj:    9
doplarr.backends.radarr.impl/GET                 impl.clj:   10
...
doplarr.utils/http-request                utils.clj:   19
doplarr.utils/http-request                utils.clj:   25
...
hato.client/request               client.clj:  321
hato.client/request               client.clj:  326
hato.middleware/wrap-method/fn           middleware.clj:  472
hato.middleware/wrap-nested-params/fn           middleware.clj:  689
hato.middleware/wrap-form-params/fn           middleware.clj:  538
hato.middleware/wrap-content-type/fn           middleware.clj:  300
hato.middleware/wrap-multipart/fn           middleware.clj:  709
hato.middleware/wrap-accept-encoding/fn           middleware.clj:  339
hato.middleware/wrap-accept/fn           middleware.clj:  317
hato.middleware/wrap-exceptions/fn           middleware.clj:  160
hato.middleware/wrap-output-coercion/fn           middleware.clj:  273
hato.middleware/wrap-decompression/fn           middleware.clj:  640
hato.middleware/wrap-url/fn           middleware.clj:  553
hato.middleware/url-request           middleware.clj:  543
hato.middleware/parse-url           middleware.clj:  120
java.net.URL.                 URL.java:  515
java.net.URL.                 URL.java:  568
java.net.URL.                 URL.java:  672
java.net.MalformedURLException: no protocol: /api/v3/movie/lookup
Exception in thread "async-dispatch-1" java.net.MalformedURLException: no protocol: /api/v3/movie/lookup
at java.base/java.net.URL.(URL.java:672)
at java.base/java.net.URL.(URL.java:568)
at java.base/java.net.URL.(URL.java:515)
`

Reported this to the DEV directly the other night, curious, are you guys using the nightly build?

@thedinz I use the linuxserver.io docker image (dockerfile here). I am not a dev, but it looks like it pulls the latest release from the releases page which is currently v3.6.0
Based on the logs from @pellett655 it looks like the api url for movie searches might not be correct for Overseerr.

@thedinz I use the linuxserver.io docker image (dockerfile here). I am not a dev, but it looks like it pulls the latest release from the releases page which is currently v3.6.0
Based on the logs from @pellett655 it looks like the api url for movie searches might not be correct for Overseerr.

I also am using the LSIO version but the nightly build, have talked to others who say its working fine so just wondering if its build specific or what. Either way hope its resolved soon.

Yeah this is super strange. I use the lsio containers for radarr/sonarr/overseerr and just updated and have yet to run into any problems.
The log from no protocol: /api/v3/movie/lookup means that it's trying to use radarr directly for some reason and is failing because there is no URL.

Are all of y'all using unraid? Perhaps something changed in how they use environment variables.

Are all of y'all using unraid? Perhaps something changed in how they use environment variables.

I am yes, and tht problay is it, i have asked around and every keeps testing their instace and saying it works, except us here, i assume what we have in common is unraid. Although, i have no updated the unraid OS anytime recently that would cause this.

Yeah this is super strange. I use the lsio containers for radarr/sonarr/overseerr and just updated and have yet to run into any problems.
The log from no protocol: /api/v3/movie/lookup means that it's trying to use radarr directly for some reason and is failing because there is no URL.

This is what you said my system was doing also when i sent logs via discord

Thank you @kiranshila, knowing that it was trying to use radarr rather than overseerr helped me crack the case on this one. Below I have written out how I diagnosed the issue and the resolution.
Diagnosis
Like you suspected, I was also using Unraid as the host OS. So, I thought that I should force an update of the docker image and then see what the actual docker command being run was. For those in the future that might see this thread, to force an update to a docker image in Unraid, you go to your docker tab, switch to advanced mode at the top and then hit the force update button to the right of the docker image name. I have included the (edited for clarity and to protect personal info) docker command that was run below:
root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d
  --name='doplarr'
  --net='bridge'
  -e TZ="America/New_York"
  -e HOST_OS="Unraid"
  -e 'DISCORD__TOKEN'='discord_token_here'
  -e 'OVERSEERR__API'='api_key_here'
  -e 'OVERSEERR__URL'='my_url_here'
  -e 'DISCORD__MAX_RESULTS'='25'
  -e 'DISCORD__REQUESTED_MSG_STYLE'=':plain'
  -e 'PARTIAL_SEASONS'='true'
  -e 'LOG_LEVEL'=':debug'
  -e 'OVERSEERR__DEFAULT_ID'='your_user_id_here'
  -e 'RADARR__API'='radarr__api'
  -e 'RADARR__URL'='http://localhost:7878'
  -e 'SONARR__API'='sonarr__api'
  -e 'SONARR__URL'='http://localhost:8989'
  -e 'SONARR__QUALITY_PROFILE'=''
  -e 'RADARR__QUALITY_PROFILE'=''
  -e 'SONARR__ROOTFOLDER'=''
  -e 'RADARR__ROOTFOLDER'=''
  -e 'SONARR__LANGUAGE_PROFILE'=''
  -e 'JAVA_OPTS'=''
  -e 'PUID'='99'
  -e 'PGID'='100'
  -e 'UMASK'='022'
  -v '/mnt/user/appdata/doplarr':'/config':'rw'

I remembered seeing on the docs page for configuration that overseerr and radarr/sonarr were mutually exclusive and only one or the other should be set up. So, in the past I remember removing all the environment variables for radarr/sonarr. However, looking at the docker command being run, and then going in to edit the environmental variables in Unraid, I found they were back, filled with default values. This led me to a relatively simple resolution:
Resolution
All you need to do to fix this issue is to edit the docker container within Unraid and hit the remove button next to all the radarr/sonarr variables. This will only leave the Overseerr variables when the docker container is run again. I have included the new docker run command below after I removed the offending entries:
root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d
  --name='doplarr'
  --net='bridge'
  -e TZ="America/New_York"
  -e HOST_OS="Unraid"
  -e 'DISCORD__TOKEN'='discord_token_here'
  -e 'OVERSEERR__API'='api_key_here'
  -e 'OVERSEERR__URL'='my_url_here'
  -e 'DISCORD__MAX_RESULTS'='25'
  -e 'DISCORD__REQUESTED_MSG_STYLE'=':plain'
  -e 'PARTIAL_SEASONS'='true'
  -e 'LOG_LEVEL'=':debug'
  -e 'OVERSEERR__DEFAULT_ID'='your_user_id_here'
  -e 'JAVA_OPTS'=''
  -e 'PUID'='99'
  -e 'PGID'='100'
  -e 'UMASK'='022'
  -v '/mnt/user/appdata/doplarr':'/config':'rw'

See? No pesky radarr/sonarr environment variables anymore. This resolved the movie search issue for me. I suspect that the radarr/sonarr variables got added back to the docker image after an update to the image from linuxserver.io's side, though I don't really know how to pinpoint that as the cause.
@kiranshila I will close this issue as I have resolved things on my end. However, there is one thing I don't really understand. I don't know why Doplarr was fine using Overseerr for series and ignoring Sonarr, but tried using Radarr instead of Overseerr for movies. I think it would make more logical sense to default to one or the other for both cases of series and movies, but that is just my two cents as a user and not a dev.

Sick!

I don't know why Doplarr was fine using Overseerr for series and ignoring Sonarr, but tried using Radarr instead of Overseerr for movies

I think it has to do with the fact that I store everything in a hash map, and the order in which they were checked is not defined. That's why I was saying one should have one or the other. It's still kinda an open issue how I should check that they are actually mutually exclusive.

Thanks for the info! Like I said in my post it is clearly spelled out in the docs that one or the other should be used, so I don't think it is a big deal. It just made things harder to diagnose the root cause in this (very specific) instance.

This DID NOT resolve the issue for me, glad it worked for you but i dont think we can consider the issue closed.

Removing the extra parameters from the docker container when using overseerr resolved the issue for me.

I also got mine fixed but my process was different, i did what was suggested here and removed the sonarr/radarr parameters from unraid and hit apply, still was doing the same thing.
I noticed in the config folder was a config.edn file now even though this file isnt used when you run in unraid I found that removing the sonarr/radarr parameters from this file is what solved it for me.

It should not even be looking at the config file. The dockerfile that I provide doesn't have the arguments to include it. Whoever packaged the docker stuff made a mistake.

It should not even be looking at the config file. The dockerfile that I provide doesn't have the arguments to include it. Whoever packaged the docker stuff made a mistake.

Its even weirder to me because that file was blank, i mean the arguments were there but they were blank, for instance (not looking at the file now just from memory so might not be exact)
radarr_api = ""
So the section was there but it was blank, simply removing the line from the file altogether fixed it for me.

I need to get a patch together that looks both at the existence of the variable as well as checking against the empty string

Alright, the latest release should've fixed dealing with random empty strings making their way into the config. If any of you all are still having this issue, please try with the latest release.


Refactor HintMessage

Replaces HintMessage with AtomHintMessage and SocketHintMessage

the new hint properties, msg:hintScore and msg:hintTarget(Atom|Socket)
are now moved to the envelope. Hints don't need a message content any
more.
An AtomHintMessage must

be addressed at an Atom (no msg:recipientSocket) property
refer to another Atom via msg:hintTargetAtom
not refer to another socket
contain a msg:hintScore (xsd:float)

A SocketHintMessage must

be addressed at a Socket via msg:recipientSocket
refer to another Socket via msg:hintTargetSocket
not refer to another Atom
contain a msg:hintScore (xsd:float)
The new types are handled in:

WonMessageBuilder and WonMessage
Message handling on Node

AtomHintMessages do not trigger connections to be created
AtomHintMessages are put into the Atom's message container
SocketHintMessages cause connections to be created (in state
SUGGESTED) and are put in the connection's message container

Some WonRdfUtils
Message validation
OwnerCallback
Bots

bot events

Matcher

curently only sends AtomHintMessages

Owner Webapp

new handling for SocketHintMessage (still to implement)
all existing hint handling now handles AtomHintMessages

@quasarchimaere TODO:

implementation for retrieving AtomHintEvents from the Atom's message container. AtomHintEvents don't cause connections; SocketHintEvents aren't generated by matchers yet. Current state: only hints via websocket will be processed
not end-to-end tested yet, because we require https://github.com/perma-id/w3id.org/pull/1367 to be merged first.


dist folder missing from samples folder

Hi,
dist folder is apparently missing from samples folder..

I will resolve this issue, please assign it to me.

@koltejas if you clone the git repo, you will need to build chart.js first as we do not commit the built files. https://www.chartjs.org/docs/next/developers/contributing#building-and-testing has documentation on how to do that


The "standalone mode" of the NextjsSite Quick Start is broken

Hello,
In attampting to follow the instructions of the monorepo starter in standalone mode, the NextJS site never starts.
npx create-sst@latest --template standard/nextjs
cd my-sst-app
yarn install
yarn dev

Results in the following output:
› yarn dev
yarn run v1.22.19
$ sst dev
Please enter a name you’d like to use for your personal stage. Or hit enter to use dan-turner: dan
SST v2.18.3  ready!

➜  App:     my-sst-app
   Stage:   dan
   Console: https://console.sst.dev/my-sst-app/dan

|  Default site/ServerFunction/AssetReplacer Custom::AssetReplacer UPDATE_COMPLETE
|  Default site/ServerFunction/ServerFunction AWS::Lambda::Function UPDATE_COMPLETE
|  Default AWS::CloudFormation::Stack UPDATE_COMPLETE
⠋  Deploying...

✔  Deployed:
   Default

➜  Start Next.js: cd packages/web && npm run dev

The following line of output never occurs and the app does not spin up listening on port 3000:
- ready started server on <IP_ADDRESS>:3000, url: http://localhost:3000
Doing an sst deploy --stage dev does indeed work though.  Likewise running yarn dev from packages/web correctly spins up the app listening on port 3000.
In following the drop-in mode instructions, the app does indeed start up and is available on port 3000.
› yarn dev
yarn run v1.22.19
$ sst bind next dev
Please enter a name you’d like to use for your personal stage. Or hit enter to use dan-turner: dan
Warning: The site has not been deployed. Some resources might not be available.

- ready started server on <IP_ADDRESS>:3000, url: http://localhost:3000
- event compiled client and server successfully in 181 ms (20 modules)
- wait compiling...
- event compiled client and server successfully in 156 ms (20 modules)

I have tried following the instructions using Node 16, 18 and 20 and seeing the same broken behaviour in each.

Sorry when you say it never spins up, what do you mean? From the terminal output it looks like it started fine?

The key missing line of output is:
- ready started server on <IP_ADDRESS>:3000, url: http://localhost:3000
With the standalone example this line is never output, and nothing is listening on port 3000

@jayair were you able to reproduce the issue?
Do these commands in fact work for you?
npx create-sst@latest --template standard/nextjs
cd my-sst-app
yarn install
yarn dev

@dan-turner Are you missing a sst dev in between?

Hi @jayair, no:

Have you tried the above and did it work for you?

Yeah it should. I was commenting on the steps you shared above. Can you open a thread in #help on Discord and we'll take a look.

@dan-turner did you ever find a solution to this?

I've faced similar issue. Apparently that ➜  Start Next.js: cd packages/web && npm run dev line is an invitation for user to execute the command. It's NOT an indication of what has been executed.
You can see it in cli/commands/dev.js
Does anyone know if it is planned like this or something is broken?

I am bringing this back since I am experiencing the same problem:
Once run the sst dev from the root of the monorepo, and then in a second terminal tab I run sst bind next dev, it hangs and nothing happens.
My sst stack is deployed and linked to a eu-central-1 region.
Does anybody has any clue?

My issue was assuming that running the dev target also spun up the next app.  I hadn't realised I also needed to spin up next too.


Unable to load glb model in Android with sceneform using filament

Hi team,
Unable to load below attached models in android with filament v1.9.24.
Model 1:
I tried to load using https://google.github.io/filament/viewer/ and it is loading fine ( But, console showing warning ). Also, materials are missing in viewer.
expected output:

** In Android studio console found no specific filament logs for this case.

castle.zip
Model2:
While loading below model, it is not displaying in both filament-viewer and Android.

car.zip

I cannot repro the issue with the first model in the Web viewer. There are no warnings in the console. The second model seems invalid and fails to load in both our Web and native viewers.

Tried once again the first model in Android device ( SAMSUNG S9 device ) ( https://github.com/google/filament/files/6502198/castle.zip ) and another model ( size 60MB ) (https://www.dropbox.com/s/z5q4twlfjwqf96o/kirala.zip?dl=0). Both models failed to load.
In both case found no specific logs in Android Studio console with filament. Attached error logs from console.
com.example.augmentedreality/com.example.augmentedreality.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
Console_log.txt

In a debug build on Desktop, the car.zip model triggers an assert in OpenGLDriver::allocateHandle. (@pixelflinger)   I'd be surprised if the handle arena is overflowing -- this model has a lot of renderables (7151 meshes) but not a totally crazy number.

@prideout Do we have any workaround to fix this rendering issue for car.zip (https://github.com/google/filament/files/6502284/car.zip) model as it seems to be in valid format while check with gltf-validator ?

@udayk07 which tool did you use to generate this glTF?
It might be interesting to see what would happen if you were to combine the meshes to reduce the number of renderables.

@prideout The model generated by three.js exporter ( to load as .glb file in Android ).

Will look into combine meshes in this model. Do we have any maximum mesh count in filament ?

Our internal handle arena is limited to 2 MB which should be plenty.  To be honest my mesh reduction idea is just an experiment to see what will happen, since I don't understand this bug yet.  (note however that your model will be more optimal if you reduce the mesh count)

@prideout Tried to combine meshes for car.zip model. Found below results,

car_partial_meshjoin.glb.zip  -> combined only few meshes in this model (total mesh count 4965) which is not loading in Android device and filament viewer also ( original mesh count 7151 )

car_high_meshjoin.glb.zip -> Combined almost all meshes in this which is loading fine in Android device ( total mesh count 258 )

Even though above one with 258 meshes loads fine, the model https://github.com/google/filament/files/6502198/castle.zip with only 5 meshes not loading in Android ( found no filament logs in console also )

Thanks, that is interesting.  I haven't had time to investigate yet, so I'm not sure if this is an actual bug or if a resource limit has been exceeded, either way we should probably try to emit better error messages.
@pixelflinger these models might be good stress tests, not sure how they compare to bistro and sponza

So car.zip seems to be invalid. At least, our ResourceLoader asserts with a problem where there are no triangles when processing tangents.
The model also uses more memory than we set by default, thankfully, we have compile time configuration flags you can set. It seems that you need to:

increase FILAMENT_OPENGL_HANDLE_ARENA_SIZE_IN_MB -- but I'm not sure to what value yet. Maybe try 8 MB.
increase FILAMENT_MIN_COMMAND_BUFFERS_SIZE_IN_MB to 4MB

Finally there is another problem where we're running out of jobs, I have a PR that fixes that.
Because of the 1st problem, I wasn't able to load this model.

@pixelflinger
I am using filament in Android app through maven dependency ( implementation 'com.google.android.filament:filament-android:1.10.0' ).
Is it possible to set above mentioned flags in Android build ?

Ah no not yet. It's on my to-do list to make them settable at runtime.
I'm also working on some changes that will make this car work better.
So that said, such a model won't run well, due to the overhead of referring very small geometry with a lot of calls. On my desktop computer, I can't even get good performance.
It's important to group meshes together that are close from each other and of similar size and of same material.

Will there be any update on memory size change option to resolve rendering issue ?

Yes, thanks for the reminder: I think @pixelflinger and I have discussed increasing this constant for the WebGL build only, because the WebGL build is more likely to be used as a generic viewer.  For Android builds, we probably want to avoid increasing this limit.

The handle limit has been increased via #4201.

Thanks for the help.
It seems the changes available in version 1.10.5. But, the android version 1.10.5 not available ( Could not find com.google.android.filament:filament-android:1.10.5 )

@prideout  @pixelflinger
Tried to load car.zip with latest filament update 1.10.6 and facing same crash issue.
Have added crash logs
filament_crash_log.txt
Thnx for ur effort.


Remove requirement to have first screen

During my initial playing around with the firmware I dynamically configured some screens (ie wrote a NodeRed flow that could automatically add a screen with tiles depending on some other external condition). When removing the first screen ie Screen ID #1, my hope was that the next screen ID would be shown first.
(As an aside, if you upload custom icons to screen ID #1 then remove that screen, the screen plus its tiles is shown still, but with blank icons, which seems janky.)
It’s doubtless always possible to workaround this externally, ie shift all the screens down by one when you want to effectively delete screen 1, but arguably it just makes it a bit more fiddly to work with in certain scenarios.
Totally understand if this is not priority, but how easy is it to remove this limitation?

I compare the screen1 (Home Screen) to the home screen of a smartphone. It's kind of a constant in this very flexible system.
In other words, I would like to keep this "restriction".
But your issue highlights something else (which might be related to your issue) :
We don't have an API to clearly delete tiles and screens. This would be essential for a backend as you introduced which dynamically creates/deletes screens and tiles.

Thanks for separating those two concepts out - agree that it would be beneficial to delete tiles and screens. This was one of the first thing I struggled with. Instead I just re-upload screens then reboot. This works to "remove" screens from before. Problem is that if you don't replace the first screen with something then those tiles persist somehow, even though they are not configured to exist.
So working on the basis that there should be an API for deleting tiles and screens, then deleting tiles from the first screen would work, but deleting the first screen would essentially do nothing. That would work from where I'm sitting!

I assume these persisting tiles were configured via the adminUI which stores the configuration in SPIFFS and restores on start up.
You could use the adminUI to delete all configured tiles or erase the flash, program via USB and start from scratch.


How to detect whether User  resize on widget  width or height or cross section.

I have a requirement. Initially, All widgets are set to full height with respect to widget content height.
case 1.
when the user resizes his widget (resizes more height but widget has no content ) is shrinks to default.
case 2.
If the widget has more content but he can wish to shrink height as his desires.
case 3.
if the user resizes width, the content like the chart , table data is aligned with grid width.
I have done case 1, case 3. To do the case 2  in need to detect whether the user resizes widget on width or height. Thanks

@zohokumaresan By comparing the width and height prior to resize with the width and height post-resize, you're able to determine this. I'm closing this ticket because it's not functionality for us to add to the library, but if you'd like to post a jsfiddle I can try to offer some help.


new Installation of mmm-shelly-pm: Errors and

I installed the module and did the configuration.
But when i restart the magic mirror the PI is overheating and overloaded.
The consumption data for a day is working, but the actual power not.
When i open the path of the sensor "http://<IP_ADDRESS>/rpc/Shelly.GetStatus" in my browser i see the datas from the Shelly-PM.
Do you have an Idea what the problem is?
Below you find my logs.
I have installed<EMAIL_ADDRESS>at a raspberry 3b+.
mm-error.log:
[06.03.2023 19:46.45.532] [ERROR] MagicMirror² will not quit, but it might be a good idea to check why this happened. Maybe no internet connection?
[06.03.2023 19:46.45.533] [ERROR] If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
[06.03.2023 19:46.45.560] [ERROR] Whoops! There was an uncaught exception...
[06.03.2023 19:46.45.565] [ERROR] Error: undefined is not a valid uri or options object.
at request (/home/pi/MagicMirror/modules/MMM-Shelly-PM/node_modules/request/index.js:44:11)
at Class.socketNotificationReceived (/home/pi/MagicMirror/modules/MMM-Shelly-PM/node_helper.js:30:4)
at Socket. (/home/pi/MagicMirror/js/node_helper.js:108:11)
at Socket.emit (node:events:526:28)
at Socket.emitUntyped (/home/pi/MagicMirror/node_modules/socket.io/dist/typed-events.js:69:22)
at /home/pi/MagicMirror/node_modules/socket.io/dist/socket.js:475:39
at processTicksAndRejections (node:internal/process/task_queues:78:11)
at runNextTicks (node:internal/process/task_queues:65:3)
at process.processImmediate (node:internal/timers:437:9)
mm-out.log:
[06.03.2023 19:46.55.660] [LOG]   Error: ETIMEDOUT
at Timeout. (/home/pi/MagicMirror/modules/MMM-Shelly-PM/node_modules/request/request.js:848:19)
at listOnTimeout (node:internal/timers:559:17)
at process.processTimers (node:internal/timers:502:7) {
code: 'ETIMEDOUT',
connect: true

I have exactly the same problem with the same error. Have you found any solution=

I believe there is a bug in https://github.com/stefanjacobs/MMM-Shelly-PM/blob/master/MMM-Shelly-PM.js#L30 where the variable should be called self.config.ShellyApiPath and not self.config.uri.
See also https://github.com/stefanjacobs/MMM-Shelly-PM/issues/2 for setting the right refresh interval variable name in the config.
I only have a Shelly PRO 3EM and cannot fully test the logic for Shelly PM devices.

Fixed, if anyone is still reading here ;-)


Unable to Login on the iOS App

I am on version 1.4 I get the following error message "Unknown error with status code 403"

As of 1/12/2021 you have to sign in with your API key.

As of 1/12/2021 you have to sign in with your API key.

Hello, this is because the app haven't yet supported WebAuth. As you said for now you can log in using API key. Sorry for the inconvenience, we are working on it.

Hello, this is because the app haven't yet supported WebAuth. As you said for now you can log in using API key. Sorry for the inconvenience, we are working on it.


[9.x] Test Improvements

Testbench Core 7.24.0 fixed some configuration value leaks between tests due to the way it set environment values including APP_KEY, APP_DEBUG etc.
https://github.com/orchestral/testbench-core/releases/tag/v7.24.0

Nice. Probably this should go out as v9.53.0 (possibly the last ever minor version bump on the 9.x series). 🎉


64 bit Compilation

I try to install into OpenIndiana Hipster 201705, which is a OpenSolaris / Solaris 10 derived OS
I downloaded leveldb-master.zip from Github
Unzip the item
runs :
$ gmake
and finally, copied the resulted gmake objects :
$ cp out-static/lib* out-shared/lib* /usr/local/lib
$ cd include
$ cp -r leveldb /usr/local/include
Somehow, the following "Linux Installation Guide for leveldb" were unable to be executed, due to unavailability of that command :
$ ldconfig
So, after this, I tried to compile imposm3, which uses leveldb as one of its requirements.
But it seems the installed objects were 32 bit, as the errors were :
ld: fatal: file /usr/local/lib/libleveldb.so: wrong ELF class: ELFCLASS32
collect2: error: ld returned 1 exit status
These were the compilation string :
g++  -I. -I./include -std=c++0x -fno-builtin-memcmp -D_REENTRANT -DOS_SOLARIS -DLEVELDB_PLATFORM_POSIX -DLEVELDB_ATOMIC_PRESENT -O2 -DNDEBUG db/autocompact_test.cc out-static/db/builder.o out-static/db/c.o out-static/db/db_impl.o out-static/db/db_iter.o out-static/db/dbformat.o out-static/db/dumpfile.o out-static/db/filename.o out-static/db/log_reader.o out-static/db/log_writer.o out-static/db/memtable.o out-static/db/repair.o out-static/db/table_cache.o out-static/db/version_edit.o out-static/db/version_set.o out-static/db/write_batch.o out-static/table/block_builder.o out-static/table/block.o out-static/table/filter_block.o out-static/table/format.o out-static/table/iterator.o out-static/table/merger.o out-static/table/table_builder.o out-static/table/table.o out-static/table/two_level_iterator.o out-static/util/arena.o out-static/util/bloom.o out-static/util/cache.o out-static/util/coding.o out-static/util/comparator.o out-static/util/crc32c.o out-static/util/env_posix.o out-static/util/env.o out-static/util/filter_policy.o out-static/util/hash.o out-static/util/histogram.o out-static/util/logging.o out-static/util/options.o out-static/util/status.o out-static/port/port_posix.o out-static/port/port_posix_sse.o out-static/util/testharness.o out-static/util/testutil.o -o out-static/autocompact_test -lpthread -lrt
cc -I. -I./include -fno-builtin-memcmp -D_REENTRANT -DOS_SOLARIS -DLEVELDB_PLATFORM_POSIX -DLEVELDB_ATOMIC_PRESENT -O2 -DNDEBUG -c db/c_test.c -o out-static/db/c_test.o
cc: Warning: Option -fno-builtin-memcmp passed to ld, if ld is invoked, ignored otherwise
So, how do I set up "configure" command, as "configure.ac" or "configure.in" were missing ? So I can compile into 64 bit ?
Thank you,
Handojo

Since this bug was filed, the project has moved to cmake to configure the build.  That may or may not improve the situation for building on Solaris, as cmake puts less of the burden of maintaining compiler options for different platforms on the project that's trying to build.  If this is still relevant to you, you should probably try building the current master with cmake.

@adam-azarchs great point.
Going to close the issue. OpenSolaris is not supported so, while we'd be willing to review patches, we won't be investing into fixing this ourselves.


Question: Where is app.yaml located?

I wish to deploy library to Google App Engine. There is an app.yaml file required and the documentation states that "You can also deploy Library to GAE, using the included app.yaml." However, I cannot find the stated app.yaml file anywhere in the repository. Where can I find it?

Hi @pvizan-artefact! Thanks for your question.
This seems like a typo on our end — we include an app.json here. I believe that GAE also supports .json app config files, but if not, you should be able to use a json to yaml converter like this one to transform this json file into yaml.
Sorry about the confusion, we will update our documentation!

Thank you! On my side, I had an error when trying to deploy the app on Google App Engine whenever there was not a yaml file in the directory. I have tried to convert the json file to yaml as suggested, save it in the repository directory as app.yaml, and then ran the command: gcloud app deploy --project={my_project}
However, I get this error:
An error occurred while parsing file: [/Users/pablovizansiso/Code/library/app.yaml]
Unexpected attribute 'name' for object of type AppInfoExternal.

I did manage to find a file navigating through past commits called app.yaml. I manage to deploy the app and see this message at the end:
Setting traffic split for service [default]...done.
Deployed service [default] to [https://**your_project_id**.appspot.com]
You can stream logs from the command line by running:
  $ gcloud app logs tail -s default
To view your application in the web browser run:
  $ gcloud app browse --project=**your_project_id**

Still, if I then open the appspot link, I get a "Service Unavailable" message on the website. (probably this file is deprecated and that is the reason, but just wanted to point out that file does get me a bit further)