spike times transpose

Fixes issue #12
PSTH plots can be produced for published Steinmetz DANDIset

Are you sure that this isn't due to some changes that you made, that changes how data that is read is oriented?

I've double checked and I'm using the master branch of the matnwb repo when this issue comes up. I haven't marged any changes in I/O.
The logic of the error also makes sense.
In HDF5, spikes_times is a dataset of size (N,). It currently get loaded into MatNWB into a matrix of size (N,1). The cell2mat function is trying to concatenate multiple arrays of size (N,1), but it requires the arrays to be matched in the number of rows (1st dimension). Hence, why I need to transpose the arrays.


New example

Hi, I used your library with an Arduino Mega2560 and I can share my example program with you my example to help other people.
Best regards. Emiliano.

Hi @eborghi10 it looks like you could use the getRotation rather than getRawRotation so that you don't need to do the normalisation in your own code?
Did you re-implement it because something wasn't working?
Thanks

When I tested the example code, the function getRotation() didn't work because some range of angles were not being displayed correctly. For example, I can see the angles from 270° to 45°.
So, to avoid modificating the library I decided to make the example using getRawRotation() because it was giving me good results (register values from 0h to 3FFFh).


Don't set function type to generator for webhooks

This is needed in order to support calling webhook functions locally in #434 . They are treated as generators by the server, but typically aren't defined as generators in the client code. This causes issues when you call it locally because the behavior is determined by is_generator defined on the function.
After this change, the function type is determined by the signature of the function instead. However the container entrypoint code will override for all webhook types when it actually runs the function. This will work since the server never actually cares about the function type – it just cares about the outputs it actually gets back.

This passes all integration tests also.

I rolled #444 into this, along with fixes for those. Basically if the function is an async or sync generator, we auto-wrap it in a StreamingResponse

If I serve the current basic streaming example in modal-examples I get this error on request:
✓ Created objects.
├── 🔨 Created fastapi_app => https://modal-labs--example-fastapi-streaming-fastapi-app-th-ecb0d3-dev.modal.run (label truncated)
└── 🔨 Created mount /home/ubuntu/modal-examples/07_webhooks/streaming.py
 ⚡ Serving... hit Ctrl-C to stop!
└── Watching /home/ubuntu/modal-examples/07_webhooks.
Traceback (most recent call last):
  File "/pkg/modal/_container_entrypoint.py", line 324, in handle_input_exception
    yield
  File "/pkg/modal/_container_entrypoint.py", line 455, in call_function_async
    raise InvalidError(
modal.exception.InvalidError: Async (non-generator) function returned value of type <class 'async_generator'> You might need to use @stub.function(..., is_generator=True).
Request failed with exception: InvalidError("Async (non-generator) function returned value of type <class 'async_generator'> You might need to use @stub.function(..., is_generator=True).") (execution time: 1.2 ms, total latency: 1403.4 ms)
⠏ Running (0/1 containers active)...


[Feature] Service Discovery support local cache when registry is unavailable

Pre-check

[X] I am sure that all the content I provide is in English.

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Apache Dubbo Component
Java SDK (apache/dubbo)
Descriptions
Service Discovery support local cache when registry is unavailable
Related issues
No response
Are you willing to submit a pull request to fix on your own?

[ ] Yes I am willing to submit a pull request on my own!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

What scenarios need this feature? In general, the registry sdk already supports local cache.

Hi, I am new to Dubbo community and willing to complete this task.
Is there any restriction on this issue? For example, in terms of completion time and code quality.

Hi, I am new to Dubbo community and willing to complete this task.
Is there any restriction on this issue? For example, in terms of completion time and code quality.

We have no completion time limitation
For code quality, we have add a lot of checkers in Github Actions and we will check it when pull request reviewing

And, regarding the implementation of local cache, since you mentioned that it will be used as a fallback solution, I think it only needs to be implemented in memory (for example, through a Map ) without the need to store it in the disk (like Nacos) , because it is a small probability event after all.

The main purpose is to save in the disk. To prevent if registry crashed Dubbo cannot start.

And, regarding the implementation of local cache, since you mentioned that it will be used as a fallback solution, I think it only needs to be implemented in memory (for example, through a Map ) without the need to store it in the disk (like Nacos) , because it is a small probability event after all.

The main purpose is to save in the disk. To prevent if registry crashed Dubbo cannot start.

Indeed, you can use serialization interfaces to save information on the local disk. However, if users tamper with the files storing this information, it can lead to data security issues. Unauthorized changes might corrupt the data, introduce errors, or cause security vulnerabilities if sensitive data is exposed or manipulated.

Hey, I want to help too, can you provide more detailed information? For example, what is the local specific information storage location and storage form. @AlbumenJ

Hey, I want to help too, can you provide more detailed information? For example, what is the local specific information storage location and storage form. @AlbumenJ

You can check the related example in org.apache.dubbo.registry.support.AbstractRegistry

Firstly,we should make the zookeeper support the local cache.Secondly,we should make the nacos implements the fallback.It's the all the tasks need to finish in this issue?

Firstly,we should make the zookeeper support the local cache.Secondly,we should make the nacos implements the fallback.It's the all the tasks need to finish in this issue?

We can make it more common and not depend on the specific registry.

I test it, and i find out that dubbo cannot work if registry is down.I can check it is true when registry is zookeeper or nacos.And also,i can see the org.apache.dubbo.registry.support.AbstractRegistry will store the local cache when localCacheEnabled is true.I think the way to finish it is read the local cache when the registry cannot be connected.

I test it, and i find out that dubbo cannot work if registry is down.I can check it is true when registry is zookeeper or nacos.And also,i can see the org.apache.dubbo.registry.support.AbstractRegistry will store the local cache when localCacheEnabled is true.I think the way to finish it is read the local cache when the registry cannot be connected.

Yep, you're right. BTW, we should make sure Dubbo will try to reconnect the broken registry continuously.

If Dubbo cannot reconnect to the broken registry, this may be another problem. should open another issue

I think I can solve this problem, please assign me～ @AlbumenJ

I think I can solve this problem, please assign me～ @AlbumenJ

Please go ahead

Looks like this issue is still unresolved. Please assign it to me.i will go ahead @AlbumenJ


[BUG] SAM Model RuntimeError: Cannot re-initialize CUDA in forked subprocess

When trying to use SAM with a GPU under WSL2 Ubuntu, I got the following exception:
output = model1.predict(data_sk)
Process Process-15:
Traceback (most recent call last):
  File "/usr/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/usr/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.7/dist-packages/cdt/utils/parallel.py", line 54, in worker_subprocess
    output = function(*args, **kwargs, device=device, idx=idx)
  File "/usr/local/lib/python3.7/dist-packages/cdt/causality/graph/SAM.py", line 216, in run_SAM
    data = th.from_numpy(data).to(device)
  File "/usr/local/lib/python3.7/dist-packages/torch/cuda/__init__.py", line 164, in _lazy_init
    "Cannot re-initialize CUDA in forked subprocess. " + msg)
RuntimeError: Cannot re-initialize CUDA in forked subprocess. To use CUDA with multiprocessing, you must use the 'spawn' start method

It seems to be a bug raised by parallel_run(), when njobs>0.
Cuda has successfully recognized my GPU:
torch.cuda.get_device_name(0)
'GeForce GTX 1080 Ti'
cdt.SETTINGS.GPU = 1
With CPU, SAM(nruns=1,njobs=1,gpus=0), the model can run smoothly.
My Spec:
cdt 0.5.23
Cuda 11.0
Python 3.7.5
Pytorch 1.7.1
Ubuntu 18.04 (WSL2), WIN10 Build 21292.1010

EDIT:
I reproduced the bug within the nvidia-docker (py3.6). The docker container was deployed under WSL2 Ubuntu instead of Docker Desktop for WIN. Pytorch and cuda recognized my GPU within the docker as in the WSL. So maybe it's not a package version conflict.
And my input data is a (546, 13) Pandas dataframe.

Hello, thanks for the feedback ;
This is strange, I've got some quick questions :

Are you initializing torch.cuda in the main process ?
Have you tried gpus=1,njobs=1 ?
Can you give me the docker image tag?

I'll look into it in the meanwhile!

Hi Diviyan,
I initialized torch.cuda. torch.cuda.is_initialized() returned True.
I tried gpus=1, njobs=1 and nothing got changed.
The docker I used is divkal/nv-cdt-py3.6.
Currently my solution is torch.multiprocessing.set_start_method('spawn', force=True) and the exception never came up again. However, since I'm no expert in PyTorch so I'm not pretty sure if this is the correct way to fix the issue once and for all.
And thank you for your brilliant work!

Hello @kangqiao-ctrl , thank you for your input ! I didn't know that torch actually did allow to specify the spawn method, and I think that it would be the cleanest solution (I tried lots of things in the past, but up to no avail). I will implement this for the next version !

Perfect, thanks for the efforts!

@kangqiao-ctrl
Hi, I met this error, too.  It is really wired because it runs nicely before. And just after I have installed cmake 3.18 and geomloss(pip install geomloss) then this error happened.
And I have added "torch.multiprocessing.set_start_method('spawn', force=True)" in the main process but still get error like this:
"File "/bin/anaconda3/envs/CDT/lib/python3.6/multiprocessing/spawn.py", line 136, in _check_not_importing_main
is not going to be frozen to produce an executable.''')
RuntimeError:
An attempt has been made to start a new process before the
current process has finished its bootstrapping phase.
    This probably means that you are not using fork to start your
    child processes and you have forgotten to use the proper idiom
    in the main module:

        if __name__ == '__main__':
            freeze_support()
            ...

    The "freeze_support()" line can be omitted if the program
    is not going to be frozen to produce an executable."

@Diviyan-Kalainathan Hi, could you offer some solutions for this error?


tune: support for incremental searches

So, let's assume you get a new dataset every month and need to train a new model on that data as soon as you receive it. You don't care if the model doesn't perform very well on old data, you care about the newest data only. There's enough of a concept drift within that data, that the optimal model hyperparameter configuration differs a bit from month to month so it helps to do a little tuning every time you get data. Accumulated over several months, however, the pairwise performance differences among a set of configurations might end up being significant. Of course, there are certain stable regions in the design space which have always yielded, e.g., terrible results and should mostly be avoided in the future, too.
Now, how might one implement such an iterative scenario using FLAML tune?
Option 1: searching the best config within a constrained sub-space of the original design space
I'm thinking that the dataset can be represented by just another integer parameter in the design space, i.e., the index of the current month [0, 1, 2, ..., 12]. However, this parameter shouldn't be sampled by the algorithm, but its value should be specified manually each month. Also unlike regular parameters, we're not looking for a global optimum any more, but for the local optimum, specific only for that particular month.
As such, we'd need a mechanism to have the optimizer sample a fixed value during a single optimization session. I think Optuna has something for this called PartialFixedSampler (not exactly sure, though, if this is exactly right).
Alternatively, when launching the search for the current month's optimum, in the design space, we could change the bounds of the month index variable (e.g., qrandint(11, 11, 1) if we want to select month 11). However, results from previous months, e.g., from month 10, will, basically, be considered invalid. Will it still be possible to warm start this month's optimization using previous months' trials through, tune.run's points_to_evaluate and evalulated_rewards arguments, or will the optimizer complain that it received an invalid configuration because 10 is not in [11, 11]? Also, will this incremental approach change the surface learned by the BO, i.e., will it have to unlearn/relearn some changing regions of the design space, and thus lose performance?
Option 2: instances / transfer learning
I can see other optimizer packages address this issue of multiple datasets with dedicated mechanism. E.g., SMAC3 has instances, while OpenBox calls this "transfer learning". SMAC3 can also assign some values to so-called "instance features", and I believe these can better inject the local smoothness prior along the temporal dimension, and that might have an advantage over just treating all months as independent data sets. Maybe you guys also have something similar, but I missed it or wasn't documented or something.

@qingyun-wu @skzhang1

Ok, is there a way to do this without going through the AutoML api? How about just changing the search space every time a new optimization session is run, like I suggested in the last paragraph under Option 1 above?

Ok, is there a way to do this without going through the AutoML api? How about just changing the search space every time a new optimization session is run, like I suggested in the last paragraph under Option 1 above?
I.e.

Alternatively, when launching the search for the current month's optimum, in the design space, we could change the bounds of the month index variable (e.g., qrandint(11, 11, 1) if we want to select month 11). However, results from previous months, e.g., from month 10, will, basically, be considered invalid. Will it still be possible to warm start this month's optimization using previous months' trials through, tune.run's points_to_evaluate and evalulated_rewards arguments, or will the optimizer complain that it received an invalid configuration because 10 is not in [11, 11]? Also, will this incremental approach change the surface learned by the BO, i.e., will it have to unlearn/relearn some changing regions of the design space, and thus lose performance?

Use suggest_config to get k configs and pass them via points_to_evaluate.
In you suggested Option 1, the passed evaluated_rewards could mislead the optimizer because they will be treated as known rewards for the corresponding points_to_evaluate. But if your search space is continuous, this could be OK as a point nearby still has a chance to be sampled.

I kinda need to tune a user defined function. I'm not sure how to fit it into this paradigm of standard ML tasks.

I kinda need to tune a user defined function. I'm not sure how to fit it into this paradigm of standard ML tasks.

Do you have meta features for your tasks? Meaning, for each tuning task, are there meta features to characterize the similarity between tasks?

I was thinking to use such a meta feature to store the index of the month in which the data was collected, i.e., the month index in [0...12] in the example above as an alternative to treating the month index as a regular parameter and constraining its search space to the current month index every time we rune a tuning session. Of course, some stats can be computed on each dataset and appended as further meta features, and that might help drive the optimization to be more efficient, but that's not the case currently.

I was thinking to use such a meta feature to store the index of the month in which the data was collected, i.e., the month index in [0...12] in the example above as an alternative to treating the month index as a regular parameter and constraining its search space to the current month index every time we rune a tuning session. Of course, some stats can be computed on each dataset and appended as further meta features, and that might help drive the optimization to be more efficient, but that's not the case currently.

We can extend the meta learning from automl to tune in future version. For now, you can experiment with Option 1 in your post, as long as the search space is continuous.
@qingyun-wu any other suggestions?

Well, my datasets are month-wise, so the most natural representation is an int that indexes the consecutive months (actually, a qrandint to be able to have the start of the per-session search range equal to its stop point, so that the subspace is, effectively, collapsed into a single value on that dimension).
Now, I could just manually round a uniform to the nearest int, but that would make the optimizer suggest the same month without knowing that it's the same month, and it will do that until it learns from examples that this is a stepwise function, which might be a pain to model by smooth functions like gaussian processes. That, I assume, might lead to some drop in performance, which might be alleviated by some form of caching.
Maybe I could use a quniform instead? What are its performance implications? Does it do exactly what I wrote above, or does it handle things more gracefully?
Anyway, it's not very clear to me as to why it's ok to change the search space only if the parameter is a continuous. Why not use a qrandint?

Well, my datasets are month-wise, so the most natural representation is an int that indexes the consecutive months (actually, a qrandint to be able to have the start of the per-session search range equal to its stop point, so that the subspace is, effectively, collapsed into a single value on that dimension).
Now, I could just manually round a uniform to the nearest int, but that would make the optimizer suggest the same month without knowing that it's the same month, and it will do that until it learns from examples that this is a stepwise function, which might be a pain to model by smooth functions like gaussian processes. That, I assume, might lead to some drop in performance, which might be alleviated by some form of caching.
Maybe I could use a quniform instead? What are its performance implications? Does it do exactly what I wrote above, or does it handle things more gracefully?
Anyway, it's not very clear to me as to why it's ok to change the search space only if the parameter is a continuous. Why not use a qrandint?

Sorry, I meant whether you have other continuous hyperparameters in the search space.

So, let's assume you get a new dataset every month and need to train a new model on that data as soon as you receive it. You don't care if the model doesn't perform very well on old data, you care about the newest data only. There's enough of a concept drift within that data, that the optimal model hyperparameter configuration differs a bit from month to month so it helps to do a little tuning every time you get data. Accumulated over several months, however, the pairwise performance differences among a set of configurations might end up being significant. Of course, there are certain stable regions in the design space which have always yielded, e.g., terrible results and should mostly be avoided in the future, too.
Now, how might one implement such an iterative scenario using FLAML tune?
Option 1: searching the best config within a constrained sub-space of the original design space
I'm thinking that the dataset can be represented by just another integer parameter in the design space, i.e., the index of the current month [0, 1, 2, ..., 12]. However, this parameter shouldn't be sampled by the algorithm, but its value should be specified manually each month. Also unlike regular parameters, we're not looking for a global optimum any more, but for the local optimum, specific only for that particular month.
As such, we'd need a mechanism to have the optimizer sample a fixed value during a single optimization session. I think Optuna has something for this called PartialFixedSampler (not exactly sure, though, if this is exactly right).
Alternatively, when launching the search for the current month's optimum, in the design space, we could change the bounds of the month index variable (e.g., qrandint(11, 11, 1) if we want to select month 11). However, results from previous months, e.g., from month 10, will, basically, be considered invalid. Will it still be possible to warm start this month's optimization using previous months' trials through, tune.run's points_to_evaluate and evalulated_rewards arguments, or will the optimizer complain that it received an invalid configuration because 10 is not in [11, 11]? Also, will this incremental approach change the surface learned by the BO, i.e., will it have to unlearn/relearn some changing regions of the design space, and thus lose performance?
Option 2: instances / transfer learning
I can see other optimizer packages address this issue of multiple datasets with dedicated mechanism. E.g., SMAC3 has instances, while OpenBox calls this "transfer learning". SMAC3 can also assign some values to so-called "instance features", and I believe these can better inject the local smoothness prior along the temporal dimension, and that might have an advantage over just treating all months as independent data sets. Maybe you guys also have something similar, but I missed it or wasn't documented or something.

Hi @bbudescu, in addition to the existing zero-shot feature, we have some in-process ideas related to Option 1 and would like to learn more about the needs in your case. Could we chat on the community discord https://discord.gg/Cppx2vSPVP. ?


Get rid of everything but the file modules, modernize it

meant to open this against my fork, apologies!


How creating flatpack?

How creating a real program?

Hey @zerotrzy, this is a bit out of scope of this quick-start template, but Flatpak does have docs on Electron available here:
https://docs.flatpak.org/en/latest/electron.html


fix: Updating documentation with AWS Plugin support

Updating documentation with AWS Plugin support

Codecov Report

Merging #711 (19a88b8) into main (651412a) will not change coverage.
The diff coverage is n/a.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@           Coverage Diff           @@
##             main     #711   +/-   ##
=======================================
  Coverage   63.77%   63.77%
=======================================
  Files          40       40
  Lines        2228     2228
=======================================
  Hits         1421     1421
  Misses        686      686
  Partials      121      121

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


injection: enable startup probe by default

Not-native sidecar, without startup probe
Avg: 5.144s
Max: 7.06s

Not-native sidecar, with startup probe
Avg: 4.912s
Max: 6.564s

Fixes https://github.com/istio/istio/issues/32569
With advice from @SergeyKanzhelev (thanks!)

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test unit-tests-arm64

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test unit-tests-arm64

gencheck_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test gencheck

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test unit-tests-arm64

gencheck_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test gencheck

unit-tests_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test unit-tests-arm64

gencheck_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test gencheck

unit-tests_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test unit-tests

integ-operator-controller_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test integ-operator-controller

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test unit-tests-arm64

gencheck_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test gencheck

unit-tests_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test unit-tests

integ-operator-controller_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test integ-operator-controller

integ-pilot_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test integ-pilot

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test unit-tests-arm64

gencheck_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test gencheck

unit-tests_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test unit-tests

integ-operator-controller_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test integ-operator-controller

integ-pilot_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test integ-pilot

integ-cni_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test integ-cni

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-operator-controller_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test integ-operator-controller

integ-pilot_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test integ-pilot

integ-cni_istio
c5f36c8e99b8862b9101ba5474580ec1fbfdc9ce
link
true
/test integ-cni

integ-telemetry-discovery_istio
cac52782106a9811e7e8761b0bb1c8e62b3d3bff
link
true
/test integ-telemetry-discovery

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


Fix import paths to fixture files

Closes #55

Closing this PR, will reopen PR from a fork branch


Request: Support original monaco-editor workers and basic language support

I would still like to support the "classic" monaco-editor mode relying on monarch grammars and the language workers. I did local tests by copying basic-languages and language into node_modules/@codingame/monaco-vscode-editor-api and that seems to work just fine, apart from the issue I mentioned here, but I think this is independent.
Is it possible you just contain those two folders in the @codingame/monaco-vscode-editor-api npm package? WDYT?

With this I no longer need to rely on monaco-editor no overrides required nor a direct definition required. In the dependencies and the code I only refer to @codingame/monaco-vscode-editor-api

Out of curiosity, what do you need it for?
Regarding the issue you have, it's inside a class name DefaultThemeUpdatedNotificationContribution which is inside the theme service override package, why are you pulling it?
if you want to add those features back, no problem but it should probably be in another package like ... monaco-vscode-monarch-languages?

note that this package overrides the editor creation function to change some behaviors, like bindings the editor on the configuration service (and removing the update of the configuration service based on the editor settings) so the behavior wouldn't be the exact same as with monaco-editor itself

Out of curiosity, what do you need it for?

BW-compatibility only and for simple use cases where you just need a something simple. For new things this is actually not really needed.

Regarding the issue you have, it's inside a class named DefaultThemeUpdatedNotificationContribution which is inside the theme service override package, why are you pulling it?

That is an interesting question. That seems to be a side effect of using the tsWorker of monaco-editor (copied over). Interestingly both monarch highlighting and code completion is working as it should.

so the behavior wouldn't be the exact same as with monaco-editor itself

That is alright. I just want to have the capability to support the monarch languages and they reference editor.api.js internally, so you can't mix monaco-editor and @codingame/monaco-vscode-editor-api

monaco-vscode-monarch-languages?

That seems fine.


504 Timeout should skip to next repo and not crash

We have a few repo's that have grown quite large and return 504 timeouts when listing the tags, this crashes Tagd, it should rather log a warning, and continue to the next repo.

That makes sense to me. @moshloop Have you reported the issue to Harbor? We definitely shouldn't be timing out for larger repos.

this is because harbor api perf issue, when list repo tags, will fetch tags all details, but the api fail in a deadlock, harbor api should refactoring And they're already doing it.
https://github.com/goharbor/harbor/issues/6876
I hope before the problem is solved, tagd will skip timeout error and not crash.


Department name header update

@aaronhans if all looks good, would you approve, but not merge? I'd like to time this to other content changes to be made in WordPress. I can do the merge when I'm ready.

Great work!
I still see the & in the breadcrumbs, let me see if I can figure out where that comes from.

Great catch! Could it be linked to the homepage title? It would be handy if my WordPress updates will catch that.
I've checked to see if the ampersand should come out of the DIF references too. If so, I'll add one more edit to this PR before publishing to update the menu.

I pushed some changes with some metadata defaults and the crumbs update

PR approved, merge when you are ready!


Add testing

You should add some test framework to validate your code and future contributions.

I agree
TBD


Allow the user to build oqs-provider as a static library.

This commit removes the SHARED argument of the add_library. By doing so, we let the user choose the build type of library.
By default, CMake will build a static library. Thus, BUILD_SHARED_LIBS must be used to switch to a shared library.
oqs-provider as a static library allows us to use the provider without having to store its shared library somewhere. In addition, it happens that some operating systems prohibit the use of dlopen/dlsym.
To load oqs-provider when it is embedded into a library of a binary, one can use the OSSL_PROVIDER_add_builtin API from OpenSSL 3.

The latest discussion above on the use of the static/shared/module moniker had me review also your rationale for the PR:

it happens that some operating systems prohibit the use of dlopen/dlsym

Which OS are you referring-to? Wouldn't such OS feature completely disable the purpose of openssl providers (as a dynamically loadable library)? I can understand this argument

one can use the OSSL_PROVIDER_add_builtin API from OpenSSL 3.

for wanting to build oqsprovider as a static lib: That way its should be possible to completely embed it into an application without (wanting) it being dynamically linked in: That definitely eases distribution of binaries with PQ capabilities inside.
But if this is the reason for this PR (?), the default behaviour of cmake (building static) clashes with the default purpose of a provider (being dynamically loadable).
What about this proposal then: We'd add a specific build option, say "OQS_PROVIDER_BUILD_STATIC" that --when set-- changes "MODULE" to "STATIC" in https://github.com/open-quantum-safe/oqs-provider/blob/6b3483965293db2a3a1dc607468f82739247958c/oqsprov/CMakeLists.txt#L34 (and probably also resets/warns of set  "BUILD_SHARED_LIBS" option)?

About the MODULE type, I can do it in another PR (I tried it here, and it failed to compile, so I guess it needs additional investigation).

ACK. Makes sense. Pushed your PR to the OQS CI test realm to see that everything's OK (apart from the CI nit above). Thanks again for the addition. Please consider adding yourself to the Contributors section at the end of the README.md.

@thb-sb When re-basing your PR, please be sure to update the new CONFIGURE.md with documentation for "OQS_PROVIDER_BUILD_STATIC".

Thanks for these updates -- exactly as I'd hoped it should work.

I could submit a PR to let the user specify the init function name with a CMake option. What do you think? :)

With tongue-in-cheek, I'd say "Yes, let's hang them by the options" :), but more seriously, I'd rather suggest (best already in this PR) setting (and using) a fixed name "oqs_provider_init" if "OQS_PROVIDER_STATIC" is set exactly to avoid

if no other provider is statically linked, otherwise we may end up with a clash.

we could simply call load_oqs_provider on both contexts, couldn't we?

Yes, that would allow ctest to pass. The various openssl-based tests in scripts/runtests.sh that won't be able to get to pass, though. Agreed, they're pointless for a statically built oqsprovider -- but then there should be a mechanism to disable them when "OQS_PROVIDER_BUILD_STATIC=ON".

I'm still working on it!

ACK. Please let me know when Ready for Review. While you're at it, please consider adding a line to the RELEASE.md highlighting this new feature.

From my understanding, I fell into the following case:

Well, Yes, I by now have no real trust in proper operation of OpenSSL 3.0.[0-8] (pertaining to providers :).

Thus I'm wondering if having this check in both CircleCI's config.yml and runtests.sh is actually a good idea…

I'm afraid that's then necessary, indeed.
But what irks me also is that the CI task (still) uses OpenSSL1.1.1 to build liboqs. Such error (not finding OpenSSL111 symbols "baked into" liboqs (and thus oqsprovider) may also be a  reason behind the failure to load the provider. This was the reason for #212. Looking back at that PR, the fix only applies to the "courtesy build script" and not CI, though :-( So maybe same thing: CI needs to be upgraded, too (for liboqs to always use the same OpenSSL version as is used to run oqsprovider).

Thanks again for this contribution, @thb-sb!


Allow exclusion logic for current release tags and duplicate tagged build commits

Applying skaraMirrir.sh to a jdk18u repo to build the base jdk-18 release hits issues due to the jdk-18.0.1 commits and tags.
The jdk-<IP_ADDRESS> taken is taken as the latest and thus jdk-18+nn builds are ignored and not _adopt tagged.
This PR applies the tag exclusion list to the current build tag determination logic.
This PR also fixes the problem with duplicate tags pointing at the same commit, which resulted in the 2nd tag not being _adopt tagged.
Signed-off-by: Andrew Leonard<EMAIL_ADDRESS>

@andrew-m-leonard did you want me to merge this?

@gdams I am going to wait for the release to get out of the way... while we still in theory have a build change freeze
thanks


Sub-Linear memory for BaseLayerIterator

In https://github.com/encryptogroup/SEEC/commit/1ba607ed27b6fdb449b1fefa5fca0d909d324068 we already improved the BaseLayerIter. However, there is an easy improvement we could do to the iteration code to reduce the memory from O(|base_circuit|) to something less than that. Currently, this linear memory cost is due to storing the inputs needed for each gate in a flat vec and calculating this for each gate in constructor. A, hopefully, better way would be to store a mapping of HashMap<GateId, u32> where we only store the inputs needed for gates of which at least one predecessor has already been processed and remove them when they are zero.
The intuition is that a gate for which no predecessor has been processed can't be yielded and once we yield a gate we can not yield it again, thus we don't need to store how many inputs are needed for these gates. Albeit a little more computationally costly, this should significantly reduce the memory cost of iteration objects for large base circuits.

Hi, I'd like to give this a try if that's okay with you? Thanks!

Hi, sorry for the late reply. Yes, you can definitely give it a try. If you have questions, don't hesitate yo ask. The last weeks were stressful, but I have more time now :)


Flaggers should be subscribed to the flags they create

See: https://forum.inaturalist.org/t/no-notification-of-resolved-flags/29974
When someone makes a flag, we're not auto-subscribing them to the flag itself, meaning they won't be notified of any comments on the flag or when it's resolved. We should subscribe an account to any flag that it creates, and retroactively subscribe flaggers to their flags (if they're not already subscribed manually or having made a comment).

It turns out there was no issue with subscriptions - users that create flags are implicitly subscribed and should get notifications on their flags. There was however a bug with notifications where users that had blocked other users or had been blocked by users would not get notifications on flags they create, even if the blocking was not related to the flag. That bug should be fixed and blocking should only affect notifications when the blocks are relevant


1.17/stable enable kubeflow failed at juju

inspection-report-20200131_153204.tar.gz
Command '('microk8s-juju.wrapper', 'bootstrap', 'microk8s', 'uk8s')' returned non-zero exit status 2
Failed to enable kubeflow

I have experienced the same bug.
microk8s.disable kubeflow
microk8s.enable kubeflow

solved it for me if I remember correctly.

Got this error message. Any idea what it means?
Command '('microk8s-juju.wrapper', 'bootstrap', 'microk8s', 'uk8s')' returned non-zero exit status 2
Failed to enable kubeflow

Tried:
microk8s.juju status --debug
Juju is not available for arm64
So I would assume Kubeflow is not going to work on arm64. Am I correct?

So I would assume Kubeflow is not going to work on arm64. Am I correct?

Yes @andrewcheny you are right. Sorry about that we have to add a check for this at the very beginning and print the right message.


⚠ Bofrost.fr has degraded performance

In 5de4f09, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1788 ms

Resolved: Bofrost.fr performance has improved in 0606b0f after 20 minutes.


Parse varfields in sierra reporting lambda

to start seeing dates in the reporting cluster's sierra index, we need to add the sierra varfields - currently we're only looking at fixed fields

I am currently storing the results in the reporting_sierra_varfields index in the following format:
{
	"id": "129038",
	"varfields": {
		"260": {
			"label": "London : Faber and Faber limited, [1938]",
			"a": "London : ",
			"b": "Faber and Faber limited,",
			"c": "[1938]"
		},
		"245": {
			"label": "Poems on various subjects, Divine, Moral and Entertaining: the posthumous works of Mr. Jacob Axford, of the city of Bath, late surgeon of his Majesty's ship, Scipio; written for his own amusement.",
			"a": "Poems on various subjects,",
			"b": "Divine, Moral and Entertaining: the posthumous works of Mr. Jacob Axford, of the city of Bath, late surgeon of his Majesty's ship, Scipio; written for his own amusement."
		}
	}
}

All fields are stored as text and keyword (under a .raw field e.g. varfields.245.a.raw) types to allow exact and partial matching.
You can see the mapping here.


Cli init changes

Whoops, this is my dirty branch

Any tweaks you want me to make @jamespohalloran ?

I have a cleaner branch to push up


What is the difference between lan_scanner and network_tools

I joined the work on network_tools before a couple of months and now I have found this package.
If my test is correct the async searching that I have implemented there is faster for pinging IP but as I didn't look at the code here maybe this package doing staff differently or has more options.
Can you check network_tools and tell me about the differences?, it is waste of time for all of us to build the same thing and maintain it separately.

Yes, your searching method is actually faster, nice job!
I checked out the network_tools and noticed some things that could be improved, I might open a PR related to them soon.
And you're right, it would probably be better to focus on single package.

It looks like people are arriving at this package and opening issues.
Maybe it will be wiser to add to the readme that the focus got combined to network_tools.
Unless you intend to keep developing this package?.


Improved Newsletter section

Related Issue

Information about the related issue

Closes: #265
Describe the changes you've made
Hey, @Deepu178 I have improved the UI of the newsletter section. Please review my pr and merge it. Thank you!
Type of change
Improved UI of newsletter section

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Code style update (formatting, local variables)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update.
[ ] This change requires a documentation update

How Has This Been Tested?

Checklist

[x] My code follows the guidelines of this project.
[x] I have performed a self-review of my own code.
[ ] I have commented on my code, particularly wherever it was hard to understand.
[ ] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[ ] I have added tests that prove my fix is effective or that my feature works.
[x] Any dependent changes have been merged and published in downstream modules.

Screenshots (if applicable)

Original
Updated

Code of Conduct

[x] I agree to follow this project's Code of Conduct

thank you!


Parse() then AST.toString() doesn't restore square brackets on column name

If a column name requires square brackets, e.g. due to a space or a period in the column name, toString() on the AST loses the brackets resulting in incorrect SQL.
For example
const ast = alasql.parse('SELECT [Foo Bar] FROM tbl');
console.log(ast.toString());

gives SELECT Foo Bar FROM tbl instead of SELECT [Foo Bar] FROM tbl
Similarly:
const ast = alasql.parse('SELECT [Foo.Bar] FROM tbl');
console.log(ast.toString());

gives SELECT Foo.Bar FROM tbl instead of SELECT [Foo.Bar] FROM tbl

I'm interested in working on this. Thanks!

Any pointer, where should I start? Spend some time on but kind of tricky to find where the '[' is strip off.

Lovely!
Have a look at BRALITERAL in the parser

This is where they are matched and this is where we cut off the information. It is cut out before we generate the AST.

The easy part is to edit line 357 to something like
{ $$ = {val:doubleq($1.substr(1,$1.length-2)), wrap:$1.substr(0,1)}; }

The hard part is to edit the code to use the new location of the value - and to make sure it works when we have a string that is not wrapped.
Use yarn jison when you changes in the .jison file.
I propose running yarn gulp && mocha ./test --bail to identify the places one at a time where we need to update the code.

If the issue is not resolved can i work on this? If yes pls tell me how can i run/test it in local machine.

As a beginner in open source, after editing line 357 as mentioned, how can I identify the other locations that require changes? Please help.

@Saurabhmahto Nice work getting into the flow.
Are the tests passing? Use yarn jison to build the grammar, and then build using yarn test --bail

after editing line 357 and building the grammar , then building it using yarn test --bail it fails in this testcase

pls provide further guidance

Lovely.
The test is in https://github.com/AlaSQL/alasql/blob/develop/test/test046.js#L33
Is is probably the [...] part that is not working. I propose you look for the most simple thing you can write that breaks it. It might be something like select 1 as [abc]
There are many ways to do this, but one way could be to step though alasql while it is running:

Make a file named poc1740.js

require the file in bin/alasql.fs.js
console log the result of alasql('select 1 as [abc]')

Run node poc1740.js

Check if you get some sort of warning or error that can help indicate where the problem is

Now inspect the running code

Run  node --inspect-brk 	poc1740.js
Go to chrome://inspect in chrome (yes, that exact url)
Click the link under "target"
now step all your way to understand the flow and see if you can nail when the problem happens. We are looking for the code that is seeking to find the value of from the AST. It is expecting the value to be a string, but the data is an object (the change you made in the jison)

ping me if you get stuck...

Hello @mathiasrw
I have fixed this Opened a pull request
can you please review it


Add JBoss RestEasy + undertow

fixed with https://github.com/bmarwell/jaxrs-test-showcase/commit/7d2639bdd7a7071a19a83524ddd9498c0bb4f5eb


Fix SSL_select_next_proto (master/3.3)

Ensure that the provided client list is non-NULL and starts with a valid
entry. When called from the ALPN callback the client list should already
have been validated by OpenSSL so this should not cause a problem. When
called from the NPN callback the client list is locally configured and
will not have already been validated. Therefore SSL_select_next_proto
should not assume that it is correctly formatted.
We implement stricter checking of the client protocol list. We also do the
same for the server list while we are about it.
CVE-2024-5535
In addition we add numerous test cases related to NPN and ALPN. While there are some existing tests for this we expand this out. Finally we also fix a number of related bugs that were discovered during the development of the tests and clarify the documentation.

Fixups pushed to address the feedback
@t8m - please take another look
@nhorman - please reconfirm
Also please approve all associated backport PRs

approval holds

This pull request is ready to merge

Shouldn't there be a CHANGELOG/NEWS entry for this?


ASYNC functions are considered as error

Version of JSHint: npm list jshint gives me<EMAIL_ADDRESS>Input source code:

async function fn(ev) {
  let x = await asyncFunc();
  console.log(x);
}

Configuration values: via .jshintrc

{
  "esversion": 6
}

Description of expected behavior:
I'm expecting to have no error or warning
Description of actual behavior:
I have errors and warning but don't really related to the source.

I'm using Atom editor and linter-jshint use call your this package if this has an importance.
I hope I'm not missing something here.

I’m not sure if we support parsing async functions yet or not (i’ll check in a moment), but if we do, es6 mode likely does not support it.

Looks like nobody has landed a patch for parsing it yet.

You are right, it looks like async/await is not in the es6 version.
Sorry about this and thank you for the quick answer.
Should I close the issue or you prefer to use it to track async/await support?

We should leave it open until it gets addressed properly.

A quick search of this project's open issues for the word "async" turns up the existing feature request for async functions: gh-2604. I'm going to close this request to keep the discussion centralized to the one issue.


Reboot UniRx - Add UniRx.Async, Improve ReactiveProperty, Support .NET Standard 2.0

Sorry for serveral years to stopped development.
In the meantime, I've developed commercial-game(architecture was talked in Unite Japan)
and last month, I've left that company and founded own company( http://new-world.co/ ).
One of the tasks is OSS maintenance and gradual development.(I'll put donation form...)
This PR is new step of UniRx.

New UniRx.Async module brings zero-overhead async/await integration with Unity.
Re-implemented ReactiveProperty, this improvement reduces many garbage
.NET Standard 2.0 and Unity 2017/2018

I'ｍ not touched many issues and PR, sorry.
I should triage issues and improve development.
I'll write UniRx.Async details to my blog(medium) in a few days.

now 6.0.0 was released(both releases page and asset store) and UniRx.Async details was added to ReadMe
https://github.com/neuecc/UniRx#unirxasync

wrote the article. https://medium.com/@neuecc/zero-overhead-async-await-for-unity-by-custom-async-statemachine-with-c-7-0-6808695733ba


Returning {} from generic async function doesn't produce error when it should

TypeScript Version:  2.1.6
function foo<T>(bar: () => Promise<T>) {}

foo<{ required: string }>(async function () {
    return 'test'; // this is an error, as it should be
});

foo<string>(async function () {
    return { required: 'test' }; // this is an error, as it should be
});

foo<{ required: string }>(async function () {
    return {}; // this should be an error, but it isn't
});

foo<string>(async function () {
    return {}; // this should be an error, but it isn't
});

should be fixed in latest.


Switch documentation over to mkdocs

This PR moves the documentation from rst/sphinx to markdown/mkdocs.
Example: https://proteus-code.readthedocs.io/en/mkdocs/index.html
Closes #119

@timlichtenberg

After that, I presume we should also change the URL of the docs to fwl-proteus, to homogenise it.

After that, I presume we should also change the URL of the docs to fwl-proteus, to homogenise it.

Makes sense, I will update the slug to fwl-proteus 👍

Seems like readthedocs does not approve of updating the url: https://docs.readthedocs.io/en/stable/faq.html#how-do-i-change-my-project-slug-the-url-your-docs-are-served-at


OwnerId field not found

Describe the bug
When using the action plan on a child object (with master-detail relationship which doesn't have OwnerId), the action plan failed with the error OwnerId field not found.
To Reproduce
Steps to reproduce the behavior:

Enabled Unassigned Task Defaults to Record Owner
Create a new object MyObject__c
Create a master detail lookup field on the object, target can be any existing salesforce object e.g., Account
Setup the action plan template and action template task for the new object MyObject__c
Create a flow that invoke the action plan creation (https://github.com/SalesforceLabs/ActionPlansV4#flow)
Create an object action that calls the flow
Create a new MyObject__c record and use the object action to create the action plan

Expected behavior
The action plan task should be created and assigned to parent owner
Screenshots
na
Environment (please complete the following information):

OS: [e.g. OSX, Windows]
Windows

Browser [e.g. chrome, safari]
chrome

Action Plans Version (e.g. 4.0.1) (See Setup > Installed Packages)
4

Salesforce UI
Lightning and classic

Org Edition
Enterprise

Additional context
na

That is an interesting feature request. It would be easier to assign tasks to the running user, as there could be multiple levels of parents, and we can't even know the relationship name for the child to parent object.

@dschach it is true that there could be multiple levels of parents. Instead of handling the complexity of figuring out the parent, maybe you could consider to add a field on the action task template object to allow us to define the owner id field API name? By default it will be OwnerId. Then we could create any custom field custom field (e.g., formula) to provide the right owner id.

For now, the next released version will assign those tasks to the running user. You may wish to have a Flow or trigger that will reassign tasks for those children to the owner of the parent record.


Cannot read zip from byte stream

This is more of a question than it is a bug, I'm sure. Given the following code:
fn index(req: &HttpRequest) -> FutureResponse<HttpResponse> {
  // Get the zip file in the form of bytes
  return req
    .body()
    .limit(512000)
    .from_err()
    .and_then(move |b: Bytes| {
      println!("{:?}", b);

      let mut archive = zip::read::read_zipfile_from_stream(&mut b).unwrap(); // <- error here.

      Ok(HttpResponse::NoContent().into())
    })
    .responder()
}

Obviously I do not have an actual stream, but I do have the bytes. How can I create an archive purely from bytes? I've looked into stdin, but that doesn't quite fit the bill. I'm trying to read an archive that's being sent in the form of a curl request. Is there some way I can achieve this with my current code as the framework?

Could I possibly use this?

If you have the bytes, then the best course is to wrap it in a std::io::Cursor. That structure implements Seek, so it will be readable using the non-stream functions.
Otherwise you need something that implements Read, which your suggestion seems to do.

Cool beans! I'll look into Cursor. Thank you for the help

Going to reopen this issue, post my code below, and plop the error as well...

Preamble
extern crate actix;
extern crate actix_web;
extern crate bytes;
extern crate env_logger;
extern crate futures;
extern crate serde;
#[macro_use] extern crate serde_derive;
extern crate serde_json;
extern crate zip;

pub mod utils;

use actix::{System, SystemRunner};
use actix_web::{App, AsyncResponder, FutureResponse, http, HttpMessage, HttpRequest,
HttpResponse, middleware, Responder, server};
use bytes::{Buf, Bytes};
use futures::future::Future;
use http::{Method, StatusCode};
use std::env;
use std::io::{self, Cursor};
use std::io::prelude::*;
use utils::{parse_metadata, structs};
use structs::{ReducedConfig};

Rust code
fn index(req: &HttpRequest) -> FutureResponse<HttpResponse> {
  // Get the zip file in the form of bytes
  return req
    .body()
    .limit(512000)
    .from_err()
    .and_then(|b: Bytes| {
      // Typically, a zip file is read in, but because we
      // are taking in a byte stream, we will nead to
      // implement Reader. We can also implement Seek in
      // order to use a non-stream function, but using the
      // Cursor API is a more direct approach for this.
      // https://github.com/mvdnes/zip-rs/issues/85

      let reader = Cursor::new(b);
      let mut archive = zip::ZipArchive::new(reader).unwrap();

      let metadata: Vec<ReducedConfig>;
      let results: zip::read::ZipFile<'_>;

      // We can now get the metadata and results by their
      // file names. Because we cannot borrow the same
      // mutable reference more than once, we wrap the
      // first borrow in a closure to let it go out of
      // scope to re-borrow right after. #read_to_string()
      // requires the std::io prelude
      {
        let mut file = archive.by_name("test_metadata.json").unwrap();
        let mut file_contents = String::new();
        file.read_to_string(&mut file_contents).unwrap();

        println!("{:?}", file_contents);

        // Assign to metadata in the upper scope.
        metadata = parse_metadata(&file_contents);
      }

      // Don't do anything with results just yet.
      // results = archive.by_name("results.json").unwrap();

      Ok(HttpResponse::NoContent().into())
    })
    .responder();
}

Error
thread 'arbiter:c278514c-40f0-4fac-aa8e-fb772edb2e21:actix-net-worker-0' panicked at 'called `Result::unwrap()` on an `Err` value: InvalidArchive("Could not find central directory end")', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Backtrace
thread 'arbiter:088cba1a-4f42-419f-b976-dbf24e7ae4c1:actix-net-worker-0' panicked at 'called `Result::unwrap()` on an `Err` value: InvalidArchive("Could not find central directory end")', libcore/result.rs:1009:5
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::print
             at libstd/sys_common/backtrace.rs:71
             at libstd/sys_common/backtrace.rs:59
   2: std::panicking::default_hook::{{closure}}
             at libstd/panicking.rs:211
   3: std::panicking::default_hook
             at libstd/panicking.rs:227
   4: <std::panicking::begin_panic::PanicPayload<A> as core::panic::BoxMeUp>::get
             at libstd/panicking.rs:477
   5: std::panicking::continue_panic_fmt
             at libstd/panicking.rs:391
   6: std::panicking::try::do_call
             at libstd/panicking.rs:326
   7: core::ptr::drop_in_place
             at libcore/panicking.rs:77
   8: core::result::unwrap_failed
             at libcore/macros.rs:26
   9: <core::result::Result<T, E>>::unwrap
             at libcore/result.rs:808
  10: tfb_badges::index::{{closure}}
             at src/main.rs:45
  11: <futures::future::and_then::AndThen<A, B, F> as futures::future::Future>::poll::{{closure}}::{{closure}}
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/and_then.rs:34
  12: <core::result::Result<T, E>>::map
             at libcore/result.rs:468
  13: <futures::future::and_then::AndThen<A, B, F> as futures::future::Future>::poll::{{closure}}
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/and_then.rs:33
  14: <futures::future::chain::Chain<A, B, C>>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/chain.rs:39
  15: <futures::future::and_then::AndThen<A, B, F> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/and_then.rs:32
  16: <alloc::boxed::Box<F> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/mod.rs:113
  17: <futures::future::map_err::MapErr<A, F> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/map_err.rs:30
  18: <futures::future::chain::Chain<A, B, C>>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/chain.rs:26
  19: <futures::future::then::Then<A, B, F> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/then.rs:32
  20: <alloc::boxed::Box<F> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/mod.rs:113
  21: <actix_web::pipeline::WaitingResponse<S, H>>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/actix-web-0.7.13/src/pipeline.rs:301
  22: <actix_web::pipeline::PipelineState<S, H>>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/actix-web-0.7.13/src/pipeline.rs:50
  23: <actix_web::pipeline::Pipeline<S, H> as actix_web::server::handler::HttpHandlerTask>::poll_io
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/actix-web-0.7.13/src/pipeline.rs:151
  24: <actix_web::server::h1::Entry<H>>::poll_io
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/actix-web-0.7.13/src/server/h1.rs:72
  25: <actix_web::server::h1::Http1Dispatcher<T, H>>::poll_handler
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/actix-web-0.7.13/src/server/h1.rs:363
  26: <actix_web::server::h1::Http1Dispatcher<T, H>>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/actix-web-0.7.13/src/server/h1.rs:208
  27: <actix_web::server::channel::HttpChannel<T, H> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/actix-web-0.7.13/src/server/channel.rs:105
  28: <actix_net::service::map_err::MapErrFuture<A, F, E> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/actix-net-0.1.1/src/service/map_err.rs:92
  29: <actix_net::service::and_then::AndThenFuture<A, B> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/actix-net-0.1.1/src/service/and_then.rs:94
  30: <actix_web::server::acceptor::ServerMessageAcceptorServiceFut<T> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/actix-web-0.7.13/src/server/acceptor.rs:378
  31: <futures::future::either::Either<A, B> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/either.rs:35
  32: <futures::future::either::Either<A, B> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/either.rs:35
  33: <futures::future::map_err::MapErr<A, F> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/map_err.rs:30
  34: <futures::future::map::Map<A, F> as futures::future::Future>::poll
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/map.rs:30
  35: core::fmt::num::<impl core::fmt::Debug for u64>::fmt
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/future/mod.rs:113
  36: core::cmp::impls::<impl core::cmp::PartialOrd for isize>::le
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/task_impl/mod.rs:326
  37: core::cmp::impls::<impl core::cmp::PartialOrd for isize>::le
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/task_impl/mod.rs:396
  38: futures::task_impl::std::BorrowedUnpark::new
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/task_impl/std/mod.rs:78
  39: core::cmp::impls::<impl core::cmp::PartialOrd for isize>::le
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/task_impl/mod.rs:396
  40: core::cmp::impls::<impl core::cmp::PartialOrd for isize>::le
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/task_impl/mod.rs:288
  41: core::cmp::impls::<impl core::cmp::PartialOrd for isize>::le
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/futures-0.1.25/src/task_impl/mod.rs:326
  42: <core::cmp::Ordering as core::cmp::PartialEq>::eq
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-current-thread-0.1.3/src/scheduler.rs:354
  43: <core::cmp::Ordering as core::cmp::PartialEq>::eq
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-current-thread-0.1.3/src/scheduler.rs:333
  44: <core::cmp::Ordering as core::cmp::PartialEq>::eq
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-current-thread-0.1.3/src/lib.rs:779
  45: tokio_current_thread::EXECUTOR_ID::__init
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-current-thread-0.1.3/src/lib.rs:816
  46: <core::cmp::Ordering as core::cmp::PartialEq>::eq
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-current-thread-0.1.3/src/lib.rs:778
  47: core::cmp::impls::<impl core::cmp::PartialOrd for isize>::le
             at libstd/thread/local.rs:294
  48: core::cmp::impls::<impl core::cmp::PartialOrd for isize>::le
             at libstd/thread/local.rs:248
  49: <core::cmp::Ordering as core::cmp::PartialEq>::eq
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-current-thread-0.1.3/src/lib.rs:776
  50: <core::cmp::Ordering as core::cmp::PartialEq>::eq
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-current-thread-0.1.3/src/scheduler.rs:333
  51: <core::cmp::Ordering as core::cmp::PartialEq>::eq
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-current-thread-0.1.3/src/lib.rs:605
  52: alloc::alloc::realloc
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-current-thread-0.1.3/src/lib.rs:488
  53: uuid::adapter::core_support::<impl core::fmt::Display for uuid::adapter::HyphenatedRef<'a>>::fmt
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.11/src/runtime/current_thread/runtime.rs:187
  54: uuid::adapter::core_support::<impl core::fmt::Display for uuid::adapter::HyphenatedRef<'a>>::fmt
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.11/src/runtime/current_thread/runtime.rs:228
  55: actix::system::CURRENT::__init
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-executor-0.1.5/src/global.rs:192
  56: actix::arbiter::Arbiter::new_with_builder::{{closure}}
             at libstd/thread/local.rs:294
  57: actix::arbiter::Arbiter::new_with_builder::{{closure}}
             at libstd/thread/local.rs:248
  58: actix::system::CURRENT::__init
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-executor-0.1.5/src/global.rs:162
  59: uuid::adapter::core_support::<impl core::fmt::Display for uuid::adapter::HyphenatedRef<'a>>::fmt
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.11/src/runtime/current_thread/runtime.rs:226
  60: <core::cell::BorrowRefMut<'b> as core::ops::drop::Drop>::drop
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.7/src/timer/handle.rs:94
  61: actix::arbiter::Arbiter::new_with_builder::{{closure}}
             at libstd/thread/local.rs:294
  62: actix::arbiter::Arbiter::new_with_builder::{{closure}}
             at libstd/thread/local.rs:248
  63: <core::cell::BorrowRefMut<'b> as core::ops::drop::Drop>::drop
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.7/src/timer/handle.rs:81
  64: uuid::adapter::core_support::<impl core::fmt::Display for uuid::adapter::HyphenatedRef<'a>>::fmt
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.11/src/runtime/current_thread/runtime.rs:219
  65: <alloc::collections::CollectionAllocErr as core::convert::From<core::alloc::LayoutErr>>::from
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.7/src/clock/clock.rs:136
  66: actix::arbiter::Arbiter::new_with_builder::{{closure}}
             at libstd/thread/local.rs:294
  67: actix::arbiter::Arbiter::new_with_builder::{{closure}}
             at libstd/thread/local.rs:248
  68: <alloc::collections::CollectionAllocErr as core::convert::From<core::alloc::LayoutErr>>::from
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-timer-0.2.7/src/clock/clock.rs:119
  69: uuid::adapter::core_support::<impl core::fmt::Display for uuid::adapter::HyphenatedRef<'a>>::fmt
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.11/src/runtime/current_thread/runtime.rs:218
  70: <alloc::string::String as core::ops::index::Index<core::ops::range::RangeFull>>::index
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-reactor-0.1.6/src/lib.rs:229
  71: actix::arbiter::Arbiter::new_with_builder::{{closure}}
             at libstd/thread/local.rs:294
  72: actix::arbiter::Arbiter::new_with_builder::{{closure}}
             at libstd/thread/local.rs:248
  73: <alloc::string::String as core::ops::index::Index<core::ops::range::RangeFull>>::index
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-reactor-0.1.6/src/lib.rs:212
  74: uuid::adapter::core_support::<impl core::fmt::Display for uuid::adapter::HyphenatedRef<'a>>::fmt
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.11/src/runtime/current_thread/runtime.rs:217
  75: uuid::adapter::core_support::<impl core::fmt::Display for uuid::adapter::HyphenatedRef<'a>>::fmt
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.1.11/src/runtime/current_thread/runtime.rs:185
  76: actix::arbiter::Arbiter::new_with_builder::{{closure}}
             at /Users/julian/.cargo/registry/src/github.com-1ecc6299db9ec823/actix-0.7.5/src/arbiter.rs:116
  77: std::sys_common::mutex::Mutex::raw_lock
             at libstd/sys_common/backtrace.rs:136
  78: std::sync::mpsc::sync::Blocker::BlockedReceiver
             at libstd/thread/mod.rs:409
  79: <actix::contextimpl::ContextFlags as core::ops::bit::BitAnd>::bitand
             at libstd/panic.rs:313
  80: std::sync::mpsc::blocking::SignalToken::cast_from_usize
             at libstd/panicking.rs:310
  81: macho_symbol_search
             at libpanic_unwind/lib.rs:103
  82: std::sync::mpsc::blocking::SignalToken::cast_from_usize
             at libstd/panicking.rs:289
  83: <actix::contextimpl::ContextFlags as core::ops::bit::BitAnd>::bitand
             at libstd/panic.rs:392
  84: std::sync::mpsc::sync::Blocker::BlockedReceiver
             at libstd/thread/mod.rs:408
  85: core::num::<impl usize>::max_value
             at liballoc/boxed.rs:646
  86: std::sys_common::thread::start_thread
             at liballoc/boxed.rs:656
             at libstd/sys_common/thread.rs:24
  87: std::sys::unix::thread::Thread::new::thread_start
             at libstd/sys/unix/thread.rs:90
  88: _pthread_body
  89: _pthread_start

I may just need to implement Seek instead of Read

This implementation doesn't work, by the way

If I had to guess, I think that the zipfile is not complete when calling the parsing function. The index of a zipfile is at the end of the file, so an incomplete file will produce such an error. I see a .limit(512000), so maybe the zipfile you uploaded is larger than 0.5 MB?

Oh, Interesting... Yes, the number may be too low. I thought 512000 would be 5MB. That was my mistake. Let's take another stab at this.

I upped the limit to 5242880 and I'm still getting this error

If it is 20KB compressed, then this should be enough. Can you also post some code to setup the listener? I do not know this framework enough to get your example working. Just a simple main function with some routing is fine.

Sure! Here's my main. I'm using Actix for the web server.
fn main() {
  const LOG_LEVEL: &str = "debug";
  const HOST: &str = "<IP_ADDRESS>";
  const PORT: u16 = 8080;

  let uri: String = format!("{}:{}", HOST, PORT);

  env::set_var("RUST_LOG", format!("actix_web={}", LOG_LEVEL));
  // env::set_var("RUST_BACKTRACE", "1");
  env_logger::init();

  let sys: SystemRunner = System::new("app-name");

  server::new(|| App
    ::new()
      .middleware(middleware::Logger::default())
      .resource("/", |r| r.method(Method::POST).f(index))
    )
    .bind(&uri)
    .expect("listen EADDRINUSE")
    .shutdown_timeout(0)
    .start();

  println!("Server started on {}", uri);

  let _ = sys.run();
}

It does seem to work for me. How are you submitting files? I first tried it with curl with just the -d @file.zip option, but since a zip contains 0-bytes this truncates it. I had to use --data-binary @file.zip.
It may also help to put a println!("{:?}", b) before declaring the cursor, to debug if all bytes are actually present.

Yeah, so the curl command I did was curl -d<EMAIL_ADDRESS>localhost:8080. That's very interesting. So, using --data-binary is what actually fixes it. I at one point had a debugging print statement, but it was too large and ended up freezing the terminal, so I kinda knew the data was all there.
But I digress. It looks like a simple misuse of the curl command. What would this look like without the use of curl? How can I do --data-binary when hitting this API with, say, a JavaScript frontend? I guess that's more of a rhetorical question. I'll need to answer that later, but I'm just glad that this issue has been (finally) resolved and I can move on with the project. I really appreciate all your help, @mvdnes . Thank you for remaining patient with me.


Batch job with a chained job that fails does not trigger a finally call with allowFailures-option

Laravel Version: 9.29.0

Description:
The following should only be considered when ->allowFailures() is applied, else the batch is cancelled correctly.
If there's a batch containing one or more chains, and one chain fails, the batch will not receive a call to ->finally() callbacks.
If more than one chain fail, ->catch() is only called once.
Steps To Reproduce:
\Bus::batch(
[
    function() {
        dump('Job 1');
    },
    [
        function() {
            dump('Job 2');
            throw new Exception('Failure');
        },
        function() {
            dump('Job 3');
        },
    ],
    [
        function() {
            dump('Job 4');
            throw new Exception('Failure');
        },
        function() {
            dump('Job 5');
        },
    ],
    function() {
        dump('Job 6');
    },
]
)
->allowFailures()
->catch(function () {
    dump("Job failed"); //Called only once
})
->then(function () {
    dump("Jobs then"); //Never called
})
->finally(function () {
    dump("Jobs finally"); //Never called
})
->dispatch();

Will produce a batch entry with:
Total jobs: 6
Failed jobs: 2
Pending jobs: 4
Expected output:
A call to finally callbacks, where the batch can be inspected for errors and taken care of accordingly.
The catch callback should be invoked once per error if allowFailures is set, not just once.
The failed jobs should increment by the number of chained jobs left in the chain, including itself
Total jobs: 6
Failed jobs: 4
Pending jobs: 4

Please see Taylor's answer here: https://github.com/laravel/framework/issues/39243

@driesvints I'm well aware of how it's handled internally according to Taylor's response in #39243. What I don't understand is WHY that is the correct way of handling chains in batches, and not a bug.
There is no way to catch the failed jobs and deal with them as the catch-block is only called once. The pruning of batches will also never deal with the batch in question as it not completed nor cancelled.
In similarity to the pending jobs being incremented by the chain, the failed jobs should also increment by the remaining chain. A different approach would be a new column "unhandled_jobs". It would increment by unhandled chaing jobs and combined with a new callback called "always" that is dispatched when "pending jobs" - "failed jobs" - " unhandled jobs" amounts to 0.
IMO that seems unneccessary as it is what the finally callback should do.
A silly comparison perhaps, but an important one:
At language level, it you have a try/catch/finally-block and one line throws an exception - the finally block will always run, not depending on how many lines after the exception didn't.

I'm not entirely sure myself. You can always try a PR to change the behavior if you want.

I'm confused why this would just be closed. It's clearly not the proper behavior for a finally block. The docs describe then, catch, and finally as as they are understood in general, which is to say that finally is always called. I understand the complication, but that's not relevant to a finally block only being called when there are not any exceptions.
What's more @taylorotwell explained why the code was function as it does, but not that this is intentional or even correct.
At the very least the docs should call out this very unusual behavior.


Test and verify syslog and node exporter releases for Bionic

As part of moving stemcells off xenial to bionic, we need to verify each of our releases to work with bionic and make any changes necessary for compliance and functionality.
Syslog: github.com/cloudfoundry/syslog-release
Node exporter: github.com/cloudfoundry-community/node-exporter-boshrelease
Security considerations
Yet to be determined until review is completed
Implementation sketch

Verify works as is on bionic
Make any changes if needed to make it compile/work on bionic
Review nessus scans of test deployments to see if additional hardening in scope for this release can be made to bionic

Seeing logs from syslog in kibana
Seeing node metrics in prometheus
Waiting for nightly Nessus run to see any hits since new bionic stemcell (1.13) was just rolled out today

LGTM - works and no issues compiling and running on bionic 1.13


ADPC has the wrong number of observations

When you check across the key variables you see there are too many observations in the ADPC example dataset

@jeffreyad could you take a look at this please?

DTYPE should be added to Key Variable list

It still looks like there is an issue. I think there was a problem with one of the merges cause you can see if you look dataset just before the last one the DOMAIN variable is sometimes from pc and ex depending on the row and there is missing corresponding to the domains

Hi @statasaurus records from both EX and PC domains are expected.  In addition DTYPE = COPY records are added which duplicate some records from PC domain.

Hi @statasaurus I'm closing this issue as I think it is resolved.  Let me know if you still have any questions.  Thanks!


NPE when adding LayerEntry relative to the root '/'

Environment:

Jib version: jib-core 0.12.0
Build tool: cram
OS: macOS

Description of the issue:
Seeing NPEs when using jib-core to create a layer with content placed at "/":
Caused by: java.lang.NullPointerException
	at com.google.cloud.tools.jib.image.ReproducibleLayerBuilder$UniqueTarArchiveEntries.add(ReproducibleLayerBuilder.java:75)
	at com.google.cloud.tools.jib.image.ReproducibleLayerBuilder$UniqueTarArchiveEntries.access$100(ReproducibleLayerBuilder.java:47)
	at com.google.cloud.tools.jib.image.ReproducibleLayerBuilder.build(ReproducibleLayerBuilder.java:118)
	at com.google.cloud.tools.jib.builder.steps.BuildAndCacheApplicationLayerStep.call(BuildAndCacheApplicationLayerStep.java:107)
	at com.google.cloud.tools.jib.builder.steps.BuildAndCacheApplicationLayerStep.call(BuildAndCacheApplicationLayerStep.java:37)
	... 6 more

The code in question:
https://github.com/GoogleContainerTools/jib/blob/a692b8b0cde1f982f6e28309dd08ca80460950e2/jib-core/src/main/java/com/google/cloud/tools/jib/image/ReproducibleLayerBuilder.java#L73-L76
The layer configurations had been built with LayerConfiguration.Builder.addEntryRecursive()
In this case, tarEntryPath.getName() is / (the root directory).  namePath is a sun.nio.fs.UnixPath on "/" with filesystem of type sun.nio.fs.MacOSXFileSystem.  But namePath.getParent() returns null, which adheres to the contract of Path#getParent(): Returns the parent path, or null if this path does not have a parent.
So an obvious fix is to change this guard to
 if (namePath.getParent() == null || namePath.getParent() != namePath.getRoot()) {

But should we be adding a tar entry for the root directory?

Reproducible with java -jar cram-xxx.jar --docker gcr.io/distroless/static image target where target is a directory.  This causes target to be placed in /.  Specifying target:/path works as /path's parent is not null.

I don't think there's any harm in having an explicit entry for /, is there? Maybe we can just go with the quick fix you suggested.

Lets not generate this entry: / for now.

Adding a directory into "/" was the first thing I tried. It would be nice if this worked.


GO:0009814 defense response, incompatible interaction

Is defined
Definition
A response of a plant to a pathogenic agent that prevents the occurrence or spread of disease.
but has non-plant annotations:
non_plant.txt

There are C. elegans annotations to this term
@vanaukenk Should we extend the definition ?

I don't think we should include this term. It isn't describing a process really...
See
https://github.com/geneontology/go-ontology/issues/18738
Refers to the outcome of the process (i.e whether disease is observed).
If disease is not observed the interaction is "incompatible"
This isn't about the process per se. A particular interaction can be compatible or incompatible for a particular pathogen gene/host gene combination.
@vanaukenk  do you know which process this was trying to capture?
i would not move it to the broader non-plant term because  "incompatible interaction"  doesn't really belongs in GO does it?
@pgaudet  there is already a broader parent. I think they should all go. I should have put this ticket  on the
annotation tracker ?

@ValWood
I think the C. elegans annotations to this term are in error.  I'll raise a dispute in Protein2GO.

You might want to mention not moving up to an "incompatible interaction parent" and point to the ticket. Otherwise it will need to be reannotated again.

@ValWood
Agreed.  I suspect this was just a term selection error (the word 'incompatible' doesn't appear in either of the references).

@ValWood
I created annotation disputes for annotations from both references that have C. elegans annotations to this term:
https://www.ncbi.nlm.nih.gov/pubmed/20600277
https://www.ncbi.nlm.nih.gov/pubmed/27184844

@pgarmiri has deleted the C. elegans annotations to this term and the dispute resolved in Protein2GO.

@pgaudet
Action
we could merge this up to
GO:0045087    innate immune response
and nothing would be wrong, or lost
.
"incompatible interaction" only means that  the specific combination of pathogen and host do not cause disease.

actually closing this one as "duplicate of"
https://github.com/geneontology/go-ontology/issues/18738


diff between two different dates is the same number of days

Describe the bug
When I look at the diff duration in days between 3-11-19 and 3-1-19 vs 3-10-19 and 3-1-19 I get the same number of days (9)
To Reproduce
Steps to reproduce the behavior:

Go to https://jsfiddle.net/wtyzmbk9/3/
You will see the diff days calculation for each is 9 days

Expected behavior
For two different date diff durations I expect to get a different number of days. I expect one to be 10 days
Screenshots
n/a
Desktop (please complete the following information):

OS: macOS and JsFiddle

Moment-specific environment

The time zone setting of the machine the code is running on
PDT
The time and date at which the code was run
11:20pm
Other libraries in use (TypeScript, Immutable.js, etc)
JavaScript 1.7 via JSFiddle
Please run the following code in your environment and include the output:

console.log((new Date()).toString())
console.log((new Date()).toLocaleString())
console.log((new Date()).getTimezoneOffset())
console.log(navigator.userAgent)
console.log(moment.version)
---
Mon Jun 03 2019 23:21:39 GMT-0700 (Pacific Daylight Time)
(index):45 6/3/2019, 11:21:39 PM
(index):46 420
(index):47 Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Mobile Safari/537.36
(index):48 2.24.0

Additional context
I read on the website the difference between date math and time math so I realize this may just be flat out not a concern. Although in this case, I am not sure if there should be that inconsistency. I read on another issue that you were trying to make this work for the most common use-case, age-gating, which this would seem to fail for. As an aside, if someone has a good "date math" JS library that would be really helpful as well

Hi! Thanks for filing this issue!
It's probably related to daylight savings on March 10 2019 in the US, since there are only (9*24 + 23) hours difference between March 1 and March 11.
Humanize also takes care of it, but it doesn't help with your use case:
moment.duration(originDate.diff(date2)).humanize()
"9 days"
moment.duration(originDate.diff(date1)).humanize()
"10 days"

closing as duplicate of https://github.com/moment/moment/issues/5118


Input-lg doesn't work

Hi,

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>

<EMAIL_ADDRESS>

I required the packages with yarn

I load the select2 + select2-bootstrap css files

I load the select2 js file

I declare to use the bootstrap theme globaly

Nothing to do, my input is not "LG", nor "SM"...
When I load the page, my default select is displayed in LG then a few milliseconds later the plugins loads I guess and the input change its height to "Medium".
<select class="companies-select2 form-control input-lg select2-hidden-accessible" name="company_id" tabindex="-1" aria-hidden="true"><option value="1">Google</option><option value="2">Yahoo</option></select>

Am I missing something?

I have this and also don't see the result rendered large;
<form class="form-horizontal">

        MyLabel

            <select class="form-control" id="mySelect"></select>

</form>

Somehow it's working on the demo tho.

This issue should be closed now I think. Adding form-group-lg within form-group element and applying theme works great.

@sigo thank you.
For reference:


Check for anchors in destination page?

Hi, first off...thanks for the work you have put into this tool, it appears to be one of the best link checkers out there!
I have a use case where I want to not only check if the URL is valid, but also check to make sure the anchor exists at the destination if it's provided in the URL. I set include_fragments = true in my lychee.toml thinking this would check for anchors. I then inserted an incorrect link with anchor in my static site to see if it would pick it up (http://localhost:1313/mathematics/geometry/triangles/#law-of-sinesDEBUG).
It didn't seem to work? The .lycheecache file says this URL returned a 200. There is no #law-of-sinesDEBUG anchor present on the page (it's served by a dev. server).
http://localhost:1313/mathematics/geometry/triangles/#law-of-sinesDEBUG,200,1706480444

Am I misunderstanding what include_fragments does, and if so, is there any way of checking the anchor exists?

Hey @gbmhunter,
only anchor tags inside Markdown documents are supported right now.
Checking anchors in URLs is harder. Here is a technical discussion of the problem space:
https://github.com/lycheeverse/lychee/issues/185#issuecomment-1694670649
Essentially, this would require a bigger rewrite of some of the inner components,
which is planned but has not started yet.
There is a broader architecture discussion here, which ties into this.
https://github.com/lycheeverse/lychee/issues/1252

Thanks for the response! I also discovered (I think) that it won't check a website recursively? That is another part of my use case, to point it at the homepage of the site at it "crawl" to all pages within the domain based on the links it finds.

Yes, correct. That will require architectural changes.

The current workaround is to point it at the sitemap.

@mre thanks for the info!


Pass drawer open progress through as a screenProp

react-native-gesture-handler provides an animated value to the renderNavigationView method that represents the progress of the drawer open/close (docs here).  This is handy for rolling your own custom functionality as the drawer is opening and closing (such as parallax animation of the drawer contents).

@brentvatne - Any thoughts on this?  It would easily allow customizing transitions during open/close such as parallax.  Open to any changes/improvements as well.

screenProps is for users to pass some props to nested screens. I don't think it makes sense for the library to put things there. It should be a separate prop.
Also in the long run, we want to get rid of screenProps.

@satya164 - Good feedback.  I moved drawerOpenProgress out of screenProps into its own prop to ContentComponent.  Will this work?

@brentvatne - thoughts on this PR?

@rgoldiez thanks for this! could you provide an example screen in the examples directory? see: https://github.com/react-navigation/react-navigation-drawer#development-workflow for info on how to get it running

@brentvatne - Updated this PR with a very basic parallax example.

beauty, thanks!

@rgoldiez - can you follow up with a docs pr to add this new prop? https://github.com/react-navigation/website

@brentvatne - Opened https://github.com/react-navigation/react-navigation.github.io/pull/365 ... hopefully I did it right.

this is live in<EMAIL_ADDRESS>