Running multiple inference servers fails

Referencing #9, I thought I had worked around this, and in practice this works fine to classify images one at a time with multiple models. But when I deployed this in my application where both models are called multiple times per second, I received the following error:
2017/04/10 19:30:13 Initializing Caffe classifiers
2017/04/10 19:30:14 Adding REST endpoint /api/classify
2017/04/10 19:30:14 Starting server listening on :8000
F0410 19:30:37.227159     8 syncedmem.cpp:56] Check failed: error == cudaSuccess (2 vs. 0)  out of memory
*** Check failure stack trace: ***
    @     0x7f81341c35cd  google::LogMessage::Fail()
    @     0x7f81341c5433  google::LogMessage::SendToLog()
    @     0x7f81341c315b  google::LogMessage::Flush()
    @     0x7f81341c5e1e  google::LogMessageFatal::~LogMessageFatal()
    @     0x7f81346d5010  caffe::SyncedMemory::to_gpu()
    @     0x7f81346d3fd9  caffe::SyncedMemory::mutable_gpu_data()
    @     0x7f81346f02f2  caffe::Blob<>::mutable_gpu_data()
    @     0x7f8134714f66  caffe::PoolingLayer<>::Forward_gpu()
    @     0x7f81346da7c2  caffe::Net<>::ForwardFromTo()
    @     0x7f81346da916  caffe::Net<>::Forward()
    @           0x5e8884  Classifier::Predict()
    @           0x5e8af6  _ZN10Classifier8ClassifyB5cxx11ERKN2cv3MatEi
    @           0x5e925f  classifier_classify
    @           0x5e73f3  _cgo_53771bef0329_C2func_classifier_classify
    @           0x45eba0  (unknown)
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x80 addr=0x0 pc=0x7f812ff14196]

runtime stack:
runtime.throw(0x678782, 0x2a)
	/usr/local/go/src/runtime/panic.go:566 +0x95
runtime.sigpanic()
	/usr/local/go/src/runtime/sigpanic_unix.go:12 +0x2cc

goroutine 6 [syscall, locked to thread]:
runtime.cgocall(0x5e73c0, 0xc42003fc18, 0x0)
	/usr/local/go/src/runtime/cgocall.go:131 +0x110 fp=0xc42003fbc8 sp=0xc42003fb88
main._C2func_classifier_classify(0x1a194860, 0xc420134000, 0x179d2, 0x0, 0x0, 0x0)
	inference/_obj/_cgo_gotypes.go:76 +0x69 fp=0xc42003fc18 sp=0xc42003fbc8
main.classify(0x972340, 0xc420067860, 0xc4200c62d0)
	/go/src/inference/main.go:33 +0x1da fp=0xc42003fc88 sp=0xc42003fc18
net/http.HandlerFunc.ServeHTTP(0x68da20, 0x972340, 0xc420067860, 0xc4200c62d0)
	/usr/local/go/src/net/http/server.go:1726 +0x44 fp=0xc42003fcb0 sp=0xc42003fc88
net/http.(*ServeMux).ServeHTTP(0x984d20, 0x972340, 0xc420067860, 0xc4200c62d0)
	/usr/local/go/src/net/http/server.go:2022 +0x7f fp=0xc42003fcf0 sp=0xc42003fcb0
net/http.serverHandler.ServeHTTP(0xc42007e280, 0x972340, 0xc420067860, 0xc4200c62d0)
	/usr/local/go/src/net/http/server.go:2202 +0x7d fp=0xc42003fd38 sp=0xc42003fcf0
net/http.(*conn).serve(0xc42007e400, 0x9727c0, 0xc420016740)
	/usr/local/go/src/net/http/server.go:1579 +0x4b7 fp=0xc42003ff98 sp=0xc42003fd38
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc42003ffa0 sp=0xc42003ff98
created by net/http.(*Server).Serve
	/usr/local/go/src/net/http/server.go:2293 +0x44d

goroutine 1 [IO wait]:
net.runtime_pollWait(0x7f8134ce9f28, 0x72, 0x0)
	/usr/local/go/src/runtime/netpoll.go:160 +0x59
net.(*pollDesc).wait(0xc42005a0d0, 0x72, 0xc42004fbd8, 0xc420014100)
	/usr/local/go/src/net/fd_poll_runtime.go:73 +0x38
net.(*pollDesc).waitRead(0xc42005a0d0, 0x970140, 0xc420014100)
	/usr/local/go/src/net/fd_poll_runtime.go:78 +0x34
net.(*netFD).accept(0xc42005a070, 0x0, 0x96ee00, 0xc4200c28c0)
	/usr/local/go/src/net/fd_unix.go:419 +0x238
net.(*TCPListener).accept(0xc42002e030, 0x29e8d60800, 0x0, 0x0)
	/usr/local/go/src/net/tcpsock_posix.go:132 +0x2e
net.(*TCPListener).AcceptTCP(0xc42002e030, 0xc42004fd00, 0xc42004fd08, 0xc42004fcf8)
	/usr/local/go/src/net/tcpsock.go:209 +0x49
net/http.tcpKeepAliveListener.Accept(0xc42002e030, 0x68dc08, 0xc42007e400, 0x972880, 0xc420018f30)
	/usr/local/go/src/net/http/server.go:2608 +0x2f
net/http.(*Server).Serve(0xc42007e280, 0x972440, 0xc42002e030, 0x0, 0x0)
	/usr/local/go/src/net/http/server.go:2273 +0x1ce
net/http.(*Server).ListenAndServe(0xc42007e280, 0xc42007e280, 0x0)
	/usr/local/go/src/net/http/server.go:2219 +0xb4
net/http.ListenAndServe(0x66de6b, 0x5, 0x0, 0x0, 0xc420015010, 0x0)
	/usr/local/go/src/net/http/server.go:2351 +0xa0
main.main()
	/go/src/inference/main.go:60 +0x4a0

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:2086 +0x1

The images that I'm passing to the listener are pretty small, so I don't know how I could run out of memory.
Any help on this would be greatly appreciated.

Which GPU are you using? And which neural network model?

Both models are GoogleNet but using different training sets, and I have a single mobile GPU, NVIDIA Quadro K1100M (384 cores, 2GB memory).
Are you thinking that the models themselves are too big?

Yes, that's probably the case. Launch each model separately, send a few images in (to be sure everything is initialized) then check the memory usage of the process using nvidia-smi on the host.

Here is the output of nvidia-smi right before I receive the error message from the 2nd deployed model:
Mon Apr 10 16:17:13 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 361.93.02              Driver Version: 361.93.02                 |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro K1100M       On   | 0000:01:00.0      On |                  N/A |
| N/A   51C    P0    N/A /  N/A |   1996MiB /  1998MiB |      3%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0      1606    G   /usr/lib/xorg/Xorg                             137MiB |
|    0      1611    C   /usr/bin/python                                 10MiB |
|    0      2622    G   compiz                                         108MiB |
|    0      7072    G   ...s-passed-by-fd --v8-snapshot-passed-by-fd    69MiB |
|    0      9622    C   inference                                      862MiB |
|    0     21166    C   inference                                      802MiB |
+-----------------------------------------------------------------------------+

So it looks like it is in fact getting very close to the limit. Would you recommend training a more lightweight model?

Ouch. Yes you're very very close to the limit.
I think GoogleNet is fine, but you either need a GPU with more memory, or kill your X server to free some space.


BUG/WIP: fix pivot with nan indexes

closes #7466

[ ] vbench
[ ] make sure there isn't a better way to do this

I think #9292 (and #9061) fixed all of these


Add an initial setup to @sourcegraph/cody-web lib build

Part of https://github.com/sourcegraph/sourcegraph/issues/62448
See https://github.com/sourcegraph/sourcegraph/pull/62792 for more context
Context
We want to reuse the new Cody UI chat and agent API in the sourcegraph web. The first step was done here (where Quinn did the initial research on using code-agent in a web environment through web-worker).
Another important fact is that Cody agent and Cody chat webview from VSCode packages use a few Nodejs APIs (mostly file system calls). Obviously, these APIs are not supported in a browser environment, so at the moment, we replace imports to these APIs with our mocks. This allows us to still build most of the UI for the web but not crush it in browser runtime.
Current state
This PR just prepares a web package to be reusable by sourcegraph/web.
Problems and find outs

There is a question about which side (consumer or package itself) should compile the @sourcegraph/cody-web package. Should we just publish it in NPM as a plain (original) code, or should @sourcegraph/cody-web provide transpiled code?

If we publish the original code, that means that the consumer (@sourcegraph/web should know about all possible shim replacements, but neither Vite nor Esbuild allows dynamic aliases on package paths, meaning this won't work

alias: { `vscode`<EMAIL_ADDRESS>}

But we need to shim vscode API since without it, cody-agent is becoming unusable outside of the vscode environment.
Note: esbuild probably can do this with a custom plugin (we did similar thing for resolving web workers in node_modules package resolution here)

So, this being said, we can try to bundle our code in Cody's repo and publish transpiled code. However, there is a problem with this, too. Neither Vite nor Esbuild can handle web workers when it comes to publishing lib with web-worker in it; they can create a separate entry for them if they see a new Worker() constructor, but they won't include them automatically in the final bundle if we use a library package (which our code-web package is).

But even if we handle transpiled web worker on the consumer level manually, shims are completely static. This means that the bundler just injects shim code in the entry. Since web worker is a separate entry, this means that shim will be injected twice as a copy (one in the main thread and one in web worker). We can't dynamically communicate between these two shims.

So comment where I left a suggestion about possible API for file system shim can't be implemented this way (original comment) (basically main thread values won't affect web worker values)

Suggestions
I don't know if it's realistic or not but probably "shim dependencies management" isn't flexible enough sometimes, maybe we could expose important APIs like file systems as runtime dependencies something like
await newAgentClient({
   name: 'cody-server',
   version: '0.1.0',
   workspaceRootUri: 'file:///tmp/cody-server',
   fileSystemSource: new FileSystem()
})

this would mean that we could override this API in web without build-time replacements
If you want to experiment with web-workers and shims replacements, here is a minimal demo version with two packages one of them (lib package) includes web worker logic https://github.com/vovakulikov/web-worker-sandbox
Test plan

Check that all other packages work as they should be on the high-level

@dominiccooney I was looking into supporting different auth options for Cody's agent because while SG instance auth token is a good fit for CLI and IDE clients, it's not a way when we're running agents on the web.
The good news is that since all requests will go from the same domain and will share the same headers with cookies, the standard auth flow should go fine (if I'm not missing anything about Cody network requests, let me know If I am). My idea here is to pass these headers to web-worker where we create code agent and then carry these headers to the place where actual requests happen.
So my question to you — is there a single API client where we do gql request? I've seen that we do have a singleton instance but it seems that we don't pass token or any other configuration trhough constructor there (and we also create a new gql client instance in auth class, where we put a configuration with tokens).
Maybe you know how the client gets the most recent config (is this the place https://sourcegraph.sourcegraph.com/github.com/sourcegraph/cody@030f222bb6e07b7d78059e102e63adb1ff7cf95e/-/blob/vscode/src/main.ts?L189 ?)
Also I'm very open for any other ideas on how to make code agent auth simpler here. I was thinking about providing gql client to the code agent from the consumer (so different consumer will configure their own implementations of client themself) but it seems like a big refactoring work. I'd be glad to hear any other thoughts on this since so far I don't like much any of my ideas on this.

I rebased the most recent changes from the main here https://github.com/sourcegraph/cody/pull/4605 (keep this PR just in case I messed up with rebase conflict resolving), all further work will be done here


perf: pick cache size coprime to pointer alignment

Expression pointers are aligned to at least 8 bytes, so ptrAddrUnsafe (e : Expr) % 8192 can only use 1024 out of the 8192 cache entries.  Experimental evaluation suggests that most expressions pointers are congruent to 24 modulo 32, so the effective cache utilization is likely far below the 1024 entries.
This PR changes the cache size to 8192-1, which is coprime to any power-of-two alignment and should avoid this unfortunate alignment of alignments.

!bench

Would it be unreasonable for me to hope that this will resolve the benchmark jumps as well? 😄

!bench

!bench

!bench
:( ?

!bench

!bench


Bring Vue component APIs to Vue.observables

What problem does this feature solve?
While Vue.observables are a great way to share states (and their statically inferrable types) across components, they fall short in their lack of other features that would otherwise make them comparable to using Vuex or a new Vue bus. For example, computed properties are a really useful feature that are available in Vue instances and Vuex stores (getters), but if you want to use them with a Vue.observable, you have to construct the computed property via either of the aforementioned alternatives, instead of being able to conveniently access it from the observable itself, like you would any other property of the observable. Other features, like watchers and methods would also really come in handy
What does the proposed API look like?
const counter = Vue.observable({ count: 0 }, {
  computed: {
    square: observable => observable.count ** 2,
  },
  watch: {
    square: newVal => console.log(`the square is ${newVal}`)
  }
})

This is pretty much the function api RFC and for Vue 2 you can use https://github.com/vuejs/vue-function-api


[FR] Bulk creation of stock locations

Problem
Creating storage locations for tonnes of stock shelves with tones of storage boxes is a hard and frustrating job, as the names only differ in incrementing numbers.
Suggested solution
The new location dialog could have a checkbox for bulk creation with some kind of templating support in the name field to define incrementing series like numbers, letters, capital letter, roman numbers, ....
For example:
Name: Box {1-42,50-81+90,A-F,b} will generate an amount of 74 boxes named:

Box 1, Box 2, Box 3, ..., Box 42
Box 50, Box 51, Box 52, ..., Box 81
Box 90
Box A, ..., Box F
Box b

Describe alternatives you've considered
I can also think of a little custom script which loops over all boxes and makes requests to the inventree API, but this has some downsides:

you need programming knowledge -> not applicable for non-programmers
you need a computer with python
high network traffic if you want to generate locations for a very big shelve.

Examples of other systems
Do you want to develop this?
I've never used Django, and don't know where to find what file. To make a decision I would need some starting points where I can find the most relevant files to implement this.

@luwol03 this seems very specific to your application and is bespoke enough that I would suggest using the existing python API.
Adding this feature to the core UI would be:

A lot of work
Complex to test and validate
Confusing for most users
Seldom used by most users

What we currently do have is the option to keep a dialog open after creating a new part (see below) which allows for quicker data entry without any custom implementation:

This could be extended to locations / categories / etc with minimal effort, and would at least be an increase to efficiency of data entry.
However anything super custom like this is definitely a good use for the python bindings.

I read a bit more about the plugins and think that it is possible to implement that as a custom plugin (not in the original proposed way). My thoughts are adding a custom panel to the stock location with a form for the bulk create template. Do you think this is possible?

@luwol03 should work easily.
If you are styling the frontend my suggestion would be to follow the recommendations for Bootstrap 5, which is the framework we use.

@SchrodingersGat What would you do if you should add a new storage room with many components to inventree (from scratch - database is empty). The room contains 6 spinning towers with 720 boxes each. Would you do that by hand or write a little script which create the storage places? And for the components? Write a script which fetches the relevant infos from the suppliers page?

@luwol03 I would definitely write a script to do that.
Maybe as a starting point, have a look at some of the scripts I wrote to generate dummy data for the demo dataset:
https://github.com/inventree/demo-dataset/blob/main/scripts/pin_headers.py

@SchrodingersGat didn't you feel, this is a very bad way, as I guess the most people use inventree for a storage room that is bigger than 10 boxes and mostly stores parts that are obtained from some kind of online shop?
This was the intention how to make a better user experience with inventree for this case. Lets make an example to explain my idea:
Example
Lets say you have a new room with 6 spinning towers with 720 boxes each. You buy components from digikey. So you actually have the digikey part numbers attached to each little plastic bag where the components are shipped in.
Idea
Storage Locations
Because you know that your storage room as a structure you can first create all available boxes as storage locations in inventree. An even further idea is to have some kind of storage templates for spinning towers,shelves,sorting boxes,... so you can easily say hey, create a spinning tower in this location and inventree will generate 720 locations grouped by 12 sections (one spinning tower consist of 3 layers and 4 shelves each level which contains 60 boxes) of the spinning tower.
Parts
Now all locations are created we can start adding the parts received from digikey. We say Create part from supplier. Then we can select the supplier Digikey and we scan/input the digikey part number. Inventree then uses this number and the digikey API (if they have) or web scrapping to retrieve some data (name, parameters, data sheets, ...) about the part, which will then be used to create a new part and directly also a supplier part linked to it after user confirmation. The confirmation could also contain some check boxes to exclude something.
I Imagine this as a new type of PluginMixin. Some kind of PartImportMixin which can then be developed for several suppliers e.g. (Mouser, Digikey, Amazon, Reichelt, ...).
I guess you will tell me write a script and run that instead. But I just wanted to say, don't forget the inventree users who don't have the knowledge to script something to automate that tasks. Or is that the wrong user group which is not addressed by inventree?

hi there @luwol03
I think you are mixing feature requests here. This sounds more like a whole user story than a single request.
I will try to split them into smaller parts for easier discussion here:

The storage location part is very customizable and requires pattern match and so on. As there are a lot of different storage setups this will require great flexibility in the ui and api to make users happy.
As we provide a python library I feel like this would be a prime example to write a 10-15 line script that fits you narrow user-story with a spinning tower. The docs contain this example that contains all InvenTree parts that you need for this.
There is already a FR for integration of suppliers with a new PluginMixin - this is even on the roadmap, see #3261 for details.

On a more general note: This project is basically run by 2.5 dudes in their free time between work, family and other life commitments. We have 100+ open wishes so if you want to see something please submit a PR.
While I would love to have a fully ui based solution for everything this is a lot of work with more pressing issues existing around pricing, importers, reporting and security. Someone who can self-host an app probably is also able to use either python or a REST-Api for simple automation. We even provide examples of how to do it in python in the docs.
I would love to give you pointers where to start with developing this but that is a complex thing to develop - the best thing would probably be to write a plugin. That would not require to dive deeply into frontend, backend and our api layer as everything could be done with statically rendered HTML/forms and python. Django provides a great starter tutorial btw.
I hope you understand.

Thank you for your answer. I totally understand that and appreciate that work. I know that maintaining and actively developing OSS is not that easy and very time consuming. I just wanted to generally ask what the scope of inventree will be.
Sorry for Mixing those two FRs, just wanted to share my thoughts about a complete digitalization process of a storage room.
Ok. So for now the best way is to write some own scripts (which will work fine for me) for all that cases. And you're right. If one get inventree setup, one can also learn some basic Python scripting to automate some basic tasks.
And thank you for the Django resource you provided. I don't have much experience with Django as I mainly Code with nodejs and express/nestjs but I also have some knowledge about Python.

@luwol03 this is certainly would be interesting in a long-term perspective. But for that we really need a bigger team of contributors (which we might have long-term).
I am thinking of changing the bug and FR templates to be more descriptive and maybe add a user story template - that might help with keeping the FRs cleaner.
I can only suggest Django. I learned about it 5 years ago and through all the cool new things out there I keep coming back. The power of pythons ecosystem and the possible mixture of oop and functional patterns is just great for fast(for the programmer) and reliable coding.

Looking deeper into this I have two questions:

Is it possible that one plugin can implement multiple mixins? This would be useful for e.g. a custom panel that needs to implement an action which is handled by the server.
How can I create StockLocations from a plugin?

@luwol03 I only recommend working on plugins after you worked through the getting started tutorial of Django. Without a solid understanding of the models framework you will not get far.
To answer your questions:

Yes
If you are writing a plugin you can import the model and create the object with the create() method. You could also import the inventree-python api and use that if you like it more.


[SP-2950] Backport of BISERVER-12713 - L10N - Error messages are not translated to different languages (6.1 Suite)

Backport of #2973

Build Completed
:white_check_mark: This pull request has passed all validations.
Build Commands
ant -Dtestreports.dir=bin/reports/unit-test -f core/build.xml clean-all resolve jacoco && ant -Dtestreports.dir=bin/reports/integration-test -f core/build.xml jacoco-integration checkstyle publish-local

Cleanup Commands
rm -r ~/.ivy2/local || echo no publish local to remove

Changed files
  core/src/org/pentaho/di/core/database/DatabaseMeta.java
  core/src/org/pentaho/di/core/database/messages/messages_en_US.properties

Unit test coverage change
These statistics help you identify how your changes have affected the coverage of the following files. If a file is not in this list, then its coverage was not affected by your changes. To get some help interpreting these metrics, please refer to Jacoco's documentation.
org.pentaho.di.core.database.DatabaseMeta

Instruction Change: -.13%:small_red_triangle_down:


TestLauncher cannot launch tests from included builds when CC is enabled

Steps to reproduce:

Enable testlauncher support in IntelliJ
Import the gradle/gradle repository
Try to run GradleDistributionInstallTest

Fixed via #26243


Are we stopping support for spark <2.4.4 with hudi 0.8.0?

The method "translateSqlOptions" from DataSourceOptions is breaking for spark 2.4.0.
Was unable to find any documentation for spark version supported for 0.8.0-SNAPSHOT. Just wanted to confirm if Hudi is stopping support for spark versions <2.4.4.

cc @garyli1019 as well.
No we are continuing to support spark 2.x AFAIK

Hi @aditiwari01 , would you add more context here? Do you mean you are not able to compile Hudi with spark 2.4.0?

@garyli1019  Yes. More specifically for the mentioned method, we are using a constant "SparkDataSourceUtils.PARTITIONING_COLUMNS_KEY".
This was introduced in spark v2.4.2. Hence for versions <2.4.2 the compilation fails with object not found.
For reference:
spark v2.4.1 (https://github.com/apache/spark/blob/v2.4.1/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/DataSourceUtils.scala)  PARTITIONING_COLUMNS_KEY not present.
spark v2.4.2 (https://github.com/apache/spark/blob/v2.4.2/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/DataSourceUtils.scala) PARTITIONING_COLUMNS_KEY is present.

thanks a lot for raising this @aditiwari01 . we are looking into it.
https://issues.apache.org/jira/browse/HUDI-1745

@nsivabalan this would be a release blocker and we need to fix the RC if spark 2.x has issues. agree?

@aditiwari01 This is a bit of my bad. Actually we have always required Spark 2.4 for a while now (we need spark-avro from there). So as long as Spark 2.4 works and Spark 3.x works we are good.
Sorry for the false alarms

@vinothchandar : guess issue is w/ spark2.4.1. looks like the api is available from 2.4.2 and not available in 2.4.1.

Yes. I faced the issue with 2.4.0 version itself.

@aditiwari01 : don't think we are looking to support spark versions < 2.4.3. Its always been the case, and its a documentation issue. we will fix it.


[Bug]: Unable to 'apply current' on Chrome: Failed to execute 'drawImage' on 'CanvasRenderingContext2D'

What happened?
There appears to be a bug with the recent "+ Button Updates Prompt" update under Chrome.
Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The provided value is not of type '(CSSImageValue or HTMLCanvasElement or HTMLImageElement or HTMLVideoElement or ImageBitmap or OffscreenCanvas or SVGImageElement or VideoFrame)'.
    at CanvasRenderingContext2D.value [as drawImage] (layers.js?v=26b7436:73:30)
    at subtractBackground (util.js?v=379aef7:499:8)
    at Image.<anonymous> (dream.js?v=95bd3f0:562:14)
value @ layers.js?v=26b7436:73
subtractBackground @ util.js?v=379aef7:499
(anonymous) @ dream.js?v=95bd3f0:562
load (async)
applyImg @ dream.js?v=95bd3f0:543

Steps to reproduce the problem
This is the minimal repo I've been able to find. There may be an additional different and longer unknown repo that I've hit during regular use that does not require step 3.

Have image on canvas
Draw mask and do img2img
Modify prompt, "+ Button Updates Prompt" being enabled or not has no effect
Hit + / Generate More
Pick any gen and attempt to Y / Apply Current
Img2img is not applied, error in console

What should have happened?
Gen should be applied
Commit where the problem happens
https://github.com/zero01101/openOutpaint/commit/b60b4fccdf276c0103f05060e0edb7151ff61bfc
What platforms do you use to access openOutpaint?
Linux
What browsers do you use to access the UI ?
Google Chrome
Browser Extensions/Addons
Chrome: 116.0.5845.110
uBlock Origin, inactive, localhost exempted
Tampermonkey, nothing active on localhost
No others that are active in Incognito Mode
AUTOMATIC1111 webUI Commandline Arguments
--no-half-vae --api --opt-split-attention --cors-allow-origins=http://<IP_ADDRESS>:7860,http://<IP_ADDRESS>:3456 --no-download-sd-mode
Additional information
Unable to repo on https://github.com/zero01101/openOutpaint/commit/5abf5914a327bc76fff2a3a18c29200cfd71fc14
Unable to repo on Firefox

Gah, just got repo on https://github.com/zero01101/openOutpaint/commit/5abf5914a327bc76fff2a3a18c29200cfd71fc14 again without touching the prompt. Gonna have to switch back to Firefox already, oh well.

i can't really say i'm too surprised that it's broken lol, background carving barely functions as is and for the amount of time i wasted implementing it, i think i've used it once... but yeah, confirmed that it screws things up with the prompt editing, will see if i can wrap my head around what i did there...

I think I turned it on for the first time the night before to see what it would do then forgot I had done that the next day. xD


Project setup enhancements

Use poetry (https://python-poetry.org/)
Use black (https://black.readthedocs.io/en/stable/)
Use click (https://click.palletsprojects.com/en/latest/)
Some cleanup

If you have any questions regarding this pull-request or if you would like to have it in small portions, please tell me.

Thank you


Enqueue export on demande

With the current version it's possible to enqueue action implementing the ShouldQueue interface. But in some case it could be nice to be able to enqueue only if the action is heavy (for instance exporting one row is not queued, but exporting more than 100 rows will be enqueued).
Proposition
A new interface CouldQueue could be used in the Maatwebsite\Excel to choose if the action should be enqueued or not depending on the request or the models.

        if (
            $export instanceof ShouldQueue ||
            ($export instanceof CouldQueue && $export->shouldQueue($request, $models)
        ) {
            return $this->queue($export, $filePath, $diskName, $writerType, $diskOptions);
        }

I think it's best to implement this logic yourself as it most likely will entail more logic that what the package can offer.


Removing accountID from Report_UpdateLastRead

Cleanup task
Fixed Issues
$ https://github.com/Expensify/App/issues/6910
Tests / QA

Send messages between two people and confirm unread messages are working properly.

Tested On

[x] Web
[ ] Mobile Web
[ ] Desktop
[ ] iOS
[ ] Android

🚀 Deployed to staging by @MonilBhavsar in version: 1.1.31-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @AndrewGable in version: 1.1.32-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


feature: add immutable option

Reason for This PR
Fixes https://github.com/roadrunner-server/roadrunner/issues/1985
Description of Changes
Adds immutable option to static HTTP middleware.
License Acceptance
By submitting this pull request, I confirm that my contribution is made under the terms of the MIT license.
PR Checklist
[Author TODO: Meet these criteria.]
[Reviewer TODO: Verify that these criteria are met. Request changes if not]

[ ] All commits in this PR are signed (git commit -s).
[ ] The reason for this PR is clearly provided (issue no. or explanation).
[ ] The description of changes is clear and encompassing.
[ ] Any required documentation changes (code and docs) are included in this PR.
[ ] Any user-facing changes are mentioned in CHANGELOG.md.
[ ] All added/changed functionality is tested.

Summary by CodeRabbit

New Features

Introduced an Immutable configuration option for enhanced control over setting mutability.
Enhanced file-serving capabilities in the application, allowing for improved error handling and configurable behavior when serving static files.

Bug Fixes

Fixed issues related to file existence and directory checks during file serving.

Refactor

Improved modularity by separating the calculation and setting of ETags for better maintainability.

Test should also be added. You may copy static files tests from the HTTP plugin and add new tests for an immutable option.

Test should also be added. You may copy static files tests from the HTTP plugin and add new tests for an immutable option.

I've searched for tests but I could not find any tests. Like, where existing test for the middleware lives?

There are plenty of tests here: https://github.com/roadrunner-server/http/tree/master/tests. They all live in the root plugin. Yeah, no need to copy them to this middleware, just add new to the http plugin. Use replace go.mod directive to run tests with the new functionality on your local machine.

There are plenty of tests here: https://github.com/roadrunner-server/http/tree/master/tests. They all live in the root plugin. Yeah, no need to copy them to this middleware, just add new to the http plugin. Use replace go.mod directive to run tests with the new functionality on your local machine.

Ok, so my idea is that there shouldn't be any difference between immutable true/false (of course newly added files won't be served - but I will add just one case for it) - so I want to run all existing tests once with immutable: false and once with immutable: true
How would to override
http.static.immutable
in
	cfg := &config.Plugin{
		Version: "2023.3.5",
		Path:    "configs/.rr-http-static.yaml",
	}

	err := cont.RegisterAll(
		cfg,
		&logger.Plugin{},
		&server.Plugin{},
		&httpPlugin.Plugin{},
		&gzip.Plugin{},
		&static.Plugin{},
	)

Hey @Warxcell,
You may write overrides directly to the config plugin.
	cfg := &config.Plugin{
		Version: "2023.3.5",
		Path:    "configs/.rr-http-static.yaml",
		-- here
	}


SW-3680 / SW-3852 Planting start/end months in planting site details page

added start/end months which are read-only
added util to return month
moved boundaries/zones inside the panel

I see the fields but they are empty since I'm not in an org that has a planting site with relevant data. I currently have access to dev and kborg but it looks like I needed to be added to my org..?

I see the fields but they are empty since I'm not in an org that has a planting site with relevant data. I currently have access to dev and kborg but it looks like I needed to be added to my org..?

you have to set the values using the admin UI.. let me do that for a site in dev..
try this planting site tw-003-wgs84 in the dev org

you have to set the values using the admin UI.. let me do that for a site in dev.. try this planting site tw-003-wgs84 in the dev org

Ah got it, thanks!


stable/concourse: use the correct work dir in the container preamble

There's a short preamble (written in shell) in the container that cleans up before the container starts. It had the work dir hard-coded, while its value has been configurable since a few chart versions.
Now it uses the same configured value.

/ok-to-test

@paulczar i just fixed the merge conflict.

/lgtm

/approve


Not working in Microsoft Edge

@muaz-khan
I tried your demo - https://rtcmulticonnection.herokuapp.com/demos/TextChat+FileSharing.html in firefox and microsoft edge.
Demo url is already loaded with adapter.js .
In microsoft edge console I'm getting this error
"Object doesn't support property or method 'createDataChannel' "
Could you please tell us what could be the issue?
Thanks
Karthikeyan K

@muaz-khan Is there any update? Could you please help me to resolve this issue
Thanks

It seems that Microsoft Edge does not supports WebRTC data channels at the moment.

Neither in ORTC
Nor in WebRTC 1.0


Reaper exporter

Modals didn't exists when I made this. I can do it here or in a later PR. Your call.

Ah yes fair enough. This is approved then!


update samtools sort calls, change how WrapperIDR is called

Hi Matt,
I've done two things. First I've pulled this branch into our repository. Second I've merged it into our working branch. We tend not to alter the master, leaving that in a clean state from last time we pulled the upstream.
I'm going to rebase your changes onto the upstream master and submit a pull request up there - I don't see anything in here that has any oppotunity to mess things up at all or be controversial.


Update collection docs

Codecov Report

Merging #87 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #87      +/-   ##
==========================================
+ Coverage   95.85%   95.85%   +<.01%
==========================================
  Files          11       11
  Lines        1182     1183       +1
==========================================
+ Hits         1133     1134       +1
  Misses         49       49

Impacted Files
Coverage Δ

streamz/dataframe.py
98.29% <ø> (ø)
:arrow_up:

streamz/batch.py
100% <ø> (ø)
:arrow_up:

streamz/collection.py
95.36% <ø> (ø)
:arrow_up:

streamz/core.py
98.3% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


az eventhubs eventhub create with data lake capture destination

Is your feature request related to a problem? Please describe.
There currently is no way to enable event capture to Data Lake when creating an Event Hub via the az eventhubs eventhub create command. Currently only capture to Blob Storage appears to be supported although the current documentation is a bit cryptic.
Describe the solution you'd like
Since the destination-name (possible values: EventHubArchive.AzureBlockBlob, EventHubArchive.AzureDataLake) parameter already exists it would be great if generic capture parameters were added for easier use from the CLI:

capture-account-name (replaces storage-account)
capture-folder (or capture-container. Replaces blob-container)
capture-name-format (replaces archive-name-format  for consistency)
capture-destination-name (replaces destination-name for consistency)

Alternatively Data Lake-specific parameters could be added to solve the same problem.
Describe alternatives you've considered
Using an ARM template for deploying in this scenario, example here.
Additional context
az cli rocks.

@aj-nava, would you please check on this. I heard that there is already a PR to fix this issue.

What is the status of this issue ?

How is the status of this issue?

I don't understand why this was closed, it doesn't seem to have been implemented yet


Drop old rubies < 2.7

@agrare Not sure we want to merge this, I just want to see if things go green.

Closing in favor of fixing Ruby 2.5 tests in #54


LSF email notifications not working

Email notifications for adjustments in LSF aren't being sent

 LSF email notifications not working


chore(actions): run only on pull_request

only run CI when PR is opened to reduce overall actions time

For now, prefer to run CI on pull request as well, it is only for inside collaborators anyhow.


Looplifting failure case

@jit(nopython=True)
def assign_bin(val):
    key = 32
    while key < 2**10:
        if val < key:
            return key
        key <<= 1
    return key

@jit
def binning(ary):

    dct = defaultdict(list)   # OK If this is moved below the first loop
    bins = np.zeros(ary.size, dtype=np.int32)
   #  This loop can be lifted
    for i in range(ary.size):
        bins[i] = assign_bin(ary[i])
   #  This loop cannot be lifted
    for k, v in zip(bins, ary):
        dct[k].append(v)
    return dct

The first loop fails to be lifted due to incorrect inclusion of dct as a required variable for the loop.  Moving the initialization of dct below the first loop allow it to be lifted.

Seems like this is now fixed (Numba 0.43.1):
from collections import defaultdict
from numba import jit
import numpy as np

@jit(nopython=True)
def assign_bin(val):
    key = 32
    while key < 2**10:
        if val < key:
            return key
        key <<= 1
    return key

@jit
def binning1(ary):
    dct = defaultdict(list)   # OK If this is moved below the first loop
    bins = np.zeros(ary.size, dtype=np.int32)
   #  This loop can be lifted
    for i in range(ary.size):
        bins[i] = assign_bin(ary[i])
   #  This loop cannot be lifted
    for k, v in zip(bins, ary):
        dct[k].append(v)
    return dct

@jit
def binning2(ary):
    bins = np.zeros(ary.size, dtype=np.int32)
   #  This loop can be lifted
    for i in range(ary.size):
        bins[i] = assign_bin(ary[i])
    dct = defaultdict(list)   # OK If this is moved below the first loop
   #  This loop cannot be lifted
    for k, v in zip(bins, ary):
        dct[k].append(v)
    return dct

arr = np.arange(10)

binning1(arr)
print(binning1.overloads[binning1.signatures[0]].lifted)

binning2(arr)
print(binning2.overloads[binning2.signatures[0]].lifted)

gives:
(LiftedLoop(<function binning1 at 0x7f786b5a5268>), LiftedLoop(<function binning1 at 0x7f786b5a5268>))
(LiftedLoop(<function binning2 at 0x7f7853c11ea0>), LiftedLoop(<function binning2 at 0x7f7853c11ea0>))


Update the docs and docstrings for transform

This should address both #878 and #826. The docs now reflect the updated API in pyproj >= 2.1, demonstrate use of Transformer and CRS; show clearly and call out the necessity of always_xy per #878; and include the classic example using older versions of pyproj. I also changed the order of the examples to show the more current behavior of pyproj first.

Coverage remained the same at 81.717% when pulling 6a8394517c794088610cdcb7d684fa84569ada0d on tomplex:update-transform-docs into 91c70ba508a4030e20f2ef22e6e6acc6c1a69d82 on Toblerity:maint-1.7.

Thanks for the review @jorisvandenbossche! I appreciate the feedback.

I added an extra paragraph regarding #789 because it seemed relevant and I was in in the docs anyway. If you want me to remove it and add it as its own item instead, that's fine.


Safely update cache and improves logging

Well I added a test and your change actually failed! Definitely need to add tests going forward.


Feature: add jump to file and line number to debug console output

In Chrome (& Edge) console, when something is printed, the file + line number where it occured is printed, and clicking on it opens up the corresponding file at the correct position.

In VSCode you get no such information: the log is printed without any information.

Can you add a screenshot that shows where you would like to get that information?

I assume this is about printing in the console view.

Assigning first to @weinand to see if we can extend the protocal such that output events could have source and line. If we have that the debug console could render this source to the side like chrome does it

Extending the protocol is easy. But before we do this we need some evidence that debug adapters can actually provide that information.
In case of node.js I do not see a way to provide source and line information. console.log() statements in the debuggee result in information sent to stdout (or stderr) which is picked up by the debug adapter and sent as OutputEvents to VS Code. The debug adapter has no way to add source and line information by itself. Only an enhanced version of console.log() in the debuggee could get source and line position from the callstack and add this to the output data.
@roblourens, @felixfbecker, @rebornix could you provide source and line information for anything sent as OutputEvents?

No, I only read stdout/stderr stream. And that is only for CLI apps, webapps don't even have stdout/stderr

I'm just directing the console output to OutputEvent, there is no such line information...

Yeah, the Chrome debug protocol provides the URL/line/column of the source of the log message. I could easily resolve the URL to the original path and pass that back.

This would be really great if you could add this feature!! Apart from that issue, debugging with Code is really nice

This is actually implemented for the next release, https://github.com/Microsoft/vscode/issues/24490


[Bug]: Webkit Mobile View: Stream error in the HTTP/2 framing layer: Facing this issue upon opening https://www.redbus.in

Version
1.46.0
Steps to reproduce
Playwright playwright = Playwright.create();
Browser browser = playwright.webkit().launch(new BrowserType.LaunchOptions().setHeadless(false));
BrowserContext context = browser.newContext(
new Browser.NewContextOptions()
.setViewportSize(414, 896) // iPhone 12 viewport size
.setDeviceScaleFactor(3)   // Device pixel ratio
.setUserAgent("Mozilla/5.0 (iPhone14,6; U; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/19E241 Safari/602.1") // iPhone 12 user agent
.setHasTouch(true)         // Enable touch events
.setIgnoreHTTPSErrors(true) // Optional: ignore HTTPS issues if applicable
.setExtraHTTPHeaders(Map.of("connection", "close")) // Disable HTTP/2
.setIsMobile(true)  // Set to true for mobile
);
Page page = context.newPage();
page.navigate("https://www.redbus.in");
Expected behavior
https://www.redbus.in should open in Webkit Mobile View
Actual behavior
Works for Chromium Mobile view and Firefox Mobile view but not working for Webkit Mobile view
Additional context
No response
Environment
Windows - Webkit

Sorry for the late reply. Minimal reproducible for Node.js:
const { webkit } = require('playwright');

(async () => {
  const browser = await webkit.launch({ headless: false });

  const context = await browser.newContext({
    userAgent: "Mozilla/5.0 (iPhone14,6; U; CPU iPhone OS 15_4 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/19E241 Safari/602.1", // iPhone 12 user agent
  });

  const page = await context.newPage();
  await page.goto("https://www.redbus.in");

})();

Closing as per above, since it also doesn't work with cURL. So the web server is definitely broken or returns invalid http2. I recommend to use a different user-agent as workaround.


fix(update): use latest stable cdk

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

tested, working 👍


Theme's Text theme font color always white unless overriden

When define any attribute in theme's, the font color changes to white:
Text:
  bodyMedium:
     fontSize: 40    # anything attribute will have the color as white (unless you use color of course).

I saw other code hardcode the color to Black. You shouldn't need to do this if we are using the light theme (color shouldn't be white by default on light theme).

I got to take deep dive to understand it as well.
But that the case, if we pass null as color default it's taking white color and that is the reason I hardcoded black in default style and similarly assigning fallback style color to custom style. here is PR of it.


Android device only receive 1 notification when offline.

My app sends non-collapsible push notification.
When push notification are sent while device is online, everything works fine. Notifications are sent one by one. The problem is that if the device is offline (closed or airplane mode) only the last notification sent is received when the device come back online.
A work around that seems to be popular online is to generate unique collapseKey to force firebase to push notification in separate "collapse group".
I know the limit is only 4 collapse key, but it is enough notifications for the app I'm building.
I've achieved the desired result on IOS by settings my apns-collapse-id to a random UUID for each notifications but now that I'me trying with android it doesn't seems to work.
I uses
Firebase-admin version 9.1.1
<dependency>
      <groupId>com.google.firebase</groupId>
      <artifactId>firebase-admin</artifactId>
      <version>9.1.1</version>
</dependency>

This library uses FCM HTTP v1 endpoint
The collapseKey fields works.
When setting it with this function :  AndroidConfig.builder().setCollapseKey("non_unique_collapse_key").build()
The notifications are overwritten.
If I set it like this :  AndroidConfig.builder().setCollapseKey(UUID.randomUUID().toString()).build()
All notification are sent separately.
The problem is that if I put my android to airplane mode, send myself 3 notifications (with 3 different collapse_key)
When I put my device back online, I only receive the last notification sent.
The same cannot be said for IOS.
I set my notification like so :
ApnsConfig.builder().putHeader("apns-collapse-id", collapseKey)
        .setAps(Aps.builder().setAlert(
            ApsAlert.builder().setTitle(title).setBody(notificationContent).build()).build())
        .build();

and when I put my iphone back online, I receive 3 notifications.

I guess my question now that I've edited the ticket would be : why is the apns-collapse-id working differently then the collapse_key

Any solution guys ??


Cannot set property 'VUE_DEVTOOLS_UID' of null

Version
6.0.0-beta.2
Browser and OS info
Chrome 85.0.4183.121/Windows 10
Steps to reproduce
Open a simple VUE project. Open Developer Tools. Goto VUE tab. Find components
What is expected?
the components on the page
What is actually happening?
No components found.
Errormessage: Cannot set property 'VUE_DEVTOOLS_UID' of null

+1

I have exactly the same problem. Even with a completely fresh project with vue-router, vuex and vuetify via vue-cli (Didn't test without plugins) . The problem is, that the plugin fails to detect the root instance since there is no handler for the eventType "getAppRootInstance" available when calling "backendOn.callHandlers" and "pluginOn.callHandlers" in backend.js
backend.js (1199): await ctx.api.getAppRootInstance(options.app) //problematic call starts here
backend.js (144): payload = await backendOn.callHandlers(eventType, payload, ctx); //no handler for "getAppRootInstance"
backend.js (145): payload = await pluginOn.callHandlers(eventType, payload, ctx); //no handler for "getAppRootInstance"

Would appreciate a fix for this
Cheers
Stefan

I encounter the same problem when creating an app instance with createSSRApp and as far as I can see, my problem results not from a missing handler for getAppRootInstance, but from the handler not 'finding' the root instance. It is checking for _vnode property on the app root container which in turn gets added in the mount phase. This, yet another turn, only happens when using createApp.

I'm having the same issue.. The normal Vue Devtools is crashing constantly without error and when updating to beta I can't use it at all... For me I can't use any of them witch is making debugging very time consuming and tricky.

You can use firefox as that still uses version 5.3.3

Yeah. The problem with that is that the app I’m working on atm is an internal tool that only works in Chrome. I ended up downgrading but that version keeps crashing and then I need to restart Chrome to get it back up. I’m handling it through classical JS debugging most of the times but it for sure would ease up my life if I could get a more stable version working.

Same mess.
PS: When do we get Vuex devtools back?

Me too !

Me too !

Me too !   in 6.0.0-beta.3

Me too !   in 6.0.0-beta.3

Same here with 6.0.0 beta 3 and Vue 2 app

Same here with 6.0.0 beta 3 and Vue 2 app

Look's like dev tools 6.0.0 beta 3 works correct only with Vue3 apps. I've installed beta version because stable version doesn't work with Vue 3 apps. So now I cannot use beta with Vue 2 apps. Perfect update )))

Look's like dev tools 6.0.0 beta 3 works correct only with Vue3 apps. I've installed beta version because stable version doesn't work with Vue 3 apps. So now I cannot use beta with Vue 2 apps. Perfect update )))

got the same in chrome, but I used Mozilla and there is no problem, maybe it's a chrome bug
I'm using Firefox Developer  Edition

got the same in chrome, but I used Mozilla and there is no problem, maybe it's a chrome bug
I'm using Firefox Developer  Edition

I noticed nobody mentioned Microsoft Edge. I'm experiencing the same issue on Edge Version 88.0.705.50 (Official build) (64-bit) on macOS Big Sur 11.1 build 20C69.

I noticed nobody mentioned Microsoft Edge. I'm experiencing the same issue on Edge Version 88.0.705.50 (Official build) (64-bit) on macOS Big Sur 11.1 build 20C69.

Please make sure you don't have the stable devtools (v5.x) enabled at the same time.

Please make sure you don't have the stable devtools (v5.x) enabled at the same time.

Currently the devtools 6.x beta doesn't support Vue 1 and Vue 2 yet. Please use the stable version if you want to inspect a Vue 1 or Vue 2 app.

I can confirm that this error also occurs when using createSSRApp in combination with server-side rendering. Although there's currently a lack of documentation for doing SSR with Vue 3, the few examples I found used this new method to create the Vue app on both the server and the client (through the universal code). Hydration also seems to only work when doing this, so this must be a bug. However, I'm not sure whether this is a bug in Dev Tools (for not differentiating between the two createApp methods), or Vue 3 itself (that createSSRApp is not creating the Vue instance correctly).

Have the same problem with v. 6.0.0 beta 6 and a fresh Nuxt.js + Vue.js installation.

@bubbakk Nuxt currently uses Vue 2.

Same error for me, but with latest version of Vite and with the ssr test project https://github.com/vitejs/vite/tree/main/packages/playground/ssr-vue

Same problem with version 6.0.0 beta 7

Currently the devtools 6.x beta doesn't support Vue 1 and Vue 2 yet. Please use the stable version if you want to inspect a Vue 1 or Vue 2 app.

This was my issue. I had the extension from the beta channel installed. When I fired up a project with Quasar (Vue 2) the extension failed. Removing the beta and installing the stable extension resolved the issue. Thanks for the info.

Same problem with version 6.0.0 beta 7, but when I lowered the version to 5.2.0, it worked!

Currently the devtools 6.x beta doesn't support Vue 1 and Vue 2 yet. Please use the stable version if you want to inspect a Vue 1 or Vue 2 app.


Pause capacity renders embedded reports?

Hi,
when we pause a capacity can we render the reports? I'm trying and it seems that an embedded report is rendered when capacity is in pause.

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

ID: e37c7960-448a-0f10-c84a-f9c531452320
Version Independent ID: 4867daee-c097-cde7-81c9-4f2a44a4f5b3
Content: Frequently asked questions about Power BI Embedded - Power BI
Content Source: powerbi-docs/developer/embedded/embedded-faq.md
Service: powerbi
Sub-service: powerbi-developer
GitHub Login: @KesemSharabi
Microsoft Alias: kesharab

Hi @joanteixi - Thanks for the question! I'm assigning your question to the docs author for review. They'll follow up soon.

@amit-shuster - can you please assist with this question?

Hi,
You might be using your free trail of embed token, that is why the report is rendered.
When the capacity is paused it is not used.
Please not that the free trail of embed tokens can't be used for production.


Water Sensors: CWZ DE

Site completely offline. Rep 2 bare had issues before entire site went offline

not communicated for a while now, asked to download data.

all available data downloaded at end of season


Add a sample sheet into the saccharomyces data

shouldn't this be in the rnaseq branch then?

No- it's for module-level tests (specifically summarizedexperiment)


Enable Workload Identity for stack-gcp when running on GKE

What problem are you facing?

Currently, credentials for stack-gcp to authenticate to the GCP API are manually provided as a Kubernetes Secret. While this is a viable short-term solution, this post from GCP describes the shortcomings of this technique:

As an application developer, you could generate individual IAM service accounts for each application, and then download and store the keys as a Kubernetes secret that you manually rotate. Not only is this process burdensome, but service account keys only expire every 10 years (or until you manually rotate them). In the case of a breach or compromise, an unaccounted-for key could mean prolonged access for an attacker. This potential blind spot, plus the management overhead of key inventory and rotation, makes using service account keys as secrets a less than ideal method for authenticating GKE workloads.

How could Crossplane help solve your problem?

A more secure method of authentication would be through enabling Workload Identity. While this does enable some manual setup for the time-being, users who are already using the functionality can easily adopt it by annotating the the stack-gcp ServiceAccount with the appropriate Google service account tag (work is being done to make this a more streamlined process here). To enable this within stack-gcp, the Provider should be updated with a useServiceAccount field that can instruct the controllers to authenticate via credentials present in the Pod rather than looking for a Secret.
This is similar to the recent work on stack-aws: https://github.com/crossplaneio/stack-aws/pull/126

Related: https://github.com/crossplaneio/crossplane/issues/1098


New terms for microscopy in our lab

We have collected a list of terms with settings and devices commonly used for microscopy in our lab, that are not yet present in the DataPLANT ontology. Some are specific for our microscopes. New term names, definitions and parent terms are included in the attached Excel sheet
missing_terms.xlsx
Can you please add these terms to the DataPLANT ontology?

Hello, thank you for your term suggestions to help expand the dpbo.
I had a few points that I wanted to clarify about the terms you have given.
First, I would like to change the objective lens terms (see below) to be compatible with the term name given in the Zeiss micro-shop:
NEOFLUAR would become Plan-Neofluar
(ex. NEOFLUAR 63 x / 1.25 oil to Plan-Neofluar 63x/1.25 Oil)
and
Only the first letter of ACROPLAN would be capitalized
(ex. ACHROPLAN 5 x / 0.12 to Achroplan 5x/0.12)
Second, instead of using Objective for the parent term, I would like to use the Ncit term 'Objective Lens'.
Please let me know if these changes suit you okay and I will import them.
Best,
Kathryn

Hello Kathryn,
thank you for looking at the terms. The proposed changes are fine.

Hello, all terms have now been added to dpbo. Please let me know if you run into any issue with them.


"Second Term signal" pattern will leave application in background

I'm trying to catch second Ctrl-C signal like example in signal-hook crate
But when I press first time Ctrl-C, the application exited terminal, left process running in background.
How can I let application waiting for second Ctrl-C without losing terminal run foreground?
Here is skeleton of my example
use std::collections::HashMap;
use std::sync::{atomic::AtomicBool, Arc, Mutex};
use std::thread;

use anyhow::Result;
use log::{debug, error, info};
use pretty_env_logger;
use signal_hook::{
    self,
    consts::{SIGABRT, SIGHUP, SIGPIPE, TERM_SIGNALS},
    iterator::{exfiltrator::WithOrigin, SignalsInfo},
};

fn main() {
    match try_main() {
        Ok(_) => {
            info!("main returned successfully.");
        }
        Err(err) => {
            error!("main returned error: {:?}", err);
        }
    }
}

fn try_main() -> Result<()> {
    let signal_termiate_flag = Arc::new(AtomicBool::new(false));
    // https://docs.rs/signal-hook/0.3.4/signal_hook/#a-complex-signal-handling-with-a-background-thread
    for sig in TERM_SIGNALS {
        signal_hook::flag::register_conditional_shutdown(
            *sig,
            1,
            Arc::clone(&signal_termiate_flag),
        )?;
        signal_hook::flag::register(*sig, Arc::clone(&signal_termiate_flag))?;
    }

    if matches.is_present("set_debug") {
        debug!("enable debug");
        backup::enable_debug_output();
    }

    let redis_addr = "redis://<IP_ADDRESS>:6379";
    let redis_client = redis::Client::open(redis_addr)?;

    // all the child threads do not handle terminating signals / flag, so they will run forever
    let handle = thread::spawn(move || match matches.subcommand() {
        ("start-local", Some(matches)) => match local::start_local(redis_client, matches) {
            Ok(_) => (),
            Err(err) => {
                eprintln!("start_local failed: {:?}", err);
            }
        },
        ("start-service", Some(matches)) => match service::start_service(redis_client, matches) {
            Ok(_) => (),
            Err(err) => {
                eprintln!("start_service failed: {:?}", err);
            }
        },
        _ => {}
    });

    let mut sigs = vec![SIGHUP];
    sigs.extend(TERM_SIGNALS);
    let mut signals = signal_hook::iterator::SignalsInfo::<WithOrigin>::new(sigs)?;

    for sig in &mut signals {
        eprintln!("received signal: {:?}", sig);
        match sig.signal {
            SIGHUP => {}
            term_sig => {
                eprintln!("terminating ... Ctrl-C again to exit forcely");
                assert!(TERM_SIGNALS.contains(&term_sig));
                break;
            }
        }
    }

    debug!("waiting for program exited");
    handle.join().unwrap();
    debug!("program exited");
    Ok(())
}

Can you describe in more detail what you're doing there? Or, can you provide the whole application, or something? Because as it is, it doesn't compile, a lot of things are missing. If I stub them out, I can't reproduce.
Is it possible you actually start another process in the background? That one would indeed be left running unless you somehow take care of its shutdown.

Can you describe in more detail what you're doing there? Or, can you provide the whole application, or something? Because as it is, it doesn't compile, a lot of things are missing. If I stub them out, I can't reproduce.
Is it possible you actually start another process in the background? That one would indeed be left running unless you somehow take care of its shutdown.

OK, no info provided and I suspect this is not caused by the library but by the very nature of the design.


Update the README/package description

@jamartis Any update on this?  What about the following summary?
A shared library that can be preloaded to instrument the main() function of programs being executed

Thanks @kdudka. Should be fixed by https://github.com/aufover/ldpwrap/commit/9a4910f6f812af6a3740ac80f386c67b331ba1ab


RangeError: Maximum call stack size exceeded

I am Having Big Application which having more than 3000 routes(end points) ,Im getting Maximum call stack error for the last set of Api's when i hit the api that declared at top level i got the output can anyone help me for adding more routes in node, express js

Hello, and sorry for your trouble. There was an issue around this that was fixed before, so it is possible there is a different bug. I would love to get it fixed for you, but need more information. Can you please tell me what version of Express you are using and provide an example app that will have the above error so we can determine the cause? Thank you!

There was a similar issue (#4891, 708ac4c) fixed in Express 4.18, but it was caused by large middleware stacks.
I've tried to reproduce it with a flat structure, but I've only managed to get ECONNRESET, terrible performance and V8 fatal errors with 1M routes (tested with Node.js 20.0 and Express 4.18.2/4.17.3).

Tested code
const express = require("express");
const assert = require("node:assert/strict");

const app = express();
const MAX_ROUTES = 100_000; // Fails at 1_000_000
let base;

for (let i = 0; i < MAX_ROUTES; ++i) addRoute(i);

const server = app.listen(0, () => {
    base = `http://<IP_ADDRESS>:${server.address().port}/`;
    console.log(`Listening on ${base}`);

    checkRoute(5000)
        .then(() => checkRoute(MAX_ROUTES - 1))
        .then(() => checkRoute(0))
        .then(() => console.log("All checks succeeded"))
        .catch(e => console.error(e))
        .finally(() => server.close());
});

function addRoute(i) {
    app.get(`/${i}`, (_req, res) => {
        const response = `Route ${i}`;
        console.log(i, response);
        res.send(response);
    });
}

async function checkRoute(number) {
    const uri = new URL(number.toString(), base);
    console.time(uri);
    const response = await fetch(uri);
    console.timeEnd(uri);
    const body = await response.text();

    assert.equal(response.status, 200);
    assert.equal(body, `Route ${number}`);

    return true;
}

Thanks issue solved when changing express version from 4.10 to 4.18


ZKFair mainnet launch

ZKFair mainnet launch:
ZKFair is the first community ZK-L2 based on Polygon CDK and Celestia DA, championing fairness.
websites: https://zkfair.io/
socialMedia: https://docs.zkfair.io/
documentation: https://twitter.com/ZK_fair/

hello, @lucadonnoh. Our ZKFair mainnet is up, and about the pr, I have some question.

Do I need to generate the discovery/zkfair/ethereum/config.jsonc file? Or Would you mind help me out with that? Since It's seem like a little bit hard to do it.
Is it ok to only add the escrows related smart contract information for now? And we add the rest of it in next.
thanks very much :)

yes i'll take a look!

yes i'll take a look!

Hi! Is there anything I have to do, or some information I need to provide?

moved here since i cannot push https://github.com/l2beat/l2beat/pull/2423


emit order when using include in tsconfig.json

I found that although the include property can specify glob style files, but the emitted file is in alphabetical order with reference directive considered, it is not consistent with the order provided in the include.
I see the result with listEmittedFiles option, and the include is something like this:
"include": [
  "src/core/**/*.ts",
  "src/utils/**/*.ts",
  "src/**/*.ts"
]

Is this a bug?

TypeScript does not do output file ordering : https://basarat.gitbooks.io/typescript/content/docs/tips/outFile.html Its just a raw concat. Consider using modules please :rose:

@basarat As the document says:
The order of concatenation is determined by the list of files passed to the compiler on the command line along with triple-slash references and imports

I mean the config parser doesn't pass the files to compiler orderly as in include property.
And in the source code, I found in matchFileNames function a potentially sort of input files by alphabet.

+1
outFile does support ordering via the files property in the tsconfig file.
I know outFile is not recommended practise but while its supported it would  be useful to have include effect the ordering otherwise having to use the files to specify ordering on a per file basis can be painful!

You can try this project : https://github.com/domchen/typescript-plus .
I started using typescript in my project since version 0.9. It is really great except for the lack of some features, one of them that I need most is automatically reordering source files.
Normally when you pass the --outFile option, the compiler will concatenate and emit output to a single file. But the order of concatenation is determined by the list of files passed to the compiler on the command line (or in the tsconfig.json file) along with triple-slash references and imports. That forces you to sort the input files in the correct order manually. It is ok with only a few source files, but it becomes a disaster when you have countless source files.
Since the official team has not provided this feature yet, I decided to do it myself. I recently created this project: typescript-plus, which could automatically reordering the source files by analyzing their dependencies in source code. If typescript team is interested in this feature some day, I will be happy to help integrating it back to the original typescript project. For now, I will keep updating the typescript-plus project.
You can install it by:
npm install -g typescript-plus
It is basicly the same to the original compiler on usage:
tsc-plus [input files] [options]
To enable the source files reordering, please pass --reorderFiles to the command-line tool or add "reorderFiles": true to the compilerOptions in tsconfig.json file
With the reorderFiles swith on, the tsc-plus compiler will automatically reorder the source files by analyzing their dependencies in code. Then you can get the correct concatenation order in the generated file without doing any extra effort. I have tested this feature in many real-world projects, it works very well. If it does not work in you project, please feel free to open an issue and send me the test case.
For more information, please see the README.

@domchen sounds like a great addition — did you consider creating a PR to include it in TypeScript?

@nbransby why did you say outFile is not recommended practise ? Is it something official?

Yes I believe so, recommended practise is to output to separate files then use a minifier


Encrypt destination IP

I want to encrypt the ip address of the destination as in i dont want others to know my destination ip when they run a wire shark on one of my routers instead it should be replaced with the router ip itself and the destination ip should be encrypted .

This sounds like a feature request for a software switch, not for Mininet. Mininet uses existing software switches. What you are describing sounds like an Ethane switch, so you might want to look at that work.
Closing.


Set retry_files_enabled = False by default

Proposal: Disable .retry file creation by default.
Author: Chuck Douglas <@chuckersjp>
Date: 2019-02-19

Status: New
Proposal type: default configuration
Targeted release:  future release
Associated PR: NA
Estimated time to implement: 1 day

Motivation
Creation of .retry files ends up cluttering up the working directory unless an alternate path
for saving these files is also set up.  Because retry_files_save_path is not set by default
either, this means that the .retry files are saved in the working directory.  The value of these
files is questionable as it is believed that how these files are used upon creation may not
be widely know.
Problems
What problems exist that this proposal will solve?

Generates files whose usability is questionable.  While small in size they can result in
far too many extraneous files to sort through during directory listing.
These file impact bash completion in the working directory
The generated files need to be added to .gitignore which may not always be remembered
until after a commit has been performed.

Solution proposal
Change the following in /etc/ansible/ansible.cfg:
# When a playbook fails by default a .retry file will be created in ~/
# You can disable this feature by setting retry_files_enabled to False
# and you can change the location of the files by setting retry_files_save_path

#retry_files_enabled = False
#retry_files_save_path = ~/.ansible-retry

to
# When a playbook fails a .retry file can be created that will be placed in ~/
# You can enable this feature by setting retry_files_enabled to True
# and you can change the location of the files by setting retry_files_save_path

retry_files_enabled = False
#retry_files_save_path = ~/.ansible-retry

This change will explain that the feature is listed as disabled by default
and how to enable it if desired.
Testing (optional)
No testing should be required
Documentation (optional)
A release note stating that retry_files_enabled is now disabled by default in the
configuration file would be recommended.

I'd personally be on board with this, as disabling retry files is always one of the first things that I do for a new Ansible installation/project.

I name my playbooks without the .yml extension to avoid the bash-completion issue... but found out one day that AWX doesn't like playbooks without a .yml extension... (but I should open that bug in a different tracker)

I think .yml extension (or even .yaml) helps vim identify it as a YAML file when you first start editing it.

In the Core IRC meeting on 2019-02-28, this proposal was approved.

vote in public meeting, everyone seems fine with changing the feature to be disabled by default (just needs PR to change config  + porting guide note)


Rhmap 11349 dont submit hidden values

Motivation
When a form is being submitted, any hidden fields with values also get submitted.
These values in hidden fields should be removed.
Changes

Added a removeHiddenFieldValues function to remove any hidden field values.

looks good


MIxS Core - Relationship to other samples

New term details
as described in Symbiont-associated MIxS package manuscript in preparation for submission "The item added to the MIxS core takes into account the nested nature of most associations found in nature, such as host-symbiont-microbe, where there is a need to use multiple packages for the description of the samples of the study (e.g. water, sediment, host-associated, and symbiont-associated). The new term “relationship to other samples” indicate the direct relationship with another sample from the same Bioproject, but which is described in a different environmental package(s). This added feature allows for integrated analysis of the microbiome of symbiotic organisms and their direct environment, even in the context of co-infections (e.g. symbiont- associated SA1234 is within host-associated sample HA8974, technical replicate of symbiont-associated sample SA5679, next to symbiont-associated sample SA7890), but it can also benefit other studies by providing ecologically relevant contextual information (e.g. host-associated HA2567 is within environmental water sample W1234, next to host-associated sample HA5679, next to environmental soil sample S5897). "
For us to assess a new term request we require the following details:
Term name - Relationship to other samples
Structured comment name - relationship_to_other_samples
Definition - indicates the direct relationship with another sample from the same Bioproject. Accepted terms are: ' technical replicate of', 'biological replicate of', 'after', 'before', 'next to' , 'within', and 'contains'. Can be repeated to reveal relationship to many samples.  e.g.
Expected value - enumeration; enumeration; unique identifier
Value syntax - [within|next to|contains|after|before|technical replicate of|biological replicate of];[air|built environment|host-associated|symbiont-associated|human-associated|human-gut|human-oral|human-skin|human-vaginal|human-stool|animal-stool|microbial mat/biofilm|miscellaneous natural or artificial environment|plant-associated|sediment|soil|wastewater/sludge|water|];{text}
Example - within environmental sample W1234, technical replicate of host-associated sample HA5679, next to host-associated samples HA7890, contains symbiont-associated SA5678.
Preferred unit - NA
Package(s) - MIxS Core / All packages

Additional context
Add any other context about the new term here.

While a link between samples could be used in any package, it is never going to be mandatory in any package as the majority of sequencing done in the world is of individual samples, so I don't think this belongs in core.
The specific of the term need more discussion, as proposed here it is attempting to incorperate multiple variables which is something we are trying to move away from.
I think the inclusion of the "package" of the related sample is supurflous here as that information is within the metadata of the other sample.
There are other discussions on-going with regards to how to represent replicate samples (#26) and that discussion should be conducted with this additional requirement in mind. i.e. can one field represent replicate sampling as well as biological relationships between samples?
It should also be noted that we already have a term called "host family relationship [MIXS:0000872]" which is a perhaps a more specific use-case than here, but holds similar information. How would this new term be used in conjunction with the existing term? should all the different relationship types have their own term or should we merge them into a single term with multiple values?
More opinions required.

I do not understand your first comment as I have yet to see a study characterizing the microbiome of a single sample, within a given Bioproject... But I agree that this term does not have to be mandatory.
Do you mean that we should, for example, remove the terms "environmental sample" in the example and stick to "within W1234" ? I am ok with this.
I guess our aim was to provide ecological / physical information regarding the position of a sample relative to another one, or many other ones depending on the experimental design (soil next to water, worm within soil, biological replicates are often next to each other, and a parasite is within a host). A technical replicates being a subset of a sample processed in parallel to another one, we decided to include this information within the same term but based on requirements exposed in #26 , we can remove the reference to technical replicate from this and focus on "ecological relationship to another sample".   "technical relationship to another sample" would then be a separate term that could lead to a unique biosample ID.
I think ecological relationship is different from host family relationship that holds a very different kind of information that relates to the nature of the sample (its genotype). family relationship is more similar to phylogenetic information/ species / genus/  than to ecological relationship that can concern different species, and even samples from very different kind of environments (soil, water, animals, plants)

GSC MIxS is about any sequence, not just microbiomes.
For the ecological aspect of a sample we have the 3 ENVO fields specifically for that (broad-scale environmental context, local environmental context, environmental medium).
I think we need wider input here on how best to name and define the term you need.
As I understand it, you are requesting a term to allow linking of sample A to sample B when they are physically connected in their natural state for example linking of a gut microbiome sample from an animal to the genome of that same animal, AND to a microbiome sample of the water in which that animal is kept/found, etc... for my own reference I created a simple diagram of what I think needs to be represented:

It should be noted that the above 4 samples may have been taken on separate sampling events/days.
The term needs to capture the type of relationship and the related sample ID. This is essentially an Entity-Relationship, the model for which has long been used in the database world. We know the entities (the sample being annotated is one and the related sample ID is the other), its the relationship terminology that is required. Is there already a controlled vocabulary of biological/environmental relationship types somewhere?
Perhaps we can drag in @jdeck88 and @ramonawalls  to comment here?

Hey,
As I understand it, you are requesting a term to allow linking of sample A to sample B when they are physically connected in their natural state for example linking of a gut microbiome sample from an animal to the genome of that same animal,
--> no, we are not linking the gut microbiome sample of an animal to its genome, I believe other terms are providing this kind of phylogenetic / family relationship information
AND to a microbiome sample of the water in which that animal is kept/found, for my own reference I created a simple diagram of what I think needs to be represented
--> YES! This diagram is relevant and gives a good idea of how this term can be used in various ecological context.
One can sample 1 water sample in a tank, and collect 5 fish from this tank. then the 5 fish samples can be linked to this 1 water sample: FISH within WATER    but they can also be linked to each other    FISH 1 next to FISH 2
If the same water and fish are sampled multiple times, they can be linked too:  FISH1.1 before FISH1.2    WATER1 before WATER 2
If there is soil at the bottom of the tank and a soil sample is collected, they can also be linked: SOIL next to WATER
But here is why this is so important for symbionts / parasites:
Now imagine the fish is infected by 3 different parasites: two in the gut, one in the eye.
we collect EYE and GUT from the same individual, which we can easily determine from the associated metadata. But it is currently impossible to link the parasite indidivuals to the host individual! without a thorough reading of the study design, and some luck if the authors provided additional information in the metadata, nobody will be able to work on these data again.
With the proposed term we can now link these samples: PARASITE within GUT    and then     PARASITE 1 next to PARASITE 2   they may be of the same species or of different species.
then for the third one we will indicate PARASITE 3 within EYE
from all this, it will then be possible to determine that the three parasites come from the same individual host.
The idea is indeed to employ terms from the database world in order to allow easy usage. Please let us know if the terminology used for 'relationship type' need to be modified. we tried to keep it simple to allow usage regardless of context,


Setting session.timeout doesn't do anything

I was using an old version of requests (I don't know the exact version). When settings the session.timeout it was affecting the timeout value during a call to session.get(). With recent version of requests, this feature doesn't seams to work.
I'm currently using version 2.10.0
Basically, I'm expecting this:
session = requests.session()
session.timeout = 0.0001
session.get('http://localhost/')

To have the same behavior as:
requests.get('http://localhost/', timeout=0.0001)

This behaviour was deliberately changed: see #2856, and #2011 which have discussion on them.

And to be clear, that version must have been prior to 1.0 when this behaviour was removed.

After reading both issues, I still don't understand why it's not supported. What is the rational behind this decision ?

Also, whats it the alternative to avoid setting the timeout value for each and every get() request ?

@ikus The rationale is that timeouts are not of-a-kind with the things that are set on Sessions. They represent a property of the transport layer and don't semantically apply to a session: how does one "time out" a session? In general they are a per-request property, and defaulting them is a property of the transport layer, which is where Transport Adapters are used to store configuration.
This comment provides an option for defaulting the value.

I will not argue to much about this decision. But I think it goes against the "Python HTTP Requests for Humans". In order to make sure every GET requests does have a good timeout: (a) I need to review all the code to add timeout as an argument to each call of get() or (b) I need to monkey patch the default HTTPAdapter and provide a default timeout of my own.
Defining the timeout value at the session level would be more human even if the property is not strictly related to the session it self.

@ikus060 You do not need to monkeypatch the default HTTPAdapter: just install the correct adapters in at the point where you construct the session.

If we are talking of this code:
class MyHTTPAdapter(requests.adapters.HTTPAdapter):
    def __init__(self, timeout=None, *args, **kwargs):
        self.timeout = timeout
        super(MyHTTPAdapter, self).__init__(*args, **kwargs)

    def send(self, *args, **kwargs):
        kwargs['timeout'] = self.timeout
        return super(MyHTTPAdapter, self).send(*args, **kwargs)

It look like we are monkeypatching the HTTPAdapter.send() method to provide a default timeout value. At least, would be nice to have an HTTPAdapter constructor accepting a timeout value to avoid defining our own class.
e.g.:
s = requests.Session()
s.mount("http://", requests.adapters.HTTPAdapter(timeout=10))

@ikus060 You're not monkeypatching, you're subclassing. This is the entirely expected way to interact with Transport Adapters, and it's done throughout the requests community, as you can see here.
It's not clear to me that a huge amount is gained here by defaulting this. A simpler override, if you're always using the same timeout, is just:
class MyHTTPAdapter(requests.adapters.HTTPAdapter):
    def send(self, *args, **kwargs):
        kwargs['timeout'] = 10
        return super(MyHTTPAdapter, self).send(*args, **kwargs)

At this point we're arguing about saving you 5 LoC. I'm open to having the HTTPAdapter have a timeout default on the object, certainly, but it's not an immediately obvious win.

I would totally agree with @ikus060  that:
s = requests.Session()
s.mount("http://", requests.adapters.HTTPAdapter(timeout=10))

Is a vastly simpler way for humans to set a timeout, and should be supported. It doesn't require people to understand subclassing and understand the HTTPAdapter.send method to override it.
Since it's easy to support, could it be supported?


The response for status "200" already exists for the operation

Since https://github.com/tamasfe/aide/pull/88 landed, the example-axum project prints the response for status "200" already exists for the operation when launching the application.
This seems to be due to list_todos_docs trying to override the list_todos route with a 200 response status code, but it already exists.
I discovered this in my own project due having a panic! instead of a println! inside aide::gen::on_error.
Not sure if it's a bug in aide, or the example needs to be modified somehow.

It's just an issue with the example. Even if the function is impl IntoApiResponse the response type is automatically derived, but it is also manually added thus the error (which is printed by the on error hook).

What if one wants to specify a custom response type for the 200 status code?
Would they have to change the impl IntoApiResponse with a custom type like Json<TodoList> or something, and not specify response::<200, Json<TodoList>>() for the TransformOperation ?

The custom response is implicitly generated from the response type, so any Json<MyJsonStruct> will be documented as responding MyJsonStruct with code 200 regardless if if the fn returns Json<MyJsonStruct>  or  impl IntoApiResponse.
Also consider using axum-jsonschema for the Json response as it gives better json parse errors.


Revert "Generate Fluent Lite from eventgrid#package-2023-12-preview"

Reverts Azure/azure-sdk-for-java#37660

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-resourcemanager-eventgrid


not compatible with elasticsearch 2.0 php client

Hi @julienbornstein, I'm working on a new version that supports Elasticsearch 2.0, should be released early december.

Hi xmarcos, any progress for support for Elasticsearch 2.0?

Ping @xmarcos :D An update would indeed be great.


feat(EMS-2452-2462): No PDF - Policy type - Requested start date validation rules

Introduction :pencil2:
This PR updates the "requested start date" validation rules for the single and multiple contract policy forms in the "Policy type" section of a no PDF application.
Resolution :heavy_check_mark:

Update error message content strings.
Update "Requested start date" hint copy.
Update "Policy type" shared heading caption.
Update isNumber UI helper function to return false if a value is an empty string.
Update shared requestedStartDateRules function to account for various scenarios, e.g:

Only 1 date field is provided, others are not. (E.g day is provided, but not month and year).
All fields are provided but 1 date field is not a number.
The date is invalid, e.g days = 50, month = 13.

Miscellaneous :heavy_plus_sign:

Extract submitAndAssertFieldErrors error assertions into a new command, assertFieldErrors.
Various documentation improvements.
Simplify requested start date validation E2E test descriptions.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

:exclamation: No coverage uploaded for pull request base (main-application-no-pdf@a54ce42). Click here to learn what that means.

Additional details and impacted files
@@                    Coverage Diff                     @@
##             main-application-no-pdf    #1607   +/-   ##
==========================================================
  Coverage                           ?   92.35%
==========================================================
  Files                              ?      125
  Lines                              ?     1426
  Branches                           ?      169
==========================================================
  Hits                               ?     1317
  Misses                             ?      109
  Partials                           ?        0

Flag
Coverage Δ

api-test
92.35% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Does not have ansi escape sequence color support

Trying to load a cow that works with og perl cowsay that has an image converted to ansi escape sequences does nothing but print the raw text.
Is this the expected behavior or is color support not included yet at this point?
https://raw.githubusercontent.com/charc0al/cowsay-files/master/cows/butcher.cow
cowsay -f butcher Testing

< Testing >
Billy Butcher (The Boys)
by @roblevypixels
Generated with Charc0al's cowsay file converter http://charc0al.github.io/cowsay-files/converter
$x = "\e[49m  ";          #reset color
$t = "\ ";
$a = "\e[48;5;235m  ";
$b = "\e[48;5;234m  ";
$c = "\e[48;5;233m  ";
$d = "\e[48;5;236m  ";
$e = "\e[48;5;237m  ";
$f = "\e[48;5;223m  ";
$g = "\e[48;5;238m  ";
$h = "\e[48;5;231m  ";
$i = "\e[48;5;94m  ";
$j = "\e[48;5;180m  ";
$k = "\e[48;5;137m  ";
$l = "\e[48;5;138m  ";
$m = "\e[48;5;239m  ";
$n = "\e[48;5;181m  ";
$o = "\e[48;5;244m  ";
$p = "\e[48;5;66m  ";
$q = "\e[48;5;23m  ";
$r = "\e[48;5;250m  ";
$s = "\e[48;5;109m  ";
$u = "\e[48;5;251m  ";
$v = "\e[48;5;248m  ";
$w = "\e[48;5;246m  ";

Thanks for reporting!
this is not easy problem. I have to implement a small perl vm because the original cowsay is relied on the perl syntax.
I can handle with up priority if you sponsored me. thanks

Understood. thank you.

@zloyle Do not close this as this has not been resolved yet.


TypeError: undefined is not a function (evaluating 'fieldName.startsWith('__')')

Previously vue-table working nicely on safari 9 (el capitan). But, when i'm using safari Version 8.0.7 (10600.7.12) on yosemite, the table doesn't shows up and the web inspector give me an error:
TypeError: undefined is not a function (evaluating 'fieldName.startsWith('__')')
Is there something missing with my vue-table configuration or it's a bug on safari 8?

@siganurame I don't really know for sure as I haven't extensively use Safari.  But based on what you've mentioned, it might have been that Safari 8 was not fully support ES2015. This page said that startsWith() is supported in Safari 9.
If you are able to modify the vuetable source code, you could try to change that line to fieldName.slice(0, 2) === '__'. But I'm not sure whether you will see other errors or not.
If not, please report back and I'll see if I can patch that to vuetable. But if there are other erros, I would suggest upgrade to Safari 9 or use Chrome if possible.

@ratiw thanks.. It's work like charm, so far with no error.


Fix: Migrate use of hashValues to Object.hash

Flutter's latest stable has removed the method hashValues.
This PR fixes that to use Object.hash method

@KevinVan720 could you please review this and release a new pub version. It would be very much helpful. Thanks!

be aware that the dimension: ^0.1.7 package included in the .yaml file also contains the same issue internally @shatanikmahanty

be aware that the dimension: ^0.1.7 package included in the .yaml file also contains the same issue internally @shatanikmahanty

@JohnSamy11 I had also created a PR there, it was merged. Once it will be live in pub.dev. I will update this PR

any prediction of when it will be on pub.dev?

@shatanikmahanty Thank you for the PR. I have published a new version for the dimension package. I will update the version myself and publish a new version for this package.

@shatanikmahanty Thank you for the PR. I have published a new version for the dimension package. I will update the version myself and publish a new version for this package.

Thank you for this ❤

Tks @shatanikmahanty and @KevinVan720 . Version 2.0.0 works like a charm ❤


Debugging luigi in an IDE

For some reason in my IDE (pycharm) luigi can't be debugged when the tasks and the luigi.run invocation are in the same module, otherwise I get the following exception from pydev:

ERROR: Luigi unexpected framework error while scheduling HelloWorldTask(ident=ide, path=hello_world_files)
Traceback (most recent call last):
File "C:\Users\dv90863\py3_6_mario\lib\site-packages\luigi\worker.py", line 740, in add
current = queue.get()
File "", line 2, in get
File "c:\program files\python36\Lib\multiprocessing\managers.py", line 757, in _callmethod
kind, result = conn.recv()
File "c:\program files\python36\Lib\multiprocessing\connection.py", line 251, in recv
return _ForkingPickler.loads(buf.getbuffer())
AttributeError: Can't get attribute 'HelloWorldTask' on <module 'pydevd' from 'C:\Program Files\JetBrains\PyCharm Community Edition 2018.3\helpers\pydev\pydevd.py'>
INFO: Worker Worker(salt=339097217, workers=4, host=TLVCMEN000134, username=doroni, pid=10808) was stopped. Shutting down Keep-Alive thread
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3\helpers\pydev\pydevd.py", line 1689, in
main()
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3\helpers\pydev\pydevd.py", line 1683, in main
globals = debugger.run(setup['file'], None, None, is_module)
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3\helpers\pydev\pydevd.py", line 1083, in run
pydev_imports.execfile(file, globals, locals)  # execute the script
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3\helpers\pydev_pydev_imps_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/dv90863/git/mario/demos/hello_world_demo.py", line 82, in
main_task_cls=HelloWorldTask)
File "C:\Users\dv90863\py3_6_mario\lib\site-packages\luigi\interface.py", line 192, in run
return _run(*args, **kwargs)['success']
File "C:\Users\dv90863\py3_6_mario\lib\site-packages\luigi\interface.py", line 209, in _run
return _schedule_and_run([cp.get_task_obj()], worker_scheduler_factory)
File "C:\Users\dv90863\py3_6_mario\lib\site-packages\luigi\interface.py", line 170, in _schedule_and_run
success &= worker.add(t, env_params.parallel_scheduling, env_params.parallel_scheduling_processes)
File "C:\Users\dv90863\py3_6_mario\lib\site-packages\luigi\worker.py", line 740, in add
current = queue.get()
File "", line 2, in get
File "c:\program files\python36\Lib\multiprocessing\managers.py", line 757, in _callmethod
kind, result = conn.recv()
File "c:\program files\python36\Lib\multiprocessing\connection.py", line 251, in recv
return _ForkingPickler.loads(buf.getbuffer())
AttributeError: Can't get attribute 'HelloWorldTask' on <module 'pydevd' from 'C:\Program Files\JetBrains\PyCharm Community Edition 2018.3\helpers\pydev\pydevd.py'>

Got some example code?

Sorry, I didn't notice your reply, this is about as simple I could get it down to:
`import luigi
class HelloWorldTask(luigi.Task):
def run(self):
with open(self.output().path, 'w') as output_file:
content = '{} {}!'.format("hello", "world")
output_file.write(content)
output_file.close()
def output(self):
    return luigi.LocalTarget('hello_world.txt')

def requires(self):
    return []

if name == 'main':
luigi.run(["HelloWorldTask"])`
Taking the luigi.run to a different main.py file which imports this one will make debug run but running it as it is under the pycharm IDE gives the same exception, including it here again:

ERROR: Luigi unexpected framework error while scheduling HelloWorldTask()
Traceback (most recent call last):
File "C:\Users\dv90863\py3_6_mario\lib\site-packages\luigi\worker.py", line 740, in add
current = queue.get()
File "", line 2, in get
File "c:\program files\python36\Lib\multiprocessing\managers.py", line 757, in _callmethod
kind, result = conn.recv()
File "c:\program files\python36\Lib\multiprocessing\connection.py", line 251, in recv
return _ForkingPickler.loads(buf.getbuffer())
AttributeError: Can't get attribute 'HelloWorldTask' on <module 'pydevd' from 'C:\Program Files\JetBrains\PyCharm Community Edition 2018.3\helpers\pydev\pydevd.py'>
INFO: Worker Worker(salt=676892175, workers=1, host=TLVCMEN000134, username=doroni, pid=8500) was stopped. Shutting down Keep-Alive thread
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3\helpers\pydev\pydevd.py", line 1689, in
main()
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3\helpers\pydev\pydevd.py", line 1683, in main
globals = debugger.run(setup['file'], None, None, is_module)
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3\helpers\pydev\pydevd.py", line 1083, in run
pydev_imports.execfile(file, globals, locals)  # execute the script
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3\helpers\pydev_pydev_imps_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:/Users/dv90863/git/mario/demos/hello_world_demo_files2/hello_world_demo.py", line 19, in
luigi.run(["HelloWorldTask"])
File "C:\Users\dv90863\py3_6_mario\lib\site-packages\luigi\interface.py", line 192, in run
return _run(*args, **kwargs)['success']
File "C:\Users\dv90863\py3_6_mario\lib\site-packages\luigi\interface.py", line 209, in _run
return _schedule_and_run([cp.get_task_obj()], worker_scheduler_factory)
File "C:\Users\dv90863\py3_6_mario\lib\site-packages\luigi\interface.py", line 170, in _schedule_and_run
success &= worker.add(t, env_params.parallel_scheduling, env_params.parallel_scheduling_processes)
File "C:\Users\dv90863\py3_6_mario\lib\site-packages\luigi\worker.py", line 740, in add
current = queue.get()
File "", line 2, in get
File "c:\program files\python36\Lib\multiprocessing\managers.py", line 757, in _callmethod
kind, result = conn.recv()
File "c:\program files\python36\Lib\multiprocessing\connection.py", line 251, in recv
return _ForkingPickler.loads(buf.getbuffer())
AttributeError: Can't get attribute 'HelloWorldTask' on <module 'pydevd' from 'C:\Program Files\JetBrains\PyCharm Community Edition 2018.3\helpers\pydev\pydevd.py'>

Not sure what your error was; I am able to attach a debugger inside the run method using PyCharm 2019.2. I had to modify your code to use luigi.build instead:
import luigi
class HelloWorldTask(luigi.Task):
    def run(self):
        with open(self.output().path, 'w') as output_file:
            content = '{} {}!'.format("hello", "world")
            output_file.write(content)
            output_file.close()
    def output(self):
        return luigi.LocalTarget('hello_world.txt')
    def requires(self):
        return []

if __name__ == '__main__':
    luigi.build([HelloWorldTask()], local_scheduler=True)