Editing a placement does not propagate deletion

What happened:
Removing the member cluster from the placement of a resource does not propagate on that cluster.
What you expected to happen:
By removing one of the clusters from the placement of a resource, I would expect that kubefed would ensure deletion.
How to reproduce it (as minimally and precisely as possible):
I have two clusters joined: cluster a is the host cluster and cluster b is the member cluster. I have created a FederatedConfigMap and propagate it on both clusters. After ensuring that the ConfigMap was created on both clusters, I have edited the placement of the FederatedConfigMap and removed the member cluster.
federatedconfigmap.types.kubefed.io/myfedconfigmap edited
➜  scripts git:(master) ✗ kubectl describe federatedconfigmaps myfedconfigmap -ntest-placement
Name:         myfedconfigmap
Namespace:    test-placement
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"types.kubefed.io/v1beta1","kind":"FederatedConfigMap","metadata":{"annotations":{},"name":"myfedconfigmap","namespace":"tes...
API Version:  types.kubefed.io/v1beta1
Kind:         FederatedConfigMap
Metadata:
  Creation Timestamp:  2019-09-09T23:18:29Z
  Finalizers:
    kubefed.io/sync-controller
  Generation:        4
  Resource Version:  179597
  Self Link:         /apis/types.kubefed.io/v1beta1/namespaces/test-placement/federatedconfigmaps/myfedconfigmap
  UID:               00a3bd39-745d-4e75-a0d8-88a612188be5
Spec:
  Placement:
    Clusters:
      Name:  a
  Template:
    Data:
      A:  a and b
Status:
  Clusters:
    Name:  a
  Conditions:
    Last Transition Time:  2019-09-09T23:24:49Z
    Last Update Time:      2019-09-09T23:26:31Z
    Status:                True
    Type:                  Propagation
Events:
  Type     Reason                 Age                   From                           Message
  ----     ------                 ----                  ----                           -------
  Normal   CreateInCluster        11m                   federatedconfigmap-controller  Creating ConfigMap "test-placement/myfedconfigmap" in cluster "a"
  Normal   UpdateInCluster        10m (x7 over 11m)     federatedconfigmap-controller  Updating ConfigMap "test-placement/myfedconfigmap" in cluster "b"
  Warning  CreateInClusterFailed  9m53s (x8 over 11m)   federatedconfigmap-controller  Failed to create ConfigMap "test-placement/myfedconfigmap" in cluster "b": An update will be attempted instead of a creation due to an existing resource
  Normal   CreateInCluster        6m17s (x21 over 11m)  federatedconfigmap-controller  Creating ConfigMap "test-placement/myfedconfigmap" in cluster "b"
➜  scripts git:(master) ✗ kubectl describe configmaps -n test-placement --context a
Name:         myfedconfigmap
Namespace:    test-placement
Labels:       kubefed.io/managed=true
Annotations:  <none>

Data
====
A:
----
a and b
Events:  <none>
➜  scripts git:(master) ✗ kubectl describe configmaps -n test-placement --context b
Name:         myfedconfigmap
Namespace:    test-placement
Labels:       <none>
Annotations:  <none>

Data
====
A:
----
a and b
Events:  <none>

Anything else we need to know?:
I also tried removing the host cluster and the resource was successfully removed. Also, the member cluster seems to be missing label  kubefed.io/managed=true
Environment:

Kubernetes version: 1.14.1
KubeFed version 0.1.0-rc6
Scope of installation kube-federation-system
Others: Using kind to create clusters: kind version v0.4.0

/kind bug

If you add the managed label to the configmap in cluster b, I would expect the resource to be deleted.
Any idea how the managed label came to be removed from the configmap in cluster b? All resources created in member clusters by KubeFed controllers will include the managed label, and any existing resources for which placement exists will be adopted by KubeFed by the addition of the managed label. KubeFed only removes the managed label from a resource when an orphaning deletion of the managing federated resource is performed, in which case all managed resources in member clusters will have the managed label removed. By design, KubeFed will not delete a resource that does not have the managed label (as per #549).


feat(db-entry): Ported db-entry entity from old repo

:tada: This PR is included in version 1.1.0 :tada:
Your semantic-release bot :package::rocket:


Inplement_Dpinger

I am sure there is a lot of tidying up to do on this, and a lot of testing - however it is working on my 18.7 VM which is a good start!

We can take this on a branch, it should no go directly to master. Whether or not the service is called apinger or dpinger, keeping function names cleans up the PR, and I'm almost entirely sure we should make this optional / switchable in the beginning.

Well it cannot be made a plugin as there are script changes. Making it optional to use Apinger or Dpinger seems a lot of work to me.

So what branch do you want to put this on?

I'll have a go at making this an option to use Apinger or Dpinger...

@marjohn56 I will help, but I have a book review to finish this weekend...

Going to look at bit deeper at this. Although it all works, when the WAN goes down, sometimes and sort of one in six cases, the WAN v6 instance of dpinger fails to restart. Now, I am also playing with Monit, that's monitoring the instances nicely. My thoughts are that it may be better to fire of dpinger instances as separate scripts or something like that so Monit or other can restart it required.

OK, so now I have it working as a user option setting, but now I need some help with the system_gateways_edit.php. When we select advanced we need to switch between the settings for apinger and the settings for dpinger. Although some of the params are the same, most are not. So my thoughts are that when advanced is selected, currently it displays the apinger defaullts, we need that switchable to display the dpinger defaults if dpinger is selected and write the values as dpinger variables for that gateway. This is where I am stuck though, when we get into the html bits I go cross-eyed!

Is it a global setting?

Is what a global setting, use dpinger? Yes.

if you have the diff against the edit page I can add the switch if you want.

OK, I'll do that. :)
But first we need decide how we save those advanced settings, currently, each gateway in the xml is like this:

<gateway_item>
wan
dynamic
WAN_PPPOE
1
inet

Interface WAN_PPPOE Gateway
<avg_delay_samples/>
<avg_loss_samples/>
<avg_loss_delay_samples/>
<IP_ADDRESS>
1
</gateway_item>
I propose for dpinger we use something like:

wan
dynamic
WAN_PPPOE
1
inet

Interface WAN_PPPOE Gateway

<IP_ADDRESS>
1

to differentiate, obviously, apinger and dpinger don't use all the same variables, in apinger some are in seconds whereas dpinger it's milliseconds etc.

This came in mangled by github, but I see your proposal during edit... I think the names should be the same but increase depth by <options></options> block perhaps, but it also means we can't easily reuse/migrate them in either case. If we skip the extra resolution for now for compat would that be bad for the time being?

I think we’ll need to increase the options, as for example Apinger you set an alarm if number of failed pings, with dpinger it says percentage of failed pings.
Here’s what dpinger says.
options:
-f run in foreground

-R rewind output file between reports

-S log warnings via syslog

-P priority scheduling for receive thread (requires root)

-B bind (source) address

-s time interval between echo requests (default 500ms)

-l time interval before packets are treated as lost (default 4x send interval)

-t time period over which results are averaged (default 60s)

-r time interval between reports (default 1s)

-d data length (default 0)

-o output file for reports (default stdout)

-A time interval between alerts (default 1s)

-D time threshold for latency alarm (default none)

-L percent threshold for loss alarm (default none)

-C optional command to be invoked via system() for alerts

-i identifier text to include in output

-u unix socket name for polling

-p process id file name

notes:
IP addresses can be in either IPv4 or IPv6 format

time values can be expressed with a suffix of 'm' (milliseconds) or 's' (seconds)

if no suffix is specified, milliseconds is the default

the output format is "latency_avg latency_stddev loss_pct"

latency values are output in microseconds

loss percentage is reported in whole numbers of 0-100

resolution of loss calculation is: 100 * send_interval / (time_period - loss_interval)

the alert_cmd is invoked as "alert_cmd dest_addr alarm_flag latency_avg loss_avg"

alarm_flag is set to 1 if either latency or loss is in alarm state

alarm_flag will return to 0 when both have have cleared alarm state

What we can do is leave the 'extra bits' in dpinger at the default settings. With the second/millisecond thing that's easy enough to resolve, just multiply the value by 1000 if using dpinger. I'll try and get something though this week. Rather busy week ahead with real work but I'll see what I can get done.

Sounds like a plan. To ease your testing for yourself and others in the future, dpinger is now a dependency in the devel version.

Cool. What I am doing is 'translating' from one set of defaults to the other in system_gateways_edit.php, Seems the only logical way of doing it and keeping just the one set of values in the config if set.

It's even easier than I thought. Reading a bit more says that you can use Seconds instead of mS just by specifying in the command line. I'll try and get something new on this this afternoon/evening. I have worked out how to hide the non-relevant bits in the web part of the php.

@fichtner - it is going to be better to write the options separately for dpinger. That way you can switch between apinger and dpinger without affecting any custom options.


Add twist.moe as one of the video source since its video quality is far better than the other sources

Describe the feature here

@redfanglicker twist.moe support is now in master. :tada:


Runtime Error: TypeError: fun is not a function

Open the test app in Ellie or reproduce in your local project.
It compiles but fail with runtime TypeError.
It uses package jvoigtlaender/elm-memo which is pure Elm, non JS
Chrome 60.0.3112.90
macOS Sierra 10.12.6

It seems to be the problem in dependency of jvoigtlaender/elm-memo - elm-lang/lazy (it contains native JS)

No, the dependency on native code is not the problem. The problem is that the current Elm compiler does not treat certain recursions correctly. It is fixed in the upcoming Elm 0.19 version according to what I have heard.
However, jvoigtlaender/elm-memo itself will not be available in Elm 0.19 anymore, due to the discontinuation of elm-lang/lazy (https://github.com/elm-lang/lazy/commit/c9c3f8525d22978cd7ee6e463ebf208f30fa1f91).

To see that it is currently just a problem of the compiler's treatment of recursion, you can just switch around the definition order of fib and mfib in your Ellie app. Suddenly it will work.

@jvoigtlaender Ok, so as it is fixed in 0.19 I close the issue.

@jvoigtlaender
Is this recursion treatment problem actual for pure code without native dependencies?

Yes, it very much is. Many examples exist in issues in this repository and/or the elm-lang/core repository.

See https://github.com/elm-lang/elm-compiler/issues/1591


showMore() is not a function

I'm trying to implement a custom infiniteHits with a showMore button:
on https://www.algolia.com/doc/api-reference/widgets/infinite-hits/js/#connector
at the showMore section, there is an example with a custom item rendering, I have copy/past that example without changing anything. It works fine, by that I mean it shows my items, but as soon as I click on showMore button it return : showMore is not a function.

Did you copy the code exactly? When I add it to a sandbox it seems to work: https://codesandbox.io/s/gracious-voice-ycyuix?file=/src/app.js
Don't hesitate getting back to us sharing your code and we can figure out why showMore isn't a function in your case


Test failures on Debian

This is a forward of Debian#1031451.
🐞 Problem
The CI tests we do during the build of the Debian poliastro package fail now:
__________ test_maneuver_constructor_raises_error_if_invalid_delta_v ___________

    def test_maneuver_constructor_raises_error_if_invalid_delta_v():
        dv1 = np.zeros(3) * u.km / u.s
        dv2 = np.ones(2) * u.km / u.s  # Incorrect dv
        with pytest.raises(ValueError) as excinfo:
            with warnings.catch_warnings():
                # Different length numpy arrays generate a deprecation warning.
                warnings.simplefilter(
                    "ignore", category=np.VisibleDeprecationWarning
                )
                Maneuver((0 * u.s, dv1), (2 * u.s, dv2))
>       assert "Delta-V must be three dimensions vectors" in excinfo.exconly()
E       AssertionError: assert 'Delta-V must be three dimensions vectors' in 'ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.'
E        +  where 'ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.' = <bound method ExceptionInfo.exconly of <ExceptionInfo ValueError('setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.') tblen=4>>()
E        +    where <bound method ExceptionInfo.exconly of <ExceptionInfo ValueError('setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.') tblen=4>> = <ExceptionInfo ValueError('setting an array element with a sequence. The requested array has an inhomogeneous shape after 1 dimensions. The detected shape was (2,) + inhomogeneous part.') tblen=4>.exconly

tests/test_maneuver.py:26: AssertionError
______________________ test_stumpff_functions_above_zero _______________________

    def test_stumpff_functions_above_zero():
        psi = 3.0
        expected_c2 = (1 - cos(psi**0.5)) / psi
        expected_c3 = (psi**0.5 - sin(psi**0.5)) / psi**1.5

        assert_equal(c2(psi), expected_c2)
>       assert_equal(c3(psi), expected_c3)
E       AssertionError:
E       Items are not equal:
E        ACTUAL: 0.143379966939162
E        DESIRED: 0.14337996693916197

tests/test_stumpff.py:22: AssertionError
______________________ test_stumpff_functions_under_zero _______________________

    def test_stumpff_functions_under_zero():
        psi = -3.0
        expected_c2 = (cosh((-psi) ** 0.5) - 1) / (-psi)
        expected_c3 = (sinh((-psi) ** 0.5) - (-psi) ** 0.5) / (-psi) ** 1.5

>       assert_equal(c2(psi), expected_c2)
E       AssertionError:
E       Items are not equal:
E        ACTUAL: 0.6381924800586426
E        DESIRED: 0.6381924800586427

tests/test_stumpff.py:30: AssertionError

While the last two failures are probably easy to fix with an np.testing.assert_almost_equal() or similar, I have no glue about the first one. Do you have an idea?
Versions:

poliastro_0.17.0
Python 3.11.2
astropy 5.2
matplotlib 3.6.3
numpy 1.24.2
numba 0.56.4
pandas 1.5.3
scipy 1.10.0
sympy 1.11

All Python packages (installed as Debian packages; the part after the - is the Debian revision):
appdirs 1.4.4-3
astropy 5.2.1-2
astroquery 0.4.6+dfsg-4
attr 22.2.0-1
beniget 0.4.1-3
brotli 1.0.9-2+b6
bs4 4.11.2-1
certifi 2022.9.24-1
cffi-backend 1.15.1-5+b1
chardet 5.1.0+dfsg-2
charset-normalizer 3.0.1-2
configobj 5.0.8-1
contourpy 1.0.7-1+b1
coverage 6.5.0+dfsg1-2+b1
cryptography 38.0.4-2
cycler 0.11.0-1
dateutil 2.8.2-1
decorator 5.1.1-3
dev 3.11.2-1
distutils 3.11.2-2
docutils 0.19+dfsg-6
erfa <IP_ADDRESS>+ds-3+b1
fastjsonschema 2.16.2-1
fonttools 4.38.0-1+b1
fs 2.4.16-2
gast 0.5.2-2
html5lib 1.1-3
hypothesis 6.67.1-1
idna 3.3-1
importlib-metadata 4.12.0-1
iniconfig 1.1.1-2
jaraco.classes 3.2.1-3
jeepney 0.8.0-3
jsonschema 4.10.3-1
jupyter-core 4.12.0-1
keyring 23.9.3-2
kiwisolver 1.4.4-1+b1
lib2to3 3.11.2-2
llvmlite 0.39.1-2
lxml 4.9.2-1+b1
lz4 4.0.2+dfsg-1+b2
matplotlib 3.6.3-1+b1
mimeparse 1.6.0-3
minimal 3.11.2-1
more-itertools 8.10.0-2
mpmath 1.2.1-2
nbformat 5.5.0-1
numba 0.56.4+dfsg-2
numpy 1:1.24.2-1
packaging 23.0-1
pandas 1.5.3+dfsg-1
pandas-lib 1.5.3+dfsg-1+b1
pbr 5.10.0-2
pil 9.4.0-1.1+b1
pil.imagetk 9.4.0-1.1+b1
pkg-resources 66.1.1-1
plotly 5.4.1+dfsg-1
pluggy 1.0.0+repack-1
ply 3.11-5
psutil 5.9.4-1+b1
py 1.11.0-1
pyparsing 3.0.9-1
pyrsistent 0.18.1-1+b3
pytest 7.2.1-2
pytest-arraydiff 0.5.0-2
pytest-astropy 0.10.0-2
pytest-astropy-header 0.2.2-1
pytest-cov 4.0.0-1
pytest-doctestplus 0.12.1-1
pytest-filter-subpackage 0.1.2-1
pytest-mock 3.8.2-3
pytest-openfiles 0.5.0-3
pytest-remotedata 0.4.0-1
pythran 0.11.0+ds-7
pyvo 1.2.1-1
requests 2.28.1+dfsg-1
roman 3.3-3
scipy 1.10.0-9
secretstorage 3.3.3-1
setuptools 66.1.1-1
six 1.16.0-4
sortedcontainers 2.4.0-2
soupsieve 2.3.2-1
sympy 1.11.1-1
tenacity 8.0.1-1
tk 3.11.2-2
tomli 2.0.1-2
tomli-w 1.0.0-2
traitlets 5.5.0-1
tz 2022.7.1-1
ufolib2 0.14.0+dfsg1-1
urllib3 1.26.12-1
webencodings 0.5.1-5
yaml 6.0-3+b2
zipp 1.0.0-6

Hi @olebole, thank you for forwarding this issue.
I tested all previous conditions except the Python 3.11 (Python 3.10 in my case) and the test passed. Right now, poliastro does not support 3.11 yet since it depends on Numba but no wheels for this py311 have been released, see issue https://github.com/numba/numba/issues/8304

I should have read the full error and the meaning of the test ... Actually the error message seems somehow similar to what it should be, and a ValueError is raised. So, I would take this as a minor problem and for the Debian package just mark the first test xfail and change the two others to almost_equal. This keeps poliastro in the game for the next Debian "Bookworm" release.

About the assertions, we should impose absolute and relative tolerances via the numpy.testing.assert_allclose function.

Hi, Numba dev here,  Numba 0.56.4 isn't compatible with Numpy 1.24.* -- see also: https://numba.readthedocs.io/en/stable/user/installing.html#version-support-information

Thanks a lot for pointing this out, @esc.


Spotify clone

Project title
Spotify clone
Project Description
This is a clone of Spotify.
Stack:
[ Used] Html
[ Used] CSS
[ Used] JavaScript

Hi there, I want to work on this issue.
Can you please assign it to me.


Archive Activity form

Refs #3707
Creates a page callback and form to bulk migrate a Campaign's Activity (Signups + reportback) to a Campaign Run associated with it, thus opening the Campaign up for a second run.
The Archive page will only display for Campaign nodes for which Campaign Runs exist.
This won't be executed any time too soon.  last TODO left is to add batch processing into the form submit, to avoid timeouts for campaigns with large activity numbers.

:+1:  That's a great job for only 1 hour. You're fast!

:racehorse:


fix(open-api) Fix GetBuilds

This fixes https://github.com/go-vela/community/issues/141

This seems to work, but there are likely other examples that return lists.


[feature] Support lineage generation when ingesting from multiple DBs in Debezium's SQL Connector

Describe the bug
Starting with v2.0, Kafka Connect's Debezium's SQL Connector allows ingesting data from partitioned tables across multiple databases with a single connector.
In the PR #8608, we made a partial fix for the lineage generation for the single database usecase, but the code still needs to be adapted to support the generation of lineage for multiple DBs.
To Reproduce
Steps to reproduce the behavior:

In the kafka_connect.py file, you can find our previous fix here
https://github.com/datahub-project/datahub/blob/6bfd94c713bcd0a735a05ed55db49594c21db8d3/metadata-ingestion/src/datahub/ingestion/source/kafka_connect.py#L691C1-L704
If multiple databases are detected in the manifest of the connector, an exception will be thrown and the lineage won't be generated.

Expected behavior
A clear and concise description of what you expected to happen:

The ingestion is able to generate the lineage taking into account the multiple databases that are used as sources in the Connector.

Screenshots
N/A
Desktop (please complete the following information):
N/A
Additional context
N/A

Not stale. We haven't got around implementing it yet.


Matlab: add documentation for write functions group support

See https://trello.com/c/gSKqCAe2/49-omero-matlab-group-support
This PR:

reviews the writexxAnnotation functions giving concrete examples for each existing annotation type
adds example of annotation writing command in a different group
documents the project/dataset/screen/plate creation functions with and without group support

Staged at https://www.openmicroscopy.org/site/support/omero5.1-staging/developers/Matlab.html

At the risk of sounding like a broken record on this I would suggest adding after the examples at lines 709
% Create a new project and a linked dataset in the specified group

newproject = createProject(session, 'project name', 'group', groupId);
newdataset = createDataset(session, 'dataset name', project, 'group', groupId);

and 732
% Create a new screen and a linked plate in the specified group

newscreen = createScreen(session, 'screen name', 'group', groupId);
newplate = createPlate(session, 'plate name', screen, 'group', groupId);

a line explaining that passing the groupId in the second line isn't actually required as the command will default to -1 in this case and is shown only as an example. Also if a groupId is passéd then it must match that of the group to which the project/screen belong.

@imunro: I am pretty sure that with the current implementation of https://github.com/openmicroscopy/openmicroscopy/pull/4145 passing the group is currently mandatory to create a linked datasets/plate in a different group since we are not retrieving the group of the parent object.
If not passing a group option is the preferred way, we can modify the implementation and systematically reload the parent object to retrieve its group details. In this case, this leaves the question of whether passing the groupId in the following call:
newdataset = createDataset(session, 'dataset name', project, 'group', groupId);

should:
1- override the project group with groupId i.e. leave the full granularity in the API
2- still use the project group unconditionally, i.e. be a no-op
3- optionally throw a warning in the case of 1) or 2)
4- not be allowed
This is the same question as https://github.com/openmicroscopy/openmicroscopy/pull/4145#issuecomment-138594704.

From my testing it appears that the above command:
newdataset = createDataset(session, 'dataset name', project, 'group', groupId);
will only work when groupId matches the group of "project" . My feeling is that this should be disallowed to simplify the interface - however it is currently allowed and therefore IMO requires explanation.

Last commit should update the object creation documentation to match the new API semantics proposed in #4145

Changes to documentation look fine to me. Good to Merge.

an XML annotation

 % Create a new project and a linked dataset in the specified group
  newproject = createProject(session, 'project name', 'group', groupId);
  newdataset = createDataset(session, 'dataset name', 'group', groupId);

Not clear since in that case the dataset is not linked to the project. This is done later on in the example.
Same comment for screen plate below

:+1: Commit pushed to update the descriptions.

Shouldn't it be an XML annotation instead of "a XML"?

travis is green

--rebased-to #1279


Optionally split src_dir and build_dir

Hello
Here is the modification I have done to python buildpack in order to build my project. I use a modified version of heroku-buildpack-multi that support building projects that are in sub folders to the build directory (https://github.com/Stibbons/heroku-buildpack-multi-subdir).
In other word, I simply allow to build outside of the source directory. build_dir is where the .heroku directory will be generated. src_dir is where the requirements.txt file is. Of course, this is optional, the default is still build_dir = src_dir.
I add also to fix an issue regarding libffi which wasn't working. To do so, I've imported a modification from https://github.com/mfenniak/heroku-buildpack-python-libffi/blob/master/bin/steps/libffi.
I think this worth being generalized.
Tell me what you thing about this

Thank you very much! This is very cool.
Unfortunately, this is not something that will be merged into the official buildpack at this time.


Check preprocessed traces

The verifier needs to check that the prover is sending correct commitments to the preprocessed traces. The prover can send openings, proven with the batch opening proof, which let the verifier check that the commitments to the preprocessed traces are for the correct preprocessed traces. Or maybe the verifier can check it by reproducing the same commitments to the preprocessed traces.

In verify_constraints in machine/src/verify.rs, the OpenedValues struct should be populated with the openings of the preprocessed trace polynomials at the random point, as computed by the verifier, as opposed to as claimed by the prover.


⚠ Bofrost.es has degraded performance

In 259f5d8, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1718 ms

Resolved: Bofrost.es performance has improved in e7b2d7e after 6 minutes.


Multiple sequential ULog invalid magic number failures

System

mavlink-routerd running on OSD335x-SM (ARM A8)
Connected via USB to PixHawk Cube running PX4 1.8.0

Configuration
# main.conf
[General]
Log=/var/log/flight-stack
LogMode=while_armed
MavlinkDialect=common

Describe the bug
I start mavlink-router: mavlink-routerd /dev/ttyACM0:2000000
The log output from mavlink-router is seen below:

Expected Behavior
I would expect that the log would start without issue.
Additional context
This behavior persisted through:

Multiple arm/disarm cycles
Multiple restarts of the flight controller and mavlink-routerd
Changing link speed from 2000000 to 115200

What additional information can I provide to help resolve this issue?

Try with 921600 baud rate. That's above the minimum for ulg and something that is known to work well for cube.
Also try without LogMode, maybe we had a regression since this is a new feature (btw, the option you're using got renamed).

Thank for getting back to me, Lucas.
I tried your suggestions, below is a breakdown of my results.
First, I only changed the baud rate while leaving "LogMode=while-armed"

I was able to log once successfully, but then failed the second time. I repeatedly armed/disarmed and found that every other attempt failed with 6-12 of these error messages.
Then I left baudrate at 921600 and comment out my LogMode

Interestingly, this showed the same behavior - every other attempt to start a log failed multiple times before succeeding.
Additional Question
Which option was renamed? Looking through main.cpp I see that the logging mode setting is LogMode and the value I want is while-armed, which matches my current configuration file.

@zehortigoza @bkueng you have more experience with the PX4 loggging. Any clue on this?

I would first check those 'x messages to unknown endpoints in the last 5 seconds':
Is QGC is getting all the information from PX4?
Enable mavlink-router debug messages and check what is the sysid/compid of this messages.

@nslogan There was a Firmware bug in 1.8.0 that could have triggered that. Can you try with master?
I also backported the fix to 1.8.0 in https://github.com/PX4/Firmware/pull/10475.

Which option was renamed?

in your original description you said while_armed, but the option is while-armed

I see, it looks like I cloned just before that commit and then checked for the name in GitHub's source browser without looking back at my own config file or first issue comment. Thanks for the clarification, I'll pull and update my build.
Enable Debug Messasges
Firmware: 1.8.0 (release; 96443b3)

I would first check those 'x messages to unknown endpoints in the last 5 seconds':
Is QGC is getting all the information from PX4?
Enable mavlink-router debug messages and check what is the sysid/compid of this messages.

QGC is getting all of the information it needs from PX4, I'm able to interact with the vehicle normally.
Additionally, I left mavlink-routerd running longer this time and noticed it timing out on receiving log messages:

Update to PX4 master
Success! I re-enabled the "log while armed" setting and successfully armed / disarmed multiple times without any failures. So it appears the firmware was the issue.
I do, however, still have the same " messages to unknown endpoints in the last 5 seconds" messages. Any ideas how I can fix that?
Thanks for the help, everyone.

I do, however, still have the same " messages to unknown endpoints in the last 5 seconds" messages. Any ideas how I can fix that?

Enable mavlink-router debug messages and check what is the sysid/compid of this messages, then track who is sending that messages? if the destination should exist?

I captured a log from mavlink-router that contained the unidentified messages. All instances match this line:
Endpoint [4] got message to 1/0 from 1/1
	Known endpoints:
		1/1
Endpoint [-1] got message to 1/0 from 1/1
	Known endpoints:
		2/0
Message to unknown sysid/compid: 1/0

This appears to be a message from the flight controller, MAV_COMP_ID_AUTOPILOT1, to MAV_COMP_ID_ALL, which mavlink-routerd doesn't recognize as a valid endpoint. Is this at all related to issue #134. This appears to be the only message to the flight controller that mavlink-router is seeing, which is interesting.

So flight controller(sys id=1) is sending a message to sys id=1, so that is a issue in flight controller as it should not send that message externally. If you want to keep investigating this, add the message ID to the above message and check what PX4 module sends that ID.

Great, I can close out this issue then - looks like it was a PX4 firmware incompatibility issue.
Sorry, I'm not as familiar with the MAVLink environment yet. I'm not sure what you mean by:

If you want to keep investigating this, add the message ID to the above message and check what PX4 module sends that ID.

I would like to track this down.


Folder .vscode cannot be a symbol link

Issue Type: Feature Request
I noticed the .vscode directory cannot be a symbol link. This is meaningful when we have many projects and backing up those configurations is necessary.
Of course I don't want it to be saved with the source code when pushing up the project's git

VS Code version: Code 1.35.1 (c7d83e57cd18f18026a8162d042843bda1bcf21f, 2019-06-12T14:30:02.622Z)
OS version: Windows_NT x64 10.0.14393

I just restart vscode and it's working now. So this should close


Update deploy to build wheels for each supported python version

Adds wheels for #146

@gir-bot lgtm

@gir-bot lgtm

I would recommend building all the parts, using actions/upload-artifact@v2, then then doing the submit once in a download job with needs. Also 1.4.1 is the current version of the pypa action, IIRC.

I would recommend building all the parts, using actions/upload-artifact@v2, then then doing the submit once in a download job with needs. Also 1.4.1 is the current version of the pypa action, IIRC.

That way, if there was a problem building a wheel, it would stop before submitting the files.

That way, if there was a problem building a wheel, it would stop before submitting the files.

@henryiii, thanks for the info. I'll definitely upgrade to the latest pypa action. It is one of those things that wasn't broke, so it kept slipping my mind. As for artifacts, it is something to consider. It hasn't been needed for most of my projects as both sdist and bdist_wheel have been built in one step. This is the first project where I am uploading through multiple steps.
I'll take a look in the future. It definitely sounds like a good idea.

@henryiii, thanks for the info. I'll definitely upgrade to the latest pypa action. It is one of those things that wasn't broke, so it kept slipping my mind. As for artifacts, it is something to consider. It hasn't been needed for most of my projects as both sdist and bdist_wheel have been built in one step. This is the first project where I am uploading through multiple steps.
I'll take a look in the future. It definitely sounds like a good idea.


How do I run jqplay locally?

I've downloaded the code and followed the readme and have Postgres, node and go installed on macOS
I ran ./bin/setup and ./bin/start but get some errors
i.e.
cmd/jqplay/main.go:4:2: cannot find package "github.com/jingweno/jqplay/config" in any of: 	/usr/local/go/src/github.com/jingweno/jqplay/config (from $GOROOT)         ~/go/src/github.com/jingweno/jqplay/config (from $GOPATH)
Does it need a docker command, grunt command ??

For my side, I just added the following bash script called jqplay.sh in local folder using docker-compose file :
cat << EOF | tee jqplay.sh
#!/bin/bash
if [[ "\$1" = "down" ]]; then
   cd "\$(dirname "\${BASH_SOURCE}")" && docker-compose down
else
   cd "\$(dirname "\${BASH_SOURCE}")" && docker-compose up
fi
EOF
chmod +x jqplay.sh

Then I have added the location to my PATH in my profile so I can :

run jqplay.sh to start locally without force rebuilding the docker images (given mapping is to all interfaces - this is accessible on http://localhost:8080 or from other computers on my network http://<>:8080)
run jqplay.sh down to delete the containers

@Claire is this still an issue? If you're using docker, you should be able to clone this repo and run make start which is the equivalent of running docker-compose up --build --force-recreate and then jqplay should be available at http://localhost:8080/. This will provide the latest versions of jqplay and Postgres.


preliminary ci.yml

Things/checks to add:

clippy
rustfmt
tests

Maybe target this PR into the other one, so that we know the initial PR to master will pass CI.

Realise there's also an issue with the final step, shouldn't be able to do which fuelup anymore since we're not installing it like in sway CI

This is how I did it without using which: https://github.com/FuelLabs/fuel-core/blob/master/.github/workflows/ci.yml#L356

Hmm, now testing this on a branch within the fuel-dummy-test repo and the cross images are running into build errors which seem to stem from OpenSSL. Seems to be a long-standing issue and point of discussion over at cross: https://github.com/cross-rs/cross/issues/229
Workaround seems to be to use a custom image and install the necessary packages(?) Trying this now.

Ah interesting, it may be worth investigating a way to eliminate the dependency on OpenSSL given most libraries support webpki/rustls these days. I did have to do custom docker images for fuel-core but it was painful.

Ah, okay 👍  Seems possible to build with rustls instead so I think I'll work towards that, thanks @Voxelot!

Ah, okay 👍 Seems possible to build with rustls instead so I think I'll work towards that, thanks @Voxelot!

Turns out curl-rust allows disabling openssl features and enabling rustls instead (link):
curl = { version = "0.4" default-features = false, features = ["rustls"] }

Builds seem to be working fine in the test repo.

should be g2g, but let's see a test release fully work before merging

Is there supposed to be some way to verify the developer(s) of the releases? Couldn't run the x86_64 mac binary myself at first, then tried a bit later and it worked somehow

We'll need to get an apple developer certificate enabled in CI to resolve that. For now we'll need to find some kind of workaround to help users requests the permissions they need to run the binary on mac.

If it's not needed for this PR, can you file an issue and assign it to me to follow-up on adding the cert?


Rename constants source to forcings

Codecov Report
Attention: Patch coverage is 95.91837% with 2 lines in your changes missing coverage. Please review.

Project coverage is 89.92%. Comparing base (721fe99) to head (b7cd8d5).

Files
Patch %
Lines

tests/forcings/test_forcings_proc.py
87.50%
1 Missing :warning:

tests/forcings/test_forcings_slice.py
92.30%
1 Missing :warning:

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #408   +/-   ##
========================================
  Coverage    89.92%   89.92%
========================================
  Files          120      120
  Lines         7764     7764
  Branches       675      675
========================================
  Hits          6982     6982
  Misses         651      651
  Partials       131      131

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


libbpf: load bpf program failed: Invalid argument

testing environment：
Linux admin-pc 4.18.0-10-generic #11-Ubuntu SMP Thu Oct 11 15:13:55 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
I compile a simple test program，when I run with btf file, I obtained the following error message：
error message
    libbpf: loading openat2_kern.o
    libbpf: elf: section(3) kprobe/, size 16, link 0, flags 6, type=1
    libbpf: sec 'kprobe/': found program 'bpf_prog' at insn offset 0 (0 bytes), code size 2 insns (16 bytes)
    libbpf: elf: section(4) license, size 4, link 0, flags 3, type=1
    libbpf: license of openat2_kern.o is GPL
    libbpf: elf: section(5) .eh_frame, size 48, link 0, flags 2, type=1
    libbpf: elf: skipping unrecognized data section(5) .eh_frame
    libbpf: elf: section(6) .rel.eh_frame, size 16, link 7, flags 0, type=9
    libbpf: elf: skipping relo section(6) .rel.eh_frame for section(5) .eh_frame
    libbpf: elf: section(7) .symtab, size 120, link 1, flags 0, type=2
    libbpf: looking for externs among 5 symbols...
    libbpf: collected 0 externs total
    kernel is 267008
    find program is ok
    libbpf: load bpf program failed: Invalid argument
    libbpf: failed to load program 'bpf_prog'
    libbpf: failed to load object 'openat2_kern.o'
    load object file error!

The btf file I'm using comes from the github  repository: https://github.com/aquasecurity/btfhub-archive/
test code
// openat2_kern.c
#define BPF_NO_GLOBAL_DATA
#include <linux/bpf.h>
#include <bpf/bpf_helpers.h>

SEC("kprobe/__x64_sys_write")
int bpf_prog(struct pt_regs *ctx)
{
  char msg[] = "hello world!\n";
 // bpf_trace_printk(msg, sizeof(msg));
  return 0;
}

char _license[] SEC("license")="GPL";

//openat2_user.c
#include <bpf/bpf.h>
#include <bpf/libbpf.h>
#include <linux/bpf.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/resource.h>
#define DEBUGFS "/sys/kernel/debug/tracing/"

void read_trace_pipe(void){
	int trace_fd;
	trace_fd = open(DEBUGFS "trace_pipe", O_RDONLY,0);
	if(trace_fd < 0)
		return ;
	while(1){
		static char buf[4096]={0x00};
		ssize_t sz;
		sz = read(trace_fd, buf, sizeof(buf) - 1);
		if(sz > 0){
			buf[sz] = 0;
			puts(buf);
		}
	}
}

static void bump_memlock_rlimit(void)
{
	struct rlimit rlim_new = {
		.rlim_cur = RLIM_INFINITY,
		.rlim_max = RLIM_INFINITY,
	};

	if (setrlimit(RLIMIT_MEMLOCK, &rlim_new)) {
		fprintf(stderr, "Failed to increase RLIMIT_MEMLOCK limit!\n");
		exit(1);
	}
}
static int libbpf_print_fn(enum libbpf_print_level level, const char *format, va_list args)
{
		return vfprintf(stdout, format, args);
}

int load_bpf_file(const char * object_name){

	struct bpf_object * objs;
	struct bpf_program * prog;
	struct bpf_link * link = NULL;

	bump_memlock_rlimit();
	/* Set up libbpf errors and debug info callback */
	libbpf_set_print(libbpf_print_fn);

	struct bpf_object_open_opts openopts = {};
	openopts.sz = sizeof(struct bpf_object_open_opts);
	openopts.btf_custom_path = strdup("4.18.0-13-generic.btf");

	printf("%s\n",openopts.btf_custom_path);
	objs = bpf_object__open_file(object_name,&openopts);
	if(objs&&libbpf_get_error(objs)){
		fprintf(stderr, "open object file error!\n");
		goto cleanup;
	}
	prog = bpf_object__find_program_by_name(objs, "bpf_prog");
	if(!prog){
		fprintf(stderr, "ERROR: finding a prog in obj file failed\n");
		fprintf(stderr, "%s\n",strerror(errno));
		goto cleanup;
	}
	printf("find program is ok\n");
	if(bpf_object__load(objs)){
		fprintf(stderr, "load object file error!\n");
		goto cleanup;
	}
	printf("load prog is ok\n");
	link = bpf_program__attach(prog);
	if(libbpf_get_error(link)){
		fprintf(stderr, "ERROR: bpf_program__attach failed.\n");
		goto cleanup;
	}
	return 0;
cleanup:
	bpf_link__destroy(link);
	bpf_object__close(objs);
	return -1;
}

int main(void)
{
    if(load_bpf_file("openat2_kern.o")){
        return -1;
  }
  read_trace_pipe();
  return 0;
}

Your running kernel is 4.18.0-10 and the BTF is for 4.18.0-13, why is that ? Although it might work, having types from another kernel build might not be good (or sometimes work).
Apart from that, can u make it work with a simple "return" ? Have you tried other kprobes ? Or raw tracepoints ? Unfortunately old verifiers are very lousy in their error messages and one good practice is to "bisect" your source code until "it works", thus trying to have a kprobe with a single return could git you a good indication (iirc char * will be placed in rodata, which is something that might not work in older kernels, it is worth checking).


Fixes #65

This issue wil fix #65

Thanks for the PR, but I'm going to close this since this repo has been EOL for a while now.


Google contacts problem

Hi, I use ubuntu 14.04 and Jitsi versions 2.9.5478 and 2.9.5475, and I can't add google contacts in Tools -> Options -> Advanced -> Contact sources -> Google contacts -> +
I put data in Account name and "Save", but nothing happens.
Thanks in advance.

We need your full logs. Please send them to the mailing list or create a Gist and link to it here.

I have the same problem... Logs shows
INFO: [23] impl.googlecontacts.GoogleContactsConnectionImpl.connect().132 Google contacts connection failure: com.google.gdata.util.AuthenticationException: Error authenticating (check service name)
I doublechecked e-mail and pass... The same problem with another google account

2015-10-18 21:17:44.585 SEVERE: [138] util.UtilActivator.uncaughtException().119 An uncaught exception occurred in thread=Thread[Thread-11,5,main] and message was: Missing client ID or client secret. It is not possible to use Google Contacts API without it.
java.lang.IllegalStateException: Missing client ID or client secret. It is not possible to use Google Contacts API without it.
at net.java.sip.communicator.impl.googlecontacts.OAuth2TokenStore.get(OAuth2TokenStore.java:157)
at net.java.sip.communicator.impl.googlecontacts.GoogleContactsConnectionImpl.connect(GoogleContactsConnectionImpl.java:122)
at net.java.sip.communicator.impl.googlecontacts.GoogleContactsServiceImpl.loadConfig(GoogleContactsServiceImpl.java:142)
at net.java.sip.communicator.impl.googlecontacts.GoogleContactsServiceImpl.access$000(GoogleContactsServiceImpl.java:47)
at net.java.sip.communicator.impl.googlecontacts.GoogleContactsServiceImpl$1.run(GoogleContactsServiceImpl.java:94)

I haven't a field to put my password, only Account name (email address) and Prefix .

Hi,

  It's okay. You're not supposed to have one. As of a few months
  ago, it is not supported anymore to connect to Google services
  (via software) using username + password combo. Instead, OAuth2
  support is mandated.

  The way it is expected to work, is that you enter your email
  address/user id (I'm not sure which, atm) and the very first time
  the Contacts API is contacted, you are requested to enter your
  OAuth 2 code exactly as Google generates it for you when you
  follow the instructions on the screen.

  The only time you use your password, is when you log into Google
  itself (via a web page) so you can retrieve this OAuth 2 code.

  I need to check if there is a use case I missed. So far, I haven't
  got an idea what could go wrong in your specific case.

  Danny

  On 19-10-15 12:32, pepemedigu wrote:

  I haven't a field to put my password, only Account name (email
    address) and Prefix .
  —
    Reply to this email directly or view
      it on GitHub.

  _______________________________________________

dev mailing list
<EMAIL_ADDRESS>Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev

Excuse me... I understand you why it is not function but i don't understand how to fix it at all ! Could you be so kind to post step by step instruction with examples ?
Tnx !

Hi,

  I think you misunderstand my intentions. I'm not sure what causes
  your problem, so I cannot give you step-by-step instructions.
  I am giving some pointers of how it should work. I'm hoping you
  can confirm or deny any of these hints. That is, have you - for
  example - ever gotten the instruction dialog that asks you to
  generate and copy into it an access token from Google?

  As I explained earlier. You need not look for an input field where
  you can enter your password, as that is not an option anymore.

  Kind regards,
  Danny

  On 19-10-15 20:33, Adamoff wrote:

  Excuse me... I understand you why it is not function but i
    don't understand how to fix it at all ! Could you be so kind to
    post step by step instruction with examples ?
    Tnx !
  —
    Reply to this email directly or view
      it on GitHub.

  _______________________________________________

dev mailing list
<EMAIL_ADDRESS>Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev

I think that is right way to fix it coz i have the same authentication problem to Google Contacts at another SIP-client.
So... How to start OAuth 2 authentication in Jitsi and log into Google web page ? I'm still confused...

Hi developers,
I can't see any dialog about generating a token.
I attach you the dialog, I put my address, press Save, and nothing happend.
Thank you very much,

The token dialog only comes up once you search for a contact in the main window.
@cobratbq do you think the initial request could be made from the add-dialog and never from the search?

But, I can't save the Google source. When I press Save, the source wasn't created, no action succeed.

Hi all,

  I was following this thread, but was too busy to respond in time,
  noticed Ingo's message just now. Sorry about that, it wasn't my
  intention but I have been quite busy lately ...

  About the issue ... I have seen different error messages in this
  thread.

  (1.)
  First:
  2015-10-18 21:17:44.585 SEVERE: [138]
      util.UtilActivator.uncaughtException().119 An uncaught
      exception occurred in thread=Thread[Thread-11,5,main] and
      message was: Missing client ID or client secret. It is not
      possible to use Google Contacts API without it.

      java.lang.IllegalStateException: Missing client ID or client
      secret. It is not possible to use Google Contacts API without
      it.
     at

net.java.sip.communicator.impl.googlecontacts.OAuth2TokenStore.get(OAuth2TokenStore.java:157)
at
net.java.sip.communicator.impl.googlecontacts.GoogleContactsConnectionImpl.connect(GoogleContactsConnectionImpl.java:122)
at
net.java.sip.communicator.impl.googlecontacts.GoogleContactsServiceImpl.loadConfig(GoogleContactsServiceImpl.java:142)
at
net.java.sip.communicator.impl.googlecontacts.GoogleContactsServiceImpl.access$000(GoogleContactsServiceImpl.java:47)
at
net.java.sip.communicator.impl.googlecontacts.GoogleContactsServiceImpl$1.run(GoogleContactsServiceImpl.java:94)
I'm pretty sure this happens on your own builds from source,
correct?
  Please check the build task "-pre-googlecontacts". This
  task copies a template as a file which is supposed to provide the
  chat client's ID and secret. These are used by Google's OAuth2 API
  to distinguish one OAuth2 client from another. I use my own ID and
  secret when I make a personal build. Similarly, the Jitsi build
  server has one configured. (damencho knows the specifics about
  this IIRC)

  Please look up "GoogleAPIClientToken.java.tmpl" and "GoogleAPIClientToken.java".
  They should contain more information on this. So, this is not
  actually a bug, but a warning issued by Jitsi because it's missing
  information and therefore is not attempting to contact Google
  OAuth2 API servers.

  (2.)
  Last time I looked, I focused on the following error:

    INFO: [23]
    impl.googlecontacts.GoogleContactsConnectionImpl.connect().132
    Google contacts connection failure:
    com.google.gdata.util.AuthenticationException: Error
    authenticating (check service name)

  I don't know what causes this. I do not have this issue. The only
  things I can think of to suggest are the following:

  1. Remove any Google Contacts configuration lines already in the
  configuration file. Close Jitsi *first*! Then edit the file 'sip-communicator.properties'
  in the directory "~/.jitsi". (I'm not sure which
  directory this is on Windows. Please refer to https://jitsi.org/logs
  the correct directories are mentioned there for your particular
  OS.)
  You recognize the Google Contacts entries by (without the quotes
  themselves): "net.java.sip.communicator.impl.googlecontacts.<emailaddress>.ENCRYPTED_PASSWORD".
  Remove this line for each of the email addresses and you should
  get asked for a new token again. (There's a few lines that look
  alike which store the window's last position.)

  2. Check your Jitsi properties (in the application Jitsi, just the
  options) and verify that your contact sources are activated. For
  Google Talk accounts there is an option to disable Google Contacts
  searches, so make sure that Google Contacts searches are enabled
  for your accounts.

  Of course, if the above does not work, it helps to provide us with
  the extra information of whether you found the configuration lines
  described in 1.

  Also, try out the Google Contacts searches with a precompiled
  packaged Jitsi version. If it works there, then this might be an
  issue with building Jitsi.

  Hope this clarifies it a bit.

  Danny

  On 12-11-15 15:03, pepemedigu wrote:

  But, I can't save the Google source. When I press Save, the
    source wasn't created, no action succeed.
  —
    Reply to this email directly or view
      it on GitHub.

  _______________________________________________

dev mailing list
<EMAIL_ADDRESS>Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev

One quick remark, see below.

  On 12-11-15 20:22, Danny van Heumen wrote:

  INFO: [23]
      impl.googlecontacts.GoogleContactsConnectionImpl.connect().132
      Google contacts connection failure:
      com.google.gdata.util.AuthenticationException: Error
      authenticating (check service name)

    I don't know what causes this. I do not have this issue. The
    only things I can think of to suggest are the following:

    1. Remove any Google Contacts configuration lines already in the
    configuration file. Close Jitsi *first*! Then edit the file 'sip-communicator.properties'
    in the directory "~/.jitsi". (I'm not sure which
    directory this is on Windows. Please refer to https://jitsi.org/logs
    the correct directories are mentioned there for your particular
    OS.)
    You recognize the Google Contacts entries by (without the quotes
    themselves): "net.java.sip.communicator.impl.googlecontacts.<emailaddress>.ENCRYPTED_PASSWORD".

    Remove this line for each of the email addresses and you should
    get asked for a new token again. (There's a few lines that look
    alike which store the window's last position.)

These instructions for 1. are probably unnecessarily complex. Please
check Tools -> Options -> Security -> "Saved Passwords..."
first. The Google Contacts accounts might be listed there. I'm not
sure if Google Contacts "Contact sources" are also listed in the
Saved Passwords window.

Danny

Hmm... I guess that's an option, but given that you need to request the OAuth2 credentials in the developer console, this is too much of a hurdle for normal users. And on top of that, it is not the way it should be. I'm currently busy, but if I find some time I'll try and investigate.
I'm sorry that the Google Contacts give so many people problems. Although OAuth2 sounds like a nice feature in theory, for desktop software it can be quite an issue.


Gutters not displayed in latest release for absolute Windows paths

Describe the bug
Display of gutters (Windows, absolute paths) is broken in latest release 2.4.1
To Reproduce
Steps to reproduce the behaviour:

Generate lcov.info with absolute windows paths (e.g. SF:F:\Workspaces\SDK\C#\Module\Class.cs)
Click on 'Coverage Gutters: Display Coverage'
Gutters are not displayed

Expected behaviour
Gutters should be displayed
Desktop (please complete the following information):

OS: Windows 10
Extension Version [e.g. 2.4.1]
VSCode Version [e.g. 1.39.2]

Additional context

Gutters are also not displayed when using 'Coverage Gutters: Watch'
Gutters are correctly displayed in extension version 2.4.0
After modifying the lcov.info to use relative paths (e.g. SF:.\Module\Class.cs) the gutters are displayed using extension version 2.4.1

Hi, how do I install version 2.4.0

For me no coverage was being displayed for version 2.4.1, but all works fine on version 2.4.0. Thanks

@danilo-afonseca until I can investigate the issue, (which might be fixed in 2.4.2 with the workspace name improvements) you can download a vsix from the releases and install it via the instructions here https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix

@zeroid @danilo-afonseca version 2.4.2 has been released with the workspace normalization improvements. Let me know if that helps any!

Hi @ryanluker it worked fine for me, thanks

Looks good to me also. Thanks.


DBZ-8369 Migrate MongoDB testsuite to async engine

https://issues.redhat.com/browse/DBZ-8369

@vjuranek Applied, thanks


Palindrome linked list

Related Issue

#343

Proposed Changes

Code to check weather the given list is palindrome or not
Readme file for the same

Additional Info

All information is in the readme

Checklist

[x] ✅ My code follows the code style of this project.
[ ] 📝 My change requires a change to the README.
[ ] 🎀 I have updated the README accordingly.
[x] 👀 I have read the CONTRIBUTING document.
[x] ✨ I have added tests to cover my changes.
[x] 🚩 All new and existing tests passed.
[x] 🌟 ed the repo

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Output Screenshots
| Screenshot #1

| Screenshot #2  |

Why TOO MANY COMMITS 🥲

Anyone will fear to review it
Don't make it difficult to mentors

I have assigned some mentors they will review it shortly

Why TOO MANY COMMITS 🥲

Sorry🥲

I have assigned some mentors they will review it shortly

Sir there is not any mentors assigned @Lakhankumawat

This looks good to me.

You need to follow particular guidelines for your README , please follow
these guidelines click here
also you can see how your README should look like see here
for more please go through these here

There are conflicts in your PR

Update README as requested , create a new PR and i'll merge it then


Easy transfer wizard is not available in Windows 10

Easy transfer wizard is not available in Windows 10. This should be noted.

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

ID: a8513655-c946-4a74-34ec-5c639b4021cc
Version Independent ID: cd27cf77-45ab-95a0-f1e5-8549661f0740
Content: Windows Upgrade and Migration Considerations (Windows 10)
Content Source: windows/deployment/upgrade/windows-upgrade-and-migration-considerations.md
Product: w10
GitHub Login: @greg-lindsay
Microsoft Alias: greglin

@officedocsbot assign @mypil

@nclinch - Thank you for submitting feedback.
From our understanding, the issue has been resolved but it may take a few days for the merged content to appear in the article. If you feel it hasn't been resolved, please re-open this issue.
Thank you for your contribution to make the docs better! Much appreciated!

@officedocsbot close


Link from the Table of Contents

This document is great. Reading from top down, I would love to be able to skip to the sections listed in the table of contents if they were links. :)

Agree whole heartedly -- which is why we're creating a new version, with all sorts of improvements. We'll make sure this is near the top of the list! Thanks!


Duo support for multiple keys

The DUO plugin needs to better support multiple keys depending on the domain.
For example, users with @somedomain.com should be authenticated separately from users that may be members of @someotherdomain.com.
Right now, there is 1 set of credentials that are passed in. This should be easy to fix by making the credentials a dict for the domain. Then, it should check the domain a user is a member of to pick the correct credentials.

Implemented in #80


Replacement rule for following logical expressions:  = space (or = '') to IS INITIAL and or <> space  (or <> '') to IS NOT INITIAL .

Hi team,
would it be possible to impletent a replacement rule that replaces logical expressions like below (... there cases in which you evaluate non boolean variables)
Example:
= space to IS INITIAL
<> space to IS NOT INITIAL ...
Thank you,
Best regards Petr

Hi Petr,
I'm afraid this won't be possible, because ABAP cleaner does not do additional backend calls – which would be needed to determine the technical domain of the respective variable (e.g. if the domain is NUMC, then space isn't the initial value).
Kind regards,
Jörg-Michael


Log aggregation creates duplicate "empty" log entries for products using log4j1

Affected version
0.39.0
Current and expected behavior
When gathering and forwarding logs from some products (current working theory is that the affected ones are log4j1) - ZooKeeper will be used as an example for this ticket.
The log file zookeeper writes looks like this:
<log4j:event logger="org.apache.zookeeper.server.NettyServerCnxn"
             timestamp="1680766222102" level="INFO" thread="nioEventLoopGroup-4-5">
  <log4j:message>Processing srvr command from /<IP_ADDRESS>:55234</log4j:message>

</log4j:event>

<log4j:event logger="org.apache.zookeeper.server.NettyServerCnxn"
             timestamp="1680766223094" level="INFO" thread="nioEventLoopGroup-4-6">
  <log4j:message>Processing srvr command from /<IP_ADDRESS>:55250</log4j:message>

</log4j:event>

The two events shown here can be found in OpenSearch, that works nicely. However for every entry there is also a duplicate entry with a timestamp of 1970.0.0-0:0:0 being written.
This is due to the emptly line between two records being parsed as an empty record with all null fields and a timestamp of unix epoch 0 -> 1970.
Possible solution
Log4j uses \r\n as separator between records, not inside of the records, so this could be used to correctly identiy record boundaries and ignore these duplicates.
Additional context
No response
Environment
No response
Would you like to work on fixing this bug?
no

This issue is still open, the linked PR is merged. I assume this can be closed?

Its not rolled out in all operators yet, but yeah i think we can close.


docs: enable sourcemaps in examples

This enables source maps in all example builds, as discussed in https://github.com/thi-ng/umbrella/discussions/483.
I think the patch was applied correctly, but I wasn't able to test all examples. From what I can tell there are two different configs:
// taken from examples/mandelbrot, but is also in examples/shader-ast-workers and others
export default {
	build: { target: "esnext" },
	worker: { format: "es" },
};

and the simpler one without a worker config:
// used almost everywhere
export default {
	build: { target: "esnext" },
};

I have bult the pointfree-geom and mandelbrot examples and tested them via yarn build && yarn preview and both work fine!

🎉 Thank you so much, @heyarne! I think those 2 examples you listed are the only ones with workers, but I will also update this config in the scripts/make-example script so that all future examples also inherit that setting...


Use pydantic for schemas

Determined that while easy to implement, it might lead to too much friction for developers unfamiliar with Pydantic at relatively little gain.


getting a no file or directory issue when running 'cucumber.js' command

fs.js:887
return binding.lstat(pathModule._makeLong(path));
^
Error: ENOENT: no such file or directory, lstat '/Users/sheeralal/projects/protractor-cucumber/features'
at Error (native)
at Object.fs.lstatSync (fs.js:887:18)
at Object.realpathSync (fs.js:1518:21)
at Object.expandPathWithExtensions (/Users/sheeralal/projects/protractor-cucumber/node_modules/cucumber/lib/cucumber/cli/path_expander.js:14:23)
at /Users/sheeralal/projects/protractor-cucumber/node_modules/cucumber/lib/cucumber/cli/path_expander.js:8:27
at Array.map (native)
at Object.expandPathsWithExtensions (/Users/sheeralal/projects/protractor-cucumber/node_modules/cucumber/lib/cucumber/cli/path_expander.js:7:31)
at Object.expandPaths (/Users/sheeralal/projects/protractor-cucumber/node_modules/cucumber/lib/cucumber/cli/feature_path_expander.js:9:38)
at Function.Configuration (/Users/sheeralal/projects/protractor-cucumber/node_modules/cucumber/lib/cucumber/cli/configuration.js:21:63)
at getConfiguration (/Users/sheeralal/projects/protractor-cucumber/node_modules/cucumber/lib/cucumber/cli.js:48:38)

Have you switched to the "example" folder?
cd Example

Cucumber by default looks for "feature" folder in your project directory. either you can copy paste the feature present in the example folder to project directory or you can follow above mentioned method.


librealsense: 0.9.2-0 in 'kinetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository librealsense to 0.9.2-0:

upstream repository: https://github.com/IntelRealSense/librealsense.git
release repository: https://github.com/intel-ros/librealsense-release.git
distro file: kinetic/distribution.yaml
bloom version: 0.5.21
previous version for package: 0.9.2-0

Correcting the release repo.


fix two bad merges :-(

May still fail. Pending https://github.com/conda-forge/r-pillar-feedstock/pull/9#issuecomment-492268938
Ping @dpryan79 and @cbrueffer.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Needs https://github.com/conda-forge/r-pillar-feedstock/pull/10


feat: check system requirements

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#163
#162  👈
#161
#160
#159
#158
#157
#156
#155
#154
#153
#152
#151
#150
#149
#148
#147
#146
#145
#144
#143
#142
#141
#140
#139
#138
#137
#136
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @NathanFlurry and the rest of your teammates on  Graphite


nimble/porting: Fix OS_MEMPOOL_SIZE() macro

The OS_MEMPOOL_SIZE() macro returns an invalid size when guards are used (an additional 4 bytes must be reserved for each block, which is not done at the moment). Correct this in line with the macro defined in mynewt core.

Reference: https://github.com/apache/mynewt-core/blob/cc006e6025682c4e0563496fc1014b7d9d07b78c/kernel/os/include/os/os_mempool.h#L179


Better error message for unresolved symbol

Fixes #10748
Pull Request Description
In the similar case to
from Standard.Base import all

type My_Type
    Value x
    static_method = 23

main =
    IO.println static_method

catches the unresolved symbol error during the compilation, rather than inside TruffleToIr. The old behavior recognizes this error inside TruffleToIr and fails with a cryptic error message. This PR recognizes this error inside GlobalNames compiler pass and throws a readable compiler error.
Important Notes

Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:

[x] The documentation has been updated, if necessary.
[x] Screenshots/screencasts have been attached, if there are any visual changes. For interactive or animated visual changes, a screencast is preferred.
[x] All code follows the
Scala,
Java,
TypeScript,
and
Rust
style guides. In case you are using a language not listed above, follow the Rust style guide.
[x] Unit tests have been written where possible.

The fix in this PR revealed another bug in our tests at https://github.com/enso-org/enso/actions/runs/10771141242/job/29866042272?pr=11008#step:7:1706 .  For example in https://github.com/enso-org/enso/blob/8260a9587febd6adf336b41485fb484274d66f4d/test/AWS_Tests/src/Redshift_Spec.enso#L54, there is setup used, which is not defined anywhere in the scope. But when the test is run, it is present in some of the parent frames. This means, that the setup is resolved dynamically at runtime, but is not present statically in the scope.


Givens network

An implementation of the optimal Givens rotation network (Optica Vol. 3, Issue 12, pp. 1460-1465 (2016)).

I am cleaning this up now so tests pass


Editor converts whitespace to a new line

Describe the bug
The editor breaks a line of string into several lines if it is not wrapped with an HTML tag.
To Reproduce
Steps to reproduce the behavior:

Set value of Textarea to Hi Alex

Demo
Expected behavior
The output must be
Hi Alex
not
Hi
Alex

Screenshots

Additional context
The editor should wrap the string with a tag to prevent the breaking string to several lines.

The 2.42.0 version has been updated.
If this issue has not been resolved, please reopen this issue.
Thank you.


Add the ability to stop a stream or specify a time to stream for.

It would be really useful to be able to say, "I just want to stream for X seconds". Perhaps as a parameter to run()?
What is the current best practice for streaming from some random url for a fixed amount of time? Is this supported at all today?
Thanks!

What's wrong with .trim()?

Does trim stop a steam?

It depends on how you use it. https://ffmpeg.org/ffmpeg-filters.html#trim
Anyway this doesn't look like ffmpeg-python's duty, this is an ffmpeg issue. ffmpeg-python does not have access to information about a running stream.
The only thing it can do to stop a stream after X seconds is killing the process and you can do it in many ways, such as starting a timer in a separate thread, blocking the main thread for X seconds or scheduling a callback after X seconds in any asynchronous framework you're using (like twisted or py3's coroutine stuff).

@kkroening I cannot get the "to" option to work — is it one of the supported options by the Python library?


Implement loader component

Add loader component
Add style support

I'm not sure we want to implement the loader as part of the Form component. This is fairly simple to do as part of the application so we probably should leave it there.


Add axiom to portions of matter describing its relation to state of matter

Description of the issue
The class portion of matter is currently defined as: A portion of matter is a part of a material entity that has a state_of_matter property. This implies a relation the the class state of matter.
Ideas of solution
Add axiom: 'has state of matter' some 'state of matter'
Workflow checklist

[ ] I discussed the issue with someone else than me before working on a solution
[ ] I already read the latest version of the workflow for this repository
[ ] The goal of this ontology is clear to me

I am aware that

[ ] every entry in the ontology should have a definition
[ ] classes should arise from concepts rather than from words

A minor thing, that should be fixed, too: The term tracker item of portion of matter is currently:

issue: https://github.com/OpenEnergyPlatform/ontology/issues/227
pull request: https://github.com/OpenEnergyPlatform/ontology/pull/279

This is simply wrong. This class was already discussed in issue #46 and implemented in PR #58.

I just spotted a further thing: The current definition does not mention its direct parent class which is object aggregate. That should be fixed, too. Also the uncountable aspect of the portions of matter are not part of the definition. Therefore I propose to update the definition to:
A portion of matter is an object aggregate of an uncountable number of material entities that have a state of matter property.

I agree, that such an axiom makes sense.
About the definition: I remember vaguely that we didn't use the Aristotelian def here on purpose to make the portion of matter concept easier to understand. But I'm also ok to change it now for consistency reasons.

@OpenEnergyPlatform/oeo-general-expert-formal-ontology : Do you have any opinion on changing the definition of portion of matter?

Hmmm. We could try the slightly more readable A portion of matters is an aggregate of material entities that have a state of matter.  ?

Maybe it needs saying that it is an aggregate of material entities of the same type

Maybe it needs saying that it is an aggregate of material entities of the same type

I think "same type" is hard to define. "Same type of molecule" would exclude air, for instance.
I like Jannas proposal. Should we include the "uncountable" property of portion of matter to the def (is that true btw)?

Should we include the "uncountable" property of portion of matter to the def (is that true btw)?

That was at least the start of the discussion in #45 and the reason why we introduced portion of matter in the first place.

Maybe we don't need the uncountability in the definition but I think we should at least mention it in an editorial note or something like that. And we could also point in such a note to our explanation in the wiki: https://github.com/OpenEnergyPlatform/ontology/wiki/Explanation-on-mass-nouns

Sounds good.  ...shouldn't it be: "1 glass of water, 1 m3 of air"?

Yes, of course.


docs(cluster): improve clustering example in README

The documentation for Cluster support detailed setting up a Redis cluster, but not consuming one (which requires using the experimental cluster executor).
This PR adds documentation on how to consume a Redis Cluster to the README

Thanks @uki00a . Just pushed up your suggestions. Let me know if you see anything else. Thanks again.


About realization

Hi,
I'd like to know if the realization similar to Matlab. I find the result seems different from matlab.
Thanks a lot.

Not entirely sure. I did not compare this library's results with MATLAB.
Can you give an isolated example in MATLAB & Python that produces different results?

I subtract the result of matlab and python, I feel the difference of the boundary is large. I'm not sure if it related to the realization.

Oh okay, I see what you are saying now. Attaining pixel-perfect polar transformations between MATLAB & Python will be difficult because the underlying methods used may be a bit different. Here are some reasons why:

The interpolation may be different, polarTransform defaults to bicubic. Not sure why MATLAB uses by default.
Increased accuracy due to Python using 64-bit floating point. Once again, not sure how many bits is used for floating point calculation. This is probably a small different.
Resolution of the polar image (polarImageSize). A difference in MATLAB/Python for resolution will cause a difference in the images.

Do the two images produced between MATLAB & polarTransform look similar? If so, that may be sufficient for your purposes. I did my best to validate the library to ensure that the polar transform was done correctly.
If you want to investigate further, please write a test case (MATLAB & polarTransform code) with example images that clearly shows the difference in images.
The steps for tracking this down would be to have a test case in Python & MATLAB that produces different results. Then pick one of the large pixel differences and do the math by hand to see which implementation is doing it correctly.

I got it. Thanks for ur detailed answer.


Using environment "production-ssl-disabled".
No migrations were executed, database schema was already up to date.
Done in 2.36s.
yarn run v1.22.18
$ node ./build/server/index.js
{"label":"lifecycle","level":"info","message":"Note: Restricting process count to 1 due to use of collaborative service"}
{"label":"lifecycle","level":"info","message":"\nIs your team enjoying Outline? Consider supporting future development by sponsoring the project:\n\nhttps://github.com/sponsors/outline\n"}
ERROR: The server does not support SSL connections
error Command failed with exit code 1.
{"level":"warn","message":"Command failed: yarn sequelize db:migrate:status\n\u001b[31mERROR:\u001b[39m The server does not support SSL connections\nerror Command failed with exit code 1.\n"}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
yarn run v1.22.18
$ sequelize db:migrate --env production-ssl-disabled
Sequelize CLI [Node: 16.14.2, CLI: 6.4.1, ORM: 6.20.1]
Loaded configuration file "server/config/database.json".
Using environment "production-ssl-disabled".
No migrations were executed, database schema was already up to date.
Done in 1.12s.
yarn run v1.22.18
$ node ./build/server/index.js
{"label":"lifecycle","level":"info","message":"Note: Restricting process count to 1 due to use of collaborative service"}
{"label":"lifecycle","level":"info","message":"\nIs your team enjoying Outline? Consider supporting future development by sponsoring the project:\n\nhttps://github.com/sponsors/outline\n"}
ERROR: The server does not support SSL connections
error Command failed with exit code 1.
{"level":"warn","message":"Command failed: yarn sequelize db:migrate:status\n\u001b[31mERROR:\u001b[39m The server does not support SSL connections\nerror Command failed with exit code 1.\n"}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
yarn run v1.22.18
$ sequelize db:migrate --env production-ssl-disabled
Sequelize CLI [Node: 16.14.2, CLI: 6.4.1, ORM: 6.20.1]
Loaded configuration file "server/config/database.json".
Using environment "production-ssl-disabled".
No migrations were executed, database schema was already up to date.
Done in 1.14s.
yarn run v1.22.18
$ node ./build/server/index.js
{"label":"lifecycle","level":"info","message":"Note: Restricting process count to 1 due to use of collaborative service"}
{"label":"lifecycle","level":"info","message":"\nIs your team enjoying Outline? Consider supporting future development by sponsoring the project:\n\nhttps://github.com/sponsors/outline\n"}
ERROR: The server does not support SSL connections
error Command failed with exit code 1.
{"level":"warn","message":"Command failed: yarn sequelize db:migrate:status\n\u001b[31mERROR:\u001b[39m The server does not support SSL connections\nerror Command failed with exit code 1.\n"}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.


RapiDoc doesn't treat complex data as 'application/json' in 'multipart/form-data' request

Here is a quote from the OpenAPI docs:

If the property is complex, or an array of complex values, the default Content-Type is application/json.

That's not what I'm seeing in this example request:
"/test": {
  "post": {
    "summary": "Tests multipart",
    "operationId": "upload",
    "requestBody": {
      "content": {
        "multipart/form-data": {
          "schema": {
            "type": "string",
            "properties": {
              "shouldBeJson": {
                "type": "object",
                "properties": {}
              }
            }
          }
        }
      },
      "required": true
    },
    "responses": {
      "200": {
        "description": "Success"
      }
    }
  }
}

Adding encoding doesn't work:
"encoding": {
  "metadata": {
    "contentType": "application/json"
  }
}

These requests were made with the help of a minimal actix server that I built to test this:
rapidoc.tar.gz
This gzip file also contains a Swagger-Ui version of the api docs. It has the same problem, but the "encoding trick" works (not completely)
Am I missing something? I'm having a lot of problems with this little thing.

thanks for reporting and pointing to the spec.  I have added this to our task queue .
However at the moment we are in the middle of working for the next version which is bundling RapiDoc in pure ES Module format. This is adding up a lot of manual testing as our tests are not yet automated.
Expect some delay in newly reported issues


Avoid checking every node when setting upgrade target

Same as #11706, with one additional commit.

Test failure (SearchClusterTest.requireThatZeroDocsAreFine:177) is unrelated. Unstable test?


(maint) Fix failing test caused by databinding being in effect

The evaluator spec tests started failing when Hiera 3.0.1 was brought
in. This was unexpected as the tests does not rely on data binding being
in effect. Instead it is running with string variables to ensure that no
unknown variables are used in the tests. At the same time, tests had not
made the now required variables $environment and $trusted available.
The fix is to run these tests without databinding.

CLA signed by all contributors.


Trouble implementing SSAO

Not sure if this is the right place to ask but I'm a little desperate because I've been trying to implement SSAO as described here : http://www.learnopengl.com/#!Advanced-Lighting/SSAO
The problem I get is that my AO map is completely black :

I also tried other implementations, but I get a full black or fully grey AO map. I don't know if the problem is from my implementation or from something else.
Here's my frag shader :
$input v_texcoord0

#include "../common/common.sh"

SAMPLER2D(s_geometryMap, 0);
SAMPLER2D(s_geometryNormalMap, 1);
SAMPLER2D(s_noise, 2);

#define MAX_KERNEL_SIZE 16
vec3 kernel[MAX_KERNEL_SIZE] =
{
     vec3( 0.5381, 0.1856, 0.4319), vec3( 0.1379, 0.2486, 0.4430),
     vec3( 0.3371, 0.5679, 0.0057), vec3(-0.6999,-0.0451, 0.0019),
     vec3( 0.0689,-0.1598, 0.8547), vec3( 0.0560, 0.0069, 0.1843),
     vec3(-0.0146, 0.1402, 0.0762), vec3( 0.0100,-0.1924, 0.0344),
     vec3(-0.3577,-0.5301, 0.4358), vec3(-0.3169, 0.1063, 0.0158),
     vec3( 0.0103,-0.5869, 0.0046), vec3(-0.0897,-0.4940, 0.3287),
     vec3( 0.7119,-0.0154, 0.0918), vec3(-0.0533, 0.0596, 0.5411),
     vec3( 0.0352,-0.0631, 0.5460), vec3(-0.4776, 0.2847, 0.0271),
};

int kernelSize = MAX_KERNEL_SIZE;
float radius = 1.0;

vec2 noiseScale = vec2(1280.0/64.0, 720.0/64.0);

void main()
{
   vec3 fragPos = texture2D(s_geometryMap, v_texcoord0).xyz;
   vec3 normal = texture2D(s_geometryNormalMap, v_texcoord0).rgb;
   vec3 randomVec = texture2D(s_noise, v_texcoord0 * noiseScale).xyz;

   vec3 tangent = normalize(randomVec - normal * dot(randomVec, normal));
   vec3 bitangent = cross(normal, tangent);
   mat3 TBN = mat3(tangent, bitangent, normal);

   float occlusion = 0.0;
   for(int i = 0; i < kernelSize; ++i)
   {
       vec3 sample = mul(TBN, kernel[i]);
       sample = fragPos + sample * radius;

       vec4 offset = vec4(sample, 1.0);
       offset = mul(u_proj, offset);
       offset.xyz /= offset.w;
       offset.xyz = offset.xyz * 0.5 + 0.5;

       float sampleDepth = -texture2D(s_geometryMap, offset.xy).a;

       float rangeCheck = smoothstep(0.0, 1.0, radius / abs(fragPos.z - sampleDepth));
       occlusion += (sampleDepth >= sample.z ? 1.0 : 0.0) * rangeCheck;
   }
   occlusion = 1.0 - (occlusion / kernelSize);

   gl_FragColor = vec4(occlusion, occlusion, occlusion, 1);
}

This is how I render it :
//Render Position + depth to texture
meshSubmit(hollowcube, &states[3], 1, mtx2);

//Render Normal to texture
bgfx::setUniform(u_invTransModelView, mtxMVIT);
meshSubmit(hollowcube, &states[4], 1, mtx2);
//Render AO with Both textures + a noise texture
meshSubmit(hollowcube, &states[5], 1, mtx2);

All textures seem to render well (except for the AO).
I can give more code if needed.
I just want this to finally work. Thanks in advance for any help.

Try debugging this with RenderDoc: https://bkaradzic.github.io/bgfx/overview.html#renderdoc

Thanks for the reply, I'll try

I opened my .exe with RenderDoc, then, when clicking on F1, "[F11 - RenderDoc Capture]" appears, but F11 only goes to fullscreen mode and pressing F12 or 'Print Screen' (as stated in the doc) does nothing, even the 'auto-start' capture function does nothing. Maybe I missed something

I did some debugging, and NaN values are getting computed as the output register (o0) of the frag shader, that's why the color is black... I don't really know why, though :/

Just noticed: #define Sampler sampler2DShadow why are you doing this? Just use SAMPLER2DSHADOW.

You're right, didn't notice I left this.

I've been trying another implementation for SSAO and I noticed that it might be the vertex shader coordinates output to the frag shader that could be wrong, because I've got this result now (my model is 'bunny.bin') :

The other implementation's pixel shader is this one :
$input v_texcoord0

#include "../common/common.sh"

SAMPLER2D(s_geometryMap, 0);
SAMPLER2D(s_geometryNormalMap, 1);
SAMPLER2D(s_noise, 2);

float random_size = 64.0f;
float g_sample_rad = 0.5f;
float g_intensity = 3.0f;
float g_scale = 1.0f;
float g_bias = 0.5f;

vec2 g_screen_size = vec2(1280.0f, 720.0f);

vec3 getPosition(vec2 uv)
{
	return texture2D(s_geometryMap,uv).xyz;
}

vec3 getNormal(vec2 uv)
{
	return normalize(texture2D(s_geometryNormalMap, uv).xyz * 2.0f - 1.0f);
}

vec2 getRandom(vec2 uv)
{
	return normalize(texture2D(s_noise, g_screen_size * uv / random_size).xy * 2.0f - 1.0f);
}

float doAmbientOcclusion(vec2 tcoord, vec2 uv, vec3 p, vec3 cnorm)
{
	vec3 diff = getPosition(tcoord + uv) - p;
	vec3 v = normalize(diff);
	float d = length(diff)*g_scale;
	return max(0.0,dot(cnorm,v)-g_bias)*(1.0/(1.0+d))*g_intensity;
}

void main()
{

vec2 vec[4] = {float2(1,0),float2(-1,0),
			float2(0,1),float2(0,-1)};

vec3 p = getPosition(v_texcoord0);
vec3 n = getNormal(v_texcoord0);
vec2 rand = getRandom(v_texcoord0);

float ao = 0.0f;
float rad = g_sample_rad/p.z;

int iterations = 4;
for (int j = 0; j < iterations; ++j)
{
  vec2 coord1 = reflect(vec[j],rand)*rad;
  vec2 coord2 = vec2(coord1.x*0.707 - coord1.y*0.707,
			  coord1.x*0.707 + coord1.y*0.707);

  ao += doAmbientOcclusion(v_texcoord0,coord1*0.25, p, n);
  ao += doAmbientOcclusion(v_texcoord0,coord2*0.5, p, n);
  ao += doAmbientOcclusion(v_texcoord0,coord1*0.75, p, n);
  ao += doAmbientOcclusion(v_texcoord0,coord2, p, n);
}
ao/=(float)iterations*4.0;

 gl_FragColor = vec4(1-ao, 1-ao, 1-ao, 1);
}

The vertex shaders are the same for the above implementation, too.
My vertex shader for SSAO :
$input a_position, a_texcoord0
$output v_texcoord0

#include "../common/common.sh"

void main()
{
	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
	//gl_Position = vec4(a_position, 1.0);
	v_texcoord0 = (vec2( gl_Position.x, gl_Position.y ) + vec2( 1.0 , 1.0) ) * 0.5;
}

For the normal map :
$input a_position, a_normal
$output v_normal

#include "../common/common.sh"

uniform mat4 u_invTransModelView;

void main()
{
	v_normal = mul(u_modelView, a_normal.xyz);
	gl_Position = mul(u_modelViewProj, vec4(a_position, 1));
}

and for the position map :
$input v_pos

#include "../common/common.sh"

#define NEAR 100
#define FAR 0.1

float LinearizeDepth(float depth)
{
    float z = depth * 2.0 - 1.0; // Back to NDC
    return (2.0 * NEAR * FAR) / (FAR + NEAR - z * (FAR - NEAR));
}

void main()
{
	gl_FragColor = vec4(v_pos, LinearizeDepth(gl_FragCoord.z));
}

My suggestion is to simplify shaders until it starts displaying what you expect, and then work your way back to more complex shaders.

I followed your suggestion, and started from the beginning with my implementation. I also had a working OpenGL implementation in parallel of trying to get this working, but I've still got this issue, I really can't figure out where the error comes from, that's very weird :/

My guess is LinearizeDepth, see this: https://github.com/bkaradzic/bgfx/blob/master/examples/21-deferred/fs_deferred_light.sc#L57
NDC is different in HLSL vs GLSL.

I tried what you said, and I also tried outputting the depth value for the current fragment from the ssao fragment shader, and noticed that it gets projected in a weird way :
Here is what the depth map looks like normally when drawn on-screen from its shader:

And, here it is when I output it from the SSAO shader :

Here is the shader for storing the depth on a texture :
//Vertex Shader
$input a_position
#include "../common/common.sh"

void main()
{
	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
}

//Fragment Shader

void main()
{
	gl_FragColor = gl_FragCoord.z/gl_FragCoord.w;
}

And, here is the way I output the depth from my SSAO for testing :
//Vertex Shader
$input a_position, a_texcoord0
$output v_texcoord0

#include "../common/common.sh"

void main()
{
	gl_Position = mul(u_modelViewProj, vec4(a_position, 1.0) );
	v_texcoord0 = a_texcoord0;
}

//Fragment Shader
$input v_texcoord0

#include "../common/common.sh"

SAMPLER2D(s_depth, 0);

float readDepth( in vec2 coord )
{
#if BGFX_SHADER_LANGUAGE_HLSL
	float z = texture2D( s_depth, coord );
#else
	float z = texture2D( s_depth, coord ) * 2.0 - 1.0;
#endif // BGFX_SHADER_LANGUAGE_HLSL

	return z;
}

void main()
{
    float depth = readDepth( v_texcoord0 );
    ...
    gl_FragColor = vec4(vec3_splat(depth), 1);
}

Also, if I use the following function, the depth gets completely black :
vec2 camerarange = {0.5, 100};
vec2 screensize = {1280, 720};

float readDepth( in vec2 coord )
{
#if BGFX_SHADER_LANGUAGE_HLSL
	float z = texture2D( s_depth, coord );
#else
	float z = texture2D( s_depth, coord ) * 2.0 - 1.0;
#endif // BGFX_SHADER_LANGUAGE_HLSL

	return (2.0 * camerarange.x) / (camerarange.y + camerarange.x - z * (camerarange.y - camerarange.x));
}

Maybe I'm missing some projection or something.

Figured it out?


Revert "Lesters/cell cast java"

Reverts vespa-engine/vespa#16975
11:46:29   [ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.009 s <<< FAILURE! - in com.yahoo.searchdefinition.derived.SlingstoneTestCase
11:46:29   [ERROR] testSlingstoneRanking(com.yahoo.searchdefinition.derived.SlingstoneTestCase)  Time elapsed: 0.009 s  <<< ERROR!
11:46:29   java.lang.IllegalArgumentException: Could not parse function 'INFERRED'``` caused by this?

@bratseth @lesters


Unable to locate element: {"method":"css selector","selector":"img[src='captchaImage']"}

2023-01-03 05:39:16.675186: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-01-03 05:39:20.779249: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
Traceback (most recent call last):
  File "/Volumes/Projects/VAERS-Downloader/./bin/vaers-downloader", line 7, in <module>
    download.main(sys.argv[1:])
  File "/Volumes/Projects/VAERS-Downloader/.venv/lib/python3.10/site-packages/vaers_downloader/download.py", line 46, in main
    downloadVAERSdata(
  File "/Volumes/Projects/VAERS-Downloader/.venv/lib/python3.10/site-packages/vaers_downloader/download.py", line 15, in downloadVAERSdata
    updateVAERSFiles(
  File "/Volumes/Projects/VAERS-Downloader/.venv/lib/python3.10/site-packages/vaers_downloader/VAERSFileDownloader.py", line 64, in updateVAERSFiles
    downloadVAERSFileAndUnzip(f'{year}VAERSData.zip', workingDirectory)
  File "/Volumes/Projects/VAERS-Downloader/.venv/lib/python3.10/site-packages/vaers_downloader/VAERSFileDownloader.py", line 56, in downloadVAERSFileAndUnzip
    downloadedFile = downloadVAERSFile(file, workingDirectory + "/VAERS/tmp")
  File "/Volumes/Projects/VAERS-Downloader/.venv/lib/python3.10/site-packages/vaers_downloader/VAERSFileDownloader.py", line 48, in downloadVAERSFile
    downloadedFile = downloadFile(
  File "/Volumes/Projects/VAERS-Downloader/.venv/lib/python3.10/site-packages/vaers_downloader/VAERSFileDownloader.py", line 31, in downloadFile
    _downloadFile()
  File "/Volumes/Projects/VAERS-Downloader/.venv/lib/python3.10/site-packages/vaers_downloader/VAERSFileDownloader.py", line 28, in _downloadFile
    solveCaptchaAndStartFileDownload(driver, 'captchaImage.jpeg')
  File "/Volumes/Projects/VAERS-Downloader/.venv/lib/python3.10/site-packages/vaers_downloader/VAERSFileDownloader.py", line 19, in solveCaptchaAndStartFileDownload
    saveCaptchaImageAs(driver, captchaImageFile)
  File "/Volumes/Projects/VAERS-Downloader/.venv/lib/python3.10/site-packages/vaers_downloader/WebDriver.py", line 21, in saveCaptchaImageAs
    captchaImage = driver.find_element(By.CSS_SELECTOR, "img[src='captchaImage']")
  File "/Volumes/Projects/VAERS-Downloader/.venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 861, in find_element
    return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
  File "/Volumes/Projects/VAERS-Downloader/.venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 444, in execute
    self.error_handler.check_response(response)
  File "/Volumes/Projects/VAERS-Downloader/.venv/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 249, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"img[src='captchaImage']"}
  (Session info: headless chrome=108.0.5359.124)
Stacktrace:
0   chromedriver                        0x000000010ffcef38 chromedriver + 4910904
1   chromedriver                        0x000000010ff4ea03 chromedriver + 4385283
2   chromedriver                        0x000000010fb93747 chromedriver + 472903
3   chromedriver                        0x000000010fbd834c chromedriver + 754508
4   chromedriver                        0x000000010fbd85a1 chromedriver + 755105
5   chromedriver                        0x000000010fc1be94 chromedriver + 1031828
6   chromedriver                        0x000000010fbfe13d chromedriver + 909629
7   chromedriver                        0x000000010fc1928e chromedriver + 1020558
8   chromedriver                        0x000000010fbfdee3 chromedriver + 909027
9   chromedriver                        0x000000010fbc830c chromedriver + 688908
10  chromedriver                        0x000000010fbc988e chromedriver + 694414
11  chromedriver                        0x000000010ff9c1de chromedriver + 4702686
12  chromedriver                        0x000000010ffa0b19 chromedriver + 4721433
13  chromedriver                        0x000000010ffa828e chromedriver + 4752014
14  chromedriver                        0x000000010ffa191a chromedriver + 4725018
15  chromedriver                        0x000000010ff75b02 chromedriver + 4545282
16  chromedriver                        0x000000010ffc0888 chromedriver + 4851848
17  chromedriver                        0x000000010ffc0a05 chromedriver + 4852229
18  chromedriver                        0x000000010ffd6e5f chromedriver + 4943455
19  libsystem_pthread.dylib             0x00007fff2032b950 _pthread_start + 224
20  libsystem_pthread.dylib             0x00007fff2032747b thread_start + 15

Hi Alex,
the captchaImage is still present on https://vaers.hhs.gov/eSubDownload/index.jsp?fn=2022VAERSData.zip and the download also worked for me. Can you try it again?
Cheers, Frank


apheleia--write-file-silently ignores visit in write-region

This is a bit of a weird issue, I admit, but after a long debugging session of my Radian config I finally tracked it down to apheleia.
I am using undo-fu-session which has a before-save-hook to save the undo data. In this hook, there's code like this:
(with-auto-compression-mode
        (with-temp-buffer
           ...
          (write-region nil nil undo-file nil 0)
          t))

where the function write-region is called on a temporary buffer. Note that 0 is passed to visit of write-region. The buffer content should be written to a file but the temporary buffer should not visit the file. I was surprised to see that the buffer was in fact visiting the file in undo-file causing annoying dialogue boxes of "buffer changed.. save anyways?" everytime auto-save runs and if I select Yes to save, the undo file is overwritten!
I found out that the reason is apheleia--write-file-silently where the function write-region is bound to a lambda function that ignores the visit argument and instead always passes t in its place causing the file to be always visited (even if the buffer is temporary).
I can see that in the commit 8112041d7e5f445 visit is always set to t instead of 0 to fix an issue with undo-tree, but I am wondering why the visit argument is ignored at all? It seems to me that ignoring an argument of a such a basic function is a radical measure.

Yeah, I think that's a bug. Thanks for the good analysis. That code is left over from a previous, buggy version of apheleia--write-file-silently. I've made an adjustment that should fix these issues once and for all.

Let me know if this fixes your problem.

Yep, this fixes the issue. I had this fixed implemented locally, but wasn't sure if it would affect apheleia in some other use-case.


Deprecate no-unused-new

Making an issue for my comment https://github.com/palantir/tslint/issues/1839#issuecomment-266313995 .
I don't think no-unused-new deserves to be its own rule since we have no-unused-expression.
This would also allow us to clean up the implementation of no-unused-expression, since no-unused-new currently inherits from it.

Should be fixed by #2269


remove the 'cv' namespace from 'CirclesGridFinderParameters'

The parameters.gridType is referring to the custom CirclesGridFinderParameters.

Thumbs up - see also https://github.com/uzh-rpg/rpg_dvs_ros/issues/89


Add v3 launched endpoint, with new PATCH request support

Is there any authentication requirements for PATCH requests?
I was also thinking, should we create a generic r/SpaceX authentication mechanism? Now that I'm using auth for Enceladus, you may be using it for this, and Declan is using some for Flight Club, it seems worth the effort to reduce duplication. Just have an OAuth-style endpoint that could return an ID only, which would then match up in everyone's database to their local ID.

Planning on adding it before this is merged. Central auth would be beneficial 👍

Going to put the patch additions in a separate branch, so the v3 launches can be merged. Going to worry about getting all the other v3 endpoints and tests cranked out first for the time being.
This should give us more time to figure out what to do about auth going forward. Also, the patch support could always be added later after v3 is released, so no rush whatsoever.


Django ORM Support

Does pgsync have support for Django ORM?

pgsync's operation is not tied to any framework as such. is there any particular feature you need from Django?

An issue that we had with Django is the lack of support for certain field types. For example, Django supports the interval Postgres datatype through DurationField. Elasticsearch, however, has no such type. The same goes for TimeField, TimeField etc.
In our case, we set the mapping to an integer field in the pgsync schema and used a pgsync plugin to convert the interval field to an integer.

I think it's a good idea to delegate this to the plugin as that is what it is intended for.

Thanks for the quick response. It worked now, initially thought it is based on a framework.  Closing this issue.
I am not using DurationField for now.
Thanks again for this very smart and nice plugin


Advice on connection settings..

Hi all,
I have made a crawler that I intend to let keep track of about 10 specific pages on 1 website during the whole day. I would like to let it make one request every minute per page. What would be good settings (maxConnections/etc) so my IP address wont get blocked by this specific website?
Greets

It depends on the firewall of the website. I think you've got your answer in https://github.com/nodejs/help/issues/769


⚠ ClamAV has degraded performance

In 85c7b2d, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 614 ms

Resolved: ClamAV performance has improved in b2797d4.


Some filetypes do not appear on the taskbar jumplist and cannot be pinned

Issue Type: Bug
Since the app icon is pinned to the taskbar, when you open an item it shows up on the list and you can quickly access them or if you use them constantly, you can pin them.
However, some of the most regularly accessed files that I need to continually modify do not appear on the list and cannot be pinned. These files have the .cmd and .bat extensions, may also be occurring with other extensions too but these are the two in my experience.
Why don't all file types that are opened show up on the list and be pinnable? If they are code (or not) and can be edited (or are) in VSC, then why not be able to pin them or even see them on the list?
VS Code version: Code 1.22.2 (3aeede733d9a3098f7b4bdc1f66b63b0f48c1ef9, 2018-04-12T16:38:45.278Z)
OS version: Windows_NT x64 10.0.16299

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-4200U CPU @ 1.60GHz (4 x 2295)

Memory (System)
3.92GB (1.09GB free)

Process Argv
C:\Program Files\Microsoft VS Code\Code.exe

Screen Reader
no

VM
0%

Extensions (5)

Extension
Author (truncated)
Version

rtf
ale
0.3.0

cform
aws
0.0.10

unique-lines
bib
1.0.0

reg
ion
0.0.2

mssql
ms-
1.3.1

Please note, this is not a duplicate of pinning stuff INSIDE VSC but rather the OS facing capability, specifically this menu:

On a related topic, I am on version 1.23.1 and the only option I see in the JumpList on Windows is "New Window" under the Tasks sub-heading.