Microsoft LINK.EXE Overridden by (GNU?) /usr/bin/link

This action appears to work as advertised for CL.EXE and NMAKE.EXE, great!
But I hit a snag when trying to call LINK, and got a message extra operand '/subsystem:console which I did not get when running the same command in a "Developer Command Prompt"
It seems that path-wise, there's a non-MS /usr/bin/link file that out-prioritizes the MS LINK.EXE that is added to the path.  To prove this is the case, I tried just deleting it:
- name: Delete Unwanted Linker to Stop It From Interfering
  run: rm /usr/bin/link.exe

Once I did this, the correct link was found and worked.  Ugly workaround, though.  :-/
Is it within the scope of this GitHub Action's mission to try and sort out such an issue?  Even if there was just a setting like need-ms-link: true that renamed the other linker out of the way, it seems it would help document the issue in a central place for when a better answer came along.

Oh hello! Thanks for you the interest, I'm constantly surprised how many people actually use this thing...

Is it within the scope of this GitHub Action's mission to try and sort out such an issue?

It depends.
Removing specific files is probably not in scope of “setting up MSVC development environment”. It's not like there  an exhaustive list of binaries that must be available in PATH and must point to MSVC's stuff after this tool is run. So I'd rather not hardcode LINK.EXE specifically.
Say, what if someone sets up their env to have CL.EXE mean "Common Lisp" and they would like to use MSVC but for compiling C# code or whatever, nor caring for the C compiler. They wouldn't be amused if CL.EXE was removed so we probably shouldn't do that. But now, why LINK.EXE should be removed but CL.EXE shouldn't? That's why I'm not a fan of tweaking the env like that. If your environment contains /usr/bin which conflicts with what MSVC wants to use, then please set up your environment so that it does not happen.

Now, there's another thing about why msvc-dev-cmd does not override /usr/bin. I have assumed that this happens because it appends MSVC's directories to PATH. So if /usr/bin was already there then it will be preferred. If that was the case, it could have been a reasonable feature to have a flag, say, prepend-env: true which would make msvc-dev-cmd prepend its stuff into the env, not append it.
However, after running some experiments I see that msvc-dev-cmd does both.

What new paths are added and where
These paths are prepended to existing Path value and should be preferred:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\\Extensions\Microsoft\IntelliCode\CLI
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.28.29333\bin\HostX64\x64
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\VC\VCPackages
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TestWindow
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\bin\Roslyn
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Team Tools\Performance Tools\x64
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Team Tools\Performance Tools
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\vs2019\\x64
C:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\vs2019\
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\
C:\Program Files (x86)\HTML Help Workshop
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\FSharp\
C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64
C:\Program Files (x86)\Windows Kits\10\bin\x64
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\\MSBuild\Current\Bin
C:\windows\Microsoft.NET\Framework64\v4.0.30319
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\

These paths are appended to Path value and will be used, unless original Path has an override:
C:\Program Files (x86)\Microsoft Visual Studio\Installer
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\Llvm\x64\bin
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\VC\Linux\bin\ConnectionManagerExe

So I'd guess that if /usr/bin were in the PATH before msvc-dev-cmd is run then it should have been shadowed by newly added paths. If it's not, this probably means that /usr/bin is prepended to the path after msvc-dev-cmd is run. If that's the case, nothing we can do about it here.
Could you please clarify which /usr/bin causes path conflicts for you and how exactly it gets into PATH?

P.S. Wow, that's a fancy username and userpic you've got there 😂 Got me scared a bit.

Could you please clarify which /usr/bin causes path conflicts for you and how exactly it gets into PATH?

I figured out that the problem came from the fact that I'm using shell: bash on Windows.  (It's a logical choice when trying to maintain a scripts on lots of platforms to have the uniformity.)
/usr/bin/link  is actually not a linker at all (like ld) but a tool for creating a symlink (like ln).
https://www.gnu.org/software/coreutils/manual/coreutils.html#link-invocation

Removing specific files is probably not in scope of “setting up MSVC development environment”.

Maybe the step could have outputs which tell you where files are as a last resort?
- name: Enable MSVC Dev Commands
  id: msvc-dev-cmd
  uses: ilammy/msvc-dev-cmd@v1

- name: Set Detected LINK and CL Environment Variables
  run: |
    echo "LINK=${{ steps.msvc-dev-cmd.outputs.link }}" >> $GITHUB_ENV
    echo "CL=${{ steps.msvc-dev-cmd.outputs.cl }}" >> $GITHUB_ENV

If those can be assumed to be accessible from a common directory with more tools in it then maybe giving back that directory is the more general thing...

I'm constantly surprised how many people actually use this thing...

Thanks for the prompt response...and if you keep maintaining small things and become the go-to person for that thing, it can take on a life of its own over time.  Maybe there are enough people that I'm not the last person to try and use bash with it!
Perhaps just checking to see what the shell is and printing out a warning if it's not Powershell or CMD would be helpful.  Or a section in the README.md on the general topic of path conflicts--this being an example--and what people might do about it.

that's a fancy username and userpic you've got there 😂 Got me scared a bit.

Programming is serious business.  🍴


I'm trying to compile then this shows up.

Describe your problem here.
source/PlayState.hx:75: characters 8-22 : Type not found : vlc.MP4Handler
source/PlayState.hx:1573: characters 13-23 : Type not found : MP4Handler
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No response

change your hxCodec version to 2.5.1 using
haxelib remove hxCodec
haxelib install hxCodec 2.5.1

Now it says this source/Achievements.hx:132: characters 30-54 : Warning : FlxCamera.defaultCameras is deprecated, use FlxG.cameras.setDefaultDrawTarget instead
C:\Program Files (x64)\FNF-PsychEngine-main\export\release\windows\obj>setlocal enabledelayedexpansion
Warning: Could not find Visual Studio 2017 VsDevCmd
Missing HXCPP_VARS
Error: Could not automatically setup MSVC

Did you install Visual Studio? I believe you do have to install Visual Studio to compile it


Error installing apn

\node-apn-master>npm install apn
npm ERR! code ENOSELF
npm ERR! Refusing to install package with name "apn" under a package
npm ERR! also called "apn". Did you name your project the same
npm ERR! as the dependency you're installing?
npm ERR!
npm ERR! For more information, see:
npm ERR!     https://docs.npmjs.com/cli/install#limitations-of-npms-install-algorithm
npm ERR!      C:\Users\wv117\AppData\Roaming\npm-cache_logs\2017-06-19T12_15_01_569Z-debug.log

I am closing this. This is not related to node-apn.

Than can you please explain me what is the actual issue why i can't able to
install apn??
[image: photo]
Thanks and Regards
Shruti Raikwar
Webvillee Technologies Indore
*Contact No-<PHONE_NUMBER> *
On Thu, Jun 29, 2017 at 5:29 PM, Florian Reinhart<EMAIL_ADDRESS>wrote:

I am closing this. This is not related to node-apn.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/node-apn/node-apn/issues/575#issuecomment-311945681,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AYl9gyMYH9lzXXMTSAMZ4iykwwrgSNfzks5sI5G7gaJpZM4N-Jim
.


502 Bad Gateway

Hi,
I am getting a 502 on my local environment whenever I switch ExceptionHandler to BugsnagExceptionHandler.
Someone else has also reported the issue, which can be seen below.
http://stackoverflow.com/questions/31428057/guzzlehttp-kills-php-fpm-when-trying-to-post-to-ssl-secured-url
Does anybody have any suggestions?
Thanks in advance.

Thanks for getting in touch. Please check your PHP logs. I think there is being an exception thrown while trying to contact Bugsnag's servers. This could be due to failed SSL negotiation.


Installation failed if bootstrap machine install Docker 1.12

Only happen if bootstrap machine install latest Docker 1.12

TASK [start docker] ************************************************************
fatal: [evan-dcos-master]: FAILED! => {"changed": false, "failed": true, "msg": "Failed to start docker.service: Unit docker.socket failed to load: No such file or directory.\n"}
to retry, use: --limit @install.retry

Fixed in 4e27607. Please see the change for modifying docker.service in the README.md


Change default for "enable_http2" in prometheus.remote_write

Request
As reported by @bboreham, setting enable_http2 to true causes all shards to be sent over one socket. This is not performant at high data rates. We should consider changing the default value to false.
It is not clear to me whether this might break something for users who rely on enable_http2 being true. We need to look into it before changing the defaults.
Use case
Better performance.

In production for the customer, we didn't see a huge win from changing this.


Possible missing gettext dep in Windows artifacts

In conda-forge/gobject-introspection-feedstock#72, the Windows builds are failing due to a missing intl.lib.
Looking into things, it looks like the need for that library is coming from the glib pkg-config files, which include intl.lib as a requirement:
Libs: -L${libdir} -lglib-2.0 -lintl -liconv

If I'm understanding #167 correctly, the build is currently explicitly not including gettext as a runtime dep on Windows, which would be a pretty straightforward explanation for the error.
@xhochy What's the intended pattern here? Should we be adding gettext as a runtime dep on Windows? Should the Windows pkg-config files not be listing -lintl?

I think the pkg-config files shouldn't be listing intl as a dependency. Probably the same goes for liconv. I think we should add a compile test to this feedstock to ensure that the pkg-config files correctly work.

Yes, I'll work on this latest tomorrow, possibly today.

WIP over here: https://github.com/conda-forge/glib-feedstock/pull/170
It will take a bit as Windows will be a bit of trial and error.

Thank you for all of your work on this @xhochy! Unfortunately I'm still seeing a related failure in the gobject-introspection build, but it might be something that could/should be addressed outside of the glib build anyway:
%PREFIX%\Library\include\glib-2.0\glib\gi18n.h(25): fatal error C1083: Cannot open include file: 'libintl.h': No such file or directory

(full log here if you want to see the compile command line, etc.)
I'm pretty sure that I should be able to fix this by adding gettext as a build dep to get the relevant headers ... and given the way that Conda has always been a bit seat-of-the-pants regarding how to handle *-dev files, this isn't a super surprising issue to me. But I did want to flag this to you, @xhochy, in case you think it indicates that glib needs another tweak. If so, it at least ought to be a lot easier to get right than your compile test!

Yes, this needs another fix with glib, but that is one that will come after I have refreshed the gettext package. We should probably introduce a libintl-devel package and make glib depend on that.

Depends on https://github.com/conda-forge/gettext-feedstock/pull/28

does this mean that existing glib 2.80 package have accidentally broken the ABI on windows?

No, it only means it cannot find an include if gettext is not installed. I think I have the gettext split itself ready on Monday and should get this issue here clean over the course of the week.

This should be fixed again.


[GHSA-f3jh-qvm4-mg39] Erroneous authentication pass in Spring Security

Updates

Affected products

Comments
Reference: https://nvd.nist.gov/vuln/detail/CVE-2024-22257

Hi @SunBK201, we can't change the vulnerable version ranges and patched versions because a patched version called 6.0.9 appears to not exist. org.springframework.security:spring-security-core has no version 6.0.9, as seen at https://mvnrepository.com/artifact/org.springframework.security/spring-security-core. Additionally, the 6.0.x branch at https://github.com/spring-projects/spring-security/commits/6.0.x/ does not contain the fix commit that is present in the 5.7.x, 5.8.x, 6.1.x, and 6.2.x branches.


text/template: incorrect error line number reporting after multiline comments

Go version
go version go1.23.0 darwin/amd64
Output of go env in your module/workspace:
GO111MODULE=''
GOARCH='arm64'
GOBIN=''
GOCACHE='/Users/dev/Library/Caches/go-build'
GOENV='/Users/dev/Library/Application Support/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='darwin'
GOMODCACHE='/Users/dev/pkg/mod'
GOOS='darwin'
GOPATH='/Users/dev'
GOPROXY='https://goproxy.cn,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/darwin_amd64'
GOVCS=''
GOVERSION='go1.23.0'
GODEBUG='gotypesalias=1'
GOTELEMETRY='local'
GOTELEMETRYDIR='/Users/dev/Library/Application Support/go/telemetry'
GCCGO='gccgo'
GOARM64='v8.0'
AR='ar'
CC='clang'
CXX='clang++'
CGO_ENABLED='0'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -arch arm64 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/2f/7bsk573j6bd1b949y1mq2stm0000gn/T/go-build3492055087=/tmp/go-build -gno-record-gcc-switches -fno-common'

What did you do?
I encountered a problem with incorrect error line number reporting when using the text/template package. Specifically, if a template has a multiline comment (e.g., {{/* ... */}}), and an error occurs (such as an undefined function) on a line immediately after the comment, the reported error line is incorrect and points to the start of the comment block or earlier.
Example code https://go.dev/play/p/YVbgdA-Sj1Z:
package main

import (
	"os"
	"text/template"
	"log"
)

func main() {
	tmpl := `{{/*
This is a multiline comment.
It spans multiple lines.
*/}}
{{undefinedFunction "test"}}
`
	t, err := template.New("test").Parse(tmpl)
	if err != nil {
		log.Fatalf("Template parse error: %v", err)
	}
	err = t.Execute(os.Stdout, nil)
	if err != nil {
		log.Printf("Template execution error: %v", err)
	}
}

What did you see happen?
The error reported the wrong line number):
Template parse error: template: test:2: function "undefinedFunction" not defined
What did you expect to see?
I expected the error to report the correct line where the undefined function is used:
Template parse error: template: test:5: function "undefinedFunction" not defined

Related Issues and Documentation

text/template: Parse does not report error line correctly #27319 (closed)
text/template: wrap errors returned by custom template functions #34201 (closed)
text/template: wrong template name in error message #8577 (closed)
affected/package: text/template #53239 (closed)
embed + text/template: "incomplete or empty template" error with directory #53751 (closed)
Template.Execute doesn't return the original error from methods and functions #34179 (closed)
the strange first line of template is blank #67194 (closed)
text/template: does not recover from panics where it should #2663 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

cc @robpike @mvdan


deal with elements going stale during filtering

This addresses an issue that was raised on Slack.
I don't love this code, does anyone have any suggestions for improving it?

Can we have a test for that issue first? It's hard to improve this code without being able to test it.

In case it helps you build your test, I updated my issue to provide you with spec, objects and HTML samples of what I was using.

We also do a rescue for Selenium::WebDriver::Error::StaleElementReferenceError in #locate:
def locate
  using_selenium(:first) || using_watir(:first)
rescue Selenium::WebDriver::Error::NoSuchElementError, Selenium::WebDriver::Error::StaleElementReferenceError
  nil
end

Would the new rescue in #using_watir change this? I'm not exactly sure what situations we had been trying to rescue before.

@jkotests we have it in #locate but not in #locate_all which is what is triggering this.
Additionally, we retry Stale Element exceptions in other locations, it seems like we shouldn't just return nil if it happens in the middle of the filtering process.
@p0deje I added a spec as requested. :)


Can administer channel

Fixes: #31959

Screenshots and screen captures:

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Did a pretty complete review. I think some of the prep commits suggested would be worth extracting and submitting in a prep PR; they should be easy to merge and cut the number of files that this touches, which generally reduces rebase pain significantly. I think the ones I noted should be easy to extract and total about 20% of the lines of this PR? Be encouraged to DM me when you have that up as I may be able to merge it quickly.
One other note: I think we want the new setting to appear before the "remove users" one in the UI. Probably trying to mimic the setting ordering we selected for group settings will do a lot better than appending at the bottom, if the issue doesn't specify it.

There some stuff we can clean up on top of this, but I think at this point it makes sense to merge this, thanks @shubham-padia! @alya should probably do a UI checkup though.
I noticed one important bug after merging, which is that probably you should still need to be an organization administrator to change the "Default channel for new users" checkbox. Can you prioritize fixing that?

I noticed one important bug after merging, which is that probably you should still need to be an organization administrator to change the "Default channel for new users" checkbox. Can you prioritize fixing that?

Addressed in #32558 (1st commit)


This fixes an issue with the tween restart function in phaser.js.

This PR

Fixes a bug #3651

Describe the changes below:
It now checks to see if this.state === TWEEN_CONST.PENDING_ADD in the tween restart function
If true, sets this.seek(0) and this.parent.makeActive(this)
This fixes the issue that makes the tween stuck when restarting the new tween directly after adding a the new tween.

Thanks for this PR. Could you please remove your changes to package.json and the lock file, so I can merge it.

Okay, I think I just put a new pull request in.


The dynamic update of information grid sometimes go flashing. (AC-7)

The dynamic update of information grid sometimes go flashing. (AC-7)

Fixed by changing this：
text_label.after(100, text_label_update)


[BEAM-3515] Portable translation of SplittableProcessKeyed

Introduces a new Payload for this primitive transform, consisting of the DoFn and restriction coder id.
Expansion on the Dataflow backend side will proceed as usual. Next steps will be mostly in the worker, which will get a ParDo instruction now properly referencing the DoFn and coder in the portable pipeline proto.

Fixed checkstyle and the Flink compile error, PTAL.

Can we update the ParDoPayload to contain the restriction coder id instead of defining a new payload?

I think defining a new payload is the right thing to do here, because this is legitimately a new transform - it is not a ParDo, it is an implementation-detail primitive part of the expansion of a ParDo, much like COMBINE_PGBKCV is part of COMBINE.

retest this please

Just to understand that your saying that that you will use ParDoPayload for the pipeline submitted to a runner and then it will perform translation where it can produces this SplittableProcessKeyed function. Do you expect to turn this SplittableProcessKeyed back into a ParDoPayload for use when executing or do you expect that all SDKs will understand SplittableProcessKeyed?

ParDo is a primitive in the same sense Combine is a primitive - ideally, the pipeline proto would include the whole thing (e.g. a ParDo transform with is_splittable=true, or a Combine transform), and then the runner would do whatever it takes to evaluate it.
In practice, runners would manipulate the proto and rewrite the Combine transform into a graph of PGBKCV etc., and perform combiner lifting and other things. Likewise, runners would rewrite a splittable ParDo into the standard SDF expansion (pair with restriction, split restriction, SplittableProcessKeyed). So the SPK primitive ought to exist in any case; at least for use by runners that would like to use this standard expansion, which I think in practice would be all runners. I think it would be misleading and useless to overload the ParDo primitive to also play the SPK role. SPK does not encapsulate the whole splittable ParDo, only the "hard" part that executes (unique key, element, restriction) tuples.
Note that right now we're a bit away from the vision above, in the sense that both Combine expansion and SDF expansion are effectively done by the SDK rather than by the runner, in a language-specific way, via PTransform overrides - but this will change, for both of the transforms, as portability matures and all graph surgery is moved behind the JobService for all runners.

I.e., to clarify further: the current PR introduces a new primitive that will, in any case, be needed to represent the expanded state of applying a splittable ParDo. This is necessary because currently the SPK transform does not have a portable representation and because of that its details are lost in the pipeline proto so the FnAPI workers can not make use of it.
The current PR does NOT per se bring us closer to a world where the expansion of a splittable ParDo happens in a language-agnostic way - I will tackle that separately later.

That is quite false. ParDo is a primitive and Combine is a well-defined composite.

The ParDoPayload should add the necessary information for running an SDF. It is true that SDF is different than "simple ParDo" in the same way that stateful ParDo is different. Just add the bits you need. Or TBH I'd be perfectly happy with three primitives - they are punned because they are all elementwise.

(SplittableProcessKeyed would be none of the above - it is an implementation detail)

I'm not sure how your understanding of "ParDo is a primitive" is different from my understanding of the same, and how that is different from "well-defined composite". It seems that in theory runners are free to evaluate both transforms any way they wish, and for both there is a well-known particularly common way to evaluate them, perhaps common enough to be used in all runners, perhaps not. I don't see how in this sense SPK is different from COMBINE_PGBKCV.
I think we both agree that ultimately the pipeline proto, as submitted by the SDK to a JobService, should contain a ParDoPayload with is_splittable=true, and then ParDoPayload should probably contain a restriction coder. I'm happy to add that to the current PR, but it will not be used just yet (because currently a splittable ParDo is expanded before the pipeline is translated to proto, so the proto doesn't contain any ParDoPayload's with is_splittable=true).
Are you saying that the SPK transform should not exist at all, or that it should exist somehow less prominently, or that its representation should be piggybacked onto ParDoPayload? (but it definitely should be evaluated differently than a regular ParDo because it is splittable, and it should also be evaluated differently than a splittable ParDo because it doesn't take elements but takes element-restriction tuples) I'm also not sure what are the "three primitives" you're referring to.

Sorry, I reacted to your comment, not the particular change. I may have missed the plan. +1 to Luke's question. From that comment it sounds like you are treating the model right, but runners have to reassemble the appropriate instruction for an SDK harness. The use of ParDoPayload in the execution side is a pun, not a logical necessity.
But depending on the composite structure, or being vague about what is a Beam primitive got me concerned. My opinion is that inspection of the composite structure of a transform is a catastrophic design error, and that the payload should contain the full spec needed for an arbitrary implementation strategy. COMBINE_PGBKCV should exist on the runner side only. The runner might insert this before submission or when building a stage for the fn API. Put another way, an SDK should be able to specify any correct composite structure it wants for combine. I can't see a way to justify throwing away that abstraction since it is so easy to do right and already done by ~every system.
I'm totally cool with non-primitives and pseudo-primitives having well-defined payloads. I definitely don't want to imply otherwise. I think an explicit expansion of a splittable ParDoPayload to a composite with a (runner-side) Splittable process keyed payload is just great. But no reason an SDK should need to do anything novel. If so, you need to invent some execution side instructions and embrace that they are fundamentally different than high-level PCillection transforms.

To Luke's question:

Do you expect to turn this SplittableProcessKeyed back into a ParDoPayload for use when executing or do you expect that all SDKs will understand SplittableProcessKeyed?

Yes, I expect this to be a new instruction, with payload SplittableProcessKeyedPayload, that all SDKs are required to understand.
To your latest comment:
I think I'm missing something because I still can't figure out what, if anything, are we disagreeing on. There is no inspection of composite structure involved; I think the path I have in mind for SDF is identical to what you described for Combine, and so there's nothing novel about it.
I am assuming that runners will typically massage the received pipeline proto, and then execute it (e.g. Spark would translate it to RDDs). The massage (surgery) part may include things like fusion, combiner lifting etc., implemented as libraries used by runners. Runners are, of course, also free to do these things without using the libraries, or do different things, or to not do them at all. But one of the reusable surgery instruments would be the standard expansion of ParDo(SDF) which would produce, among other things, an SPK transform.
So, eventual state:

Pipeline proto contains a ParDoPayload with is_splittable=true and restriction coder specified.
SPK never appears in a proto that an SDK submits to a JobService.
Most or all runners, during surgery on the received pipeline proto, use the standard SDF expansion, which produces the SPK transform.
After surgery is done, when executing the modified pipeline, most or all runners will end up interpreting the SPK transform by sending an SPK instruction for the SDK.

So SPK will exist on the runner side only (to the extent that all PTransform overrides will eventually be runner side only).
Current state: I'm just trying to get the portable Dataflow runner working first; the Dataflow runner doesn't do pipeline proto surgery, it relies on PTransform overrides, so it never produces a pipeline proto with a ParDoPayload with is_splittable=true - instead, after applying its PTransform overrides, it produces the SPK transform directly, and translates it to an SPK step in the Job. Via various Dataflow backend and worker magic, the Dataflow runner, too, will produce an SPK instruction for the SDK.

Luke - I did the changes you suggested, and I confirmed that the existing SDF tests (non-FnAPI) still run, and that in the Fn API case, the pipeline doesn't run, but by manual inspection the staged pipeline proto and the Job JSON appear correct. PTAL.

retest this please

The failing test is flaky and unrelated.

How flakey is it? Can you sickbay it (@Ignore(<URL to JIRA with "flake" and "sickbay" label>)?

Not sure how flaky, but it also failed in another person's PR that was also unrelated to the test.
Filed https://issues.apache.org/jira/browse/BEAM-4281 .

retest this please

retest this please

The compile error was legit, I missed it when merging another PR... Fixed here, will merge when green.

retest this please


cache resources exhausted

Default (-a), after 14 sub-folders with 0_0.png images, it stopped and threw:
./magick-slicer.sh heightmap.png
convert-im6.q16: cache resources exhausted `heightmap.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: cache resources exhausted `heightmap_files/13.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: No IDATs written into file `heightmap_files/13.png' @ error/png.c/MagickPNGErrorHandler/1641.
convert-im6.q16: no images defined `heightmap_files/13/%[filename:tile].png' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: cache resources exhausted `heightmap_files/14.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: No IDATs written into file `heightmap_files/14.png' @ error/png.c/MagickPNGErrorHandler/1641.
convert-im6.q16: no images defined `heightmap_files/14/%[filename:tile].png' @ error/convert.c/ConvertImageCommand/3258.

It' s PC tower running on Ubuntu 20.04 with 16GB RAM and free disk space, i5 CPU and GTX970 GC.
Any idea?
More verbose
/magick-slicer.sh -v3 -b heightmap.png
Parsing key: -b
Parsing key: heightmap.png
Section: Functions
Section: Slicer A
Section: Slicer B
Section: Programm
Slicer B is running...
    Slicing zoom level "0"; image main size is "256"
    Slicing zoom level "1"; image main size is "512"
    Slicing zoom level "2"; image main size is "1024"
    Slicing zoom level "3"; image main size is "2048"
    Slicing zoom level "4"; image main size is "4096"
convert-im6.q16: cache resources exhausted `heightmap.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: cache resources exhausted `heightmap_files/4.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: No IDATs written into file `heightmap_files/4.png' @ error/png.c/MagickPNGErrorHandler/1641.
convert-im6.q16: no images defined `heightmap_files/4/%[filename:tile].png' @ error/convert.c/ConvertImageCommand/3258.
    Slicing zoom level "5"; image main size is "8192"
convert-im6.q16: cache resources exhausted `heightmap.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: cache resources exhausted `heightmap_files/5.png' @ error/cache.c/OpenPixelCache/4083.
convert-im6.q16: No IDATs written into file `heightmap_files/5.png' @ error/png.c/MagickPNGErrorHandler/1641.
convert-im6.q16: no images defined `heightmap_files/5/%[filename:tile].png' @ error/convert.c/ConvertImageCommand/3258.
Slicer B complete

This is ImageMagick memory issue, check this issue: https://github.com/ImageMagick/ImageMagick/issues/396

Indeed! :)
Thank you very much


docs(release): add RELEASE_MANAGEMENT.md file

Fixes #2336
Signed-off-by: Peter Somogyvari<EMAIL_ADDRESS>

FYI: I'm going to leave this in draft state until we confirm that the npm package auto-publishing works (which right now it does not)

Hi @petermetz I've force pushed the changes where I specified the steps to update weaver module versions using the scripts.


Calculate angular difference on camera rather than on the sky

Change the calculation of the angular difference, add the threshold array, few other minor changes.

Hi @orelgueta
Ok, this was probably a mistake: now the "selected_models" variable within "tain_models.py" does not have a single model uncommented (so it is empty).
What is the best model right now (is it still MLP_tanh)? Did you intend to do this?
Tarek

No, this was not intended and probably happened in the merge actually (my local version has MLP_tanh uncommented). That is the best model at the moment, yes.

I fixed it in the main branch now.

Thanks!


Interrupt and replace proxy response

What should we add or change to make your life better?
It would be useful to be able to cancel sending the proxy response back and optionally send a different response.
Why is this important to you?
I need to watch 302 Forward headers from the proxy response, and if they match certain criteria, send back a 200 text/html response with a notice and the link so that if the user did actually intend to navigate there they need to click the link. I got this working currently by doing the response in TransformResponseAsync, relying on the proxy failing with "response has already started" error. It works but is certainly not a great solution.

Hmm, we don't have a good story for that today, or a suitable callback in the middle of ProxyAsync. @Tratcher, this opens a can of worms for what you could do in terms of rewriting the response.
Even though this ask is for looking at response headers, it feels like a slippery slope to wanting to have a buffered request/response where additional logic can process and manipulate the body that is sent in either direction.

I am currently testing the migration from ProxyKit. I just realized manipulating the response body is also a requirement of mine - some proxy destinations are old and return HTML with URLs that are not proxy-friendly. In this case, I know which requests will need rewriting before proxying and can buffer only those.
Maybe add two forward/respond functions to split IHttpProxy.ProxyAsync for manual control (similar to ProxyKit)?

I think a different version of ProxyAsync is what is needed here. Probably something like BufferedProxyAsync that then takes callbacks to modify the request and response as they both pass through.
Its not going to be as performant as non buffered, but for specific scenarios, its what is needed. This would also allow for retry and mirroring scenarios.

I've started trying to break up IHttpProxy.ProxyAsync into more distinct steps, but the complexity it adds is significant. It also doesn't help people using the rest of the proxy APIs.
One alternative I'm considering is to change TransformResponseAsync to return a bool that would let you short circuit the remainder of ProxyAsync (e.g. copying the body and trailers).
https://github.com/microsoft/reverse-proxy/blob/aa770a88d000db1b63d35089fc0d31dd267cdea7/src/ReverseProxy/Service/Proxy/HttpTransformer.cs#L69
That would allow you to send an alternate response in the callback, or you could wait until after ProxyAsync completes and check HttpResponse.HasStarted.
This approach could work for the higher layer structured transforms as well, adding a similar bool to ResponseTransformContext. In that case I'd recommend putting the custom response in middleware so that the remaining transforms would have a chance to run without hitting an error about the response having already been sent.

Returning a bool for TransformResponseAsync would work, but it seems a little ambiguous to me.
I suggested two separate functions instead of callbacks because I need to do database queries with my response rewriting. To reduce queries, I only make them after the proxied response returns with a 200 and text/html content type. With everything being in a transformer, I need to make a new transformer for each request with the DbContext, logger, etc.... Two separate proxy functions would simplify my transformer and make the proxy flow more readable.
using var response = await httpProxy.SendToDestination(context, ...);
if (CheckSomething(response))
{
  // Write different response to httpContext
}
else
{
  await httpProxy.SendToClient(response);
}

Also, I did get content rewriting working with the current release by just replacing the HttpResponseMessage.Content inside TransformResponseAsync. Not sure if there is anything bad with this or not.
var content = new StringContent(body, Encoding.UTF8, "text/html");
httpContext.Response.ContentLength = body.Length;
proxyResponse.Content?.Dispose();
proxyResponse.Content = content;

@maknapp replacing the response body like that should be fine, especially since you're careful to dispose the old one. You'll want to make sure you do the replacement before headers are copied though. Note trying to do the same for the request body would cause a problem, we track the request body more closely with a custom HttpContent type.

I suggested two separate functions instead of callbacks because I need to do database queries with my response rewriting. To reduce queries, I only make them after the proxied response returns with a 200 and text/html content type. With everything being in a transformer, I need to make a new transformer for each request with the DbContext, logger, etc....

The transformer has access to the HttpContext and would be able to get the DbContext, logger, etc. itself, you don't need a new one per call. TransformResponseAsync would also let you inspect the status code and content type. I assume that's how you got the body replacement working above.

I've tried breaking down HttpProxy into composable calls to enable:
A) Caller control flow
B) Request and response transformations without callbacks
It ends up being four steps, each with :

Create the request
Send the request
Send the response
Complete the response

https://github.com/microsoft/reverse-proxy/commit/90d7d04a73c8bad626138ea8714748dc3124a06c#diff-0a4324a1a2cfc979ba03a1cd37836a44d3184f221cf82a121cad58dac3423d3bR118-R128
Request transformations happen between steps 1 and 2, response transformations between 2 and 3, and trailer transformations between 3 and 4. Step 4 primarily exists for gRPC streaming scenarios.
Here are some of the challenges I see with this approach:
A) It makes the simple case harder. If I don't want to customize anything why should I have to go through all of these steps? Should there be a top level wrapper around these for the simple case?
B) Similarly, the excepted usage is less discoverable. It will require a lot of docs to explain how to use these together, which are optional, etc..
C) The caller becomes responsible for the lifetime of the HttpResponseMessage, which if no properly disposed could cause a resource leak or worse.
D) Steps 2-4 can fail so the caller has to check each for success before continuing. We don't want this component to throw for common failures, that's why we have the ProxyError enum instead.
E) We need a way to flow state between the calls. I've added state into the HttpRequestMessage.Options/Properties collection which may not be recommended. Using this collection also adds extra allocations per request.
F) We'll have to re-design the telemetry model. If the caller chooses not to move onto step 3, our telemetry has no way of identifying the end of that request.
We'll discuss this more in our next team meating.

Here's a quick look at an alternative I proposed above:
Direct proxy - Allow the transform callback to return false to short circuit the remainder of the processing.
https://github.com/microsoft/reverse-proxy/commit/8eb197564f2a2af8e071beb1730a2484a359331a#diff-864e9f675b0f53707e74be0e99181f657646b2b33a6f75f04f94b3715181ffc1R81-R91
General proxy - Allow structured transforms to set a property to short circuit the remainder of the processing (though not the other transforms?).
https://github.com/microsoft/reverse-proxy/commit/8eb197564f2a2af8e071beb1730a2484a359331a#diff-626186537c38320a01a7715686741c1f818b078a7e933ab1045537d17f3a0e97R77-R87
This approach is much simpler and almost as powerful. It avoids most of the error handling, lifetime, and telemetry issues encountered in the multi-step model.
Thoughts?

This makes me lean towards the short circuit simple solution. I cannot come up with any use-cases where the 4 step solution would be the only solution (but someone will probably have one right after going with the short circuit solution).
A wrapper for the simple case would initially cover B, C, and D by giving an example to work from. Would the 4 step solution make any of the other open issues/enhancements easier to accomplish (load balancing, retries, etc.)?

Would the 4 step solution make any of the other open issues/enhancements easier to accomplish (load balancing, retries, etc.)?

A decomposed API doesn't benefit the higher level middleware pipeline at all, only direct callers. Load balancing happens before proxying and is unaffected by either approach. Retry needs to suppress the response, but could be done with either mechenismn.
The most interesting scenario for the decomposed API is that it decouples the transform model, which is something we've thought about in the context of integrating IHttpProxy directly into Asp.Net Core.

Garbled?

public class CustomTransformer : HttpTransformer
{
    public override async ValueTask TransformRequestAsync(HttpContext httpContext, HttpRequestMessage proxyRequest, string destinationPrefix)
    {
       // return base.TransformRequestAsync(httpContext, proxyRequest, destinationPrefix);
        await base.TransformRequestAsync(httpContext, proxyRequest, destinationPrefix);
        proxyRequest.Headers.Host = null;
    }
    public override async ValueTask<bool> TransformResponseAsync(HttpContext httpContext, HttpResponseMessage? proxyResponse)
    {

       string body=await proxyResponse.Content.ReadAsStringAsync();
        body= body.Replace("<title>Vue.js</title>", "<title>bbhxwl</title>");
        var content = new StringContent(body, Encoding.UTF8, "text/html");
        httpContext.Response.ContentLength = body.Length;
        proxyResponse.Content?.Dispose();
        proxyResponse.Content = content;
        return await base.TransformResponseAsync(httpContext, proxyResponse);
    }

}

Comments on closed issues are not tracked, please open a new issue with the details for your scenario.


Outlook spam reporting sample

Q
A

Bug fix?
no

New feature?
no

New sample?
yes

Related issues?
no

What's in this Pull Request?

Please describe the changes in this PR. Sample description or details around bugs which are being fixed.

Code sample to supplement the Implement an integrated spam-reporting add-in (preview) article.
Guidance

Please update this PR information accordingly. We'll use this as part of our release notes in monthly communications.
Please target your PR to dev branch. Released documents are in main branch.

Changed target branch to main, as per @davidchesnut. I swear the contributing guidelines said "dev", but it is clearly correct so not sure what happened or if I saw a different version somewhere.


[WFLY-13807] EE: Add component class info to interface based proxy to…

… preserve validation metadata
https://issues.redhat.com/browse/WFLY-13807
This fix makes the component class the superclass of the interface proxy to preserve validation metadata. Currently in such case the superclass is set to Object, so validation metadata is lost. We cannot return proxy directly because it does not contain generics information.
This change lead to following problem: ViewService interceptor chains are hashed using Method object. As a result, after changing the superclass to the bean class some invocations failed if they invoked method was the interface method. I have modified view service so that in such case it matches the method based on the signature. Furthermore, I have to modify AuthorizationInterceptor to not throw an Exception if invokedMethod and componentMethod don't equal (after the fix one those can be bean and interface methods).
This PR is a big hacky. The alternative would be making views has their methods based on descriptions/signatures - this possibly may be a major refactor though and I'm not sure if it would be feasible.

@tadamski would you please check if the test failures are related?

@gaol  I have pushed a possible fix - the tests should pass now

retest this please

retest this please

@tadamski The test still fails, would you please check again? Thanks :)
@darranl, There is a downstream issue waiting for this PR, if there are other changes needed to pass this CI, we need to evaluate what should be back ported to fix this issue. :)

@gaol I'll take a look.

Superseded by #13600


Set up custom firebase tokens

Useful links

https://firebase.google.com/docs/auth/web/custom-auth
https://firebase.google.com/docs/auth/admin/create-custom-tokens#web
https://stackoverflow.com/questions/44354763/how-do-i-get-http-headers-in-react-js
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie
https://stackoverflow.com/questions/39997413/how-to-pass-headers-while-doing-res-redirect-in-express-js
https://stackoverflow.com/questions/33265812/best-http-authorization-header-type-for-jwt
https://www.gatsbyjs.org/docs/routing/#nested-routes

Completed in df9ae2f27d2a6fbb16cf4ceaf9fdc3529c90b4b7


Modernize help dialog opened after typing wt -v in terminal

Description of the new feature/enhancement
 The help dialog which opens when typing wt -v in terminal right now is looking very old stylish (not modern). It should be made modern so that it looks nice.
Proposed technical implementation details (optional)

Support acrylic.
Use better themes, fonts, etc.
Support rounded corners (if possible).
Support dark theme.
How it looks right now -

Example of how it should like is the about section -

Thanks for the suggestion! This is actually already being tracked by another issue on our repo - please refer to #4134 for more discussion.
/dup #4134


CTRL-D to exit

Most command line interfaces have a CTRL-D to exit feature which saves time instead of typeing exit or quit to close out of the interactive session. Currently this only creates a newline in s. I looked through the code and found this in interperter_loop():
if (prompt(&port)) {
	if (feof(f))
		break;
	else
		continue;
}

If the nested if and else statment is removed, leaving only the break; inside if (prompt(&port)), CTRL-D apears to function as it normaly does in other CLIs.
Can this be changed to allow CTRL-D to work or is there some reason for this feof(f) test?

 Thanks for looking into this! I haven't been able to figure out how.
The change you suggest makes Control-C also kill the shell which is not desired. I looked into the linenoise source https://github.com/antirez/linenoise/blob/master/linenoise.c#L828 we can do this by checking errno.
https://github.com/rain-1/s/commit/7cf242490688867e0e1e5ace2205ba70ff8e2a31


[ECS] Skipping rules on file/path is ignored

Hi, I have tried dozens of configuration, but without results..
I'm using ECS v8.3.41 on Windows machine..
My config file:
<?php

declare(strict_types=1);

use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use Symplify\EasyCodingStandard\ValueObject\Option;
use Symplify\EasyCodingStandard\ValueObject\Set\SetList;

return static function (ContainerConfigurator $container_configurator): void {
    $parameters = $container_configurator->parameters();

    $parameters->set(Option::SETS, [
        SetList::SYMFONY,
        SetList::PSR_12,
        SetList::ARRAY,
        SetList::PHP_70,
        SetList::PHP_71,
        SetList::PHPUNIT,
    ]);

    $parameters->set(Option::PATHS, [
        __DIR__ . '/app',
        __DIR__ . '/config',
        __DIR__ . '/database',
        __DIR__ . '/resources/lang',
        __DIR__ . '/routes',
        __DIR__ . '/tests',
    ]);

    $parameters->set(Option::LINE_ENDING, '\n');
    $parameters->set(Option::CACHE_DIRECTORY, __DIR__ . DIRECTORY_SEPARATOR . 'storage' . DIRECTORY_SEPARATOR . '.ecs_cache');

    $parameters->set(Option::SKIP, [
        PhpCsFixer\Fixer\Phpdoc\PhpdocToCommentFixer::class => null, // <= WORKS!
        Symplify\CodingStandard\Fixer\ArrayNotation\ArrayListItemNewlineFixer::class => [
            __DIR__ . '/config/*', // <= DON'T WORKS!

        ],
        PhpCsFixer\Fixer\Whitespace\ArrayIndentationFixer::class => [
            __DIR__ . '/config/*', // <= DON'T WORKS!
             I've also tried changing the order of configuration section, without result....
So after applying ECS, this is the responce:
$ vendor\bin\ecs.bat check
  0/31 [>---------------------------]   0%
  4/31 [===>------------------------]  12%
  7/31 [======>---------------------]  22%
 10/31 [=========>------------------]  32%
 13/31 [===========>----------------]  41%
 16/31 [==============>-------------]  51%
 19/31 [=================>----------]  61%
 22/31 [===================>--------]  70%
 25/31 [======================>-----]  80%
 28/31 [=========================>--]  90%

[...]

30) config/trustedproxy.php

    ---------- begin diff ----------
--- Original
+++ New
@@ -16,7 +16,8 @@
      * of your proxy (e.g. if using ELB or similar).
      *
      */
-    'proxies' => null, // [<ip addresses>,], '*', '<ip addresses>,'
+    'proxies' => null,
+    // [<ip addresses>,], '*', '<ip addresses>,'

     /*
      * To trust one or more specific proxies that connect
    ----------- end diff -----------

Applied checkers:

 * PhpCsFixer\Fixer\Whitespace\ArrayIndentationFixer
 * Symplify\CodingStandard\Fixer\ArrayNotation\ArrayListItemNewlineFixer

[...]

Anyone have suggestions??

Ok I've find the bug:
WRONG configuration:
    $parameters->set(Option::SKIP, [
        PhpCsFixer\Fixer\Phpdoc\PhpdocToCommentFixer::class => null, // <= WORKS!
        Symplify\CodingStandard\Fixer\ArrayNotation\ArrayListItemNewlineFixer::class => [
            __DIR__ . '/config/*', // <= DON'T WORKS!

        ],
        PhpCsFixer\Fixer\Whitespace\ArrayIndentationFixer::class => [
            __DIR__ . '/config/*', // <= DON'T WORKS!

        ],
    ]);

CORRECT configuration:
    $parameters->set(Option::SKIP, [
        PhpCsFixer\Fixer\Phpdoc\PhpdocToCommentFixer::class => null, // <= WORKS!
        Symplify\CodingStandard\Fixer\ArrayNotation\ArrayListItemNewlineFixer::class => [
            'config/*', // <= TO SKIP ALL FILES IN DIRECTORY
            'config/trustedproxy.php', // <= TO SKIP A SINGLE FILES
        ],
        PhpCsFixer\Fixer\Whitespace\ArrayIndentationFixer::class => [
            'config/*', // <= TO SKIP ALL FILES IN DIRECTORY
            'config/trustedproxy.php', // <= TO SKIP A SINGLE FILES
        ],
    ]);

Maybe the documentation is wrong?? Or is it a bug?
Because I have view tens of ecs.php files on many github repos, and all contains wrong configuration..

It's probably a bug. We use this for last 5 months and didn't have a problem.
I wonder:

What OS do you use?
If windows, how does work using Windows slashes e.g. __DIR__ . '\config' work?
If you dump __DIR__ . '/config' value, what is the result?
Does the __DIR__ . '/config' exist?
Is /config and rector.php located in the same directory?
How did you install Rector?

It's probably a bug. We use this for last 5 months and didn't have a problem.
Ah, I see Windows above. That will be the root problem
I wonder:

How does using Windows slashes e.g. __DIR__ . '\config' work?
If you dump __DIR__ . '/config' value, what is the result?
Does the __DIR__ . '/config' exist?
Is /config and rector.php located in the same directory?
How did you install Rector?

@TomasVotruba I tried:

Same error, fixes isn't ignored, with __DIR__ . '\config' even with __DIR__ . '\config\*' and even with double slashes (\\)
What do you mean with "dump __DIR__ . '/config' value"?
Yes, __DIR__ . '/config' exists
I'm using ecs.php, but yes, ecs.php and config are on same directory (root directory)
I'm using symplify/easy-coding-standard, not rector, I've installed it using composer require symplify/easy-coding-standard

What do you mean with "dump DIR . '/config' value"?

Basically:
dump(__DIR__ . '/config');

I guess it will be in the slashes inside the Skipper service.

This is the result of the dump: "C:\www\laravel-skeleton/config".
@TomasVotruba
But I think I have found the problem..
The problem is not on https://github.com/symplify/symplify/blob/master/packages/easy-coding-standard/src/Skipper.php but is in doesFnmatch(string $string) function of symplify/smart-file-system package: https://github.com/symplify/symplify/blob/master/packages/smart-file-system/src/SmartFileInfo.php#L110
Normalizing slash on $string fix the problem.
Old doesFnmatch(string $string) function on SmartFileInfo.php#L110:
    public function doesFnmatch(string $string): bool
    {
        if (fnmatch($string, $this->getNormalizedRealPath())) {
            return true;
        }

        // in case of relative compare
        return fnmatch('*/' . $string, $this->getNormalizedRealPath());
    }

New doesFnmatch(string $string) function on SmartFileInfo.php#L110:
    public function doesFnmatch(string $string): bool
    {
        if (fnmatch($this->getNormalizedStringPath($string), $this->getNormalizedRealPath())) {
            return true;
        }

        // in case of relative compare
        return fnmatch('*/' . $this->getNormalizedStringPath($string), $this->getNormalizedRealPath());
    }

    private function getNormalizedStringPath(string $string): string
    {
        return str_replace('\\', '/', $string);
    }

Example with __DIR__ . '/config/*' in skip path with OLD code:
// some result path on doesFileMatchPattern(SmartFileInfo $smartFileInfo, string $ignoredPath) function on Skipper.php line 183
file path: 'C:\www\laravel-skeleton\config\adminlte.php'
ignoredPath: 'C:\www\laravel-skeleton/config/*'
ignoredPath with normalizeForFnmatch: '*C:\www\laravel-skeleton/config/*'
return with endsWith: false
return with doesFnmatch: false

Both return' return false so files are not skipped..
Example with only 'config/*' in skip path with OLD code:
// some result path on doesFileMatchPattern(SmartFileInfo $smartFileInfo, string $ignoredPath) function on Skipper.php line 183
file path: 'C:\www\laravel-skeleton\config\adminlte.php'
ignored path: 'config/*'
ignored path with normalizeForFnmatch: '*config/*'
return with endsWith: false
return with doesFnmatch: true

Example with both __DIR__ . '/config/*' and 'config/*' in skip path with NEW code:
// some result path on doesFileMatchPattern(SmartFileInfo $smartFileInfo, string $ignoredPath) function on Skipper.php line 183
file path: 'C:\www\laravel-skeleton\config\adminlte.php'
ignored path: 'config/*' even with 'C:\www\laravel-skeleton/config/*'
ignored path with normalizeForFnmatch: '*config/*' even with '*C:\www\laravel-skeleton/config/*'
return with endsWith: false
return with doesFnmatch: true

Function fnmatch return true so files are skipped correctly..
I can do a PR with the patched code on symplify/smart-file-system package?

I can do a PR with the patched code on symplify/smart-file-system package?

That would be great! Could you also test case that covers your issue? Just so we don't do any regression on this in the future.

I have made the patch.. I hope there is no problem with other tests and coding styles, because on Windows more than 10% of tests fails and for ECS will crash 🤕

Closed as patched by #2413


pdf only renders in jou mode when table names include "_"

when I have a table in my document whose name/label includes an underscore the document will only render in jou mode but not in doc or man. it says
ERROR:
compilation failed- error
Missing \endcsname inserted.
this works in jou, man, and doc
---
title: "owl"
author:
  - name: Remus Lupin
    corresponding: true
    orcid: 0000-0000-0000-0000
    email<EMAIL_ADDRESS>    affiliations:
      - name: Hogwarts School of Whitchcraft and Wizardry
abstract: "This document is a template demonstrating the apaquarto format."
# Put as many keywords at you like, separated by commmas (e.g., [reliability, validity, generalizability])
keywords: [keyword1, keyword2, keyword3]
format:
  apaquarto-pdf:
    documentmode: man
---

Here is a table @tbl-Owlsarecool.

```{r}
#| label: tbl-Owlsarecool
#| tbl-cap: "Owlsarecool"
library(flextable)
flextable(head(mtcars))
```

this doesn't work in man and doc, but works in jou
---
title: "owl"
author:
  - name: Remus Lupin
    corresponding: true
    orcid: 0000-0000-0000-0000
    email<EMAIL_ADDRESS>    affiliations:
      - name: Hogwarts School of Whitchcraft and Wizardry
abstract: "This document is a template demonstrating the apaquarto format."
# Put as many keywords at you like, separated by commmas (e.g., [reliability, validity, generalizability])
keywords: [keyword1, keyword2, keyword3]
format:
  apaquarto-pdf:
    documentmode: man
---

Here is a table @tbl-Owls_are_cool.

```{r}
#| label: tbl-Owls_are_cool
#| tbl-cap: "Owls_are_cool is more legible"
library(flextable)
flextable(head(mtcars))
```

In the newest version, I think I have it fixed. Let me know.


Issue with listener

Dear Toni,
Thank you for this piece of  high-level C# art! I've tried to use the SDK, but had no luck with the Listener using the examples from the readme.
XXXXX..... is in real replaced with the correct values.
var userAgent = new ProductInfoHeaderValue("RobinTibber", "1.0");
var client = new TibberApiClient("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", userAgent);
var homeId = Guid.Parse("XXXXXXXXXXXXXXXXXXXXXXX");
var listener = await client.StartRealTimeMeasurementListener(homeId);
listener.Subscribe(new RealTimeMeasurementObserver());

// Listen for a bit
await Task.Delay(TimeSpan.FromSeconds(600));

Console.WriteLine("Stop listening");

// Stop listening
await client.StopRealTimeMeasurementListener(homeId);

public class RealTimeMeasurementObserver : IObserver<RealTimeMeasurement>
{
    public void OnCompleted() => Console.WriteLine("Real time measurement stream has been terminated. ");
    public void OnError(Exception error) => Console.WriteLine($"An error occured: {error}");
    public void OnNext(RealTimeMeasurement value) =>
        Console.WriteLine($"{value.Timestamp} - power: {value.Power:N0} W (average: {value.AveragePower:N0} W); consumption since last midnight: {value.AccumulatedConsumption:N3} kWh; cost since last midnight: {value.AccumulatedCost:N2} {value.Currency}");
}`

Last Tracing entry:
subscribe to XXXXXXXXXXXXXXXXXXXXXXXXX
Last method (RealTimeMeasurementListener.cs):
StartListening()
The error seems to be here (RealTimeMeasurementListener.cs):
Line 298 stringRecords	"{\"id\":\"1\",\"type\":\"next\",\"payload\":{\"errors\":[{\"message\":\"Cannot read private member #context from an object whose class did not declare it\",\"locations\":[{\"line\":1,\"column\":14}],\"path\":[\"liveMeasurement\"]}]}}"	string
Exception goes here (RealTimeMeasurementListener.cs):
Line 266: $exception	{"The remote party closed the WebSocket connection without completing the close handshake."}	System.Net.WebSockets.WebSocketException
Any idea what is going wrong?
Thanks,
Robin

The error seems to be coming deep from the server and looks quite weird. We will need to take a look when back at office. This is your first time trying the API? Does the explorer at developer.tibber.com work fine for you?

Dear Toni,
yes, this is the first time I'm using the API with C#. But I already have a working API-solution build with Powershell.

Dear Toni,
please close the issue, this was my stupidity. After checking my powershell solution I see that a wrong home ID was used.
Sorry for bothering you.

No worries! Good thing you got it working :)


Add project telemetry

Port of  #16050

looks like you have a build error.

New build failures looks to be due to the installed version of typescript.d.ts containing const enums.

you are right, it should be 2.3.3


fix - Restore recompilation performance for webpack 4/5

It turns out those checks were needed. I also found a way to do the same in webpack 5 so it should be faster as well (https://github.com/storybookjs/storybook/issues/15423#issuecomment-870813425).

I've included this one to #45 for easier merge.


How to evaluate the integral of the form $\int u ds\int v ds$

Hi, I am new to MFEM, I am trying to solve my EIT problem with MFEM, but an integral of the form $\int u ds\int v ds$ appears in my weak form, as been highlighted in the picture, and I checked the integrators in MFEM, I can not figure out how to implement this integral.
Is there a way to do it?
Thanks a lot!

Hi, @sin2cos,
This does look unusual but there may be a way to handle this. It would help to know a little more about the problem. For example, what is the, e_l, domain of these integrals?
Also, just out of curiosity, what is EIT?
Best wishes,
Mark

@mlstowell
Hi Mark,
Sorry for bothering, I still can not solve the above problem, do you have any idea on how I may deal with it?
Best Wishes,
Changyou

HI, @sin2cos,
I just saw your follow-up email today. I hope you don't mind but I'm more accustomed to keeping the discussion here in the GitHub issue.
In your email you mentioned that the e_l are patches of the surface of your object. I assume the surface of the object is also the surface of your mesh. If this is the case the integrals \int_{e_l}u dS and \int_{e_l}v dS will be equal and can be computed as linear forms i.e. using a ParLinearform object and its AddBoundaryIntegrator method (the patch can be specified with the optional bar_attr_marker argument) with a DomainLFIntegrator. The tricky part will be the assembly.
 This is very odd for a finite element method so perhaps I'm not understanding the equation properly. To form this block I believe you would take the linear form, call it w, and produce the outer product with entriesw[i] * w[j] / |e_l|.
Unfortunately, MFEM does not have a way to allocate your matrix with these dense blocks so you may need to write some custom code to accomplish this.
Best wishes,
Mark

@mlstowell
Hi Mark,
Thank you for your detailed information, I think you have understand my question correctly, and your suggestion here is helpful for solving my problem. The only thing I don’t understand is whether parallel computation is still doable with MFEM after the outer product with entries w[i] * w[j] / |e_l|.
I am actually trying to understand the codes these days, hope I can inherit from some BilinearForm class to write my own BilinearForm to implement this weak form, but this looks like a hard task for me since I am quite new to MFEM.
Best wishes,
Changyou

Hello, Changyou @sin2cos,
I'm sure MFEM can do much of the work but we may not have a complete solution. Finite element bilinear forms integrate each element separately but you need to incorporate information from other elements on the same surface patch. This is not something that usually happens in finite element methods and we don't have an easy way to setup the BilinearForm matrix with the necessary number of nonzero per row nor to fill those entries with data from multiple boundary elements.
I do see two options. The choice between them may depend on how you need to use this operator. The first option could be used if you need a sparse matrix representation of this bilinear form (to pass along to a sparse direct solver for example). You would need to count the number of degrees of freedom associated with each surface patch and use this information to allocate a sparse matrix with enough nonzeros to hold the dense portions. We should have the necessary code in MFEM to determine the size and location of these patches in the matrix. Filling the patches would require additional communication between processors. This could be tricky but I think it could work.
The second option would be much easier to implement but it could only compute the action of your operator rather than filling a sparse matrix. As such you could use this with an iterative solver but it might be difficult to find a suitable preconditioner. This option would involve forming a bilinear form in the usual MFEM manner containing the first and second terms in your operator. The third term, the one with the outer products, would involve computing and storing linear forms for each surface patch. Then to compute the action of the operator, A*x, you first multiply by the bilinear form then loop over the patches and add terms which look like (w.x)*w. Another advantage of this option is that all of the necessary parallel communication would be handled in the inner products w.x.
I'd be happy to offer further advice if either of these options sounds reasonable.
Best wishes,
Mark

@mlstowell
Hi Mark,
Sorry for the late reply, I was in a vocation, and I did not check emails for a while. I believe you have solved my problem. I am writing the code based on your suggestion, and I will let you know whether it works.
Best wishes,
Changyou


Nested navigation issue

This may be similar or the same as issue #312, but I am running into issues with basic nested navigation for bottom navigation bar.
Following the examples, the root Beamer has a route of "*" pointing to the screen with a nested Beamer with bottom navigation control. As long as this free wildcard is there, no other screens may be accessed from the root beamer by direct url. In the provided sample code, typing the address in the url: "http://localhost:55674/#/try" leads to crash:

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY  ╞════════════════════
The following assertion was thrown building Builder(dependencies: [_InheritedTheme,
_LocalizationsScope-[GlobalKey#100f2]]):
Assertion failed: file:///C:/flutter/packages/flutter/lib/src/widgets/navigator.dart:3634:18
!keyReservation.contains(key)
is not true

Changing the root route from "*" to "/" instead fixes this and allows navigation to "try" appropriately, however it then breaks the ability to use the browser back button when navigating between the bottomnavigationbar screens, or to directly navigate to one of the nested screens (i.e. http://localhost:55674/#/counter2), with "Not found" appearing on the screen when you attempt to do these.
import 'package:flutter/material.dart';
import 'package:beamer/beamer.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  MyApp({Key? key}) : super(key: key);
  final routerDelegate = BeamerDelegate(
      locationBuilder: SimpleLocationBuilder(routes: {
    '*': (context, state) => const MyHomePage(title: "My title"),
    '/try': (context, state) => Container(
          color: Colors.red,
          height: double.infinity,
          width: double.infinity,
        ),
  }));

  @override
  Widget build(BuildContext context) {
    return MaterialApp.router(
      routeInformationParser: BeamerParser(),
      routerDelegate: routerDelegate,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _currentNavIndex = 0;
  final _beamerKey = GlobalKey<BeamerState>();

  final _routerDelegate = BeamerDelegate(
    initialPath: "counter1",
    locationBuilder: SimpleLocationBuilder(
      routes: {
        "counter1": (context, state) => const CounterPage(
              counter: 1,
            ),
        "counter2": (context, state) => const CounterPage(
              counter: 2,
            ),
      },
    ),
  );

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body:
          /* Container(
          color: Colors.blue, height: double.infinity, width: double.infinity), */
          Beamer(
        routerDelegate: _routerDelegate,
        key: _beamerKey,
      ),
      bottomNavigationBar: BottomNavigationBar(
        currentIndex: _currentNavIndex,
        onTap: (i) {
          setState(() {
            _currentNavIndex = i;
          });
          if (i == 0) {
            _beamerKey.currentState!.routerDelegate.beamToNamed("counter1");
          }
          if (i == 1) {
            _beamerKey.currentState!.routerDelegate.beamToNamed("counter2");
          }
        },
        // ignore: prefer_const_literals_to_create_immutables
        items: [
          const BottomNavigationBarItem(icon: Icon(Icons.ac_unit), label: "1"),
          const BottomNavigationBarItem(
              icon: Icon(Icons.access_alarm), label: "2"),
        ],
      ),
    );
  }
}

class CounterPage extends StatelessWidget {
  const CounterPage({Key? key, required this.counter}) : super(key: key);

  final int counter;

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Text(
            '$counter',
            style: Theme.of(context).textTheme.headline4,
          ),
        ],
      ),
    );
  }
}

Hi @blambe
Try putting the RegExp instead of "*". Specifically, put something like RegExp(r"(/counter1|/counter2)"). Then also add the / in your counter1 and counter2 routes.
Let me know if that helped

Yes that solved the issue, thanks.
Another related issue: When the application first loads, the delegate will push the "initialPath", so for example '/counter1' can be loaded. However, if the app is already loaded, direct linking to the root "/" will lead to the "Not Found" screen.
Clicking reload, or repeat directing the browser to the root again from the "Not Found" screen (just selecting the URL bar and hitting enter again) results in the app seemingly fully reloading and jumping back to the initialPath.
Is there a way to correct this behavior?

Interesting observation @blambe. You should be able to solve this by defining a BeamGuard that will serve as a "static" redirector. In your BeamerDelegate.guards:
BeamGuard(
  pathBlueprints: ['/'],
  check: (_, __) => false,
  beamToNamed: '/counter1',
)

I thought a beamguard might be a workaround for this, and it can in fact work.
It brings up a new issue though, which may have to do with beamguard. It seems that if the beamToNamed route from the guard was the last location that was directly entered, a "Not found" screen is thrown.
If you start by initialPath or direct linking to counter1, then go to root, a 'Not Found' screen is thrown in place of counter1, despite the URL being appropriately corrected. If you start from a direct link to either '/counter2' or '/try', and then go to root, the "not found" screen is shown for a split second before it appropriately beams to '/counter1'. However, if you attempt to direct to the root a second time, the screen is replaced by "not found" again.
If you start at counter2, then use the navbar to get to counter1, then direct link to root, it beams appropriately back to counter 1. So it appears to only fail if the initial direct link was to counter1.
Clicking on the nav bar items still works appropriately when the "not found" screen is thrown.
Hopefully this all made sense!

@blambe thanks for this elaborate report!
Interesting...
Can you make a new issue for this with these reproducible steps?

Yes, will do after work today, thanks.
On Thu, Jun 24, 2021, 5:17 PM Sandro Lovnički @.***>
wrote:

@blambe https://github.com/blambe thanks for this elaborate report!
Interesting...
Can you make a new issue for this with these reproducible steps?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/slovnicki/beamer/issues/324#issuecomment-867989652,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJQULYGHV3IDSXW3TEWEIZLTUOVHVANCNFSM47GVET6A
.

New issue created, I think this issue as presented should now be considered closed.


runtime error: invalid memory address or nil pointer dereference

Describe the bug

Weed mount is using ~27GB of ram
Has quite a number of errors while running. Here is the log from screen.txt

$ ps aux | grep mount
root     22691 34.4 13.5 28344116 26781856 pts/6 Sl+ Feb07 3261:38 weed mount -filer=localhost:8888 -dir=/mnt/weed -cacheDir=/snapraid/storage_c2/test/seaweed-cache -cacheCapacityMB=0

System Setup

Seed Docker setup in #1594 but with newer seaweed version
Debian 9
version 8000GB 2.23 318a3d2 linux amd64
default filer.toml
FUSE: weed mount -filer=localhost:8888 -dir=/mnt/weed -cacheDir=/snapraid/storage_c2/test/seaweed-cache -cacheCapacityMB=0

Expected behavior
Additional context
Was not expectig it to use that much memory. Unless the caching is now completely done in RAM.

Thanks for the logs!
I added a fix to avoid the nil error in the logs, which may have prevented properly releasing some related resources.


MacOS - docker-machine - Error getting active host: dial tcp: lookup ????N1: invalid domain name

Hello,
When I tried :
$docker version
Version:           18.09.3
 API version:       1.39
 Go version:        go1.12
 Git commit:        774a1f4
 Built:             Fri Mar  1 04:14:53 2019
 OS/Arch:           darwin/amd64
 Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Thus I tried :
$ eval "$(docker-machine env default)"
dial tcp: missing brackets in address ?(%m?N1:49960

Finally I tried :
$ docker-machine ls
dial tcp: lookup ???1?N1: invalid domain name

One year ago, docker on my Mac was working like a charm, and now everything seems broken.
I desinstall docker, reinstall, reinstall with cask. Nothing better.

How did you resolve this?


Documentation: Adapt suffix ps on Energy Dashboard

https://github.com/JensenNick/huawei_solar_pees/wiki/7.-Energy-Dashboard

You should use the utility meters for the energy dashboard, not the ps (nor ts or tt sensors.


Can gRPC be used with AWS Lambda Plugin?

Hi,
I am reading through the documentation on the AWS Lambda plugin and I am unclear on gRPC or HTTP/3 capability for this as ingress method? I'd like to be able to use Kong as a gRPC -> AWS Lambda gateway of sorts if that's a possible configuration.

not currently.

Were some changes done regarding this topic or it's still not possible to use Kong as a gRPC -> AWS Lambda gateway?


Incompatibility with PaperSpigot

BkCommonLib version: 1.11.2-v1
TrainCarts version: 1.11.2-v1
Spigot version: 1.11.2

Problem or bug:
TrainCarts works well in spigot but it is does not work in PaperSpigot. Players cannot interact with trains created by this plugin. Console(PaperSpigot) displays NullPointerExceptions after creating a train.
Expected behaviour:
Being compatible with PaperSpigot
Steps to reproduce:
Just put enable BKCommonLib and TrainCarts in a PaperSpigot server and then create a train.
More:
First, thanks to all of you developers. This plugin is the best one ever! And will you continue the development on higher versions of Minecraft? Or is it possible to adapt all versions of Minecraft(Not using NMS)? I found a "useNetworkSynchronizer" in config.yml and is disabling this means not using NMS functions? Please leave a comment, thank you very much! (I am not quite familiar with plugins developments, if there're any problems just don't mind them. Also I am not an English speaker so just ignore those improper words.)  :)

PaperSpigot is using some custom NMS code so the plugin doesn't work with it. I tried to make it compatible but the PaperSpigot version is missing some functions, maybe @bergerkiller can take a look into it.

I've made changes in the latest build of BKCommonLib to add full support of Paperspigot.


Add virustotal codesign to documentation

Refs https://github.com/caskroom/homebrew-cask/pull/33570.
To add to the updating the sha256 documentation that another vector for proving an update is to submit the download file to virustotal and give us the link. Since the virustotal evaluation shares the sha256, we can compare it to the one in the cask to verify the user uploaded the correct file. This will only be valid if the app is codesigned (virustotal tells us the signer in the “File Detail” tab).

I'll do this sometime in the next couple of days. Would a screenshot be appropriate to properly illustrate the "File Detail" codesigning?

Slightly off-topic question: Is it possible to have a [awaiting verification] label for PRs rather than using [on hold] and [upstream]?

Done.

Would a screenshot be appropriate to properly illustrate the "File Detail" codesigning?

Yes.


Read in README.md as long description

Read in README.md as long description. This long description will be used on PyPI.org as project description.

This will add a long description based on the README.md and ensure we have a long description on the PyPI.org once a new version is published there.

Fixes #16


info on loading screen doesn't properly handle $G to reset colors

If there's a $G in the name of a map to reset colors, this plugin seems to ignore that and keeps applying colors to the rest of the map name.
Loading screen:

Trackmania.io:

i added a thing to treat $g like $z. not sure if that's actually correct or not. btw a tmxid or something would have been useful to quickly test (i didn't test, just started treating g like z)

Yeah sorry I could have provided that. Seems to be working fine now, thank you


[WIP] Report sensitivity maps

Hi,
I have added the base logic for appending sensitivity maps to report. But, I'm doubtful about the namings and conventions to the plots (kept mostly same as from @jasmainak's [wip] work). Please suggest for changes/additions required.
Related issue-2828

@parulsethi can you share a generated notebook?

You mean the saved html report?
Also, I haven't been able to install mayavi properly till now, so I tested brain.save_image('sensitivity_mag.png') on a dummy image.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@60a80b7). Click here to learn what that means.
The diff coverage is 6.06%.

@@            Coverage Diff            @@
##             master    #4038   +/-   ##
=========================================
  Coverage          ?   85.89%
=========================================
  Files             ?      350
  Lines             ?    63400
  Branches          ?     9663
=========================================
  Hits              ?    54455
  Misses            ?     6263
  Partials          ?     2682

Continue to review full report at Codecov.

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

what is your pb with mayavi?

You mean the generated html report?

yes, exactly
Did you install mayavi using conda? It's the simplest way to install it. Otherwise you may have to install the VTK library on Ubuntu separately ...

No, I installed mayavi using pip, and hence installed vtk/qt/pyqt, then mainly got stuck at the error below because of using virtualenv
This program needs access to the screen.
Please run with a Framework build of python, and only when you are
logged in on the main display of your MAC.

For which I followed https://wiki.wxpython.org/wxPythonVirtualenvOnMac, but it is just not working and throwing one after the other error -- last one as below
Embedding : jquery-1.10.2.min.js
Embedding : jquery-ui.min.js
Embedding : bootstrap.min.js
Embedding : jquery-ui.min.css
Embedding : bootstrap.min.css
try.py:10: RuntimeWarning: `info_fname` not provided. Cannot render -cov.fif(.gz) and -trans.fif(.gz) files.
  report.parse_folder(data_path=path, pattern=['*sample_audvis-meg-eeg-oct-6-fwd.fif'])
`info_fname` not provided. Cannot render -cov.fif(.gz) and -trans.fif(.gz) files.
Iterating over 1 potential files (this may take some time)
Rendering : /Users/parul/mne_data/MNE-sample-data/MEG/sample/sample_audvis-meg-eeg-oct-6-fwd.fif
Reading forward solution from /Users/parul/mne_data/MNE-sample-data/MEG/sample/sample_audvis-meg-eeg-oct-6-fwd.fif...
    Reading a source space...
    Computing patch statistics...
    Patch information added...
    Distance information added...
    [done]
    Reading a source space...
    Computing patch statistics...
    Patch information added...
    Distance information added...
    [done]
    2 source spaces read
    Desired named matrix (kind = 3523) not available
    Read MEG forward solution (7498 sources, 306 channels, free orientations)
    Desired named matrix (kind = 3523) not available
    Read EEG forward solution (7498 sources, 60 channels, free orientations)
    MEG and EEG forward solutions combined
    Source spaces transformed to the forward solution coordinate frame
    Cartesian source orientations...
[done]
    60 out of 366 channels remain after picking
Adding average EEG reference projection.
Updating smoothing matrix, be patient..
Smoothing matrix creation, step 1
Smoothing matrix creation, step 2
Smoothing matrix creation, step 3
Smoothing matrix creation, step 4
Smoothing matrix creation, step 5
Smoothing matrix creation, step 6
Smoothing matrix creation, step 7
Smoothing matrix creation, step 8
Smoothing matrix creation, step 9
Smoothing matrix creation, step 10
colormap: fmin=7.42e-01 fmid=7.70e-01 fmax=9.57e-01 transparent=1
2017-03-08 23:40:43.449 Python[32669:1063538] -[wxNSApplication _setup:]: unrecognized selector sent to instance 0x7fc6fe981220
2017-03-08 23:40:43.451 Python[32669:1063538] An uncaught exception was raised
2017-03-08 23:40:43.452 Python[32669:1063538] -[wxNSApplication _setup:]: unrecognized selector sent to instance 0x7fc6fe981220
2017-03-08 23:40:43.452 Python[32669:1063538] (
	0   CoreFoundation                      0x00007fff93a94452 __exceptionPreprocess + 178
	1   libobjc.A.dylib                     0x00007fff8580df7e objc_exception_throw + 48
	2   CoreFoundation                      0x00007fff93afe10d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
	3   CoreFoundation                      0x00007fff93a044d1 ___forwarding___ + 1009
	4   CoreFoundation                      0x00007fff93a04058 _CF_forwarding_prep_0 + 120
	5   Tk                                  0x000000010ff01948 TkpInit + 476
	6   Tk                                  0x000000010fe7ca6e Tk_Init + 1799
	7   _tkinter.so                         0x000000010fd5cbcd Tcl_AppInit + 82
	8   _tkinter.so                         0x000000010fd5c574 Tkinter_Create + 1108
	9   Python                              0x000000010c767fed PyEval_EvalFrameEx + 27113
	10  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	11  Python                              0x000000010c706b87 function_call + 350
	12  Python                              0x000000010c6e89b4 PyObject_Call + 99
	13  Python                              0x000000010c6f3680 instancemethod_call + 173
	14  Python                              0x000000010c6e89b4 PyObject_Call + 99
	15  Python                              0x000000010c76b677 PyEval_CallObjectWithKeywords + 165
	16  Python                              0x000000010c6f18fb PyInstance_New + 126
	17  Python                              0x000000010c6e89b4 PyObject_Call + 99
	18  Python                              0x000000010c767e30 PyEval_EvalFrameEx + 26668
	19  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	20  Python                              0x000000010c76bc9e fast_function + 117
	21  Python                              0x000000010c767f09 PyEval_EvalFrameEx + 26885
	22  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	23  Python                              0x000000010c706b87 function_call + 350
	24  Python                              0x000000010c6e89b4 PyObject_Call + 99
	25  Python                              0x000000010c768697 PyEval_EvalFrameEx + 28819
	26  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	27  Python                              0x000000010c76bc9e fast_function + 117
	28  Python                              0x000000010c767f09 PyEval_EvalFrameEx + 26885
	29  Python                              0x000000010c76bd31 fast_function + 264
	30  Python                              0x000000010c767f09 PyEval_EvalFrameEx + 26885
	31  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	32  Python                              0x000000010c76bc9e fast_function + 117
	33  Python                              0x000000010c767f09 PyEval_EvalFrameEx + 26885
	34  Python                              0x000000010c6fe0f8 gen_send_ex + 191
	35  Python                              0x000000010c709dad listextend + 174
	36  Python                              0x000000010c70b0a3 list_init + 97
	37  Python                              0x000000010c72b2b3 type_call + 182
	38  Python                              0x000000010c6e89b4 PyObject_Call + 99
	39  Python                              0x000000010c767e30 PyEval_EvalFrameEx + 26668
	40  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	41  Python                              0x000000010c706b87 function_call + 350
	42  Python                              0x000000010c6e89b4 PyObject_Call + 99
	43  Python                              0x000000010c768697 PyEval_EvalFrameEx + 28819
	44  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	45  Python                              0x000000010c76bc9e fast_function + 117
	46  Python                              0x000000010c767f09 PyEval_EvalFrameEx + 26885
	47  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	48  Python                              0x000000010c76bc9e fast_function + 117
	49  Python                              0x000000010c767f09 PyEval_EvalFrameEx + 26885
	50  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	51  Python                              0x000000010c760db7 PyEval_EvalCode + 48
	52  Python                              0x000000010c78483c run_mod + 53
	53  Python                              0x000000010c7848df PyRun_FileExFlags + 133
	54  Python                              0x000000010c784430 PyRun_SimpleFileExFlags + 702
	55  Python                              0x000000010c795d9e Py_Main + 3094
	56  libdyld.dylib                       0x00007fff8747e5ad start + 1
)
2017-03-08 23:40:43.452 Python[32669:1063538] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[wxNSApplication _setup:]: unrecognized selector sent to instance 0x7fc6fe981220'
*** First throw call stack:
(
	0   CoreFoundation                      0x00007fff93a94452 __exceptionPreprocess + 178
	1   libobjc.A.dylib                     0x00007fff8580df7e objc_exception_throw + 48
	2   CoreFoundation                      0x00007fff93afe10d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
	3   CoreFoundation                      0x00007fff93a044d1 ___forwarding___ + 1009
	4   CoreFoundation                      0x00007fff93a04058 _CF_forwarding_prep_0 + 120
	5   Tk                                  0x000000010ff01948 TkpInit + 476
	6   Tk                                  0x000000010fe7ca6e Tk_Init + 1799
	7   _tkinter.so                         0x000000010fd5cbcd Tcl_AppInit + 82
	8   _tkinter.so                         0x000000010fd5c574 Tkinter_Create + 1108
	9   Python                              0x000000010c767fed PyEval_EvalFrameEx + 27113
	10  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	11  Python                              0x000000010c706b87 function_call + 350
	12  Python                              0x000000010c6e89b4 PyObject_Call + 99
	13  Python                              0x000000010c6f3680 instancemethod_call + 173
	14  Python                              0x000000010c6e89b4 PyObject_Call + 99
	15  Python                              0x000000010c76b677 PyEval_CallObjectWithKeywords + 165
	16  Python                              0x000000010c6f18fb PyInstance_New + 126
	17  Python                              0x000000010c6e89b4 PyObject_Call + 99
	18  Python                              0x000000010c767e30 PyEval_EvalFrameEx + 26668
	19  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	20  Python                              0x000000010c76bc9e fast_function + 117
	21  Python                              0x000000010c767f09 PyEval_EvalFrameEx + 26885
	22  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	23  Python                              0x000000010c706b87 function_call + 350
	24  Python                              0x000000010c6e89b4 PyObject_Call + 99
	25  Python                              0x000000010c768697 PyEval_EvalFrameEx + 28819
	26  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	27  Python                              0x000000010c76bc9e fast_function + 117
	28  Python                              0x000000010c767f09 PyEval_EvalFrameEx + 26885
	29  Python                              0x000000010c76bd31 fast_function + 264
	30  Python                              0x000000010c767f09 PyEval_EvalFrameEx + 26885
	31  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	32  Python                              0x000000010c76bc9e fast_function + 117
	33  Python                              0x000000010c767f09 PyEval_EvalFrameEx + 26885
	34  Python                              0x000000010c6fe0f8 gen_send_ex + 191
	35  Python                              0x000000010c709dad listextend + 174
	36  Python                              0x000000010c70b0a3 list_init + 97
	37  Python                              0x000000010c72b2b3 type_call + 182
	38  Python                              0x000000010c6e89b4 PyObject_Call + 99
	39  Python                              0x000000010c767e30 PyEval_EvalFrameEx + 26668
	40  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	41  Python                              0x000000010c706b87 function_call + 350
	42  Python                              0x000000010c6e89b4 PyObject_Call + 99
	43  Python                              0x000000010c768697 PyEval_EvalFrameEx + 28819
	44  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	45  Python                              0x000000010c76bc9e fast_function + 117
	46  Python                              0x000000010c767f09 PyEval_EvalFrameEx + 26885
	47  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	48  Python                              0x000000010c76bc9e fast_function + 117
	49  Python                              0x000000010c767f09 PyEval_EvalFrameEx + 26885
	50  Python                              0x000000010c76140e PyEval_EvalCodeEx + 1617
	51  Python                              0x000000010c760db7 PyEval_EvalCode + 48
	52  Python                              0x000000010c78483c run_mod + 53
	53  Python                              0x000000010c7848df PyRun_FileExFlags + 133
	54  Python                              0x000000010c784430 PyRun_SimpleFileExFlags + 702
	55  Python                              0x000000010c795d9e Py_Main + 3094
	56  libdyld.dylib                       0x00007fff8747e5ad start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

and okay, I'll try to install it with conda next

@parulsethi are you running the report command in headless mode?

This program needs access to the screen.

You may have issues if you try to run mayavi in headless mode. And yeah, try with conda and get back to us if it still doesn't fix your issue

I don't think so,  I don't know what is headless mode
I'm only using these commands:
path = sample.data_path()
subjects_dir = path + '/subjects'
subject = 'sample'
report = Report(verbose=True, subject=subject, subjects_dir=subjects_dir)
report.parse_folder(data_path=path, pattern=['*sample_audvis-meg-eeg-oct-6-fwd.fif'])
report.save('report.html', overwrite=True, open_browser=True)

and this is using my private mne-python fork, for which the only change from master fork is in last commit of PR

what is headless mode

I was just asking if you were connected remotely to some computer (without a screen) or did you run it on your own laptop? See here. Anyway, it's probably just an installation issue

thanks @jasmainak! conda one worked
and size of the report was too large to be attached here, so I uploaded it on drive -https://drive.google.com/open?id=0B8eD59OQYAz7NVh1MGdyYVdockk

and size of the report was too large to be attached here, so I uploaded it on drive -https://drive.google.com/open?id=0B8eD59OQYAz7NVh1MGdyYVdockk

@parulsethi you are getting there :) If I toggle the buttons on the navbar, the MRI entry in the table of contents disappear but  sample_audvis-meg-eeg-oct-6-fwd.fif does not disappear

Can you also add tests?

@parulsethi you can get rid of the MRI from the report for now, so you have a smaller report and you can share easily. What command did you use to generate it? Did you use command line or python?

I'm using python, and yeah i'll comment out MRI part for next uploads

This is the current report i get from latest commit
html file type is not supported to be attached here, so attaching the zip
report.html.zip

are you looking to apply for GSoC? Maybe this project might work for you if you're interested. We might still have one spot left, not sure ...

@parulsethi you shouldn't have any merge commits like this one. You should always use rebase. All merges into the mne-python master are "fast forward". You can remove that merge commit using interactive rebase.  Once you have rebased correctly, you can force push and update the PR.

Yep, thanks I'll ask for it on gitter

sorry to pitch in late but I think that sensitivity maps are part of the
rendering a forward object. I would insert them in the description of a
forward file if subject and subjects_dir are available.

@agramfort so should I merge 'sensitivity_map' into _render_forward which would in turn toggle the three subsections together under forward label in navbar? (will put the if condition inside the _render_forward then)
And also this would mean a single table entry(*fwd.fif filename) for forward section

I would put a single forward button in the nav bar and insert the
sensitivity maps in the div rendered for each forward file.
On Wed, Mar 15, 2017 at 9:05 AM, Parul Sethi<EMAIL_ADDRESS>wrote:

@agramfort https://github.com/agramfort so should I merge
'sensitivity_map' into _render_forward which would in turn toggle the three
subsections together under forward label in navbar? (will put the if
condition inside the _render_forward then)
And also this would mean a single table entry(*fwd.fif filename) for
forward section
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/mne-tools/mne-python/pull/4038#issuecomment-286668421,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAJ1HNzv8ZLubPabSrL532aAboc0tXbsks5rl5vAgaJpZM4MWg3g
.

any update here?

I'll be able to get back to this in a week

sorry, i won't be able to work on this in near future, any takers would be welcome.

Okay, closing for now then


Add missing expose field to docker compose files

Signed-off-by: javi<EMAIL_ADDRESS>Add expose fields to the docker compose that doesn't have them.

@aiordache @glours what's the state of this PR? We are implementing a Kubernetes backend of the compose spec, but it relies on the expose ports to be defined in the compose yaml.


Angular2 Owl Carousel

Failed to compile.
./~/css-loader?{"sourceMap":false,"importLoaders":1}!./~/postcss-loader?{"ident":"postcss"}!./~/sass-loader/lib/loader.js?{"sourceMap":false,"precision":8,"includePaths":[]}!./src/styles.scss
Module not found: Error: Can't resolve './owl.video.play.png' in 'C:\xampp\htdocs\coco\src'
@ ./~/css-loader?{"sourceMap":false,"importLoaders":1}!./~/postcss-loader?{"ident":"postcss"}!./~/sass-loader/lib/loader.js?{"sourceMap":false,"precision":8,"includePaths":[]}!./src/styles.scss 6:934078-934109
@ ./src/styles.scss
@ multi ./~/quill/dist/quill.core.css ./~/quill/dist/quill.bubble.css ./~/quill/dist/quill.snow.css ./~/font-awesome/css/font-awesome.css ./~/material-design-icon-fonts/iconfont/material-icons.css ./~/weathericons/css/weather-icons.css ./~/weathericons/css/weather-icons-wind.css<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>./~/fullcalendar/dist/fullcalendar.css ./~/github-markdown-css/github-markdown.css ./~/owl.carousel/dist/assets/owl.carousel.css ./src/styles.scss

Please any one help me out

Hi @manejsh,
We reviewed this issue and determined that it doesn't fall into the bug report or feature request category. This issue tracker is not suitable for support requests, please repost your issue on StackOverflow using tag angular.
If you are wondering why we don't resolve support issues via the issue tracker, please check out this explanation.

I faced the same issue


mock: Create an internal mock package

This creates a new internal package for mocks. This will be more useful as we add mocks for the metrics and health package (maybe others) in the future.

@Grayside do u know it's more idiomatic to have mocks in each package (or subpkg) as opposed to in a centralized package? This doesn't feel right.

A central mock seems less idiomatic to me as well: if we're mocking it centrally that implies our testing is shallow or the the design has poor modularity. Instead of passing the full RunAPI struct around, maybe there should be ServiceUpdater and TrafficSplitter interfaces.

Thank you both! I'm closing this PR since it is not appropriate.