Go API

Hello,
During the last weeks I have been working on this implementation of the Go API. This is still a work in progress, I'm doing this PR just to show what I'm working on and to get feedback.
I forked from https://github.com/tmc/tensorflow/tree/go_bindings where the bindings was implemented by Travis Cline. This Go library allows to interact with the tensors in an easy way from Go being able to create, populate and retrieve the content from the tensors. This library also provides the API for Graph generation from Go, create sessions, run this graphs and so on. The goal is to achieve the same functionality provided by the C++ API.
In order to show how the API works, I updated the label_image example with an implementation using the Go API and I also updated the tutorial
I'm trying to keep all the code covered with tests, I still have to cover some corner cases and functionality like the data type recognition for the graph, etc.
By the moment the supported Tensor data types are:

TF_FLOAT
TF_DOUBLE
TF_INT32
TF_UINT8
TF_UINT32
TF_INT16
TF_INT8
TF_STRING
TF_INT64
TF_BOOL
I'm planing to add support for TF_QINT* TF_BFLOAT16 and TF_COMPLEX soon.

I have some doubts:

Would it be better to add the API docu as md in tensorflow/g3doc/ , or just with GoDoc it would be enough? Having the docu on the MarkDown files could be better for the people without too much experience on Go, but having the docu on GoDocs is going to be updated in an easiest way and the Go developers are more used to read the documentation on GoDoc format. We can also keep it in both places, or just add a link from the MarkDown docu to GoDoc.
In order to get the definition for all the available operations I'm loading this info from tensorflow/core/ops/ops.pbtxt . The problem is that I'm doing this cp of the file from go gen. I think that this problem could be approached on three different ways:

Converting ops.pbtxt into a .go file: converting the content into a constant string we don't need to move this file, this option will remove this dependency, but if the file changes it will requiere to regenerate the libs that shouldn't be too much problem, we could even generate Go code for each operation so we don't need to parse the file and it would improve the performance.

Using something like the TF_GetOpList function used by Python in order to retrieve this info from the C++ API. This would add more dependencies from the Go to the C++ API, that is not a mayor issue but will requiere to prepare a new method or modify the original since TF_GetOpList depends on the Python libs.

As I'm doing right now, just copying the file. At least for a first iteration this could be a good option since it makes more easy to work with the code.

Regarding to the installation, I'm not sure if keep using "go generate" or Bazel, Go generate is more or less the standar for Go projects, but Bazel is what TensorFlow is using. I think that I'm going to change to Bazel so I can avoid things like bazel from Go but I'm not sure if this is the best approach.

I would be really grateful if you could please take a look at the code and let me know your thoughts, what I'm missing, how can I improve it, etc.
Thanks!
Related ticket: #10

Can one of the admins verify this patch?

I signed it!

@tmc are you ok with this PR?

@tmc, @dga, please take a look.
I think high level documentation should live in contrib/go/g3doc, we're working on glue to integrate such docs into the website.
We can look into generating markdown from godoc, maybe?  Our publishing to website pipeline goes via md, so that would be easiest, probably, assuming we want to have documentation for the go part on tensorflow.org.

Hi @martinwicke , I'll prepare the docu generation using godocdown, I've never used this project before but it seems to be easy to define a template to keep a similar to the one you are using, so the generation can be automatised in an easy way :)
I'll work on that today after work and also on the Variables generation.

I'd like to get @tmc approval first before we go too far.

ok, I've sent an e-mail to @tmc yesterday, perhaps he is not getting the GitHub notifications.

Can one of the admins verify this patch?

I added a template to generate automatically the documentation as MarkDown using godoc. The files inside contrib/go/g3doc are being generated from the comments on the source code using 'go generate'.
I also added the example_test.go with some usage examples for the most important methods.
The index.md is the only one that is not being automatically generated since it also contains more complex examples, installation and so on, this is: README.md

@tmc can you chime in and OK this?

Because @tmc has signed the CLA, I approve this import of his patch with modification.  Could you go ahead and sign the CLA also, Alonso?
I'm fine leaving the docs in godoc format (confirmed with @martinwicke ) or as .md, since this will be in contrib/ for the time being.
Reviewing now.

Hi @dave-andersen I already singed the CLA. The docs are now in MarkDown and godoc, I added a template here to generate the documentation from the source code comments in MarkDown, the result is here. Run go generate creates this MarkDown.

Cool re CLA.  @googlebot signed.  (let's see if that works to get the status updated. :)

A quick global pass through comments to make sure they're all terminated with a period would be good in  example_test.go.  It's a bit inconsistent.

I think that the problem with the CLA comes from the @tmc commits, I've sent time ago the 'I signed it!'. The @tmc commits have 'Error CLAs are signed, but unable to verify author consent'

@martinwicke - can you bring your expertise to bear on this CLA problem? :)

I'm currently working on allocating the content of the '/usr/local/tensorlow/ops.pbtxt' file inside the Go code.

Want to pop in and say this looks very exciting.  Thanks for working on it!

Sorry about going AWOL on this, I've been very busy. Really happy to see the progress here. I'm reviewing now (and fixed up my google CLA settings).

@alonsovidales I've done an initial pass and have some style nits, looks like @dave-andersen is on the case too. This is looking great but let's be very careful with the api we expose.

Done with comments - thanks for putting up with the flood of them combined with the fairly painful github comment mechanism. :)

(btw, I agree with tmc about being careful with the API.  From the TensorFlow team perspective, this is in "contrib", so we're allowed to change it at will, but if people start using it seriously, it'll become implicitly harder to change.  Once the nits are addressed I'll take a final peek from a bigger picture API perspective and then we should be good to go.
I'm more concerned for now about the serving API, because I think that's the most obviously clear match for Go+TF, but your image recognition example shows a very nice reason for having some graph construction integrated with the Go code as well -- though that could also be baked into the Inception graph.)

Wow, what a code review! :) Thanks a lot @dave-andersen , @tmc ! This is maybe one of the best code reviews I had in the last years ｡^‿^｡
I'm going to sleep, that in Netherlands is a bit late. I went through almost all the comments but I still have to finish:

Add: NewGraphFromReader
Use a template for the getTensorFromGraph input string in order to avoid this redundancy
C++ Code review
Apply fixes to: tensorflow/g3doc/tutorials/image_recognition/index.md

And I want to go through all the code once again to be sure that I'm not forgetting anything, I hope I can have all ready for next week :)

I have been working during this weekend on fixing the code based on the feedback from the code reviews.
This is the changelog of what has been modified:

Fixed typos, test messages, etc.
Replaced t.Error + t.FailNow by t.Fatal
Replaced most of the naked returns
Removed some duplicated code from the test suite removing redundant tests and adding some templates.
Modified AsBool, AsFloat32, … by Bool, Float32, …
Replaced NewGraphFromText and LoadGraphFromFile by NewGraphFromReader
Replaced the DataType Dt* by DT*
Added auto-generation of the probobuf files as also the ops definition file
Replaced example image by:  tensorflow/./examples/label_image/data/grace_hopper.jpg and removed the Ceres image from the repo
TensorInt -> TensorInterface

Pending questions:

Should we use the DT* as prefix for DataTypes?
Should we remove the TensorInterface, or add interfaces for Session, Graph, etc? I think that is better to add the interfaces to make more easy the definition of Mocks for testing proposals.
Why the dimensions of a Tensor are represented as a matrix instead of using a vector?
Should we add GetValInt32, GetValFloat64, etc as helpers for the current GetVal method?
Sould we add/remove some methods to the API?, I think that for a first iteration is enugh, it could be nice to have other stuff implemented like the tf.train.Saver but this could be added in a future.

I think that could be a good idea if we send an e-mail to some groups like<EMAIL_ADDRESS>or<EMAIL_ADDRESS>to try to get more feedback, what do you think?
@dave-andersen @vrv @tmc

There are still a number of named returns that IMO need justification.

@tmc I just replaces the remaining naked returns :)
I'm only leaving this two:

https://github.com/tensorflow/tensorflow/pull/1771/files#diff-6ecada9bdae40f6b8d2258c71de75c99R653
https://github.com/tensorflow/tensorflow/pull/1771/files#diff-6ecada9bdae40f6b8d2258c71de75c99R661

For this two particular cases is obvious that the idea is to return just the error and there are multiple params to be returned.

I'm not convinced these named result parameters are helpful:
    func NewGraphFromReader(reader io.Reader, asText bool) (gr *Graph, err error)
    func (gr *Graph) Constant(name string, data interface{}) (op *GraphNode, err error)
    func (gr *Graph) Op(opName string, name string, input []*GraphNode, device string, attrs map[string]interface{}) (node *GraphNode, err error)

vs
    func NewGraphFromReader(reader io.Reader, asText bool) (*Graph, error)
    func (gr *Graph) Constant(name string, data interface{}) (*GraphNode, error)
    func (gr *Graph) Op(opName string, name string, input []*GraphNode, device string, attrs map[string]interface{}) (*GraphNode, error)

Re questions about adding more to the API:  I'd strongly suggest against it.  There's a lot in here already, and I think it would be useful to get it in to contrib/ and let people play around with it to get experience with what's really wanted.  If everyone starts screaming that they need saver, it's easy to add later - but harder to remove if we add it now.

(btw, thanks and congrats for fixing all of those things so quickly.  I'm taking another look now.)

Sorry for the last minute comments. The PR can benefit from some other styling hints but it is so massive that it is hard to review. I see that we gradually can improve even if there are issues left open on the initial commit.

@rakyll Thanks a lot for the review I'm working on your feedback right now, you spotted some important issues that I didn't see before. Thanks (•‿•)

The last modifications applied are:

Modified 'd by 'i' on GetVal
Exported properties on errors
Fixed comment sentences on type Error* struct { … }
Replaced Str by ByteSlices on Tensor
Added ’s’ at the end of the Tensor methods to retrieve the data like Int64 -> Int64s, Float64 -> Float64s, ...
Removed TensorInterface

Pending questions:

Should we maintain the asText parameter on the NewGraphFromReader function, or split this function in two?

I'll also try to do the “go get”, and if that doesn’t works I'll try to fix it and if it is not possible, I'm going to add a Install section on README.md to explain how to clone the repo, execute go generate...

I think we should pull this in as soon as these comments are done and we know there's a way to build & run the tests.  The one thing I'd ask is that you put a comment in the example imagenet program that says this isn't really the right way to do it - pending a way to modify the graphdef, it's much more efficient to directly couple the input and recognition path so that the image doesn't get copied back to python/CPU between the steps. :)

Fixed the problems with the GetVal and also the typos :)
By build and run the tests do you mean the "go get"?, I'll try to review that part tomorrow, I'm going to sleep now :)
➜ ~/go-src/src/github.com/tensorflow/tensorflow/tensorflow/contrib/go (go_bindings_tensors) go test
# github.com/tensorflow/tensorflow/tensorflow/contrib/go
PASS
ok  	github.com/tensorflow/tensorflow/tensorflow/contrib/go	0.453s

By the imagenet example, do you mean this one?, it is a copy of the C++ API tuto but using Go. It is using a file_reader that reads and process the image when the graph is executed, I'm only providing the path to grab the image, all the magic occurs during the graph execution.

Hah!  So it is - thanks.  It turns out that I don't like our API example program, then, but that's not your problem in the slightest.  grins  Fine to leave it as-is.

I have been trying to prepare the package to be go-gettable but since the *.pb.go files have to be generated, is not possible to do it with a simple "go get". The good news are that go get clones the repository using the --recurse-submodules, so with just a "go get" we have all the code in place to execute the "go generate".
I've added the section "Installation" to the README.md with an only one necessary command to get the package:
$ TF_REPO=github.com/tensorflow/tensorflow/tensorflow/contrib/go/;go get $TF_REPO || (go generate $TF_REPO && go get $TF_REPO)

Basically, the command tries to do the "go get", if it success doesn't continue, but this only can happen an odd situation where the package was previously installed. If the go get returns an error, since the code is already in place, it executes the "go generate" to compile the shared libraries, generate the .pb.go files and prepare all the other stuff leaving all ready to install the package with the last "go get".
I tested this solution and it works:
➜ ~/go-src/src/github.com rm -rf tensorflow/tensorflow/
➜ ~/go-src/src/github.com rm -rf tensorflow
➜ ~/go-src/src/github.com ln -s alonsovidales tensorflow
➜ ~/go-src/src/github.com TF_REPO_AUX=github.com/alonsovidales/tensorflow/tensorflow/contrib/go/; TF_REPO=github.com/tensorflow/tensorflow/tensorflow/contrib/go/;go get $TF_REPO_AUX || (go generate $TF_REPO && go get $TF_REPO)
package github.com/alonsovidales/tensorflow/tensorflow/contrib/go: cannot find package "github.com/alonsovidales/tensorflow/tensorflow/contrib/go" in any of:
	/usr/local/go/src/github.com/alonsovidales/tensorflow/tensorflow/contrib/go (from $GOROOT)
	/home/avidales/go-src/src/github.com/alonsovidales/tensorflow/tensorflow/contrib/go (from $GOPATH)
can't load package: package github.com/tensorflow/tensorflow/tensorflow/contrib/go: cannot find package "github.com/tensorflow/tensorflow/tensorflow/contrib/go" in any of:
	/usr/local/go/src/github.com/tensorflow/tensorflow/tensorflow/contrib/go (from $GOROOT)
	/home/avidales/go-src/src/github.com/tensorflow/tensorflow/tensorflow/contrib/go (from $GOPATH)
➜ ~/go-src/src/github.com cd tensorflow/tensorflow/
➜ ~/go-src/src/github.com/tensorflow/tensorflow (master) git checkout go_bindings_tensors
Branch go_bindings_tensors set up to track remote branch go_bindings_tensors from origin.
Switched to a new branch 'go_bindings_tensors'
➜ ~/go-src/src/github.com/tensorflow/tensorflow (go_bindings_tensors) TF_REPO_AUX=github.com/alonsovidales/tensorflow/tensorflow/contrib/go/; TF_REPO=github.com/tensorflow/tensorflow/tensorflow/contrib/go/;go get $TF_REPO_AUX || (go generate $TF_REPO && go get $TF_REPO)
../../alonsovidales/tensorflow/tensorflow/contrib/go/graph.go:11:2: no buildable Go source files in /home/avidales/go-src/src/github.com/tensorflow/tensorflow/tensorflow/contrib/go/proto
.......
(...)
➜ ~/go-src/src/github.com/tensorflow/tensorflow (go_bindings_tensors) cd tensorflow/contrib/go/
➜ ~/go-src/src/github.com/tensorflow/tensorflow/tensorflow/contrib/go (go_bindings_tensors) go test
PASS
ok  	github.com/tensorflow/tensorflow/tensorflow/contrib/go	0.499s
➜ ~/go-src/src/github.com/tensorflow/tensorflow/tensorflow/contrib/go (go_bindings_tensors) cd ../../../
➜ ~/go-src/src/github.com/tensorflow/tensorflow (go_bindings_tensors) mkdir tensorflow/examples/label_image_go/data/
➜ ~/go-src/src/github.com/tensorflow/tensorflow (go_bindings_tensors) wget https://storage.googleapis.com/download.tensorflow.org/models/inception_dec_2015.zip -O tensorflow/examples/label_image_go/data/inception_dec_2015.zip
--2016-04-20 20:55:14--  https://storage.googleapis.com/download.tensorflow.org/models/inception_dec_2015.zip
Resolving storage.googleapis.com (storage.googleapis.com)... 2a00:1450:4013:c01::80, <IP_ADDRESS>
Connecting to storage.googleapis.com (storage.googleapis.com)|2a00:1450:4013:c01::80|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 88631107 (85M) [application/zip]
Saving to: ‘tensorflow/examples/label_image_go/data/inception_dec_2015.zip’

100%[==========================================================>] 88,631,107   716KB/s   in 1m 51s

2016-04-20 20:57:05 (781 KB/s) - ‘tensorflow/examples/label_image_go/data/inception_dec_2015.zip’ saved [88631107/88631107]

➜ ~/go-src/src/github.com/tensorflow/tensorflow (go_bindings_tensors) unzip tensorflow/examples/label_image_go/data/inception_dec_2015.zip -d tensorflow/examples/label_image_go/data/
Archive:  tensorflow/examples/label_image_go/data/inception_dec_2015.zip
  inflating: tensorflow/examples/label_image_go/data/imagenet_comp_graph_label_strings.txt
  inflating: tensorflow/examples/label_image_go/data/LICENSE
  inflating: tensorflow/examples/label_image_go/data/tensorflow_inception_graph.pb

➜ ~/go-src/src/github.com/tensorflow/tensorflow (go_bindings_tensors) go run ./tensorflow/examples/label_image_go/main.go ./tensorflow/examples/label_image/data/grace_hopper.jpg
military uniform : 0.6472986
suit : 0.04771947
academic gown : 0.02324065
bow tie : 0.015735544
bolo tie : 0.01450234

I had to do some tricks since it is still under my github account and not in the master branch, but it has to work with the line in the README.md after merge the PR.
I also modified the code according to the last comments, fixed typos and relocated the Err* types :)

Curious to see what this does to Jenkins - will it break the build or be happy?
@tensorflow-jenkins test this please.

Last major thing that needs to be addressed:
(a)  Is the build / install solution satisfactory and can it be improved?  (I'll look @ this next);
(b)  We need to get the tests integrated to the point where jenkins auto-runs them as part of the overall test framework.  I'm going to need to dig into how this works with bazel/blaze unless @rakyll is willing to help clue me in on integrating bazel's stuff with go's testing.

I'm unclear on how to get the github bot to like my CLA status, any thoughts there @dave-andersen ?

I think that for the a point we have some things that can be improved:

Include the .pb.go files, so we can do the go get directly. But @vrv mentioned that on other APIs the protobuf files are being generated from bazel, I agree with him, put this files on the repo is not a good idea since we would need to maintain them updated, if we generate them during the install process we only need to check if the Go code keeps working on mayor updates. Perhaps we could integrate all the process using Bazel instead of go get and go generate, but I'm not really sure about how to do this nor if the result would be better than the proposed process.
I had to do this in order to place the shared library because, I don't know why, even with this ld flag it was not working. I think that is not possible to do it in any other way since the route on that line is relative, but I'm not really sure about this, I don't have too much experience working with cgo. I think that this is not a mayor issue, but it would be nice to don't require sudo during the install process.

Regarding to the point b, let me know if I can help, I could prepare the script to install and run the tests, but more or less with:
TF_REPO=github.com/tensorflow/tensorflow/tensorflow/contrib/go/;go get $TF_REPO || (go generate $TF_REPO && go get $TF_REPO)
cd $GOPATH/src/github.com/tensorflow/tensorflow/tensorflow/contrib/go/; go test

could be enough.

@tmc - try @ googlebot I'm okay with these changes

@googlebot I'm okay with these changes

I have been trying to prepare the package to be go-gettable but since the *.pb.go files have to be generated,

What about checking the generated go files in? In the Google Cloud API packages, that's what we do (e.g. https://github.com/GoogleCloudPlatform/gcloud-golang/tree/master/bigtable/internal/cluster_data_proto).

I have been trying to prepare the package to be go-gettable but since the *.pb.go files have to be generated,

What about checking the generated go files in? In the Google Cloud API packages, that's what we do (e.g. https://github.com/GoogleCloudPlatform/gcloud-golang/tree/master/bigtable/internal/cluster_data_proto).

It seems that on TensorFlow, the generated files are not being included in the repo, @vrv comments that [here](https://github.com/tensorflow/tensorflow/pull/1771#dis cussion-diff-59974641R1). In my opinion I think that checking the *.pb.go files would be better since we remove the necessity of having installed protobuf before invoke the go generate, but even checking the *.ph.go files we can't get rid of the go generate since we still need to compile the shared libraries. It would be great if go get would be able to execute the  go generate before, but this is not possible :'(

+1 to committing the generated files.  I checked with some of the other go folk here, and they're of the very strong opinion that if it's going to go in our repo, it needs to be entirely buildable with go get.
Which shared libraries do you need to compile?  We could make those part of the tensorflow C++ build and then you just need to find them.  cgo supports some ways to do this;  I'm not sure with the way you've set it up.

The shared libraries are the libtensorflow.so that are being compiled and relocated here.
If you already have this libraries on your system, you don't need to do this (I'm not sure if when you install the Python version the libs are being placed on the ld library path).
I'll try to find a way to do a direct go get today, perhaps, if you have the python version already installed, we can just add the .pb.go .

I have been trying to figure out how to do the go get directly, but I think that is not going to be possible.
What the Python libs are doing is placing the shared libraries inside the package, so we can't access them:
➜ ~/kaggle/state_farm sudo find / | grep tensorflow | grep -v avidales | grep "\.so"
/usr/local/lib/python2.7/dist-packages/tensorflow/core/libtensorflow_framework.so
/usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so

And if we need to compile the libs, we are going to need to invoke in any way the bazel build //tensorflow:libtensorflow.so.
I can only see two possible options:

Instead of using go get, use bazel to install the libraries. Bazel had added support for Go on the last versions, but this option will requiere to clone the repo and execute bazel manually.
Use the go get || (go generate && go get) proposed initially. This is an ugly solution, but it works and is easy to execute.

@rakyll @tmc @vrv , Do you see any way to make this go-gettable?

I've opened a request to propose a way to execute the go generate during the go get and also to be sure that there is no way to do it with the current go get implementation.
It seems that it is going to be impossible to have a go-gettable package since we have to compile the C++ libraries and go get will never be able to execute the generate or Bazel in any other way.
I can only see the previously mentioned two options, use Bazel for the compilation and installation or the go get || (go generate && go get). I prefer the second option since it is just a command and is more go like.
We could move forward with the go get || (go generate && go get) option and see if someone comes up with a better idea.
What do you think?

I know very little about go, so that sounds fine, but a go expert should probably chime in here.  In some future world we'll hopefully have shared library distributions of the C++ core that doesn't require building during go get, and then this can probably be cleaned up.

+1 to commit the generate files. Doing a go generate automatically when a user does go get opens so many risks and vulnerabilities that it will never be accepted.
The go library should only depend on having a valid tensorflow lib installed and reachable by the linker and then the local build phase will generate the wrapper.

Thinking about what @Mistobaan has commented, that would be a better option, we can specify on the README.md how to compile using bazel and install the libraries, execute the go get and that's it. This makes more sense since the go generate will not be necessary and we are not doing any magic without the users knowledge.
The pros are:

The developer is the one who will install the libs and he will be aware of what he is doing.
It is multi-platform, since right now we are placing the libs on /usr/lib, on the docu we are going to specify "your ld library path".
It makes the package go-gettable.

Cons:

It makes necessary to manually clone the repo, execute bazel and copy the .so, the other option is just copy and paste that line. But this shouldn't be a problem for a developer.

I'm going to update the docu today and remove the library generation.

When people say "make it go-gettable", they mean being able to do so without first cloning the repo. "Go install" is the thing they'd say if they meant for it to be only locally installable.
It's very common to check in generated go files for protobuf and others. See the official Google API clients in Go for how they do the same but with JSON APIs. Even the Go stdliv has checked in pb.go files for pprof

Whoops, that response was made to some stuff way in the past. Sorry. Deleting since it's irrelevant.

I concur - go gettable is critical, and making someone manually install tensorflow in a special way first is probably a reasonable cost.  LMK once that's there and I'll test out the workflow also.

@dave-andersen I already modified the README.md to specify how to compile and install the libs and the gen.go to remove that: https://github.com/tensorflow/tensorflow/pull/1771/commits/942760424141d0f5a930982d5e78aaeb05869488
Now the go generate is not necessary and the package is go-gettable if you install the libs before :)

I forgot to mention, you have to do the go get of: github.com/alonsovidales/tensorflow/tensorflow/contrib/go instead of the go get from the tensorflow repository since the code is still not merged.
After do the go get you are going to get back an error because the code is not in the right path, now you have to do:
$ cd $GOPATH/src/github.com/alonsovidales/tensorflow
$ git checkout go_bindings_tensors
$ ln -s $GOPATH/src/github.com/alonsovidales $GOPATH/src/github.com/tensorflow

and try the go get again with the final path:
$ go get github.com/tensorflow/tensorflow/tensorflow/contrib/go

After merge the code it has to work as it is specified on the README.md file.

So what's the status of this? Is reviewing done and ready?

@vrv , I think that the code review is done (if nothing else pops up). During the last weeks we have been trying to find the best way to make the package go-gettable and finally we decided to go with a way where, after build and install the shared library, the developers can use go get to install the package. This workflow is documented on the README.md fie, so this part is almost closed. @dave-andersen have to test the workflow and is all is ok, I think that we would be be ready to go! :)

@vrv @martinwicke - I'm OK accepting this into contrib within a branch.  It's going to need build changes to get it to work with Jenkins and internally, so I think this is the best approach to continue the momentum -- it'll be available to the community to play with, and we can then start poking at what's going to be required within both tensorflow and this PR to simplify the build and install process.
(I don't know the mechanism for getting that working, so I'll let one of you take it from here. :)
Alonso, thanks for your patience with this!

Ok. I made an appropriately named brach (go branch, go!), can you redo the PR against said branch? I will then merge it onto there.
Thanks again for all the effort.

@martinwicke Awesome, thanks a lot :) I just created a new PR against the go branch, but it seems that the go branch is a bit outdated, is that the correct branch?

Thanks! #2479 is merged. I updated go before merging.

Super, thanks a lot! 👍


build: Upgrade Gradle to version 8.0

See 1.
Signed-off-by: Sebastian Schuberth<EMAIL_ADDRESS>

Merging despite the unrelated failure in OsvServiceFunTest.


Update deps

Apparently this is how I entertain myself on my day off.

Hmm... the tests all pass locally. I'll have to look into that CI failure.

I guess all it needed was another dependency update!

@cap10morgan This LGTM now (now that I fixed one lingering problem from updating Korma). Take a look at the change I pushed.

Ah, good catch. How did you notice that?


ExcelExtractor

Here are the sources for my ExcelExtractor. I would be delighted to get some questions or comments.

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


Add support to passing variables as command-line options, solve #12

This implements the option to pass variables to playbooks using command-line arguments.

-var key1=val1 gets passed as the variable key1 having the value val1.
Multiple key-value pairs can be passed by just repeating -var: -var key1=val1 -var key2=val2
Command-line variables override those defined in the playbooks.
The first equals sign (=) found marks the separation between key and values: this means a value can contain as many equals sign it wants to, but the key can't.

Awesome implementation Alessandro! Thanks so much, scheduling.
@andrioni has signed the CLA.

Happy to help!

How are you finding Golang?

This was my first experience writing anything other than a Hello World, and it was pretty nice.
I like the straightforward simplicity, and it feels refreshing to do something so down-to-earth after spending some months in Scala-land.

Hi any idea when you will be release the next version. Waiting for this to be merged as writing the db creds for every playbook is a pain.

Not too long now @neekipatel - thanks for your patience...


Can't retrieve file's content uploaded during active session

Describe the bug
Unable to download a file that was uploaded during an active FairOS session.
To Reproduce
Steps to reproduce the behaviour:

Create FairOS account (FairOS instance1)
Create pod1
Upload file1 to pod1
Using the same credentials - login to other instance (instance2) of FairOS or fdp-storage
Upload file2 to pod1 using instance2
Try to download file2 using instance1
Get error about uploading error

Try to close and open pod, then file2 could be downloaded.
Expected behavior
File2 should downloaded without pod re-opening.

This is expected behavior as we cache the folder and file entries in fairOS-dfs.
Previously there was only one way to recache, pod-sync. Added dir/ls also with #372.
So to download a file uploaded from a different instance we either have to call pod-sync or dir/ls.


Improve unit tests for "Core" module

Improve the unit test coverage for https://github.com/fabric8io/fabric8-maven-plugin/tree/master/core module
Ref #1102

closed by mistake :)


fix logo

it slightly upset me that the logo wasnt there so i changed it to be the logo stored as icon.png in the repo

thank you merging this


chore(config): adapt default directory nodes

Note: Still a draft - do not merge. Blocked: Waiting for feedback.

PR based on this comment https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/1445#issuecomment-2114389169 (similar to https://github.com/joinmarket-webui/jam-docker/pull/112)
add
Adds node (comment)

odpwaf67rs5226uabcamvypg3y4bngzmfk7255flcdodesqhsvkptaid.onion:5222

replace
Replaces (defunct?) node (comment)

wkd3kd73ze62sqhlj2ebwe6fxqvshw5sya6nkvrgcweegt7ljhuspaid.onion:5222

with

plq5jw5hqke6werrc5duvgwbuczrg4mphlqsqbzmdfwxwkm2ncdzxeqd.onion

Makes sense, can confirm the last three working with the simple script from: https://github.com/openoms/joininbox/issues/108
directory_nodes_list="g3hv4uynnmynqqq2mchf3fcm3yd46kfzmcdogejuckgwknwyq5ya6iad.onion 3kxw6lf5vf6y26emzwgibzhrzhmhqiw6ekrek3nqfjjmhwznb2moonad.onion bqlpq6ak24mwvuixixitift4yu42nxchlilrcqwk2ugn45tdclg42qid.onion odpwaf67rs5226uabcamvypg3y4bngzmfk7255flcdodesqhsvkptaid.onion"
echo $directory_nodes_list
for i in $directory_nodes_list; do
  time torsocks nc -zv $i 5222
done
g3hv4uynnmynqqq2mchf3fcm3yd46kfzmcdogejuckgwknwyq5ya6iad.onion 3kxw6lf5vf6y26emzwgibzhrzhmhqiw6ekrek3nqfjjmhwznb2moonad.onion bqlpq6ak24mwvuixixitift4yu42nxchlilrcqwk2ugn45tdclg42qid.onion odpwaf67rs5226uabcamvypg3y4bngzmfk7255flcdodesqhsvkptaid.onion
1726483037 ERROR torsocks[169706]: Host unreachable (in socks5_recv_connect_reply() at socks5.c:539)
nc: connect to g3hv4uynnmynqqq2mchf3fcm3yd46kfzmcdogejuckgwknwyq5ya6iad.onion (<IP_ADDRESS>) port 5222 (tcp) failed: No route to host

real	0m8.209s
user	0m0.006s
sys	0m0.000s
Connection to 3kxw6lf5vf6y26emzwgibzhrzhmhqiw6ekrek3nqfjjmhwznb2moonad.onion (<IP_ADDRESS>) 5222 port [tcp/xmpp-client] succeeded!

real	0m0.368s
user	0m0.002s
sys	0m0.006s
Connection to bqlpq6ak24mwvuixixitift4yu42nxchlilrcqwk2ugn45tdclg42qid.onion (<IP_ADDRESS>) 5222 port [tcp/xmpp-client] succeeded!

real	0m0.355s
user	0m0.005s
sys	0m0.015s
Connection to odpwaf67rs5226uabcamvypg3y4bngzmfk7255flcdodesqhsvkptaid.onion (<IP_ADDRESS>) 5222 port [tcp/xmpp-client] succeeded!

real	0m2.022s
user	0m0.015s
sys	0m0.005s

Makes sense, can confirm the last three working with the simple script from: openoms/joininbox#108

Thanks for verifying :pray:
Merging!

A user reported ylegp appears to be working sometimes. Add?


Web-based client

Web-based client for deploy by button.

Would like to build up the web feature. How do i Start ? How to go about ?

@nepsdotin Please fork this repo, create a branch base branch 4.x and make pull request after you finished

This will be really cool!

Please use ES6, babel, webpack, react or monkberry.

Hi,
I am very interest in this feature, and I may want contribute to this projet, depend on what you plan to do as feature for this web interface. Can you details a little what you want to do ?
Thx

I want create simple command for weи server:
dep server

And also web phar for working under nginx and other servers.

I'm going to implement web app by myself.

I like this idea :)
Do you have a rough idea yet? I would say it doesn't have to be complicated, just a web UI where you can add/edit projects. And just define which recipe the project uses, ability to create/edit a serverlist yaml file. Then just run the recipe with the correct serverList file for a given project for the chosen environments.
Would just need to be able to run the tasks from a PHP project instead of CLI, but that shouldn't be to hard. And parse the serverList to know which environments are possible, and perhaps even the recipe to know the tasks..
Showing the output in 'realtime' would be a bit trickier perhaps, but for the rest wouldn't need so much Javascript, right?
(Or am I thinking to easy about this? ;))

I'm thinking about gui to running task. No edit functionality for first release.

I tried some things, and it is relatively doable with Laravel, using queues and the Symfony Process command. Just web doesn't really work nicely with forward agent.
Not really sure if you're interested, but there already seems to be a working interface here: https://github.com/ngmy/webloyer by @ngmy

@elfet is it still actual feature request?

Yes, and i'm still working on it. This is really big feature, but i'm really want to ship it as fast as possible. Now don't have enough time, due to main work.

FWIW I think this should be a separate repo. It will bloat dep for those who are capable of using cli.

@tuupola of course

Thanks for that cool tool @antonmedv! Is there any update regarding the web interface?

Working hard on it)

Hi @antonmedv,
Any news on the progress of the gui. I would love to test it for several sites and where possible/ needed contribute.
Any chance to get access to the current version and test that?

Hi @ErikDohmen
I'm working on it :) But now can't assign you to beta testers program as we are migrating to new servers.

Still no news? :)

Unfortunately no news, progress is very slow as I have only free time and main work.  Currently rewriting backend for easy worker installation of deployment.

Is there something I can do to help? I'm willing to make some time to
dive into to help if needed.
Sobit (?} {!)
Tailormade software
Agro Business Park 75-83
6708 PV  Wageningen
026 800 10 22
06 45 194 596
<EMAIL_ADDRESS>http://www.sobit.nl
On 11/06/2019 12:15, Anton Medvedev wrote:

Unfortunately no news, progress is very slow as I have only free time
and main work. Currently rewriting backend for easy worker
installation of deployment.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/deployphp/deployer/issues/350?email_source=notifications&email_token=AJQD7P5XK7BMU6KHZMEKKXLPZ53MZA5CNFSM4BIQQ642YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXMURUI#issuecomment-500779217,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJQD7P5JV6LCZSAZ7AHDFV3PZ53MZANCNFSM4BIQQ64Q.

@ErikDohmen currently no, because I can't publish code yet.

Why has this been closed?

No need for an issue. :)

Why not? :)

I'm in the process of cleaning issues on GitHub, starting from old ones. I decided this one not needed to be opened, as this is more like a todo list for me.

Hi @antonmedv
Is this still in your todo list?

Maybe as a paid extension. Would you pay for such feature?

From my point of view, this depends on the price. But most people using deployer most likely use github actions or bitbucket/gitlab pipelines ... which somehow includes a deploy button by running the pipeline.
TL;DR we don't need it.


not working on pop!_os 20.10

As you can see, nothing is going transparent.
I am using the Xorg display server and xprop is installed.
VS Code System Information
timestamp: 2020-11-02T00:02:37.127Z
Information Provider

open in marketplace
open in VS Code

key
value

id
wraith13.sysinfo-vscode

name
sysinfo-vscode

displayName
System Information

version
2.4.1

options

key
value

categories
["basic","extensions"]

withSensitiveData
false

withInternalExtensions
false

OS Information

key
value

arch
x64

platform
linux

type
Linux

release
5.8.0-7625-generic

EOL
"\n"

endianness
LE

Process Information

key
value

arch
x64

versions

key
value

node
12.14.1

v8
<IP_ADDRESS>-electron.0

uv
1.33.1

zlib
1.2.11

brotli
1.0.7

ares
1.15.0

modules
80

nghttp2
1.40.0

napi
5

llhttp
2.0.1

http_parser
2.8.0

openssl
1.1.0

cldr
36.0

icu
65.1

tz
2020a

unicode
12.1

electron
9.2.1

env

key
value

LANG
en_US.UTF-8

VS Code Information

key
value

version
1.50.1

env

key
value

appName
Visual Studio Code

language
en

extensions
JavaScript Debugger

open in marketplace
open in VS Code

key
value

id
ms-vscode.js-debug

isActive
true

name
js-debug

version
1.50.2

displayName
JavaScript Debugger

description
An extension for debugging Node.js programs and Chrome.

publisher
ms-vscode

categories
["Debuggers"]

JavaScript Debugger Companion Extension

open in marketplace
open in VS Code

key
value

id
ms-vscode.js-debug-companion

isActive
false

name
js-debug-companion

version
1.0.8

displayName
JavaScript Debugger Companion Extension

description
Companion extension to js-debug that provides capability for remote debugging

publisher
ms-vscode

categories
["Other"]

Node Debug (legacy)

open in marketplace
open in VS Code

key
value

id
ms-vscode.node-debug

isActive
false

name
node-debug

version
1.44.14

displayName
Node Debug (legacy)

description
Node.js debugging support (versions < 8.0)

publisher
ms-vscode

categories
["Debuggers"]

Node Debug

open in marketplace
open in VS Code

key
value

id
ms-vscode.node-debug2

isActive
false

name
node-debug2

version
1.42.5

displayName
Node Debug

description
Node.js debugging support

publisher
ms-vscode

categories
["Debuggers"]

Reference Search View

open in marketplace
open in VS Code

key
value

id
ms-vscode.references-view

isActive
false

name
references-view

version
0.0.68

displayName
Reference Search View

description
Reference Search results as separate, stable view in the sidebar

publisher
ms-vscode

categories
["Programming Languages"]

vscode-js-profile-table

open in marketplace
open in VS Code

key
value

id
ms-vscode.vscode-js-profile-table

isActive
false

name
vscode-js-profile-table

version
0.0.11

description
Text visualizer for profiles taken from the JavaScript debugger

publisher
ms-vscode

CSS Formatter

open in marketplace
open in VS Code

key
value

id
aeschli.vscode-css-formatter

isActive
true

name
vscode-css-formatter

version
1.0.1

displayName
CSS Formatter

description
Formatter for CSS

publisher
aeschli

categories
["Formatters"]

GlassIt-VSC

open in marketplace
open in VS Code

key
value

id
s-nlf-fh.glassit

isActive
true

name
glassit

version
0.2.2

displayName
GlassIt-VSC

description
VS Code Extension to set window to transparent on Windows and Linux platforms.

publisher
s-nlf-fh

categories
["Themes","Other"]

System Information

open in marketplace
open in VS Code

key
value

id
wraith13.sysinfo-vscode

isActive
true

name
sysinfo-vscode

version
2.4.1

displayName
System Information

description
Show system information ( includes extensions list ) by markdown or JSON for VS Code

publisher
wraith13

categories
["Other"]

Can you post the output of below command.
xprop -root | grep '_NET_CLIENT_LIST(WINDOW)'

#16
https://github.com/hikarin522/GlassIt-VSC/blob/v0.2.2/extension.js#L51

_NET_CLIENT_LIST(WINDOW): window id # 0x1e00019, 0x1e0009e, 0x1e00092, 0x1e00042, 0x1c00009, 0x3800001, 0x3c00006, 0x3c022d3, 0x5400006, 0x1800006, 0x580000e

Start code and run the following shell script.
#!/bin/bash

codeIds=(`pgrep 'code'`)

echo "codeIds: ${codeIds[@]}"

IFS=', '
windowIds=`xprop -root  |  grep '_NET_CLIENT_LIST(WINDOW)'`
windowIds=(${windowIds#*#})

pids=()
targets=()
for wid in  ${windowIds[@]}; do
  pid=`xprop -id ${wid} _NET_WM_PID`
  pid=${pid#*= }
  pids+=($pid)
  for code in ${codeIds[@]}; do
    if [[ $pid == $code ]]; then
      targets+=($pid)
    fi
  done
done

echo "pids : ${pids[@]}"

echo "targets : ${targets[@]}"

codeIds: 58859 58863 58864 58891 58901 59000 72684 72722 72738 72799 101539
pids : 1861 46254 58859 2861 2861 77271 _NET_WM_PID: not found. 61661 48961 62568
targets : 58859

since it's saying that it's not finding a wm pid (i guess it means the window manager), i just wanna say that i'm using i3-gaps as my wm. maybe that helps.

If the window does not become translucent after running this script, i3 may not support _NET_WM_WINDOW_OPACITY.
#!/bin/bash

codeIds=(`pgrep 'code'`)

echo "codeIds: ${codeIds[@]}"

IFS=', '
windowIds=`xprop -root  |  grep '_NET_CLIENT_LIST(WINDOW)'`
windowIds=(${windowIds#*#})
echo "windowIds : ${windowIds[@]}"

pids=()
targets=()
for wid in  ${windowIds[@]}; do
  pid=`xprop -id ${wid} _NET_WM_PID`
  pid=${pid#*= }
  pids+=($pid)
  for code in ${codeIds[@]}; do
    if [[ $pid == $code ]]; then
      targets+=($wid)
    fi
  done
done

echo "pids : ${pids[@]}"

echo "targets : ${targets[@]}"

xprop -id ${targets[0]}  -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY $(( 0xffffffff * 200 / 256 ))

https://github.com/hikarin522/GlassIt-VSC/blob/v0.2.2/extension.js#L80

it did not change anything.
no idea what _NET_WM_WINDOW_OPACITY means exactly, but transparency definitely works with other applications such as terminals or discord. i just needed to install compton for that.
if this really is a compatibility issue with i3, is there any chance for a patch in the future?

I'm not familiar with i3 so I don't know, but if I find a solution, I'll fix it.

sounds good. thanks for your time!

If the window does not become translucent after running this script, i3 may not support _NET_WM_WINDOW_OPACITY.
#!/bin/bash

codeIds=(`pgrep 'code'`)

echo "codeIds: ${codeIds[@]}"

IFS=', '
windowIds=`xprop -root  |  grep '_NET_CLIENT_LIST(WINDOW)'`
windowIds=(${windowIds#*#})
echo "windowIds : ${windowIds[@]}"

pids=()
targets=()
for wid in  ${windowIds[@]}; do
  pid=`xprop -id ${wid} _NET_WM_PID`
  pid=${pid#*= }
  pids+=($pid)
  for code in ${codeIds[@]}; do
    if [[ $pid == $code ]]; then
      targets+=($wid)
    fi
  done
done

echo "pids : ${pids[@]}"

echo "targets : ${targets[@]}"

xprop -id ${targets[0]}  -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY $(( 0xffffffff * 200 / 256 ))

https://github.com/hikarin522/GlassIt-VSC/blob/v0.2.2/extension.js#L80

Cool that works for me thanks! But the extension it self does not seem to have any effect. I am on archlinux X11 and gnome btw.

If the window does not become translucent after running this script, i3 may not support _NET_WM_WINDOW_OPACITY.
#!/bin/bash

codeIds=(`pgrep 'code'`)

echo "codeIds: ${codeIds[@]}"

IFS=', '
windowIds=`xprop -root  |  grep '_NET_CLIENT_LIST(WINDOW)'`
windowIds=(${windowIds#*#})
echo "windowIds : ${windowIds[@]}"

pids=()
targets=()
for wid in  ${windowIds[@]}; do
  pid=`xprop -id ${wid} _NET_WM_PID`
  pid=${pid#*= }
  pids+=($pid)
  for code in ${codeIds[@]}; do
    if [[ $pid == $code ]]; then
      targets+=($wid)
    fi
  done
done

echo "pids : ${pids[@]}"

echo "targets : ${targets[@]}"

xprop -id ${targets[0]}  -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY $(( 0xffffffff * 200 / 256 ))

https://github.com/hikarin522/GlassIt-VSC/blob/v0.2.2/extension.js#L80

I think its worth adding that the first line (codeIds=(pgrep 'code')) stores the executables name. Some distribution of VSCode (such as VSCodium) use a different name. The above script didn't work for me until I changed code to codium

Does not work with i3wm

If the window does not become translucent after running this script, i3 may not support _NET_WM_WINDOW_OPACITY.
#!/bin/bash

codeIds=(`pgrep 'code'`)

echo "codeIds: ${codeIds[@]}"

IFS=', '
windowIds=`xprop -root  |  grep '_NET_CLIENT_LIST(WINDOW)'`
windowIds=(${windowIds#*#})
echo "windowIds : ${windowIds[@]}"

pids=()
targets=()
for wid in  ${windowIds[@]}; do
  pid=`xprop -id ${wid} _NET_WM_PID`
  pid=${pid#*= }
  pids+=($pid)
  for code in ${codeIds[@]}; do
    if [[ $pid == $code ]]; then
      targets+=($wid)
    fi
  done
done

echo "pids : ${pids[@]}"

echo "targets : ${targets[@]}"

xprop -id ${targets[0]}  -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY $(( 0xffffffff * 200 / 256 ))

https://github.com/hikarin522/GlassIt-VSC/blob/v0.2.2/extension.js#L80

I think its worth adding that the first line (codeIds=(pgrep 'code')) stores the executables name. Some distribution of VSCode (such as VSCodium) use a different name. The above script didn't work for me until I changed code to codium

Thanks that fixed it for me. I also had to install the kwin script force blur and set it to blur all windows, for background blur to work, since I'm on KDE Plasma


Google Analytics not tracking 2021 site

The new site uses a G-#### code instead of the old UA-#### code; could be we can't just swap out one for the other; might need a new include script.

fixed by creating property with a Universal Anayltics ID in 368c40e


A way to cause a resync of modules that have changed while local-npm has been offline

It would be good if there was a way to get local-npm to re-sync with the up-stream registry if local-npm wasn't running when that module changed (ie didn't get the event for the change)

If it gets out-of-sync, then that's a straight-up bug. PouchDB should handle this correctly. Can you do a npm ls -g and see which version of PouchDB you have installed along with local-npm?

I'm experiencing the same issue with<EMAIL_ADDRESS>and<EMAIL_ADDRESS>I love local-npm and it really speeds up my development time, but this sync issue is quite annoying.

I have hit this also. @nolanlawson I know the project is unmaintained but if you have any place I could look in the local PouchDB servers for debugging info I'd appreciate it.

If anyone can track this down and repro it consistently, that would be awesome. I fear it's an issue in PouchDB sync itself that only crops up in heavy use situations such as local-npm. Either that or it's an issue with npm's skimdb server, which is using an old fork of CouchDB afaik.

@fivetanley have you been able to reproduce this with local-npm@^2?

We have the same problem.
We are restricted to use a private network in our company so we use local-npm as an offline npm registry like so:

installed v2.2.1  on a machine connected to the internet (windows)
run local-npm --url http://${machine_ip}:5080
installed desired packages on a different machine on the same home network
imported local-npm directory to a server on the business' offline network
everything work like a charm

But when we need a new package or to update an existing one, we went to the online machine, run local-npm and the server doesn't update his old packages, even if try to npm install package@{desired_version}
please help.


ubuntu vscode can't use F12 searching function define

Issue Type: Bug
ubuntu vscode can't use F12 searching function define
VS Code version: Code 1.38.1 (b37e54c98e1a74ba89e03073e5a3761284e3ffb0, 2019-09-11T13:35:15.005Z)
OS version: Windows_NT x64 6.1.7601

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (4 x 2712)

GPU Status
2d_canvas: unavailable_softwareflash_3d: disabled_softwareflash_stage3d: disabled_softwareflash_stage3d_baseline: disabled_softwaregpu_compositing: disabled_softwaremultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwareoop_rasterization: disabled_offprotected_video_decode: disabled_offrasterization: disabled_softwareskia_deferred_display_list: disabled_offskia_renderer: disabled_offsurface_synchronization: enabled_onvideo_decode: disabled_softwareviz_display_compositor: disabled_offwebgl: unavailable_softwarewebgl2: unavailable_software

Load (avg)
undefined

Memory (System)
7.77GB (3.71GB free)

Process Argv

Screen Reader
no

VM
67%

Extensions (4)

Extension
Author (truncated)
Version

code-gnu-global
aus
0.2.2

EnglishChineseDictionary
Cod
0.0.11

vscode-language-pack-zh-hans
MS-
1.38.4

cpptools
ms-
0.25.1

yes,i 'm also ubunt, vscode go to definition and F12 don't be used. do you have a solution way?thanks

/needsMoreInfo
Does VS Code receive the F12?

Maybe F12 is taken by your OS. In that case try assigning a different keybinding.


March Update.

Trying to keep pace with SurfaceDuoPkg

Update Logs:

General:

Update build scripts & Docs.

Please check the README.md for details.
Followed SurfaceDuoPkg build method.

Update MU.
Follow SDPkg works.

8150:

Update dtbs for devices.
Update ACPI for devices.
set USB 1 to host on QRD855 in UEFI.

7125:

Update DSDT.
Sort Patched BInaries Directories.
Add base support for Xiaomi Note 9S (miatoll).
Bring Auto RAM Partition adder to 7125.

7325

Add base support for 7325.
Add base support for qrd 778.

Notice
For test/unstable PR, will leave 7~10 days for testing before merging to main.
Will Run a Action after PR.

Cepheus works very well


Use cfg_attr to gate musl linking

Fixes #684. Previously building libc for musl would fail, because we don't want to use #[link(...)] outside a stdbuild. This commit fixes that issue. (Although it may leave other targets broken, I'm not sure.)

Looks like CI is failing? Can you also include tests from https://github.com/rust-lang/libc/pull/685?

@alexcrichton I'm already seeing more failures on travis, even with the style fix. How would you feel about gating all the link commands behind stdbuild? One way of doing that would be changing:
else if #[cfg(all(not(stdbuild), feature = "use_std"))] {

To:
else if #[cfg(any(not(stdbuild), feature = "use_std"))] {

Alternatively I can just introduce a fix for the rumprun target (which looks to be the only broken one), and leave the rest as-is.

Ah yeah it'd be great to add this same fix there as well!

@alexcrichton Okay, I've made the CI build work for all platforms. I did, however, use the first method I outlined and prevent any linking from happening if not(stdbuild). I think that the logic is cleaner this way--and could prevent future issues.
If you agree with the above assessment, then I think this is ready to be merged.

Hm yeah so the only gotcha there is that if you pull in the libc crate without the standard library you may get unresolved symbol errors. Is that the use case you have in mind or is libstd still pulled in elsewhere?

@alexcrichton Yeah, you're right. Fixing it this way won't work. But I don't think the earlier #[cfg_attr(...)] fix works either. (Since it prevents the necessary libc.a from being pulled in on musl if you aren't using the standard library.)
I'm not sure how to proceed here. Do you know of any other options we have?

It's true yeah, we could avoid the cfg inside the link attribute perhaps though? Basically have a #[cfg_attr(not(stdbuild), link(...))]?

@alexcrichton How can we avoid the cfg inside the link? Don't we want different behavior depending on whether target_feature = "crt-static"?

Yeah we wouldn't get precisely the same behavior, we'd have to select one kind of linakge for musl, for example.

@alexcrichton Do you have any thoughts on what we should do then? #684 is a serious problem for using Rust on a MUSL platform. If there is no quick fix for now, perhaps we should introduce some sort of work around?

I think our only option is to have #[link(name = "c")] and pray it works.

Is there any progress on this? I'd be willing to help out with a fix but I'm not sure where to go from here.

@clarcharr I'm still paying attention to this, although I've been busy at work this past week. I'm dissatisfied with the current solution / every solution outlined thus far. I feel like the #[link(name = "c")]approach is likely to break -crt-static linking (which I personally depend on). @alexcrichton do you have further thoughts on this? Do you want me to just forge ahead with the #[link(name = "c")] and pray strategy?

Ideally this would look like:
#[cfg_attr(all(not(stdbuild), target_feature = "crt-static"), link(name = "c", kind = "static")]
#[cfg_attr(all(not(stdbuild), not(target_feature = "crt-static")), link(name = "c")]

But right now target_feature = "crt-static" is unstable to match against. Short of that I'm not entirely sure what to do.

:umbrella: The latest upstream changes (presumably #734) made this pull request unmergeable. Please resolve the merge conflicts.

I'm going to close this due to inactivity, but feel free to resubmit with a rebase!


Make an ESLint rule to autofix window.* to jest-globals

As suggested by @MattSchiller, +1!
We'd probably want to turn this into a monorepo similar to https://github.com/Codecademy/use-selector-with.

Closing out my old issues I no longer have context on. If anybody else is still seeing this, I'd encourage you to file a new issue with more information. Cheers!


start using app.kubernetes.io/ labels

The app.kubernetes.io/ labels are becoming part of the standard way of labeling things within the infrastructure. Can this be updated to start applying those labels to various elements?

It would be helpful if there was a helm repo setup...

you mean this?
https://github.com/rancher/local-path-provisioner/blob/master/deploy/chart/local-path-provisioner/README.md

As I understand it, those are instructions for a local deployment rather than via a helm repo.

I've still interest in this.

I've still interest in this.

I've still interest in this.


Update nfs-volume-release to support bionic

Not sure what that 'Merge branch 'main' of ....' commit is doing as part of this PR.  Please recreate this PR with only the actual change as a single commit.  If need be, rebase against main first.


[Docs]: React instructions use deprecated react-test-renderer

Page(s)
https://github.com/jestjs/jest/blob/main/docs/TutorialReact.md#setup-with-create-react-app
Description
This tutorial walks a new user through using a deprecated library: react-test-renderer. It should be updated to help make using Jest with React easier for new users.

Duplicate of #15150

PR still welcome 😃


Error in template 9

I'm coming across the following error on template with id 9
panic: regexp: Compile(`Illuminate\Foundation\Bootstrap\HandleExceptions::handleError`): error parsing regexp: invalid escape sequence: `\F`

goroutine 1 [running]:
regexp.MustCompile({0xc00001e2c0, 0x3d})
        /opt/hostedtoolcache/go/1.22.3/x64/src/regexp/regexp.go:317 +0xb4
main.checkResponse(0xc000133040, 0xc0000ebbb0, 0xc000072a80)
        /home/runner/work/misconfig-mapper/misconfig-mapper/main.go:353 +0xbd1
main.main()
        /home/runner/work/misconfig-mapper/misconfig-mapper/main.go:608 +0x1390

The error indicates that something is going wrong on the following line in services.json
"Illuminate\\Foundation\\Bootstrap\\HandleExceptions::handleError"

I don't currently have a vulnerable instance I can test against, hence I don't issue a pr, however I believe that you should use double the number of backslashes. As it is now, the regex engine sees \F or \B or even \H which are not valid. By converting the previous line to the following, the errors go away and detection "should" work:
"Illuminate\\\\Foundation\\\\Bootstrap\\\\HandleExceptions::handleError"

Hey! Thank you for reporting this issue!
I was able to reproduce the exception you encountered and a fix will be available in a short while!

Hey!
Quick update. The issue surrounding the fingerprints has been fixed. I recommend you get the latest release.
Once again, thank you for your contributions! We appreciate these a lot! If there's anything, feel free to create a new Issue or PR in the future!


[FEATURE]: Get the play time of a player

Scope
Developer API
Feature Description
I would like the ability to get the play time of a player on the server. This feature was requested around 2 years a go as a comment in a different issue, but I don't believe it's been requested as a specific feature.
It doesn't need to be anything complex. A simple export would be fine.
Use Case
Being able to get the play time of a player would provide a whole host of positive use cases for players, some of which I will list below:

Stop players duplicating logic by creating their own play time calculation scripts. What's the point when TxAdmin already does it?
Allow players to use the play time to do things like issue rewards or perks to players with various amount of play time.
Allow players to fetch and store this data in their own database to use for external web panels/websites connected to their server.

Proposed Solution
I believe a simple server sided export allowing you to pass the player ID OR identifier into the export to receive their play time.
Additional Info
No response

Sorry, but this still falls under #442


undefined is not an object (evaluating React.PropTypes.oneOf)

I am getting this error with react: 15.0.2, react-native: 0.26.2

I am facing the same problem. What fixed it?

@RTsGIT upgrading react-native-vector-icons worked for me:
npm install --save<EMAIL_ADDRESS>rnpm link


Python extension environment not working on Windows with VSCode telemetry disabled

Type: Bug

Behaviour
I tried to get the python environment running in some workspace. When hovering on any shell (powershell, git bash...) I saw that there was no contribution to the python environment mentioned.
It worked when using a fresh data dir. So I looked for the settings causing this.
When I disabled the following two settings, it started working:
    // "telemetry.enableTelemetry": false,
    // "telemetry.enableCrashReporter": false,

Then I tried the new telemetry setting - same issue. As soon as I put the following line in my settings.json, the environment will no longer be activated:
    "telemetry.telemetryLevel": "off"

Expected:

Got:

(just openend the same workspace with telemetry disabled)
To me it looks like disabling telemetry will disable some 'experiments' which are required for enabling the python environment integration? At least I can see that there are no experiments enabled when telemetry is disabled, but following experiments are enabled if telemetry is enabled:
vsliv368:30146709
vspor879:30202332
vspor708:30202333
vspor363:30204092
vscod805cf:30301675
binariesv615:30325510
vsaa593:30376534
py29gd2263:31024239
c4g48928:30535728
azure-dev_surveyone:30548225
962ge761:30959799
pythonnoceb:30805159
asynctok:30898717
pythonmypyd1:30879173
2e7ec940:31000449
pythontbext0:30879054
cppperfnew:31000557
dsvsc020:30976470
pythonait:31006305
dsvsc021:30996838
724cj586:31013169
dvdeprecation:31068756
dwnewjupytercf:31046870
newcmakeconfigv2:31071590
impr_priority:31102340
nativerepl1:31139838
pythonrstrctxt:31112756
cf971741:31144450
iacca1:31171482
notype1cf:31157160
5fd0e150:31155592
dwcopilot:31170013
stablechunks:31181875

Steps to reproduce:

Open some python project in VSCode. I created an empty project using pdm init. That will do.
Make that telemetry is disabled as described above.
If telemetry was enabled, restart VSCode.
However over your default terminal (powershell, git bash, ...) to check whether the python extensions contributed anything to the environment.

For me, it doesn't as soon as I disable the VSCode telemetry.
This seems to work fine when running in WSL - but not in native Windows.

Diagnostic data

Output with telemetry disabled for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

2024-11-18 17:26:59.445 [info] Telemetry level is off
2024-11-18 17:26:59.445 [info] Experiments are disabled, only manually opted experiments are active.
2024-11-18 17:26:59.445 [warning] Dir "c:\repositories\vsconan-test\.pixi\envs" is not watchable (directory does not exist)
2024-11-18 17:26:59.445 [info] Python interpreter path: .\.venv\Scripts\python.exe
2024-11-18 17:26:59.592 [info] > pyenv which python
2024-11-18 17:26:59.592 [info] cwd: .
2024-11-18 17:27:04.944 [info] Starting Pylance language server.

Output with telemetry enabled for Python in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)

2024-11-18 17:28:56.587 [info] Experiment 'pythonRecommendTensorboardExt' is active
2024-11-18 17:28:56.587 [info] Experiment 'pythonTerminalEnvVarActivation' is active
2024-11-18 17:28:56.587 [info] Experiment 'pythonTestAdapter' is active
2024-11-18 17:28:56.587 [warning] Dir "c:\repositories\vsconan-test\.pixi\envs" is not watchable (directory does not exist)
2024-11-18 17:28:56.587 [info] Python interpreter path: .\.venv\Scripts\python.exe
2024-11-18 17:28:56.616 [info] > pyenv which python
2024-11-18 17:28:56.616 [info] cwd: .
2024-11-18 17:29:00.839 [info] > & ./.venv/Scripts/Activate.ps1 ; echo 'e8b39361-0157-4923-80e1-22d70d46dee6' ; python ~/.vscode/extensions/ms-python.python-2024.20.0-win32-x64/python_files/printEnvVariables.py
2024-11-18 17:29:00.839 [info] shell: powershellCore
2024-11-18 17:29:01.484 [info] > ~\AppData\Local\Programs\Python\Python311\python.exe ~/.vscode/extensions/ms-python.python-2024.20.0-win32-x64/python_files/printEnvVariables.py
2024-11-18 17:29:01.484 [info] shell: powershellCore
2024-11-18 17:29:01.917 [info] Prepending environment variable PATH in collection with c:\Users\myUserName\.vscode\extensions\ms-python.python-2024.20.0-win32-x64\python_files\deactivate\powershell;C:\repositories\vsconan-test\.venv/Scripts; {"applyAtShellIntegration":true,"applyAtProcessCreation":true}
2024-11-18 17:29:01.917 [info] Setting environment variable VIRTUAL_ENV in collection to C:\repositories\vsconan-test\.venv {"applyAtShellIntegration":true,"applyAtProcessCreation":true}
2024-11-18 17:29:01.917 [info] Setting environment variable VIRTUAL_ENV_PROMPT in collection to vsconan-test-3.11 {"applyAtShellIntegration":true,"applyAtProcessCreation":true}
2024-11-18 17:29:01.918 [info] Send text to terminal: & C:/Users/myUserName/AppData/Local/Programs/Python/Python311/python.exe c:\Users\myUserName\.vscode\extensions\ms-python.python-2024.20.0-win32-x64\python_files\printEnvVariablesToFile.py c:\Users\myUserName\.vscode\extensions\ms-python.python-2024.20.0-win32-x64\python_files\deactivate\powershell\envVars.txt
2024-11-18 17:29:02.215 [info] Starting Pylance language server.

Extension version: 2024.12.0
VS Code version: Code 1.95.3 (f1a4fb101478ce6ec82fe9627c43efbf9e98c813, 2024-11-13T14:50:04.152Z)
OS version: Windows_NT x64 10.0.22631
Modes:

Python version (& distribution if applicable, e.g. Anaconda): 3.11.1
Type of virtual environment used (e.g. conda, venv, virtualenv, etc.): VirtualEnvironment

System Info

Item
Value

CPUs
12th Gen Intel(R) Core(TM) i7-12800H (20 x 2803)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_graphite: disabled_offvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabledwebnn: disabled_off

Load (avg)
undefined

Memory (System)
31.58GB (9.10GB free)

Process Argv
--user-data-dir ../test ../vsconan-test/ --crash-reporter-id daecb4ec-d188-4b9e-bd89-eabda3004a8a

Screen Reader
no

VM
0%

Just found a workaround. The required experiment can be enabled manually when telemetry is disabled:
    "python.experiments.optInto": [
        "pythonTerminalEnvVarActivation"
    ]

@schwaerz The workaround you have for disabling telemetry is the right one.
The activations should use the command method where it sends the command when experiments are disabled. Did that not work for you? Or were you specifically locking for python environment feature that the experiment enables.

@karthiknadig actively enabling the experiment works for me.
However it took me quite some time to figure that out. Especially since this seems to work fine when running in WSL. Is this as it should be? Is there any documentation available about this somewhere?


CMake generator

Some IDE's work with CMake projects (Qt Creator, CLion, etc). So would be nice to have CMake support.

Note : same as #93, but for cmake :)


Support helm-secrets in ods-deploy-helm

Closes #199.
FYI @gerardcl do you think the approach is fine? would you make it explicit so that people have to define a param for the private key secret?

@michaelsauter looks good to me as a initial approach! and, I would definitely make it explicit 👍

so just to add here what we discussed -> makes sense to not make it explicit since it is documented, and that might just add some complexity in the code we don't need for now!
another thing we mentioned was about having a private key-pair for encrypting that secret within IaC. Basically one will need to add the different public keys of the team to the encryption, and handle that locally.


passing Taskscheduler reference to Task doesn't work

Code below works, but if I replace Task definition with the commented one, the callback isn't called.
Am I wrong in thinking that it should work?
#include <Arduino.h>
#include "TaskScheduler.h"  // V 3.2.2

void callback(){
  static int a = 0;
  digitalWrite(LED_BUILTIN,a);
  a=1-a;
}

Scheduler ts;
Task blink(1000,TASK_FOREVER,&callback); //,&ts
// Task blink(1000,TASK_FOREVER,&callback,&ts);

void setup() {
  pinMode(LED_BUILTIN,OUTPUT);
  ts.init();
  ts.addTask(blink);
  blink.enable();
};

void loop() { ts.execute(); };

You need to decide how you want to assign tasks to the chain.
Either at the construction time:
Task blink(1000,TASK_FOREVER,&callback,&ts);

or in the setup():
Task blink(1000,TASK_FOREVER,&callback); //,&ts
...
  ts.addTask(blink);
...

Can not do both.
If you do both you are creating a task chain consisting of 2  tasks referencing itself - it's either a crash or a infinite loop somewhere as a result.

Thanks, makes perfect sense.

I just tested it on my Uno and it does work:
#include "TaskScheduler.h"
void callback(){
  static int a = 0;
  digitalWrite(LED_BUILTIN,a&1);
  a++;
}

Scheduler ts;
Task blink(1000,TASK_FOREVER,&callback,&ts);

void setup() {
  pinMode(LED_BUILTIN,OUTPUT);
//  ts.init();
  blink.enable();
}

void loop() {
   ts.execute();
}

Do not init the scheduler if you assign it to the Task at creation time. That was the problem.
The scheduler was init'ed at the Task creation time.
https://github.com/arkhipenko/TaskScheduler/wiki/API-Task-Scheduler#void-init


Unable to set MessageBody on SNS Topic Subscription

What happened?
I am provisioning an AWS SNS topic, queue and topic subscription with the property filterPolicyScope.
Despite setting the property to the desired MessageBody does not seem to take any effect.
This does seem sporadic, and sometimes it works, sometimes it doesn't.
Expected Behavior
I expece the created subscription to set the message body correctly
Steps to reproduce
Create the resources like so:
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as awsx from "@pulumi/awsx";

const topic = new aws.sns.Topic("example", {})

const queue = new aws.sqs.Queue("example", {})

const sub = new aws.sns.TopicSubscription("example", {
    endpoint: queue.arn,
    protocol: "sqs",
    topic: topic.arn,
    filterPolicy: "{\"type\":[\"foo\"]}",
    filterPolicyScope: "MessageBody"
})

export const subscriptionArn = sub.arn

aws sns get-subscription-attributes --subscription-arn $(pulumi stack output subscriptionArn) --no-paginate

{
    "Attributes": {
        "SubscriptionPrincipal": "arn:aws:iam::616138583583:role/aws-reserved/sso.amazonaws.com/us-west-2/AWSReservedSSO_AdministratorAccess_224e23fb315b65cb",
        "Owner": "616138583583",
        "RawMessageDelivery": "false",
        "FilterPolicy": "{\"type\":[\"foo\"]}",
        "TopicArn": "arn:aws:sns:us-west-2:616138583583:example-cc2b39c",
        "Endpoint": "arn:aws:sqs:us-west-2:616138583583:example-c14bb01",
        "FilterPolicyScope": "MessageAttributes",
        "Protocol": "sqs",
        "PendingConfirmation": "false",
        "ConfirmationWasAuthenticated": "true",
        "SubscriptionArn": "arn:aws:sns:us-west-2:616138583583:example-cc2b39c:9bb79462-bb5b-47c6-bfd3-e5f6fb13141b"
    }
}

Output of pulumi about
CLI
Version      3.73.0
Go Version   go1.20.5
Go Compiler  gc

Plugins
NAME    VERSION
aws     5.41.0
awsx    1.0.2
docker  3.6.1
nodejs  unknown

Host
OS       darwin
Version  13.4.1
Arch     arm64

This project is written in nodejs: executable='/opt/homebrew/bin/node' version='v20.3.1'

Current Stack: lbrlabs58/sns/dev

TYPE                                         URN
pulumi:pulumi:Stack                          urn:pulumi:dev::sns::pulumi:pulumi:Stack::sns-dev
pulumi:providers:aws                         urn:pulumi:dev::sns::pulumi:providers:aws::default_5_41_0
aws:sns/topic:Topic                          urn:pulumi:dev::sns::aws:sns/topic:Topic::example
aws:sqs/queue:Queue                          urn:pulumi:dev::sns::aws:sqs/queue:Queue::example
aws:sns/topicSubscription:TopicSubscription  urn:pulumi:dev::sns::aws:sns/topicSubscription:TopicSubscription::example

Found no pending operations associated with dev

Backend
Name           pulumi.com
URL            https://app.pulumi.com/jaxxstorm
User           jaxxstorm
Organizations  jaxxstorm, lbrlabs, pulumi, demo

Dependencies:
NAME            VERSION
@pulumi/aws     5.41.0
@pulumi/awsx    1.0.2
@pulumi/pulumi  3.73.0
@types/node     16.18.37

Pulumi locates its logs in /var/folders/rk/2c715ngd14jc4c7d3659m7pm0000gn/T/ by default

Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

Possibly the same issue tracked in https://github.com/hashicorp/terraform-provider-aws/issues/32072?

Can this issue be given priority please?
I'm really needing to use IaC to maintain the filterPolicyScope at MessageBody instead of manually updating it after every Pulumi refresh / up combination that is executed on each of the dev, stage & prod environments. Currently, the value always defaults to MessageAttributes even though it is set to MessageBody in IaC.
Thanks

Hi, is there any update on this? This is something I'm really needing to work, but my architecture cannot be optimized because this is missing in Pulumi.

Hi commenting for visibility, is there any update on this?

Hey everyone, do you have any update on this, please? It may look like a small issue but in fact it can block quite important architecture not only around alerting subscription to CW alarms. For us this is really a big blocker, thanks!

Hi all, I'm no longer assigned to the team responsible for prioritizing providers issues. @mikhailshilkov likely has a clearer idea for where this would fit in prioritization.
Thanks!

Is there any progress on this topic (pun intend ;) )? Hard to work around this one :/

We also have the same problem. We checked the pulumi code if we cannot fix but lost in GO 😅
Anyway, we temporarily publish message attributes till this is solve.

This appears to be the same issue tracked in https://github.com/hashicorp/terraform-provider-aws/issues/32072 upstream.

I believe that this was fixed upstream as part of the last major version bump, at least as originally described. I am unable to reproduce the bug with the provided repro on v6.22.0. Because the bug is sporadic, I tried to repro within a loop:
$ for i in $(seq 10); do
    pu up --yes --skip-preview;
    pu env run dev-sandbox -- aws sns get-subscription-attributes --subscription-arn $(pulumi stack output subscriptionArn) --no-paginate | jq .Attributes.FilterPolicyScope >> 6.22.0.txt;
    pu destroy --yes --skip-preview;
done

$ cat 6.22.0.txt
"MessageBody"
"MessageBody"
"MessageBody"
"MessageBody"
"MessageBody"
"MessageBody"
"MessageBody"
"MessageBody"
"MessageBody"
"MessageBody"

I was able to reproduce consistently on v5.41.0.
$ pu up --yes --skip-preview && pu env run dev-sandbox -- aws sns get-subscription-attributes --subscription-arn $(pulumi stack output subscriptionArn) --no-paginate | jq .Attributes.FilterPolicyScope >> 5.41.0.txt && pu destroy --yes --skip-preview

$ cat 5.41.0.text
"MessageAttributes"

I'm going to close as fixed. If you are able to reproduce the bug on pulumi-aws v6, please open a new issue with a repro.


Update to go 1.17

Fixes #203
Changes

:broom: Update to go 1.17

Hey Daisy @daisy-ycguo ,
Looks like there's an extra binary file (kperf) in the commit, please take a look, thx!

Thank you for review. I've removed the binary and rebased. Please review again.


hoobs 4.3.0 - no connection to ConBee II

Issue
Got an error since a few days ..
21.7.2023, 14:03:38HueHueWARNUNG<IP_ADDRESS>: request 1: connect ECONNREFUSED <IP_ADDRESS>:1881
21.7.2023, 14:03:38HueHueFEHLER<IP_ADDRESS>:1881: not found - retrying in 30s
RaspBee Config is working on http://phoscon.de/pwa - can use my to PowerSwitches (in Lights) .. but no one in HomeKit :-((
PlugIn Config (without :1881 is working):
{
"accessories": [],
"platforms": [
{
"platform": "Hue",
"name": "Hue",
"hosts": [
"<IP_ADDRESS>"
],
"brightnessAdjustment": 100,
"heartrate": 5,
"lowBattery": 25,
"timeout": 5,
"waitTimePut": 50,
"waitTimePutGroup": 1000,
"waitTimeResend": 300,
"waitTimeUpdate": 20,
"users": {
"001788FFFE2*****": "",
"00212EFFFF0**": "***"
},
"sensors": true,
"lights": true
}
]
}
21.7.2023, 14:02:54Hue starting
21.7.2023, 14:03:00HueFEHLERThe plugin "homebridge-hue" requires a Homebridge version of ^1.6.1 which does not satisfy the current Homebridge version of 1.6.0. You may need to update this plugin (or Homebridge) to a newer version. You may face unexpected issues or stability problems running this plugin.
21.7.2023, 14:03:08HueLoaded plugin 'homebridge-hue'
21.7.2023, 14:03:08HueLoading 1 platforms...
21.7.2023, 14:03:08HueHuehomebridge-hue v0.13.63, node v16.20.1, homebridge v1.6.0
21.7.2023, 14:03:08HueHueWARNUNGwarning: planned changes, see https://github.com/ebaauw/homebridge-hue/issues/1070
21.7.2023, 14:03:08HueHue192...47: request 1: GET /config
21.7.2023, 14:03:08HueHueWARNUNG<IP_ADDRESS>: request 1: connect ECONNREFUSED <IP_ADDRESS>:1881
21.7.2023, 14:03:08HueHueFEHLER<IP_ADDRESS>:1881: not found - retrying in 30s
21.7.2023, 14:03:37HueConfiguration change
21.7.2023, 14:03:37hue stopping
21.7.2023, 14:03:38HueHue192...47: request 1: GET /config
21.7.2023, 14:03:38HueHueWARNUNG<IP_ADDRESS>: request 1: connect ECONNREFUSED <IP_ADDRESS>:1881
21.7.2023, 14:03:38HueHueFEHLER<IP_ADDRESS>:1881: not found - retrying in 30s
21.7.2023, 14:03:39HueHuegoodbye
21.7.2023, 14:03:42Hue starting
21.7.2023, 14:03:47HueFEHLERThe plugin "homebridge-hue" requires a Homebridge version of ^1.6.1 which does not satisfy the current Homebridge version of 1.6.0. You may need to update this plugin (or Homebridge) to a newer version. You may face unexpected issues or stability problems running this plugin.
21.7.2023, 14:03:53HueLoaded plugin 'homebridge-hue'
21.7.2023, 14:03:53HueLoading 1 platforms...
21.7.2023, 14:03:53HueHuehomebridge-hue v0.13.63, node v16.20.1, homebridge v1.6.0
21.7.2023, 14:03:53HueHueWARNUNGwarning: planned changes, see https://github.com/ebaauw/homebridge-hue/issues/1070
21.7.2023, 14:03:53HueHueTheHue: Signify Netherlands B.V. BSB002 bridge v1958159030, api v1.58.0
21.7.2023, 14:03:55HueHueTheHue: 23 accessories
21.7.2023, 14:03:55HueHuemasked debug info dumped to /var/lib/hoobs/hue/homebridge-hue.json.gz
21.7.2023, 14:03:55HueHueTheHue: 2 services
21.7.2023, 14:03:55HueBridge is running on port 51846.
21.7.2023, 14:03:55HueHueTheHue: event stream connected to https://<IP_ADDRESS>/eventstream/clip/v2

I don't know HOOBS and strongly recommend to use a standard Homebridge installation.
Homebridge Hue doesn't connect to a ConBee II, see the README and deCONZ for Dummies.
From your config.json, it seems like you have both a Hue bridge and a deCONZ gateway, but only the Hue bridge is mentioned under hosts.

21.7.2023, 14:03:38HueHueWARNUNG<IP_ADDRESS>: request 1: connect ECONNREFUSED <IP_ADDRESS>:1881

I don't understand what's happening here, in particular where the port 1881 comes from.  After the restart, Homebridge Hue does find and connect to the Hue bridge.

@ebaauw how could I add the RaspBee II Conbee .. via host ??

@ebaauw
25.7.2023, 17:07:38HueHueWARNUNG<IP_ADDRESS>: request 1: invalid response
25.7.2023, 17:07:38HueHueFEHLER<IP_ADDRESS>: not found - retrying in 30s
..106 IP from the Phoscon RaspBee II

@ebaauw with an older version of the PlugIn it works great with the RaspBee II .. and I would like to use only the ConBee devices without the HueBridge

@ebaauw I´ve "fixed" it with your new decent-plugin ..


[Tx Builder] Change method selector label

Description
When working with smart contracts on the Tx Builder app the label used to choose between the different methods available for a contract is shown as 'Select Contract' instead of 'Select Method'
Steps to reproduce

Go to this version of the Tx builder app https://github.com/gnosis/safe-react-apps/issues/320
Use this testing contract 0x49d4450977E2c95362C13D3a31a09311E0Ea26A6
Check the label referencing the contract methods.

Expected result
Label referencing the method. Something like 'Select Method'
Obtained result

I can confirm that the label is the expected one now. Thank you for the quick fix ;)


Adoption Applications: Add pagination.

We added pagination to /staff/pets and now we should add it to /staff/adoption_application_reviews.
I think that 5 per page would be good? Open to other ideas here as well.
Refer to this PR for how it was done on staff pet index: https://github.com/rubyforgood/pet-rescue/pull/649
Acceptance criteria:

Adoption application review page shows paginated cards, 5 per page
No need to add to seed files as we have enough for more than one page already
No need for test

@kasugaijin I would love to work on this issue

@atbalaji all yours! No rush! Thank you

/staff/adoption_application_reviews in this page i am getting errors due to existence of adopter_foster_accounts with no adopter_foster_profile in pre populated data. I want to know your thoughts on handling this?

_/staff/adoption_application_reviews in this page i am getting errors due to existence of adopter_foster_accounts with no adopter_foster_profile in pre populated data. I want to know your thoughts on handling this?

You are working off the latest main branch, right?

Can we close this issue?


Future Broken Process While Running -- Docker 21.0.1

What happened?
Running with command:
fmriprep-docker bidsdatafolder folders/derivatives participant --participant-label 102 --use-aroma --fs-license-file pathtolicense.txt
Just updated with 21.0.1 because I was getting errors with the smooth node for ICA Aroma. Was hoping this would fix it, but am now getting new errors during the middle of it:

220127-22:00:46,986 nipype.workflow INFO:
[Node] Finished "fixhdr_skullstrip2", elapsed time 0.259082s.
220127-22:00:48,702 nipype.workflow INFO:
[Node] Setting-up "fmriprep_wf.single_subject_102_wf.func_preproc_ses_03_task_rest_wf.bold_std_trans_wf.bold_reference_wf.enhance_and_skullstrip_bold_wf.combine_masks" in "/tmp/work/fmriprep_wf/single_subject_102_wf/func_preproc_ses_03_task_rest_wf/bold_std_trans_wf/bold_reference_wf/enhance_and_skullstrip_bold_wf/_std_target_MNI152NLin2009cAsym.resnative/combine_masks".
exception calling callback for <Future at 0x7f4dd8237b70 state=finished raised BrokenProcessPool>
Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks
callback(self)
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 159, in _async_callback
result = args.result()
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 425, in result
return self.__get_result()
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
exception calling callback for <Future at 0x7f4dd808a208 state=finished raised BrokenProcessPool>
Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks
callback(self)
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 159, in _async_callback
result = args.result()
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 425, in result
return self.__get_result()
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks
callback(self)
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 159, in _async_callback
result = args.result()
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 425, in result
return self.__get_result()
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
exception calling callback for <Future at 0x7f4dd8171a58 state=finished raised BrokenProcessPool>
Traceback (most recent call last):
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks
callback(self)
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 159, in _async_callback
result = args.result()
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 425, in result
return self.__get_result()
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks
callback(self)
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 159, in _async_callback
result = args.result()
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 425, in result
return self.__get_result()
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks
callback(self)
File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 159, in _async_callback
result = args.result()
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 425, in result
return self.__get_result()
File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
raise self._exception
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.

What command did you use?
fmriprep-docker bidsdatafolder folders/derivatives participant --participant-label 102 --use-aroma --fs-license-file pathtolicense.txt

What version of fMRIPrep are you running?
21.0.1
How are you running fMRIPrep?
Docker
Is your data BIDS valid?
Yes
Are you reusing any previously computed results?
No
Please copy and paste any relevant log output.
220127-22:00:46,986 nipype.workflow INFO:
	 [Node] Finished "fixhdr_skullstrip2", elapsed time 0.259082s.
220127-22:00:48,702 nipype.workflow INFO:
	 [Node] Setting-up "fmriprep_wf.single_subject_102_wf.func_preproc_ses_03_task_rest_wf.bold_std_trans_wf.bold_reference_wf.enhance_and_skullstrip_bold_wf.combine_masks" in "/tmp/work/fmriprep_wf/single_subject_102_wf/func_preproc_ses_03_task_rest_wf/bold_std_trans_wf/bold_reference_wf/enhance_and_skullstrip_bold_wf/_std_target_MNI152NLin2009cAsym.resnative/combine_masks".
exception calling callback for <Future at 0x7f4dd8237b70 state=finished raised BrokenProcessPool>
Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks
    callback(self)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 159, in _async_callback
    result = args.result()
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 425, in result
    return self.__get_result()
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
exception calling callback for <Future at 0x7f4dd808a208 state=finished raised BrokenProcessPool>
Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks
    callback(self)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 159, in _async_callback
    result = args.result()
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 425, in result
    return self.__get_result()
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks
    callback(self)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 159, in _async_callback
    result = args.result()
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 425, in result
    return self.__get_result()
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.
exception calling callback for <Future at 0x7f4dd8171a58 state=finished raised BrokenProcessPool>
Traceback (most recent call last):
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks
    callback(self)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 159, in _async_callback
    result = args.result()
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 425, in result
    return self.__get_result()
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks
    callback(self)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 159, in _async_callback
    result = args.result()
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 425, in result
    return self.__get_result()
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 324, in _invoke_callbacks
    callback(self)
  File "/usr/local/miniconda/lib/python3.7/site-packages/nipype/pipeline/plugins/multiproc.py", line 159, in _async_callback
    result = args.result()
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 425, in result
    return self.__get_result()
  File "/usr/local/miniconda/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
    raise self._exception
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.

Additional information / screenshots
No response

This is most likely a memory error. How much memory and how many CPU cores are available to the process?

9GB, I can allocate more. Also 8 CPUs and swap 1 GB. Is maybe 12 enough? Computer has 16 total I believe. Not sure given that what the optimal number might be.

Would 24gb be possible? AROMA is a memory hog.

Ah, OK, that is good to know. I wish, but I think my computer (Mac) is 16GB of memory. Maybe I'll have to do without aroma then.
On Jan 27 2022, at 4:25 pm, Chris Markiewicz @.***> wrote:

Would 24gb be possible? AROMA is a memory hog.
—
Reply to this email directly, view it on GitHub (https://github.com/nipreps/fmriprep/issues/2700#issuecomment-1023734164), or unsubscribe (https://github.com/notifications/unsubscribe-auth/AOTL6K63D77FJ6DAZI26CYDUYHH7PANCNFSM5M7IUE2A).
Triage notifications on the go with GitHub Mobile for iOS (https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675) or Android (https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub).
You are receiving this because you authored the thread.

You can try 16GB, and setting --n-cpus 1. That will keep multiple processes from competing for limited memory. If you reuse the working directory, then it should start at AROMA.

I will give that a try! I assume that will significantly increase the processing time? But happy to do it if it will make it work.
By reuse the working directory, I assume you mean just don't use a different working directory than what I had already been using?
On Jan 27 2022, at 4:39 pm, Chris Markiewicz @.***> wrote:

You can try 16GB, and setting --n-cpus 1. That will keep multiple processes from competing for limited memory. If you reuse the working directory, then it should start at AROMA.
—
Reply to this email directly, view it on GitHub (https://github.com/nipreps/fmriprep/issues/2700#issuecomment-1023741690), or unsubscribe (https://github.com/notifications/unsubscribe-auth/AOTL6K6AKLK6KV6IXIBTPE3UYHJSRANCNFSM5M7IUE2A).
Triage notifications on the go with GitHub Mobile for iOS (https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675) or Android (https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub).
You are receiving this because you authored the thread.

Yes, though you can also kill the job after AROMA is done and resume with more cores.

Thank you so much for the help, quick responses, and a way to get it to work.
I tried with --n-cpus 1, and I appreciate this should work, but found it was taking forever for it to even begin aroma (choosing instead to rerun all previous processes except for recon again). I assume I must be doing some aspect of the command wrong if it is not speeding right to the AROMA section like you said.
I am now trying to --n-cpus 4, and it is still taking forever to reach aroma, but hopefully that will work. I am hoping to find some method to optimize between speed and memory.
Otherwise I will keep chugging along with a lower --n-cpus and just keep it running.
Thanks again!


[Issue] Power bank access issue

Dear EnderIO developing-team,
I tried your newest version of EnderIO (1.7.10-<IP_ADDRESS>0_beta) and got everytime I try to open (left-click) a "Power Bank" a crash. To be exact: 2 crash-reports:

Server: http://pastebin.com/ZMgDW6is
Client: http://pastebin.com/v6U2zwhe

I play on a SSP-world and I have to say I'm not sure if this crash is the fault of this mod, because nobody else seem to have the same issue.
thank you for all help,
access_denied

Try updating EnderCore

Hello @tterrag1098
Thank you for your help but,
I use already the newest version (1.7.10-<IP_ADDRESS>_beta) of EnderCore is or was there an update which I missed? (Like the Ender IO update which is unavailable now like it seems)
access_denied

Yeah, I was just about to post an issue with a server-side crash upon starting my SSP world, but looks like it was just fixed in 411_beta. Excellent work, @tterrag1098 and other devs!

@zzApotheosis You sure? I'm still having that issue in version <IP_ADDRESS>1_beta (EnderCore version <IP_ADDRESS>_beta)

@zzApotheosis @SnowShock35,
I can confirm the main problem is still existing. Additional @zzApotheosis my issue has nothing to do with a crash upon startup. It is a crash by right-clicking a power bank. (I tried now different EnderIO blocks this crash happens only by power banks at it seems)
access_denied

Yes I too am running the latest beta.
EnderIO-1.7.10-<IP_ADDRESS>1_beta
EnderCore-1.7.10-<IP_ADDRESS>_beta
I cheated in a fully filled up vibrant capacitor bank via NEI, attempted to right click it and it instantly crashed both server and client.
Server crash report here http://hastebin.com/nayefuxumu.1c
Clicent crash report here http://hastebin.com/nisitibico.coffee

I believe the error is occurring in EnderCore, not 100% sure though :confused:

Fixed in 412


Package updates

Rationale
NPM package updates across platform modules.
Changes

Package updates for assay, core, experiment, issues, list, and study modules.
Ran npm audit fix across all modules.
Improve error handling in database authentication configuration app. Replace usages of alert and display errors to the user.
Fix jest test no longer allowing mock of window.location.assign.

Adding @RosalineP as a heads up to these auth config component changes.


Add initial headers_sync_state corpus

Sorry, I think I missed this. It should be rfm, right?

No I think I pushed some updates to the target so this corpus is likely invalid. Will update this week.


YAML splitting flow-object with path as value fails to round-trip from joining

Hey again!
I think I found a bug in the YAML splitting functionality or I'm doing something against the YAML standard that just happens to work one-way.
Given the following:
- copy:
    dest: /etc/default/locale
    content: "LANG=en_US.UTF-8\n"

Joining on copy: works fine. You get:
- copy: {dest: /etc/default/locale, content: "LANG=en_US.UTF-8\n"}

However splitting back ends with:
- copy:
    dest: /etc/default/locale, content: "LANG=en_US.UTF-8\n"

If you quote the file path as shown below, it works fine.
- copy: {dest: "/etc/default/locale", content: "LANG=en_US.UTF-8\n"}

Splits into:
- copy:
    dest: "/etc/default/locale"
    content: "LANG=en_US.UTF-8\n"

I'm not sure what the YAML spec says about barewords, but I figured you know for sure whether it's a bug or working as intended.
Thanks in advance!

Yes, dest: /path should work just fine in YAML. The reason it was broken was because I've been reusing the parser for JSON items, except it was based on javascript, so it was jumping over / characters as starting and ending points of /regexes/.
Anyway, I think this issue should be fixed now, let me know if you can confirm it on your side.

Works brilliantly. Thanks again and next time you're in Estonia, let me know and lunch is on me!

Hahah, awesome, I'll definitely schedule a visit some day :D


Any paths inside a pack which contain app are added to autoload paths

Hey all! Love the idea of this gem.
Ive been trying it out but it seems like any pack which uses automatic_pack_namespace will add any paths containing app/ in them to autoload, due to the glob https://github.com/gap777/automatic_namespaces/blob/main/lib/automatic_namespaces/autoloader.rb#L26
Just wondering if this is intentional?
A typical pack setup might include a test/ or spec/ directory which then might contain a app directory nested under it, eg test/app/models/foo_test.rb (since the test file is likely to start with require 'test_helper' this will then blow up at eager load time for example).
I assume the work around is to use the directory exclusions but it seems like the glob is pulling in too much.
Thanks for any thoughts!

@stevegeek If you want to tighten up the glob pattern, I'm not opposed to a PR.