aioredis instrumentation: AttributeError: 'str' object has no attribute 'decode'

Describe the bug
In some cases aioredis passes str commands to its aioredis.Redis.execute() method rather than bytes commands, like e.g. when executing aioredis.Redis.ping(), which is unacceptable by elastic-apm.
Current workaround
Disable aioredis instrumenting (set environment variable SKIP_INSTRUMENT_AIOREDIS="true") prior elasticapm.instrument() is called.
To Reproduce
import asyncio

import aioredis
import elasticapm

REDIS_URL = "redis://localhost:6379"

async def main():
    elasticapm.instrument()

    client = await aioredis.create_redis_pool(REDIS_URL)
    elastic_apm_client = elasticapm.Client()

    elastic_apm_client.begin_transaction("redis-ping")
    try:
        assert await client.ping() == b"PONG"
    finally:
        client.close()
        await client.wait_closed()
        elastic_apm_client.end_transaction("redis-ping")

if __name__ == "__main__":
    asyncio.run(main())

Expected result
No exception is raised.
Actual result
Traceback (most recent call last):
  File "<...>/test.py", line 24, in <module>
    asyncio.run(main())
  File "/usr/local/lib/python3.8/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/local/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "<...>/test.py", line 17, in main
    assert await client.ping() == b"PONG"
  File "<...>/venv/lib/python3.8/site-packages/aioredis/commands/__init__.py", line 114, in ping
    return self.execute('PING', *args, encoding=encoding)
  File "<...>/venv/lib/python3.8/site-packages/aioredis/commands/__init__.py", line 51, in execute
    return self._pool_or_conn.execute(command, *args, **kwargs)
  File "<...>/venv/lib/python3.8/site-packages/elasticapm/instrumentation/packages/base.py", line 210, in call_if_sampling
    return self.call(module, method, wrapped, instance, args, kwargs)
  File "<...>/venv/lib/python3.8/site-packages/elasticapm/instrumentation/packages/asyncio/aioredis.py", line 46, in call
    wrapped_name = args[0].decode()
AttributeError: 'str' object has no attribute 'decode'

Environment

OS: Ubuntu 18.04.5 LTS
Python version: 3.8.9
Framework and version: aioredis==1.3.1
APM Server version: --
Agent version: elasticapm==6.3.3

@Tayum great catch, and thanks for the perfect bug report! I opened #1308 with a fix.


guide: Write a metrics guide for non-DVCLive scenarios

In the newer GS:Experiments trail, we are removing detailed metrics introduction due to DVCLive/Keras integration. Instead, we can have a guide that describes the manual metrics functionality.

@iesahin please make it a check box in https://github.com/iterative/dvc.org/issues/2572 instead 🙂 (those bullets should all be check boxes I think?) Thanks!


Evaluate and reduce INFO logging where practical from Automate

There seems to be excessive INFO message written to the EVM logs contributing
to logging related bugs.
An evaluation and reduction of INFO logging where practical needs to be done.

@miq-bot add_label automate

@jvlcek do you have a couple examples of log messages that seem to clutter the logs?

I do have example logs that I can share privately. What I did notice is that within 1 second a lot of duplicate messages are being reported. For example:
file % grep 03T17:14:42 evm.log | wc
104    2753   34585
file % grep 03T17:14:41 evm.log | wc
64    1992   22098
It appears to be related to C&U on vmware.

@jvlcek is this issue still relevant. If so, please remove the "stale" label. Otherwise, please close.


Verify test class

Current coverage is 76.52%

Merging #109 into master will not affect coverage as of ec0f530

@@            master    #109   diff @@
======================================
  Files           71      71
  Stmts         2275    2275
  Branches       271     271
  Methods
======================================
  Hit           1741    1741
  Partial         97      97
  Missed         437     437

Review entire Coverage Diff as of ec0f530

Powered by Codecov. Updated on successful CI builds.

Please revert to having testdata package.

Please have Verify' in the org.spine.test` package.

@alexander-yevsyukov, PTAL.

LGTM


bug(MapMarker): Strange behavior when (mapDragend) is present and unable to pan map to new position

Ionic application (latest) with angular (latest ~12) + @angular/google-maps (latest ~12).
I'd like to make the marker dragable, catch the new position (LatLng) and pan the map center to the new position.
I'm doing something wrong?
Reproduction
Steps to reproduce:

use <google-map> tag and <map-marker> one without (mapDragend) event with markerOptions: {dragable: true} and initial position set:

<google-map [height]="height" [width]="width" [zoom]="zoom">
    <map-marker #marker="mapMarker" [options]="markerOptions"></map-marker>
</google-map>

With this html I can correctly move the marker inside the map, and the last position of the marker is preserved when the event ends (even if the map does not pan her center to the new position because, of course, none still told her to do this and I'd like to make this to happen thanks to the mapDragend event).

when using the (mapDragend) event inside the <map-marker> tag, the marker can be still dragable but when I move it and release the mouse, the marker moves back to original position, even if the method onDragEvent() does actually nothing (only console.logging the event.latLng property that, however, is still correct):

<google-map [height]="height" [width]="width" [zoom]="zoom">
    <map-marker #marker="mapMarker" [options]="markerOptions" (mapDragend)="onDragEnd($event)"></map-marker>
</google-map>

Expected Behavior
I expect to see the marker dragable and it's position as the last after dragging
Actual Behavior
The marker is correctly dragable but when the (mapDragend) is declared, it's last position is correctly recorded (console.log shows new correct position) but the marker comes back to it's initial position after the event is fired.
Environment

Angular: 12.0.3
Ionic: 5.5.2
CDK/Material (only @angular/google-maps): 12.0.3
Browser(s): Google Chrome (updated)
Operating System (e.g. Windows, macOS, Ubuntu): Linux Debian (updated)

Forgot to write some unsuccessful test:
onDragEnd(event: google.maps.MapMouseEvent) {
    event.domEvent.preventDefault();
    event.domEvent.stopPropagation();
    event.domEvent.stopImmediatePropagation();

   [...]

   return false;
}

But nothing useful happened.

I just tried it out and it worked as expected for me. Here's what I have:
<google-map height="400px" width="750px" [zoom]="zoom" [center]="center">
  <map-marker [position]="center" [options]="markerOptions" (mapDragend)="onDragEnd($event)"></map-marker>
</google-map>

Could the problem be that you aren't passing a position to the marker?

Solved: I refactored all the code, including parent and child components, better event handling and everything seems to work correctly.
Thanks @crisbeto, but I think the problem was exactly the opposite: even if the map events were correctly fired, something was locking map center and marker position.
Now, with a cleaner event handler, the flow seems to be right, thanks.


Each user should have a support email defined

As in:

<EMAIL_ADDRESS><EMAIL_ADDRESS>

duplicated -> https://github.com/CartoDB/cartodb/issues/1027


DO NOT MERGE! Changes made for Code Club World spike

I thought I'd open this just as a reminder - I'm not sure we want to merge these changes unchanged (they're WIP commits for starters) and I'm not sure we want to merge them into the main develop branch.

It looks as if the warning fixed in the last commit was addressed in https://github.com/LLK/scratch-gui/pull/6762.

I've done the following:

Updated the develop branch from upstream to bring in the fix in https://github.com/LLK/scratch-gui/pull/6762
Created a new branch code-club-world
Manually applied the changes from the other two commits in e3bef63f21a424be8630e12286ebc3d85bdd689e & ae2fac9eee5e489dcf76cb5dd799cbd4ee5426fa.
Deployed the new code-club-world branch to GH Pages.

Closing.


No nier Automata section

Hey! First of all thanks for doing this, I and I'm sure many other thank you for your work.
My problem is I don't have that NieR:Automata options section at all like in the screen of the official release (https://steamuserimages-a.akamaihd.net/ugc/781785179826324400/D7067B6027933DC7952389F5EB664A204243E408/)
Mine looks like this: http://i.imgur.com/rwxt2FS.png
Did I do something wrong?
6.0.1 installed

isn't because the hotkey change?
before we need press CTRL + ALT + BACKSCAPE to open this menu
but now, we need press CTRL + SHIFT + BACKSCAPE to open this menu
or if you have a joystick, press SELECT + START...
if is really a bug, you have any other program that overlay the nier?

Try launch with this dll:
FAR 0.6.1 - Nier Only.zip

I fixed it, kinda.
The problem was I was playing Nier through an ahk script compiled as exe to load and close my scripts automatically
Far doesn't see I'm playing NieR - reverting my changes and starting the scripts manually works.


Handle the weird success exit code in nircmd

So I don't have to deal with it here: https://github.com/sindresorhus/empty-trash/blob/28062fc17f4a3f331174162a1d1a2543691c3a12/index.js#L16-L20

Should be good right?

Yes.


Adds option for anonymizing the users IP

To be GDPR compatible we need an option to anonymize the users IP. This adds an option to do so.

@AAlfare Thanks for the PR!

Released with version 1.4


how to enable bouncing for ion-content with ionic v2.2.3 ?

I know there are a few issues related to this, but I didn't get any reply and I saw some one replied with a question months ago, he didn't get answered as well, so I put this in a new thread hope some one can see the title. Sorry about the duplication
Basically I cannot see bouncing is working in the ion-content of my project, is there any document regardign this? I didn't find anything about bouncing from ionicframework.com/docs
Can any one help?

Hello! Thank you for opening an issue with us! As this seems like more of a support question I will urge that you ask this question on our forum or on our slack channel.
Also, providing a sample application via GitHub that duplicates the issue you are having would be very helpful when you do so.
Thanks for using Ionic!


Job configuration is not compatible with dark mode

The job config form has a light background even with dark mode enable. May have something to do with #11
Example:

Not really related to #11, different selectors are applied fixing #11 didn't fix this

Fixed except for the pipeline widget which is a plugin issue

Reported pipeline issue in https://github.com/jenkinsci/dark-theme/issues/41
I refactored the 2 widgets to use the same variables mostly, so ended up being related


Skip counting for every other z plane?

I only want to count the cells on every other plane. Is there a way to have the software only count every other z plane as opposed to every single one?

the software segments, it doesn't count. are you doing 3D segmentation or 2D segmentation? You could delete half of your images


Dead API links in Readme

The links to the API documentations hit a 404

Thanks for reporting, I just updated the links!


crypto Package no longer supported

Hello,
when trying to update some modules i get:
Do you want to install 'webpack-cli' (yes/no): yes
Installing 'webpack-cli' (running 'yarn add -D webpack-cli')...
yarn add v1.7.0
[1/4] Resolving packages...
warning bip39crypto ><EMAIL_ADDRESS>This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.
warning<EMAIL_ADDRESS>This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.

Fixed. You probably will need to:
rm -rf node_modules/crypto
git pull origin master


[Draft] Add new 1.14 Merchant, Raid and Villager related features. #2068 #2069

This adds some new events (#2068):
RingBellEvent (Needs to have a way to get a list of all villagers which will hear the bell ring).
VillagerEvent.ProfessionChange
VillagerEvent.ProfessionLevelUp
VillagerEvent.Panic
TradeMerchantEvent
RaidEvent.Start
RaidEvent.StartWave
RaidEvent.End
TODO List:
When Zidane and gabizou finish nuking Keys, a Key needs to be added to get a Villager's Profession Level. (Maybe a BoundedKey since the Vanilla Profession levels are 0-5)
Add a way to reference all the Raids within a world, most likely inside of ServerWorld. (#2069)
Possibly more events if needed.

Well, uh, this is awkward, I merged the wrong PR....


Modal Title

[x] Feature Request
This is my second feature request.
We need an option to add a modal title / header to the popup in order to make it clear to the user what is it for and also to match it with other modals in the product.
Attaching a screenshot.
Current Behavior

Expected Behavior

Yep, I planned to add a title option. It probably will be ready in a few days :)
Thanks!

Hello! This finally has been quicker than I expected and it's implemented now in the version 1.1.0.
Important: The previous CSS class .BasicModalsTitle has been renamed to .BasicModalsContent. If you added some custom CSS rules using that class, please, update your CSS to use .BasicModalsContent instead of .BasicModalsTitle.
.BasicModalsTitle still exists but it is a "new" class which has been added for titles, replacing the old one which is now .BasicModalsContent.

BTW: The README has been updated explaining how to use the new features :)

Awesome job guys, thank you so much!


Refit 6.0.24 Vulnerable

Visual Studio is now reporting Refit 6.0.24 has a known critical severity vulnerability :(

Thank you - Great news.

@administersoftware v4.1.0 has been released. Let us know if this works for you. Thanks! 🎉

Thank you, all builds, runs and no vulnerable package warning :)


Incompatible with Mongoid 5

In Indexes/Indexable, alias_method is used before create_indexes is defined, so there goes the first error.
After I move alias_method to the bottom, undefined method error is gone, but index_specification method on each model is lost for some reason, so indexes can't be created.
create_indexes without mongoid_fulltext works.

I am assuming you use the latest 0.7.0.
It would be great if you could help write a spec for this issue, I am happy to help fix.

I installed the gem (0.7.0), run rails server and got this error:
/Users/michal/.rbenv/versions/2.2.1/gemsets/faq/gems/mongoid_fulltext-0.7.0/lib/mongoid/indexable.rb:5:in `alias_method': undefined method `create_indexes' for module `Mongoid::Indexable::ClassMethods' (NameError)

having the same issue, dig through stuff and found that bothe mongoid_fulltext and mongoid have the same file in the same directory structure lib/mongoid/indexable.rb.
when mongoid gem require 'mongoid/indexable', the one in mongoid_fulltext is loaded first, causing the error.

Is there something about the order of includes? What comes first in your gemfile?

mongoid first

Can someone try https://github.com/dblock/mongoid_fulltext/tree/fix-undefined-method please?
gem 'mongoid_fulltext', github: 'dblock/mongoid_fulltext', branch: 'fix-undefined-method'

cc: @Magi-KS

works :+1:

Fixed in https://github.com/artsy/mongoid_fulltext/pull/24.

I've release 0.7.1 with this fix. Thanks for bringing this up.

@dblock Thanks!


BUG:special:amos: Fix missing return branch for amos_kscl

Reference issue

related pr: https://github.com/scipy/scipy/pull/19587#discussion_r1460726081

What does this implement/fix?

Fixed missing return branch of amos_kscl function in C translation of amos code.

C translation:
https://github.com/scipy/scipy/blob/44b39e1e740795aa8cd4d69e88d6c0acb116eeac/scipy/special/_amos.c#L4007-L4011
ref: amos fortran code:  https://github.com/scipy/scipy/blob/e5f21298b62fb03732f000645d2caaa67aad8800/scipy/special/amos/zkscl.f#L52-L56
Additional information

[ ] Add some test
Since this function is not exported, it is difficult to construct a test case to cover this bug.

Some shorter call paths from exported functions to amos_kscl.
amos_airy
	-> amos_bknu -> amos_kscl

amos_besh, amos_besk
	-> amos_acon
	-> amos_bknu -> amos_kscl

It's a bit difficult to test this bug in python, but you can test it in C.
Add the following C code to _amos.c, compile it, and run it.
Then check the printout of the program.

C test code add to _amos.c
run with gcc -g -o amos _amos.c -lm && ./amos
#include <stdio.h>
#define ARRAY_SIZE(x) ((sizeof x) / (sizeof *x))
int main () {
    int n = 5;
    double complex y[5] = { 0.0 };
    int y_size = ARRAY_SIZE(y);
    for (int i=0; i < y_size; i++) {
        y[i] = (i+1) + i*I;
    }
    double complex zr = 1e-9 + 0.0*I;
    double fnu = 2.0;
    double complex rz = 0.5 + 0.5*I;
    double ascle = 1e-30;
    double tol = 1e-15;
    double elim = 20.;

    printf("---- Input: y[%d] =\n", y_size);
    for (int i=0; i < n; i++) {
        printf( "  y[%d] = %g + %g*I\n",
            i, creal(y[i]), cimag(y[i]));
    }
    printf("zr = %g + %g*I;", creal(zr), cimag(zr));
    printf("  fnu=%g;  n=%d\n", fnu, n);
    printf("rz = %g + %g*I;", creal(rz), cimag(rz));
    printf("  ascle=%g;  tol=%g;  elim=%g\n",
        ascle, tol, elim);

    int nz = amos_kscl(zr,fnu,n,y,rz,&ascle,tol,elim);
    puts("---- Output");
    printf("nz=%d;  y[%d]=\n", nz, y_size);
    for (int i=0; i < y_size; i++) {
        printf( "  y[%d] = %g + %g*I\n",
            i, creal(y[i]), cimag(y[i]));
    }

    return 0;
}
#undef ARRAY_SIZE

C test code outout
master output (Without pr)

nz = 1

$ gcc -O0 -g -o amos _amos.c -lm && ./amos
---- Input: y[5] =
  y[0] = 1 + 0*I
  y[1] = 2 + 1*I
  y[2] = 3 + 2*I
  y[3] = 4 + 3*I
  y[4] = 5 + 4*I
zr = 1e-09 + 0*I;  fnu=2;  n=5
rz = 0.5 + 0.5*I;  ascle=1e-30;  tol=1e-15;  elim=20
---- Output
nz=1;  y[5]=
  y[0] = 0 + 0*I
  y[1] = 2e+15 + 1e+15*I
  y[2] = 2.5e+15 + 4.5e+15*I
  y[3] = 4 + 3*I
  y[4] = 5 + 4*I

with pr

nz = 0, and y[] outout also changed.

$ gcc -O0 -g -o amos _amos.c -lm && ./amos
---- Input: y[5] =
  y[0] = 1 + 0*I
  y[1] = 2 + 1*I
  y[2] = 3 + 2*I
  y[3] = 4 + 3*I
  y[4] = 5 + 4*I
zr = 1e-09 + 0*I;  fnu=2;  n=5
rz = 0.5 + 0.5*I;  ascle=1e-30;  tol=1e-15;  elim=20
---- Output
nz=0;  y[5]=
  y[0] = 1e+15 + 0*I
  y[1] = 2e+15 + 1e+15*I
  y[2] = 3 + 2*I
  y[3] = 4 + 3*I
  y[4] = 5 + 4*I

There appears to be another problem in the amos_kscl function:
C translation
https://github.com/scipy/scipy/blob/44b39e1e740795aa8cd4d69e88d6c0acb116eeac/scipy/special/_amos.c#L4052-L4059
Fortran code
https://github.com/scipy/scipy/blob/e5f21298b62fb03732f000645d2caaa67aad8800/scipy/special/amos/zkscl.f#L109-L121
Regardless of whether the if condition IF(IC.EQ.N) is true or not, we will always jump to 45.
Maybe we don't need else branch here.
 if (ic == n) {
     nz = n-1;
-} else {
-    nz = kk - 2;
 }

Yes it seems like the else branch is not needed. The main issue, probably it seems, is that, I associated the if condition with the jump. So it seems redundant there.

Ah how nice that you added the call graph. @lucascolley if the failing backend test is not relevant let's get this one in when CI is green please.

thanks for the ping, that is probably due to the update of array_api_compat that Ralf just merged - will have a look

thanks for your first contribution to SciPy @inkydragon !


feat(predicates): add nonEmpty predicates. Fix #72

Added nonEmptyObject and nonEmptyArray predicates, similar to
nonEmptyString.

Hah, I was just about to reply asking you to update the readme but you beat me to it. 😄
Thanks! Looks great, I'll merge and release a bit later on.

Forgot the readme for a brief moment there, but should be good now. Let me know if I've forgotten anything else! 😃

This has been released as version 7.1.0, thanks again for the PR! 🎉


Obsolete dialog #130

Description
Adds an Obsolete option to the catalogue item drop down menu, giving a stepper dialog that can be used to make an item obsolete, or modify an already obsolete item. e.g.

Testing instructions
Add a set up instructions describing how the reviewer should test the code

[ ] Review code
[ ] Check Actions build
[ ] Review changes to test coverage
[ ] {more steps here}

Agile board tracking
Closes #130

LGTM

I think I would prefer the list of catalogue items from the catalogue category I am in to be shown in the 3rd step (Obsolete Replacement) rather than the root of catalogue categories. I would expect the replacement catalogue item to likely be in the same catalogue category but if not then I can use the breadcrumbs. Just saves some navigating through if there are lots of subcategories. This is just a comment but looks good to me otherwise.


[2.6] Deployment init container, init logs are not visible

Rancher Server Setup

Rancher version: 2.6.0
Installation option (Docker install/Helm Chart):

RKE1, Kubernetes 1.21

Describe the bug
If you created a deployment with an init container, the logs are not accessible in UI.
To Reproduce

Create a deployment with init container (let the init container fail, for usecase...)

Result
Expected Result

Deployment fails on init
init logs are somehow available in the logs of the deployment, otherwise you will not know how to fix that error

Screenshots

Reproduced in 2.6.0

Verified Fixed in  v2.6-7bc7959ea9f2961927d3db85113fa0c37eef1e72-head
Steps to repro:

Add cluster
Use kubectl to deploy a pod with some sample yaml (I used one with inits i knew would fail such as leveraging a service that wasn't ready)
In the UI, go to Workloads > Pods and find the one that was added
Click the ellipsis menu and View Logs
Click the lower-left drop-down to pop up the menu to select the container for loogs.

In the prior version, you couldn't open the menu (See above)
In the fixed version on HEAD, you can select the containers and view what logs are available. Some of mine do log actively, some done, but all are present and selectable.  (See below)


How points (partial) are calculated for two different computer with same launcher ID (same nft) joining the same pool server?

Both farmer are using same private key and same nft but located in two separate computer.
I have a several question here:

Regarding to GET /farmer, Is it launcher_id, authentication_token and signature will be identically equal for both farmer?
Is it the partial was submitted separately to the server by two different farmer and the server add up one by one of them? For example Farmer one with 100 plots submitted 10 partial and farmer two with 1000 plots submitted 100 partial and the server will add up partials from farmer one and farmer two and store in one record with Id Launcher as primary key?

Thanks in advance!

your understanding is correct, it will be 110 partials. In fact the pool server doesn't really care how many computers participate (btw what is a computer anyway? with virtualization, dockers, serverless computing and whatnot it's not easy to say). Even if you tried to tell how many computers a given launcher_id has, if they are hidden behind a NAT and they communicate from the same IP address, it's virtually impossible to tell. Maybe it's the same computer, maybe it's not. Maybe farmer one moved all of its plots to farmer two and now there's just one. Doesn't really matter :)

your understanding is correct, it will be 110 partials. In fact the pool server doesn't really care how many computers participate (btw what is a computer anyway? with virtualization, dockers, serverless computing and whatnot it's not easy to say). Even if you tried to tell how many computers a given launcher_id has, if they are hidden behind a NAT and they communicate from the same IP address, it's virtually impossible to tell. Maybe it's the same computer, maybe it's not. Maybe farmer one moved all of its plots to farmer two and now there's just one. Doesn't really matter :)

Thanks!


net: Allocate packet and data in same buffer #473

Increased memory locality etc.

This is the implementation for #473

Need to update bufferstore first, then update the bufferstore test for the bufstore test to pass


Ibex version 1.0

Hi @morsh -- the auto-build now seems to work reliably. Feel free to merge this and/or to make a new pull request into master.


Localization languages for IR

#assign @sharad-sharma-msft

@rwallerms
Can you review the proposed changes?
Important: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

@sharad-sharma-msft to review

#sign-off

#sign-off

#sign-off


Spin loading, but not running test

I can get the spin server running and attempting to run tests, but it seems to just hang for me:
Terminal 1
jspradlin:~/code/opower_workspace/jonesy [git: spin] $ spin serve -Itest
Preloaded Rails env in 8.29096007347107s...
Loading ["test/unit/relationship_test.rb"]
Terminal 2
jspradlin:~/code/opower_workspace/jonesy [git: spin] $ spin push test/unit/relationship_test.rb
Spinning up test/unit/relationship_test.rb
Platform:  Snow Leopard
test-unit (2.4.2)
ruby 1.9.2p290
rails (3.0.9)

So are you using the 'test-unit' gem specifically? Rather than just the one that comes with the std lib.

I tried it on one of my apps with test-unit (2.4.2) and was unable to reproduce the issue. Can you provide a simple app that displays your problem?

I created a brand new rails application and was able to run the tests using spin without any problems.  I think it's safe to assume there is something wrong with the way my current project is set up.  This ticket can be closed.  I'll report back if I figure out what my environment specific issues are.  Thank you for all of your help.


CSUB-762: removed ability to specify ethereum private key as plain text over co…

This is https://github.com/gluwa/creditcoin/pull/1331 rebased on top of latest dev and conflicts resolved. All original commits have been squashed together.

Codecov Report

Merging #1349 (4e4592e) into dev (2a0f1a8) will decrease coverage by 4.82%.
The diff coverage is 35.13%.

@@            Coverage Diff             @@
##              dev    #1349      +/-   ##
==========================================
- Coverage   74.92%   70.11%   -4.82%
==========================================
  Files          76      107      +31
  Lines       11549    12537     +988
  Branches        0      126     +126
==========================================
+ Hits         8653     8790     +137
- Misses       2896     3747     +851

Files
Coverage Δ

scripts/cc-cli/src/commands/registerAddress.ts
39.06% <35.13%> (ø)

... and 30 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Localized text breaks command

The git push command is broken in the French translation

@alexr00 can you add a lock comment for this?
"{Locked='](command:git.publish)'}"


Add individual Pool Members stats

In addition to aggregate pool stats

Moving to be part of the stats t-shirt size refactoring.

Implemented in v0.3


[Feature Request]: Exporting .so files in packages

Currently when using an Idris package that calls a FFI function on a C .so file, that .so needs to be in the current directory of or on the LD_LIBRARY_PATH/PATH of the user.
It would be great if dependencies on such files could be exported along with with the Idris package.

As a test case, the distributions package has an Idris function Statistics.Distribution.GSL.init_rng that calls a custom C function init_gsl_rng() from distributions.so.
One can test whether other projects can successfully use init_rng by:

Adding the following to ~/.pack/user/pack.toml

[custom.all.distributions]
type   = "github"
url    = "https://github.com/idris-bayes/distributions"
commit = "latest:master"
ipkg   = "distributions.ipkg"

Adding distributions to the depends of an ipkg file.

Executing the following code snippet:

import Statistics.Distribution.GSL
import Statistics.Distribution.Binomial

testSeed : IO ()
testSeed = print $ let seed = GSL.init_rng
                   in  (binomial_gsl 17 0.5 seed)

This should have been fixed. If not, feel free to reopen the issue.


x/build/cmd/buildlet: Reverse Dial Fails in Local devMode

What version of Go are you using (go version)?

$ go version
go1.19

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env

linux/amd64
What did you do?
Followed instructions at https://github.com/golang/build/tree/master/cmd/coordinator

ran go run . -mode=dev -listen-http=localhost:8119
followed by go run golang.org/x/build/cmd/buildlet -halt=false -reverse-type=host-linux-amd64-localdev

What did you expect to see?
Messages confirming reverse mode connection between coordinator and buildlet such as:
Registering reverse mode with coordinator...
Connected to coordinator; reverse dialing active

What did you see instead?
Error dialing coordinator: failed to handshake with coordinator: tls: first record does not look like a TLS handshake

CC @golang/release

Thanks for reporting. We can choose to improve coordinator's local dev mode if that's a good path to implementing and testing some change, and I think @prattmic helped make this work better most recently, but in general local development mode of coordinator is best effort and doesn't make any guarantees.

https://go.dev/cl/354309 and https://go.dev/cl/354310 are what I was using to get local reverse buildlets working.


actions: xlm private key now in file download keys

Checklist

[x] I have read the CONTRIBUTING guide
[x] branch rebased on develop
[x] styleguide check npm run validate
[x] good naming
[x] keep simple
[x] video or screenshot attached
[x] testing instruction attached
[x] check your PR once again

Description
https://github.com/swaponline/swap.react/issues/1145
Video or screenshot

What and how to test
Скачать ключи увидеть там XML

в travis ошибок нет


config.xml broke while making changes

While creating a new firewall rule my config.xml was destroyed. It was cut at the end of the <hasync> section, so the file is missing only the closing tags:
-  </hasync>
-</opnsense>

@fichtner made an assumption and suggestion on IRC:
19:09 <@fitch> maybe there was a webserver reload because of hasync changes, dunno
19:10 <@fitch> we could tighten the write by writing the temporary file and moving it into place afterwards
19:10 <fraenki> this is maybe a good idea, but add a syntax check before moving the file :)
19:10 <@fitch> more or less atomic(tm)
19:11 <@fitch> I suspect the writer gets killed so it'll never be moved

Strange, never seen this before.
We might use another copy of the file to sync to and copy as proposed, but then the second (new) file always needs to be there for locking reasons.
Maybe it's better to rollback to the previous file if the current one isn't valid, for the legacy code there is a mechanism in place (need to verify what happens if the ending tag is missing) https://github.com/opnsense/core/blob/master/src/etc/inc/config.lib.inc#L67-L80 , maybe this strategy needs some work.

@AdSchellevis fine with either approach, reassign if you want :)


Fix Null Check on TCP/UDP Listeners

The problem:
System.NullReferenceException: Object reference not set to an instance of an object.
at ARSoft.Tools.Net.Dns.DnsServer.StartTcpListenerTask() in ARSoft.Tools.Net\Dns\DnsServer.cs:line 372
at ARSoft.Tools.Net.Dns.DnsServer.d__26.MoveNext() in ARSoft.Tools.Net\Dns\DnsServer.cs:line 536
Solution:
The Upd listener had the null check on client, but the tcp listener did not.

This is a mirror repository. Please submit code to the original repository: http://arsofttoolsnet.codeplex.com/


Consider consistency for the exercises

Is there a style guide for TypeScript?
Are these styles encouraged or enforced?
Are there any conventions that we should adopt on this track for the sake of consistency?
Can we enforce these?
Is there a linter? Are there many? Should we use one?
Is there a common convention for filenames? If not, what should our convention be?

Note that this is about the exercises (the test suites and code examples), not people's solutions.

Is there a style guide for TypeScript?

https://github.com/Microsoft/TypeScript/wiki/Coding-guidelines

Are these styles encouraged or enforced?

But it is not enforced. I did adopt some of these. Just encouraged.

Are there any conventions that we should adopt on this track for the sake of consistency?

Yes.

Can we enforce these?

Only Warnings are emitted. The user is able to turn them off in the TSLint.json file.

Is there a linter? Are there many? Should we use one?

TSLint. I just know of this. ESLint only works for JS.

Is there a common convention for filenames? If not, what should our convention be?

The covention I adopted is the same as the JS track. Same as the folder same.


Update RabitTracker.java

comment out system.out.println

Could you please explain the rationale of commenting code?  We don't usually leave commented code in the repo.

you have written a system.out.println, which same to logger.debug, the
above line. please remove all the system.out.println, and use logger for
better logging.
On Sun, 31 May 2020 at 8:38 PM, Jiaming Yuan<EMAIL_ADDRESS>wrote:

Could you please explain the rationale of commenting code? We don't
usually leave commented code in the repo.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/dmlc/xgboost/pull/5739#issuecomment-636465860, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AEDKMZVEAONZOGV5BN6PW4DRUJFVLANCNFSM4NPELUTQ
.


Initial stab at multiple inheritance

This looks awesome. Long have I waited for such features :)

As discussed in private conversation, we want to strip out all of the renaming support here, because we have decided that renaming is tricky to get right. So this should hopefully end up being a pretty simple PR.

The following is a summary of the work done so far on multiple-inheritance. While a @rename macro solution was proposed to close out the branch, I'm requesting help getting the using-as feature of multiple-inheritance over the finish line.
In March, @olynch and I discussed stripping out the renaming in favor of a @rename macro. That is implemented
@rename ThMod0 begin using ThModule: M as Form0 end

but after a ~three-month break, I once again took another stab at using default renaming with some success in defining ThModule through using statements. After some tweaking from catching the repo up with main, the following is a working theory in GATlab and has examples in src/stdlib/models/twosorted.jl:
@theory ThModule begin
  using ThAb: default as M, ⋅ as ⊕
  using ThRing: default as Scalar, one as unit

  (r ⋅ a) :: M ⊣ [r::Scalar, a::M]                                    # R-actions
  (r ⋅ (a ⊕ b)) == ((r ⋅ a) ⊕ (r ⋅ b)) ⊣ [r::Scalar, a::M, b::M]      # R-action left-distributes
  ((r + s) ⋅ a) == ((r ⋅ a) ⊕ (s ⋅ a)) ⊣ [r::Scalar, s::Scalar, a::M] # addition of R-actions
  (r * s) ⋅ a == r ⋅ (s ⋅ a) ⊣ [r::Scalar, s::Scalar, a::M]           # composition of R-action
  unit ⋅ a == a ⊣ [unit::Scalar, a::M]                                # unit

  (a ⋅ r) :: M ⊣ [r::Scalar, a::M]                                    # R-actions
  ((a ⊕ b) ⋅ r) == ((a ⋅ r) ⊕ (b ⋅ r)) ⊣ [r::Scalar, a::M, b::M]      # R-action right-distributes
  (a ⋅ (r + s)) == ((a ⋅ r) ⊕ (a ⋅ s)) ⊣ [r::Scalar, s::Scalar, a::M] # addition of R-actions
  a ⋅ (r * s) == (a ⋅ r) ⋅ s ⊣ [r::Scalar, s::Scalar, a::M]           # composition of R-action
  a ⋅ unit == a ⊣ [unit::Scalar, a::M]                                # unit
end

I'm happy with the progress made to implement multiple-inheritance, but naturally over the course of learning the GATlab architecture, I likely made several suboptimal kludgey design choices, whereas I'd be more satisfied with an elegant solution. However because I'm somewhat invested in the design, and have been working rather too close to it, I want to take this opportunity to step back and allow others to comment on it. Here, I'll explain the procedure for implementing using-as statements in theories here.

Rather than using parse_gat_line! to handle using statements, I chose defining several functions used by theory_impl which intercept using statements in the theory body in order to expand their theories, and if applicable, collect renamings.

This works in the following order:
1.1) theory_impl calls expand_theory on the body.
1.2) expand_theory loops through the body matching using statements (vanilla or using-as, a.k.a renaming). For every match, the using-theory is expanding and passed to usetheory!
1.3) usetheory! accepts a "host" theory (the parent), a "guest" theory (the new one), and an optional dictionary of renames.
1.3.1) If there is a rename dictionary, we generate a new dictionary of instructions for the reident function through makeidentdict. There are two parts to this function:
<IP_ADDRESS>) Reident gives the "host" and "guest" theories a "nametag," a dictionary associating their names with their tags. As the dead code in nametag suggests, I previously used namelookup and taglookup, but these don't update until later in theory_impl, so the second using-as statement would still recognize the host as "EMPTY", as it would not yet have a namelookup.
(PROBLEM: I was unsure how to populate the LID, and used a placeholder LID(1)).
<IP_ADDRESS>) A new dictionary is created associating each old ident to a new one.
1.3.2) the reident uses the result of the makeidentdict on the guest so it does not introduce conflicting idents.

Borrowing Kris Brown's design, I used a reident function to recurse through the GAT replacing both names and tags at once. Because there are 30 methods of reident, I'm tempted to suggest reident should be a big ML-style lambda, so that (re)defining and diagnosing reidentification issues are defined in one place.

Because there an arbitrary number of new segments, I loop over each segment to produce the juliadeclarations, new names, etc. This is an issue when we

push!(modulelines, :($(GlobalRef(TheoryInterface, :GAT_MODULE_LOOKUP))[$(gettag(newsegment))] = $name))

as there is no newsegment.
ISSUES (non-exhaustive)

Because of my design, statements with the same name but different sorts are considered collisions and therefore omitted. As you can see in stdlib/dec.jl, defining Forms from three using-as ThModule lines

@theory _CoChains begin
  using ThModule: M as Form0
  using ThModule: M as Form1
  using ThModule: M as Form2
end

causes the module axioms over Form1 (and Form2) to be omitted, as the segment itself has the same tag. For the sake of demonstrating the problem further, I've defined three theories:
@rename ThMod0 begin using ThModule: M as Form0 end
@rename ThMod1 begin using ThModule: M as Form1 end
@rename ThMod2 begin using ThModule: M as Form2 end

We can see that the type declarations are different, but the segments defining \oplus have the same tag:
# The Form0 and Form1 segments
ThM0.Meta.theory.segments.scopes[1]
ThM1.Meta.theory.segments.scopes[1]
# The \oplus declaration with a constructor
ThM0.Meta.theory.segments.scopes[2]
ThM1.Meta.theory.segments.scopes[2]
#
ThM0.Meta.theory.segments.scopes[2].scope.tag
ThM1.Meta.theory.segments.scopes[2].scope.tag

My impression is that this problem could be fixed in the current design if reident could reidentify a segment if it contains bindings which contain a term that will be renamed, e.g.,
ThM1.Meta.theory.segments.scopes[2].scope.bindings

contains a Form1 and therefore should be reidented, as it is distinct from the same \oplus on Form0. Then I wonder if the concept of a "nametag" should be just be expanded to every segment of the theory, not just "names."

A test will failed in SymbolicModels because Category.Ob must be imported. I reckon this is also attributed to some kludgery I've done.

Note: Not every theory has been rewritten for using-as statements. I relented from doing this in favor of just fixing the underlying problem.

There are actually two uses for renaming: renaming operations and renaming types.
Of the two, I think that renaming operations is "more destructive". For instance, we would use renaming operations to make ThAdditiveGroup and ThMultiplicativeGroup, which would be separate theories.
However, for renaming types, we might want to take a slightly more gentle approach, inspired by trait systems in Rust/Haskell/Scala.
Specifically, we should have parameterized theories like
@theory ThGroup{T} begin
  using ThMonoid{T}
  inv(a::T)::T
  # axioms...
end

Then the DEC can be written as
@theory ThDEC{T} begin
  Scalar::TYPE
  Form0::TYPE
  Form1::TYPE
  Form2::TYPE
  using ThRing{Scalar}
  using ThAlgebra{Scalar, Form0}
  using ThModule{Form0, Form1}
  using ThModule{Form0, Form2}
end

The key thing is that these using statements don't do any renaming; they just declare overloadings of the relevant operators in ThRing/ThAlgebra/ThModule and they don't create any new Julia modules.
The one thing that we'd have to worry about is the methods that check for validity. I think that when we make a parameterized module, we simply don't create the methods for the types that are in the parameters. Then ThDEC has validity checkers for Scalar, Form0, Form1, Form2, but ThRing doesn't.


Fixing bug in inputs to bench3 in example scripts

I was having trouble getting examples/plot_gp_minimize_1d.py and examples/plot_gbrt_minimize_2d.py to run; it was throwing an IndexError when bench3 was called:
`python plot_gp_minimize_1d.py
==================================================================
Plot lower confidence bound as a function of number of iterations.
Traceback (most recent call last):
File "plot_gp_minimize_1d.py", line 16, in
func_values = [bench3(xi) for xi in x]
File "plot_gp_minimize_1d.py", line 16, in
func_values = [bench3(xi) for xi in x]
File "/Users/civisemployee/src/scikit-optimize/skopt/benchmarks.py", line 38, in bench3
return np.sin(5 * x[0]) * (1 - np.tanh(x[0] ** 2))
IndexError: invalid index to scalar variable.`
bench3 expects a list, but it was getting floats, so in the example scripts I changed the input type going into bench3 so it's a single-item list instead of a float.

Thanks! I am merging these changes.
Note that these scripts are currently being replaced with notebooks. They are still there in the repo because we have not ported everything yet.

We send 🍨 as a thank you!
Like @glouppe mentioned, we are moving our examples to notebooks, so if you like one of the examples and want to switch it over, go ahead.


Event Details page broken

TypeError: Requested keys of a value that is not an object in event details
Must find more info

This was because something hadn't loaded in yet when trying to be accessed or was accessing an empty list. This no longer happens as of new merge.


Test #8

Stack from ghstack (oldest at bottom):

#14
-> #13
#12
#11

Signed-off-by: Andrea Frittoli<EMAIL_ADDRESS>

ghstack bot failed: PR #13 is not approved yet!


code and tests for group class

added get, update, delete, and getDevices for groups, and tests.

Good to go 👍


[Global] Fields have incorrect width of borders

Environment: All
Reproducible: always
Build found: v1.0.387
Actual result
All fields have incorrect width of borders
Expected result

Verified


Slightly refactor sporks

Slightly refactor sporks:

rename SPORK_9_MASTERNODE_SUPERBLOCK_ENFORCEMENT to SPORK_9_SUPERBLOCKS_ENABLED
remove SPORK_11_RESET_BUDGET (not used anymore)
change multiple if-s to switch where possible, return early.

utACK https://github.com/dashpay/dash/pull/974/commits/66487160ec031ea9a416c543fbde354d40cd6d4a


Docs: fix wrong object name

Summary
Docs typo
Test plan

Thank you!

Anytime!

Codecov Report

Merging #3990 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #3990   +/-   ##
=======================================
  Coverage   60.26%   60.26%
=======================================
  Files         196      196
  Lines        6765     6765
  Branches        6        6
=======================================
  Hits         4077     4077
  Misses       2685     2685
  Partials        3        3

Continue to review full report at Codecov.

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


Interim result streaming doesn't work

Describe the bug
Interim result streaming doesn't work.
Steps to reproduce
def my_callback(job_id, response):
    print(f"response in my_callback: {response}")

options = {'backend_name': "ibm_ithaca"}
job = provider.runtime.run(
    program_id="test-program",
    options=options,
    inputs={},
    callback=my_callback,
)
result = job.result()

I wrote a simple test-program to make testing easier:
import time

def main(backend, user_messenger, **kwargs):
    for i in range(5):
        time.sleep(5)
        user_messenger.publish(f"iteration {i}")
    return "Hello, World!"

Expected behavior
Interim results are received and printed to the screen.
Suggested solutions
Additional Information

qiskit-ibm-runtime version: 0.11.1
Python version: 3.9
Operating system:

We will remove the interim results streaming code from this code base after ws-runtime issue # 381

We are deprecating interim results in #1774, closing this issue


Sort buttons highlight

I pulled and pushed back. Here's the completepackage

there is a merge conflict, kindly check and pull again

Any pointers to what the challenge is?


New proposed landing page for docs

Draft of a new Getting Started landing page. (at /en/getting-started-new.md so as not to interfere with the regular main page.)
Also includes a new "good enough to get started" Integrations page so that there is something to link to from this proposed new main page. (Not included in the sidebar at the moment, therefore also won't interfere with the main doc site.)
The CSS/JS that is working on my test Netlify site is not yet working here, but I've included the style and script that does work for me, for reference. My intention for what the page will look like is at: https://sarah-experiment-playground.netlify.app/en/getting-started/  (Only necessary to look at the content of the getting-started page.)
Making a PR so that a preview can be generated. I do expect feedback and changes on this.  :)

Honestly this looks pretty good to me! What's needed to get this merged in / anything that that I can do to help on the styling/coding side of things?

Fixed! Look like the issue was the shiki code formatter for markdown. We'll need to investigate to see why that's happening

Oooh, my tabs are back!!
@FredKSchott Last night after your suggestions, I did make edits at https://github.com/withastro/docs/blob/new-getting-started/src/pages/en/getting-started-new.md for a new getting-started page that did NOT include code instructions.
So now it's a matter of what you like better, and what you want right on the front page.  Good to have this fixed either way, even if you choose not to use it!


buffer, mx4: add WithIndex variations to handle indexed buffers

This PR adds WithIndex variations to the Buffer and MX4Metadata functions in order to handle indexed buffers. This is intended to help avoid possible race conditions with buffered transfers.

Thanks @julian59189 now merging.


timePickerTheme decoding

I am not sure if it's a problem but it took me a while to understand it. When in the Json you use "timePickerTheme" it does not work, if you use " "timePickerThemeData" it works.
Not working example:
{ ...   "timePickerTheme":  {     "backgroundColor": "#ffffff"   } ... }
Working example:
{ ...   "timePickerThemeData":  {     "backgroundColor": "#ffffff"   } ... }

Should be fixed in 3.1.2+1.

It works with ^3.1.2+1


Enabling RMT/semaphores in complex code can cause analogread to return values 2x too big

As first reported here https://github.com/MartyMacGyver/ESP32-Digital-RGB-LED-Drivers/issues/7
using the RMT neopixel driver causes analogread to return 4096 for 50%-100% and proper values from 0 to 50%.
Sadly if you are sampling data that needs to go in the 50 to 100% range (joystick), it's impossible to get usable data.
If i comment out just these 3 lines of code, then analogread works properly again:
//RMT.conf_ch[RMTCHANNEL].conf1.mem_rd_rst = 1;
//RMT.conf_ch[RMTCHANNEL].conf1.tx_start = 1;
//xSemaphoreTake(ws2812_sem, portMAX_DELAY);

Are you seeing this running with Arduino or on IDF?

arduino, in my IoTuz code.

Please open the issue here: https://github.com/espressif/arduino-esp32/issues/ as the ADC software implementations (along with various other subsystem parts) are different.
If you can reproduce the issue under IDF by itself then feel free to reopen here.

Ooops, sorry I was under the wrong project, moved accordingly, thanks for the note.
https://github.com/espressif/arduino-esp32/issues/290


use docker image which only supplies true & echo binaries.

closes #260
Reduces volume size from 125 MB to 125 bytes
Reduces time needed to build & run volume containers

👍
https://hub.docker.com/r/tianon/true/


Incorrect package="com.reactnativecommunity.geolocation" found in source AndroidManifest.xml:

If I understood correctly, with Android Gradle Plugin > 8.0.0, you just need to remove the namespace from the AndroidManifest.xml
Refs: https://github.com/react-native-community/discussions-and-proposals/issues/671
Environment
System:
OS: Linux 5.15 Ubuntu 20.04.6 LTS (Focal Fossa)
CPU: (12) x64 Intel(R) Core(TM) i7-10850H CPU @ 2.70GHz
Memory: 15.56 GB / 30.95 GB
Shell:
version: 5.0.17
path: /bin/bash
Binaries:
Node:
version: 20.12.2
path: ~/.nvm/versions/node/v20.12.2/bin/node
Yarn:
version: 1.22.19
path: ~/.yarn/bin/yarn
npm:
version: 10.5.0
path: ~/.nvm/versions/node/v20.12.2/bin/npm
Watchman:
version: 20210821.022905.0
path: /usr/local/bin/watchman
SDKs:
Android SDK: Not Found
IDEs:
Android Studio: AI-213.7172.25.2113.9123335
Languages:
Java:
version: 17.0.10
path: /usr/bin/javac
Ruby: Not Found
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.3.1
wanted: 18.3.1
react-native:
installed: 0.74.0
wanted: 0.74.0
npmGlobalPackages:
"react-native": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: true
newArchEnabled: false
Platforms
Android
Versions

Android:
react-native-geolocation-service: 5.3.1
react-native: 0.74.0
react: 18.3.1

Description
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':react-native-community_geolocation:processDebugManifest'.
A failure occurred while executing com.android.build.gradle.tasks.ProcessLibraryManifest$ProcessLibWorkAction
Incorrect package="com.reactnativecommunity.geolocation" found in source AndroidManifest.xml<EMAIL_ADDRESS>Setting the namespace via the package attribute in the source AndroidManifest.xml is no longer supported.
Recommendation: remove package="com.reactnativecommunity.geolocation" from the source AndroidManifest.xml<EMAIL_ADDRESS>

Mmh in fact there are no namespace in the manifest, I think it's because of what I have added in my build.gradle:
subprojects {
    afterEvaluate { project ->
        if (project.hasProperty('android')) {
            project.android {
                if (namespace == null) {
                    namespace project.group
                }
            }
        }
    }
}

In fact adding namespace to my own package fixed it.

What went wrong:
A problem occurred configuring project ':react-native-community_geolocation'.

Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl.
Namespace not specified. Specify a namespace in the module's build file. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about setting the namespace.

React Native Version: 0.72.14
Java: 17
Gradle: gradle-8.2-all
Kotlin: 1.9.20


Arrange itens side by side

Feature Request
Instead of arrange stand alone itens one above another, do it side by side (left-right).
Current behavior

Desired

Hi @maxkfranz,
Dagre clearly supports that so the question is I believe perfectly well-addressed in finding how to pass parameters to Dagre using your wrapper.
For instance, cytoscape.js-klay options object has a dedicated klay field to pass parameters to the underlying library. Would you be interested in implementing (or reviewing & merging) such a fetaure?


Sample/Demo code for WiFi SoftAP mode

Looking at the documentation for the WiFi library there is the SoftAP mode.
Could you provide sample/demo code that shows how to setup wifi credentials on a device using this mode?
ie. Have mobile or laptop connect to the device SoftAP, show a page, enter the SSID and Password and reboot with the new credentials.
Thank you!

Up to recently, our support for wifi provisioning is based upon BLE.  SoftAP mode is supported in our wifi abstraction, but the complete functionality to support WiFi provisioning using that abstraction has not been supported.  We have started to make progress here.  On ESP32 specifically, Espressif has recently contributed two PRs (1519 and 1571) that are now merged into master.  Using those two PRs (read the details on configuration), it should be possible to use the Espressif documented method of configuring the wifi module to SoftAP mode, serving an IP address (via DHCP) to a mobile client, serving a simple web page to that client, entering the WiFI credentials from that client, and doing the tap dance to restore the wifi module to client/ station mode and using the entered WiFi credentials.  That approach is in the ESP32 documentation.  We are working on documenting that approach and providing a code sample, but you should be enabled now.  We are working to make WiFi based provisioning uniform across our supported platforms but that is not available at this time.  Note:  Some wifi modules (Microchip) act differently than the ESP32 Wifi, and can support wifi provisioning now.  Please advise on your success.

Hi @dnoal ! thanks for your response. We are currently developing a FreeRTOS firmware on a ESP32 device.
Our customer wants a wifi provisioning system using a wifi SoftAP, because the wifi provisioning via BLE is using too much memory on the device because we also need to make some HTTP call (BLE+HTTP is consuming too much memory on the ESP32)
As i can see in your latest message you are working on it. Is this possible to have some early version of your work in order to make the wifi based provisioning? or some workaround that should do the trik?
If this is not possible, how can we manage to do the provisioning using BLE and also make an HTTP call to download certificates as it's explained in this aws doc? (https://aws.amazon.com/es/blogs/iot/ensure-secure-communication-with-aws-iot-core-using-the-certificate-vending-machine-reference-application/).
In the official documentation of FreeRTOS is explicity writen that: "Due to a limited amount of RAM, you must turn off BLE when you enable HTTP as an OTA data protocol. "
Thanks in advance for your time.

@pisukeman ,
Thanks for bringing this question to our attention. As you have correctly identified from Dan's comments we are working on getting the SoftAP support on ESP32. Please find an early version of this feature done by an espressif engineer and the instructions to try out the demo application.
Application to demonstrate SoftAP provisioning on ESP32 in Amazon FreeRTOS as shown in this branch
https://github.com/shubhamkulkarni97/amazon-freertos/tree/feature/add_softap_provisioning_support.
esp_prov_example.c is the application code for SoftAP provisioning.
Steps to verify the application:

Build and flash the application using LwIP stack.
Download ESP SoftAP Prov app for android smartphone from Play Store (https://play.google.com/store/apps/details?id=com.espressif.provsoftap&hl=en)
Connect to WiFi network created by ESP32 with SSID like PROV_XXXXXX with password abcd1234.
Enter Proof Of Possession, which is set to abcd1234.
Enter Credentials of a local WiFi network.

Some of these changes have already merged and we are currently in process of merging the remaining changes to master branch.
While we are exploring more on this provisioning option, we would like to point you about good amount memory foot print savings that you can achieve by turning off or tearing down BLE when not in use.
BLE can be turned off by 2 different ways depending on if a network manager is used or not.

If network manager is used, invoking AwsIotNetworkManager_DisableNetwork(AWS_IOT_NETWORK_TYPE_BLE) will turn off BLE.
If network manager is not used, PAL function IotBle_Off() can be invoked to turn BLE off.
Support for this is available in latest master.  By doing this step, ~17kB can be saved.

BLE can be completely teared down using a espressif function.
esp_bt_controller_mem_release( ESP_BT_MODE_BLE ) can be invoked to completely tear down BLE. This can save about 22kB additional memory. If BLE needs to be re-enable a power cycle would be needed. However this would be required only if there is a re provisioning required.
Please let us know if there are any follow up questions.

Hello @leegeth.
Has there been any progress towards the Wifi provisioning via SoftAP? Is the branch you linked in your post still the reference we should follow in order to implement this ourselves?
Thanks.

@TheIronNinja

Has there been any progress towards the Wifi provisioning via SoftAP?

Yes. Compiling the info. Will follow up shortly.

Reference was requested and provided, so I'm closing this issue as the scope is snowballing.
For more general SoftAP questions, or any other issues outside this scope, please open a separate issue with details for you particular use-case. Thanks.


Added license and copyright notice

Important so people can use it without getting trouble from their legal departments.

Thanks Rainer (@mekkablue)! Pretty new to all this sharing stuff.


tcsh: 6.22.03 -> 6.22.04

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

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

[ ] Fits CONTRIBUTING.md.

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

1 package marked as broken and skipped:

otter

3 packages built:

magic-vlsi
orangefs
tcsh

Result of nixpkgs-review pr 132274 run on x86_64-darwin 1

1 package built:

tcsh


Refactored the 'about Kubeflow' page to provide more info and links

Reorganised the info on the page and added links through to the docs.
Based on analytics report for the about Kubeflow page, March 1 to April 19:

Bounce rate is 63%. That’s higher than average (average is ~ 41 to 55 percent). Given that this page is just an introduction and our intention is to draw people in to get more info about Kubeflow, we need to lower the bounce rate.

Action: Optimize the links on this page. At the moment, the first 3 links point to external sites (TensorFlow and Jupyter) and only one link points to a Kubeflow doc.

Fixes https://github.com/kubeflow/website/issues/692

This change is

Preview: https://deploy-preview-779--competent-brattain-de2d6d.netlify.com/docs/about/kubeflow/

@iyera This is one of the changes resulting from the recent analysis of the Kubeflow website Google Analytics report.

Thank you for your review, @dwightjl! I've updated the doc and replied to your comments. PTAL.
/assign @abhi-g
@abhi-g Please would you take a look. The goal of these updates is to address the Google Analytics results as mentioned in the first comment on this PR.

/cc @theadactyl

/lgtm
/hold
Placing a hold in case you want other to review. Otherwise @sarahmaddox you can remove the hold to get this merged.
@sarahmaddox Thank you so much for doing this. I'm really impressed by the data driven optimization approach you are taking here.

Thanks @jlewi!
The PR has been open a while now so I'll send it through for merging. We can adjust iteratively if more comments come through.
/hold cancel

/approve


Compilation error while using mvn install

getting below error while compiling
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project spring-cloud-starter-stream-source-time: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
have following environment
openjdk version "1.8.0_171"
OpenJDK Runtime Environment (build 1.8.0_171-8u171-b11-0ubuntu<IP_ADDRESS>-b11)
OpenJDK 64-Bit Server VM (build 25.171-b11, mixed mode)

I have just done this from the current master and got results like:
~\spring-cloud-stream-app-starters\time>mvnw clean install
...
[INFO] Installing ~\spring-cloud-stream-app-starters\time\time-app-dependencies\pom.xml to ~\.m2\repository\org\springframework\cloud\stream\app\time-app-dependencies\2.0.1.BUILD-SNAPSHOT\time-app-dependencies-2.0.1.BUILD-SNAPSHOT.pom
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] time-app-starters-build ............................ SUCCESS [  4.976 s]
[INFO] spring-cloud-starter-stream-source-time ............ SUCCESS [ 22.616 s]
[INFO] time-app-dependencies .............................. SUCCESS [  0.066 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 34.434 s
[INFO] Finished at: 2018-07-16T11:14:14-04:00
[INFO] Final Memory: 53M/273M
[INFO] ------------------------------------------------------------------------

So, everything works well. It's indeed might be a problem of your environment and you might just not have a proper JAVA_HOME ENV var: https://www.google.com/search?q=set+JAVA_HOME
Also pay attention how I use a Maven Wrapper (mvnw command), embedded into the project instead of installed locally. In fact I stopped to use a local Maven for a while...


Feature/set column wth dict

Codecov Report

Merging #82 (e41c13f) into develop (491a581) will increase coverage by 0.65%.
The diff coverage is 84.62%.

@@             Coverage Diff             @@
##           develop      #82      +/-   ##
===========================================
+ Coverage    92.33%   92.97%   +0.65%
===========================================
  Files            9        9
  Lines          860      868       +8
  Branches       134      137       +3
===========================================
+ Hits           794      807      +13
+ Misses          43       41       -2
+ Partials        23       20       -3

Impacted Files
Coverage Δ

esparto/__init__.py
100.00% <ø> (ø)

esparto/_options.py
71.19% <ø> (ø)

esparto/_content.py
94.58% <75.00%> (-0.92%)
:arrow_down:

esparto/_layout.py
94.33% <100.00%> (+1.52%)
:arrow_up:

esparto/_adaptors.py
100.00% <0.00%> (+3.64%)
:arrow_up:

Continue to review full report at Codecov.

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


Error on download files from JFrog - account deactivated

Today I'm trying to install the boost using the below podspec (extracted from react-native), but I was receiving the error message [!] Error installing boost Verification checksum was incorrect, expected f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41, got 5e89103d9b70bba5c91a794126b169cb67654be2051f90cf7c22ba6893ede0ff:.
PodSpec:
# Copyright (c) Meta Platforms, Inc. and affiliates.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.

Pod::Spec.new do |spec|
  spec.name = 'boost'
  spec.version = '1.76.0'
  spec.license = { :type => 'Boost Software License', :file => "LICENSE_1_0.txt" }
  spec.homepage = 'http://www.boost.org'
  spec.summary = 'Boost provides free peer-reviewed portable C++ source libraries.'
  spec.authors = 'Rene Rivera'
  spec.source = { :http => 'https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2',
                  :sha256 => 'f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41' }

  # Pinning to the same version as React.podspec.
  spec.platforms = { :ios => '11.0' }
  spec.requires_arc = false

  spec.module_name = 'boost'
  spec.header_dir = 'boost'
  spec.preserve_path = 'boost'
end

When I try to open the URL https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2 on the browser, I noticed the following page:

I also download the same URL using the cURL and the result was a HTML page with the same SHA256 of the error message:
$ curl -L https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2 | sha256sum
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   138  100   138    0     0    223      0 --:--:-- --:--:-- --:--:--   225
100 11534  100 11534    0     0   8325      0  0:00:01  0:00:01 --:--:--  8325
5e89103d9b70bba5c91a794126b169cb67654be2051f90cf7c22ba6893ede0ff  -

Same here!

when it will be resolved ?

Does anyone know of a mirror?

Does anyone know of a mirror?

I downloaded a copy of the file hosted on Source Forge and put it directly on my project.
https://sourceforge.net/projects/boost/files/boost/1.76.0/
The SHA256 of the Source Forge file is the same as the original file.

same problem!

Same problem for us too. Is this going to be fixed by them anytime soon?

Same problem here too: https://github.com/f4exb/sdrangel/actions/runs/7372158552

account deactivated.

A temporary mirror site: https://archives.boost.io/release/1.84.0/source/
Hopefully the jfrog links will be restored soon.

Seems the links are back up.

Does anyone know of a mirror?

I downloaded a copy of the file hosted on Source Forge and put it directly on my project. https://sourceforge.net/projects/boost/files/boost/1.76.0/
The SHA256 of the Source Forge file is the same as the original file.

How did you put it directly in your project?

This issue should be re-opened, at the time of writing the jfrog urls on the boost.org website lead to a landing page to "reactivate the account".

I agree with @Shigbeard, all download links are broken as for now

@userdocs yet it is the official link from the official website

jfrog is still not working.


[YUNIKORN-28] Support validating yunikorn-configs before admitting it

Initial PR for YUNIKORN-28.
@yangwwei  please help to review it. Thanks.

Thanks @wilfred-s for the detailed clarification.
I'll try to verify the config via a new API.

@wilfred-s  @yangwwei
I thought we can add a new API in api.SchedulerAPI and its implementation in RMProxy:
	// Request scheduler to validate configuration
	ValidateConfiguration(content string) error

We also need to get an instance of api.SchedulerAPI in admission-controller, I'm not sure is it acceptable to add an method in entrypoint.go like this:
func NewSchedulerAPI() api.SchedulerAPI {
	return rmproxy.NewRMProxy()
}

In this way we still need to dependent the entrypoint package. Is there a better solution? Hope to hear your thoughts. Thanks.

Hi @TaoYang526 , @wilfred-s
I think that's over-engineered.
Can we just use the current approach by depending on the configs package to do the validation?

Beside the pull in of the core code described above I was overlooking the fact that the admission controller is a separate binary which is build out of just two source files: webhook.go and the mutating_controller.go. This further complicates the design..
The admission controller is a separate binary and must thus use GPRC to communicate with the shim/scheduler. There is no provision for that in the current setup. The webhook would thus become a pretty heavy executable with a lot of exposure.
Second point: looking at the source admission controller you will see that there is no code outside of some really basic config and logging details that are getting pulled in. You thus have no entrypoint or even a RMProxy. Adding all this would thus be a major change.
Adding all that into the admission controller would have a far bigger impact than I first thought:

bloat of the code
open up extra ports and adding services to integrate.

I think we need to look in the directions of using REST and directly talk to the core web app. There is already a HTTP server in the webhook so we can leverage that dependency and it keeps it simple. The config is also already loaded by the webhook as it needs the scheduler name.

I think we need to look in the directions of using REST and directly talk to the core web app.
I can't understand this way, could you please elaborate?

The config is also already loaded by the webhook as it needs the scheduler name.
I think webhook doesn't load the consistent config with scheduler, it just gets the default scheduler name.

Hi @TaoYang526
I think @wilfred-s means to create a web-service in yunikorn-core, e.g http://localhost:9080/ws/v1/validateconf. Then the admission-controller here only needs to pass the configs through HTTP request.
However, this increased complexity. We are running admission-controller in a separate pod than the scheduler, which means you will have to figure out how to connect with the scheduler pod in the admission-controller pod.

Thanks @yangwwei for the comments.
I think we have discussed this way yesterday, this may not only increases complexity but also decreases reliability, it works well only when admission-controller and scheduler are both available. I prefer to decouple these two since admission-controller doesn't dependent on dynamic data in scheduler for now.

By adding the core scheduler config code into the admission controller introduce a hard coupling between the k8shim code and the core code. This will mean that we cannot change the core config code without updating the shim. When we introduce a new shim which adds some config to the core and we want to deploy the scheduler without the k8shim we cannot. It will be blocked by the admission controller as it will not allow us to make any configuration changes. The new core can thus not be released without releasing a new k8shim and a new admission controller.
We need to keep the flexibility to make configuration changes in the core without the need to release a shim or admission controller. The current deployment of one binary for shim and core is not the end state.
I am also wondering where the config volume is if you have no scheduler deployed. Beside that having an active admission controller in the cluster and no scheduler would also leave your whole cluster stuck. Nothing will be scheduled without a scheduler. I do not think that it is a good enough reason to push the code into the admission controller. The admission controller must never rely on any shim or core version.
Using a service discovery to find the rest interface is a better solution and allows us to really keep any knowledge that does not belong in the admission controller out of it.
You also need to keep in mind that even if the validate passes the scheduler can still reject the configuration. The config can be valid but the running config might prevent it from being applied, i.e. a leaf queue with running apps cannot be changed into a parent queue, or a placement rule defined in the config might not exist in the code itself.

This will mean that we cannot change the core config code without updating the shim. When we introduce a new shim which adds some config to the core and we want to deploy the scheduler without the k8shim we cannot.

This I disagree. Configs are core side things, even there are 2 shims. the configs should be consistent in core. If we diverse different configs for different shims, that will diverse the core codebase as well. that's something we don't want to run into. Core should be generic. Note, this approach shim doesn't use the configs directly, it only validates it using configs pkg for the core.

I am also wondering where the config volume is if you have no scheduler deployed.

This is not a valid case. We certainly don't want the admission-controller running without the scheduler.

Using a service discovery to find the rest interface is a better solution and allows us to really keep any knowledge that does not belong in the admission controller out of it.

That's something we can do, but apparently it introduces more complexity. Do you think we should invest resources for this?  The admission-controller is an optional deployment, if we need some changes in scheduler's deployment for service discovery, that is not always necessary.

You also need to keep in mind that even if the validate passes the scheduler can still reject the configuration. The config can be valid but the running config might prevent it from being applied, i.e. a leaf queue with running apps cannot be changed into a parent queue, or a placement rule defined in the config might not exist in the code itself.

Here is to place a safe-guard that includes all necessary static checks. IIRC, we do refresh the configs once the load is successful. This is consistent. But if it fails sometime later, that's another thing we need to think about.

I just had some more offline discussion with @wilfred-s . I think @wilfred-s makes a very good point: today, the code only does the static check (syntax, value, etx); but moving on, it's possible we might need to add more in-context checks to validate configs before applying it. In that case, it will have more dependency with core code. So it sounds a good idea to keep that part of code inside of core, and just expose an API (through rest endpoint which we already have today).
@TaoYang526 , could you please investigate how we can do service discovery from admission-controller to the scheduler pod? If that is not too complex, it would be good to have this model.

Thanks @wilfred-s and @yangwwei for the comments. I agree with you according to these comments, and would like to keep working on this.

@wilfred-s @yangwwei
I have done the initial update in latest commit which validates configs via /ws/v1/validate-conf REST API (needs to be added later) in yunikorn scheduler, it assumes that we have a scheduler REST API service and need to be configured in configs.properties.
Could you please take a look at this update and share your thoughts? Thanks.

Hi @TaoYang526
The changes in shim and proposed changes in core are fine.
My question is how we do the service recovery.
We want our deployment as simple as possible, if you look at the helm charts we have one flag to enable or disable the admission-controller: https://github.com/apache/incubator-yunikorn-k8shim/blob/de94366ce5a7d0c21fd49f41ad991a9a67f75508/helm-charts/yunikorn/values.yaml#L26.
When we add the validation via REST, how we can make this all auto-configured in helm charts? I still expect to do a helm install without any manual configuration. So any more info about how we can achieve this?

@yangwwei  Thanks for the comments.
According to the codes for helm charts, I can see that service name is constant and the port is configurable, I think we can only configure the name of service in configs.properties and get the http port of yunikorn service automatically in admission_util.sh via kubectl get service yunikorn-service -n $NAMESPACE -o jsonpath="{.spec.ports[0].port}", then inject the serviceAddress into admission-controller by environment variable.
My doubt is that the namespace in admission-controller seems not related to the helm charts, are we expecting they may be different?

Hi @TaoYang526

I think we can only configure the name of service in configs.properties and get the http port of yunikorn service automatically in admission_util.sh via...

Sounds good.

My doubt is that the namespace in admission-controller seems not related to the helm charts, are we expecting they may be different?

Right now when we do helm chart install, we pass in namespace as a CLI parameter and give value "yunikorn". We should always make scheduler and admission-controller running in same namespace. So the changes needed here is to adhere the namespace value passed in from helm, and populate that into the deployment template.

So the changes needed here is to adhere the namespace value passed in from helm, and populate that into the deployment template.
Got it, I'll update this PR and test helm chart install later. Thanks.

@yangwwei Thanks for the review and reminder.

How about the changes for yunikorn-core?

I'll create a new PR in yunikorn-core for that.

Hi @TaoYang526
One more comment, can we use env vars https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/ to pass in values, e.g the namespace? So the script can directly use that instead of parsing from CLI.

Thanks @yangwwei for the review.
Make sense, already updated in the latest commit, please take a look.

Two issues while testing this out:

It seems the admission-controller service somehow has linked to the yunikorn-scheduler pod. This is not correct. Is this because of the matchedLabel used?

In admission_controller.go#validateConf(), it seems the http connection opened but not closed. Could you please make sure that is done as well.

When I try this out, I got a warning event:

7m25s       Warning   FailedToCreateEndpoint   endpoints/yunikorn-service                            Failed to create endpoint for service default/yunikorn-service: endpoints "yunikorn-service" already exists

did you see this on your deployment?
Please help to take look at these issues. Thx

@yangwwei  Thanks for the review, replies as following:

Yes, I think so. But it can works as well since it restricts the target port to webhook-api. It's better to support role labels, we can correct the selector like this: app: yunikorn && role: admission-controller
Good catch, I forgot to close it, will be corrected soon.
No, have you checked if the scheduler pod works well? and is there any detailed logs?

Hi @TaoYang526
I have tested the changes. It works well. +1 from my side.

Thanks @yangwwei and @wilfred-s for the review.
Formatted code and fixed lint errors in the latest commit.

Thanks @TaoYang526 .
Hi @wilfred-s , please help to merge this once you think it is ready.


Running tests that are not in the src structure

I've tried the wheel building workflows and I can't get it to work if the package has the tests separate from the code, e.g.
package
| src/
|    |  ...
| tests /
|    |  ...
| pyproject.toml

The reason for this is the wheel building workflows only have the installed dist available, so if you aren't packaging your tests you can't run your tests.

I guess also for the pure-python flavor?

I think the reason for this is the wheel building workflows only have the installed dist available, so if you aren't packaging your tests you can't run your tests.

That is a major drawback. The tests in tests/ all do import <package>, so they should pick up the installed dist, if only the folder could be accessed by pytest. Is there any way to cd into the folder and run the tests/ ?

You should be able to run extra commands before running pytest. If you try test_command: cd $GITHUB_WORKSPACE; pytest tests/ (or maybe even test_command: pytest $GITHUB_WORKSPACE/tests/) in your workflow config, pytest should be able to successfully collect the tests within your repo's tests/ directory.

I ended up finding that {project} links to $HOME/../projects/

For building binary wheels, we delegate the testing to cibuildwheel, so you would need to figure out how to set the test command according to their documentation. For the pure-python build action, there is a checkout, and you can customise the test command, so you should be able to set configure it to work.


Add @moduleGraph to the Javadoc of module-info

Looks like there is a Javadoc tag @moduleGraph that generates a module graph.
An example:
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/module-summary.html
Do you think that would be a good idea to add this tag to all module-info to generate the module graph of all our modules?

Well, it seems to part of a private JDK API


Increase testing coverage and fix defer error

Notes for Reviewers
This PR is related to #3988
Signed commits

[x] Yes, I signed my commits.

Codecov Report
Patch coverage: 70.00% and project coverage change: -3.79 :warning:

Comparison is base (d98401c) 16.24% compared to head (f27c8d2) 12.46%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #7633      +/-   ##
==========================================
- Coverage   16.24%   12.46%   -3.79%
==========================================
  Files         121      121
  Lines       16924    16931       +7
==========================================
- Hits         2749     2110     -639
- Misses      13675    14482     +807
+ Partials      500      339     -161

Flag
Coverage Δ

gointegrationtests
?

unittests
12.46% <70.00%> (+0.29%)
:arrow_up:

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

Impacted Files
Coverage Δ

mesheryctl/doc/doc.go
52.53% <70.00%> (+22.05%)
:arrow_up:

... and 12 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

This time, we increase the test coverage to 52.53% but only for the doc file. The increase for other files will be later on.


Reduce: Use Adiar's I/O Wrappers

In the reduce algorithm, all mappings due to the first reduction rule are placed in a tpie::file_stream<mapping>. With #397 we have cleaned up Adiar's wrappers on files and streams and should use these instead (especially to support #199 later).

[ ] Replace the tpie::file_stream<mapping> in __reduce_level using Adiar's wrappers: file<mapping>, file_writer<mapping>, and file_stream<mapping>.

I am thinking to mark this as a good first issue, but I have a hard time figuring out, whether this could impact performance negatively. If that would be the case, then I would like to do as follows:

[ ] Rename the (levelized_)file_stream<mapping> class to (levelized_)file_reader<mapping>.
[ ] Add a file_stream class that both provides read and write access. We can probably rephrase the file_writer and file_reader as wrappers on this class.
[ ] Use the adiar::file_stream<mapping> class in __reduce_level.


Add section to the docs on how to use TwitterServer with Finch

It's pretty intuitive but still we need to say that's explicitly.

Done as part of Best Practices.


Feat: Add minimal support for i18n

What type of PR is this?
(REQUIRED)

feature

What this PR does / why we need it:
(REQUIRED)

Enable basic internalization support for urfave/cli
Which issue(s) this PR fixes:
(REQUIRED)

Fixes #980
Special notes for your reviewer:
(fill-in or delete this section)

Testing
(fill-in or delete this section)

Release Notes
(REQUIRED)

This adds basic framework support for internationalization for urfave/cli. Right now the languages built in are en-US/en-GB which zero changes between the messages. As people request more languages the capability to add this is present with no changes to core code base

Ack sorry about the conflicts! 😭

@meatballhat

Addressed all the conflicts
Added import of _ "github.com/urfave/cli/v3/internal/translations"
Added ensure-gotext to internal build
Added ensure-gotext and go-generation to the build system

@dearchap Thank you! I sincerely appreciate your work on this 🤘🏼
I'm still confused about the intended usage given this line in the generated code. How is this supposed to work if urfave/cli/v3 is being used by an application that also uses code generated by gotext?
Given that the template file for the generated code hasn't been touched in ~4 years, I'm wondering if using golang.org/x/text/message/pipeline (via gotext) is the right move 🤔

@meatballhat I've hacked around the package global Catalog initialization. I dont like it but this is what we have until support for multiple Catalogs is rolled into the text/message package itself.
https://cs.opensource.google/go/x/text/+/refs/tags/v0.10.0:message/catalog/catalog.go;l=281
For now this is the simplest route without adding dependencies on other i18n libraries which look to me more heavyweight

@meatballhat Also I'm not sure why only the window tests are failing. Can you take a look ?

@meatballhat Also I'm not sure why only the window tests are failing. Can you take a look ?

Offhand I don't see why that failure is happening 🤔 Can the make go-generate step be limited to most recent Go on ubuntu like with some of the nearby steps?


Ability to Override Secret Backend Using Environment Variable

This simple PR adds the ability to override the default secret backend of "keychain" using the environment variable AWS_VAULT_PL_BACKEND.

Actually, I just got back to my computer and was able to look into this more closely. Does this plugin need to provide this behavior? It looks like there's a top-level AWS_VAULT_BACKEND environment variable the user can set to accomplish this.
I think keychain is probably only valid for macOS, so this default might not work for some linux users and would require out-of-the-box configuration.

I didn't see this in the aws-vault help, and totally neglected to check the usage docs at the Github repo.  It's totally not necessary.
Cheers!

No worries!


Add colors

Currently the output is a bit bland. I've created a pull request to add a little bit of color to the output.
Tested on
- linux 4.20.0 x86 g++ 8.2.1 # # #21

Issue not needed, #21 exists.


create CI routines

@JuliaRegistrator register

Comments on pull requests will not trigger Registrator, as it is disabled. Please try commenting on a commit or issue.


r-fullstack-melange fails to compile

Hi folks,
Could you please advise what I'm missing ?
~/work/sideprojects/ocaml/dream/example/r-fullstack-melange$ npm install
npm WARN deprecated<EMAIL_ADDRESS>Use https://www.npmjs.com/package/rescript-webapi
npm ERR! code 1
npm ERR! path /home/expert/work/sideprojects/ocaml/dream/example/r-fullstack-melange/node_modules/bsdoc
npm ERR! command failed
npm ERR! command sh -c node ./postinstall.js
npm ERR! node:internal/fs/utils:351
npm ERR!     throw err;
npm ERR!     ^
npm ERR!
npm ERR! Error: ENOENT: no such file or directory, scandir '/home/expert/work/sideprojects/ocaml/dream/example/r-fullstack-melange/node_modules/bsdoc/platform-linux/bin'
npm ERR!     at Object.readdirSync (node:fs:1543:3)
npm ERR!     at copyRecursive (/home/expert/work/sideprojects/ocaml/dream/example/r-fullstack-melange/node_modules/bsdoc/postinstall.js:28:17)
npm ERR!     at /home/expert/work/sideprojects/ocaml/dream/example/r-fullstack-melange/node_modules/bsdoc/postinstall.js:131:5
npm ERR!     at Array.forEach (<anonymous>)
npm ERR!     at copyPlatformBinaries (/home/expert/work/sideprojects/ocaml/dream/example/r-fullstack-melange/node_modules/bsdoc/postinstall.js:127:17)
npm ERR!     at Object.<anonymous> (/home/expert/work/sideprojects/ocaml/dream/example/r-fullstack-melange/node_modules/bsdoc/postinstall.js:162:5)
npm ERR!     at Module._compile (node:internal/modules/cjs/loader:1233:14)
npm ERR!     at Module._extensions..js (node:internal/modules/cjs/loader:1287:10)
npm ERR!     at Module.load (node:internal/modules/cjs/loader:1091:32)
npm ERR!     at Module._load (node:internal/modules/cjs/loader:938:12) {
npm ERR!   errno: -2,
npm ERR!   syscall: 'scandir',
npm ERR!   code: 'ENOENT',
npm ERR!   path: '/home/expert/work/sideprojects/ocaml/dream/example/r-fullstack-melange/node_modules/bsdoc/platform-linux/bin'
npm ERR! }
npm ERR!
npm ERR! Node.js v20.5.1

npm ERR! A complete log of this run can be found in: /home/expert/.npm/_logs/2023-08-13T15_12_04_438Z-debug-0.log

Hi! The above commit updates the Melange example to use the latest version of Melange, which likely doesn't have the issue you've reported (thanks!).


feat: Retrieve SAML user attributes, include in state, and provide to AWS SCIM

Is your feature request related to a problem? Please describe.
Just wrapped up most of the setup - things are working well so far with the manual test... thank you!
Though - I just realized that the current implementation does not support SAML user attributes, and I was really hoping to take advantage of AWS's relatively new  (Nov 2020) attribute-based access control ABAC: https://aws.amazon.com/blogs/aws/new-attributes-based-access-control-with-aws-single-sign-on/
Describe the solution you'd like
Modify code to also retrieve any custom attributes that have been mapped in the Google Workspace SAML app, and include those in the state file and diff when determining what to send to the AWS SCIM endpoint.
Additional context
Add any other context or screenshots about the feature request here.
Creating custom attributes in the Workspace user settings: https://admin.google.com/ac/customschema:

Mapping custom attributes in the AWS SSO SAML app: https://admin.google.com/ac/apps/saml/XXXXXXXX/attrmapping

AWS SSO attribute-based access mappings: https://us-west-2.console.aws.amazon.com/singlesignon/identity/home?region=us-west-2#!/settings?tab=abac

Hi @mat-release totally agree with you, it could be a great feature.
I need to understand a little more how could be integration because actually I only use the AWS SSO SCIM API which is just used to populate users, groups and groups members with fixed fields or attributes I request to Google Workspace Directory API.
So, to do that I need to implement the AWS SSO SDK go v2 or another AWS SSO API to retrieve the SAML v1 mapping configuration, but in my first research, I don't find any AWS API that allows us to retrieve this SAML information. I'll keep investigating how retrieving information is possible.

Hi there,
Unfortunately, this is not possible, the SAML attributes are not reachable from the lambda and the Google credentials.  I implemented all the attributes allowed by the SCIM API, next version will allow you to have these.


Tag summary giving wrong tagged scenario count

Describe the bug
Tag summary giving wrong tagged scenario count.
To Reproduce
Steps to reproduce the behavior:

Create a cucumber scenario and give it multiple tags, let's say 3.
Run the scenario.
Verify the Tag summary page

Actual Behavior*
Tagged Scenario count is 3 , sum of all tags count.
Expected behavior
Tagged Scenario count should be 1 as there is only one scenario that ran which has 3 tags.

Ready for release in 1.7.0


🐛 [flutterfire_ui] Registration window cuts off some widget

Registration window cuts off something

fixed in #9343


Getting xpath error using WinAPPDriverUI recorder

Hi @hassanuz I tried automation for addition(+) action in calculator app using WinAPPDriverUI recorder.
C# code generated successfully for addition function. But am getting xpath error while executing that generated C# code.
"/Pane[@Name="Desktop 1"][@ClassName="#32769"]/Window[@Name="Calculator - Calculator"][@ClassName="ApplicationFrameWindow"]/Window[@Name="Calculator"][@ClassName="Windows.UI.Core.CoreWindow"]/Group[@ClassName="LandmarkTarget"]/Group[@AutomationId="NumberPad"][@Name="Number pad"]/Button[@AutomationId="num6Button"][@Name="Six"]"
If I remove "/Pane[@Name="Desktop 1"][@ClassName="#32769"]/Window[@Name="Calculator - Calculator"][@ClassName="ApplicationFrameWindow"]"from xpath, It is working fine.
What am I missing?

Hi @DhineshBabuM,
Is your script with the Calculator session as default or desktop?
The C# code generated by UI Recorder does it from the perspective of the desktop session.

Hi this my session created code
    private const string WindowsApplicationDriverUrl = "http://<IP_ADDRESS>:4723/";
    public static WindowsDriver<WindowsElement> DesktopSession;
    public static void Setup()
    {
        if (DesktopSession == null)
        {
            DesiredCapabilities appCapabilities = new DesiredCapabilities();
            appCapabilities.SetCapability("app", "microsoft.windowscalculator_8wekyb3d8bbwe!app");
            appCapabilities.SetCapability("platformName", "Windows");
            appCapabilities.SetCapability("deviceName", "dhinesh-123");
            DesktopSession = new WindowsDriver<WindowsElement>(new Uri(WindowsApplicationDriverUrl), appCapabilities);
        }
    }

Hi @DhineshBabuM,
As of right now, UI Recorder generates the XPath expression (inside or outside C#) with respect to the desktop session. Since you initiated the session with the Calculator app, the XPath expression will have to be truncated accordingly.


[Tests] IDE/complete_embedded.swift supports only macOS and Linux

This test fails in simulators https://ci.swift.org/job/swift-PR-macos/12861/

@swift-ci Please smoke test

force-merge to fix CI


Replace zkp-sbmtjs with semaphore-merkle-tree

I've ported zkp-sbmtjs to TypeScript and moved it to its own npm module. This PR makes Semaphore use semaphore-merkle-tree instead of zkp-sbmtjs.

Oops - wrong branch!


Wrong search_path for autocomplete widget

I'm using Django 1.9.6 and django-extensions 1.6.7
In my code, the widget.py generated a wrong URL for the ajax request which lead to a redirect to modify an object with ID "foreign_key".
After some investigation I figured out, that the generated URL uses the model_name of the foreign key model instead of the form model:
# models.py
class Order(models.Model):
    customer = models.ForeignKey(Customer)
    ...
    class Meta:
        app_label = 'crm'

# admin.py
class OrderAdmin(ForeignKeyAutocompleteAdmin):
    list_display_links = None
    list_display = ('customer_name', ... )
    list_per_page = 25
    inlines = [ OrderPositionInline]
    form = CustomOrderForm

    related_search_fields = {
        'customer': ('firstname', 'lastname'),
    }

The generated URL in django_extensions/admin/init.py is _/admin/crm/order/foreignkey_autocomplete/_
The generated URL in django_extensions/admin/widgets.py is _/admin/crm/customer/foreignkey_autocomplete_
In widgets.py the model_name is extracted from the to part of the relation in line 45 and used in the base url related_url in line 48.
def render(self, name, value, attrs=None):
    if attrs is None:
        attrs = {}
    opts = self.rel.to._meta

    app_label = opts.app_label
    model_name = opts.object_name.lower()

    related_url = reverse('admin:%s_%s_changelist' % (app_label_url, model_name_url))

I fixed the problem by retrieving the model_name and app_label from the model on which the field is located in. The model_name of the related to field is used later as GET parameter.
opts = self.rel.to._meta
app_label = opts.app_label
model_name = opts.object_name.lower()

opts_url = self.rel.field.model._meta
app_label_url = opts_url.app_label
model_name_url = opts_url.object_name.lower()

related_url = reverse('admin:%s_%s_changelist' % (app_label_url, model_name_url))

Do I really need this modification or did I just miss a flag or parameter to manually set the correct model?
If this is a bug, shall I create a pull request?

Sounds like a bug...
Could this be related to 96d4aa65e3527e264d2144df666a0fc136657607 or f8b9a9b50a357ccdb535daa7abcdbca736774326 ?

No. Both use app_label and model_name as parameters.
The bug is located in the model_name parameter which has a wrong value.

Any update on this?


[WIP] JavaScript parser

First pass at adapting the Higgs JavaScript parser from D to C++.

Nitpick: instead of CJAVASCRIPT, could you call it CJS, or CJSC?
Also, I'd like it if you could have some parsing tests and JS->ZIM codegen tests.

@maximecb: Will do the rename right now. Definitely going to add some tests as I get further along in the implementation. 🙃


Make sure all controllers finish before ending test

This should avoid race conditions as seen in https://prow.knative.dev/view/gs/knative-prow/pr-logs/pull/knative_pkg/1817/pull-knative-pkg-unit-tests/1318077986871709698.
/assign @vagababov @julz

/retest
Unrelated.

/retest
Unrelated.


feat: v2.2.0

Description

feat: additional lint rules:

avoid_returning_null_for_future
avoid_slow_async_io
avoid_type_to_string

Type of Change

[X] ✨ New feature (non-breaking change which adds functionality)
[ ] 🛠 Bug fix (non-breaking change which fixes an issue)
[ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🧹 Code refactor
[ ] ✅ Build configuration change
[ ] 📝 Documentation
[ ] 🗑 Chore

👀

This might be a good rule as well https://dart-lang.github.io/linter/lints/always_use_package_imports.html

Does very_good_analysis/lib/analysis_options.yaml need to be updated to point to the new file as well?


There is a vulnerability in log4j 1.2.17 ,upgrade recommended

https://github.com/apache/trafficcontrol/blob/83e5c3ab43b89c18daa26d19192fc819bfcd44c3/traffic_router/pom.xml#L36
CVE-2019-17571  CVE-2020-9488
Recommended upgrade version：2.13.2

Improper validation of certificate with host mismatch in Apache Log4j SMTP appender. This could allow an SMTPS connection to be intercepted by a man-in-the-middle attack which could leak any log messages sent through that appender.

We do not use the SMTP appender.

Included in Log4j 1.2 is a SocketServer class that is vulnerable to deserialization of untrusted data which can be exploited to remotely execute arbitrary code when combined with a deserialization gadget when listening to untrusted network traffic for log data. This affects Log4j versions up to 1.2 up to 1.2.17.

TR doesn't use a deserialization gadget or listen to untrusted network traffic for log data.
Therefore, I don't believe we're vulnerable to these CVEs, but we should probably upgrade these dependencies when we get the chance.

We have updated log4j to 2.17.1 (PR: #6390, #6438, #6445)