Added initial Trais CI for the opengcs

As a starter, only the source code building gate was added.
Unittest ru will come later

@soccerGB,
Thanks for your contribution.  To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
The agreement will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot

Good start!


Urgent~~~How to give a paramater which is a QUrl under open dir function?

Urgent~~~How to give a paramater which is a QUrl under open dir function?

Yes, actually the remove dir is coming out when I click open dir button

I wanna open remote dir


Update Links “tiktok-37”

Automatically generated by Netlify CMS

👷 Deploy Preview for distracted-hoover-7b89cc processing.
🔨 Explore the source changes: 4412f3c8d9071eadac8918395b62d65bbfe6db63
🔍 Inspect the deploy log: https://app.netlify.com/sites/distracted-hoover-7b89cc/deploys/614bbdcff686aa0008677bdc


Support a chat-only mode

This would disable the video and only show chat, an example use case would be for a streamer to monitor their chat while live.

Going to start having a look at this (and maybe an audio only mode) soon


Scatter limit override

Is there anyway to increase the hardcoded JobPerScatterDefault=500? This limit seems quite low and is effecting our ability to scale analyses on DNAnexus.
https://github.com/dnanexus/dxCompiler/blob/850f4ea0fed801ba284c29540882af55c2851fe7/core/src/main/scala/dx/core/Constants.scala#L96
Many Thanks,
Barney

Found the chunkSize parameter - is there anyway to increase this above 1000?
Many Thanks,
Barney

There's currently no way of increasing chunkSize >1000.
WDL scatter will not perform well when scattering over many thousands of items, where an approach in https://dnanexus.gitbook.io/uk-biobank-rap/science-corner/guide-to-analyzing-large-sample-sets might be better

no activity - closing


nodejs-6_x broken on darwin

Issue description
nodejs-6_x fails to build on OSX:
nix-build-nodejs-6.2.2.drv-0/node-v6.2.2/out/Release/obj.target/node/src/fs_event_wrap.o ../src/fs_event_wrap.cc
In file included from ../src/async-wrap.cc:2:
In file included from ../src/async-wrap-inl.h:8:
In file included from ../src/base-object-inl.h:7:
In file included from ../src/env.h:7:
In file included from ../src/debug-agent.h:27:
../src/util.h:14:10: fatal error: 'tr1/type_traits' file not found
#include <tr1/type_traits>
         ^
In file included from ../src/debug-agent.cc:22:
In file included from ../src/debug-agent.h:27:
../src/util.h:14:10: fatal error: 'tr1/type_traits' file not found
#include <tr1/type_traits>
         ^
In file included from ../src/env.cc:1:
In file included from ../src/env.h:7:
In file included from ../src/debug-agent.h:27:
../src/util.h:14:10: fatal error: 'tr1/type_traits' file not found
#include <tr1/type_traits>
         ^
In file included from ../test/cctest/util.cc:1:
../src/util.h:14:10: fatal error: 'tr1/type_traits' file not found
#include <tr1/type_traits>
         ^
In file included from ../src/fs_event_wrap.cc:2:
In file included from ../src/async-wrap-inl.h:8:
In file included from ../src/base-object-inl.h:7:
In file included from ../src/env.h:7:
In file included from ../src/debug-agent.h:27:
../src/util.h:14:10: fatal error: 'tr1/type_traits' file not found
#include <tr1/type_traits>
         ^
1 error generated.
1 error generated.
node.target.mk:200: recipe for target '/private/var/folders/l7/bqwl4z8s45l_tk_406_bwjm40000gn/T/nix-build-nodejs-6.2.2.drv-0/node-v6.2.2/out/Release/obj.target/node/src/env.o' failed
make[1]: *** [/private/var/folders/l7/bqwl4z8s45l_tk_406_bwjm40000gn/T/nix-build-nodejs-6.2.2.drv-0/node-v6.2.2/out/Release/obj.target/node/src/env.o] Error 1
make[1]: *** Waiting for unfinished jobs....
node.target.mk:200: recipe for target '/private/var/folders/l7/bqwl4z8s45l_tk_406_bwjm40000gn/T/nix-build-nodejs-6.2.2.drv-0/node-v6.2.2/out/Release/obj.target/node/src/debug-agent.o' failed

Steps to reproduce
$ nix-build -A nodejs-6_x
Technical details

Nix version: 1.11.2
Nixpkgs version: 16.09pre-git

Fixed by c3ffae477767d22fd0e714e4071fb25e4f3ec8d7


Rename Core's AIScope to CoreAIScope

This PR renames AIScope to CoreAIScope from xef-core. The goal is to have a distinct name for the AIScope defined in xef-core, such that all languages can expose AIScope in the same package if they want.
On Scala, and Java composition over inheritance will be preferred to expose Scala and Java APIs. In Kotlin we can simply leverage extension functions, and a typealias AIScope.

Thanks!


distribute and setuptools can't coexist

...so remove distribute

@mahendra is this ok? Without pinning setuptools the jenkins job fails, but if we have both the pip salt state fails...


syntax error near unexpected token `}'

Note: for support questions, please use the Discord. This repository's issues are reserved for feature requests and bug reports.

I'm submitting a ...

[x] Bug Report

Do you want to request a feature or report a bug?

Bug

Pastebin link of the error

https://pastebin.com/VH982zXZ

What is the expected behavior?

It executes the script

What is the motivation / use case for changing the behavior?

Well, the script will work

Please tell us about your environment:

  - Version: v1.1.1
  - OS: Ubuntu 20.04
  - Install Options: -

Other information (e.g. detailed explanation, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, gitter, etc)*

Fixed. Thank you for your report!


[R] Change behavior around renamed / removed arguments

ref https://github.com/dmlc/xgboost/issues/9810
In a previous PR (https://github.com/dmlc/xgboost/pull/11074), many function arguments were removed.
Currently, the logic is that passing parameters through ... results in errors, which is the behavior we want to have for functions like xgb.train. But to make a potential CRAN release easier, perhaps a first release of the new interface could be more lenient.
This PR changes the default behavior to instead accept arguments that were present in the latest CRAN release of xgboost, but issuing a warning. It adds an option xgboost.strict_mode that would turn these warnings into errors as a workaround, without needing to keep them in signatures.
Ideally we could remove this whole system soon after we land a new release on CRAN.
Note: it assumes that this other PR https://github.com/dmlc/xgboost/pull/11077 should have been merged

I think we will have a new cran package named something like xgboost3 instead of reusing the existing package.

Note: it assumes that this other PR https://github.com/dmlc/xgboost/pull/11077 should have been merged

Do you want to merge that PR first?

Would you like to merge that PR first?

Yes, would be ideal to merge that PR.

We will have a new cran package named something like xgboost3 instead of reusing the existing package. So, a clean break is preferable.

I nervetheless think a warning with option to turn into error could be a good trade off for the very first release for reverse dependencies.

In particular, if one a user ends up with parallel installs of xgboost and xgboost3, there might be name clashes on dependencies that use xgboost functions as they adapt; and if released under the same name xgboost, it'd give a much longer time period for dependencies to adapt.


npm install error with querystring

Node version: v6.2.2
npm version: v3.10.6
Operating system: OSX El Capitan
Command line used: npm install
Steps to reproduce: run npm install
error log shown bellow:
npm WARN deprecated<EMAIL_ADDRESS>ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
npm ERR! Darwin 15.6.0
npm ERR! argv "/Users/koder/.nvm/versions/node/v6.2.2/bin/node" "/Users/koder/.nvm/versions/node/v6.2.2/bin/npm" "install"
npm ERR! node v6.2.2
npm ERR! npm  v3.10.6

npm ERR! No compatible version found<EMAIL_ADDRESS>npm ERR! Valid install targets:
npm ERR! 0.2.0, 0.1.0, 0.0.4, 0.0.1
npm ERR!
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/koder/Code/nm-property-insurance/npm-debug.log

Was querystring a package you added? It is not in package.json by default. This is not a direct dependency, so debugging this would be difficult. It looks like querystring is dependent somewhere in the chain with a version that is not published.
Closing since querystring is not a direct dependency and the issue is not specific to react-slingshot.


[UI] Connections: Environment Assignment field not dark mode friendly

Current Behavior
The Connections page (https://management/connections) has an Environment Assignment column, the text of which is low contrast in dark mode. See screenshot.
Desired Behavior
A light text color using the Sistent theme should be used.
Screenshots/Logs

Environment

Browser: Safari
Host OS: Mac
Meshery Server Version: stable-v0.7.73

Contributor Guides and Handbook

🎨 Wireframes and designs for Meshery UI in Figma (open invite)
🖥 Contributing to Meshery UI
🙋🏾🙋🏼 Questions: Discussion Forum and Community Slack

heyo @leecalcote  could i work on this..

@leecalcote can I work on this issue

I'm interested in working on this issue. Could you please assign it to me? Thanks!

Hi All, thanks much for jumping in and volunteering. I missed the prior notifications. Here's what help guarantee both your success and assignment of the issue (and there are plenty more where this issue comes from):

Confirm that you're able to build the project, specifically, the components necessary to resolve this issue.
Confirm the approach you intend to take to resolve the issue.

@leecalcote

I made it work. I chose a light color from sistent theme called charcol-90 and used its hex value to replace the grey text with a lighter color, can you assign this task to me? Thanks

Thanks, @SSPlusUltra


Send Requests async

Have you been thinking about adding SendAsync method ti IClient?
I've made a quick research and the biggest this is, that it would require cutting off .NET 3.5 as it does not support Task.

See previous discussion: https://github.com/smartystreets/smartystreets-dotnet-sdk/pull/1#issuecomment-257563204

Any chance this could be revisited? I have a PR ready to go adding Async and dropping 3.5 and 4.0 since they aren't supported anymore.

Typically what we have seen is for those that need direct async support, they simply wrap the synchronous call in a Task and then use the async capabilities of the Task Parallel Library.

Typically what we have seen is for those that need direct async support, they simply wrap the synchronous call in a Task and then use the async capabilities of the Task Parallel Library.

That doesn't help me with anything. Using Task.Run will just pull another thread from the thread pool and block on that thread (slowing things down even more with the overhead of doing that). I'm wanting async for scalability, not to avoid blocking on a UI thread.

Yeah i think its pretty silly there is no async api

Like, "they simply wrap the synchronous call in a Task"? Git isuses are a weird place for a standup routine, and since we all know that doesn't work it has to be a joke right?

An API client that only offers unnecessarily blocking calls on network IO does not deserve to be used in production. This is a bare minimum capability I would expect of the smarty SDK.
Its not confidence inspiring that this has been an issue since 2016.


Multiple Pages in a single file

The current structure for loading pages from different files with Ajax is all great, but sometimes you need just a few pages that are in the same file.
Is it possible to have structures like this:
.views
  .view
     .pages
        .page data-page=index
            .page-content:
                a src=#other_index
        .page data-page=other_index
            .page-content

So that we can have multiple pages that can be switched with a simple link pointing to the other page data-page attribute
Or are there other ways to achieve this?

It would be very helpful if you have put here a link to the relevant explanation in the docs. From what I see now in 2017 it is still not possible to load via ajax content which has multiple pages.


Added option to override gauntlet command and use yarn

Added logic to support running yarn commands, this is sometimes needed for remote runner tests

Codecov Report

Merging #476 (5de67fb) into main (7fc9036) will decrease coverage by 0.10%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##             main     #476      +/-   ##
==========================================
- Coverage   59.51%   59.40%   -0.11%
==========================================
  Files           8        8
  Lines         536      542       +6
==========================================
+ Hits          319      322       +3
- Misses        208      210       +2
- Partials        9       10       +1

Impacted Files
Coverage Δ

gauntlet/gauntlet.go
66.92% <75.00%> (-0.84%)
:arrow_down:

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


JCenter and Bintray will not be maintained anymore

On February 3 2021, JFrog announced that they will be shutting down JCenter.
Instead we should use mavenCentral()
Any plan on replacing jCenter() and bintray in build.gradle ?
Current error if we replace jCenter() with mavenCentral() :

Could not resolve com.wei.android.lib:fingerprintidentify:1.2.6

allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.uccmawei:FingerprintIdentify:1.2.6'
}


Update postgres.go

As an English speaker, I'd actually like to map it to "no" or "num" for a better chance of conveying the meaning but I don't know if you'd accept that proposal?

I suggest we stay consistent in the replacing even if there is a good chance that "#" means "no".


values field required in HelmRelease?

If I do not provide a values field with at least one value, the Helm operator rejects the HelmRelease.
apiVersion: flux.weave.works/v1beta1
kind: HelmRelease
metadata:
  name: istio-init
  namespace: istio-system
  annotations:
    flux.weave.works/automated: "false"
spec:
  releaseName: istio-init
  chart:
    git: git@github.com:istio/istio
    path: install/kubernetes/helm/istio-init
    ref: master
  values:
    none: none

The values key is indeed (possibly unjustified) required as the Helm operator will search this structure for image references in case you automate the HelmRelease.
To work around this you can feed it an empty structure: values: {}.

Will it search the default values.yaml for image references?

No, as it will be unable to make patch the values.yaml with the new image reference.

It could, but I can see why it would not. :)

For empty values you can use values: {} it will pass the CRD validation.

Thank you.

Btw, I saw that the helm flux operator did indeed find images to update when those images were only mentioned in the default helm values file.
Derrick
On Feb 28, 2019, 1:19 AM -0800, Stefan Prodan<EMAIL_ADDRESS>wrote:

For empty values you can use values: {} it will pass the CRD validation.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Add support for csv-external

Closes #271
Why is this the best possible solution? Were any other approaches considered?
Uses the same code paths as xml-external which reduces risk. I briefly considered treating them differently in some way but that seemed more complex for no payoff.
I tried to come up with the minimal tests we needed to validate the addition. Since the same code is used as with xml-external, I think a lot of the cases are already handled but please be on the lookout for anything that might not be covered.
I noticed some tests were configured to always run Validate. We've discussed not doing that to speed up the test suite so I removed that. We always run all tests with Validate before a release. I also added a commit to make sure all tests pass Validate because failures were mostly in the test file I was already in.
What are the regression risks?
This is an additive change and I don't see a regression risk. The only existing code that has changed has to do with xml-external and that has really good test coverage.
Does this change require updates to documentation? If so, please file an issue here and include the link below.
https://github.com/XLSForm/xlsform.github.io/issues/216
Before submitting this PR, please make sure you have:

[x] included test cases for core behavior and edge cases in tests_v1
[x] run nosetests and verified all tests pass
[x] run black pyxform to format code
[x] verified that any code or assets from external sources are properly credited in comments

We should do jr://file-csv/name.csv

I completely forgot about that, you're absolutely right! 😬

Thanks for remembering that, @MartijnR. I'm a little shaken that https://github.com/XLSForm/pyxform/pull/522/files#diff-8ca5f58100688d382c2625d49faf9b321a0edd1f4dd98526bc8e71d0f11ab4e8R176 didn't catch that. I was thinking it would help us know the generated instance declarations would be identical. I now see there's only a check for an instance name conflict so it doesn't really cover us that much.

I rebased on master which auto fixed merge conflicts.


Docker build error

Got an error while building container
Log below
`
Building opera-proxy
Step 1/17 : FROM golang AS build
---> 1b8b0ceece59
Step 2/17 : ARG GIT_DESC=undefined
---> Using cache
---> 2405fc5bf4ec
Step 3/17 : WORKDIR /go/src/github.com/Snawoot/opera-proxy
---> Running in 8dda67de6a20
Removing intermediate container 8dda67de6a20
---> f521b30c36bf
Step 4/17 : COPY . .
---> 2bfd4c278f65
Step 5/17 : RUN CGO_ENABLED=0 go build -a -tags netgo -ldflags '-s -w -extldflags "-static" -X main.version='"$GIT_DESC"
---> Running in 7667f03d75a8
go: downloading github.com/AdguardTeam/dnsproxy v0.36.0
go: downloading github.com/miekg/dns v1.1.35
go: downloading github.com/Snawoot/go-http-digest-auth-client v1.1.3
go: downloading golang.org/x/net v0.0.0-20210324205630-d1beb07c2056
go: downloading github.com/joomcode/errorx v1.0.3
go: downloading github.com/lucas-clemente/quic-go v0.19.3
go: downloading github.com/AdguardTeam/golibs v0.4.4
go: downloading github.com/ameshkov/dnscrypt/v2 v2.0.1
go: downloading github.com/ameshkov/dnsstamps v1.0.3
go: downloading golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9
go: downloading golang.org/x/sys v0.0.0-20210324051608-47abb6519492
go: downloading github.com/cheekybits/genny v1.0.0
go: downloading golang.org/x/text v0.3.4
go: downloading github.com/marten-seemann/qtls-go1-15 v0.1.1
go: downloading github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da
go: downloading github.com/aead/poly1305 v0.0.0-20180717145839-3fee0db0b635
'# github.com/Snawoot/go-http-digest-auth-client
/go/pkg/mod/github.com/!snawoot/go-http-digest-auth-client@v1.1.3/authorization.go:109:15: undefined: io.NopCloser
/go/pkg/mod/github.com/!snawoot/go-http-digest-auth-client@v1.1.3/digest_auth_client.go:49:18: undefined: io.NopCloser
/go/pkg/mod/github.com/!snawoot/go-http-digest-auth-client@v1.1.3/digest_auth_client.go:59:21: undefined: io.NopCloser
note: module requires Go 1.16
ERROR: Service 'opera-proxy' failed to build: The command '/bin/sh -c CGO_ENABLED=0 go build -a -tags netgo -ldflags '-s -w -extldflags "-static" -X main.version='"$GIT_DESC"' returned a non-zero code: 2
`

Hi!
It seems you're trying to build it with older golang base image. Required golang version is 1.16. In order to update your golang base image you can issue command docker pull golang.

Thank you so much! That's right - updating golang solve the issue.


[top,dma] Connect SPI device to the DMA

This PR connects the SPI device to the DMA to be able to be used with the DMA hardware handshake mode. Doing so, this PR adds the following changes:

Add a watermark LSIO trigger to the SPI device
Add a SPI device LSIO trigger to the SOC Proxy (It removes one external LSIO trigger for that)
Re-generate top to hook up the new signals

The problem is that our "rebase and commit" setting in GitHub means that the commits of a PR don't end up grouped together. As such, if this got merged then we'd end up with a history where some intermediate commits have stale autogenerated files.
We should probably switch to a flow where every multi-commit PR gets a merge commit added. But we haven't done so yet. In the meantime, we can't really treat PRs as atomic like that.


Add instructions how to use Unity

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,980,683      Total (=)      1,980,683

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,811,768      Total (<)     10,811,769

 No significant differences in binary sizes

Docs only change, merging.


Selecting a custom map and robot is unreliable

When I first tried to test a genome using the current staging branch, I selected the black map with white circles and the red smart-car. The red car wasn't properly loaded (instead there was a four wheeled green robot that wasn't even an option) and the map was the default grassy map, not the  black map. After multiple tries, I was able to get the black map successfully loaded, but very inconsistently.

https://github.com/feagi/feagi/pull/180 addressed this issue and it's fixed now.
Closing


Please add INR(₹) to supported currency list

Please add the Indian currency symbol INR(₹)  to the supported currency list. English language is okay with it. No need to add separate Indian language.
This app uses numbro for currencies but it doesn't have INR support as numbro does not support it. So the dev said it would be better if numbro added the support.
I do not know how it works but please help adding the support.

Please refer to #655

Any Progress?


Update hack-manager.js

fix thread floating point error
tweak scp to copy from current server other than home

I don't actively work on this repo anymore so I'm going to implicitly trust this works. Would this fix this issue? https://github.com/Jrpl/Bitburner-Scripts/issues/22

I don't actively work on this repo anymore so I'm going to implicitly trust this works. Would this fix this issue? #22

Yes, these changes fix #22

@kylechallis Please merge these changes, it will help others like me from debugging the code themselves


A11y improvements

I rule and have completed some work on Case Manager that's ready for review!
I've added fixes for all "serious" and "critical" fixes identified here: https://github.com/DCAFEngineering/dcaf_case_management/issues/1701 with the exception of color-contrast issues, which probably should get design input.
This pull request makes the following changes:

Updates the bootstrap-form gem to allow for sr-only form field labels
Makes some styling changes to fix differences between current bootstrap/changes implemented by the updated bootstrap-form gem
Adds lang attribute to <html> field on all pages
Adds alt text to logos at the bottom of the page
Adds labels to form fields on patient form
Fixes duplicate labels on line form
Add labels to buttons with no discernible text

Slight view changes, but hopefully nothing jarring:
Before:

After:

Before:

After:

Can certainly address these or any other style issues that you see.
It relates to the following issue #s:

Fixes #1701

🐱


Prevent feature from being activated by default

Category

[x] Question
[ ] Typo
[ ] Bug
[ ] Additional article idea

Question:
Is it possible to prevent features defined in package-solution.json from being activated automatically as soon as the app is added to a site collection?
Background:
In package-solution.json I specify multiple features. One of them deploys a page to sitepages. This shouldn't be done automatically, as it is not required on every site collection. That's why I would like to "force" users to activate the feature manually, if they need this page. The other option would be to create an extra app for this, but for me this seems like an overkill.

Activating the feature automatically is by design. If you don't want the feature to get activated, you don't have to install the sppkg file to the site.

@VesaJuvonen: Thanks for your reply. If it's by design, then that's just the way it is. But from my point of view it would make sense to have this configurable.
Sure, you're saying "If you don't want the feature to get activated, you don't have to install the sppkg file to the site.". But that means that every piece of functionality (e.g. as in my case the deployment of an aspx page) would need to be packaged in to an own app in order to make the user/admin be able decide whether she wants it or not. And that just seems like too much.


Broken link

On the page http://material-ui.com/#/get-started, under the section "Examples", the URL "example folder" should point to https://github.com/callemall/material-ui/tree/master/examples, but the last "s" is missing.
Just a minor thing. But I wanted to point it out anyway :)

Fixed with #1456.

@havardge this issue is simular but different, should be open.

@havardge Sorry, actually, it was fixed by #1449.


Provisioning fails because of missing file(s)

At least one file is missing: .bashrc that will result in Ansible aborting:
TASK: [Add author information] ************************************************
failed: [<IP_ADDRESS>] => {"failed": true}
msg: could not find src=/Users/foobar/develop/zipnish/provisioning/build/files/ubuntu-vivid64/.bashrc

FATAL: all hosts have already failed -- aborting

I'll check this one and come back

Hi Henk @hbokh,
Please try now. I have removed the line from provisioning. You can pull and try again.
If you are trying to build for a particular platform let me know.
For developing Zipnish you won't not need build-ubuntu-vivid64 to be up an running using ansible / vagrant.
Adeel

Now it is waiting for run dh-make indefinitely:
PLAY [Build for ubuntu-vivid 15.x 64-bit] *************************************

GATHERING FACTS ***************************************************************
ok: [<IP_ADDRESS>]

TASK: [update apt-cache] ******************************************************
ok: [<IP_ADDRESS>]

TASK: [install requirements for building debian package] **********************
changed: [<IP_ADDRESS>] => (item=gnupg,packaging-dev,pbuilder,debootstrap,ubuntu-dev-tools,bzr-builddeb,apt-file,build-essential,devscripts,debhelper,dh-make,bzr-builddeb)

TASK: [make zipkin-ui tar.gz] *************************************************
changed: [<IP_ADDRESS>]

TASK: [run dh-make] ***********************************************************

Maybe re-run the whole provisioning yourself too?
To speed things up I added this to the Vagrantfile, using plugins vagrant-cachier and vagrant-vbguest:
	config.vbguest.no_install = true

	if Vagrant.has_plugin?("vagrant-cachier")
        config.cache.scope = :box
        config.cache.synced_folder_opts = {
          type: :nfs,
          mount_options: ['rw', 'vers=3', 'tcp', 'nolock']
        }
        end

I have removed the build.yml file from main provisioning
It's stuck there because user input is needed and Ansible 2.0 has that feature.
For now If you want build a ubuntu package you can checkout the document here https://github.com/varnish/zipnish/tree/master/packaging/ubuntu-vivid64

you can fork and push changes, i'll merge


[Bug]: Server can't load the config

Discord Username
patch0001
What happened?
Whenever I attempt to load the server i get this error.

The file is also not misnamed
SPT Version
3.9.1
Server Log
Commit hash: e4ba92b4a64210a105b2f4e0d0980a28d5d1f484
Build date:<PHONE_NUMBER>036
┌─────────────────────────────────────────┐
│ SPT 3.9.5                               │
│ https://discord.sp-tarkov.com           │
│                                         │
│ This work is free of charge             │
│ If you paid money, you were scammed     │
│ Commercial use is prohibited            │
└─────────────────────────────────────────┘
ModLoader: loading: 19 server mods...
Mod: Painter - Trader version: 1.1.0 by: MoxoPixel loaded
Mod: ATLAS-GEAR version: 1.2.1 by: Mighty_Condor loaded
Mod: BandanaOfProtection version: 390.0.2 by: jbs4bmx loaded
Mod: HoltzmanShield version: 390.0.2 by: jbs4bmx loaded
Mod: Gilded Key Storage version: 1.4.0 by: Jehree loaded
Mod: JoshMateBetterBackPacks version: 1.5.1 by: Josh Mate loaded
Mod: MC-DEAGLE version: 1.1.0 by: Mighty_Condor loaded
Mod: MC-M60 version: 1.0.0 by: Mighty_Condor loaded
Mod: MedicalAttention version: 395.0.2 by: jbs4bmx loaded
Mod: MoreCheckmarksBackend version: 1.5.14 by: VIP loaded
Mod: BetterSpawnsPlus version: 2.0.5 by: PreyToLive loaded
Mod: Priscilu version: 0.1.2 by: TimmyGG loaded
Mod: AllTheClothes version: 2.0.1 by: RaiRaiTheRaichu loaded
Mod: custom-raid-times version: 1.7.2 by: Refringe loaded
Mod: Skills Extended version: 1.3.1 by: dirtbikercj loaded
Mod: SpecialSlots version: 390.0.2 by: jbs4bmx loaded
Mod: Virtuals Custom Quest Loader version: 2.0.2 by: Virtual loaded
Mod: AlternativeTraderPics version: 390.0.3 by: jbs4bmx loaded
Mod: High Tier Ammo (HTA) version: 1.0.1 by: z_Hacker228 loaded
Priscilu added to Flea!
CustomRaidTimes: CONFIG_LOAD_ERROR - Could not load configuration
Skills Extended loading
Server: executing startup callbacks...
Importing database...
Database import finished
Loading: A T L A S Custom Weapons & Equipment
[BoP] Setting BoP prefab to selected value: HalfMask
jbs4bmx-BandanaOfProtection v390.0.2: Cached Successfully
[HS] Setting HS prefab to selected value: Evasion
jbs4bmx-HoltzmanShield v390.0.2: Cached Successfully
[Gilded Key Storage] : Mod loading
[Gilded Key Storage] : Secure Key Box loaded! Hooray!
[Gilded Key Storage] : Golden Keychain Mk. I loaded! Hooray!
[Gilded Key Storage] : Golden Keychain Mk. II loaded! Hooray!
[Gilded Key Storage] : Golden Keychain Mk. III loaded! Hooray!
[Gilded Key Storage] : Golden Keycard Holder loaded! Hooray!
[Josh Mate] Better Backpacks is loading...
[Josh Mate] Better Backpacks has finished loading for version SPT 3.9.5
Loading: Magnum Research Desert Eagle .50 AE Pistol
Loading: U.S. Ordnance M60 7.62x51 Light Machine Gun
jbs4bmx-MedicalAttention v395.0.2: Cached Successfully
Mod: BetterSpawnsPlus: enabled
Mod: BetterSpawnsPlus: loaded settings from "settings_LikeLiveTarkov" folder
[Priscilu] Stock Count has been updated. Enjoy!
[Priscilu] Patience is a virtue: Priscilu has fully loaded.
[Priscilu] Trader took 8.631ms to load.
Skills Extended: Loaded 44 achievements
Skills Extended: Loaded 10 quests
Skills Extended: Loaded 7 custom items
Skills Extended: Loaded 253 locale entries for locale 'ch'
Skills Extended: Loaded 253 locale entries for locale 'en'
Skills Extended: Loaded 24 locale entries for locale 'es'
Skills Extended: Loaded 253 locale entries for locale 'fr'
Skills Extended: Loaded 27 locale entries for locale 'ge'
Skills Extended: Loaded 27 locale entries for locale 'kr'
Skills Extended: Loaded 24 locale entries for locale 'po'
Skills Extended: Loaded 174 locale entries for locale 'ru'
Skills Extended: Defaulted 3316 locale entries to english across 17 languages.
Skills Extended: If you would like to provide translations, please reach out on the mod page.
Skills Extended: Loaded 11 images
SpecialSlots config looks correct. Continuing to load mod...
jbs4bmx-SpecialSlots v390.0.2: Cached Successfully
[VCQL] Loaded 0 custom quests.
[VCQL] 0 custom quests were pruned due to date settings.
[VCQL] Loaded 0 custom quest images.
[VCQL] Loaded 0 custom trader images.
jbs4bmx-AlternativeTraderPics v390.0.3:Cached Successfully
Started webserver at http://<IP_ADDRESS>:6969
Started websocket at ws://<IP_ADDRESS>:6969
Server is running, do not close while playing SPT, Happy playing!!

Ammo .366 TKM AP-M added to trader Jaeger.
Ammo .338 Lapua Magnum FMJ added to trader Jaeger.
Ammo 12/70 AP-20 armor-piercing slug added to trader Jaeger.
Ammo .338 Lapua Magnum AP added to trader Jaeger.
Ammo .45 ACP RIP added to trader Mechanic.
Ammo 4.6x30mm AP SX added to trader Mechanic.
Ammo 4.6x30mm FMJ SX added to trader Mechanic.
Ammo 5.7x28mm R37.F added to trader Mechanic.
Ammo 5.56x45mm M855A1 added to trader Peacekeeper.
Ammo 5.56x45mm M995 added to trader Peacekeeper.
Ammo 7.62x51mm M61 added to trader Peacekeeper.
Ammo 9x19mm PBP gzh added to trader Peacekeeper.
Ammo .45 ACP AP added to trader Peacekeeper.
Ammo 40x46mm M406 (HE) grenade added to trader Peacekeeper.
Ammo 5.56x45mm SSA AP added to trader Peacekeeper.
Ammo 5.7x28mm SS197SR added to trader Peacekeeper.
Ammo .300 Blackout M62 Tracer added to trader Peacekeeper.
Ammo .300 Blackout AP added to trader Peacekeeper.
Ammo 7.62x51mm M993 added to trader Peacekeeper.
Ammo 7.62x39mm BP gzh added to trader Prapor.
Ammo 7.62x54mm R BT gzh added to trader Prapor.
Ammo 9x39mm SP-6 gs added to trader Prapor.
Ammo 9x39mm BP gs added to trader Prapor.
Ammo 5.45x39mm 7N40 added to trader Prapor.
Ammo 5.45x39mm BP gs added to trader Prapor.
Ammo 5.45x39mm BS gs added to trader Prapor.
Ammo 5.45x39mm PPBS gs "Igolnik" added to trader Prapor.
Ammo 7.62x39mm MAI AP added to trader Prapor.
Ammo 7.62x54mm R PS gzh added to trader Prapor.
Ammo 7.62x54mm R BS gs added to trader Prapor.
Ammo 23x75mm Zvezda flashbang round added to trader Skier.
67711484

Interesting. The latest release should load right out of the box. Delete what you have, redownload and reinstall with the fresh copy. Don't edit anything and just see if it loads.

I got it to load but, the minute I changed anything it no longer could read the json

I have discovered that any change to overide breaks the server reading the config I set all map times individually and that worked.


Add command to get Block stats.

Annotated sample (annotation after #, not part of actual output)
{
  "general": {
    "blocks": 14001, #total num of blocks processed
    "first_height": 934222, #first and last included, then time
    "last_height": 948222,
    "first_time": "06-21-2017 04:33:36",
    "last_time": "07-02-2017 12:16:32",
    "time_span_hour":<PHONE_NUMBER>6 #difference between first and last in hours
  },
  "counts": {
    "block": 14001,
    "empty_block": 11381, # number of blocks with only coinbase and constake tx
    "transaction": 7922, # number of transaction excluding coinbase/stake
    "proof_of_stake": 14001, # number of PoS blocks, should match blocks
    "boincreward": 8813 # count of blocks where research reward is greater than 0.001
  },
  "totals": {
    "block": 14001,
    "research": 350039.46, # sum of research rewards paid
    "interest": 148958.42, # sum of interest rewards paid
    "mint":<PHONE_NUMBER>7717, # sum of nMint from block index
    "stake_input": 0 # todo
  },
  "averages": {
    "research": 39.71853625, # average research reward per research reward (called DPoR)
    "interest": 10.63912721, # average interest of all blocks
    "mint": 35.64847357, # average "nMint" per block
    "stake_input": 0, # todo
    "spacing_sec": 69.86472395, # average bloc spacing in seconds
    "block_per_day": 1236.67560848, # avg blocks per day
    "transaction": 3.02366412 # avg number of transaction per non-empty block
  },
  "versions": { # distribution of client version recorded in blocks
    "v<IP_ADDRESS>-g-research": 0.82158417, # 82% blocks have this client version
    "v<IP_ADDRESS>-g-research": 0.11392043,
    "v<IP_ADDRESS>-g-research": 0.06449539
  },
  "cpids": { # distribution of cpids that staked blocks
    "INVESTOR": 0.34397543, # investors staked 34% of blocks
    "8ed4ce08bfd7cb8a436eef5fc3be322f": 0.03656882, # this cpid staked 3% of blocks
    "015baf274dd9265b1c53d6aa064cface": 0.01771302,
    "0390450eff5f5cd6d7a7d95a6d898d8d": 0.01728448,
    "0c130640a79aab9f1eaed36277bc51fc": 0.01392758,
    "49f165229569bc8e7e49817686f8e23f": 0.01257053,
    "7987115b986329432dc76534bafe4e6f": 0.01107064,
    "1963a6f109ea770c195a0e1afacd2eba": 0.0106421,
    "ec954793ff856045ed3df78ceec58d9c": 0.01028498,
    "--snip--": 0
  },
  "orgs": { # distribution of contents of "Organisation" field in blocks
    "": 1 # 100% of blocks have this field empty
  }
}

For testing you can set the unused Organisation field to your name or whatever. Not included in this PR.

Would it not be better to times the percentages by 100 so that 0.03656882 becomes 3.656882%
Maybe even round them to 2 decimal places?

@3ullShark I can't control the rounding, nor I can't add a percent sign there. Scaling by 100 would create confusion (is it percent or fraction?), imo.


What the best way to save bag files

I found two way to save bag files. The first is:
//configure
rs2::config cfg; // Declare a new configuration
cfg.enable_record_to_file("a.bag");
cfg.enable_stream(RS2_STREAM_COLOR, 1280, 720, RS2_FORMAT_RGB8);
cfg.enable_stream(RS2_STREAM_DEPTH, 848, 480, RS2_FORMAT_Z16);
pipe->start(cfg); //File will be opened at this point

The second is:
//recorder class
rs2::recorder recorder("./all_combinations_depth_color.bag", dev);`

In fact, I have found the thrid method that is:
rs2::context ctx = rs2::recording_context("./test1.bag", "Sync__sanity.1.test");
I have noticed that doc in
https://github.com/15901476120/realsense/blob/20c41d030b185889aa680b993bd59bcc906a55ce/src/media/readme.md
But I don't understand the difference among the three.
I want ask which is the best one?

I found two way to save bag files. The first is:
//configure
rs2::config cfg; // Declare a new configuration
cfg.enable_record_to_file("a.bag");
cfg.enable_stream(RS2_STREAM_COLOR, 1280, 720, RS2_FORMAT_RGB8);
cfg.enable_stream(RS2_STREAM_DEPTH, 848, 480, RS2_FORMAT_Z16);
pipe->start(cfg); //File will be opened at this point

The second is:
 //recorder class rs2::recorder recorder("./all_combinations_depth_color.bag", dev);
I want ask which is the best one?

First one is the recommended, this is what is documented in the playback-record example.
Pipeline in general is a convenience wrapper around devices, so when you use the first method, under the hood it will use the second API. You are still welcomed to use it directly, but it involves more complexity in setting-up.
Third method is actually not related to bag files and it requires rs2_internal include, so you are not recommended to use it.


Collect data like GA's measurement protocol

Could we collect data by sending HTTP requests to umami server, just like google analytics‘ Measurement Protocol? This way we don't need to insert umami.js into the website and we can freely decide which links should be tracked.

Yes, you can send data directly to the API endpoints.

Thanks, I've got it working.


Random IllegalStateException with getInstruments api

I get a random and hard to reproduce IllegalStateException errors with calls to the api GetInstruments. Retrying the same , works. Exception trace below;
java.lang.IllegalStateException: closed
okio.RealBufferedSource.select(RealBufferedSource.kt:83)
okhttp3.internal.Util.readBomAsCharset(Util.kt:256)
okhttp3.ResponseBody.string(ResponseBody.kt:187)
com.zerodhatech.kiteconnect.kitehttp.KiteResponseHandler.handle(KiteResponseHandler.java:34)
at com.zerodhatech.kiteconnect.kitehttp.KiteRequestHandler.getCSVRequest(KiteRequestHandler.java:150)
at com.zerodhatech.kiteconnect.KiteConnect.getInstruments(KiteConnect.java:651)
Version:3.1.0

Is this consistent or intermitent? How often do you fetch the instruments master dump?

Is this consistent or intermitent? How often do you fetch the instruments master dump?

Intermittent and I would say 10 to 15% of the times.
I fetch instruments only once during the entire session (start to end).


Can't save simple DynamoDB item

I have a table called Category with 3 fields:

Field Name
Type
Notes

Name
String
The primary hash key

Description
String

PictureIds
String
will ultimately be a comma separated list of ids since I want to preserve order

I am trying to create an initial record in the table with just a Name field populated.  The request data that I captured in fiddler is as follows:
{"TableName":"Category","Key":{"Name":{"S":"Test"}},"AttributeUpdates":{"Description":{"Action":"DELETE"},"PictureIds":{"Action":"DELETE"}},"ReturnValues":"NONE"}

No objects are being saved when I scan the table for all records, and nothing shows up in the AWS DynamoDB console.

Bug: DynamoDBContext is used to Save an object where only the key attributes are set and all the other attributes are null AND the item does not exist in the target Table, the item creation will not happen.
Workaround: Include non-key data in the object.
Service behavior: According to the DynamoDB documentation, this behavior of UpdateItem is by design. Relevant bit:

If no item with the specified Key is found:
DELETE - Nothing happens; there is no attribute to delete.

Decision: We've looked into the relevant SDK code and the DynamoDB service protocol and haven't been able to come up with a simple, reliable fix for this issue. Considering that this is a very infrequently-encountered issue with a simple work-around, we are going to close this issue as Won't Fix.
Follow-up: if you feel that this bug should be fixed, please reply to this issue with your use-case and how this bug is impacting you, and we will reconsider this decision.

Hello,
I have just run into this bug myself, and believe it should be fixed. As its taken me a while to figure out the underlying cause and is extremely confusing behaviour.
Consider the following poco data class...
    [DynamoDBTable("Users")]
    public class User
    {
        [DynamoDBHashKey]
        public string Id { get; set; }

        public List<Orders> Order { get; set; }
    }

I save an intitial copy of this by using code akin to the following.
        public CreateUserCommandHandler(IDynamoDBContext context)
        {
            _context = context;
        }

        public async Task HandleAsync(CreateUserCommand command)
        {
            ...

            var user = new User
            {
                Id = command.UserId
            };

            await _context.SaveAsync(user);

           ...
        }

Given the above code where there's a method called "SaveAsync" with data I fully expect the data to be saved. Especially when no errors are returned or exceptions occur. However behind the scenes the following request data is issued.
{"AttributeUpdates":{"Orders":{"Action":"DELETE"}},"Key":{"Id":{"S":"NewUser"}},"ReturnValues":"NONE","TableName":"Users"}

Despite SaveAsync succeeding a delete action is sent without ever creating the new object. I can't see how this is a 'won't fix' issue when this is surely a fairly common scenario where an initial resource is created and then additional parts are added later on. I understand the workaround, and by simply initialising the 'Orders' collection in the default constructor to be an empty list, save works correctly. However its extremely confusing behaviour where SaveAsync can effectively fail completely silently as far as the application is concerned. I've given it data to save, no errors have occured. I should be safe to assume that the data is stored, if it hasn't been then as far as i'm concerned the SaveAsync method has failed.
If I've asked for a method to save data and it hasn't saved i'd consider this exceptional behaviour, and even if this functionality is not fixed, i'd at least expect some sort of exception or response back from the saveAsync method explaining why.
Even further confusion is compounded by running a local instance of DynamoDb. When running the above code locally, the record is created successfully when running a local DynamoDb database with no changes other than to a local DDB instance over a remote one. Therefore there is a difference in behaviour between what amazon provides for testing and what it actually provides in the cloud.


No way to keyboard focus on extension management buttons

Issue Type: Bug
Open up any extension's marketplace page in VS Code like this:

Try to tab or arrow key to the "Disable", "Uninstall" or "Manage" (the gear icon) buttons. Instead, it skips from "License" at the top right to "Details" at the bottom left
VS Code version: Code - Insiders 1.55.0-insider (c185983a683d14c396952dd432459097bc7f757f, 2021-03-30T12:47:00.900Z)
OS version: Darwin x64 20.3.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8850H CPU @ 2.60GHz (12 x 2600)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
3, 2, 2

Memory (System)
16.00GB (0.86GB free)

Process Argv
--crash-reporter-id 63154ab5-ba0e-419a-aa36-bd67d86db27f

Screen Reader
no

VM
0%

@isidorn These actions are using toolbar. Any insights why they are not able to be accessed by keyboard?

@sandy081 I can reproduce this issue, though this should just work.
I think the problem are those action with the dropdown. They are ActionWithDropdownActionViewItem and that class does not seem to handle focus properly.
It should be able to be focused and to be setFocusable.

@isidorn Can you please shed more light on how ActionWithDropdownActionViewItem has to handle focus properly? It is extending ActionViewItem which I think is handling focus properly right?

@sandy081 you are correct, I changed the actionBar in the extensions list to only focus on enabled items and to be focusable.
So now this works.
What is needed are two fixes on your side:

When the focus is on the ActionWithDropdownActionViewItem properly render it
When the Extension has not install or rating make those elements not focusable (I can repro this when running out of source)

Somehow the "disable" button gets skipped over, but only sometimes. After visiting the "disable" button once, it will then get tabbed to correctly.

@alexr00 This is as designed because of new action bar behaviour. You can navigate actions in the actions bar only with right/left arrows. If you tab/shift+tab you will be taken out of action bar. So when you enter action bar please use arrows to navigate.
CC @isidorn

I find it weird though that the first thing to focus is the disable button and not the left most button:

@bpasero the first thing to focus in a toolbar should be the left most button (even if it is disabled).
Maybe the order in the extensions view is a bit strange...

Yeah its weird why it is not getting focused on the left most button, will investigate.

GitHubTags:#A11yTCS;#Win32;#DesktopApp;#A11y_VSCode;#WCAG2.1.1;#A11ySev1;#CAITestPass_May2020;#Visual Studio Code;#A11yMAS;#Keyboard;


update BAB page

reminder issue

update the page (remove Christmas stuff) if BAB is continued
remove the page if BAB is discontinued

or maybe even if BAB is continued we might not want to have a dedicated page for it on the website
we could move the/some stuff to the docs

Add this https://github.com/zkSNACKs/WalletWasabi/issues/12446#issuecomment-1943048620
@CAnorbo please deploy before the release.

https://github.com/zkSNACKs/WasabiWalletWebSite/pull/27


Attempt to index a nil value

The mod experienced an error, and caused the game to immediately end and return to the main menu.
Here is the save file which produced the issue:
space_age.zip
The mod provided the following dump text:
Error while running event Todo-List-Continued::on_gui_click (ID 1)
__Todo-List-Continued__/todo/features/export_task.lua:6: attempt to index global 'global' (a nil value)
stack traceback:
	__Todo-List-Continued__/todo/features/export_task.lua:6: in function 'update_export_dialog_button_state'
	__Todo-List-Continued__/todo/ui/main_frame.lua:57: in function 'create_maximized_frame'
	__Todo-List-Continued__/todo/features/main_ui.lua:69: in function 'maximize_main_frame'
	__Todo-List-Continued__/todo/features/main_ui.lua:58: in function 'on_maximize_button_click'
	__Todo-List-Continued__/todo/todo.lua:94: in function 'on_gui_click'
	__Todo-List-Continued__/control.lua:20: in function <__Todo-List-Continued__/control.lua:19>

Here is my rather short mod list, so you don't need to scratch your head while trying to load the save file.

same here

There is further discussion of this issue on the Factorio Forums. The mod author is aware of the issue and is working on a fix.

Should be solved by this PR and hopefully released this week.

Fixed. Pleas upgrade to v19.8.0


perl ci/patch-samples-pkg.pl 1.3.1 public_samples

Purpose
Update samples to 1.3.1

plaese also change the readme


Added Naoe's parts and added the numbers of participants etc.

Added the following parts:

Learner Feedback and Continuous Evaluation
Website

Also, added a paragraph to explain the numbers of participants, sign-ups, and capacities on UiO-Carpentry workshops as well as on public social events.

Thanks, Naoe!


Fix possible warnings, add an option to change keys

To avoid possible warnings + have the ability to change the default keys if somebody desires.

Thanks!


Add support for LAN874xA Ethernet PHYs

The LAN8740A/LAN8741A/LAN8742A are enhanced versions of the well known LAN8710A/LAN8720A Ethernet PHYs. They are hardware and software drop-in-replacements for the existing designs. The additional features are enabled by software or by a different bootstrapping on some I/O pins.
The existing LAN8720 driver in esp-idf can be used as is, except for additional id2.vendor_model IDs that have to be accepted.
New features like Wake on LAN (WOL), Cable Diagnostics (CD) or Energy Efficient Ethernet (EEE) are not added by this PR.
New or modified vendor specific are added just for completeness.
Please refer to SMSC/Microchip Application Note 25.3 for any questions regarding the migration to LAN874xA.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for your contribution.

Thank you for your contribution! We already have internal update to add support of LAN874xA pending. However, we didn't added/updated registers layout for all chips since it was not needed from functional point of view. On the other hand it could be useful in the future. Therefore, we will consider to updating it based on your proposal.


ImportError when using default credentials from Managed VMs with non-default runtime

When using app engine managed VMs without using the "python-runtime" base, (eg, to use python3 instead of 2.7) getting default credentials breaks because "google.appengine" (the app engine sdk) does not exist. _get_application_default_credential_GAE should treat the absence of the SDK as indication that we are not running on normal GAE and to try other options.
https://github.com/google/oauth2client/blob/master/oauth2client/client.py#L1082
Stacktrace:
Traceback (most recent call last):
  File "main.py", line 1, in <module>
    from bookshelf import app
  File "/app/bookshelf/__init__.py", line 2, in <module>
    from .crud import crud
  File "/app/bookshelf/crud.py", line 2, in <module>
    from . import model_datastore as model
  File "/app/bookshelf/model_datastore.py", line 5, in <module>
    datastore.set_defaults(dataset_id='durable-pipe-855')
  File "/env/src/gcloud/gcloud/datastore/__init__.py", line 89, in set_defaults
    set_default_connection(connection=connection)
  File "/env/src/gcloud/gcloud/datastore/_implicit_environ.py", line 133, in set_default_connection
    connection = connection or get_connection()
  File "/env/src/gcloud/gcloud/datastore/_implicit_environ.py", line 124, in get_connection
    return Connection.from_environment()
  File "/env/src/gcloud/gcloud/connection.py", line 174, in from_environment
    credentials = get_credentials()
  File "/env/src/gcloud/gcloud/credentials.py", line 73, in get_credentials
    return client.GoogleCredentials.get_application_default()
  File "/env/lib/python3.4/site-packages/oauth2client/client.py", line 1199, in get_application_default
    return GoogleCredentials._get_implicit_credentials()
  File "/env/lib/python3.4/site-packages/oauth2client/client.py", line 1184, in _get_implicit_credentials
    credentials = checker(env_name=env_name)
  File "/env/lib/python3.4/site-packages/oauth2client/client.py", line 1099, in _implicit_credentials_from_gae
    return _get_application_default_credential_GAE()
  File "/env/lib/python3.4/site-packages/oauth2client/client.py", line 1369, in _get_application_default_credential_GAE
    from oauth2client.appengine import AppAssertionCredentials
  File "/env/lib/python3.4/site-packages/oauth2client/appengine.py", line 31, in <module>
    from google.appengine.api import app_identity
ImportError: No module named 'google.appengine'

Should this be closed by #185?

Yep, beat me to it. Closed by #185.


Investigate whisper's behavior on filtering out filter non-words

The model under the whisper is known to filter/remove dysfluency and filler words during decoding. We'd like to investigate how good the filtering is and how damaging it is in terms of literal/verbatim transcription.
Elements to look for

filler workds (uh, ah, ...)
"re-start" of words or sentences
voice over music/noice

(not limited to)

According to https://github.com/openai/whisper/discussions/286
They are not suppressed by default.

The heuristics do not suppress disfluencies by default. It is likely the result of training on data that, presumably, has little to no disfluencies in its transcripts.
Disfluencies are in the vocab, so you can try to give it a prompt with the disfluencies you want it to predict.

closing as wont-fix.


Tide development plan

As a follow-up to https://github.com/http-rs/tide/issues/325, I'd like to share the plan of how we can get Tide to a publishable state. This is not so much an issue to ask for input, but more to share what the plan is in case people are confused by what's going on.
The core problem I think we currently have is one of my design: we have too many different crates, which makes it hard to publish & manage. In contrast: async-std has all functionality as part of a single repo, and adds new features behind the "unstable" feature flag. I think we should consolidate Tide into a single crate, and introduce an "unstable" feature flag.
I think we should very much do the same, and the easiest way to get there is by resetting the repo by a few dozen commits to 4a538908f928aa1108473d1832073fc5cb799cc6, the commit right before all the "split" PRs landed.
Note that this was fantastic work, implemented by @prasannavl. But I think this wasn't the right direction, which is entirely on me.
From there we can move back through the commit log and start applying patches that have landed before. I estimate this to be a few uninterrupted days worth of work.

From there the plan is less clear. But I have some idea of API changes I'd like to make. But before we do that we should probably create a new "snapshot" release so people can work off the latest master branch.
I'd like to spend some effort during all this to write docs. We don't really have much right now, and I think that's holding us back. Unsure about the exact timeline, but it's something I think needs to be prioritized.
This all sounds cool, how can I help?
Unfortunately I think there's not much that can be done right now. The only separate issue that's coming up is https://github.com/http-rs/http-service/issues/31; so if you want to pick this up and help port http-service that would be fantastic. Please note though that I won't have any bandwidth to mentor this, and it won't be easy.
Other than that this is mostly me effectively taking a lock on the project to move things forward. Once that's over I should have a better idea of which steps to take after, and tracking issues can be written. That's all further out still though. More updates in the future!
Conclusion
This is the current work plan I'm thinking of executing on. This means some big changes, but the path seems clear.

Other than that this is mostly me effectively taking a lock on the project to move things forward. Once that's over I should have a better idea of which steps to take after, and tracking issues can be written. That's all further out still though. More updates in the future!

^ Why Tide is broken, in a nutshell. A maintainer who has done little work in the past few months returns to save the project!

A maintainer who has done little work in the past few months returns to save the project!

Yep, nope. That's quite enough. I don't have time to deal with whatever you think you hope to achieve here. Goodbye.

Now that 0.3.0 has been released, the work begins to rewind prior patches onto the current master in order to release 0.4.0. In order we should do the following patches.
Sourced from the PR page:
Page 3

[ ] #221 Fix example link in readme.
[ ] #222 Add Tide log.
[ ] #231 Remove #[allow(unused_mut)]
[ ] #233 Improve curl command consistency
[ ] #239 Rename trait ExtractForms to ContextExt
[ ] #241 Adjust code quality encorcement
[ ] #242 Fix broken links in readme
[ ] #245 remove async box macro
[ ] #246 Sweep the cache before uploading it
[ ] #250 Add doc comment
[ ] #253 pub use ResultDynErrExt in tide::error

I'm very cautious of any projects that do hard resets. (Infact, would go so much to say that I'd never ever do that in public projects with other contributors unless there's a serious security issue).
This simply dismissed every contributor's work from the point of the reset. Note that I do not have problems with the decision to rewind, if done, should have been done with reverts that don't make the contributions of others disappear into thin air. This I think goes against the nature of open source software conduct.

@prasannavl I hear you, and don't disagree. However I don't quite have the ability to use git in such a way that I know how to replay commits done on separate files on top of a different file tree. It might be possible, but it'd definitely take a while.
I feel the biggest loss of work is probably yours though, as you're the person that executed the project split. I'm deeply appreciative for the work you've done, and think you did it well. However the design left us in a state where it was hard to publish, and as such it became apparent after the fact that we had to change course again.
What I've done here is to try and get us to a publishable state, within the best of my ability. I wanted this to be in a timescale of days, not weeks or months as I suspect other approaches would have taken. I understand this may not be entirely satisfactory, but I hope you can empathize with the desire to not have Tide remain stagnant, but move it forward.

In case this is only about lack of git foo, I pushed https://github.com/dtolnay/tide/commit/1b67aa43879a728854d31dfae3a451cfae31abb5 which has contents that are identical to current master but doesn't discard any of the project history.

@dtolnay thank you for providing the neat solution! that if rebased upon, pretty much addresses my concern.
@yoshuawuyts - personally, I'd feel much more comfortable rebasing on top of that above whenever you get the time. I wrote my previous comment at the risk of being excessively nitpicky there, but for a healthy open collaboration, I quite strongly believe erasing history should be avoided as a matter of principle.
On the changes itself and my work on the split being the most to go - honestly, I couldn't care less about it and have no objections to any of it whatsoever - while I evidently had a different direction in my mind, I also wasn't able to put the time into it to follow them up with larger contributions.
I personally see single crate, or multiple crates to be minor issues in the grand scheme of things, compared to practical functionality and progress of the project especially when it has stagnated. It's a lot of work either way, and if you think all this reversal with help bring more progress, I'm just glad that you've decided to take this head on and move this forward in whichever way you see as the best fit accordingly. And thank you for putting in your time into it!

All commits have been rewound. Waiting on CI to pass before merging the third batch, and then we should be good.
Going to pick this back up next week. Probably first step is to do a general pass and do some spring cleaning. The current state of docs isn't great, and some reorganization would go a long way. Once that's done we should probably do a snapshot release again.
The step after that is to do a step-by-step review of each API, and mark everything outside of Tide core as "unstable". We then have some freedom to edit APIs, and slowly stabilize them.
Somewhere along this process we should also address https://github.com/http-rs/http-service/issues/31, but I'm not sure when the right time is. Either way, the first few steps seem clear.
Thanks for your patience y'all!

Thanks for your hard work on this.  I really appreciate your transparency and I like the choices you've made regarding the developer/user centric focus on the API.
Is this the correct place to discuss an HTTP2 strategy?   Apologies if it is not.
Adoption of HTTP2 is quite pervasive now, and there are performance and usability advantages to be had.  Stats show that almost 50% of websites support it,  and I think all browsers and most CLI clients support it.
I  am not demanding that we incorporate it immediately, but it would be good to get a high level architectural picture about how I, as a developer, could hope to have a single set of tools to manage http/2 upgrade/fallback and ALPN, and be able to have my routes/handlers serve requests without regard for the underlying protocol.

@rrichardson o/ thanks for raising! We definitely want to support HTTP/2, but I'd like us to be deliberate about it and ensure the foundation is in place for us to add it. This includes TLS, WebSockets, and error handling first.
If we were to add it I'd probably want to us to have the ability to use nghttp2 for this. I started initial work on creating high-level bindings to it in https://github.com/http-rs/nghttp2; but that work needs to be finished. If you're interested in progressing this, help would be very welcome!

https://github.com/http-rs/nghttp2

@yoshuawuyts Why put effort into bindings for C-based code rather than using Rust exclusively?

@kellytk nghttp2 is the most widely deployed HTTP/2 implementation used by Curl, Node.js, and Nginx alike. Being able to rely on the same impl would be quite nice.
Though perhaps you're right; the argument for having nghttp2 bindings was stronger at the start of the year, as Rust alternatives didn't implement the full spec. It seems they have caught up; though I still disagree with parts of the API at least now it's closer to what we could use. The only downside is that impls such as h2 advertise they depend on tokio, which is a non-starter for us as we'd like to use implementations that are built on futures / runtime agnostic. Maybe this is worth digging in deeper for though.

I feel most points in this issue have already been addressed. I reckon we'd be better off migrating to smaller-grained issues from this point forward. Going to go ahead and close this, and then do some issue maintenance later this week. Thanks all!

Is there any update on HTTP/2 support? I couldn't fine a tracking issue for it...

Is there any update on HTTP/2 support? I couldn't fine a tracking issue for it...


Switch MoE implementation

Benchmark results:
# mistralai
eager: 15665.457248687744us
3.9922048 GB
compiled: 15721.099376678467us
3.755603456 GB

# vllm
eager: 49546.36335372925us
6.954663936 GB
compiled: 47361.955642700195us
5.981437952 GB

# dzhulgakov
eager: 15694.758892059326us
4.106371072 GB
compiled: 15854.079723358154us
3.8705152 GB

# huggingface
eager: 19026.272296905518us
4.047395328 GB
compiled: 19472.668170928955us
3.809729024 GB

Code:
import time

import torch
import torch.nn as nn

class LLaMAMLP(nn.Module):
    def __init__(self) -> None:
        super().__init__()
        self.fc_1 = nn.Linear(n_embd, intermediate_size, bias=bias)
        self.fc_2 = nn.Linear(n_embd, intermediate_size, bias=bias)
        self.proj = nn.Linear(intermediate_size, n_embd, bias=bias)

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        x_fc_1 = self.fc_1(x)
        x_fc_2 = self.fc_2(x)
        x = torch.nn.functional.silu(x_fc_1) * x_fc_2
        return self.proj(x)

# mistral's
class LLaMAMoE1(nn.Module):
    def __init__(self) -> None:
        super().__init__()
        self.gate = nn.Linear(n_embd, n_expert, bias=False)
        self.experts = nn.ModuleList(LLaMAMLP() for _ in range(n_expert))

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        B, T, C = x.size()  # batch size, sequence length, embedding dimensionality (n_embd)
        x = x.view(-1, C)  # (B*T, C)
        router = self.gate(x)  # (B*T, n_expert)
        probs, indices = torch.topk(router, n_expert_per_token)
        probs = probs.softmax(dim=1, dtype=torch.float).to(dtype=x.dtype)  # (B*T, n_expert_per_token)
        y = torch.zeros_like(x)  # (B*T, C)
        for i, expert in enumerate(self.experts):
            mask = indices == i
            batch_idx, ith_expert = torch.where(mask)
            y[batch_idx] += probs[batch_idx, ith_expert, None] * expert(x[batch_idx])
        return y.view(B, T, C)

# vllm
class LLaMAMoE2(nn.Module):
    def __init__(self) -> None:
        super().__init__()
        self.gate = nn.Linear(n_embd, n_expert, bias=False)
        self.experts = nn.ModuleList(LLaMAMLP() for _ in range(n_expert))

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        B, T, C = x.size()  # batch size, sequence length, embedding dimensionality (n_embd)
        x = x.view(-1, C)  # (B*T, C)
        router = self.gate(x)  # (B*T, n_expert)
        probs, indices = torch.topk(router, n_expert_per_token)
        probs = probs.softmax(dim=1, dtype=torch.float).to(dtype=x.dtype)  # (B*T, n_expert_per_token)
        y = torch.zeros_like(x)  # (B*T, C)
        for i, expert in enumerate(self.experts):
            mask = indices == i
            expert_probs = (probs * mask).sum(dim=-1, keepdim=True)
            y += expert(x) * expert_probs
        return y.view(B, T, C)

# dzhulgakov
class LLaMAMoE3(nn.Module):
    def __init__(self) -> None:
        super().__init__()
        self.gate = nn.Linear(n_embd, n_expert, bias=False)
        self.experts = nn.ModuleList(LLaMAMLP() for _ in range(n_expert))

    def forward(self, x: torch.Tensor) -> torch.Tensor:
        B, T, C = x.size()  # batch size, sequence length, embedding dimensionality (n_embd)
        x = x.view(-1, C)  # (B*T, C)
        router = self.gate(x)  # (B*T, n_expert)
        probs, indices = torch.topk(router, n_expert_per_token, dim=-1)
        probs = probs.softmax(dim=-1, dtype=torch.float).to(dtype=x.dtype)  # (B*T, n_expert_per_token)
        indices = indices.flatten()  # (B*T*n_expert_per_token)
        x = x.repeat_interleave(n_expert_per_token, dim=0)
        y = torch.empty_like(x)  # (B*T*n_expert_per_token, C)
        for i, expert in enumerate(self.experts):
            mask = indices == i
            y[mask] = expert(x[mask])
        y = y.view(*probs.shape, -1) * probs.unsqueeze(-1)  # (B*T, n_expert_per_token, C)
        y = y.sum(dim=1)  # (B*T, C)
        return y.view(B, T, C)

# hf
class LLaMAMoE4(nn.Module):
    def __init__(self) -> None:
        super().__init__()
        self.gate = nn.Linear(n_embd, n_expert, bias=False)
        self.experts = nn.ModuleList(LLaMAMLP() for _ in range(n_expert))

    def forward(self, hidden_states: torch.Tensor) -> torch.Tensor:
        batch_size, sequence_length, hidden_dim = hidden_states.shape
        hidden_states = hidden_states.view(-1, hidden_dim)
        # router_logits: (batch * sequence_length, n_experts)
        router_logits = self.gate(hidden_states)

        routing_weights = torch.nn.functional.softmax(router_logits, dim=1, dtype=torch.float)
        routing_weights, selected_experts = torch.topk(routing_weights, n_expert_per_token, dim=-1)
        routing_weights /= routing_weights.sum(dim=-1, keepdim=True)
        # we cast back to the input dtype
        routing_weights = routing_weights.to(hidden_states.dtype)

        final_hidden_states = torch.zeros(
            (batch_size * sequence_length, hidden_dim), dtype=hidden_states.dtype, device=hidden_states.device
        )

        # One hot encode the selected experts to create an expert mask
        # this will be used to easily index which expert is going to be sollicitated
        expert_mask = torch.nn.functional.one_hot(selected_experts, num_classes=n_expert).permute(2, 1, 0)

        # Loop over all available experts in the model and perform the computation on each expert
        for expert_idx in range(n_expert):
            expert_layer = self.experts[expert_idx]
            idx, top_x = torch.where(expert_mask[expert_idx])

            if top_x.shape[0] == 0:
                continue

            # in torch it is faster to index using lists than torch tensors
            top_x_list = top_x.tolist()
            idx_list = idx.tolist()

            # Index the correct hidden states and compute the expert hidden state for
            # the current expert. We need to make sure to multiply the output hidden
            # states by `routing_weights` on the corresponding tokens (top-1 and top-2)
            current_state = hidden_states[None, top_x_list].reshape(-1, hidden_dim)
            current_hidden_states = expert_layer(current_state) * routing_weights[top_x_list, idx_list, None]

            # However `index_add_` only support torch tensors for indexing so we'll use
            # the `top_x` tensor here.
            final_hidden_states.index_add_(0, top_x, current_hidden_states.to(hidden_states.dtype))
        return final_hidden_states.reshape(batch_size, sequence_length, hidden_dim)

def bench(f, name=None, iters=100, warmup=5):
    for _ in range(warmup):
        f()
    torch.cuda.synchronize()
    begin = time.time()
    for _ in range(iters):
        f()
    torch.cuda.synchronize()
    us_per_iter = (time.time() - begin) * 1e6 / iters
    res = us_per_iter if name is None else f"{name}: {us_per_iter}us"
    print(res)
    return res

n_embd = 4096
n_expert = 8
intermediate_size = 14336
n_expert_per_token = 2
bias = False
torch.set_float32_matmul_precision("high")
device = torch.device("cuda")
B = 1
torch.set_default_dtype(torch.bfloat16)
x = torch.randn(B, 4096, n_embd, device=device)

with device:
    m = LLaMAMoE1()
bench(lambda: m(x), name="eager")
print(torch.cuda.max_memory_allocated() / 1e9)
torch.cuda.reset_peak_memory_stats()

cm = torch.compile(m)
bench(lambda: cm(x), name="compiled")
print(torch.cuda.max_memory_allocated() / 1e9)

Additionally, vllm's has a numerical accuracy issue.
This was run on NVIDIA-SXM4-40GB, torch nightly.
This PR adopts mistral's.

thanks for sharing these benchmarks & the code, fascinating!

When I saw masking ...
https://github.com/Lightning-AI/lit-gpt/blob/74b8df0c3f07fc31d9d1a49e870a1f7955329ad8/lit_gpt/model.py#L312-L313
... I had “Vietnam flashbacks”.
From what I remember, when the size of the tensor is not pre-determined, the CPU does not know what is the shape of the resulting tensor ahead of time. So it has to wait till all GPU operations are finished (CudaStreamSynchronize) to do the correct GPU memory allocation and prepare everything for the next PyTorch ops.
I did a simple profiling from the code in tests (😄), so basically the same model as Mixtral, but only with a single layer to fit it in a A10G.
mixtral_changes.diff.zip
And from the trace file one can see that the time it takes to do masking takes even longer than to run a single expert.

One of those flashbacks is that it's possible to easily overflow Cuda stream, so by eliminating this bottleneck we can make the forward pass even slower. Nevertheless, I think it's worth to at least try to tackle this issue.

Good point @Andrei-Aksionov. Looking at the value to select the expert is unavoidable, however, there might be a smart way to compute the mask, token_idx, and ith_expert for all experts at once outside of the loop, then you would only have a single synchronization point per MoE call.

This would however tradeoff speed for memory

On a single A10G I only saw increase in memory when the model is compiled and no speedup 🤔.
If to precompute masks/indices ahead of time, we will still see a huge CUDA synchronize at the end of the call as we need to wait till all the experts finish their jobs. In other words, unfortunately, there is no benefit of pre-computation of “selected”.
From the profiing I've noticed two things:

Pre-computation with list comprehension takes more time than expected, so a vectorized approach, if feasible, might help.
Only one CUDA stream is used. Maybe there is a stream overflow which prevents speedups with precomputed masks/indices. So need to check if there is an overflow and if so, try to maybe create dedicated streams and assign each of experts_per_token to them. But it most likely will be an “academic research” rather than a proper solution. If it was the answer, everyone would use it, I suppose.


Streaming refactor

Coverage increased (+0.7%) to 92.901% when pulling 1c04cce394aef954570b09ef9f8958d54872845e on streaming_refactor into 5d43a250e98d0bfaf3647d7af163fca3d2b5646e on master.


Add time expressions to logic blocks

Although DrMem can be used for control loops, another common use would be for home automation. This includes controlling devices based on time-of-day. To support this, we need to add time expressions to the logic block grammar.
Time-of-day Task
An async task will be created that sends the UTC and local time over a broadcast channel once a second. Logic blocks can receive these broadcasts to use in their expression(s).
Grammar Additions
These variables will be added to the logic block grammar:

UYEAR, UMONTH, UDAY, UHOUR correspond to UTC values. All of these are unsigned integers that range from 0 to the max value of the time type.
YEAR, MONTH, DAY, HOUR correspond to local time values.
MINUTE and SECOND are the same for UTC and local time.
UDOW and DOW are "day of week" to UTC and local time, respectively. Monday is 0 and Sunday is 6.

All these variables are unsigned integers and can be used in expressions and comparisons.
The parser could recognize MONDAY as 0, TUESDAY as 1, etc. And it could do the same for month names, so the expressions are more readable.
Alternative
Another way this could be achieved is to have a built-in driver that provides time-of-day devices. This would be much simpler to implement. I find it a bit distasteful, however, because it'll be writing uninteresting time values to the storage layer. Maybe forcing the max_history to 1 would make it feel less distasteful.
In its defense, this would remove some complications with logic block support; we would have to conditionally add the time-of-day channel only if any expression used a time value.

I'm starting to like the alternative.
The driver would provide seven devices: year, month, day, hour, minute, second, day-of-week. Its configuration would specify the timezone so you could have several instances; one for UTC and one for local time, for instance.

Or, should we define a new device data type, Time. The time driver would only create one device, time. Then the logic block grammar could have operators/functions to extract the various pieces of information.
Or, the time driver provides the broken out values AND the combined.
So many choices.

This seems like it could be a very commonly used driver. So, leaning toward the most general implementation would be my suggestion.
The Time driver providing a single time device with functions for manipulation seems very flexible. The device shouldn't ever have to change and adding functionally with new methods should avoid disruption.

Possibly tangential question, do you see value in making a guarantee about determining or synchrony with this driver?
I imagine there are better ways to do this but I could imagine someone wanting to use this to trigger at some frequency. What precision will this provide?
Thinking about synchrony, if I need many things to happen at once, can I use this to tell them all to trigger at a time without delay? Imagine lights coming on but if they aren't synchronized then they come on in a wave.

To argue against my own opinion 😁, I think the multiple device model for this driver is more transparent and possibly easier to get started using because of that.

Possibly tangential question, do you see value in making a guarantee about determining or synchrony with this driver?
I imagine there are better ways to do this but I could imagine someone wanting to use this to trigger at some frequency. What precision will this provide?

This is a time-of-day value and it updates once a second. So, for timing at 1Hz or slower, this device could be used. If a driver needs to sample faster, it should use the tokio::interval timer in the driver.
There are a couple of drawbacks for using drivers for "utility" values (like time-of-day):

They use storage in the backend for "uninteresting" values.
To make them trigger another set of devices, you need a logic block (for instance, you couldn't write a driver that used the 1 Hz time-of-date to drive its data collection -- drivers can't refer to other drivers, only logic blocks can tie them together.)

Thinking about synchrony, if I need many things to happen at once, can I use this to tell them all to trigger at a time without delay? Imagine lights coming on but if they aren't synchronized then they come on in a wave.

Yes. If you used a logic block to use this driver to control lights, for instance, they would all be changed at nearly the same time. As an example:
# Define a Wyze bulb (not an actual driver, at the moment!)

[[driver]]
name = "wyze"
path = "bulb-1"

# Define another Wyze bulb (still not an actual driver, at the moment!)

[[driver]]
name = "wyze"
path = "bulb-2"

# Proposed time driver which makes time-related devices.

[[driver]]
name = "time"
path = "local"
cfg = { tz = "cstcdt" }

# Turn both bulbs ON from 7pm to midnight. ('defs' is not part of
# logic blocks, yet.)

[[logic]]
inputs = { hour = "local:hour" }
outputs = { bulb_1 = "bulb-1:state", bulb_2 = "bulb-2:state" }
defs = { on_time = "{hour} >= 19" }
exprs = [ "{on_time} -> {bulb_1}",
          "{on_time} -> {bulb_2}" ]

For now, making a driver seems to be the simplest solution. This feature will be tracked in #74.


Arrow Falling Through Blocks Issue: Discrepancy Between Server and Client Collision Detection

the server figures out the correct block collision point but the client still sees the arrow falling through blocks when shooting straight up and letting the arrow fall down

I've noticed this also happens when the arrow isn't being fired straight up or down. When I'm firing it at the bridge, sometimes it can phase through blocks if I shoot it at the edge. At least visually, it looks like this.

I've been debugging this for a while but I can't seem to find a solution. I'm going to unassign myself from this so I can work on other areas of Hyperion.
For anyone who wants to take a look at this, I'd suggest using Pakkit to compare Hyperion with a vanilla 1.20.1 Minecraft server. For Pakkit to work, you'll need to comment out code which sends EntityEquipmentUpdateS2c packets in Hyperion. I'm not sure if this is an issue in Hyperion or in Pakkit, so I haven't created an issue for it yet. Here's a few notes:

This issue still occurs with other entities like boats, so this isn't an issue about how Hyperion doesn't currently calculate arrow rotation.
For debugging, an arrow with a specific velocity and position can be spawned in vanilla Minecraft using /summon minecraft:arrow 0 -15 0 {Motion:[0.0, 3.0, 0.0]}. These values need to be hard-coded in release_item.rs in Hyperion.
Vanilla Minecraft seems to calculate drag and/or gravity differently than Hyperion. This could possibly be an issue because the Minecraft client seems to simulate entity physics to some extent, but to avoid desync as blocks are placed and broken, we shouldn't rely solely on the client's entity physics and we should continue sending entity position packets.
Vanilla Minecraft seems to not use 1/8000th of a block as units for velocity; the position change packets and the velocity don't seem to line up.
This likely isn't an issue with rounding_error in sync_entity_position.rs; when removed, the arrow still goes further than what a rounding error could've caused.

closing this as old and not relevant anymore as does not exist post recode


Unable to read keypresses using ($host.UI.RawUI.ReadKey('NoEcho,IncludeKeyUp')).character

Windows Terminal version (or Windows build number)
10.0.18363.0
Latest WT and WT preview
Other Software
Powershell 7.1.3
Powershell 5.1.18362.1171
Tested on both current WT and WT Preview, same results.
Steps to reproduce
Simple TUI to demonstrate:
do
{
     Show-Menu
     $keyPress = ($host.UI.RawUI.ReadKey('NoEcho,IncludeKeyUp')).character
     switch ($keyPress)
     {
           '1' {
                Clear-Host
                functionHere
           } 'Q' {
                return
           }
     }
     pause
}
until ($keyPress -eq 'q')

Expected Behavior
Powershell to progress and ReadKey from input.
Actual Behavior
Input is detected (writes into terminal) however on enter disappears and no action is executed.
Working fine in normal PS shells (version numbers above).

Thanks for the report! I don't have a Show-Menu commandlet -- can you point me to a module? Did you author this yourself?

Apologies Dustin, that's actually a function I named whilst quickly whipping up the above to demonstrate the issue - poorly named. Why I used a cmdlet naming convention I have no idea.
So Show-Menu would simply write to host something like:
function Show-Menu
{
     param (
           [string]$Title = "OMP Server Bouncer 5000"
     )
     Clear-Host
     Write-Host "Option 1"
     Write-Host "Option 2"
}

Apologies I didn't include, I didn't think it relevant. Let me know if you need anything else.

Okay, so I think this is another case of ... well, this is pretty curious. When you press enter, we stuff an enter DOWN and an enter UP key into the input buffer. Because you're accepting a read on Key Up, you're immediately getting the "enter key up" event that you get from either pressing enter on the prompt line or enter after pause. If you press enter slowly in the traditional console, you can see this as well.
Recommendations are to either flush input (which I am not sure how to do from PS or .NET), or to not read key up events. They're relatively uncommonly used as far as we can tell. :smile:
Marking this by-design. There's a couple other issues floating around for this that I may come back and deduplicate with this one.
Cheers!


Java bindings

Looks like Go has some facility for this built in.

Maybe that would work?
When we have a stabilised and documented storage/network protocol for noms it should be feasible to implement pure Java (or any other language) bindings, though it's unlikely to be something attic will do (contributors welcome though).

Understood.  I don't have enough Go expertise to be helpful.  I guess we can look at watchers of this issue to determine how many people are looking for it / let them know when it comes.  In the meantime, there is a similar project called javersion, though it seems that Noms already has a substantially larger user base :).
There are a ton of usecases for this stuff in mobile, so if it's possible to get Java/Obj-C wrappers, even if it's not stable or fully featured, that would let people start those experiments.


Formatting iconsistency in issue template

Describe the bug
There's some formatting inconsistency in the issue templates.
To Reproduce
Steps to reproduce the behavior:

Try to create an issue
Check the issue template and you'll find the formatting inconsistency

Screenshots

Good catch @Twaha-Rahman! Also want to thank you for helping a new contributor with the process of submitting a pull request.


Write a baseline measurement for inference energy consumption

For inference energy consumption, write a baseline energy measurement with PMC

Same as others, won't work on this for now


remove copy/dl buttons from jlab, fixes CSS issues, workaround for right-click before doing context menu work

[x] remove copy/dl buttons
[x] fix CSS import
[x] context menu stopPropogation
[x] fix version mismatch
[x] limit sync
[x] index sync

@texodus `pip install -e<EMAIL_ADDRESS>

Thanks for the PR!
I've rebased this branch on #306 and fixed the lint errors in a new PR #307


Does not work with new Malilib update

Watson looks for Malilib .11 and doesn't recognize .11.5. Please update when you can, thanks!

Atm i can't update, waiting on my new pc + waiting feedback about prism

Roger that, just wanted you to know! Thanks for the sweet mod/plugin!


Sort duplicate modules by duplicate size

It would be nice to be able to sort the list of duplicate modules by:

Number of duplicates (i.e. number of chunks that contain it)
Duplicates size (duplicateSize = moduleSize*(nChunks - 1))

The second is a way to see the modules doing the most damage to bundle size via duplicates.

@steverep Thank you for the feedback! We were considering showing the number of chunks, the data is already there. Having the duplicate size is even better, wondering how it is going to look with the module paths being in general long.

wondering how it is going to look with the module paths being in general long.

You mean the screen real estate is an issue?  For the tables comparing two jobs, I think just having a picker to choose the metric to compare would suffice.  Right now it defaults to the individual module size, but let me choose to switch to number of containing chunks or duplicated size (total bundle size contribution).
BTW, it looks like the size reported for modules does not reflect tree shaking.  Is that correct?

You mean the screen real estate is an issue?

Yes, the module paths can be pretty long.

For the tables comparing two jobs, I think just having a picker to choose the metric to compare would suffice. Right now it defaults to the individual module size, but let me choose to switch to number of containing chunks or duplicated size (total bundle size contribution).

👍

BTW, it looks like the size reported for modules does not reflect tree shaking. Is that correct?

Yes, webpack reports the size of the module before any production optimization (minification, tree shaking).

Yes, webpack reports the size of the module before any production optimization (minification, tree shaking).

That's unfortunate. 🤷🏻♂

for reference, we are considering to pick up the production-correlated size using the results from webpack-bundle-analyzer  or by using another method ;)

When it comes to duplicates bundle-stats isn't helpful because it doesn't seem to report much for changes in duplication.
Here's an example report where there were significant changes in duplication (apparently causing an additional 40KB of js), but we don't get to see which modules are now duplicated that weren't before:

I've opened a pull that helps with this: #4069

@danielbeardsley thank you for the feedback!
I spent some time last week trying to show more data on the same view. Started with the chunk count since that seemed to be easier, the result did not look good, but I ended up with a couple of conclusions:

showing one more column  makes the view too complex, no point in trying to cram in the total size (value, absolute delta, relative delta)
@steverep recommendation of a selector for the metric is probably the most convenient UX
the total size (module instances x module size) is more useful than the module size, we should consider making it the default in the next major version

I've opened a pull that helps with this: https://github.com/relative-ci/bundle-stats/pull/4069

Thank you, I really appreciate it! Sorry for the slow response, I've been offline the last few days.
I think introducing a metric selector will allow us to structure the view in logical groups, reuse the filters and table, and show other metrics like chunk count.

This method is slightly different than the one you implemented in the PR, but since it involves manipulating the same data and this is something you already thought about it, are you interested in changing your PR to:

add the metrics selector
update module rows based on the selector state
update table columns based on the selector state
add the new selector to the URL
add the total module size to the side panel

Happy to help if you have any questions or need any assistance!

are you interested in changing your PR to: add the metrics selector

We can, but I feel like the table is pretty centered around bytes and byte totals, so it may be somewhat odd to represent a non-byte quantity. I may try it.
But I agree that "the total size (module instances x module size) is more useful than the module size" because I think that's the value that ends up being totalled for the overall Bundle Size stat.
Also, I don't see much use in comparing quantity of duplicates in the table because we already have a way to filter to just those that are duplicated and with this feature we can now see the resultant total size.

Also, I don't see much use in comparing quantity of duplicates in the table because we already have a way to filter to just those that are duplicated and with this feature we can now see the resultant total size.

I certainly agree that byte size is the more useful measure, but I disagree that looking at quantity of duplicates has no use.  In our bundle I've found modules repeated 30-50 times.  Sometimes they are very small, but that still clearly points to optimizations that can be made.  Sorting by number of duplicates should also be an option.

We can, but I feel like the table is pretty centered around bytes and byte totals, so it may be somewhat odd to represent a non-byte quantity. I may try it.

@danielbeardsley yes, the MetricsTable relies on the value field atm, but i think we can extend it. In the last week, I refactored the BundleModules component to make it easier to extend and I'm investigating possible ways to compare and show other data.  I will post the findings here ;)

Here's a PR result that I think is a good large case study for this:
https://github.com/home-assistant/frontend/pull/16506/checks?check_run_id=19990121982
Basically, all this PR does is adjust Babel settings for reduced transpilation and polyfills, so the vast majority of modules see a decrease in size.  However, the bundle size went up by 2.6%, seemingly because of increased duplication.  RelativeCI is not much help in narrowing down there the increases are coming from.  The goal should be to make that clear with little effort.

I rebased the changes on master (which had converted a few files to typescript).
I tried going in the direction of a "Metric Selector" and opted not to at this point; mainly because creating a Dropdown that was single-select (instead of multi-select like the filters) was looking like a lot of work. However, I did change the implementation to do the mutation in a selector; it's not a perfect fit, but it felt better than doing it ad-hoc. Adding other selector / mutation options (select duplicate count) is pretty easy once there's a UI to represent the choice.
I hope we can merge and then iterate.

@danielbeardsley thank you, good idea to use the selector!
I took some time to extract the button component and I prepared a demo of a possible selector for module metric type:
https://github.com/relative-ci/bundle-stats/pull/4154/files#diff-9a8f41b56956d654ff83cdcb2ef7f5c134eda18995e8a1075f73558911b8c72bR183

I took some time to extract the button component

I've incorporated your change into pull #4069

@danielbeardsley changes were merged and released as 4.12.0-beta.0.

just released 4.12.0 and includes @danielbeardsley changes plus an update to save the selected value into the URL like the other filters.
thank you for the PR @danielbeardsley!
Will close this issue as resolved, but feel free to open another one if you have any feedback. For example, i think it will be useful to explicitly show both values in the side panel

@vio I just had a chance to play with the changes.  Yes, I think it's almost there but a few necessary tweaks stand out for me:

Per the OP, the most useful way to sort results would be by duplicated size, i.e. moduleSize*(nChunks - 1), as opposed to total module size, i.e. moduleSize*nChunks.  In other words, show the potential decrease.  A 20 KiB module appearing 20 times has a potential savings of 380 KiB, whereas a 200 KiB module with 2 copies can only save 200 KiB.  It's a small difference in most cases but matters for larger modules.
Also per the OP, still need to see number of duplicates somewhere.  The only way to do this currently is to click on the module, and then manually count the chunks, which is obviously tedious.  As you pointed out, that details view is a perfect place to just show everything: individual size, duplicated size, total size, and number of copies.
Clicking the links for duplicated code or modules should have the duplicated size selected by default.  It's confusing otherwise.

@steverep thank you for the feedback, i think they are all very useful additions. I created new tickets for 1-2 and added them along with #4296 to the todo list ;)


Audience targeting settings

Adds the following

Category setting to set default audience targeting (public or private (followers only)) for that category.
Audience selector to AP status badge in composer.
If status badge is not shown posts will always be targeted at category default.
Default for category setting is Public.
Server default for relevant field is Private to accommodate both existing usage and also to take a more conservative approach if for some reason the setting is not filled as expected (i.e. an error).

In composer

+1 @pmusaraj
It changes the semantics for the federation icon from "will be federated" to "choose how visibly to federate"
I'd love to have "will be federated" specifically for visibility without the option to go private, because on my forum we are aggressive about the point of the forum being to share information in public. In default of that, I would not display the icon.

This looks generally great, but I have a small request. Can we go a little slower and postpone adding the UI and controllers to let users choose the target audience on a topic/post level?

@pmusaraj Sure thing. I'll make some updates here early next week.

@pmusaraj This has been updated so that the category setting is just the visibility (not the "default" visibility) and the visibility part of the status label in the composer is just a label. On the server-side you can only create AP posts with the category's default visibility.

I tested 81d248c against Mastodon Glitch

@pmusaraj I should also draw your attention to the post indicator I added for visibility. Like this publication indicator this only shows to staff. I used the same icons for public and private that Mastodon uses (i.e. their Discourse equivalents).

My 2¢ in case it is helpful in any way....

the reason I set this constant to private is because a server default should arguably be more conservative

I'm having trouble understanding the use case for private boosts from Discourse to to the fediverse. They aren't really private in any meaningful sense, as the kerfuffle about direct messages on the fediverse not actually being private messages highlights.
I think of "conservative" as "not doing harm" and "most commonly least surprise" and it's not clear to me that this not-really-exactly-private "private" meets that definition.


No mention of testing tools [issue moved from AAC]

Relocating this feedback from MicrosoftDocs/architecture-center#2697 into the Azure Well-Architected Framework issue tracker for triage.
On 5-March, 2021, @jnimander opened an issue and said:
The title of the page is "Testing tools" but I see no mention of any testing tools on the page.

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

ID: a246c94e-285e-774d-5922-010dcf87785e
Version Independent ID: a246c94e-285e-774d-5922-010dcf87785e
Content: Testing tools - Microsoft Azure Well-Architected Framework
Content Source: well-architected/scalability/test-tools.md
Service: architecture-center
Sub-service: well-architected
GitHub Login: @v-aangie
Microsoft Alias: robbymillsap

@nickwalkmsft - content signal for app dev content in WAF.
cc: @dominicallen

Hi @ckittel  -  I am performing work per https://github.com/MicrosoftDocs/well-architected-pr/pull/680 and saw this issue. Wondering if this can be closed for two reasons:

Title of article has been changed from "Testing Tools" to "Testing Strategies"
There are a couple mentions of tools referenced in the article now, such as Azure Load Testing

Please let me know your thoughts and if there are still changes/updates required, I can make them in that above referenced PR. Thanks!

Indeed, thanks for checking @craigcaseyMSFT
#please-close


Fix pageview clipping

On Android, when using clipBehavior: Clip.none and physics: ClampingScrollPhysics() the PageView clips the items on the left edge when over-scrolling at the end fixed.
Fixed issues
PageView - clip on over-scroll at the end (Android Only) #152614

Hello @ijashuzain, can you please add a test for this as instructed by the bot above to make sure we never regress this? Also, it looks like this is causing many checks to fail. Can you please take a look at those? Thank you.

(triage): Since there has been no follow up I am going to close this one. Feel free to open a new PR if you find the time to work on this again. Thank you.


DRA pod status (KEP 4680)

Update for alpha2, replacement of https://github.com/kubernetes/website/pull/48547 to address comments

according to https://github.com/kubernetes/website/pull/48861#discussion_r1859269441 not enough progress has been made to make changes to the documentation. this feature remains in alpha and is lightly documented, that will be expanded upon in the future