AttributeError: module 'torch.cuda' has no attribute 'custom_fwd'

Thank you for your open codes!
It seems that the version of the torch or cuda is not mismatched.
script/main_segmentation.sh: line 34: nvcc: command not found
MAC235
4
Traceback (most recent call last):
  File "examples/segmentation/main.py", line 18, in <module>
    from openpoints.dataset import build_dataloader_from_cfg, get_scene_seg_features, get_class_weights
  File "/home/lhj/pointcloud/PointNeXt-master/examples/segmentation/../../openpoints/dataset/__init__.py", line 6, in <module>
    from .scanobjectnn import *
  File "/home/lhj/pointcloud/PointNeXt-master/examples/segmentation/../../openpoints/dataset/scanobjectnn/__init__.py", line 1, in <module>
    from .scanobjectnn import ScanObjectNNHardest
  File "/home/lhj/pointcloud/PointNeXt-master/examples/segmentation/../../openpoints/dataset/scanobjectnn/scanobjectnn.py", line 5, in <module>
    from openpoints.models.layers import fps
  File "/home/lhj/pointcloud/PointNeXt-master/examples/segmentation/../../openpoints/models/__init__.py", line 5, in <module>
    from .backbone import *
  File "/home/lhj/pointcloud/PointNeXt-master/examples/segmentation/../../openpoints/models/backbone/__init__.py", line 1, in <module>
    from .pointnetv2 import PointNet2Encoder, PointNet2Decoder, PointNetFPModule
  File "/home/lhj/pointcloud/PointNeXt-master/examples/segmentation/../../openpoints/models/backbone/pointnetv2.py", line 16, in <module>
    from ..layers import furthest_point_sample, random_sample, LocalAggregation, three_interpolation, create_convblock1d
  File "/home/lhj/pointcloud/PointNeXt-master/examples/segmentation/../../openpoints/models/layers/__init__.py", line 7, in <module>
    from .group import grouping_operation, gather_operation, create_grouper
  File "/home/lhj/pointcloud/PointNeXt-master/examples/segmentation/../../openpoints/models/layers/group.py", line 76, in <module>
    class GroupingOperation(Function):
  File "/home/lhj/pointcloud/PointNeXt-master/examples/segmentation/../../openpoints/models/layers/group.py", line 79, in GroupingOperation
    @torch.cuda.custom_fwd(cast_inputs=torch.float32)
AttributeError: module 'torch.cuda' has no attribute 'custom_fwd'

I query the version via  conda list -f cudatoolkit and conda list -f pytorch , and it returns:
# packages in environment at /home/lhj/anaconda3/envs/openpoints:
#
# Name                    Version                   Build  Channel
cudatoolkit               11.1.74              h6bb024c_0    nvidia

# packages in environment at /home/lhj/anaconda3/envs/openpoints:
#
# Name                    Version                   Build  Channel
pytorch                   1.10.1          py3.7_cuda11.1_cudnn8.0.5_0    pytorch

The cuda version is 11.1 and the pytorch version is 1.10, which is same as the requirement. Therefore, the version of the pytorch and cuda is OK.
How can I fix this problem?

I comment the decorator in the class GroupingOperation(Function), and the training can be conducted normally.
class GroupingOperation(Function):

    @staticmethod
    # @torch.cuda.custom_fwd(cast_inputs=torch.float32)
    def forward(ctx, features: torch.Tensor, idx: torch.Tensor) -> torch.Tensor:
        """
        :param ctx:
        :param features: (B, C, N) tensor of features to group
        :param idx: (B, npoint, nsample) tensor containing the indicies of features to group with
        :return:
            output: (B, C, npoint, nsample) tensor
        """
        assert features.is_contiguous()
        assert idx.is_contiguous()

        B, nfeatures, nsample = idx.size()
        _, C, N = features.size()
        output = torch.cuda.FloatTensor(B, C, nfeatures, nsample, device=features.device)

        pointnet2_cuda.group_points_wrapper(B, C, N, nfeatures, nsample, features, idx, output)

        ctx.for_backwards = (idx, N)
        return output

What is the usage of this decorator?

Thanks.


Tooltip issues in IE, Microsoft Edge

Expected Behavior
the information in tooltips in IE are sometimes hanging off of the tooltip.
Current Behavior
Depending on how you hover the mouse over a data point, the text sometimes goes off the tooltip.
Possible Solution
Steps to Reproduce (for bugs)

Use IE 11 or MS Edge
go to https://eventbrite.github.io/britecharts/tutorial-stacked-area.html or https://eventbrite.github.io/britecharts/tutorial-line.html
hover over tooltip

Screenshots (if appropriate):

Context

Your Environment

Version used: 2.9.3
Browser Name and version: Internet Explorer 11, Microsoft Edge
Operating System and version: Windows 7, Windows 10

@Golodhros I am also facing the same issue for a tooltip when I have used a tooltip.valueFormatter() function.
For some points, tooltip label value gets out of the tooltip boundary, If we slightly move the cursor then it re-renders correctly.

I don't have access to IE11 in Mac now but I will test it with IE11 tomorrow in a working machine. By looking at the code, there is a fishy line that may cause these issues:
https://github.com/eventbrite/britecharts/blob/master/src/charts/tooltip.js#L363
I tried to find a similar case where tooltipRight.node().getBBox() is called and and found a thread that suggests that it may not work well in both IE10 and IE11:
https://stackoverflow.com/questions/16833304/scalable-vector-graphicssvg-getbbox-not-working-in-internet-explorer-10
If I manually put 0 instead of tooltipRight.node().getBBox().width in that line mentioned, it shows up like this:

So I suspect that there is something wrong with calling getBBox on the tooltip's right text node.

I also use a Mac and have been testing using virtualbox and the free images from microsoft:
https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
I just point the ip address of the host machine (mac) and port :8001 and the demos work.
I will also take a look at this issue since another thing I was working on had issues with getBBox and I had to use .node().getBoundingClientRect().width.
IE and Chrome/Safari/Firefox don't all use the same methods.

Hi, thanks for looking into this issue!
We did saw this issue time ago in IE11, but after some time looking into it I couldn't come up with a solution. I hope you can!

I just got my Windows 10 vm running and this is also occurring in Microsoft Edge as well.   going to update the ticket with this info.

We'll drop IE support.


feat: update Checkbox component to Diete v5

I would do 1. Typically checkboxes (and by extension switches) are not focused when clicked, only when navigating to them with the keyboard.


readbuffer

theres anyway that you can add a setting for the read buffer?so we can  set read ahead because the iptv streams buffer a lot at least for some of us with slow internet connections.

Your mean have 5 seconds or so ahead in the buffer before playing?
On May 15, 2017 4:46 AM, "draco37"<EMAIL_ADDRESS>wrote:

theres anyway that you can add a setting for the read buffer?so we can set
read ahead because the iptv streams buffer a lot at least for some of us
with slow internet connections.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Fleker/CumulusTV/issues/283, or mute the thread
https://github.com/notifications/unsubscribe-auth/ADI581i2pX37Mg-wO1LI24CGs48VsaNvks5r6BDIgaJpZM4Na1Vx
.

yes or let us choose even more seconds if the internet connection is too slow.


Update Rubocop

Fixes failing Travis

Closing out old PR's, this is many years after the fact so I'm assuming it's super out of date! Closing 👍


KubeletNotReady Ubuntu 19.10 raspberry pi 3 B+

Please run microk8s.inspect and attach the generated tarball to this issue.
We appreciate your feedback. Thank you for using microk8s.
Hi, I have followed the instruction to install the image ubuntu 19.10 on raspberry pi 3 B+ and I managed to install microk8s.  However, when I do describe node ubuntu I have got the Ready is False:
container runtime status check may not have completed yet, missing node capacity for resources: ephemeral-storage.
How do I resolve the issue?  Thanks for your help.
inspection-report-20191107_184157.tar.gz

@wpoosanguansit have a look at this issue: https://github.com/ubuntu/microk8s/issues/728#issuecomment-548722833
How does your /proc/cgroups look like? It is possible you need to update /boot/firmware/nobtcmd.txt by appending cgroup_enable=memory cgroup_memory=1 and rebooting.

Thank you.  I will recheck that.

On Nov 7, 2019, at 11:07 AM, Konstantinos Tsakalozos<EMAIL_ADDRESS>wrote:
nobtcmd.txt

Hi @ktsakalozos I did add the cgroup as recommended and rebooted.  However, now I am seeing
microk8s.status
microk8s is not running. Use microk8s.inspect for a deeper inspection.
ubuntu@ubuntu:~$ microk8s.kubectl get no
Unable to connect to the server: net/http: TLS handshake timeout
ubuntu@ubuntu:~$ microk8s.inspect
Inspecting services
Service snap.microk8s.daemon-cluster-agent is running
Service snap.microk8s.daemon-flanneld is running
Service snap.microk8s.daemon-containerd is running
Service snap.microk8s.daemon-apiserver is running
Service snap.microk8s.daemon-apiserver-kicker is running
Service snap.microk8s.daemon-proxy is running
Service snap.microk8s.daemon-kubelet is running
Service snap.microk8s.daemon-scheduler is running
Service snap.microk8s.daemon-controller-manager is running
Service snap.microk8s.daemon-etcd is running
Copy service arguments to the final report tarball
Inspecting AppArmor configuration
Gathering system information
Copy processes list to the final report tarball
Copy snap list to the final report tarball
Copy VM name (or none) to the final report tarball
Copy disk usage information to the final report tarball
Copy memory usage information to the final report tarball
Copy server uptime to the final report tarball
Copy current linux distribution to the final report tarball
Copy openSSL information to the final report tarball
Copy network configuration to the final report tarball
Inspecting kubernetes cluster
Inspect kubernetes cluster
Thanks for your help.
inspection-report-20191107_205226.tar.gz

I needed to change the localhost from <IP_ADDRESS> to <IP_ADDRESS> to have the kubectl get no to work.  Now the node is ready.  Thanks.


chore: Add FAQ about auth

Description

We've had some questions about auth, so I wanted to add it to the FAQs.
What type of PR is this? (check all applicable)

[ ] 🍕 Feature
[ ] 🐛 Bug Fix
[x] 📝 Documentation Update
[ ] 🎨 Style
[ ] 🧑💻 Code Refactor
[ ] 🔥 Performance Improvements
[ ] ✅ Test
[ ] 🤖 Build
[ ] 🔁 CI
[ ] 📦 Chore (Release)
[ ] ⏩ Revert

Related Tickets & Documents

closes #274
Mobile & Desktop Screenshots/Recordings

Steps to QA

Added to documentation?

[ ] 📜 README.md
[x] 📓 docs.opensauced.pizza
[ ] 🍕 dev.to/opensauced
[ ] 📕 storybook
[ ] 🙅 no documentation needed

[optional] Are there any post-deployment tasks we need to perform?
[optional] What gif best describes this PR or how it makes you feel?

@BekahHW I've approved this based on the changes. I'm on my mobile phone and unable to check the semantic failing test thoroughly.
If it's not a problem, this is ready to be merged.


Repository.Create() returning empty SaveResponse

I'm calling a Repository to create an entity; the entity is created but the SaveResponse is returning empty. It should be returning the EntityId of what it just created, correct?

Ahh...user error, of course. In this case I was overriding ExecuteSave() in that repository since the row creation is happening in a stored procedure, not through Serenity code. For those of you doing that, you'll need to set Response.EntityId yourself, not just Row.EntityId


can't upload failed result, response 404

for failed result always got this

please help

hi there
thanks for your message
i think it has to do, that your user might not have enough permissions in testrail to upload and modify attachments and screenshots? could you check the permissions maybe and let me know
thanks


Closure parameters conflicting with function parameters should be an error

Not sure what I meant by this. Can't think of any problems apart from normal shadowing which is legal behaviour.


updating marked lib due to security thing

Bump the version 👏

Since this just had it's first birthday I thought I should merge it.
Happy birthday pull request #1


bugfix - Changed type on the button element

Before submitting the PR:

[x] Does your PR reference an issue? If not, please chat to the team on Discord or GitHub before submission.
[x] Did you update and run tests before submission using npm run test?
[x] Does your branch follow our naming convention? If not, please amend the branch name using branch -m new-branch-name
[ ] Did you update documentation related to your new feature or changes?

What does your PR address?
Fixes #700
Changed type on the button element from FileButton to "button" to stop the default submit behaviour that would result in premature form submission.

Thanks @Caelestis94 I'll go ahead and merge. This will be included in the next release.


horoscope.css, example.css

Hi, not included horoscope.css and example.css on dist or example folder. chart look like big black dot

Hi @erenozkul! Have you found a solution in the meantime?
I have not forgotten the issue. Currently I am very busy with job and stuff, but the moment I will have some time, I will revise your issue.

Hi @slissner, didn't resolved the problem, we use to another package.


Verup nextjs 12

https://nextjs.org/docs/upgrading#upgrading-from-11-to-12

https://nextjs.org/docs/advanced-features/output-file-tracing

wait for 12.1


Create PropertiesProducerOptions

Create PropertiesProducerOptions class which will have a laconic default constructor with default "known-to-work" options and allows using the jre-like properties initialization.

Decline


Open NERDTreeTabs automatically when vim starts up if no files were specified.

The NERDTreeTabs is a awesome plugin, I like it very much. But I have a question. I want to open NERDTreeTabs automatically when vim starts up if no files were specified. Therefore, I write the code below. But it don't work. Vim open NERDTree but not NERDTreeTabs. Why? And is there other solution?
autocmd StdinReadPre * let s:std_in = 1
autocmd VimEnter * if argc() == 0 && !exists('s:std_in') | execute ':NERDTreeTabsOpen' | endif

Facing the same issue! Help greatly appreciated.

Replace NERDTreeTabsOpen with just NERDTree
It should work if you want just to show the tree.

As a work around, you can use vim . -- note the . after vim. This will open the current directory in NERDTree.

This worked for me:
au VimEnter NERD_tree_1 enew | execute 'NERDTree '.argv()[0] | let g:nerdtree_tabs_open_on_console_startup=1

That way if you open a directory instead of a file (e.g. vim .) NERDTree should open automatically and NERDTreeTabs should be enabled.


Burn cosmos native eth tokens after use

Closes: https://github.com/cosmos/peggy/issues/147
This PR implements burns of native cosmos assets on Ethereum, returning them to the Cosmos blockchain. To test this feature, execute this command after following the "Native Cosmos assets to Ethereum" section in https://github.com/cosmos/peggy/pull/185:
yarn peggy:burn $(ebcli keys show testuser -a) 0x409Ba3dd291bb5D48D5B4404F5EFa207441F6CbA 2

Check the account's balances to see that they've been returned:
ebcli q account $(ebcli keys show testuser -a)

This PR is blocked by https://github.com/cosmos/peggy/pull/185.

For contributor use:

[x] Targeted PR against correct branch (see CONTRIBUTING.md)
[x] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[x] Code follows the module structure standards.
[ ] Wrote unit and integration tests
[x] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added  relevant godoc comments.
[x] Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
[x] Re-reviewed Files changed in the Github PR explorer

For admin use:

[x] Added appropriate labels to PR (ex. WIP, R4R, docs, etc)
[x] Reviewers assigned
[ ] Squashed all commits, uses message "Merge pull request #XYZ: [title]" (coding standards)

do we still need payable?

Removed in https://github.com/cosmos/peggy/pull/190/commits/6e98ef64244eb9a4de8c2142719475adc08d58a2

LGTM and seems to work. I added a couple lines to the getAccountBalance command to check the token supply to confirm the tokens are in fact gone at this point. Not necessary might be good to put in a standalone command at some point.
    let totalWei, totalEth
    totalWei = new BigNumber(await tokenInstance.totalSupply())
    totalEth = totalWei.div(new BigNumber(10).pow(decimals.toNumber()))
    console.log(`Total supply of token is ${totalEth} (${totalWei} with ${decimals} decimals)`)

I'm a little confused about this merging strategy. it looks like this PR is going into cosmos:dm-namespacing-solidity but shouldn't it be going into denalimarsh:dm-namespacing-solidity?

I'm a little confused about this merging strategy. it looks like this PR is going into cosmos:dm-namespacing-solidity but shouldn't it be going into denalimarsh:dm-namespacing-solidity?

Yes, that's correct. Looks like I can't change the base repo (?), so I can make a new PR in my fork or change the base branch to cosmos:master after https://github.com/cosmos/peggy/pull/185 is merged. Happy to do either, or a different option if you prefer.

I'm able to change the base too it seems, merging into master now!


[ADD]: SOLAR SYSTEM'S OBJECTS WEIGHT CALCULATOR ✨

Close #2797
Checklist:

[x] I have mentioned the issue number in my Pull Request.
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have created a helpful and easy to understand README.md

Please merge this PR @TusharKesarwani, @pranjay-poddar, @Saurabh-kumar09 & @MohitGupta121.


Failed to build my project because of cardinalmobilesdk dependency

PayPal Android SDK Version
1.0.0
Environment
Both
Android Version & Device
No response
PayPal dependencies
implementation("com.paypal.android:paypal-native-payments:1.0.0")
implementation("com.paypal.android:payment-buttons:1.0.0")

Describe the bug
Since today, cannot build my project because cardinalmobilesdk dependency of paypal SDK is not resolved.
Maybe credentials to access https://cardinalcommerceprod.jfrog.io are deactivated on cardinal jfrog repository.
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:checkReleaseDuplicateClasses'.
> Could not resolve all files for configuration ':app:releaseRuntimeClasspath'.
   > Could not find org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.7-2.
     Searched in the following locations:
       - https://dl.google.com/dl/android/maven2/org/jfrog/cardinalcommerce/gradle/cardinalmobilesdk/2.2.7-2/cardinalmobilesdk-2.2.7-2.pom
       - https://repo.maven.apache.org/maven2/org/jfrog/cardinalcommerce/gradle/cardinalmobilesdk/2.2.7-2/cardinalmobilesdk-2.2.7-2.pom
       - https://jitpack.io/org/jfrog/cardinalcommerce/gradle/cardinalmobilesdk/2.2.7-2/cardinalmobilesdk-2.2.7-2.pom
       - https://cardinalcommerceprod.jfrog.io/artifactory/android/org/jfrog/cardinalcommerce/gradle/cardinalmobilesdk/2.2.7-2/cardinalmobilesdk-2.2.7-2.pom
     Required by:
         project :app > project :feature:feature-deposit > com.paypal.android:paypal-native-payments:1.0.0 > com.paypal.checkout:android-sdk:1.1.0

To reproduce
Add Paypal dependencies on project without gradle cache and build.
Expected behavior
dependency is available
Screenshots
No response

same issue https://github.com/paypal/paypal-android/issues/250

We have determined this is an issue with the availability of Cardinal's SDK version 2.2.7-2, and we are working with the Cardinal team to get it resolved as soon as possible. We understand that this is blocking builds and CI so we are urgently working to resolve and we appreciate your patience! We will post any additional updates here.

This issue was resolved by JFrog and Cardinal - builds and CI should be working again! Closing this issue, but please re-open if you continue to experience it


Exceptions are grouped up by messages instead of stacktraces

The issue is that all NullReferenceException have got the same messages so they are added to the same group when I look at them on the App Center website. Would it be possible to take into account the stacktrace to group them instead of the message? In my opinion that would make more sense as different crashes happening at different locations ends up in the same group because of that. My workaround was to generate a hash code based on the stacktrace and to prepend it to the message to separate them into different groups.

Our engineering team will have the bandwidth to further investigate this bug next week. I'll post an update then. Thanks for the patience!

Update: our team hasn't had a chance to investigate this yet. This is prioritized and we will look at it as soon as we have the bandwidth. Thanks for everyone's patience.

Hi all! So our engineering team spent a few days looking at this. For context, our grouping logic takes into account many different factors including the stack trace, line numbers, exception message, method and class name.
It looks like some crashes are being grouped by the exception message because our backend is not correctly parsing the class and method names. At this time we are unsure what the underlying root cause is, and due to other priorities, we won't have time to further investigate at the moment. I will monitor this thread and see if this is affecting more users as this might help us spot trends and troubleshoot the problem.
In the meantime, you can search by method and class names so hopefully, that helps you filter your relevant crash groups. I understand this is a less than ideal experience and I will update this thread if we have any other findings. Thanks!

@winnieli1 is it possible to document current grouping logic in the help section on the website? thanks

Hmm... Are you still haven't time to investigate that annoying feature/bug?

Any news?

This still seems to be an issue. The following 2 exceptions are grouped for me, which does not make sense in my opinion:
"type": "RestEase.ApiException",
"message": "GET \"https://example.com/api/v1/do/something/1\" failed because response status code does not indicate success: 400 (Bad Request).",

"type": "RestEase.ApiException",
"message": "GET \"https://example.com/api/v1/do/someotherthing/456\" failed because response status code does not indicate success: 400 (Bad Request).",

I obfuscated the URLs. Also the Stacktraces are different.

We also have occurrences of exceptions that have both different stack traces (same exception type) and different messages, yet they are grouped together.
I'd say that the exceptions should be grouped only if they have the same stack trace and exception type - in the example above it's fine to have under the same group multiple RestEase.ApiException reports if they have the same stack trace (even if they report different http status codes via their message property).
Also, in the example above, having the same stack trace and exception type should mean most of the time the same URL.

Any progress on this, please?

We're facing similar issues with iOS / Objective-C crash reports. There are many different crash reports that end up grouped together and the only thing they have in common is the top line of the stack trace: libobjc.A.dylib     objc_msgSend
Any news on this?

@guperrot Any update on this? I'm unsure @winnie is still a Microsoft member according to her GitHub page.
This grouping stuff has hidden important issues inside less important issues.


Update Enable-SPUserSolutionAllowList.md

Filled in placeholder text.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-server/Enable-SPUserSolutionAllowList.md
:white_check_mark:Succeeded
View (sharepoint-ps)

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


Design agent architecture

Description
With modular datastores in mind we need to define a concept for the entire agent.
Outcome

[x] System which is capable of loading external "datastore plugins"
[x] System for live-reloading of configuration
[x] Documented top-level software architecture (including module structure)
[ ] Minimal implementation to verify functionality

Component diagram which meets outcomes 1-3 created in Wiki -> Software design -> Components

Plugins can be easily integrated via Go plugins
The config (which plugin to load) can be provided as yaml/main-args

Also have a look at this illustration of the internal API transformation

@dcseifert  Closing, because already finished


Docker Based Jitsi Setup

How can I achieve this in a Docker-based Jitsi environment? Also, what do you mean by '{api_prefix}'?

I'm assuming you're referring to event_sync.
api_prefix refers to the base url for the endpoint that should receive the calls. For example, if want the module to call https://events.yourapp.com/jitsi/events/room/created when a room is created, then in the config you would set:
api_prefix = "https://events.yourapp.com/jitsi"

I'm afraid I've never deployed this with with docker-based Jitsi so can't give you exact steps, but there are those in the community that have done so. Perhaps try asking in this thread -- https://community.jitsi.org/t/events-sync-module-does-not-work/132647/6?u=shawn

Sorry for not mentioning details earlier. I am trying to integrate the custom prosody module https://github.com/jitsi-contrib/prosody-plugins/tree/main/event_sync with our setup. Could you please help me on that or Is there a way to retrieve all conference details from our server, including the conference name, attendee first names, last names, emails, number of participants, total conference time, start time, end time of the conference, and information for each attendee?

As long as the lua process can resolve the hostname and reach the service, sure.


New package: Mzdyl.LiteLoaderQQNT_Install.PyInstaller version 1.17

Checklist for Pull Requests

[x] Have you signed the Contributor License Agreement?
[ ] No issue related.

Manifests

[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Manual validation


Change github to HTTPS in Bundler 2+

As part of shipping Bundler 2 with "no brainer" changes that are technically breaking, we should update the github Gemfile DSL shortcut to use HTTPS instead of HTTP, and we should remove git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } from the Gemfile generated by bundle init and generated by bundle gem foo.

I am looking for an open source project to get involved in, and I was recommended by a friend to start with Bundler. I'll try solving this one.

a few questions:
is running $ bin/rake spec on a clean fork of the development master supposed to spit out hundreds of errors?
Do you want the relevant code simply commented out, saying that it used to be there, or do you want it outright removed?
Do you also want to remove git_source(:bitbucket) and git_source(:gist)?

@gavrieltal I'm currently working on this issue. You should checkout our help wanted/good first issue tags that has a list of issues that we think are good first new contributors to get started on.

is running $ bin/rake spec on a clean fork of the development master supposed to spit out hundreds of errors?

If I recall correctly, you need to run bin/rake spec:deps first.

I got these error messages, don't know what it means entirely:
Checked in 'GEM_PATH=/home/gavriel/.gem/ruby/2.5.0:/var/lib/gems/2.5.0:/usr/lib/x86_64-linux-gnu/rubygems-integration/2.5.0:/usr/share/rubygems-integration/2.5.0:/usr/share/rubygems-integration/all', execute `gem env` for more information (Gem::MissingSpecError)
Could not find 'ronn' (~> 0.7.3) among 47 total gem(s)
Checked in 'GEM_PATH=/home/gavriel/.gem/ruby/2.5.0:/var/lib/gems/2.5.0:/usr/lib/x86_64-linux-gnu/rubygems-integration/2.5.0:/usr/share/rubygems-integration/2.5.0:/usr/share/rubygems-integration/all', execute `gem env` for more information (Gem::MissingSpecError)
/usr/bin/ruby2.5 -S gem install --no-document --conservative 'automatiek:~> 0.1.0' 'mustache:= 0.99.6' 'rake:~> 10.0' 'rdiscount:~> 2.2' 'ronn:~> 0.7.3' 'rspec:~> 3.6' 'rubocop:= 0.50.0'
Building native extensions. This could take a while...
ERROR:  Error installing rdiscount:
       ERROR: Failed to build gem native extension.

   current directory: /var/lib/gems/2.5.0/gems/rdiscount-<IP_ADDRESS>/ext
/usr/bin/ruby2.5 -r ./siteconf20181121-12145-1u253ii.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in /var/lib/gems/2.5.0/gems/rdiscount-<IP_ADDRESS> for inspection.
Results logged to /var/lib/gems/2.5.0/extensions/x86_64-linux/2.5.0/rdiscount-<IP_ADDRESS>/gem_make.out
Building native extensions. This could take a while...
ERROR:  Error installing ronn:
       ERROR: Failed to build gem native extension.

   current directory: /var/lib/gems/2.5.0/gems/rdiscount-<IP_ADDRESS>/ext
/usr/bin/ruby2.5 -r ./siteconf20181121-12145-8qf0vf.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1
...```

I had to install a number of packages to get past this point, including ruby-dev, rubocop, ruby-full, and ruby-build. I don't know that all of them are necessary per se. I'm still trying to get my fork to run spec cleanly (spec:deps works now), but I've moved my conversation onto slack. Maybe I'll write some docs about my experience if things work out.


How to choose？

Team planning use phaser，You recommend the use for version 2.6 or 3? Will the next 2.6 versions be updated?
--Sorry，English is not good

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Phaser 2 use PIXI and you can find many information from internet.
我三个星期前开始用 Phaser 3，但是当前版本还有不少问题待解决，中途遇到不少 Bug 和坑，网上很少有 Phaser 3 的文章。如果我从头选的话，估计会更慎重一点。
但是由于以后肯定会迁移到 Phaser 3，你也可以直接用 3。

Phaser CE is the continuation of Phaser 2.6 that is actually at the 2.10.x, while Phaser 3 is the new version of phaser made without PixiJS

Thank you for your input. We'd really like to keep GitHub issues specifically for actual issues with the library. Therefor please ask coding support questions like this in the Phaser forum. If you prefer direct chat then you could use Slack or Discord. Or even Stack Overflow with the correct tag.


Fix tooltip implementation does not match the designs

Before:

After:

Which issue does this PR address?
Closes #1761

@andreasgeier Can you please have a look?

Updated the PR with even smaller triangle. Previous fix:

Related to https://github.com/zeebe-io/zeebe-modeler/pull/194#issuecomment-609698874

Looks good from my perspective. We can merge this after Andreas approves!

✅ Design review done. Tooltip arrow looks as expected.


jpeg compression / quality

Hi everybody
First of all thank you for the great job.
I didn't find how I can set the image quality (jpeg compression). Of course, this topic explains how to set it with a WP filter. However I don't see any changes (file size) in case of TimberImage. Have I missed anything?
Thanx for helping.
Fj

Hi Fujo, have you tested this with new images after you have added the function to functions.php?

Hello connorjburton
Thank you for the answer. Yes, it works well.
However I thought that the jpeg was compressed on client request, once the file is called, like the resize function generates new files.
I would like to optimize the image weight but I want to keep the highest image quality on the server.
It could be a great feature if it was possible to define a jpeg compression through twig templates. This function will generates a new file with decreased quality. Like this we could easily manage website/images performance.
I mean something like this: {{post.get_thumbnail.get_src|resize(600, 400)|jpeg_quality(80)}}
Best,
Fj

Thanks for getting back to me. The original link you posted is just the WP filter for compression, it's not related to Timber itself, it will only effect new images, not existing images and won't compress at runtime.
However, with that said, it's possible there is scope for a compression filter in Timber, it's the question of is this something Timber should be handling or should be left to more fully fledged plugins (such as EWWW) to handle. Personally I am not sure how useful specifying a quality per image is, why would you do that over just setting a static quality for all images on the site?
My thoughts summed up:

Ensuring images adhere to the compression quality set by jpeg_quality regardless if they are new images or not is something I'd love to solve, as long as it's not a detriment to performance
I am not sure how useful a quality filter would actually be, open to hear thoughts on this

Be good to get @jarednova thoughts on this

@fujo and @connorjburton: I can see the need to set image-level quality settings, but I have to confess that it strikes me as an edge case. The syntax I'd recommend would be something like...
{{post.thumbnail.src | resize(600, 400) | quality(80)}}
The thing this opens up is a bunch of other potential image filters like black-and-white, tint, etc. All of which I can see certain valid use-cases for.
My desired pathway would be for this (and other image filters) to start in TimberSugar or as an image adjustment specific repo. As they demonstrate OH THIS IS REALLY IMPORTANT AND SHOULD BE IN CORE — then great! We can "graduate" them into the core codebase.

I agree, an image manipulation library for Timber would be a good idea, as there are lots of features that could be included.
@fujo, I'd reccomend something like EWWW for now, if you'd like to have a crack at this in Timber, you could do a PR to TimberSugar

Is there already someone who figured this out?

Hi,
You can do something like this:
class TwigExtension {

	public function __construct() {

		add_filter('get_twig', array($this, 'add_to_twig'));

	}

	public function add_to_twig($twig) {

		$filters = $this->getFilters();

		foreach ($filters as $filter)
			$twig->addFilter($filter);

		return $twig;

	}

	public function getFilters() {

		return array(
			new Twig_SimpleFilter('quality', array($this, 'quality')),
		);

	}

	public function quality($src, $quality) {

		$date     = date('Y/m');
		$path     = pathinfo($src);
		$dir      = wp_upload_dir($date);
		$filename = '/' . $path['filename'] . '-q' . $quality . '.' . $path['extension'];

		$img = wp_get_image_editor($src);

		$img->set_quality($quality);

		$newImg = $img->save($dir['path'] . $filename);

		return $dir['url'] . $filename;

	}

}

new TwigExtension();

And

or just

Hope it helps

I think this would be a fantastic extra parameter of the resize filter.  One simple suggestion would be to just add $image->set_quality($quality) to the run method of the /wp-content/plugins/timber-library/lib/Image/Operation/Resize.php plugin file above $result = $image->save($save_filename);.

Cool that the discussion on this starts again. And thanks to @columbian-chris for providing a pull request. I appreciate the work you put into that. And I hate be a party pooper, but I have my concerns about adding another parameter, which I want to explain here.
Are there valid use cases?
First, concerns have been raised in this issue whether it would be useful to set the image quality for individual images, or if all images should have the same quality. To this I can say: Yes, very much! There are a lot of use cases. Just last week we had a use case where we needed to set a certain quality for header images on a site, but not for any other images. The use case that @mwld mentioned plays into this as well. Setting a quality also depends very much on the type of image and how it is used (There’s an interesting article about this here: https://www.netvlies.nl/tips-updates/design-interactie/design-interactie/retina-revolution/).
Other requests for customizing the image
Setting the image quality is actually only one of some requests that want to add an additional parameter to the resize() function. I’m gonna list related requests here so that we can see the full picture that I think actually needs to be addressed.
Changing quality
This feature was already requested in the following pull requests:

TimberImage letterbox image quality option (693)
Q: TimberImage resizing and quality (925)

Upscaling and Retina

TimberImage Resize combined with Retina creates upscaled image, incorrect URL (404)
Timber Resize stretching images (1435)

Currently there are still errors and quirks when resizing. Timber doesn’t seem to check whether an image will be upscaled or not.  However, when using Retina images and related techniques, we deliberately want to upscale images, just with a smaller image quality. So we need a way to tell resize() how it should handle the height and the width parameters. Wouldn’t this call for another parameter?
Better control of resizing process

Feature Request: twig filter to resize & fit - no cropping (1332): We can control a max width and max height for an image, we have the letterbox filter, but there’s not enough control yet to proportionally resize an image to maximum dimensions when both width and height need to be set. This issue calls for another fit parameter.
Crop position with coordinates (772): We have different crop modes when resizing an image. But how could we handle a focal point? Yet another parameter that we could eventually add in the future, or extend the crop parameter?

Feature parity with WordPress

Extend image manipulation (629): This issue calls for flip and rotation functionality, which are actually missing pieces that would make the Timber image manipulation functionality match the requirements of a WP_Image_Editor class.

Parameters vs. query-style
I’m very much against adding additional parameters to the resize function like it was proposed in the pull request and I make the point for an arguments array instead of parameters.
Especially when handling images, we oftentimes only want to change one parameter. If that’s the last parameter, then we still have to repeat the defaults of all the other parameters. This is not very convenient. We have seen above that we could easily add three more parameters. How would we decide which parameters has more weight?
So instead of writing this:
ImageHelper::resize( 300, 200, true );

I suggest we use an array:
ImageHelper::resize( array(
    'width' => 300,
    'height' => 200,
    'crop' => true,
) );

And yes, I think we can put all the parameters in the array, because I think there’s not really a required parameter, not even the width. If a width is not provided, a default could be 0. When a height is provided, it would automatically set the width based on the ratio of the original image. If neither width nor height is provided, the returned result could be the same size as the original image. This query-style approach is very prevalent in WordPress, and I think it would make sense to use this more often.
With that, we could also incorporate a quality setting:
ImageHelper::resize( array(
    'width' => 300,
    'height' => 200,
    'quality' => 75,
) );

In this case, the generated image would have a quality of 75% of the original image. In Twig, this would look like this:

For brevity, we could also allow shorthands:

I realized that we actually use a similar style in Timmy, where we set how an image should be resized in a configuration, which is kind of the same as a query-style parameter, just globally set in a central place. For us it works well. But it is an opionated approach.
Other operations using quality
I guess the image quality is not something that is restricted to the resize function. It could also be used in all other filters that Timber provides: Letterbox, ToJpg, Retina, and probably future filters.
Where should we go from here?
I think we need to adapt our approach for handling images. And I realize this is going to be quite some work, if we consider the points above. There are actually more points we need to consider, where I’m not going to list the related issues and pull request, though:

Make images work with CDN
Converting to other image formats
Convert to other color profiles
Regenerating images
Responsive image markup helper

I do think we have a really good base. I don’t mean we should start from scratch. But the upcoming version 2 of Timber would actually be good moment to start introducing breaking changes like changing the parameters for resize(). For this, we have to consider how we want to handle future changes, so that the don’t have to introduce more breaking changes, but can build on a solid base that is extendable.
Maybe we need to think less about Twig filters? Twig filters are not the only way how images are handled when using Timber. I consider a Twig filter the solution for simple use cases. But I don’t like endless chaining either. Chaining can also lead to problems when the proper order is not considered.
That’s one reason why I’ve built Timmy, which I don’t want to promote here, but it gave me many insights into image handling. In my opinion, we should start from the PHP base. And we could think about making the image library work without the context of Timber. Did you know that the ImageHelper class can already be used with every normal WordPress theme? I’m going very far here, but what if the way Timber handles images could actually be a library on its own?
I don’t know what the best approach to handle so many different features would be. Maybe we need only one image manipulation function where different operations like letterbox and image format conversion like toJPG can hook into? I’m a little guilty of using this configuration style a lot:

What other approaches do we have?
And we need to think more about using global WordPress hooks to use settings. As you already know, image quality can already be filtered through wp_editor_set_quality. We should make sure we have the proper filters to control other manipulation values as well.
Oh man, this was a long answer 🙃. What’s everybody else thinking?

@gchtr What an extensive follow-up answer; thank you! So much great insight on this issue.
I personally like the idea of just adding on a single optional extra parameter to the resize filter for the current version to maintain backwards compatibility and maybe then focus on a long term plan for 2.x.

@gchtr thanks so much for your thoughtful (impassioned?) response on this. I share the concerns about runaway variables. Rather than wait, I think we can all agree that we should handle for the WP preferences (the wp_set_image_quality filter) and get that functionality in ASAP (I've opened pull request #1666 to address this).
My mind can generally handle about two arguments, after that there's no hope of remembering the order. Thus, this works for me...

but forget about

This is where the notion of args becomes useful...

And now that I see that actually written out, I can see why:

... is actually cleaner (despite having to write out the parameters for "w" and "h").
I think where I part with you is "manipulate" vs "resize." While "manipulate" is certainly more broad and versatile, "resize" describes what the template-writer is probably looking to accomplish 95% of the time (plus it's less characters and harder to misspell, which are real considerations).
I have no objection to making one an alias of the other if you think that helps keep things broad

I personally like the idea of just adding on a single optional extra parameter to the resize filter for the current version to maintain backwards compatibility and maybe then focus on a long term plan for 2.x.

@columbian-chris I’d be fine with that, too. But I guess the plan is to make 2.x the next version to come out.
@jarednova Yeah, I’m torn as well. I currently can’t come up with a better solution to handle all the different parameters.
Oh, and I didn’t think too much about the term "manipulate", to be honest.  I guess I used it more as a hint that we could also think about the word "resize". I thought if – in the future – we’ll maybe have a use case like the following, it would be more like a conversion than a resize, and manipulate could be a more general term:

But on the other hand, you’re right that "resize" is way easier to write and remember and probably covers 95% of the use cases, so I’m fine with leaving that as it is (without an alias).


Backport https://github.com/zulip/zulip/pull/27160 to 7.x branch.

Merged; the CI failure is a puppeteer failure that's clearly unrelated to this change.


Default user don't work

I made a shortcut in the Start menu with the following option:

"C:\Users\SurPa\AppData\Roaming\Arch Linux\Arch.exe" config --default-user surpaul

But when I click on this shortcut, cmd opens and closes immediately. When I try to run the same thing from a command line, nothing happens either.

Could you try reboot computer?
Please see issue #7

Sorry, did not see the closed issues.
This command should be entered once, after that the profile will be loaded by default? For some reason, I thought that I need to open each time with these arguments.
Thanks for ArchWSL and help!


Consumed flag needs to be Int

We implemented the consumed flag in the State as a Bool to remain closer to the isomorphism with parsec. However, for the error message system employed by Parsley, it is necessary to track the offset of the error messages. This means that the offsets will need to be kept in state, and at that point, it is easier to just use them instead of consumed.
We'll need to rework the combinators to use that before error messages are implemented. If we can get #2  resolved first, it may be interesting to see whether it is faster/slower than the Bool approach.

@david-davies might be of interest to you


SquareRootUnscentedKalmanFilter update function now takes state and covariance as inputs

This must merge before DRONE-595 is merged

Sorry, was supposed to merge with own fork.


Disable default Firebase events

Can't be done: https://github.com/firebase/quickstart-android/issues/370


ENYO-5751: Fix focusing a VirtualList list item within the viewport via scrollTo

Checklist

[x] I have read and understand the contribution guide

[x] A CHANGELOG entry is included

[ ] At least one test case is included for this feature or bug fix

[x] Documentation was added or is not needed

[ ] This is an API breaking change

Issue Resolved / Feature Added
A list does not perform scrolling if the new position is the same position as the current target position during the list is scrolling.
After #2030 is applied, a list stops its scrolling after a short period of idle time from the last scroll position change to prevent apps from overwhelming events. So, if another scrolling request (from apps by scrollTo API) occurs within the short period of idle time above, a list is treated as scrolling status and the new request is ignored when the target position is the same position as the current target position.
In normal cases, this behavior is fine regarding the scrolling position only. But, if a list handles another status (focus in this issue) beside a position, this behavior blocks a list from proper status updates since it is possible to check only positions and internal scrolling status inside a list.
Resolution
Changed internal logic not to ignore the new request when a focus option is set with a valid value.

Note: the fixed module is ui but the behavior of ui modules is not changed. The affected scenarios are moonstone cases.

Retargeted to develop. We will cherry pick into a release branch when required.


"Ready at" change for "Time Tracking > Overview"

Is your feature request related to a problem? Please describe.
I've been thinking for a while about the Overview tab in Time Tracking. I'm pretty sure the "Ready at" is displaying the wrong time when 2 different times are available.
Currently, if for example your fruit tree patches are ready and Calquat will be ready in an hour, in the overview tab you'll see "Ready at xx:xx" under fruit tree patches. The problem with this is that I keep harvesting my fruit trees late, because the the overview told me they weren't ready. This is amplified even more in the Special patches, when Hespori takes days, and cactus takes hours. you never know when it's ready without checking all tabs. It's annoying.
Describe the solution you'd like
My suggestion is to change the overview tab to display information on the NEXT ready plot in that category. This way if Hespori still has 24 hours left and my Cactus has 1 hour, i'll know to check back in 1 hour just by looking at the overview tab.
Image example
https://imgur.com/a/RxCGSyO

Duplicate of #9445


Remove warnings about benign situations (2.1)

I've extended the change done on https://github.com/godotengine/godot/commit/1e65c3c7019be69526c71aa09175010ba4a8e09f to Area2D-to-Area2D monitoring to Area2D-PhysicsBody2D and their 3D counterparts.
Fixes #9534.

The version for master has already been merged and considering this cannot cause any big problems, I'm merging.
My first merge in Godot!


Commands not working at all

After applying the sample code to try it out and see how it works, none of the interactive commands seem to work.  Even creating a new program and doing a straight copy-paste (changing the bot key of course) does nothing.
Does this feature work with the latest version of .Net or am I missing something?

Yes, it is working. I'm using the library with .Net Core 2.1, 3.0 and 3.1, everything is fine. Can you try SampleApp?

After applying the sample code to try it out and see how it works, none of the interactive commands seem to work. Even creating a new program and doing a straight copy-paste (changing the bot key of course) does nothing.
@Bristingr, does it work now? If so, you can close this issue 😅


Franka Panda DiffIK Example Not Working after adding Object with Free Joint

Hi @shivanshpatel35 and @kevinzakka  !
I'm running into a similar issue, though in my case, i've added a red_cube box geom to my scene.xml with a free joint which is causing some breaking changes to the diffik_nullspace.py code. I tried indexing the matrices, but indexing didn't work for me : /
The issue occurs when doing mujoco.mj_integratePos(model, q, dq, integration_dt) (see code below).
Please let me know if you have any pointers
The minimal XML I use for the task is provided:
<mujoco model="panda scene">
  <include file="panda_nohand.xml"/>

  <statistic center="0.3 0 0.35" extent="0.8" meansize="0.05"/>

  <visual>
    <headlight diffuse="0.6 0.6 0.6" ambient="0.1 0.1 0.1" specular="0 0 0"/>
    <global azimuth="120" elevation="-20"/>
  </visual>

  <asset>
    <texture name="grid" type="2d" builtin="checker" rgb1=".2 .3 .4" rgb2=".1 0.15 0.2" width="512" height="512"
      mark="cross" markrgb=".8 .8 .8"/>
    <material name="grid" texture="grid" texrepeat="1 1" texuniform="true"/>
  </asset>

  <worldbody>
    <light pos="0 0 1.5" dir="0 0 -1" directional="true"/>
    <geom name="floor" size="1 1 0.01" type="plane" material="grid"/>
    <body name="target" pos="0.5 0 .5" quat="0 1 0 0" mocap="true">
      <geom type="box" size=".05 .05 .05" contype="0" conaffinity="0" rgba=".6 .3 .3 .5"/>
      <site type="sphere" size="0.01" rgba="0 0 1 1" group="1"/>
    </body>

    <body name="red_cube">
      <freejoint/>
      <geom name="red_cube" type="box" size="0.05 0.05 0.05" rgba="1 0 0 1"/>
    </body>
  </worldbody>

  <!-- Panda Arm: 0 0 0 -1.57079 0 1.57079 -0.7853  -->
  <!-- Red Cube: 0.3 0 0 1 0 0 0 -->
  <keyframe>
    <key name="home" qpos="0 0 0 -1.57079 0 1.57079 -0.7853 0.3 0 0 1 0 0 0" ctrl="0 0 0 -1.57079 0 1.57079 -0.7853"/>
  </keyframe>
</mujoco>

The diffik_nullspace.py file i currently have is:
import mujoco
import mujoco.viewer
import numpy as np
import time
import os

# Integration timestep in seconds. This corresponds to the amount of time the joint
# velocities will be integrated for to obtain the desired joint positions.
integration_dt: float = 0.1

# Damping term for the pseudoinverse. This is used to prevent joint velocities from
# becoming too large when the Jacobian is close to singular.
damping: float = 1e-4

# Gains for the twist computation. These should be between 0 and 1. 0 means no
# movement, 1 means move the end-effector to the target in one integration step.
Kpos: float = 0.95
Kori: float = 0.95

# Whether to enable gravity compensation.
gravity_compensation: bool = True

# Simulation timestep in seconds.
dt: float = 0.002

# Nullspace P gain.
Kn = np.asarray([10.0, 10.0, 10.0, 10.0, 5.0, 5.0, 5.0])

# Maximum allowable joint velocity in rad/s.
max_angvel = 0.785

def main() -> None:
    assert mujoco.__version__ >= "3.1.0", "Please upgrade to mujoco 3.1.0 or later."

    # Load the model and data.
    model_path = os.path.join(os.path.dirname(__file__), "franka_emika_panda/scene.xml")
    model = mujoco.MjModel.from_xml_path(model_path)
    data = mujoco.MjData(model)

    # Enable gravity compensation. Set to 0.0 to disable.
    model.body_gravcomp[:] = float(gravity_compensation)
    model.opt.timestep = dt

    # End-effector site we wish to control.
    site_name = "attachment_site"
    site_id = model.site(site_name).id

    # Get the dof and actuator ids for the joints we wish to control. These are copied
    # from the XML file. Feel free to comment out some joints to see the effect on
    # the controller.
    joint_names = [
        "joint1",
        "joint2",
        "joint3",
        "joint4",
        "joint5",
        "joint6",
        "joint7",
    ]
    dof_ids = np.array([model.joint(name).id for name in joint_names])
    actuator_ids = np.array([model.actuator(name).id for name in joint_names])

    # Initial joint configuration saved as a keyframe in the XML file.
    key_name = "home"
    key_id = model.key(key_name).id
    q0 = model.key(key_name).qpos

    # Mocap body we will control with our mouse.
    mocap_name = "target"
    mocap_id = model.body(mocap_name).mocapid[0]

    # Pre-allocate numpy arrays.
    jac = np.zeros((6, model.nv))
    diag = damping * np.eye(6)
    eye = np.eye(model.nv)
    twist = np.zeros(6)
    site_quat = np.zeros(4)
    site_quat_conj = np.zeros(4)
    error_quat = np.zeros(4)

    with mujoco.viewer.launch_passive(
        model=model,
        data=data,
        show_left_ui=False,
        show_right_ui=False,
    ) as viewer:
        # Reset the simulation.
        mujoco.mj_resetDataKeyframe(model, data, key_id)

        # Reset the free camera.
        mujoco.mjv_defaultFreeCamera(model, viewer.cam)

        # Enable site frame visualization.
        viewer.opt.frame = mujoco.mjtFrame.mjFRAME_SITE

        while viewer.is_running():
            step_start = time.time()

            # Spatial velocity (aka twist).
            dx = data.mocap_pos[mocap_id] - data.site(site_id).xpos
            twist[:3] = Kpos * dx / integration_dt
            mujoco.mju_mat2Quat(site_quat, data.site(site_id).xmat)
            mujoco.mju_negQuat(site_quat_conj, site_quat)
            mujoco.mju_mulQuat(error_quat, data.mocap_quat[mocap_id], site_quat_conj)
            mujoco.mju_quat2Vel(twist[3:], error_quat, 1.0)
            twist[3:] *= Kori / integration_dt

            # Jacobian.
            mujoco.mj_jacSite(model, data, jac[:3], jac[3:], site_id)

            # Damped least squares.
            dq = jac.T @ np.linalg.solve(jac @ jac.T + diag, twist)

            # Nullspace control biasing joint velocities towards the home configuration.
            # I broke down the computation of the nullspace control into Left and Right hand side
            # I checked the shapes to ensure that the shapes matched
            lhs = eye - np.linalg.pinv(jac) @ jac
            lhs = lhs[:7, :7]
            print("lhs", lhs.shape)
            rhs = Kn * (q0[:7] - data.qpos[dof_ids])
            print("rhs", rhs.shape)
            dq[:7] += lhs @ rhs # After doing lhs @ rhs, the shape of the result is (7,) which is the same as dq[:7]

            # Clamp maximum joint velocity.
            dq_abs_max = np.abs(dq).max()
            if dq_abs_max > max_angvel:
                dq *= max_angvel / dq_abs_max

            # Integrate joint velocities to obtain joint positions.
            # I only use the first 13 values, so shape of q matches the shape of dq (13,)
            q = data.qpos.copy()[:13]  # Note the copy here is important.
            mujoco.mj_integratePos(model, q, dq, integration_dt) # bug occurs here
            np.clip(q, *model.jnt_range.T, out=q)

            # Set the control signal and step the simulation.
            data.ctrl[actuator_ids] = q[dof_ids]
            mujoco.mj_step(model, data)

            viewer.sync()
            time_until_next_step = dt - (time.time() - step_start)
            if time_until_next_step > 0:
                time.sleep(time_until_next_step)

if __name__ == "__main__":
    main()

Originally posted by @jonzamora in https://github.com/kevinzakka/mjctrl/issues/6#issuecomment-2196643937

I resolved the issue + the code will be open-source soon! : )


[Enhancement] exit confirmation box/退出确认框

When the back key is used to exit the software, it is desired that a dialog box pops up to confirm whether to exit the software.
在用返回键退出软件时，希望弹出对话框，以确认是否要退出软件。

I think it is not necessary. If you exit the app by accident, you won't lose any data.


Consider introducing unique expression IDs in Logical/Physical plan

Is your feature request related to a problem or challenge?
In Spark, they have a concept of ExprId which is used to uniquely identify named expressions:
https://github.com/apache/spark/blob/9bb358b51e30b5041c0cd20e27cf995aca5ed4c7/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/namedExpressions.scala#L41-L57
/**
 * A globally unique id for a given named expression.
 * Used to identify which attribute output by a relation is being
 * referenced in a subsequent computation.
 *
 * The `id` field is unique within a given JVM, while the `uuid` is used to uniquely identify JVMs.
 */
case class ExprId(id: Long, jvmId: UUID) {

  override def equals(other: Any): Boolean = other match {
    case ExprId(id, jvmId) => this.id == id && this.jvmId == jvmId
    case _ => false
  }

  override def hashCode(): Int = id.hashCode()

}

Is it worth as attempting to introduce something similar in DataFusion?
There are issues being caused by rules in the optimizer comparing directly on column name leading to bugs when duplicate names appear, such as https://github.com/apache/arrow-datafusion/issues/8374
If during the analysis of a plan we can assign unique numeric IDs for columns, we could check for column equality based on these IDs and not need to compare string names.
The obvious downside would be this seems like a large effort in refactoring, not to mention breaking changes.
Describe the solution you'd like
Consider introduction of unique ID for columns/expressions to potentially simplify optimization/planning code
Describe alternatives you've considered
Don't do this (large refactoring effort? breaking changes?)
Additional context
Just a thought I had bouncing in my head, would appreciate to hear more thoughts on this (even if this seems unfeasible), or if there was already some prior discussion on a similar topic

Actually I think I was off the mark on what ExprId is intended to do, it seems it would be more useful if there were a new LogicalExpr enum such as AttributeReference, which would refer to an expr from the parent plan by ExprId
Like given a logical plan:
Projection: a.int_col, b.double_col, CAST(a.date_string_col AS Utf8)
  Inner Join: a.int_col = b.int_col
    SubqueryAlias: a
      Projection: alltypes_plain.int_col, alltypes_plain.date_string_col
        Filter: alltypes_plain.id > Int32(1)
          TableScan: alltypes_plain projection=[id, int_col, date_string_col], partial_filters=[alltypes_plain.id > Int32(1)]
    SubqueryAlias: b
      Projection: alltypes_plain.int_col, alltypes_plain.double_col
        Filter: CAST(alltypes_plain.tinyint_col AS Float64) < alltypes_plain.double_col
          TableScan: alltypes_plain projection=[tinyint_col, int_col, double_col], partial_filters=[CAST(alltypes_plain.tinyint_col AS Float64) < alltypes_plain.double_col]

That top level projection has a.int_col as a Column for example, which when turned into physical plan needs to search the parent schema by name
https://github.com/apache/arrow-datafusion/blob/a6e6d3fab083839239ef81cf3a3546dd8929a541/datafusion/core/src/physical_planner.rs#L879-L891
Whereas with exprid's, it could be possible for a.int_col to be an AttributeReference which references the parent expr list to point to which expr it references by id.
And I think each new expr would have a new ID.
Honestly I could be way off the mark here on the usages/benefits of exprid 😅
It's just something I was thinking about, especially in relation to how verbose it can be to check if columns are the same when taking into account table, schema and catalog parts of the identifier for a column

See troubles with ambiguity check here https://github.com/apache/arrow-datafusion/issues/6012

So instead of having to find the original column of a projected column in a logical plan via name during logical optimization/physical planning, could have that done once off in an analyzer rule pass then afterwards use exprids

What you describe seems similar to the usize index in physical_plan Column references. And as I recall @houqp  added exactly to handle this case of ambiguous schema 🤔
I believe Postgres has a similar way of addressing fields (it does so by index rather than column name) in its logical exprs.
The downside I remember from working wit postgres was that there were many potential hard to track down issues when the indexes got messed up.
It might be interesting to see what this would look like in DataFusion 🤔

Related to this, SQLite and Postgres allow duplicate column names in results. From SQLite tests:
SELECT + COUNT( * ) AS col1, - 92 - + - 47 AS col1

Datafusion errors out with
query failed: Error during planning: Projections require unique expression names but the expression "COUNT(*) AS col1" at position 0 and "Int64(-92) - Int64(-47) AS col1" at position 1 have the same name. Consider aliasing ("AS") one of them.

Maybe after/as part of implementing this, Datafusion should relax that restriction?

Maybe after/as part of implementing this, Datafusion should relax that restriction?

One challenge is that most of the arrow-rs functionality in RecordBatch, for example, assumes unique column names (find_by_name for example). I don't think the Arrow spec itself restricts names to be unique, but I think the assumption may run pretty deep in the implementations

I assume you mean column_by_name, https://docs.rs/datafusion/latest/datafusion/common/arrow/record_batch/struct.RecordBatch.html#method.column_by_name?
Ecosystem survey:

SQLite picks the first matching column:
select col1 from (SELECT + COUNT( * ) AS col1, - 92 - + - 47 AS col1);
1

Postgres errors at column access time if there are duplicates:
postgres=# select col1 from (SELECT + COUNT( * ) AS col1, - 92 - + - 47 AS col1) as foo;
ERROR:  column reference "col1" is ambiguous
LINE 1: select col1 from (SELECT + COUNT( * ) AS col1, - 92 - + - 47...
               ^

This might be a duplicate of #6543?

@tv42  I agree it is certainly related

This would be great item in the broader scope of https://github.com/apache/datafusion/issues/12723, which intents to make DataFusion Logical Plans be state of the art.


MudDropZone: Fix keeping elements order when you drag one out of the MudDropZone (#4311)

Description

The internal indices were always updated after a drag drop operation. Now they are only updated if the drag drop operation was successful.
Fixes #4311
How Has This Been Tested?

Visually in the local Docs app and by unit test.
Types of changes

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

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

@henon
Ready to be merged.

Thanks!


Add small model tests in postcommit

We want to add 1-layer decoder tests for each model in postcommit so that every commit in main and local branches will be tested with the model. This will hopefully avoid most of the situations where model demos break in main.
(Close if there is already an issue)

@cglagovichTT do we have a sdpa test in postcommit? If not, considering the last breakage, it may make sense to add one

@esmalTT we should consider similar small tests for resnet, unet, SD.

We have sdpa tests in postcommit. We should have tests somewhere which check determinism in a loop, which may take longer than we are allowed in fast dispatch tests. @tt-rkim do you know in which pipeline we should add ~10 minutes of non-determinism tests?

if we set the expected pcc for the test tight enough we should be able to catch most of the non-determinism as well, we do not need extra non-determinism tests.

FYI
Adding Mamba tests to post-commit here:

https://github.com/tenstorrent/tt-metal/pull/12129

Adding UNet tests to post-commit here:

https://github.com/tenstorrent/tt-metal/pull/12145

@mtairum could you please add our mistral/mixtral/llama8b tests?


fixed keypoint slider bar being incorrect upon startup

Fixed keypoint slider starting value not representing true filtered value
Description
In the past the all keypoint sliders defaulted to 50% upon construction, but they never actually ran, so the value shown on the filter was incorrect until the slider was used. Now upon construction the keypoint slider toolbox item either gets a default start value passed into it, or uses the built in default of 0 and is updated accordingly.
PR Checklist

[ ] Merged latest main
[ ] Version number in package.json has been bumped since last release
[ ] Version numbers match between package package.json and src/version.js
[ ] Ran npm install and npm run build AFTER bumping the version number
[ ] Updated documentation if necessary (currently just in api_spec.md)
[ ] Added changes to changelog.md

Breaking API Changes
none

LGTM 👍


Fix isAllPageCached

What changes are proposed in this pull request?
Fix a bug when file size < 1 page, alluxio considers all pages are cached no matter if it really caches it or not.
Why are the changes needed?
Bug fixing
Does this PR introduce any user facing changes?
N/A

alluxio-bot, merge this please.

alluxio-bot, cherry-pick this to branch-3-1.1.x please.


Add ReactOS to Quickstart

Please add http://ReactOS.org to Quickstart on https://copy.sh/v86/
It's work fine :)

Indeed, I'll do this soon.

Here you go: https://copy.sh/v86/?profile=reactos
It seems to be quite slow, if you have any idea how to make it faster (disable background processes?), let me know.

ReactOS was hung after boot and Start -> Programs

There is a minor issue with OS name, it should be without space, like FreeBSD or KolibriOS.

@binarymaster Will fix, thanks.
@CSRedRat I'm aware of this issue. It happens randomly, but I'm not sure how to fix it yet. It's related to this error:
(drivers/filesystems/cdfs/fsctl.c:469) CdfsVerifyVolume() called
(drivers/filesystems/cdfs/fsctl.c:488) Device object B0231E20  Device to verify B02355A0
(drivers/filesystems/cdfs/fsctl.c:497) Same volume!
(drivers/filesystems/cdfs/common.c:120) Failed to read after successful verify, aborting


Installing the latest "master" properly using git

I want to install the latest "master" version available on the GitHub website properly.
Currently, the official release version is installed at ~/.atom/packages/julia-client .
So, I moved that folder to somewhere else and ran the command:
git clone https://github.com/JunoLab/atom-julia-client
which created the new most current master version as "atom-julia-client". So, I renamed it as "julia-client", and started atom. Then I got the error: Cannot find module 'etch' ...
So, I would appreciate it if someone could tell me how to properly install the master version.
The same applies for the "atom-ink" package.
Best,
BVPs

This instructions might be helpful.

In particular, you need to call apm install in those directories.

Karsten7 and pfitzseb: Thanks a lot. But since I already have the latest public release version in ~/.atom/packages, wouldn't apm upgrade atom-julia-client and apm upgrade atom-ink be sufficient instead of apm install commands? Or I still have to remove those existing folders and do apm install there?

apm install actually installs the dependencies, which you need -- otherwise you get that error you reported. Also, I'd recommend installing the master branches into .atom/dev/packages, which are only loaded when starting with atom -d. So you can always get back to stable without having to mess around with git.


[FEA] nightly build trigger both IT on spark 300 and 301 [DO NOT MERGE]

Signed-off-by: Peixin Li<EMAIL_ADDRESS>as title. Passed trigger tests locally
Plz help review but do not merge before https://gitlab-master.nvidia.com/ngcc/cicd/infra/-/merge_requests/599 get merged. Thx!

build

it would be good to get the spark 3.0.2 integration test build up and going as well

it would be good to get the spark 3.0.2 integration test build up and going as well

FYI 3.0.2 is currently triggered by spark3.0-nightly. we could make it trigger by rapids_it_nightly if needed


Source file .history does not exist

While running sbt clean I am getting this;
java.lang.IllegalArgumentException: requirement failed: Source file '<sbt-project>/.history' does not exist.
	at scala.Predef$.require(Predef.scala:233)
	at sbt.IO$.copyFile(IO.scala:583)
	at sbt.IO$.move(IO.scala:786)
	at sbt.IO$$anonfun$move$1.apply(IO.scala:772)
	at sbt.IO$$anonfun$move$1.apply(IO.scala:772)
	at scala.Function$$anonfun$tupled$1.apply(Function.scala:77)
	at scala.Function$$anonfun$tupled$1.apply(Function.scala:76)
	at scala.collection.immutable.List.foreach(List.scala:318)
	at sbt.IO$.move(IO.scala:772)
	at sbt.Defaults$$anonfun$doClean$1.apply(Defaults.scala:713)
	at sbt.Defaults$$anonfun$doClean$1.apply(Defaults.scala:710)
	at sbt.IO$.withTemporaryDirectory(IO.scala:291)
	at sbt.Defaults$.doClean(Defaults.scala:710)
	at sbt.Defaults$$anonfun$projectTasks$3.apply(Defaults.scala:301)
	at sbt.Defaults$$anonfun$projectTasks$3.apply(Defaults.scala:301)
	at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
	at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)
	at sbt.std.Transform$$anon$4.work(System.scala:63)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
	at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)
	at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
	at sbt.Execute.work(Execute.scala:235)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
	at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)
	at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
	at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

What could be causing this?

Using SBT 0.13.9
Multi-module project
sbt-coverage 1.3.5 is the only plugin

Root build.sbt
scalaVersion in ThisBuild := "2.11.7"

akkaVersion in ThisBuild := "2.3.12"

specs2Version in ThisBuild := "2.4.17"

kamonVersion in ThisBuild := "0.5.1"

libraryDependencies in ThisBuild <++= (scalaVersion, specs2Version) { (scala_version, specs2_version) => Seq(
  "com.github.nscala-time"    %% "nscala-time"    % "1.8.0",
  "org.specs2"                %% "specs2"         % specs2_version % "test",
  "org.specs2"                %% "specs2-mock"    % specs2_version % "test"
  )
}

publishTo in ThisBuild := {
  if (isSnapshot.value)
    Some("Artifactory Realm" at "...")
  else
    Some("Artifactory Realm" at "...")
}

credentials in ThisBuild += Credentials(Path.userHome/".ivy2"/".credentials")

aggregate in update := false

scalacOptions in ThisBuild  := Seq("-encoding", "utf8",
  "-target:jvm-1.8",
  "-feature",
  "-language:implicitConversions",
  "-language:postfixOps",
  "-unchecked",
  "-deprecation",
  "-Xlog-reflective-calls"
)

updateOptions := updateOptions.value.withCachedResolution(true)

fork in ThisBuild := true

Each submodule has a build.sbt which describes it name and it's dependencies.
We have a BuildModules.scala which describes the modules and how they depend on each other;
import sbt.Keys._
import sbt._

object BuildModules extends Build {
  val akkaVersion = SettingKey[String]("akkaVersion", "Akka version")
  val specs2Version = SettingKey[String]("specs2Version", "Specs2 version")
  val kamonVersion = SettingKey[String]("kamonVersion", "kamon version")

  def compAndTest(p: Project) = p % "test->test;compile->compile"

  def onlyTest(p: Project) = p % "test->test"

  lazy val root: Project = Project("root", file("."))
          .settings(
            publishLocal := {},
            publish := {}
          )
          .aggregate(
            projectA, projectB
          )

  lazy val projectA: Project = Project("projectA", file("projectA"), delegates = root :: Nil)

  lazy val projectB: Project = Project("projectB", file("projectB"), delegates = root :: Nil)
          .dependsOn(compAndTest(projectA))
}

A race condition on the filesystem. The files to cleanup were evaluated at one point, but by the time it got to deleting them they were gone.

Any resolution for this problem? Or will this be fixed in a release?

Any ideas what might also be deleting the file? Is it always target/.history?

And no, there are no recent fixes for this case.

I have no clue what might be deleting the target/.history file. I've found a similiar issue while googleing;
https://github.com/ucb-bar/chisel/issues/47
Adding; parallelExecution in Global := false in the root build.sbt seems to solve the issue

I see. Possible duplicate of #1673 then.

Okido, thank you!


Can't get the right permission status if the user denied permission on modal.

Hi,
When asking permissions, I'm trying to get some indication for whether the user approved / denied permission on the Apple Permission modal.
I've tried to get the permission status on the following ways:

authorizationStatus returned from useHealthkitAuthorization but it returns 2 (unnecessary) whether the user approved or denied permissions.
HealthKit.requestAuthorization - returns true whether the user approved or denied.
HealthKit.authorizationStatusFor returns for me 1 (shouldRequest) whether the user approved or denied.

I would appreciate your help, am I missing something and there is a way to get the actual permissions status?
Thanks
code snippet that uses useHealthkitAuthorization: (copied from your website)
import { Text, Button, View, StyleSheet } from "react-native";
import {
  HKQuantityTypeIdentifier,
  useHealthkitAuthorization,
} from "@kingstinct/react-native-healthkit";

export default () => {
  const [authorizationStatus, requestAuthorization] = useHealthkitAuthorization(
    [HKQuantityTypeIdentifier.bloodGlucose]
  );

  return (
    <View>
      <Text>Authorization Status: {authorizationStatus}</Text>
      <Button onPress={requestAuthorization} title="Request Authorization" />
    </View>
  );
};

code snippet that uses authorizationStatusFor
async function askPermissions() {
  const isAvailable = await HealthKit.isHealthDataAvailable();
  console.log(isAvailable);
  if (!isAvailable) {
    return;
  }

  const permissionRequested = await HealthKit.requestAuthorization([
    HKCategoryTypeIdentifier.mindfulSession,
  ]);
  console.log(permissionRequested);

  const permissionGranted = await HealthKit.authorizationStatusFor(
    HKCategoryTypeIdentifier.mindfulSession
  );
  console.log(permissionGranted);
}

After struggling with this a bit I've found out that this data is deliberately not shared by Apple due to privacy reasons.
https://developer.apple.com/documentation/healthkit/authorizing_access_to_health_data.

As part of the privacy protections, your app doesn’t know whether someone granted or denied permission to read data from HealthKit. If they denied permission, attempts to read data from HealthKit return only samples that your app successfully saved to the HealthKit store.

After struggling with this a bit I've found out that this data is deliberately not shared by Apple due to privacy reasons. https://developer.apple.com/documentation/healthkit/authorizing_access_to_health_data.

As part of the privacy protections, your app doesn’t know whether someone granted or denied permission to read data from HealthKit. If they denied permission, attempts to read data from HealthKit return only samples that your app successfully saved to the HealthKit store.

Yeah, that's the thing. And you will find that requesting data the user has denied sharing will only result in an empty data set, so no way to tell that way either.


Update botframework.py

fixes #3186
Proposed changes:

...

Status (please check what you already did):

[x] made PR ready for code review
[ ] added some tests for the functionality
[ ] updated the documentation
[ ] updated the changelog

@paulaWesselmann this seems fine to me -- have you checked it works with the the bot framework?

@akelad I confirmed this is the case for all calls from the botframework.
Botframework API

Hi there! I made a PR that fix this little issue.


Rewritten indexers

The old indexer was the first show to support pages and posts.
Now pages and posts have it's own indexer for better modularity.
This will give downr a better basis for further implementations.

Found an issue.


Bash commands added

There are conflicts on this PR, please pull in changes from this repository to avoid those.


Training a model with the BOOKSUM dataset might lead to data leakage？

Hello, in this work I see that the novel summaries are from the BookSum dataset. May I ask if they were selected from the entire BookSum dataset?
The BookSum dataset has about 10,000 entries at the chapter level. How many entries does the Clongeval assessment set cover?
There might be data leakage when using BookSum to train LLMs. Could you provide more detailed information about the construction of this task? Thank you!

Hi there! Thank you for your interest in our work. We acknowledge that the original dataset may have been utilized during the training phase of LLMs. To address potential data leakage issues, we have taken steps to mitigate them. First, we translate the BookSum dataset into Chinese. For the input text, we select continuous paragraphs or chapters of expected length and concatenate them to create long-context inputs.  This makes the input significantly different from the original BookSum dataset.  Second, we employ GPT-4-Turbo to aggregate the corresponding summaries of these selected paragraphs or chapters into a comprehensive summary.   Through our observations, the generated global summary differs in content and style from the original local summaries, resulting in a more abstract reference summary. These efforts are made to minimize any potential data leakage issues.
Additionally, we only utilize a subset of the dataset, extracting continuous paragraphs until the quantity requirements of the dataset are met.

Thank you for your answer and for this excellent work


Collection with comparator - Typescript error

test.ts

import { Record, define, Collection } from 'type-r'

@define export
class TestCollection extends Collection {
	static comparator = x => x.mtime
}

@define export
class M extends Record {
	static Collection = TestCollection as any
	static attributes = {
		mtime: Date
	}
}

tsc -w

test.ts(3,1): error TS1238: Unable to resolve signature of class decorator when called as an expression.
  Type 'ClassDecorator' is not assignable to type 'typeof TestCollection'.
    Property 'comparator' is missing in type 'ClassDecorator'.

typescript version 2.6.2

Added the test. https://github.com/Volicon/Type-R/blob/develop/tests/reported-bugs.test.ts#L74
TypeScript version 3.1.  Test passes.
FYI, the PR with the failing test is a bulletproof PR. ;) 99% probability some actions will be taken.


MF-1368 - Add internal http api package for query params reading

Signed-off-by: Manuel Imperiale<EMAIL_ADDRESS>Resolves #1368
Involuntarily starts #1263

Codecov Report

Merging #1384 (1be1e4f) into master (259950b) will increase coverage by 0.16%.
The diff coverage is 81.81%.

@@            Coverage Diff             @@
##           master    #1384      +/-   ##
==========================================
+ Coverage   67.51%   67.68%   +0.16%
==========================================
  Files         121      121
  Lines        8408     8278     -130
==========================================
- Hits         5677     5603      -74
+ Misses       2216     2169      -47
+ Partials      515      506       -9

Impacted Files
Coverage Δ

provision/api/transport.go
0.00% <0.00%> (ø)

users/api/transport.go
66.29% <47.36%> (+6.78%)
:arrow_up:

things/api/things/http/transport.go
84.35% <84.00%> (+2.89%)
:arrow_up:

bootstrap/api/transport.go
92.39% <100.00%> (ø)

consumers/notifiers/api/transport.go
86.66% <100.00%> (+0.66%)
:arrow_up:

provision/api/requests.go
50.00% <100.00%> (ø)

readers/api/requests.go
100.00% <100.00%> (ø)

readers/api/transport.go
78.07% <100.00%> (-1.13%)
:arrow_down:

things/api/auth/http/transport.go
90.14% <100.00%> (ø)

twins/api/http/transport.go
91.93% <100.00%> (+4.60%)
:arrow_up:

... and 1 more

Continue to review full report at Codecov.

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


Warn if available disk space is low when Movie Maker mode is enabled

Follow-up to https://github.com/godotengine/godot/pull/62416.
Saving movies can require a lot of disk space, and running out of disk space may cause the entire recording to have to be redone.
This also prints a message on startup to state that Movie Maker mode is enabled, along with the requested framerate. Since Movie Maker mode forces non-real-time simulation, it's important to know that it is enabled when starting the project.
Preview
Movie Maker mode enabled, recording movie at 60 FPS...
WARNING: Current available space on disk is low (2.63 GiB). MovieWriter will fail during movie recording if the disk runs out of available space.

Thanks!


Fixes for FHIR Loader ARM Template

Description

The FHIR Loader ARM template for the Service Principal Selection has been fixed with modifications.
Added the role assignment that was lacking to the client app's principal ID.
Dropdown for "Role assignment" was removed due to changes in the FHIR Loader code. Assigning roles is required.

Related issues
user story AB#123209
Testing
Three scenarios are covered in the testing,

Service Principal with new client app registration
Service Principal with existing client app registration
MSI connection

@erikhoward The main branch's conflicts have now been resolved. This PR can be merged into the main branch.


[service-bus] message is not able to be parsed as it is not valid JSON.

Package Name: @azure/service-bus
Package Version: ^1.1.3
Operating system: Deployed as azure function
[ ] nodejs

version: 10.14.1

[ ] browser

name/version: N/A

[ ] typescript

version: N/A

Describe the bug
The message returned is not valid JSON. This prevents parsing the message and processing it appropriately in Javascript. The following is a console.log from the code and clearly shows that there should be a colon after ServiceBusMessage and also after Message.
[ ServiceBusMessage    {     _amqpMessage:      Message {        ttl: 259200000,        delivery_count: 0,        delivery_annotations: [Object],        message_annotations: [Object],        message_id: '4547de335bc74c67a6e19ccf6525ae44',        subject: 'Scientist',        body: [Section] },     _delivery:      { id: 0,        tag: <Buffer 15 fd 92 ab 25 18 78 45 bd 2b 06 7b ca 5f b0 94>,        format: 0,        link: [Receiver],        settled: false,        state: undefined,        remote_settled: null,        remote_state: null,        update: [Function],        accept: [Function],        release: [Function],        reject: [Function],        modified: [Function],        incomplete: false },     deliveryCount: 0,     lockToken: 'ab92fd15-1825-4578-bd2b-067bca5fb094',     body: null,     timeToLive: 259200000,     label: 'Scientist',     messageId: '4547de335bc74c67a6e19ccf6525ae44',     enqueuedSequenceNumber: 0,     sequenceNumber: Long { low: 21, high: 0, unsigned: false },     enqueuedTimeUtc: 2020-03-06T18:59:20.208Z,     lockedUntilUtc: 2020-03-06T19:04:50.110Z,     expiresAtUtc: 2020-03-09T18:59:20.208Z,     _context:      { namespace: [Object],        entityPath: 'blahblahblah-sbq',        clientType: 'QueueClient',        clientId:         'blahblahblah-sbq/5c3ae533-d53e-b245-b9f3-533dcd19dca1',        isClosed: false,        requestResponseLockedMessages: [ConcurrentExpiringMap],        isSessionEnabled: false,        messageSessions: {},        expiredMessageSessions: {},        sessionManager: [SessionManager],        getReceiver: [Function],        onDetached: [Function],        close: [Function],        managementClient: [ManagementClient],        batchingReceiver: [BatchingReceiver] },     delivery:      { id: 0,        tag: <Buffer 15 fd 92 ab 25 18 78 45 bd 2b 06 7b ca 5f b0 94>,        format: 0,        link: [Receiver],        settled: false,        state: undefined,        remote_settled: null,        remote_state: null,        update: [Function],        accept: [Function],        release: [Function],        reject: [Function],        modified: [Function],        incomplete: false }    }  ]
To Reproduce
Steps to reproduce the behavior:

Deploy the following Azure function and invoke from the function app viewer in the console.

const { ServiceBusClient } = require('@azure/service-bus');

const connectionString = process.env.SB_CONNECTION ||
    'Endpoint=sb://blahblahblah';
const queueName = process.env.SB_QUEUE_NAME || 'blahblahblah-sbq';

/**
 * Processing messages from service bus queue.
 *
 * @param {object} context The context.
 * @param {object} entry The service bus queue object.
 * @returns {Promise<void>} A promise.
 */
const processMessagesHandler = async (context, entry) => {
    context.log(`Processing messages from queue.`, entry);
    const sbClient = ServiceBusClient.createFromConnectionString(connectionString);

    // If sending to a Topic, use `createTopicClient` instead of `createQueueClient`
    const queueClient = sbClient.createQueueClient(queueName);
    const receiver = queueClient.createReceiver(1);

    try {
        for (let i = 0; i < 100; i++) {
            const messages = await receiver.receiveMessages(1, 5);
            if (!messages.length) {
                context.log('No more messages to receive.');
                break;
            }
            context.log('Messages received:', messages);
            context.log('Message:', messages[0]);

            await messages[0].complete();
        }
        await queueClient.close();
    } catch (error) {
        context.log(`Caught an error trying to receive messages or closing the queue.`, error);
    } finally {
        await sbClient.close();
    }
};

module.exports = processMessagesHandler;

Expected behavior
I expected a one entry array like what was returned only I expected colons so I could correctly parse the message.

I'll let @chradek handle the specifics of this issue, but I think console.log() is formatting the class name of the object type as a pretty-print feature rather than giving you direct JSON.
Using console.log(JSON.stringify(messages)) might help.

Ummm no. This is not going to work. The response must be fixed.
2020-03-10T11:05:45.836 [Information] Caught an error trying to receive messages or closing the queue. TypeError: Converting circular structure to JSON
at JSON.stringify ()

@kevboutin
receiveMessages returns an array of ServiceBusMessage. This is a class that contains the message data as well as methods to settle the message.
The body field on each message should contain the data that was in the message body when it was sent to Service Bus.

@chradek Yes, this I know. Refer to my code above and you'll see that I used the statement:
context.log('Message:', messages[0]);
to paste the logged message I shared.
I cannot parse the ServiceBusMessage instance due to no colon in the malformed JSON.

@kevboutin
messages[0] is referring to an instance of ServiceBusMessage. This is a class, and to @xirec's point when you log it with context.log it isn't logging a JSON object, but a text representation of the class. I believe what you want to log is messages[0].body, which should contain the actual body of your message which you can then parse.

@chradek I tried it. The logged message is:
2020-03-10T16:55:25.197 [Information] Message: null
The code:
```
context.log('Messages received:', messages);
context.log('Message:', messages[0].body);

Can you share how messages are being sent to the queue? Are userProperties being set instead of body? Based on what you logged earlier I can see that the label was set, but can't tell what the body contains. Is it possible some messages were sent without a body?
If you want to get more depth out of the message logged by context.log, you can override the depth by setting util.inspect.defaultOptions.depth to a number greater than 2.

Here is the sender code:
`    const sbClient = ServiceBusClient.createFromConnectionString(connectionString);
// If sending to a Topic, use `createTopicClient` instead of `createQueueClient`
const queueClient = sbClient.createQueueClient(queueName);
const sender = queueClient.createSender();

try {
    for (let index = 0; index < listOfScientists.length; index++) {
        const scientist = listOfScientists[index];
        const now = moment().format();
        const message = {
            fullName: `${scientist.firstName} ${scientist.name}`,
            id: scientist.id,
            label: "Scientist",
            time: now
        };

        context.log(`Sending message: ${message.time}: ${message.id} - ${message.fullName} - ${message.label}`);
        await sender.send(message);
    }

    await queueClient.close();
} catch (error) {
    context.log(`Caught an error trying to send messages or closing the queue.`, error);
} finally {
    await sbClient.close();
}`

@kevboutin
Thanks for sharing the sender code. For reference, here are the fields that can be set on the message that is sent:
https://docs.microsoft.com/en-us/javascript/api/@azure/service-bus/sendablemessageinfo?view=azure-node-latest
I think what you're expecting is for the fields you have in message to be treated as a JSON body. To do that you'll need to modify your message code to something like this:
const message = {
  body: {
    fullName: `${scientist.firstName} ${scientist.name}`,
    id: scientist.id,
    label: "Scientist",
    time: now
  }
};

We should make this clearer in our documentation.

This fixes the issue. Thank you for that. Definitely would have expected a message/error on the sender side to prevent this.


Exporting/Serializing as JSON

I want to be able to save the state of a graph to my database, ideally by grabbing the state as JSON, and then passing that to my Django backend.
In #48 you show how v-network-graph can utilize JSON content as an input, but is there a recommended way to get the graph contents as a JSON output? That way if I enable editing for user-generated graphs, I can persist those changes for my users.
For instance, I see getAsSvg(): string mentioned in the docs. Would it be helpful to have an equivalent getAsJSON(): string method? I'm not very JS/Vue savvy, so there's probably already an obvious way to accomplish this that I just don't see. Either way, I'd love your input.
Thanks for building a really cool project and for any help you can provide with my question.

Hi @jacklinke,
Thanks for the question.
v-network-graph basically displays objects given as attributes. The information that is updated by user manipulation is also mostly available from the attributes.
Please refer to the following for a list of attributes and whether they are updated from the library.
https://dash14.github.io/v-network-graph/reference.html#attributes
Unfortunately, since it is application-dependent as to which items are needed (or not), there are currently no plans to provide serialization capabilities in the library.
I think it can be achieved by assembling as JSON the variables to be passed to these attributes, and then disassembling them and passing them to the library when displaying them.
Easier still, it is possible to enclose a single JSON object in reactive and pass it to the library with each attribute.
An example is shown below.
<!-- App.vue -->
<script setup lang="ts">
import { defineConfigs, Edges, Layouts, Nodes } from "v-network-graph";
import { reactive } from "vue";

// Define what you want to serialize/deserialize
interface TopologyModel {
  nodes: Nodes;
  edges: Edges;
  layouts: Layouts;
  selectedNodes: string[];
}

const model = reactive<TopologyModel>({
  nodes: {
    node0: { name: "Node 0" },
    node1: { name: "Node 1" },
    node2: { name: "Node 2" },
    node3: { name: "Node 3" },
  },
  edges: {
    edge1: { source: "node0", target: "node1" },
    edge2: { source: "node1", target: "node2" },
    edge3: { source: "node2", target: "node3" },
  },
  layouts: {
    nodes: {
      node0: { x: 0, y: 0 },
      node1: { x: 50, y: 80 },
      node2: { x: 100, y: 0 },
      node3: { x: 150, y: 80 },
    },
  },
  selectedNodes: [],
});

const configs = defineConfigs({
  node: {
    selectable: true,
  },
});

function exportModel() {
  // Just save this object as is.
  console.log(model);
}
</script>

<template>
  <div class="graph">
    <v-network-graph
      :nodes="model.nodes"
      :edges="model.edges"
      v-model:layouts="model.layouts"
      v-model:selected-nodes="model.selectedNodes"
      :configs="configs"
    />
    <button @click="exportModel">Export</button>
  </div>
</template>

<style>
.graph {
  border: 1px solid #888;
  width: 600px;
  height: 400px;
  margin: 0 auto;
}
</style>

I hope this will be helpful to you.
Best Regards,

I close this issue for now.
If you have any other question/comment, please reopen this issue.


Distributed packages missing licenses of included open source software

Much of the software libraries used in the NorthstarLauncher use open source software licenses which require you to include the license of the library in any distribution of software which uses the library.
The distributed packages lack these licenses entirely and might break their terms by failing to include them in any form.
I will list some examples with excerpts:
MinHook

Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

https://github.com/R2Northstar/NorthstarLauncher/blob/f341986b591cee533994597de418df1752ad5e97/NorthstarDedicatedTest/include/MinHook.h#L12-L14
OpenSSL

Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License;

https://github.com/R2Northstar/NorthstarLauncher/blob/f341986b591cee533994597de418df1752ad5e97/NorthstarDedicatedTest/include/openssl/conf.h#L7-L10
MIT Licensed software
Currently used for all Northstar projects, most of the other software is licensed under this

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

RapidJSON

https://github.com/R2Northstar/NorthstarLauncher/blob/main/NorthstarDedicatedTest/include/rapidjson/rapidjson.h#L8

libcurl (Modified MIT license, but close enough)

https://github.com/R2Northstar/NorthstarLauncher/blob/f341986b591cee533994597de418df1752ad5e97/NorthstarDedicatedTest/include/libcurl/include/curl/curl.h#L14

spdlog

https://github.com/R2Northstar/NorthstarLauncher/blob/f341986b591cee533994597de418df1752ad5e97/NorthstarDedicatedTest/include/spdlog/spdlog.h#L2

These licenses are of course included or linked to in the GitHub repos, but are NOT in the zip archives available from the releases page of this repo.
In order to not violate the open source licenses of these libraries, a file should be included in all published archives of this project attributing the licenses of these libraries.
I am not a lawyer and this is not professional legal advice, just an everyman's interpretation of the referenced notices.

https://github.com/R2Northstar/NorthstarLauncher/pull/37