Working example cross platform tracing

Hi,
My team and I are looking more and more into implementing a distributed tracing solution; however, because we're working on an SPA solution, we need a cross-platform example on how distributed tracing would work or a minimal tutorial on how it could be implemented.
Could you guys give us a hint, or redirect us to a working example?
Many thanks in advance.

@dragoscirjan We have just published hipster opencensus demo on github (blog coming soon)

@mayurkale22 I've taken a fast look over the demo, however, I'm missing a major part in it. I mentioned SPA in my question (Single Page Application). This would mean having a Javascript Open Census API for browsers as well. Is there any plan for it?

@dragoscirjan This repository is only for the PHP implementation. The javascript implementation is being worked on https://github.com/census-instrumentation/opencensus-node although I'm not sure what state it's in. You may also want to ask around for examples in the organization's gitter: https://gitter.im/census-instrumentation/Lobby
As for an example/tutorial, the folks working on the https://opencensus.io are working to build tutorials and guides for things like interop between services.
Closing as this is not the right place for this question.

@chingor13 opencensus-node is node only. Since it uses NodeJs native libraries it can't be used within browsers. So my search for examples and browser implementation remains. I posted here as well as in the official browser (appear to be) project: https://github.com/census-instrumentation/opencensus-js-core in the hope of finding someone who could help me :) I will address the Gitter community as well. Thank you.


Generalize the mopafy! macro to work on parametrized traits

Adds to the mopafy! macro so that it can take traits with parameters like mopafy!(Paremetrized<A, B>).
I had to use parentheses in the variants which actually do something to avoid ambiguity but otherwise it is a quite small generalization. This does not make it possible to add trait bounds to those parameters as I do not know a good way to do this in macros but for my purposes I did not need that anyway.

Added a commit which fixes the use of no_std which I forgot to test.

Are there still plans to merge this?

Rebased on top of current master. Also had to had some lang_items to the no_std examples to get them to build.

Any chance of getting this merged and pushed to crates.io? If there are any problems with this PR I would be happy to update it.

@Marwes: the modifications to the lang items: what requires that? I haven’t had any problems with running the tests or the examples on stable, beta or nightly.

@chris-morgan I am not exactly sure why actually. I tried compiling the tests and got undefined reference errors from the linker and after looking up the signatures for the functions and adding them it compiled fine.
The best guess I can give is that I needed them due to compiling on windows and only windows versions of rustc properly check for stack overflow (the functions seem to refer to "frames"). Might be misunderstanding something though so it may be safer to remove them if it compiles fine on travis without them.

Very likely that those lang items are Windows specific, due to SEH exceptions which are quite different than dwarf which is used on other platforms.

@retep998 Thanks for the explanation. The guard page was the "overflow check" I thought though I was quite off base with "stack frames".

@chris-morgan Should I remove the additional lang items and/or are there any other modifications I should make?

This PR is useful. I hope it gets merged soon.


No warning for named break used incorrectly?

https://dartpad.dev/?id=cbdec4750cae0edda85029d894c804d5
enum Thing {
  one,
  two,
}

void main() {
  var thing = Thing.one;
  goback:
  switch (thing) {
    case Thing.one:
      print("one");
      thing = Thing.two;
      break goback;
    case Thing.two:
      print("two");
      break;
  }
}

I ran into this this weekend.  There are no lints or warnings, but the above only ever prints "one".    I think named breaks only work for loops?
I wasn't able to find any docs on named breaks, which maybe is its own separate bug?

I have package:lint (v 1.0.1) with recommended lints enabled.  I'm using whatever the current Flutter master has for Dart, it was 2.17.dev. or so.

Probably something close to:
Dart SDK version: 2.17.0-246.0.dev (dev) (Sun Mar 27 12:20:08 2022 -0700) on "macos_arm64"

A labeled break works for any labeled statement, so this is working as intended.
The break exits the labeled statement (the switch statement here), so for a labeled loop or switch, it works exactly like an unlabeled break would.
If you want to continue to the "two" case, you can use a continue to a labeled switch case:
void main() {
  var thing = Thing.one;
  switch (thing) {
    case Thing.one:
      print("one");
      continue thing_two;
    thing_two:
    case Thing.two:
      print("two");
      break;
  }
}


[FEATURE REQUEST] Secure local container registries for k8s application updates

In order to create a trustworthy air gapped install, teams create a local Docker registry. Access to this registry is unsecured. However this is also a systemic issue, we need to be able to create trustworthy air gapped Epiphany installations.
Once the Kubernetes application has been updated, the teams need to provide updates to customers with air gapped installations. This requires access to a TLS enabled local container registry. The teams would provide our customers with tar ball images and scripts to upload images to the Kubernetes hosted container registries. And then customers can upgrade their K8S applications and rollback using the kube config YAML scripts.
One of our teams, created a proof of concept using StorageOS to host an internal Docker registry using volumes provided by StorageOS.
Reference:
Kind clusters provide support for local registries Kind Issue 1543
SIG Cluster Lifecycle KEP-1755 Communicating a local registry
Tilt Custom Clusters

DoD checklist

[ ] Changelog updated
[ ] COMPONENTS.md updated / doesn't need to be updated
[ ] Feature has automated tests
[ ] Automated tests passed (QA pipelines)

[ ] apply
[ ] upgrade

[ ] Idempotency tested
[ ] Documentation added / updated / doesn't need to be updated
[ ] All conversations in PR resolved
[ ] Solution meets requirements and is done according to design doc
[ ] Usage compliant with license
[ ] Backport tasks created / doesn't need to be backported

Related to https://github.com/epiphany-platform/epiphany/issues/1764 and https://github.com/epiphany-platform/epiphany/issues/1765


--features', type=str, default='M'

Does this algorithm able to support MS mode use multivariate predict univariate, and I also try to use use_multi_gpu, but it doesn't work? should I modify somthing?

1st: No. As rare do researches perform 'MS' forecasting, no corresponding implementation is included.
2nd: Neither does use_multi_gpu. I only used a simple GPU during experiments so that I removed the corresponding codes about using multiple GPUs. However, you can refer to the souce codes of Informer(https://github.com/zhouhaoyi/Informer2020), whose architecture is the one this work imitates, if you want to use multiple GPUs.


Initial commit of the refactored Resource Provider and DAO layers

James..
this is my initial commit of the RP/DAO refactoring. There is still some more work to do on the XML Spring wiring for OSGi support. Also, I am havint trouble with the Resource Provider tests. Seems to be some sort of issue with Spring/JPA transaction management

Hi Bill- I see where you're going with this. I'm not totally clear on why it's needed/how it will be used though. Is the idea that you want to have your own implementations of the DAOs that don't use hibernate than then plug those into the resource providers? If so, why do they need to be in their own JAR for that to happen? Couldn't you just create a custom spring configuration that uses the RPs but wires them to a different implementation of the DAO interfaces?
Or am I misunderstanding the motivation?
One other thing to note- this pull request doesn't actually merge cleanly (you can see the This branch has conflicts message below that indicates this). It needs to merge in order for the CI server to build it and the test coverage tools to test it. here are some details on how to fix this...

One other comment- I'd prefer not to have those hardcoded METADATA.MF files in the repo if we can find a way for them to be generated by maven-bundle-plugin. They have version numbers embedded in them which will get out of date pretty quickly if we don't remember to bump them everytime we release a new version of HAPI.. and I'll guarantee that will get forgotten at some point :)

James..
Yes, the reason for the split is to be able to implement RPs and DAOs independently. In the OSGi world, there is good reason to keep them in separate JARs (bundles). Then you use Spring-DM (Gemini Blueprint) to wire across bundles via just interfaces.
I saw that message when I made the pull request and I’ll work on the merge today. It doesn’t look like it will be a big chore.
One other thing, most of the tests in ResourceProviderDstu1Test and ResourceProviderDstu2Test are failing with javax.persistence.TransactionRequiredException. However, all of the FhirResourceDaoXxxx tests succeed… Do you have any ideas why this might occur? Not having worked a bunch with Hibernate and JPA, I am looking for thoughts and ideas.
Cheers, Bill
From: James Agnew<EMAIL_ADDRESS>Sent: Tuesday, December 15, 2015 4:26 AM
To: jamesagnew/hapi-fhir
Cc: Bill Denton
Subject: Re: [hapi-fhir] Initial commit of the refactored Resource Provider and DAO layers (#270)
Hi Bill- I see where you're going with this. I'm not totally clear on why it's needed/how it will be used though. Is the idea that you want to have your own implementations of the DAOs that don't use hibernate than then plug those into the resource providers? If so, why do they need to be in their own JAR for that to happen? Couldn't you just create a custom spring configuration that uses the RPs but wires them to a different implementation of the DAO interfaces?
Or am I misunderstanding the motivation?
One other thing to note- this pull request doesn't actually merge cleanly (you can see the This branch has conflicts message below that indicates this). It needs to merge in order for the CI server to build it and the test coverage tools to test it. herehttps://help.github.com/articles/syncing-a-fork/ are some details on how to fix this...
—
Reply to this email directly or view it on GitHubhttps://github.com/jamesagnew/hapi-fhir/pull/270#issuecomment-164749248.

The METADATA.MF file is there so the project can be managed as a Plugin Project in Eclipse. This makes resolving package imports so much easier. I only put version numbers on the imports when it is actually needed. In OSGi, specifying version=”x.y.z” is just saying what the minimum version needs to be.. not the specific version. For instance, in hapi-fhir-base, the imports of org.apache.http.* specify version=”4.0” because the code references methods that were introduced in v4.0.
One thing I really don’t care for in the Maven bundle plugin is that it wants to put a version on every import and this is usually the latest version of things. The problem with this is it makes it really hard to install the bundle in an existing OSGi container that might not have that exact version in place. For things that are pretty generic like commons-io or commons-lang3, the version is not really useful. For things like javax.servlet, it can actually make it impossible to deploy if the version does not match the version of the underlying platform.
Like I said, I only use the versions when code references something that was not part of the base version of a package. Also, I pretty much never use “bracketing” version specifications (version=”(1.0,2.0]” which means version=1.x.x) since nearly everything has pretty good downward compatibility (v2.x will usually be compatible with code written for v1.x).
Cheers, Bill
From: James Agnew<EMAIL_ADDRESS>Sent: Tuesday, December 15, 2015 4:34 AM
To: jamesagnew/hapi-fhir
Cc: Bill Denton
Subject: Re: [hapi-fhir] Initial commit of the refactored Resource Provider and DAO layers (#270)
One other comment- I'd prefer not to have those hardcoded METADATA.MF files in the repo if we can find a way for them to be generated by maven-bundle-plugin. They have version numbers embedded in them which will get out of date pretty quickly if we don't remember to bump them everytime we release a new version of HAPI.. and I'll guarantee that will get forgotten at some point :)
—
Reply to this email directly or view it on GitHubhttps://github.com/jamesagnew/hapi-fhir/pull/270#issuecomment-164750721.

James..
I followed the instructions above and the refactoring branch is now merged into the master in my fork. I did an upstream merge prior to merging in the branch. Not a GIT expert by any means so I am hoping I did the right thing.
BTW, some other commits I made to the hapi-osgi-core project slipped in as well
cheers, Bill

I think I need to close this pull request and open a new one on the master branch??

Hmm no, unfortunately I have no idea why that would be happening.
I'll try to check it out and run it myself at some point soon and see if I
see anything obvious.
I think you need to add the new dao-base project to the list of modules in
the ALLMODULES profile in the root pom.xml. The CI server is failing
https://travis-ci.org/jamesagnew/hapi-fhir/builds/97096585 but I think
that's just because it's not finding that module.
Cheers,
James
On Tue, Dec 15, 2015 at 12:56 PM, Bill Denton<EMAIL_ADDRESS>wrote:

James..
Yes, the reason for the split is to be able to implement RPs and DAOs
independently. In the OSGi world, there is good reason to keep them in
separate JARs (bundles). Then you use Spring-DM (Gemini Blueprint) to wire
across bundles via just interfaces.
I saw that message when I made the pull request and I’ll work on the merge
today. It doesn’t look like it will be a big chore.
One other thing, most of the tests in ResourceProviderDstu1Test and
ResourceProviderDstu2Test are failing with
javax.persistence.TransactionRequiredException. However, all of the
FhirResourceDaoXxxx tests succeed… Do you have any ideas why this might
occur? Not having worked a bunch with Hibernate and JPA, I am looking for
thoughts and ideas.
Cheers, Bill
From: James Agnew<EMAIL_ADDRESS>Sent: Tuesday, December 15, 2015 4:26 AM
To: jamesagnew/hapi-fhir
Cc: Bill Denton
Subject: Re: [hapi-fhir] Initial commit of the refactored Resource
Provider and DAO layers (#270)
Hi Bill- I see where you're going with this. I'm not totally clear on why
it's needed/how it will be used though. Is the idea that you want to have
your own implementations of the DAOs that don't use hibernate than then
plug those into the resource providers? If so, why do they need to be in
their own JAR for that to happen? Couldn't you just create a custom spring
configuration that uses the RPs but wires them to a different
implementation of the DAO interfaces?
Or am I misunderstanding the motivation?
One other thing to note- this pull request doesn't actually merge cleanly
(you can see the This branch has conflicts message below that indicates
this). It needs to merge in order for the CI server to build it and the
test coverage tools to test it. here<
https://help.github.com/articles/syncing-a-fork/> are some details on how
to fix this...
—
Reply to this email directly or view it on GitHub<
https://github.com/jamesagnew/hapi-fhir/pull/270#issuecomment-164749248>.
—
Reply to this email directly or view it on GitHub
https://github.com/jamesagnew/hapi-fhir/pull/270#issuecomment-164839810.

Yes, I found that out when I finally got the merge to master finished… also need to add hapi-fhir-providers
Not sure it is needed but I also added them to SITE
From: James Agnew<EMAIL_ADDRESS>Sent: Tuesday, December 15, 2015 6:52 PM
To: jamesagnew/hapi-fhir
Cc: Bill Denton
Subject: Re: [hapi-fhir] Initial commit of the refactored Resource Provider and DAO layers (#270)
Hmm no, unfortunately I have no idea why that would be happening.
I'll try to check it out and run it myself at some point soon and see if I
see anything obvious.
I think you need to add the new dao-base project to the list of modules in
the ALLMODULES profile in the root pom.xml. The CI server is failing
https://travis-ci.org/jamesagnew/hapi-fhir/builds/97096585 but I think
that's just because it's not finding that module.
Cheers,
James
On Tue, Dec 15, 2015 at 12:56 PM, Bill Denton <notifications<EMAIL_ADDRESS>wrote:

James..
Yes, the reason for the split is to be able to implement RPs and DAOs
independently. In the OSGi world, there is good reason to keep them in
separate JARs (bundles). Then you use Spring-DM (Gemini Blueprint) to wire
across bundles via just interfaces.
I saw that message when I made the pull request and I’ll work on the merge
today. It doesn’t look like it will be a big chore.
One other thing, most of the tests in ResourceProviderDstu1Test and
ResourceProviderDstu2Test are failing with
javax.persistence.TransactionRequiredException. However, all of the
FhirResourceDaoXxxx tests succeed… Do you have any ideas why this might
occur? Not having worked a bunch with Hibernate and JPA, I am looking for
thoughts and ideas.
Cheers, Bill
From: James Agnew<EMAIL_ADDRESS>Sent: Tuesday, December 15, 2015 4:26 AM
To: jamesagnew/hapi-fhir
Cc: Bill Denton
Subject: Re: [hapi-fhir] Initial commit of the refactored Resource
Provider and DAO layers (#270)
Hi Bill- I see where you're going with this. I'm not totally clear on why
it's needed/how it will be used though. Is the idea that you want to have
your own implementations of the DAOs that don't use hibernate than then
plug those into the resource providers? If so, why do they need to be in
their own JAR for that to happen? Couldn't you just create a custom spring
configuration that uses the RPs but wires them to a different
implementation of the DAO interfaces?
Or am I misunderstanding the motivation?
One other thing to note- this pull request doesn't actually merge cleanly
(you can see the This branch has conflicts message below that indicates
this). It needs to merge in order for the CI server to build it and the
test coverage tools to test it. here<
https://help.github.com/articles/syncing-a-fork/> are some details on how
to fix this...
—
Reply to this email directly or view it on GitHub<
https://github.com/jamesagnew/hapi-fhir/pull/270#issuecomment-164749248>.
—
Reply to this email directly or view it on GitHub
https://github.com/jamesagnew/hapi-fhir/pull/270#issuecomment-164839810.

—
Reply to this email directly or view it on GitHubhttps://github.com/jamesagnew/hapi-fhir/pull/270#issuecomment-164969546.


Allow Empty String for -Exchange

Passing -Exchange an empty string should resort to the "default" exchange in RabbitMQ.
Taken from: https://www.rabbitmq.com/tutorials/tutorial-three-java.html

Nameless exchange
In previous parts of the tutorial we knew nothing about exchanges, but still were able to send messages to queues. That was possible because we were using a default exchange, which we identify by the empty string ("").
Recall how we published a message before:
channel.basicPublish("", "hello", null, message.getBytes());
The first parameter is the the name of the exchange. The empty string denotes the default or nameless exchange: messages are routed to the queue with the name specified by routingKey, if it exists.

ohh, I thought I fixed that... maybe I haven't pushed it...
I'll have to check.

This one can be closed ;)

Awesome, thanks!


Doc fix

May be you should add anchor values (if they exist)

May be you should add anchor values (if they exist)

it will be difficult because if I right remember they generated like grid...


Recursive verification for TranslatorRecursiveVerifier::verifiy_translation()

@maramihali please expand

This is included in: https://github.com/AztecProtocol/barretenberg/issues/991. We have unconstrained from_witness calls in the goblin recursive verifier to construct the  TranslationEvaluations input to verify_translation.


Makedeb License

📋 Description
Makedeb
License | AGPL-3.0-or-later
🔗 Data
https://mpr.makedeb.org/api
🎤 Motivation
Same as any other License badge.

As far as I can see, https://mpr.makedeb.org/api does not expose any endpoint that would allow us to get a license for a package.
Also, the first thing I see when I look at https://mpr.makedeb.org/api is
"NOTE: The API interface is current in development, and stability is not guaranteed. Endpoints may be changed and removed at any point, and you should avoid using the API interface for the time being if you're expecting stability."
As a service, this one looks like Makedeb is probably not a goer for us at this time.


Is there pre-processing of data required?

Orion version: 1.0.5
Python version: 3.7.3
Operating System: Windows 10

Description
Describe what you were trying to get done.
Tell us what happened, what went wrong, and what you expected to happen.
Using the example but passing different data:
train_data.head()
timestamp   value
0   19941205  3490.1
1   19941212  3488.7
2   19941219  3485.8
3   19941226  3486.1
4   19950102  3480.3
What I Did
orion.fit(train_data)
Paste the command(s) you ran and the output.
If there was a crash, please include the traceback here.

E0119 14:11:53.885504 28744 mlpipeline.py:552] Exception caught fitting MLBlock keras.Sequential.LSTMTimeSeriesRegressor#1
Traceback (most recent call last):
File "c:\usr\Python37\lib\site-packages\mlblocks\mlpipeline.py", line 549, in _fit_block
block.fit(**fit_args)
File "c:\usr\Python37\lib\site-packages\mlblocks\mlblock.py", line 302, in fit
getattr(self.instance, self.fit_method)(**fit_kwargs)
File "c:\usr\Python37\lib\site-packages\mlprimitives\adapters\keras.py", line 98, in fit
self._augment_hyperparameters(X, kwargs)
File "c:\usr\Python37\lib\site-packages\mlprimitives\adapters\keras.py", line 89, in _augment_hyperparameters
shape = np.asarray(X)[0].shape
IndexError: index 0 is out of bounds for axis 0 with size 0
Traceback (most recent call last):
File "", line 1, in
File "c:\usr\Python37\lib\site-packages\orion\core.py", line 84, in fit
self._mlpipeline.fit(data)
File "c:\usr\Python37\lib\site-packages\mlblocks\mlpipeline.py", line 649, in fit
self._fit_block(block, block_name, context)
File "c:\usr\Python37\lib\site-packages\mlblocks\mlpipeline.py", line 549, in _fit_block
block.fit(**fit_args)
File "c:\usr\Python37\lib\site-packages\mlblocks\mlblock.py", line 302, in fit
getattr(self.instance, self.fit_method)(**fit_kwargs)
File "c:\usr\Python37\lib\site-packages\mlprimitives\adapters\keras.py", line 98, in fit
self._augment_hyperparameters(X, kwargs)
File "c:\usr\Python37\lib\site-packages\mlprimitives\adapters\keras.py", line 89, in _augment_hyperparameters
shape = np.asarray(X)[0].shape
IndexError: index 0 is out of bounds for axis 0 with size 0

Hi @juliabelford!
The train_data you are showing does not require additional preprocessing if you are using one of our pipelines. Since you are using your own data, just make sure it follows the same format as we do, which is a pd.DataFrame with two columns (timestamp, value), similar to the one shown here
    timestamp     value
0<PHONE_NUMBER> -0.366359
1<PHONE_NUMBER> -0.394108
2<PHONE_NUMBER>  0.403625
3<PHONE_NUMBER> -0.362759
4<PHONE_NUMBER> -0.370746

Additionally, you need to set the correct hyperparameters for your data!  Based on the frequency of your data you want to change interval to reflect that, in the default setting interval=21600 which is equivalent to 6 hours. If your data is more frequent (5 minutes) then interval=300 would be most appropriate. The units here are 1 second.
Note that you can actually shrink your signal by aggregating it over too long of a period, which is what I presume happened in this case.
Stitching it all together would show something like (I am assuming you are running lstm_dynamic_threshold pipeline):
hyperparameters = {
    "mlprimitives.custom.timeseries_preprocessing.time_segments_average#1": {
        "interval": 300
    },
    'keras.Sequential.LSTMTimeSeriesRegressor#1': {
        'epochs': 5,
        'verbose': True
    }
}

orion = Orion(
    pipeline='lstm_dynamic_threshold',
    hyperparameters=hyperparameters
)

orion.fit(train_data)

Changing the aggregating interval should fix your problem, but if it hasn't, would you mind giving a bit more detail on the length of the signal you are using and possibly sharing the entire code snippet so that I can try to reproduce it from my side?

Hi @juliabelford!
The train_data you are showing does not require additional preprocessing if you are using one of our pipelines. Since you are using your own data, just make sure it follows the same format as we do, which is a pd.DataFrame with two columns (timestamp, value), similar to the one shown here
    timestamp     value
0<PHONE_NUMBER> -0.366359
1<PHONE_NUMBER> -0.394108
2<PHONE_NUMBER>  0.403625
3<PHONE_NUMBER> -0.362759
4<PHONE_NUMBER> -0.370746

Additionally, you need to set the correct hyperparameters for your data!  Based on the frequency of your data you want to change interval to reflect that, in the default setting interval=21600 which is equivalent to 6 hours. If your data is more frequent (5 minutes) then interval=300 would be most appropriate. The units here are 1 second.
Note that you can actually shrink your signal by aggregating it over too long of a period, which is what I presume happened in this case.
Stitching it all together would show something like (I am assuming you are running lstm_dynamic_threshold pipeline):
hyperparameters = {
    "mlprimitives.custom.timeseries_preprocessing.time_segments_average#1": {
        "interval": 300
    },
    'keras.Sequential.LSTMTimeSeriesRegressor#1': {
        'epochs': 5,
        'verbose': True
    }
}

orion = Orion(
    pipeline='lstm_dynamic_threshold',
    hyperparameters=hyperparameters
)

orion.fit(train_data)

Changing the aggregating interval should fix your problem, but if it hasn't, would you mind giving a bit more detail on the length of the signal you are using and possibly sharing the entire code snippet so that I can try to reproduce it from my side?

My data are daily, so does the interval need to be 246060?

My data are daily, so does the interval need to be 246060?

Based on the input you are showing:
  timestamp   value
0  19941205  3490.1
1  19941212  3488.7
2  19941219  3485.8
3  19941226  3486.1
4  19950102  3480.3

The difference is:

timestamp[1] - timestamp[0] = 7 seconds
timestamp[2] - timestamp[1] = 7 seconds
timestamp[3] - timestamp[2] = 7 seconds
timestamp[4] - timestamp[3] = 8876 seconds

Since the majority of records seem to be 7 seconds apart, I would set interval=7.

Based on the input you are showing:
  timestamp   value
0  19941205  3490.1
1  19941212  3488.7
2  19941219  3485.8
3  19941226  3486.1
4  19950102  3480.3

The difference is:

timestamp[1] - timestamp[0] = 7 seconds
timestamp[2] - timestamp[1] = 7 seconds
timestamp[3] - timestamp[2] = 7 seconds
timestamp[4] - timestamp[3] = 8876 seconds

Since the majority of records seem to be 7 seconds apart, I would set interval=7.

setting the interval to 7 did not break the code. However, my timestamps are dates and not seconds. So how would I interpret this result? The test data are from 2020-01-01 till 2021-01-13
anomalies
start       end  severity
0  20209748  20210112  2.870566

setting the interval to 7 did not break the code. However, my timestamps are dates and not seconds. So how would I interpret this result? The test data are from 2020-01-01 till 2021-01-13
anomalies
start       end  severity
0  20209748  20210112  2.870566

It depends on how did you convert your original timestamps, you should just invert it.

It depends on how did you convert your original timestamps, you should just invert it.

@sarahmish Can you clarify how "interval" is used.  Suppose your time series has a consistent sample rate of 6 samples per minute, or every 10 seconds.    What does it mean to set the interval to something larger than 10, say 5 minutes like you originally suggested (interval=300)?

@sarahmish Can you clarify how "interval" is used.  Suppose your time series has a consistent sample rate of 6 samples per minute, or every 10 seconds.    What does it mean to set the interval to something larger than 10, say 5 minutes like you originally suggested (interval=300)?

Hi @kb1ooo, sure!
The purpose of the mlprimitives.custom.timeseries_preprocessing.time_segments_average#1 primitive is to make your signal equi-spaced. If your signal's frequency is every 10 seconds, then the output of the primitive is a time series with a value at every 10 seconds.
Let's say you have the following signal
        timestamp    value
0<PHONE_NUMBER>  10844.0
1<PHONE_NUMBER>   8127.0
2<PHONE_NUMBER>   6210.0
3<PHONE_NUMBER>   3820.0

It's clear that the interval between each timestamp and the other is 300. Though notice there is a gap between instance 2 and 3, there should be a timestamp<PHONE_NUMBER>. The primitive then creates a placeholder (nan) and assumes the imputation primitive will take care of it. The output would be [[10844.], [ 8127.], [ 6210.], [   nan], [ 3820.]].
What happens when you pick an interval larger than the frequency of your signal?
In this case, it will take the average of values. Consider the same signal mentioned above and we set the interval to be 600, then we take the average of the interval. In this case the output would be [[9485.5], [6210. ], [3820. ]].
Let me know if you need further clarification

Hi @kb1ooo, sure!
The purpose of the mlprimitives.custom.timeseries_preprocessing.time_segments_average#1 primitive is to make your signal equi-spaced. If your signal's frequency is every 10 seconds, then the output of the primitive is a time series with a value at every 10 seconds.
Let's say you have the following signal
        timestamp    value
0<PHONE_NUMBER>  10844.0
1<PHONE_NUMBER>   8127.0
2<PHONE_NUMBER>   6210.0
3<PHONE_NUMBER>   3820.0

It's clear that the interval between each timestamp and the other is 300. Though notice there is a gap between instance 2 and 3, there should be a timestamp<PHONE_NUMBER>. The primitive then creates a placeholder (nan) and assumes the imputation primitive will take care of it. The output would be [[10844.], [ 8127.], [ 6210.], [   nan], [ 3820.]].
What happens when you pick an interval larger than the frequency of your signal?
In this case, it will take the average of values. Consider the same signal mentioned above and we set the interval to be 600, then we take the average of the interval. In this case the output would be [[9485.5], [6210. ], [3820. ]].
Let me know if you need further clarification

@sarahmish Thanks very much for your detailed reply.  One further question, what if you have multiple disjoint signals for training, that you don't want to interpolate over?   E.g. say you have several 5 day contiguous chunks of data.
Thanks,
Marc

@sarahmish Thanks very much for your detailed reply.  One further question, what if you have multiple disjoint signals for training, that you don't want to interpolate over?   E.g. say you have several 5 day contiguous chunks of data.
Thanks,
Marc

Interesting case @kb1ooo
Our preprocessing primitives are based on the assumption that the signal is contiguous. So what happens when the data is non-contiguous?
Running the pipeline without any changes
As you would have guessed, the mlprimitives.custom.timeseries_preprocessing.time_segments_average primitive would introduce many nan into your signal, which will then get imputed but the resulting signal will not resemble your original signal and hence, the anomaly detection model might find anomalies because of the imputation artifact.
Removing a primitive
Assume that your signal is already equi-spaced within each chunk. Then technically you do not require the above primitive. However, the mlprimitives.custom.timeseries_preprocessing.rolling_window_sequences primitive will assume continuity and create training windows that interleave between days.
Preprocess each chunk individually
I would recommend applying the preprocessing steps on each disjoint segment individually. Piece the training examples together, and then train the model. Unfortunately, we don't support this right now.
Run the pipeline on each chunk individually
The last option would would to treat each chunk as a separate signal and run the pipeline on each one. In this case, you would be training several models which might not be ideal.

Interesting case @kb1ooo
Our preprocessing primitives are based on the assumption that the signal is contiguous. So what happens when the data is non-contiguous?
Running the pipeline without any changes
As you would have guessed, the mlprimitives.custom.timeseries_preprocessing.time_segments_average primitive would introduce many nan into your signal, which will then get imputed but the resulting signal will not resemble your original signal and hence, the anomaly detection model might find anomalies because of the imputation artifact.
Removing a primitive
Assume that your signal is already equi-spaced within each chunk. Then technically you do not require the above primitive. However, the mlprimitives.custom.timeseries_preprocessing.rolling_window_sequences primitive will assume continuity and create training windows that interleave between days.
Preprocess each chunk individually
I would recommend applying the preprocessing steps on each disjoint segment individually. Piece the training examples together, and then train the model. Unfortunately, we don't support this right now.
Run the pipeline on each chunk individually
The last option would would to treat each chunk as a separate signal and run the pipeline on each one. In this case, you would be training several models which might not be ideal.

@sarahmish Thanks again for the detailed reply.  I think your "Preprocess each chunk individually" makes the most sense, and is what I have done in the past for other implementations.  For realistic problems, I believe it's quite common to have training data with significant gaps that cannot be imputed.   You may even want to deliberately set it up that way for performance evaluation purposes (e.g. suppose you have 12 months of data, you may want to hold out 1 week of random data each month for testing, as opposed to say 10 months of contiguous data for training and 2 months for testing).     I'm not sure where the windowing/imputation happens, but it seems that  having a "maxgap" parameter which would specify the maximum gap in seconds over which you allow imputation, would make sense.  Your signal gets split on >maxgap gaps and fed to the windowing.   Can you point me to where I might look to see what those changes would entail?
Thanks,
Marc

@sarahmish Thanks again for the detailed reply.  I think your "Preprocess each chunk individually" makes the most sense, and is what I have done in the past for other implementations.  For realistic problems, I believe it's quite common to have training data with significant gaps that cannot be imputed.   You may even want to deliberately set it up that way for performance evaluation purposes (e.g. suppose you have 12 months of data, you may want to hold out 1 week of random data each month for testing, as opposed to say 10 months of contiguous data for training and 2 months for testing).     I'm not sure where the windowing/imputation happens, but it seems that  having a "maxgap" parameter which would specify the maximum gap in seconds over which you allow imputation, would make sense.  Your signal gets split on >maxgap gaps and fed to the windowing.   Can you point me to where I might look to see what those changes would entail?
Thanks,
Marc

@kb1ooo thanks for the suggestion. I opened a new issue relevant to the idea you are suggesting #171.
I listed the primary primitives you would need to investigate there. The approach I am proposing does not alter the current implementation but rather is an additive. However, I believe you can investigate these primitives if you have a different approach; for imputation we directly use sklearn.impute.SimpleImputer and for windowing we use mlprimitives.custom.timeseries_preprocessing.rolling_window_sequence.

@sarahmish thank you, I will take a look per your suggestions in #171


dbeaver: fix build

dbeaver: fix build

Because of #189843 assigning to @ck3d

Result of nixpkgs-review pr 191939 run on x86_64-linux 1

1 package built:

dbeaver

Result of nixpkgs-review pr 191939 run on aarch64-linux 1

1 package built:

dbeaver

Thanks for fixing the issue. I am not sure what happened on my side.


Expose library as CLI

This change allows jsonexport to be used on the command line:
echo '[{"a" : 0}, {"b": 1}]' | jsonexport

@cburgmer Thanks!

@cburgmer Can you update the README.md with usage instruction?


Link to tracking issues in unstable features documentation

@bors: r+

:pushpin: Commit 57111a034f5508a5aaa84a13b2d2ac2967596d14 has been approved by alexcrichton


Add Faure sequence

PR implements Faure sequences, a kind of (0, s)-digital net construction.

Just needs to run the formatter and this should be good.

Thanks!


1.x | GH Actions: remove the trial run against PHPUnit 10

The 2.x series supports PHPUnit 10. This no longer needs to be tested on the 1.x branch.

coverage: 97.814%. remained the same
when pulling b6638cb6da62e00deeb24c1a449b20c5588e3ed0 on JRF/ghactions-remove-phpunit-10-trial
into f1f7e15daf4f0e7225757ff902322df6d47c1385 on 1.x.


10 - [Block] Expanding Multi Column

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #10
Test URLs:

Before: https://main--tiaa--aemsites.aem.live/public
After: https://10-expanding-multicolumn--tiaa--aemsites.aem.live/public

@andreituicu for accessibility, could you please make the expansion buttons clickable, so that the site is navigable without a mouse, only using the Tab key


updating value with createLocalStorage inside createEffect causes "too much recursion" error

I use createLocalStorage from @solid-primitives/storage and encounter too much recursion error in browser when I did the following:
import { createLocalStorage } from "@solid-primitives/storage";

const [localStore, setLocalStore] = createLocalStorage({ prefix: "test" });

createEffect(() => {
  if (localStore["token"] === undefined || localStore["token"] === "") {
    setLocalStore("token", "");
  }
});

Although I admit that there isn't much reason to create an effect like that, this is quite a simplified example, and I sometimes need to reset the state of the local storage under a certain condition, and that condition along with localStore["token" === ""] can be combined with other conditions with && or ||.
And I think it can sometimes be easy to overlook an effect like that?
I didn't expect that this could cause infinite loop or "too much recursion" as createSignal and createStore from solid-js don't seem to have this problem.
import { createSignal } from "solid-js";

const [token, setToken] = createSignal('');

createEffect(() => {
  if (token === "") {
    setToken("");
  }
});

import { createStore } from "solid-js/store";

const [state, setState] = createStore({
  value: "",
});

createEffect(() => {
  if (state["value"] === "") {
    setState("value", "");
  }
});

This could probably be fixed in user's code by creating a guard like:
createEffect(() => {
  if (someCustomCondition...) {
    if (!localStore["token"] === "") {
      setLocalStore("token", "");
    }
  }
});

But could this be something that is good to fix? Just to make it behaves the same as createStore or createSignal from solid-js, which doesn't causes infinite loop whe updating it inside an effect like that

Signals shouldn't be synchronized in effects, and reading from a signal you are writing to is especially bad as it can lead to infinite loops, as you saw.
The general solution to ensuring that signals have certain values is to:

create a custom setter callback that corrects the value before writing to the signal:const [localStore, setLocalStore] = createLocalStorage({ prefix: "test" });

function setLocalStoreToken(value?: string) {
	if (value === undefined) value = ""
	setLocalStore("token", value)
}

correct the value in a derivationconst [localStore, setLocalStore] = createLocalStorage({ prefix: "test" });

const localStoreToken = () => localStore.token ?? ""


Kylin 4332

When feature "add from table tree" added, schema + _ + tableName used in list, due to AngularJS components doesn't know who is the parent of the child.
Add this logic to Reload and Unload table buttons.

@Sidonet Hi,
Would you please describe the detail steps for reproducing the issue?
It works fine on me when reloading tables on "Data Source".

Hello,
Attached to Jira.

Need more time to investigation.


[help wanted] t-rich-select  grouping options

is it possible to use <optgroup> inside t-rich-select

I would like to do this as well


Allows to call weasyprint with file paths

Using your wrapper we phased with strange hangs on Linux. It happened even with small 1 page files with few lines of text. We was not able to find the reason of it but passing input\output through files helps.
P.S. I tried to add tests, but they was not working properly: result.Error contains warnings from output. Could be my machine specific. I think some generic things to handle it correctly can be implemented. But it out of the scope the current issue.

@AndreiMikhniuk thank you for the contribution!

@AndreiMikhniuk version v4.0.1 has been release with this change. I'm creating release 5.0.0 at the moment to upgrade to .net8 (example projects) and all packages and weasyprint to 60
I've added a short text to the readme, the error message you see is related to https://stackoverflow.com/questions/67607643/what-does-this-warning-mean-it-happens-every-time-i-restart-the-node-process#answer-67715630


Templates for something that is not IControl

Hi!
That is more of a question that an issue, but should it be possible by design to generate something with template when that something doesn't implement IControl?
I tried writing simple class (closely following DataTemplate implementation):
    public class StuffTemplate
    {
        public Type DataType { get; set; }

        [Content]
        [TemplateContent]
        public object Content { get; set; }

        public bool SupportsRecycling { get; set; } = true;

        public bool Match(object data)
        {
            if (this.DataType is null)
                return true;
            else
                return this.DataType.IsInstanceOfType(data);
        }

        public object Build(object data)
        {
            if (this.Content is Func<IServiceProvider, object> direct)
                // do stuff...
        }
    }

, defined StuffTemplate in XAML with content which is not IControl, and it failed, but failed at the very-very end when it tried to cast result to IControl here:
https://github.com/AvaloniaUI/Avalonia/blob/756adb5dd5467ba5f0de000008d4c91009bfb2db/src/Markup/Avalonia.Markup.Xaml/XamlIl/Runtime/XamlIlRuntimeHelpers.cs#L28
It seems it should work if only cast to IControl is removed.

We should probably change it from ControlTemplateResult to TemplateResult<T>, but that will require changes in compiler.

I'm sorry, I don't exactly understand where T for TemplateResult should come from. And compiler just throws object around. It seems instead of a closure containing the line I cited above, just Func<IServiceProvider, ValueTuple<object, INameScope>> can be used and Bob's your uncle :)

ControlTemplateResult is strongly typed. To keep said strong typing, our DeferredTransformationFactoryV* method should return TemplateResult<T>. Where said T will come from?

I don't exactly understand about "strongly typed" part: return new ControlTemplateResult((IControl)obj, scope) immediately casts it to object, since DeferredTransformationFactoryV1's return type is Func<IServiceProvider, object>.
What I've meant above is that changing DeferredTransformationFactoryV1's return type to Func<IServiceProvider, (object, INameScope)>, adding something like:
class XamlTemplateBase<Arg, Res> : ITemplate<Arg, (Res, INameScope)> where Arg : IServiceProvider
{
    [Content]
    [TemplateContent]
    public object Content { get; set; }

    public Type TargetType { get; set; }

    public (Res, INameScope) Build(Arg arg)
    {
        if (this.Content is Func<IServiceProvider, object> direct)
        {
            var (boxed, scope) = direct((IServiceProvider)arg);
            if (boxed is Res result)
                return (result, scope); // Or TemplateResult<Res>(result, scope)
        }
        throw ...;
    }
}

and inheriting ControlTemplate from XamlTemplateBase<IServiceProvider, IControl> is of course not statically typed, but contains same number of object casts as before, while still allowing client code to use templates for anything.


Controlled inputs with gsap

I've been trying to handle animations and I would like to update the controlls using gsap, but I'm not quite sure that there is a way to do so.
I have noticed that on the todo of the README  it talks about replicating use-cases where the values are being changed outside of the GUI. I might be wrong, but this is probably a very frequent use case and it would be nice to have an example on the documentation!

Here's an example of how I used it, in case anyone comes to the same issue:
//Declares controls
const [params, setParams] = useControls("Particles", () => ({
    bufferColor: "#f8665d",
    particleSize: { value: 6, min: 0, max: 10 },
    transparencyState: { value: 0.0, min: 0, max: 1 },
    randomState: { value: 0.0, min: 0, max: 1 },
    state1: { value: 1.0, min: 0, max: 1 },
    state2: { value: 1.0, min: 0, max: 1 },
    state3: { value: 1.0, min: 0, max: 1 },
  }));

  //Performs an animation on load
  useEffect(() => {
    gsap.to(params, {
      delay: 1,
      transparencyState: 1.0,
      duration: 2.0,
      ease: "linear",
      onUpdate: () => { //On each tick, creates custom function
        setParams({
          transparencyState: params.transparencyState,
        });
      },
    });
  }, []);


Pipelines section reorg

This PR is a continuation of previous work to cleanup, refresh, and reorganize the Pipelines section of the Platform docs.
Additionally, I took the opportunity to take care of some small, old docs issues that had been sitting.
This PR comprises the following JIRA issues (originally DOCS tickets, moved to CI project):

CI-11530
CI-11610
CI-11608
CI-11644
CI-11611

Additionally, this PR required me to update many links. I will remove reviewers who are only pinged for link changes.
Previews:

Pipelines section: Most topics updated/rearranged with the exception of some looping strategy topics.
Pipeline FAQ page: Moved to the KB as the docs council has agreed that we need to centralize FAQs into a single source (KB) rather than having multiple repetitive and sometimes contradictory sources. I searched the existing Platform FAQ for questions containing "pipeline" and moved relevant questions into the Pipeline FAQ topic, then refreshed and reorganized them.

Note that the GitHub "files changed" is showing some files as deleted that were actually moved.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65ea224e6eeaa800ab3bfaec--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://65eb4521c1caadbfec24f056--harness-developer.netlify.app


Optimize postgres for tests

Change-type: patch
Signed-off-by: Josh Bowling<EMAIL_ADDRESS>

@balena-ci I self certify!


Nancy 1.4.3 stop serving images readed from stream.

Description
Nancy stop respond with proper content when serving content from Stream using FromStream.
Steps to Reproduce
private object GetImage(string name)
{
System.Resources.ResourceManager man = Resources.ResourceManager;
                byte[] dta = (byte[]) man.GetObject(name);
                if ((dta == null) || (dta.Length == 0))
                    return new MemoryStream();
                MemoryStream ms = new MemoryStream(dta);
                ms.Seek(0, SeekOrigin.Begin);
                System.IO.Stream image = ms;
                response = new Nancy.Response();
                response = Response.FromStream(image, "image/jpeg");
                return response;
}

This was working fine before - is there anything that could break it ? Library conflict ?
When I inspect ms object, I see that he have content and position is on 0.
Using FromImage(relativepathtoimage) give me the proper result. but I would like to make it work again with streams.
System Configuration

Nancy version: 1.4.3 (tested with 1.4.1 and 1.4.2)
Nancy host

[x] Self-Hosted v1.4.1

Other Nancy packages and versions: Nancy.Authentication.Stateless 1.4.1, Nancy.Serialization.JsonNet 1.4.1
Other non-nancy packages: deepcloner, fluentnhibernate, lesi,collections, ilmerge, microsoft.sqlserver.smo, mysql.data, newtonsoft.json, nhibernate, nito.asyncex, nlog, pri.longpath, protobuf-net, restsharp, sharpziplib, system.data.sqlite.core, taskscheduler, tmdblib
Environment (Operating system, version and so on): Win8.1 pro
.NET Framework version: 4.6.1

It looks like Nancy from some reason stoped serving images.
The solution was removing "using" around streams


Update dom before initializing MutationObserver

updateDom should be done before initializing MutationObserver because domChanged function can be immediatly triggered. This seems unneeded and can lead to bug.
In my case I use content-editable inside a modal and the value passed is reset to an empty string during init while content-editable innerText has the good value.

And if I change the content editable, the value is correctly updated

thank you for catching and fixing @ctjhoa
makes sense to invoke updateDom before attaching the MutationObserver

released as 1.0.2


mediawiki-dump-generator: init at unstable-2023-12-18

Description of changes

Python 3 tools for downloading and preserving wikis
Works, I've been able to backup one wiki with those.
Note that I'm also adding dependencies of mediawiki-dump-generator that weren't in nixpkgs in this PR. Also note that I had to bring back from the dead the package poster3 because mediawiki-dump-generator needs it. I added myself as a maintainer to that package.
Things done

Built on platform(s)

[X] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[X] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

I am no longer using Nix. Someone else will have to take maintainership of the packages I've added if this ever gets merged


Framework Listener and logging support

Implements FrameworkEvent, Framework Listeners and an internal Framework logger.
Closes #40
Signed-off-by: The MathWorks, Inc<EMAIL_ADDRESS>

@CppMicroServices/developers
Please review and provide feedback.
Built and tested on linux, mac and windows.
Note: this code is still incomplete from a behavioral standpoint and the framework listener tests will fail. I'm waiting for @saschazelzer 's changes to the bundle life cycle (i.e. the introduction of Framework::init()) to complete this work.

I've noticed many indentation issues. These will be fixed before merging.

I like the changes and will do a more thorough review after the merge with the lifecycle branch.
After the merge, we need to properly send the framework events via the bundle thread mechanism, to avoid potential locking issues.

@CppMicroServices/collaborators please review.

@saschazelzer Thanks for all the great feedback. There are only a couple comments left which require your attention and it looks like they were hidden with my latest submit to this PR.

This is looking really good. I found two more small issues about a std::move but other than that, I'd say it is good to merge.

excellent!
I will fix those std::move issues, open an issue for the std::unique_ptr<LogSink> task, do a final build on Windows, Mac and Linux for my own sanity and then merge.


memotemplate feature

Now we can specify a template file for memos using Go's text/template format.
For interoperability, I also implement that the template file supports glidenote/memolist.vim's format, but if it is too much it will revert.

Looks Good To Me :+1:

Thank you


Support for nullable types on operation parameters

{ "type": ["string", "null"] } is a valid JSON Schema type definition and as Swagger Schema references the schema directly (https://github.com/reverb/swagger-spec/blob/master/schemas/v2.0/schema.json#L489) - it works and is shown on the swagger-ui. It does not work when added as operation parameters: https://github.com/reverb/swagger-spec/blob/master/schemas/v2.0/schema.json#L393-L396.
It could and should?
sample working swagger.json with nullable field on the schema properties:
https://gist.githubusercontent.com/ikitommi/7de56d1a89534bbbbfaa/raw/3c96da810b0b836e617907f92578ae4f27f79c8c/swagger2.json

For 2.0, it can't and shouldn't. Keep in mind the source of truth is the spec, not schema. Please follow #229.


node runtime will now use the CJS bundle generated using vite.

The only downside with this approach atm is that the bin file for the cli will be written in JS instead of TypeScript unless another build process is added. Considering the size of this file, I don't think it is necessary. Perhaps, I can split it up into smaller files to then be bundled by vite.


change ssh_sock to use TERRAFORM_STACK_NAME

Why is this PR needed?
When ssh-agend -a NAME is called with a NAME that is too long it fails
with:
unix_listener: path "/home/jenkins/workspace/caasp-jobs/v4/e2e/vmware/test_upgrade_plan_from_previous_with_upgraded_control_plane-daily/agent.sock" too long for Unix domain socket

Fixes: SUSE/avant-garde#1596
What does this PR do?
change ssh_sock to use TERRAFORM_STACK_NAME
This ensure the resulting PATH is a maximum of 1+3+1+70+1+10=86 bytes long.

make one different TERRAFORM_STACK_NAME the same
Otherwise it might cut the build number off, which is what ensures it
being uniqe.
Also make the README match.
Anything else a reviewer needs to know?
Info for QA
Related info
Status BEFORE applying the patch
Choosing a long JOBNAME that results in a long $WORKSPACE does make it fail.
Status AFTER applying the patch
Choosing a long JOBNAME that results in a long $WORKSPACE does not make it fail.
Docs
Merge restrictions
(Please do not edit this)
We are in v4-maintenance phase, so we will restrict what can be merged to prevent unexpected surprises:
What can be merged (merge criteria):
    2 approvals:
        1 developer: code is fine
        1 QA: QA is fine
    there is a PR for updating documentation (or a statement that this is not needed)

I tested the failing test and it passed the previously failing stage:


Heatmap on Cartesian

Hello,
I would need to use "Heatmap on Cartesian" chart in Grafana, however when I try to put it into my grafana panel and adapt options to return it throws error saying:
ECharts Execution Error
redeclaration of formal parameter data
My Grafana version is 9.3 and all the other examples I tried worked so far.
here is my panel code:
`// prettier-ignore
const hours = [
'12a', '1a', '2a', '3a', '4a', '5a', '6a',
'7a', '8a', '9a', '10a', '11a',
'12p', '1p', '2p', '3p', '4p', '5p',
'6p', '7p', '8p', '9p', '10p', '11p'
];
// prettier-ignore
const days = [
'Saturday', 'Friday', 'Thursday',
'Wednesday', 'Tuesday', 'Monday', 'Sunday'
];
// prettier-ignore
const data = [[0, 0, 5], [0, 1, 1], [0, 2, 0], [0, 3, 0], [0, 4, 0], [0, 5, 0], [0, 6, 0], [0, 7, 0], [0, 8, 0], [0, 9, 0], [0, 10, 0], [0, 11, 2], [0, 12, 4], [0, 13, 1], [0, 14, 1], [0, 15, 3], [0, 16, 4], [0, 17, 6], [0, 18, 4], [0, 19, 4], [0, 20, 3], [0, 21, 3], [0, 22, 2], [0, 23, 5], [1, 0, 7], [1, 1, 0], [1, 2, 0], [1, 3, 0], [1, 4, 0], [1, 5, 0], [1, 6, 0], [1, 7, 0], [1, 8, 0], [1, 9, 0], [1, 10, 5], [1, 11, 2], [1, 12, 2], [1, 13, 6], [1, 14, 9], [1, 15, 11], [1, 16, 6], [1, 17, 7], [1, 18, 8], [1, 19, 12], [1, 20, 5], [1, 21, 5], [1, 22, 7], [1, 23, 2], [2, 0, 1], [2, 1, 1], [2, 2, 0], [2, 3, 0], [2, 4, 0], [2, 5, 0], [2, 6, 0], [2, 7, 0], [2, 8, 0], [2, 9, 0], [2, 10, 3], [2, 11, 2], [2, 12, 1], [2, 13, 9], [2, 14, 8], [2, 15, 10], [2, 16, 6], [2, 17, 5], [2, 18, 5], [2, 19, 5], [2, 20, 7], [2, 21, 4], [2, 22, 2], [2, 23, 4], [3, 0, 7], [3, 1, 3], [3, 2, 0], [3, 3, 0], [3, 4, 0], [3, 5, 0], [3, 6, 0], [3, 7, 0], [3, 8, 1], [3, 9, 0], [3, 10, 5], [3, 11, 4], [3, 12, 7], [3, 13, 14], [3, 14, 13], [3, 15, 12], [3, 16, 9], [3, 17, 5], [3, 18, 5], [3, 19, 10], [3, 20, 6], [3, 21, 4], [3, 22, 4], [3, 23, 1], [4, 0, 1], [4, 1, 3], [4, 2, 0], [4, 3, 0], [4, 4, 0], [4, 5, 1], [4, 6, 0], [4, 7, 0], [4, 8, 0], [4, 9, 2], [4, 10, 4], [4, 11, 4], [4, 12, 2], [4, 13, 4], [4, 14, 4], [4, 15, 14], [4, 16, 12], [4, 17, 1], [4, 18, 8], [4, 19, 5], [4, 20, 3], [4, 21, 7], [4, 22, 3], [4, 23, 0], [5, 0, 2], [5, 1, 1], [5, 2, 0], [5, 3, 3], [5, 4, 0], [5, 5, 0], [5, 6, 0], [5, 7, 0], [5, 8, 2], [5, 9, 0], [5, 10, 4], [5, 11, 1], [5, 12, 5], [5, 13, 10], [5, 14, 5], [5, 15, 7], [5, 16, 11], [5, 17, 6], [5, 18, 0], [5, 19, 5], [5, 20, 3], [5, 21, 4], [5, 22, 2], [5, 23, 0], [6, 0, 1], [6, 1, 0], [6, 2, 0], [6, 3, 0], [6, 4, 0], [6, 5, 0], [6, 6, 0], [6, 7, 0], [6, 8, 0], [6, 9, 0], [6, 10, 1], [6, 11, 0], [6, 12, 2], [6, 13, 1], [6, 14, 3], [6, 15, 4], [6, 16, 0], [6, 17, 0], [6, 18, 0], [6, 19, 0], [6, 20, 1], [6, 21, 2], [6, 22, 2], [6, 23, 6]]
.map(function (item) {
return [item[1], item[0], item[2] || '-'];
});
return {
tooltip: {
position: 'top'
},
grid: {
height: '50%',
top: '10%'
},
xAxis: {
type: 'category',
data: hours,
splitArea: {
show: true
}
},
yAxis: {
type: 'category',
data: days,
splitArea: {
show: true
}
},
visualMap: {
min: 0,
max: 10,
calculable: true,
orient: 'horizontal',
left: 'center',
bottom: '15%'
},
series: [
{
name: 'Punch Card',
type: 'heatmap',
data: data,
label: {
show: true
},
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};`

I made it work by renaming the data array to dataValues.

I have made work by renaming the data array to dataValues.

@xerocobra Correct, the data parameter conflicts with Apache Examples because it's a reserved parameter in Grafana.
We migrated many Apache ECharts examples to https://echarts.volkovlabs.io for the community to avoid this kind of issue.
Please let us know if there is anything else.


Primed Concussion TNT renders as owl.

See title. I noticed this on server only, but not 100% sure if client is unaffected.

Verify that client & server config match 100%

I can confirm that IDs for owl and primed charge are 689998 in both.
I looked into your code and found that it is set that way by default.

Oops. I will fix it shortly
On 27 Apr 2016 2:29 PM, "Joel Lacour"<EMAIL_ADDRESS>wrote:

I can confirm that IDs for owl and primed charge are 689998 in both.
I looked into your code and found that it is set that way by default.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/SleepyTrousers/EnderZoo/issues/131#issuecomment-214983306

We shouldn't even be using global IDs

Fixed.


Enable Exclusive Capture Lock to Specific Functions

Enable exclusive capture lock to ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure()
and ID3D12GraphicsCommandList4::CopyRaytracingAccelerationStructure().
Make the PostProcessXXX() to add metablock data block attach to the API calls block.

CI gfxreconstruct build queued with queue ID 248602.

CI gfxreconstruct build # 4748 running.

CI gfxreconstruct build # 4748 failed.

LunarG CI failure seemed to be due to a hung X server.  Restarting.

CI gfxreconstruct build queued with queue ID 248817.

CI gfxreconstruct build # 4753 passed.


ENV2022-04-11 New ICCOD and LRMs

Request for 3 ICCOD codes for AQUACHECK nutrients proficiency tests AQ607, AQ615, AQ603. Reports are provided.
https://vocab.ices.dk/?ref=29
Request for a new CRMCO standard - LRM WLUK026-21
https://vocab.ices.dk/?ref=24

LGC-AQ-R603
LGC-AQ-R607
LGC-AQ-R615

WLUK026-21


Broadcasting authz transactions

I'm working on web interface for authz module and I'm trying to broadcast MsgGrant/MsgRevoke transactions. It's not working properly and I'm getting those errors: "failed to execute message; message index: 0: doesn't exist.: invalid type", "Broadcasting transaction failed with code 2 (codespace: sdk). Log: errUnknownField "*authz.GenericAuthorization": {TagNum: 4, WireType:"fixed64"}: tx parse error". The code is here: https://github.com/cosmos/admin-module/blob/versions-fixes/react/src/redux/action-creator/authz.ts
I'm passing to broadcast the following object:

With the following data, and get the error, that is shown on screenshot:

@webmaster128 Issue reopened

cosmjs-types 0.3 now shipts the authz and feegrant types. So if you want to use that instead of your own code generator, feel free to give it a try.
Please note that CosmJS still uses version 0.2 (#928), but you should be able to mix them for most use cases.


Onload callback?

Hi,
Is it possible to add a callback function called when the video is loaded ?
In my case, I would like to "fade in" my video with a CSS classe when it is ready to play.
This could be a new option like this one:
{
videoLoaded : function() { }, // fired when the video is loaded (or when the placeholder .jpg is loaded [if video is not supported])
}
In this way, your could easily add new options like:
{
videoLoaded : function() { }, // fired when the video is loaded
videoStarted: function() { }, // fired when the video starts
videoEnded: function() { } // ...
}
edit
My request is similar to https://github.com/VodkaBears/Vide/issues/130

Hi, did you find any solution for that? I need a callback like videoEnded: function(){} or something like that.

Nop, sorry...

There is getVideoObject method: https://github.com/VodkaBears/Vide#methods
There is HTMLVideoElement documentation: https://developer.mozilla.org/en/docs/Web/API/HTMLVideoElement

Had the requirement to fade the video in. This way you can fetch the raw HTML5 video event:
# pseudo-coffeescript
$('#your-video').vide(...)
instance = $('#your-video').data('vide')
video = instance.getVideoObject()
video.onloadeddata = ->
  # do what you like


Confirm on type "tap" not working

Hello,
Do not know if this is normal or not but adding a confirm on a tap action do not work (at least for me).
   {
      "entity": "cover.portail",
      "name": "Ouvrir Portail",
      "type": "tap",
      "tap_action": {
        "service": "cover.open_cover"
        "confirm": true
      }
    },

Am I missing something ?
This lead to JSON not beeing read (Unavailable).
"Toggle" cannot be an option as entity do not report state an is only usable via a service.

Yep! A comma.
Please perform a schema check on your JSON before raising an issue.
See https://github.com/house-of-abbey/GarminHomeAssistant/blob/main/README.md#dashboard-definition for advice.


Base functions

Adds base functions to the package:

a Frame class to represent a video frame;
a Reader class to wrap opencv cv2.VideoCapture
a Writer class to wrap opencv cv2.VideoWriter that can be more easily initialised;
a Player class that loops over videos automatically

It's unclear why the test that was previously successful started failing with message "Segmentation fault (core dumped)".
Anyway this error is originated in the class TestWriter. It might be related to the fact that Writer is taking a Reader as input, but it is not closed or managed in any way.


EC2 host not completing agent registration through UI in HA environment

Rancher Version: 1.0.1
Docker Version: 1.11.1
OS and where are the hosts located? (cloud, bare metal, etc):  RHEL 7.2 in AWS
Setup Details: (single node vs. single node, internal DB vs. external DB) Multinode, external DB (AWS Aurora), behind ELB, SSL terminated at Rancher Server
Environment Type: (Cattle/Kubernetes/Swarm/Mesos) Cattle
Steps to Reproduce:
Followed the instructions for HA.
Manually edited the rancher-ha.sh script to use http instead of https. The registration URL is the internal ELB FQDN. Also this ELB is configured as described in #4738
Filled the Add host -> Amazon EC2 forms.
Results:
The new machine's agent is stuck in Waiting for agent connection... state:

In addition, I cannot access the machine as the Machine config dialog does not allow the download of the machine config files.
Maybe the issue could be related with the fact that the procedure for adding new hosts to an HA environment implies the extra step of copying the ca.crt file to /var/lib/rancher/etc/ssl in the dockerhost.
Expected:
The host to be added.

@lekum, I just checked this with 1.0.2-dev2 to verify the fix for:
AWS ELB + Rancher HA Returning HTTP instead of HTTPS #4697
You might want to give that a go, or wait for 1.0.2 GA. I didnt have to bother manually adding the ca.crt file to my rancher server hosts. Adding the cert/key/intermediate certs via the UI, and using the provided rancher-ha.sh script took care of that step. I'll look to make suggested changes to the docs as things have changed a bit.

Hi,
I have tested with version 1.0.2 and I get stuck in the same Waiting for agent connection.. message. However, now I'm using this confitguration:
Rancher Version: 1.0.2
Docker Version: 1.11.1
OS and where are the hosts located? (cloud, bare metal, etc):  RHEL 7.2 in AWS
Setup Details: (single node vs. single node, internal DB vs. external DB) Multinode, external DB (AWS Aurora), behind ELB, SSL terminated at Rancher Server with self-signed auto-generated (by Rancher Sever) certificate
Environment Type: (Cattle/Kubernetes/Swarm/Mesos) Cattle
Steps to Reproduce:
Followed the instructions for HA.
Created a self-signed certificate using rancher UI.
The registration URL is the internal ELB FQDN SSL endpoint. Also this ELB is configured as described in #4738
Filled the Add host -> Amazon EC2 forms.
Results:
The new machine's agent is stuck in Waiting for agent connection... state:

In addition, I cannot access the machine as the Machine config dialog does not allow the download of the machine config files.
Maybe the issue could be related with the fact that the certificate is self-signed (?)
Expected:
The host to be added.

@lekum can you describe the network? For example, Is this host local to your rancher server, are they on the same VPC? Is there security group access between these machines on port 22?

They are in the same VPC. There are apparently no problems with the security groups because I can manually create a host with the same characteristics and add it via the "Add Host" UI menu and it works. In fact, the moment that the process gets stuck if after the docker-machine has entered the machine and provisioned it to run the rancher agent.

Hi,
I have found the id_rsa file inside the /var/lib/docker/volumes/... of one of the rancher servers, and entered the agent dockerhost from the rancher server.
The container had exited and docker logs of the container showed this message:
ERROR: https://OUR-ELB-URL.elb.amazonaws.com/v1 is not accessible

I have manually tried a curl of that URL from that same dockerhost and the curl fails because the SSL certificate is self-signed (it is the one auto-generated by Rancher).

It seems that the rancher-agent can't work with a registration URL with SSL and a self-signed certificate.

Right, it looks like a bug where the FINGERPRINT environmental password isn't added to the docker run command.

Related:
#4404

Verified this working with rancher/server:v1.1.0-dev5-rc5. Added, removed then added some more ubuntu ec2 hosts via the Rancher docker-machine functionality.


missing part of select box in set ownership screen

OS: macOS Sierra 10.12.4
Chrome:

FF:

EvmGroup-super_administrator is not certainly last:

@mzazrivec @martinpovolny Someone who could fix it ?

maybe @karelhala @himdel ?

@karelhala WDYT?
Looks like we need to either remove that overflow: hidden from the GTL area, or extend it to the end of the screen...

@himdel I tried a fast fix with extending GTL area to let's say 350px but if dropdown is more than said area it still get's cut off. I think the safest way would be to shrink the dropdown (currently using max-height: 350px)

Right, that makes sense, looks like the component supports a size parameter, to limit the max number of lines, which is even better than pixel-based contstaints.
Doing a PR..

@karelhala That said, the only reason this gets hidden is that
.miq-sand-paper, .miq-sand-paper>div {
    background: #f5f5f5;
    overflow: hidden;
}

do you remember what it was there for? Seems to work quite well without it..


bytes, strings: add ToValidUTF8

I have seen multiple places were string([]rune(x)) (where x has underlying type string) or a handcrafted function was used to replace invalid utf8 sequences in strings by utf8.RuneError.
In many places only very few of the processed strings actually have invalid utf8 sequences in them.
The pattern string([]rune(x)) is short and does not require a package import but is inefficient in that it involves at least two runtime function calls (that iterate over the runes multiple times) and possibly allocates twice (once for the rune array and once for the string).
I propose (no language change needed) to detect and optimize this pattern and use a special optimized runtime function to sanitize utf8 sequences the way string([]rune(x)) does. This function should use a stack local tmp buf if the resulting string is small and does not escape (like other runtime string functions do) and should allocate only once for the result string and only when there are invalid utf8 sequences in the string.
As an alternative (or addition to the proposal) a new function could be added to the utf8 package that does the semantic equivalent of string([]rune(x)) but in a more efficient manner. However this function would not be able to make use of all the optimizations the runtime with compiler support can and would make the new function only available from a specific std lib version onwards. This would also make new programs not compile with older std libs and existing uses of string([]rune(x)) not optimized automatically. There would also be likely performance regressions for small non escaping strings where the existing string([]rune(x)) was able to stack allocate the return string but the new utf8 function could not when returning a modified string.
If this sounds something we can pursue i would like to implement an optimization of string([]rune(x)) (and/or utf8 package function) for go1.12.
/cc @josharian @randall77

I don't understand the motivation. Is this an important problem that requires special compiler support? You haven't justified it here. You say you've seen the pattern, but it's a somewhat odd thing to do and I would expect it to be rare in well-written code anyway.

It does not require compiler support we could also add a function in the e.g. utf8 package. Absent that it seems often string([]rune(x)) is used as that is what the runtime provides already. Having a utf8 function that works like string([]rune(x)) but more efficiently could also avoid unecesarrily allocating by providing an optimized std lib funtion thats easily available.

Given that almost no one will know what string([]rune(x)) does beyond being a no-op at first glance, it seems like a properly-named function would be a lot clearer than a magic compiler optimization. This issue should almost certainly be proposing a new function in unicode/utf8. The question about how often this comes up remains.

Not all use cases are coded as string([]rune(x)). Some functions named like sanitize(UTF8), clean(UTF8), coerceToUTF8 seem to carry out the same operation. I think the use case comes up half as often in code as utf8.ValidString if google mono repo is indicative of general use.

@robpike and I talked about this. This functionality fits better into strings/bytes than to unicode/utf8. Nothing in utf8 returns a string or []byte yet, while this conversion is very much like strings.ToUpper, etc. We think this should be strings.ToValidUTF8 and bytes.ToValidUTF8.
After fixing #26304 and #26305, the implementation can be:
package strings

func ToValidUTF8(s string) string {
    return strings.Map(func(r rune) rune { return r }, s)
}

Comment made in review of the CL:
This might be a better design:
// ToValidUTF8 treats s as UTF-8-encoded bytes and returns a copy with run of bytes representing invalid UTF-8 replaced with repl, which may be empty.
func ToValidUTF8(s, repl []byte) []byte {
  ...
}

Rather than blow up the bytes, replace the bad encoding. And allow the user to specify a possibly empty replacement.
ToValidUTF8(s, nil)  clears them out.
ToValidUTF8(s, []byte{'?'}) makes it readable.

The name might be wrong for this design, but it is a superior function. Also the existing decoding mechanisms don't do this directly, but replace each byte, which to me argues this is better in part because it adds functionality.

SGTM will send a new CL.
I was thinking about adding another parameter to control if each run or each byte of an invalid sequence is replaced. The later might not be that much more useful apart from generating a string of same length and is easily implemented using the existing strings.Map function.

Design didn't get hashed out for Go 1.12, so bumping to Go 1.13.

Hi @martisch, I agree using Map to create a string of the same length is trivial, but that suggests it could just as easily be done by the caller instead. ToValidUTF8 above provides new functionality by replacing runs of invalidity by a single replacement and I think that's what it should concentrate on, without cluttering its parameters with an additional flag.

@martisch, want to send this tomorrow (last day of Go 1.13 development)? Or want me to? I also like the two argument proposal.

@bradfitz, yes I was planing to send a new CL tuesday/wednesday to still have this for Go 1.13. sorry for the delay.

new version with new API send. PTAL


RSS feeds

How will RSS feeds be generated ?
In O1, in different modules (Blogs, Body, Title, Tags, ...), IFeedItemBuilder is implemented to populate the XmlElements.
There is also an RSSPart with tokenizable properties to specify which values use for each RSS item properties.

See #467 Adding Feeds module.


Frontend route fix

Description
This PR includes the following proposed change(s):

{List all the changes, if possible add the jira ticket #}

Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Refactoring / Documentation
[ ] Version change

if your change is a breaking change, please add breaking change label to this PR
How Has This Been Tested?
Please describe the tests that you ran to verify your changes.

Completed a submission in the application

Does the change impact or break the Docker build?

[x] Yes
[ ] No

If Yes: Has Docker been updated accordingly?

[x] Yes
[ ] No

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have made corresponding changes to the documentation
[x] New and existing unit tests pass locally with my changes

I've made all the changes it should be good to go

I've made all the changes it should be good to go


Add Certificate of Enrollment

Description

add endpoint for certificate of enrollment (matriculation enrollment)
feel free to approve or already add to ui, this is non breaking so the API can be merged to develop at any given time
Closes #848

Dependency update

List all new dependencies (delete if no additions)

Type of change (remove all that don't apply)

New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[X] Manually tested all use cases this could alter

Test Configuration:

OS: Windows Mac Linux

Browser: Firefox Chrome Safari Chromium

Frontend: (remove all that don't apply)

[X] Development build

Backend: (remove all that don't apply)

[X] deployed experimental build

Checklist: (remove all that don't apply)

[ ] I added corresponding E2E tests (especially for bugfixes)
[X] I added corresponding unit tests (if API code)
[X] I have performed a self-review of my own code
[X] My changes generate no new linting warnings or console warnings
[ ] I have updated the package.json version if this is a new release candidate (remove is it is not)
[ ] I have updated the CHANGELOG.md to include any changes made in this PR (add WIP to the top, if there is none already)

@tobias-wiese I would prefer to (as a student) always show the download button and only invoke the download of a certificate, if the button is pressed. Currently, we fetch (on page load) all certificates for all semesters and show icons when they are ready. This is  a waste of network resources


Crash on use Commit menu (VS2019, 5.1.729)

Visual Studio 2019, "TSVN 2019", Version 5.1.729 - crash.
#69 again
Version 5.1.711 VSIX is not available for download. :( Cant use now. Removed yet

Oh no, seems like a difficult bug to kill!
Try the new release (5.1.731)

Thanks for fast support. 👍  I glad to help you to improve app. ;)
Simce like good. "Pending Changes", "Commit", "Update", "Shelve" etc.
But... has been randomly crash. One time - crash on project loading; second - single file (right mouse menu) Commit. Now is not reproductive yet. I will be continue checking it.
Detail: "Visual Studio 2019" (16.11.0 Preview 3.0). Maybe Preview is problem? :)

Glad to hear it is at least partly fixed :P
Sounds like a timing/async issue, will do some further investigation.
Preview shouldn't be a problem, I am developing TSVN using VS 2022 Preview...

Please, release 5.1.711 VSIX for manualy downloading. This stable build.

https://github.com/sboulema/TSVN/releases/tag/v5.1.711

Oh no, seems like a difficult bug to kill!
Try the new release (5.1.731)

too bad, this doesn't work either.

Not giving up! Please try the new release (5.1.734)

Please try the new release (5.1.734)
Sorry, but crash again.
Open VS. Open project. Click "Commit", (all ok), close window.
Change code. Click "Commit". Hold, crash.
Reopen VS. Open project. Click "Commit". Hold, crash.

:(
Thanks for testing these builds, give this release a try please (5.1.735)

:(
Thanks for testing these builds, give this release a try please (5.1.735)

Seems to work now! thanks for the quick response!

:(
Thanks for testing these builds, give this release a try please (5.1.735)

Seems to work now! thanks for the quick response!

Confirm! "Click test is succesfully" :D

v5.1.735 is stable. All features works.


C++ snippets stopped working

I noticed today, that C++ snippets stopped working for me. This message appears, when entering insert mode the first time, in a C++ file.
{'throwpint': 'TextChangedI Autocommands for "*"..function vsnip#get_complete_items[4... "body": ["__interface I${1:Interface}", "{", "\t$0", "};"],^@    "description": "C'}

It might have something to do with this recent commit: https://github.com/rafamadriz/friendly-snippets/commit/7dc25b370122fee0ebacb9d250b8fabe33069ac7?

Hello @ghillb , it does appear that a few commas had been left out. Though there is a PR (#188) that I just tested locally that seems to resolve this issue.

Just pulled main and it appears they are working again :raised_hands:


[SDP-1076] httphandler/services/data: publish the receiver wallets invitation events on disbursement start

What
This PR moves the receiver wallets' publishing events from the data.DisbursementInstructionModel.ProccessAll function to services.DisbursementManagerService.DisbursementStart.
Why
Since uploading instructions may happen multiple times before a disbursement starts, issuing that event there could cause unnecessary spamming to receivers.
Known limitations
N/A
Checklist
PR Structure

[x] This PR has a reasonably narrow scope (if not, break it down into smaller PRs).
[x] This PR title and description are clear enough for anyone to review it.
[x] This PR does not mix refactoring changes with feature changes (split into two PRs otherwise).

Thoroughness

[x] This PR adds tests for the new functionality or fixes.
[x] This PR contains the link to the Jira ticket it addresses.

Configs and Secrets

[x] No new CONFIG variables are required -OR- the new required ones were added to the helmchart's values.yaml file.
[x] No new CONFIG variables are required -OR- the new required ones were added to the deployments (pr-preview, dev, demo, prd).
[x] No new SECRETS variables are required -OR- the new required ones were mentioned in the helmchart's values.yaml file.
[x] No new SECRETS variables are required -OR- the new required ones were added to the deployments (pr-preview secrets, dev secrets, demo secrets, prd secrets).

Release

[x] This is not a breaking change.
[ ] This is ready for production.. If your PR is not ready for production, please consider opening additional complementary PRs using this one as the base. Only merge this into develop or main after it's ready for production!

Deployment

[ ] Does the deployment work after merging?

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr182.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr182.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr182.previews.kube001.services.stellar-ops.com

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr182.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr182.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr182.previews.kube001.services.stellar-ops.com

stellar-disbursement-platform-backend-preview is available here:SDP:      https://sdp-backend-pr182.previews.kube001.services.stellar-ops.com/healthAP:       https://sdp-ap-pr182.previews.kube001.services.stellar-ops.com/healthFrontend: https://sdp-backend-dashboard-pr182.previews.kube001.services.stellar-ops.com


Improve calculation of JSON_INT_MAX

From https://github.com/udp/json-parser/blob/e6426ae/json.c#L49-L55. That value can be calculated mathematically using 2**((n * 8) - 1) - 1. Which can also be done using the following bit shift:
static const json_int_t JSON_INT_MAX = (1L << ((8 * sizeof(json_int_t) - 1))) - 1

If Using

static const json_int_t JSON_INT_MAX = (1L << ((8 * sizeof(json_int_t) - 1))) - 1

It will trigger a warining such as:
json.c:48:1: warning: integer overflow in expression [-Woverflow]
 static const json_int_t JSON_INT_MAX = (1L << ((8 * sizeof(json_int_t) - 1))) - 1;
 ^~~~~~

Using this will be better:
static const json_int_t JSON_INT_MAX = (json_int_t)((1UL<<((sizeof(json_int_t) * 8) - 1)) - 1);

Looks like this is being addressed in #102

Would that work on a platform where long (and hence 1UL) is 32-bit, while json_int_t is defined (probably not in a portable way) to be 64-bit?

What was wrong with the previous definition of JSON_INT_MAX reverted by fcfa748? It's not clear to me.
static const json_int_t JSON_INT_MAX = (((unsigned json_int_t)0 - (unsigned json_int_t)1) / (unsigned json_int_t)2);


Introduce a dynamic JSON parser for JS and a faster http engine that uses it

This change introduces a new HttpEngine that uses the browser's fetch and json() calls directly so that all of the JSON parsing happens in native code. The resulting dynamic is then passed to a new DynamicJsJsonReader for use by the adapters.
Of note, I also tried a version of this where I modified the existing ktor engine to call JSON.parse() directly with the byte buffer in the response. I found that approach to be roughly 1/2 as fast as using the native json() api.
I put the new http engine behind a flag, so it shouldn't break any existing behavior.
There are still performance issues with the Call creation, but this change speeds up the response parsing by ~4-5x.
See https://github.com/apollographql/apollo-kotlin/issues/4732

All of those comments make sense. I'll take a stab at another version!

Not sure what "native" is these days 😅 . What do you mean by using the native json() api.

I'm talking about Response.json() (https://developer.mozilla.org/en-US/docs/Web/API/Response/json). With this API the response never reaches the JS runtime until it has been parsed, so the parse is truly "native" (C++ code).
With all of that said, what would you think about providing an expect utility function that wraps all of this functionality?
To your point about it being early to go all-in on KMM/KJS, I don't want to make its failure a self-fulfilling prophecy. We should make it easy for others to come in and get something moderately performant up and running without understanding too many library internals.
I'm imagining maybe a new library like apollo-js-wrapper like:
expect suspend fun <D : Query.Data> wrapQuery(query: Query<D>, apolloClient: ApolloClient): ApolloResponse<D>
expect suspend fun <D : Mutation.Data> wrapMutation(mutation: Mutation<D>, apolloClient: ApolloClient): ApolloResponse<D>

The default implementaiton could just be apolloClient.execute() and the JS implementation could be something like:
suspend fun fetchToJson(url: String, requestInit: RequestInit): dynamic {
  // basically what I had in `FastBrowserJsHttpEngine`
}

suspend fun <D : Query.Data> wrapQuery(query: Query<D>, apolloClient: ApolloClient): ApolloResponse<D> {
  val body = buildJsonString {
    query.composeJsonRequest(this, customScalarAdapters)
  }
  val d = fetchToJson(...)
  // error handling etc
  val reader = DynamicJsJsonParser(d)
  return query.parseFromJson(reader)
}

I'm talking about Response.json()

👍 Thanks for the link!

The default implementaiton could just be apolloClient.execute() and the JS implementation could be something like:

suspend fun <D : Query.Data> wrapQuery(query: Query<D>, apolloClient: ApolloClient): ApolloResponse<D> {
  val body = buildJsonString {
    query.composeJsonRequest(this, customScalarAdapters)
  }
  val d = fetchToJson(...)
  // error handling etc
  val reader = DynamicJsJsonParser(d)
  return query.parseFromJson(reader)
}

My issue is that this breaks the ApolloClient contract. If there's an ApolloClient parameter, the caller can expect that stuff like executionContext, APQs, timeouts, interceptors, HTTP cache, normalized cache and more get honoured. The ApolloClient API is a lot more than HTTP fetch and bypassing everything for JS sounds like a lot of future troubles.

We should make it easy for others to come in and get something moderately performant up and running without understanding too many library internals.

For what it's worth, the APIs used in the no-runtime doc are all public APIs. If anything, I think I'd like to use this opportunity to improve the ergonomics of that. It might be useful for other non-JS users too.
All in all, thanks a lot for looking into this! This is cool stuff! Sorry it's the end of a big week here and my brain is a bit fried  😄 I don't want us to commit to something that's going to cost in maintenance in the long run. Let me recharge a bit over the week end and maybe I'll see this with more clarity on Monday!

I like the simplicity of that! I guess the issue becomes configurability

Agreed.

Introduce a new HttpConfiguration object that we pass into the functions where we can put things like headers/cookies (maybe even interceptors some day!?).

Not a fan of this. That'll end up duplicating most of ApolloClient.

Make these extension functions on top of HttpEngine (or pass an HttpEngine). The trouble there is that we're back to our old friend HttpRespnse, and needing to customize it for dynamic.

As you found out, I'm a bit wary of touching HttpReponse as that changes the contract of a lot of things (no more bytes-only).
New proposal!: Make it work at the NetworkTransport layer? This API is very small:
interface NetworkTransport {

  /**
   * Execute a request.
   *
   * This function must not throw in normal circumstances. Instead, emit an [ApolloResponse] with a non null [ApolloResponse.exception].
   * It may throw if the error is the result of a programming error like wrongly configured interceptors.
   *
   * @param request the request to execute.
   * @return a flow of responses.
   */
  fun <D : Operation.Data> execute(
      request: ApolloRequest<D>,
  ): Flow<ApolloResponse<D>>

  fun dispose()
}

It could use its own HTTP fetching mecanism that can read request.headers and configure the underlying HTTP code?
From the caller perspective, it's an extra call:
apolloClient = ApolloClient.Builder()
                           // a network transport that consumes JS objects as dynamic instead
                           // of reading them byte by byte to make parsing faster on JS
                           .useDynamicNetworkTransport("https://example.com/graphql)
                           .build()

Anyone trying to use HttpInterceptors would get an exception because we check it there. Same thing for HTTP cache, etc... these will all be forbidden at client construction time.
Of course that means you'll have to go through the price of making an ApolloCall but sounds like this is OK?
Or (New Proposal #3) if we say we don't want to use ApolloClient, then doing the HTTP call can be the responsability of the caller and then we add easy API to parse the response:
val operation = MyQuery(myVariables)

// toRequestBody() is in Apollo Kotlin
val postBody: String = operation.toRequestBodyString()

// executeHttpCall() is outside Apollo Kotlin
val networkResponse: dynamic = executeHttpCall()

// toApolloResponse() is in Apollo Kotlin
// if response is a BufferedSource, it uses the existing JsonReaders
// if response is a dynamic (not sure how to detect this reliably, maybe it's just the fallback case), it uses the faster JsonReader
val apolloResponse = networkResponse.toApolloResponse(operation, customScalarAdapters)

@baconz many thanks for updating this 💙
As discussed async, this PR now contains the minimal changes to support DynamicJsJsonReader and we decided to postpone the bigger apollo-runtime changes to a later point where we have a better understanding of what makes JS parsing so slow.
Thanks again for looking into this! @BoD can you take a look?

Thanks!


forge fmt incorrectly formats square brackets

Component
Forge
Have you ensured that all of these are up to date?

[X] Foundry
[X] Foundryup

What version of Foundry are you on?
nightly-8d8bc28dddfe2395750ea12ff4472520a59398b6
What command(s) is the bug in?
forge fmt
Operating System
macOS (Apple Silicon)
Describe the bug
With the setting bracket_spacing = true enabled, forge fmt modifies square brackets to have a space on the left-hand side.
e.g. uint256 allowed = allowance[from][msg.sender];
becomes uint256 allowed = allowance[ from][ msg.sender];

reopening per https://github.com/foundry-rs/foundry/pull/3374#issuecomment-1260447347

@gakonst sry, i didn't notice that you reopened this one. closing in favor of #3391


a subprocesses has no name

rpc_parallel worker processes have non-specific names
eg.
/proc/39466/exe parallel-worker
it would be nice to wrap/alter the spawn code to name spawned subprocesses with something for operators to glean.
eg.
coda-validator or coda-prover or coda-snark-worker

@nholland94  @cmr
is possible
perl snippit
$0="what you looking at nathan";
sleep(120);

run it
perl foo.pl

results
jkrauska  65812  0.0  0.1 110180  4268 ?        S    10:58   0:01      \_ sshd: jkrauska@pts/0,pts/1
jkrauska  65813  0.0  0.1  30416  5644 pts/0    Ss   10:58   0:01          \_ -bash
jkrauska  75437  0.0  0.0  26940  3856 pts/0    S+   18:46   0:00          |   \_ what you looking at nathan

https://unix.stackexchange.com/questions/167490/how-can-a-process-appear-to-have-different-name-in-ps-output

in utop, this is ineffective.  Not sure if it works in non REPL universe.
utop # Sys.argv;;
- : string array = [|"/usr/bin/utop"|]

utop # Sys.argv.(0);;
- : string = "/usr/bin/utop"

Sys.argv.(0) <-  "hello";;
- : unit = ()

utop # Sys.argv;;
- : string array = [|"hello"|]

...

ps
jkrauska  65812  0.0  0.1 110180  4268 ?        S    10:58   0:02      \_ sshd: jkrauska@pts/0,pts/1
jkrauska  65813  0.0  0.1  30416  5644 pts/0    Ss   10:58   0:01          \_ -bash
jkrauska  77096  0.1  0.3  59036 13448 pts/0    Sl+  19:00   0:00          |   \_ /usr/bin/ocamlrun /usr/bin/utop

The runtime doesn't expose the raw argv values, it copies them into ocaml values. But, it stores them in a C symbol called caml_main_argv, so we could manipulate that with some C code (I don't think ctypes will be able to see that symbol?)

@nholland94
@cmr
@psteckler
Workable solution found! (thanks Paul!)
libbsd [1] has a C function that exposes the ability to rename a running process and is readily available on debian/ubuntu
I was able to do a fairly trivial Ctypes implementation with some tricky dune build options.
spttest.ml
open Ctypes
open Foreign

let setproctitle =
    foreign
      "setproctitle"
      (string @-> returning void)

let _ = setproctitle "Hello Nathan" ;
        Unix.sleep 900

dune
(executable
 (name spttest)
 (libraries unix ctypes ctypes.foreign)
 (link_flags -cclib -Wl,-z,nodlopen -cclib -Wl,-u,libbsd_init_func  -cclib -lbsd-ctor -cclib -lbsd)
 (modes native))

Without the -cstor you ALSO need to call an init function which proved tricky to trivially accomplish in Ctypes.
The libbsd code is less cross platform, but is easy to find in debian.
However, several places pointed to postgres [2] as having a very portable cross platform solution...
Both code seems similar.  It may be easier to ONLY bring over this particular file/content instead of requiring the whole library.

https://gitlab.freedesktop.org/libbsd/libbsd

https://github.com/postgres/postgres/blob/master/src/backend/utils/misc/ps_status.c

Let me know if we can add this to the rpc_parallel forked code to identify those subprocesses by name.

GHC does this for worker processes, I tweaked the code for it a year or so ago. Let me see if I can find it.

Here they are calling pthread_setname_np, which unsurprisingly only works on pthreads. If the workers are actual processes you need one of the other techniques, but if they're threads this is the right thing.

Closing this issue as it is stale for a long time.


Updated Graph/README.markdown

Few of the links in the "Graph" section had white spaces in its addresses, this PR has these links fixed.
** Markdown does not identify links with spaces (i.e ../Linked List/) as URLs. All white space characters need to be replaced with %20 to be encoded properly (i.e ../Linked%20List/).

Thanks!


Added loan information on liquidation page

closes #31

Thanks, @yamijuan can you use separate cards for each section similar to the borrow page.

Thanks, @yamijuan can you use separate cards for each section similar to the borrow page.

@bartosz-lipinski done!

@bartosz-lipinski done!


 It sort of makes sense to expose it.

Considered it. Opted to hide as much of the underlying get as is reasonable in order to open us up to the possibility of changing the underlying parsing library should a nicer one come along.


Creating examples folder

Currently we have a demo.py in the root. This should change and we should have examples folder in the root and examples in it.

With #21, I moved demo.py and the marker layer demo notebook into a folder called "demo". Feel free to change the name to examples if you prefer.


QR code points to loopback address

In a number of cases on non-DigitalOcean hosted servers, QR code points to loopback address.
Possible workaround on a per-install basis:
sed -i 's/<IP_ADDRESS>/w.x.y.z/;s/127\.0\.0\.1/w\.x\.y\.z/' /usr/local/lib/node_modules/lamassu-admin/node_modules/ip/lib/ip.js
(Replacing w, x, y, and z with the four octets of the server's IP address.)

This is apparently by design; see https://github.com/indutny/node-ip/blob/master/lib/ip.js#L299
Since you're only querying for public IPs, the library returns <IP_ADDRESS> if it can't find a public IP on any network interface.
In these circumstances, such as on Amazon EC2, the server has a private IP address that is 1-1 NATted to a public IP address (which unfortunately the server knows nothing about).
The ideal solution here is going to be to allow the user to specify their own IP address or hostname, (see issue #56) whether it was detected correctly or not.


feat: develop in docker

Support for developing in docker with vscode

please change Chinese comments to English:)

Fixed


Bug fix: Absolute image path

Absolute image path causing problems when app is not run in a root directory.

@JonasHess thanks for PR!


Fix error handling when item has no files attached

item_file_download fails cryptically, as does item_list_files

This currently gives an empty data.frame, 55f0b70ce4b0dacf699ead75 is an item in my account with no files in it.
item_list_files("55f0b70ce4b0dacf699ead75")
#> data frame with 0 columns and 0 rows

Do you want different behavior?

Ah, this may have been fixed and not closed.


metrics: add memory and CPU metrics for meta node

I just notice that this issue has been done in this PR https://github.com/singularity-data/risingwave/pull/3706. Should it be closed?

Yes, thanks for reminding!