Loopback device in namespace

Having a stab at that.

Cool :)
I couldn't figure it out; I just couldn't figure out how to do the equivalent of ip link lo up
This is the diff I have sitting around. Maybe it will help you?
diff --git a/pam_network_namespace.c b/pam_network_namespace.c
index 811117b..2d79e2e 100644
--- a/pam_network_namespace.c
+++ b/pam_network_namespace.c
@@ -1,3 +1,7 @@
+#include <sys/socket.h> /* needed for linux/if.h */
+#include <linux/if.h> /* IF_OPER_UP */
+#include <netlink/object.h>
+#include <netlink/route/link.h>
 #include <netlink/route/link/veth.h>
 #include <sched.h>
 #include <security/pam_modules.h>
@@ -22,6 +26,7 @@ PAM_EXTERN int pam_sm_open_session(pam_handle_t *pamh, int flags,
 	const char *user = NULL;
 	int err;
 	struct nl_sock *sock = NULL;
+	struct rtnl_link *lo = NULL, *lo_changes = NULL;

 	if (PAM_SUCCESS != pam_get_item(pamh, PAM_USER, (const void**) &user) || user == NULL) {
 		pam_syslog(pamh, LOG_ERR, "Unable to get username; using auto-generated interface name.");
@@ -43,6 +48,28 @@ PAM_EXTERN int pam_sm_open_session(pam_handle_t *pamh, int flags,
 		goto err;
 	}

+	// /* Bring up loopback device inside namespace
+	//    equivalent to: ip link set lo up */
+	// if (0 != (err = rtnl_link_get_kernel(sock, 1, "lo", &lo))) {
+	// 	pam_syslog(pamh, LOG_ERR, "Unable to get looopback link: %s", nl_geterror(err));
+	// 	goto err;
+	// }
+	// if (NULL == (lo_changes = (struct rtnl_link*)nl_object_clone((struct nl_object*)lo))) {
+	// 	pam_syslog(pamh, LOG_ERR, "Unable to allocate link");
+	// 	goto err;
+	// }
+	// printf("NAME: %s\n", rtnl_link_get_name(lo_changes));
+	// rtnl_link_set_operstate(lo_changes, IF_OPER_UP);
+	// // rtnl_link_set_carrier(lo, IF_OPER_UP);
+	// // rtnl_link_set_linkmode(lo, IF_OPER_UP);
+	// if (0 != (err = rtnl_link_change(sock, lo, lo_changes, 0))) {
+	// 	pam_syslog(pamh, LOG_ERR, "Unable to bring up loopback interface: %s", nl_geterror(err));
+	// 	goto err;
+	// }
+	// rtnl_link_put(lo_changes);
+	// rtnl_link_put(lo);
+	// lo_changes = NULL, lo = NULL;
+
 	/* Create veth device shared with parent */
 	if (0 != (err = rtnl_link_veth_add(sock, DEFAULT_DEVICE_NAME, user, getppid()))) {
 		pam_syslog(pamh, LOG_ERR, "Unable to create veth pair: %s", nl_geterror(err));
@@ -52,6 +79,8 @@ PAM_EXTERN int pam_sm_open_session(pam_handle_t *pamh, int flags,
 	return PAM_SUCCESS;

 err:
+	if (lo_changes) rtnl_link_put(lo_changes);
+	if (lo) rtnl_link_put(lo);
 	if (sock) nl_socket_free(sock);

 	return PAM_SESSION_ERR;

@KellerFuchs did you get anywhere with this?

@daurnimator Not really.  I had a slightly different approach (not cloning the existing interface), but there are some parts I'm just not figuring out from the documentation.
I guess I'll have to ask the libnl peeps.

The cloning wasn't the problem (that bit works!). The remaining issue with the above code was setting the link "up".
I could do it manually with ip link set lo up, but I couldn't figure out the libnl code to do the same.

In case you're still interested, I struggled with a similar piece of code and it works here now if I simply rtnl_link_alloc() a new "empty" link and call rtnl_link_set_flags(mynewlink, IFF_UP) before the rtnl_link_change.

@anyc I'm not sure I understand:
By allocating a new link and setting that to IFF_UP a different link started working?

Yes, as far as I know, rtnl_link_change will do its work on the interface identified by the first link structure. The second link structure only contains the changes that will by applied to the interface represented by the first link.

@anyc Our plans changed a bit: I started moving the namespace-creation logic in a shell script that gets ran by pam_exec.

@KellerFuchs pam_exec won't work here: unshare only works on the current process: there is no way to have it apply to a parent.

@daurnimator Yes, we still need pam_network_namespace to make the right setns(2) call.
We can still move the whole namespace creation and setup to the shell script, and do something like:
// That's not proper C: it leaks resources and does no error handling
int ns_fd = open(strcat("/var/run/netns/", PAM_USER), O_CLOEXEC);
setns(ns_fd, CLONE_NEWNET);

At that point why bother with pam_exec? I'd rather we just do it all in the C module.

Because doing it in a shell script is several orders of magnitude more readable, maintainable, and less error-prone (esp. considering that the alternative is homemade C code running as root)?

Also, ip(8) has documentation, unlike libnl, so we won't spend even more time blocked on completely basic things (like setting up a loopback interface...).

Can always just call system() with the current layout if we don't want to keep trying with libnl

It's not because we can that we should, especially because this belongs more in the realm of configuration than hard-coded in a PAM module.
(Also, what would be the advantage of doing it with system() and doing the error-handling in C?)

Thanks @anyc that worked


Expand the wiki of "System Architecture - Frontend"

Reason (Why?)
Refactoring the frontend code resulted in new components that should be documented.
Solution (What?)
Expand the wiki page System Architecture - Frontend
Out of scope
Any code implementations or other wiki pages.
Relation to other Issues
#291
Acceptance criteria
Every component should be described.

I updated the wiki.
@KaiDrieHda please make an quality check.
@theErikss0n please check if i forgot something.

Did a quality check, fixed several small typos and made sure the "result page" is consistently named "posts/posts page".
Looks really good to me, great work!


[SPARK-6847][Core][Streaming]Fix stack overflow issue when updateStateByKey is followed by a checkpointed dstream

Add a local property to indicate if checkpointing all RDDs that are marked with the checkpoint flag, and enable it in Streaming

/cc @andrewor14 @tdas

Test build #50141 has started for PR 10934 at commit 36cba8c.

Test build #50141 has finished for PR 10934 at commit 36cba8c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/50141/
Test PASSed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/50171/
Test FAILed.

retest this please

Test build #50173 has started for PR 10934 at commit ef3983b.

Test build #50173 has finished for PR 10934 at commit ef3983b.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/50173/
Test PASSed.

Merged build finished. Test PASSed.

Looks great! I only have documentation and test suggestions.

Test build #50421 has started for PR 10934 at commit 97e39c0.

Test build #50421 has finished for PR 10934 at commit 97e39c0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/50421/
Test PASSed.

Merged build finished. Test PASSed.

LGTM, I'll merge this once you address the minor comments

Test build #50448 has started for PR 10934 at commit 20e4509.

Test build #50448 has finished for PR 10934 at commit 20e4509.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/50448/
Test PASSed.

Merged build finished. Test PASSed.

Merged into master.

I did not merge this into 1.6 or before because of 2 reasons:

It doesn't merge cleanly, and more importantly
This changes internal semantics and it's not technically a bug
Let me know if you disagree.


Horizontal images for older posts previously uploaded externally to app (1024x512) don't rescale to fit inside post image area on app.

Steps to Reproduce

go to https://bsky.app/profile/wrtrstat.bsky.social on bluesky
scroll down and check previous post's horizontal images.

Cause? Fix?

Attachments
No response
What platform(s) does this occur on?
Web (Desktop)
Device Info
No response
What version of the app are you using?
Build version: 1.95.0; Bundle info: c9d86de (prod); Bundle date: 24112719; Platform: web; Platform version: undefined
Additional Information
Is there a new setting to be changed? Thanks, all of my horizontal uploaded images used to fit just fine/correctly inside the post area prior to the last update. Before this last update all my horizontal uploaded images rescaled and fit just fine, but now after the update they are all way too big to fit in the post area. If you visit the page I provided and scroll down you'll see what I mean. Thanks for any help/work arounds. Makes seeing any older post's horizontal images really bad. Appears something unintentionally was over-written/changed. Thanks again. How to set back?

It appears, vertical images in older bluesky posts don't rescale or fit correctly inside posts anymore either. It appears at least for my Bluesky page that for older images and even for newer images on my page that rescaling for images to fit inside post's image area has been lost/broken. Thanks for any pointers/help. Note: all images had fit/displayed correctly and were resized correctly to fit inside post image area on my page prior to last update.

Yea, this is the same issue as https://github.com/bluesky-social/social-app/issues/6800.
The change is that we're no longer dynamically resizing images without dimensions.  Which client are you using to post?
Dynamically resizing images makes the feed slow for anyone who sees your post — your post would shift all the posts after it as the image loads. So this is why we removed that behavior.
What we can do is we can fit them into square boxes instead of cropping them. However, there will be black bars.

Going to close as a duplicate of #6800, let's discuss there.

Was using Fedica to schedule them. Trying out Buffer now to schedule to see if makes a difference. Surprisingly, the images I used never shifted. Tbh, no one would see or mind the shift because using a laptop, phone etc... you only see the first 2 or 3 posts, and not the ones below until you scroll, and the shift is fast enough to not be seen on the first 2 or 3.
If you were going to use bars, use the theme color, white for the light theme, black or dark for the dark theme?


Audit contributions for malformed links

As part of the integrity of the portal site, we should continually monitor the health of links as dead links will effect thew overall user experience of the developer portal.
Requirements:

Authors content should be scanned by code that is able to detect malformed or dead links.
Authors should receive feedback about bad links before their document is published

Prototype link checking code has already been implemented in earnest in the Cadence repo here:
https://github.com/onflow/cadence/blob/master/docs/lint.js

static builds https://github.com/onflow/docs


Fix Android Makefile relative paths

Relative make paths were incorrect and causing an Android build error. Updated that to have the correct relative path.
`* What went wrong:
Execution failed for task ':react-native-mmkv:generateJsonModelDebug'.

/Users//Developer//node_modules/react-native-mmkv/android/CMakeLists.txt : C/C++ debug|armeabi-v7a : CMake Error at /Users//Developer//node_modules/react-native-mmkv/android/CMakeLists.txt:15 (add_library):
Cannot find source file:

  ../node_modules/react-native/ReactCommon/jsi/jsi/jsi.cpp

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 15s`

#4  i just run into this issue

Thanks for your PR! ❤
I will not merge this right now though since I'm trying to build with android .aar so that users don't need to install NDK and build the project for themselves.

Pre-built .aar package will be used in v0.1.11.


Updating from 1.2.4 to 1.2.5 resets mod settings

When I updated this mod from 1.2.4 to 1.2.5 all mod settings were reset. Attempting to load a save brings up the sync mods screen but fails to restore mod settings properly. Downgrading back to 1.2.4 allows it to restore the startup settings. I was able to update to 1.2.5 and manually set everything back to what it was before with no issue.

Yes, this is expected. The settings have changed their fundamental type and there isn't a way to automatically migrate them. I'm sorry.

I misunderstood what you said, it shouldn't be resetting all settings. That is a bug in the base game and has been fixed for 1.1.83.
https://forums.factorio.com/106445
I will pull this release off the mod portal to prevent further damage.


[AUTOTVM] Automated Operator Optimization

This is the tracking issue for bringing auto-tuning module to tvm. The auto-tuning module is critical to the performance and portability of tvm.
 Here is the roadmap.
Step 1: Basic auto tuning infrastructure (#1312)
The core components to support auto-tuning in tvm:

Template and space definition
Measurement executor
Basic tuners: random tuner, gridsearch tuner, xgboost tuner
Tuning records/log
Tutorial on writing tunable schedule

Step 2: Rewriting TOPI with autotvm template  (#1487)

Rewrite performance-bottleneck operators (e.g. conv2d) in tunable style
Currently we store parameters of schedule on source file. After this step, we will release a
log file which stores the parameters for common shapes.
Add automated space generation for some backends
Tutorial

Step3: Tuning a whole NNVM graph

Tune a whole nnvm graph with easy API
Tutorial

Close this as most two steps are done


Accessibility: aria-labels

In order to create apps that meet accessibility standards, it would be very helpful if aria-labels were to be implented to dmc. Thank you very much!

This has been taken care of in the 0.11.x release.


TypeError: can't define property "default-view": Object is not extensible

Description
After updating several libraries in the project I'm working on, I started to get a runtime error from deck.gl as soon as trying to interact with the map:
TypeError: can't define property "default-view": Object is not extensible

The error points to this line: https://github.com/uber/deck.gl/blob/master/modules/core/src/lib/deck.js#L719
I'm guessing it might be new React behaviour which is not supported? I'm trying to make things work with the (currently) latest 16.10.2.
Also using react-map-gl if that helps, though the stack trace seems to only touch components of deck.gl.
Repro Steps
Ours is a fairly complex app, but if you have a sample setup to build on in Codepen or something I can try to create a simple repro.
Environment (please complete the following information):

Framework Version: deck.gl 7.1.11
Browser Version: breaks both with Firefox Developer and Chrome Canary
OS: MacOS 10.14.6

Logs
deck.js:711 Uncaught TypeError: Cannot add property default-view, object is not extensible
    at Deck._onViewStateChange (deck.js:711)
    at ViewManager._onViewStateChange (view-manager.js:241)
    at MapController.updateViewport (controller.js:223)
    at MapController._onWheel (controller.js:339)
    at MapController.handleEvent (controller.js:82)
    at EventRegistrar._emit (event-registrar.js:108)
    at EventRegistrar.handleEvent (event-registrar.js:82)
    at Manager.emit (hammer.js:2519)
    at EventManager._onOtherEvent (event-manager.js:295)
    at WheelInput._onWheel (wheel-input.js:87)
    at WheelInput.handleEvent (wheel-input.js:82)

Ours is a fairly complex app, but if you have a sample setup to build on in Codepen or something I can try to create a simple repro.

You can clone one of the code.pen demos : link

OK, I figured out what was the problem: passing a WebMercatorViewport class instance as initialViewState, which was then set as this.viewState: https://github.com/uber/deck.gl/blob/5af228714038f644ca936f966474483a6c64c162/modules/core/src/lib/deck.js#L147
Spreading the viewport object solved the issue, ie initialViewState={{ ...viewport }}
Not sure if it's something you might want to fix / work around in the library code so will leave you to close the issue or leave it open.

initialViewState/viewState are expected to be plain objects, not viewport instances.


Help center stage 1

Fixes: #30451 (refer this to see what is not supported right now)
Have a look at the README to see how the commands work. This PR has 1 preparatory commit. ./tools/convert-help-center-docs-to-mdx is used to convert the existing help center files, the includes files are not part of the conversion yet, they should be converted in stage 2 in its own issue. We'll use run-dev with different flags to run this project. Production environment specific config will be done at the end of the project.

Screenshots and screen captures:

Example page

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

I'll let the version conflicts be until it gets to the next review

I rebased this and it looks good, marked to merge once CI passes again.
Glad to have this checkpoint in, since now one can do more tactical commits tweaking the help-beta stuff without needing to reprovision when switching branches.


Fix occasional test failure of l2normalize with float16

Jenkins, test this please.

Jenkins, test this please.

Jenkins CI test (for commit abf41eb7416fd54f28acd0bb5a8b01d56eb7260b, target branch master) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

Jenkins, test this please.

Jenkins CI test (for commit abf41eb7416fd54f28acd0bb5a8b01d56eb7260b, target branch master) failed with status FAILURE.
(For contributors, please wait until the reviewer confirms the details of the error.)

Jenkins, test this please.

Jenkins CI test (for commit 7d3c8fc77fa06ec54f48b49b3a28b7679b6d503b, target branch master) succeeded!

ping? @takagi

LGTM!

Thanks!

@takagi This pull-request is marked as to-be-backported, but the corresponding backport PR could not be found. Could you check?


Adding IsGraspingObject to Physics Provider

Summary

Adds function to check if object is grasped via the physics provider.
Adds example cubes to the example scene of object states and isgrasped functions.

Contributor Tasks
These tasks are for the merge request creator to tick off when creating a merge request.

[x] Pair review with a member of the QA team.
[x] Add any release testing considerations to the MR for the next release.
[x] Consider any licensing/other legal implications for this MR e.g. notices required by any new libraries.
[x] If this MR closes a Jira issue, make sure the fix version on the JIRA issue is set to the correct one.

Reviewer Tasks
Add any instructions or tasks for the reviewer such as specific test considerations before this can be merged.
Use emojis in review threads to communicate intent and help contributors.

[ ] Code reviewed.
[ ] Non-code assets e.g. Unity assets/scenes reviewed.
[ ] Checked and agree with release testing considerations added to MR for the next release.

Seeing a few issues. This error when running the scene:

Also the text on the cube doesn't go back to the not grasp state until my hand moves away from the cube - that's after I've let go.
https://user-images.githubusercontent.com/53301524/182159698-3bd1e385-9a7f-4d3d-9b2b-7cb301480ac3.mp4

Fixed that bug, realised I messed up the logic check when simplifying it.

Great. That's those issues sorted. Thanks.


GitHub actions on forked repo is failing

Description
I got these constant notification from forked repo that the GitHub actions is failed, which I believe run every 30mins

Expected Behaviour

Additional Information
reproduce steps

forked repo
occasionally fetch new commits from original repo
GitHub action runs and fail

is it something that expected to happen? or is there something that I did it wrong?
Thanks

It's expected, since you don't provide sufficient GitHub Action secrets (a.k.a. Environment Variables) to your forked repository.
The simplest solution is by disabling GitHub Actions on your forked repository.
The more complex solution (which I don't think is necessary) is to provide the environment variables for your own instances, such as Netlify, Lighthouse CI, Codecov, Cypress Dashboard, etc.

To spread this information to the rest of the contributors, would you please make some changes to our CONTRIBUTING.md file to explain this situation? 😁
Thanks! 🙏

maybe we can use this kind of solution @zainfathoni ? 🤔  https://github.com/arduino/arduino-cli/pull/888/files

Sounds good. Would you please update the issue description to match that approach, Mas @rubiagatra?

maybe we can use this kind of solution @zainfathoni ? 🤔  https://github.com/arduino/arduino-cli/pull/888/files

Sounds good. Would you please update the issue description to match that approach, Mas @rubiagatra?

or yeah we need to create some documentation about disable actions https://github.community/t/stop-github-actions-running-on-a-fork/17965

We can also do this approach to educate our contributors in the meantime.

Just updated TODO task and add separate issue for github action

Just updated TODO task and add separate issue for github action

You need to add a space between the brackets like this, Mas @rubiagatra. 😅

[ ]

lol ups 🤣 , done!


momentum equation reconstruction

Hi
A postdoc should start sometime early next year on the analysis of LLC4320 surface fields.
One objective will be to reconstruct and decompose (spatiotemporal filtering) surface momentum equations.
I'd be very keen on using xgcm, would you have Ryan some comments/advice about that?

It is important to understand that there are two separate packages. This one (xmitgcm) has a single, specific purpose: read MITgcm MDS files into xarray format. This includes llc files, and I have done extensive testing of the performance of reading LLC4320 on pleaides. It is described in detail in the documentation: http://xmitgcm.readthedocs.io/en/latest/performance.html
Once the files are in xarray format, there are many options for how to analyze them, including all of xarray's built in capabilities. My xgcm package (http://xgcm.readthedocs.io/en/latest/) is designed to help with the analysis of finite volume GCMs and is not specific to MITgcm.
In general, both these packages could potentially be very useful to the project you describe. There is also lots of work to do to improve both of them, so I encourage you to try them out, help us identify issues for improvement, and potentially add features that you need for your project. If you describe what you want to do in more detail, I could provide more specific advice.
p.s. I'm curious who you are. You know me by name, but your github handle is just apatlpo. Have we met before?

Thanks Ryan, this is very helpful.
I don't have access to LLC4320 quite yet, so testing will have to wait for a bit ... unless the file you used for your demos is available somewhere?
yes we met, I am aurélien ponte. Sorry for the confusion.

Hi Aurélien!

unless the file you used for your demos is available somewhere?

Unfortunately it's hard to find places to host hundreds of TB!

Ok, I'll wait for the data then.
With another postdoc, we've recently analyzed NATL60 with oocgcm and got familiar with xarray.
I look forward to give xgcm a spin now.

Hey Ryan,
I'm Xiaolong Yu, the postdoc working on LLC4320 with Aurélien!
As you might know, we have access to the simulation outputs now (even though there are a few corrupted data). We have been thinking about reconstruction of evolution equations for surface momentum and tracers. Would be great if you could give me some general suggestions. Also, do you know where I can find detailed description of LLC4320? Many thanks.

We have been thinking about reconstruction of evolution equations for surface momentum and tracers. Would be great if you could give me some general suggestions

A good place to start is with the MITgcm manual describing the momentum equation:
http://mitgcm.readthedocs.io/en/latest/algorithm/algorithm.html#vector-invariant-momentum-equations

Also, do you know where I can find detailed description of LLC4320?

As far as I know, none exists. If you want to understand the configuration used when running the model, you can look at the input files here:
http://wwwcvs.mitgcm.org/viewvc/MITgcm/MITgcm_contrib/llc_hires/llc_4320/input/

thanks Ryan, this is very useful.
The most relevant seems to be the data file.
For advections, we may need to dig into the code on the other hand.


Upgrade to latest FSharp.AWS.DynamoDB

I took a look around at what needs doing here and noticed that FSharp.AWS.DynamoDB is not at its latest version
https://github.com/mbraceproject/MBrace.AWS/blob/master/paket.lock#L15
https://www.nuget.org/packages/FSharp.AWS.DynamoDB/

@dsyme done

@AviAvni I know this was some time ago, but thanks for doing this :)


Fix Dockerfile label syntax

Minor syntax fix in the Dockerfile. I believe this should not have any impact.

@tariq1890 if you have time, you can also look after https://github.com/prometheus/alertmanager/issues/1530 and check the other repositories in the @prometheus organization.

@simonpasquier I have raised similar PRs in two other prometheus repos. For the rest, I'll raise the issues and request that you label them as "good-first-issues" :)

Can this PR be merged?

@brian-brazil  @grobie . Ping!


[Spark 26524] If the application directory fails to be created on the SPARK_WORKER_DIR on some woker nodes (for example, bad disk or disk has no capacity), the application executor will be allocated indefinitely.

What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
How was this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)
Please review http://spark.apache.org/contributing.html before opening a pull request.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?


Make PubSubMessageSource typed

When writing PubSubMessageSource, I made it extend AbstractFetchLimitingMessageSource<Object>. But a message source can be typed, so it should be typed properly. Especially since we have a concept of message payload type.

I am going to close this as infeasible because we pass around an actual type as method parameter to PubSubTemplate, and keeping payloadType and parameterized type is added maintenance without any value for users.
Implementing this change would also mean not having byte[] default payload type and force users to specify type in all cases, which is a breaking change.


Revert "idp/proxy: Match users by ID instead of name by default"

This reverts commit 52951b42b0db11f652e3924ba73cec3b68666042.
The change broke authentication for at least the desktop client when using the builtin idp. There seem to be issues in the IDP (lico) which result in the implicit scoped not being added correctly in some case. When that scope is missing the lg.uuid claim will not be present in the userinfo and we can correctly match users by id.
This reverts back to the old behaviour of matching users by name. Which also brings some aspects of https://github.com/owncloud/ocis/issues/904
Fixes #6415

E2E tests failed: https://drone.owncloud.com/owncloud/ocis/22846/69/1
:boom: To see the trace, please open the link in the console ...

npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/admin-creates-group-admin-2023-6-1-06-42-57.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/admin-creates-user-admin-2023-6-1-06-56-24.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/admin-deletes-group-admin-2023-6-1-06-44-03.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/admin-user-can-change-personal-quotas-for-users-admin-2023-6-1-06-50-49.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/admin-user-can-change-personal-quotas-for-users-alice-2023-6-1-06-50-50.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/admin-user-can-change-personal-quotas-for-users-brian-2023-6-1-06-50-52.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/assign-user-to-groups-admin-2023-6-1-06-54-11.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/create-space-from-folder-alice-2023-6-1-06-58-55.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/create-space-from-resources-alice-2023-6-1-07-00-08.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/delete-user-admin-2023-6-1-06-55-18.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/edit-groups-admin-2023-6-1-06-45-10.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/edit-panel-can-be-opened-via-quick-action-and-context-menu-admin-2023-6-1-06-57-30.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/edit-user-admin-2023-6-1-06-53-05.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/list-members-via-sidebar-alice-2023-6-1-06-48-32.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/logo-can-be-changed-in-the-admin-settings-admin-2023-6-1-06-41-51.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/multiple-spaces-can-be-managed-at-once-in-the-admin-settings-via-the-batch-actions-alice-2023-6-1-06-47-24.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/spaces-can-be-managed-in-the-admin-settings-via-the-context-menu-alice-2023-6-1-06-46-17.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/unstructured-collection-of-testable-space-interactions-alice-2023-6-1-07-11-06.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/user-group-assignments-can-be-handled-via-batch-actions-admin-2023-6-1-06-51-58.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/user-login-can-be-managed-in-the-admin-settings-admin-2023-6-1-06-49-40.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/user-should-be-able-to-read-and-dismiss-notifications-alice-2023-6-1-07-03-33.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/user-should-be-able-to-read-and-dismiss-notifications-brian-2023-6-1-07-03-41.zip
npx playwright show-trace https://cache.owncloud.com/public/owncloud/ocis/22846/tracing/user-should-be-able-to-read-and-dismiss-notifications-carol-2023-6-1-07-04-44.zip

Just did a quick manual test with the desktop client. It works again now.


feat: Set defaults for empty basic secrets (#347)

If no file or data is passed while creating a basic secret then default username=username and password=password will be set.
This PR addresses #347 issue.
Checklist

[x] The title of this PR would make a good line in Acorn's Release Note's Changelog
[x] The title of this PR ends with a link to the main issue being address in parentheses, like: This is a title (#1216). Here's an example
[x] All relevant issues are referenced in the PR description. NOTE: don't use GitHub keywords that auto-close issues
[x] Commits follow contributing guidance
[x] Automated tests added to cover the changes. If tests couldn't be added, an explanation is provided in the Verification and Testing section
[ ] Changes to user-facing functionality, API, CLI, and upgrade impacts are clearly called out in PR description
[ ] PR has at least two approvals before merging (or a reasonable exception, like it's just a docs change)

Hey @cjellick, could you review this PR? It's related to your issue. Thanks!

My hope/expectation in that issue was that random values would be generated for username and password, as they are when you create a basic secret similarly in an acornfile, see: https://docs.acorn.io/authoring/secrets#basic-secrets

@cjellick Thank you for the feedback.
I have incorporated your suggested changes in the updated PR. Additionally, I noticed the comment in the code section you mentioned here, which appears to be related to generating a random username and secret from the Acornfile, as you mentioned. In response, I have implemented a new secret generation function based on that comment. Please review the changes and let me know if they meet your approval.

@pratikjagrut thank you for your interest in contributing to Acorn! These changes work well for generating default secret values in the CLI, but the issue also includes this:

So, I also want kubectl create -f secret.yaml to work where secret.yaml is
apiVersion: api.acorn.io/v1
kind: Secret
metadata:
  name: staging-db-user-credentials2
  namespace: acorn
type: basic

In order for this to work, there needs to be some logic in the api-server to generate the values there.
The api-server code is in the folder pkg/server. In particular we are interested in pkg/server/registry/apigroups/acorn/secrets. Here you will see a file called storage.go which sets up the strategy for storing Acorn secrets. We use a translation strategy, meaning, that they will be stored as CRDs internally in Kubernetes, but will go through some translation logic before being presented to the user.
It is possible to override the secret creation logic with some custom code to generate these values. If you take a look at the folder pkg/server/registry/apigroups/acorn/builds, you can see in its storage.go file that it is also using a translation strategy, but it creates another strategy to wrap around the translation strategy specifically for creation. You can see the code for that wrapper in the strategy.go file's Create function. You can use a pattern like this to generate the default values in the api-server.
Thanks again for your interest in contributing and let me know if you have any questions!


tox: coverall fails to run due to urllib3 new version

Use older version of urllib3: 1.23
The error seen on CI:
File
"/home/travis/build/nmstate/nmstate/.tox/coveralls/local/lib/python2.7/
site-packages/requests/compat.py",
line 48, in
from urllib3.packages.ordered_dict import OrderedDict

Coverage remained the same at 73.425% when pulling 596aeb410158bfd811e078339ff00bafcddf2311 on EdDev:urllib3-fixing-version into 455a772b8385c57bcf6be944770089c03a9fed0f on nmstate:master.

LGTM. How do we track that we might need to revisit this in the future to ensure that urllib3 will not become too outdated?

I do not have a good answer to that, but as this is a tooling for the CI, it is not that important.
We can just revisit this when the next thing fails :)


Customizations for running the miner as a child process in a desktop environment.

The following set of changes is needed for the Kaspa desktop application stack we are currently developing (aiming for a beta during the testnet-11 relaunch).
The changes are mainly cosmetic, isolated by the newly introduced flags:

--throttle <millis> introduces sleep between each mining round.
--altlogs results in log output in the same format as kaspad.

In addition, the project was not building on aarch64 (M1/M2), so I have removed optional from the external keccak crate dependency.  If asm is used, the library's presence should be benign and optimized away, allowing platform and feature control directly from within the rust code.  (I left originals as comments).
The purpose of the above changes is to make the miner "passive" in the execution environment, with the least impact on the CPU while still being able to mine on the testnet.  @elichai if you find that there is a better (more precise way) to throttle the miner, please let me know or implement it.  Ultimately, for testnet-11 we need to be able to throttle it from low (1%) to 100% of the CPU usage (albeit in the desktop application, both kaspad and the miner are run side-by-side).  Thread count and the throttle parameters will be controllable by the user (probably with some upper cap). The desktop app has settings controls, so when those are changed, the miner will be automatically restarted.
Alternative logs are needed for easier sanitizing and user display (using the same format makes it easier to parse both kaspad and the miner logs).  I really didn't want to touch the original code, so I just added a small formatting function triggered by the flag.  If you want this to make a permanent change, we can remove the flag.
Performance is not relevant here.  This is used for testing only.  Currently running with 1 thread and 5 msec throttling works well.
Unfortunately, I am unable to do any kind of core affinity or thread priority control due to this needing to be uniform and compatible with all operating systems (Windows, MacOS, Linux).  I might look at introducing this later at the parent process level.  That said, the throttle approach makes the miner "fire in bursts"... but I don't think there is an easy way around that.
Please review and fast-track the PR for publishing on crates.io as we are currently integrating from my fork, which requires additional steps for any developer interested in building the desktop stack.  Once these changes are on crates.io, it will simplify the process, removing the requirement for having 2 repos (kaspad and the miner).
Down the road, I aim to make another PR that will expose this crate as a lib, so that it can be usable for integration testing.  Throttling will also help with this by ensuring that the miner acts passively and doesn't consume resources.  (The integration testing is needed for powering up a temporary network and issuing transactions as well as monitoring node activity using a variety of RPC calls from WASM libraries).

Master has been merged into this PR.

The speed at which this has been handled is not acceptable.  I will be forking the project.

I will rebase + squash this and merge, as I don't want the merge commits here modifying the history


Gaze Estimation termination issue

When introduced a parallel implementation of Gaze Estimation example, we started to see the issues with thread termination, leading to unexpected console errors or even crash dialogs to appear.
Examples:

File "main.py", line 312, in
Main().run()
File "main.py", line 302, in run
if cv2.waitKey(1) == ord('q'):
KeyboardInterrupt
Assertion failed: (pthread_mutexAssertion failed: (pthread_mutex_destroy(mutex) == 0), function _lock(mutex) == 0), function usbusbi_mutex_destroy, file ./os/thi_mutex_lock, file ./os/threads_reads_posix.h, line 58.
posix.h, line 46.
zsh: abort python3 main.py -cam

... FYI when I use the 'q' to exit the application. My quick suggestion is to properly join the threads and exit them when user pressed 'q' or ctrl+c.

python3: io.c:2115: handle_events: Assertion `ctx->pollfds_cnt >= internal_nfds' failed.
Aborted (core dumped)

When the time permits, we should investigate these error messages and handle them properly, as it can also affect other examples

Update from the investigation into this:

Initial tests show that the abort issue doesn't pop up when using libusb 1.0.23 vs the latest 1.0.24
I presume that XLink (or our usage of it) doesn't use libusb correctly and it gets into a state where an assert fails.
Also it might be that this assert was added from 1.0.23 -> 1.0.24 - which shows this incorrect state. Will check this now

Wow! Nice... =D! <3 Love you guys going deep into it so quickly! I cannot fix it unfortunately unless I have your brain :P

@raymondlo84 together with @themarpe we were able to solve this issue, more info here - https://github.com/luxonis/depthai-experiments/pull/57

It appears that I closed it automatically when I merged the PR. @raymondlo84 if it happens not to be resolved, please feel free to reopen

FPS: 29.99
Assertion failed: (pthread_mutexAssertion failed: (pthread_mutex_destroy(mutex) == 0), function _lock(mutex) == 0), function usbusbi_mutex_destroy, file ./os/thi_mutex_lock, file ./os/threads_reads_posix.h, line 58.
posix.h, line 46.
zsh: abort      python main.py -cam
I got it on the Mac today still.

@raymondlo84 fix for this is underway to library - will let you know once ready:)


Translate August 14 sit-rep into Portuguese

Greetings @nextstrain/portuguese,
It’s really great to work with you again after a long situation report hiatus.
Our August update on genomic epidemiology of COVID-19 is ready to be translated to Portuguese. This is just a one-off situation report, and we are not planning to resume weekly situation reports at this time. Translation of this report is less time sensitive than previous ones, so feel free to take a bit longer on the translation. I won’t be available for much of the weekend, so may not be able to publish it until Sunday anyway.
Branch to translate on: sit-rep_pt
File to translate: https://github.com/nextstrain/translations/blob/sit-rep_pt/narratives/translations_ncov_sit-rep_pt_2020-08-14.md. You can translate directly in this file, but please remember to push often.
Link to preview: https://nextstrain.org/community/narratives/nextstrain/translations@sit-rep_pt/ncov/sit-rep/pt/2020-08-14
Please translate the Twitter post below too :)
Thank you so much! Sending warm, safe thoughts to you and your loved ones and hoping for wisdom in our respective leaders.
Take care,
Cassia
Twitter post
Check out our August report on COVID-19 genomic epidemiology in Portuguese. In it, we explore the global spread of the virus broadly and provide specific updates for each world region.
Thank you to @, @, and @ for their rapid translation!
Logistics
Please update the translations board as you work on the translation: https://github.com/orgs/nextstrain/projects/7
Please assign yourself to the translation if you’re working on it this week.
When a translation is ready for publication -- at minimum meaning two people have worked on it and both agree that it’s ready -- please create a pull request to merge to master and tag me and the issue in it!
Discussion board for your team is here: https://github.com/orgs/nextstrain/teams/portuguese
Standard rules for translation:
Note that the file to translate is in Markdown. In general, it is important not to change any formatting or links. Feel free to update internal links to refer to the Portuguese version of the narrative(s). I can also update those when I publish it though.
Please keep the number of and text for Table of Contents links the same in your translation as in the English narrative.
Please add your name under translators: with new line, tab, and dash, formatted just like authors are. Please also add a link to your professional page (can use Twitter) under translatorLinks:.
Note: You may know of other great resources available in Portuguese; please don’t add them to the situation report. We need to keep content the same across all translations, so we can be confident in the accuracy.
At minimum, I require two sets of eyes on every translation; one of those people should have a background in phylogenetics. Although if you have more, that’s fine too.

Ok Cassia, I got this one ;)

Hello people! The translation is ready for review. Here is the twitter post:
Confira nosso relatório de agosto sobre epidemiologia genômica do COVID-19 em português. Nele, exploramos a propagação global do vírus de forma ampla e fornecemos atualizações específicas para cada região do mundo.
Obrigado a  @amadotalita , @, and @ pela rápida tradução!

Thank you, Talita.
I'll read and review it now.
Cheers,
Anderson Brito
On Sun, 16 Aug 2020 at 21:08, Talita Amado<EMAIL_ADDRESS>wrote:

Hello people! The translation is ready for review. Here is the twitter
post:
Confira nosso relatório de agosto sobre epidemiologia genômica do COVID-19
em português. Nele, exploramos a propagação global do vírus de forma ampla
e fornecemos atualizações específicas para cada região do mundo.
Obrigado a @amadotalita https://github.com/amadotalita , @, and @ pela
rápida tradução!
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nextstrain/translations/issues/225#issuecomment-674606931,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAWEXDXLBDXJ7EW5KYKIRETSBB7JFANCNFSM4P7V62CA
.

Hi,
I reviewed up to the 'South America' section, but the remaining pages are
still in English.
I've extended the translation further, to finish the South America section,
but stopped to check if maybe Talita has that part already translated (but
not uploaded yet).
Talita, do you happen to have the rest of the text in your computer?
If not, let me know if you want help finishing that part: I can move on
with the translation this morning/afternoon.
Best,
Anderson Brito
On Sun, 16 Aug 2020 at 22:40, Anderson Brito<EMAIL_ADDRESS>wrote:

Thank you, Talita.
I'll read and review it now.
Cheers,
Anderson Brito
On Sun, 16 Aug 2020 at 21:08, Talita Amado<EMAIL_ADDRESS>wrote:

Hello people! The translation is ready for review. Here is the twitter
post:
Confira nosso relatório de agosto sobre epidemiologia genômica do
COVID-19 em português. Nele, exploramos a propagação global do vírus de
forma ampla e fornecemos atualizações específicas para cada região do mundo.
Obrigado a @amadotalita https://github.com/amadotalita , @, and @ pela
rápida tradução!
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nextstrain/translations/issues/225#issuecomment-674606931,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAWEXDXLBDXJ7EW5KYKIRETSBB7JFANCNFSM4P7V62CA
.

Ok, I just send the rest of the translation. Sorry about that!
Cheers,
T.

Done! Thank you, Talita.
Cassia, it is now ready for posting.
Best,
Anderson Brito
On Mon, 17 Aug 2020 at 10:57, Talita Amado<EMAIL_ADDRESS>wrote:

Ok, I just send the rest of the translation. Sorry about that!
Cheers,
T.
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nextstrain/translations/issues/225#issuecomment-674931917,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAWEXDXCOQLBKPFKF23NN2LSBFAPBANCNFSM4P7V62CA
.

Published and tweeted: https://nextstrain.org/narratives/ncov/sit-rep/pt/2020-08-14
Thanks for the hard work Talita and Anderson!


Remove Garbage

@NIXKnight why revert all the security group 4.x related changes?

@nitrocode I intended to do it in my own fork of the repo, just for my personal (concept) use case. But I accidentally create the PR in the main repo. I apologize.
In my case I am managing security groups using a separate module. I would like to not create a redundant security group for EFS using this module. Hence I made this change to my own fork.
However, before I made the change in my fork, I accidentally created this PR in the main repo. I apologize.

@NIXKnight if you use the latest version here, you can set create_security_group = false to disable the sg resource within the module and use a sg module from outside this module, no ?

@nitrocode I took some time to study the module. That's a good option you have mentioned. I will use the latest release of the module. Thanks.


Cannot invoke method split() on null object

The test passed without any problem, but the build failed at the end with Exception: java.lang.NullPointerException: Cannot invoke method split() on null object
job link
00:01:47.727  TEST TARGETS SUMMARY
00:01:47.727  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00:01:47.727  PASSED test targets:
00:01:47.727  	criu_pingPerf_testCreateRestoreImageAndPushToRegistry_0
00:01:47.727
00:01:47.727  TOTAL: 1   EXECUTED: 1   PASSED: 1   FAILED: 0   SKIPPED: 0
00:01:47.727  ALL TESTS PASSED
00:01:47.727  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
...
00:02:06.485  [WS-CLEANUP] Deleting project workspace...
00:02:06.509  [WS-CLEANUP] Deferred wipeout is disabled by the job configuration...
00:02:07.476  [WS-CLEANUP] done
[Pipeline] sh
00:02:08.283  + find /tmp -name '*core*' -print -exec rm -f '{}' ';'
00:02:08.283  + true
[Pipeline] }
[Pipeline] // timeout
[Pipeline] echo
00:02:08.442  Exception: java.lang.NullPointerException: Cannot invoke method split() on null object
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // timestamps
[Pipeline] End of Pipeline
Finished: FAILURE

It looks like the code works with the following case:
00:03:31.814  TOTAL: 3   EXECUTED: 3   PASSED: 3   FAILED: 0   DISABLED: 0   SKIPPED: 0
There is no DISABLED in the description above.
I believe the issue due to https://github.com/adoptium/aqa-tests/blob/master/buildenv/jenkins/JenkinsfileBase#L700
https://github.com/adoptium/aqa-tests/blob/master/buildenv/jenkins/JenkinsfileBase#L703
@renfeiw could you please take a look?


[RFR][WIP] Api keys

CLI creation etc -

Creation

$ st2 apikey create -u manas -m '{"used_by": "webhook1"}'
+----------+--------------------------------------------------------------+
| Property | Value                                                        |
+----------+--------------------------------------------------------------+
| id       | 55f27e8232ed35674529da72                                     |
| key      | MGY0ZDE3MDdjYTMzZmUxZTU2NDI3OTE1MWNlYTc4NWZiODIxZWI4Njc1ZWEw |
|          | ODI0ODA0MGM3YTI5NTlhNmI4Nw                                   |
| metadata | {                                                            |
|          |     "used_by": "webhook1"                                    |
|          | }                                                            |
| user     | manas                                                        |
+----------+--------------------------------------------------------------+

Listing

$ st2 apikey list
+--------------------------+-------+---------------------------+
| id                       | user  | metadata                  |
+--------------------------+-------+---------------------------+
| 55f27d2532ed35617d31c725 | manas | {}                        |
| 55f27e8232ed35674529da72 | manas | {u'used_by': u'webhook1'} |
+--------------------------+-------+---------------------------+

Get by ID

$ st2 apikey get 55f27e8232ed35674529da72
+----------+---------------------------+
| Property | Value                     |
+----------+---------------------------+
| id       | 55f27e8232ed35674529da72  |
| user     | manas                     |
| metadata | {                         |
|          |     "used_by": "webhook1" |
|          | }                         |
| key      | ********                  |
+----------+---------------------------+

Get by API key

$ st2 apikey get MGY0ZDE3MDdjYTMzZmUxZTU2NDI3OTE1MWNlYTc4NWZiODIxZWI4Njc1ZWEwODI0ODA0MGM3YTI5NTlhNmI4Nw
+----------+---------------------------+
| Property | Value                     |
+----------+---------------------------+
| id       | 55f27e8232ed35674529da72  |
| user     | manas                     |
| metadata | {                         |
|          |     "used_by": "webhook1" |
|          | }                         |
| key      | ********                  |
+----------+---------------------------+

delete

$ st2 apikey delete 55f27e8232ed35674529da72
Resource with id "55f27e8232ed35674529da72" has been successfully deleted.

TODO
- [ ] docs
- [ ] usage in API as a token
- [ ] tests for API usage

The user flow here seems like:

user authenticates and requests an API key, if has permissions to do so.
with the API key, user can ... (looks like: "authenticate as the "user"; and apply the same RBAC that he has?
user can view or delete his keys (+1 for hash idea but don't have knowledge based opinion here, just follow what Github is doing is fine IMO)
admin can view all the keys, see which user they belong to, and delete them at will.
there's no expiration on API keys.

With this in mind, questions:

check that non-priviledged user can't see all the keys (note to @Kami: we probably should separate superuser and admin as out-of-box roles, default admin is getting dangerous).
need CLI :)
what do I do if I only want to give access to webhooks, or to a webhook? Is it much better from creating webhook_user with given username/password? @DoriftoShoes what do you think?

The user flow here seems like:

Yes. That is the flow. Still working on realizing this so it is a WIP.

With this in mind, questions:

check that non-priviledged user can't see all the keys (note to @Kami: we probably should separate superuser and admin as out-of-box roles, default admin is getting dangerous).

RBAC permissions should apply out of the box. For now user with ability to view keys can see all keys

need CLI :)

In the works.

what do I do if I only want to give access to webhooks, or to a webhook? Is it much better from creating webhook_user with given username/password? @DoriftoShoes what do you think?

Create an API key and "assign" to webhook(s).
It is certainly much better than webhook_user -

not all webhooks will support basic_auth or some form of supplemental headers.
spreading plain-text passwords around is pretty risky and definitely less secure. Plus we take up some of the management making it simpler for users of our system in general.

Code mostly done. Still working on TODOs so left in WIP but it is definitely ready for review.


create a new column on existing dataframe

I wonder if one could create a new column on existing dask dataframe
In [1]: %paste
In [1]: import pandas as pd

In [2]: import dask.dataframe as dd

In [3]: t0=pd.DataFrame({'v0':[i for i in range(1000000)]})

In [4]: t0['v1']=[i for i in range(1000000)]

In [5]: t0.head()

## -- End pasted text --
Out[1]:
   v0  v1
0   0   0
1   1   1
2   2   2
3   3   3
4   4   4

In [2]: t0_d = dd.from_pandas(t0, npartitions=10)

In [3]: t0_d['v2']=[i for i in range(1000000)]

In [4]: t0_d.head()
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-4-4b106fba7c25> in <module>()
----> 1 t0_d.head()

/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/dask/dataframe/core.py in head(self, n, compute)
    380
    381         if compute:
--> 382             result = result.compute()
    383         return result
    384

/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/dask/base.py in compute(self, **kwargs)
     84             Extra keywords to forward to the scheduler ``get`` function.
     85         """
---> 86         return compute(self, **kwargs)[0]
     87
     88     @classmethod

/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/dask/base.py in compute(*args, **kwargs)
    177         dsk = merge(var.dask for var in variables)
    178     keys = [var._keys() for var in variables]
--> 179     results = get(dsk, keys, **kwargs)
    180
    181     results_iter = iter(results)

/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/dask/threaded.py in get(dsk, result, cache, num_workers, **kwargs)
     55     results = get_async(pool.apply_async, len(pool._pool), dsk, result,
     56                         cache=cache, queue=queue, get_id=_thread_get_id,
---> 57                         **kwargs)
     58
     59     return results

/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/dask/async.py in get_async(apply_async, num_workers, dsk, result, cache, queue, get_id, raise_on_exception, rerun_exceptions_locally, callbacks, **kwargs)
    482                 _execute_task(task, data)  # Re-execute locally
    483             else:
--> 484                 raise(remote_exception(res, tb))
    485         state['cache'][key] = res
    486         finish_task(dsk, key, state, results, keyorder.get)

ValueError: Length of values does not match length of index

Traceback
---------
  File "/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/dask/async.py", line 267, in execute_task
    result = _execute_task(task, data)
  File "/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/dask/async.py", line 249, in _execute_task
    return func(*args2)
  File "/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/dask/compatibility.py", line 47, in apply
    return func(*args, **kwargs)
  File "/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/dask/array/core.py", line 2087, in partial_by_order
    return function(*args2, **kwargs)
  File "/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/dask/dataframe/core.py", line 2047, in _assign
    return df.assign(**kwargs)
  File "/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/pandas/core/frame.py", line 2527, in assign
    data[k] = v
  File "/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/pandas/core/frame.py", line 2357, in __setitem__
    self._set_item(key, value)
  File "/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/pandas/core/frame.py", line 2423, in _set_item
    value = self._sanitize_column(key, value)
  File "/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/pandas/core/frame.py", line 2578, in _sanitize_column
    value = _sanitize_index(value, self.index, copy=False)
  File "/home/SECDEV.LOCAL/akravchenko/anaconda3/lib/python3.5/site-packages/pandas/core/series.py", line 2770, in _sanitize_index
    raise ValueError('Length of values does not match length of ' 'index')

Dask only supports adding new columns as dd.Series objects. Adding data that already exists in memory shouldn't be a common use case, as dask is meant for out-of-core/distributed data. We should probably add a check so this errors on the assignment (with a good error message).

The use case I am thinking about is shown below as a pseudocode
## use wild star to read a stack of bcolz files
stack_of_files_dd = dd.from_bcolz('stack_of_files_*.bcolz', chunksize=1000000, lock=False)

## add 'global_id' column to the existing dask dataframe
stack_of_files_dd['global_id'] = [i for i in range(stack_of_files_dd.divisions+1)]

## select only few variables to query data
slim_stack_to_query_dd =  stack_of_files_dd[['global_id', 'used_var1',  'used_var2',..., 'used_var20']]

## run_query(various joins and cuts) on slim_stack_to_query_dd
skimmed_dd = run_query(slim_stack_to_query_dd)

## in-memory sort by 'used_var1',  'used_var2' in pandas
skimmed_and_sorted = skimmed_dd[['global_id', 'used_var1',  'used_var2']].to_pandas().sort(...)

## once all done, join selected rows with the former stack_of_files_dd on 'global_id'
dd.merge(stack_of_files_dd, skimmed_and_sorted[['global_id']], on='global_id', how='inner')[keep_columns_list].to_hdf('skimmed_data.h5','/skim')

P.S. If a single new column does not fit in-memory, could we append it (to existing dask dataframe) chunk by chunk from disk or just throw a good error message?

stack_of_files_dd['global_id'] = [i for i in range(stack_of_files_dd.divisions+1)]

divisions is a tuple, so that won't actually work. If you mean npartitions, then the added column won't have the proper length (it'd be as long as the number of partitions, not the length of the data). Since there's no way to know the total length of a dataframe (and dask.dataframe is intended for data that you wouldn't want to all have in memory on a single computer anyway) I don't think we should support assignment of an in-memory column.
I assume what you want is a different id for data in each file in the glob. One way to do this would be to assign an id by broadcasting a scalar (as done in pandas):
df['global_id'] = 12345

So your code would then be:
frames = []
for i, file in enumerate(glob('stack_of_files_*.bcolz')):
    df = dd.from_bcolz(file, chunksize=1000000, lock=False)
    df['global_id'] = i
    frames.append(df)

df = dd.concat(frames)

This is currently supported, and should work fine.

P.S. If a single new column does not fit in-memory, could we append it (to existing dask dataframe) chunk by chunk from disk or just throw a good error message?

If you have a single new column that doesn't fit in memory, create it as a dask.Series, and assign it the normal way (df['col'] = some_dask_series).

There was a typo (fixed now). Though I am not sure I understand 'Since there's no way to know the total length of a dataframe':
In [1]: import dask.dataframe as dd

In [2]: import bcolz

In [3]: N=int(1e7)

In [4]: ct=bcolz.fromiter(((i,i) for i in range(N)), dtype="i8,i8",count=N, rootdir='foo.bcolz')

In [5]: ct_table = dd.from_bcolz('foo.bcolz', chunksize=1000000, lock=False)

In [6]: ct_table.divisions[-1]+1
Out[6]: 10000000

Dask dataframes keep their index divisions as metadata (the divisions attribute). The last element in divisions (if they are known) may be length, but it doesn't have to be. Example:
In [22]: df = pd.DataFrame({'a': range(5)}, index=[1, 1, 1, 2, 3])

In [23]: ddf = dd.from_pandas(df, npartitions=2)

In [24]: ddf.divisions
Out[24]: (1, 2, 3)

If the divisions are both known and known to be monotonically increasing, then you could create an index out-of-core using da.arange (to create an index), and dd.from_dask_array to convert to a series.
In [27]: df = pd.DataFrame({'a': map(float, range(100)), 'b': range(100, 200)})

In [28]: ddf = dd.from_pandas(df, npartitions=5)

In [29]: import dask.array as da

In [30]: a = da.arange(ddf.divisions[-1] + 1, chunks=ddf.divisions[1:])

In [31]: ddf['id'] = dd.from_dask_array(a)

In [32]: ddf.head()
Out[32]:
     a    b  id
0  0.0  100   0
1  1.0  101   1
2  2.0  102   2
3  3.0  103   3
4  4.0  104   4

Reiterating, this is only valid if you know the divisions are representative of the length.

Reiterating, this is only valid if you know the divisions are representative of the length.

right, that's my use case
P.S. For other cases I would do something like ddf.count().compute()[0] to get a total length of dask dataframe.

P.S. For other cases I would do something like ddf.count().compute()[0] to get a total length of dask dataframe.

Yes, that also works, but it can't be done without computing the graph up to that point, which is best to avoid if possible.
Does this solve your issue?

Yes, that also works, but it can't be done without computing the graph up to that point, which is best to avoid if possible.
right, I could run it as a subprocess and wait until it's finished, and then start a real computing with dask.

Does this solve your issue?
yep, thanks alot for discussion, it was helpful!

I think this issue is related to the problem I am experiencing. I have the following python code using pandas:
import pandas as pd
import numpy  as np

time = np.linspace(0, 10, 101)
x = np.sin(time)
df = pd.DataFrame(x, index=time)

window_ = 5
df['__group__'] = np.arange(len(df)) // window_
df.groupby('__group__')

Basically I create a column group in order to make the groupby on consecutive elements.
Using a dask data frame instead directly does not work: TypeError: Column assignment doesn't support type ndarray which I can understand. I have tried to create a dask array instead but as my divisions are not representative of the length I don't know how to determine the chunks.
Is there any way to create a new column like the one I want? Is that even possible?

It probably isn't the fastest, but
df['group'] = df['group'].assign(__group__ = laaambd x: np.arange(len(x)) // window_)

may work for you.

Finally this one worked for me:
df = df.assign(__group__=lambda x: np.arange(len(x)) // window_)
thanks a lot!

Convert list to pd.Series, and then assign the series. The below code should work:
t0_d['v2'] = pd.Series([i for i in range(1000000)])


Add PhoneNumber type

Change Summary
Adds a PhoneNumber type, validated using the phonenumbers (https://pypi.org/project/phonenumbers/) library.
Checklist

[x] Unit tests for the changes exist
[ ] Tests pass on CI and coverage remains at 100%
[x] Documentation reflects the changes where applicable
[x] changes/<pull request or issue id>-<github username>.md file added describing change
(see changes/README.md for details)

Humm I'm not sure about this.
Please create an issue to discuss this and get feedback from others before we do more work on this PR.

@garry-jeromson @samuelcolvin The related issue has quite a lot of success. I reckon we should keep working on this then

Yeah, I'm game. The only outstanding question for me is the generally strategy/approach when it comes to using third-party libraries for data validation; what criteria need to be fulfilled, what should be avoided, etc.

closing this until we have some input from others on how phone numbers should work.
Happy to re-open once we agree or consider a new PR.


attempt to train sae for othello-gpt model

Summary
Added two notebook files:
own_othello_gpt.ipynb: In this notebook, I train and use my own model which I added to the official names list in TransformerLens. However, I encounter an error as it does not seem to be in the right HuggingFace format.
baidicoot_othello_gpt.ipynb: In this notebook, I use the model "Baidicoot/Othello-GPT-Transformer-Lens," which is in the official models list but does not have a tokenizer, thus giving an error. As a workaround I commented out a few lines in the SAE Lens train function. Now training works, but the training times are long so I have not verified if the resulting SAE makes sense. I am unsure whether this approach is correct, and want to verify this in case I manage to get my own model in the right format and I will have to do the same workaround.

@jbloomAus this may be something that is split across SAELens and TransformerLens. @thijmennijdam sent me a message on Slack today in regards to his project. I asked him to open a PR with the changes he made to get his project running, so that I could look at it further. Further context with his original message...
I am Thijmen, a MSc AI student from the University of Amsterdam. I am currently working on a mechanistic interpretability project and want to use SAE Lens on my own Othello-GPT models. I have explored the codebase but am having trouble adding my own models. It seems like the models need to be part of the official list in TransformerLens.
I trained my model using TransformerLens, uploaded it to Huggingface, and added it to the official list. This approach seems to work. However, I encountered errors related to my model not having a tokenizer when training with SAELens. I commented out these lines since I believe a tokenizer isn't necessary for Othello games, given the small vocabulary which can be hardcoded. With these changes, my SAE seems to be training now. However, I am a bit unsure if the method I am using for this is too hacky and if this approach will lead to more errors further down the line or if this is fine.
Is this the recommended approach for adding custom GPT models, or is there a better method? I am just familiarizing myself with the repository and would greatly appreciate some confirmation on the approach I am currently taking.

Two questions for SAELens people... For a model to be completely compatible from TransformerLens, to SAELens, is there a set of requirements, even beyond what he found that we should be verifying to ensure compatibility? Second, is his solution of skipping the tokenizer, if it is not there, something that should be allowed on SAELens to ensure that TransformerLens models without tokenizers can be used in SAELens, or is that going to create more problems downstream?

Sorry for the delay.

train time is probably mis-estimated if you are using code where we weren't updating the progress bar correctly. If you pull that might look more reasonable.
the main current assumes it is getting a model from TransformerLens but we should create an option to load a model locally. This creates reproducibility challenges so we should work out what the config should say if this is the case. maybe "local-model" or something.

Commenting lines out to get it working seems good. Let me know if you're still stuck on this. Can message me on OSMI slack as well. OthelloGPT SAEs can be trained in < 10 minutes (vanilla training method circa towards monosemanticity). I can try to debug if you are having trouble.


Move 'magic strings' into environment variables

This is a follow-up to feedback on my PR related to project alerting. Sean mentioned that these are basically magic URLs:
export const MS_TEAMS_URL = 'http://rancher-alerting-drivers-prom2teams.cattle-monitoring-system.svc:8089/v2/connector';

He said we should organize URLs in a place that makes more sense, such as environment variables. https://github.com/Sean-McQ/dashboard/pull/1#discussion_r856617901

Update: We are planning to change this so that instead of showing the same hardcoded URL for everyone, we will dynamically check to see if the Rancher alerting drivers service is installed.
If the service exists, we will provide a link to the actual service that exists, which may be in a different namespace than the hardcoded link. This enables project owners to have access to the functionality in spite of not having access to the cattle-monitoring-system namespace.
If the service does not exist, we won't provide a URL.

Can document the behaviour for 2.6.5 for now and fix in 2.6.6+

@catherineluse to sync with @btat. There's one field that you can't add text to and there's one link that brings up a blank page (items to be filed).

Update: For the field you can't add text to, I couldn't reproduce the error. And there is a bug fix for the error about the blank page that was just merged. So I'd say that doesn't need to be called out after all.

Can't work on this until a routing bug is fixed

This is unblocked now.
Also, if we want to officially support the alerting drivers for project monitoring, we have to document that you will need to use the fullNameOverride value to prevent a naming conflict with any other installations of the helm chart that are also in the same cluster.
Arvind said:

I think you can resolve it by providing fullnameOverride to the values.yaml of the deployed chart (both to the main chart and the subcharts), that should create these resources using the provided release name instead

I'm thinking this could be moved to the icebox because it was never officially confirmed that the alerting drivers are supported for project monitoring. Until that is confirmed, I think other work would take higher priority.

Closing as a duplicate of https://github.com/rancher/dashboard/issues/2651


HTML page for doctor website

Sorry, I think you're contributing to the wrong repo.
This does not match the Raccoonatouille theme or website purpose.


Build for deploy

support building the OIDC example to static files that can be hosted without needing to run the express server.
extracts configuration to a separate file that is overwritten from env variables when building. updated docs to cover both ways of doing things: local serving & building to static files.

Sweet!!!


Fix Segfault in Chokidar tests

Something is still off. It seems the chokidar tests now don't run to completion. I'm investigating.
If someone else (@bnoordhuis / @es128  / @paulmillr ?) could take a second look I'd really appreciate it.

It's a complicated issue — see https://github.com/paulmillr/chokidar/commits/master.
Very hard to fix the tests. Unsure what's going on here...

(Current plan is to finalize this over XMas and release as 2.x. When that's done and all tests are passing, I'll put in a PR to chokidar. )


Auto genrate the contract bindings.

The bindings now use Tellor.sol and TellorGettes.sol. Generated
into packages called Tellor and TellorGetters respectively.
Added makefile target to download latest contracts from tellor core
repo and another makefile target to generate the bindings. Run make help to see all commands
moved contracts from folder abi to folder contracts as this is
the default location for buidler and will be easier later with the
tests.
as part of updating the go bindings needed to update few golang
dependencies packages

TODO:

[ ] make build should not download solc every time

Signed-off-by: Krasi Georgiev<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build 316521679

19 of 88 (21.59%)  changed or added relevant lines in 15 files are covered.
3 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.02%) to 37.045%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/rpc/client.go
0
1
0.0%

pkg/tracker/currentVariables.go
1
2
50.0%

pkg/pow/solutionHandler.go
0
3
0.0%

pkg/tracker/runner.go
0
3
0.0%

pkg/ops/transferOps.go
0
4
0.0%

pkg/tracker/newCurrentVariables.go
0
6
0.0%

pkg/ops/stakeOps.go
0
7
0.0%

pkg/rpc/abiCodec.go
10
18
55.56%

pkg/rpc/contractRPC.go
0
8
0.0%

pkg/ops/disputeOps.go
0
13
0.0%

Files with Coverage Reduction
New Missed Lines
%

pkg/rpc/contractRPC.go
1
0%

pkg/tracker/currentVariables.go
2
59.68%

Totals

Change from base Build 312315825:
-0.02%

Covered Lines:
1627

Relevant Lines:
4392

💛  - Coveralls


No linear form in Tesla miniapp?

I'm looking at the Tesla miniapp, and I notice that the current source term is not treated with a linear form object, but instead through these code snippets:
BilinearFormIntegrator * hCurlMassInteg = new VectorFEMassIntegrator;
hCurlMassInteg->SetIntRule(ir);
hCurlMass_      = new ParBilinearForm(HCurlFESpace_);
hCurlMass_->AddDomainIntegrator(hCurlMassInteg);

jr_->ProjectCoefficient(*jCoef_);

// Compute the discretely divergence-free portion of jr_
DivFreeProj_->Mult(*jr_, *j_);

// Compute the dual of j_
hCurlMass_->AddMult(*j_, *jd_);

Is this process equivalent to using a VectorFEDomainLFIntegrator constructed with the coefficient jCoef?
If it is equivalent, is there no way to ensure that the current source is divergence free using the VectorFEDomainLFIntegrator, and thats why this approach is taken?

Hi, @tuckerbabcock ,
Using the VectorFEDomainLFIntegrator with a LinearForm object would be equivalent to projecting a coefficient onto a GridFunction object and then multiplying this object by a mass matrix.  As you suspect, making the linear form divergence free is the crucial step here and does require an approach like this.  The reason is that the divergence free projection requires a global solve and LinearForm objects only compute integrals locally within each element.
Best wishes,
Mark

Hi Mark,
Thanks for the reply, that make sense.
Thanks!

Hi @mlstowell,
I had another question related to this I thought you could help with. My goal is to use this divergence free current vector with a nonlinear curl-curl integrator I wrote and Newton's method to solve the nonlinear problem. I tried accomplishing this with newton_solver.Mult(*current_vec, *A); where current_vec is the divergence free current vector, and A is my grid function for the magnetic vector potential, and I've set newton_solver's operator to be the nonlinear form. I've also told the nonlinear form about the essential degrees of freedom by:
ess_bdr.SetSize(mesh->bdr_attributes.Max());
ess_bdr = 1;
Array<int> ess_tdof_list;
h_curl_space->GetEssentialTrueDofs(ess_bdr, ess_tdof_list);
res->SetEssentialTrueDofs(ess_tdof_list);

where res is the NonlinearForm, which I think is straightforward.
I realized that nowhere have I set/accounted for the essential degrees of freedom for the current vector, and I'm not sure where/how I can do it.
I believe that the BilinearForm::FormLinearSystem method would to handle this for a bilinear form, (as done by the Tesla miniapp), but since I have a nonlinear form I don't see an obvious analog. Do you know how to best proceed?
Thanks,
Tucker

Hi, @tuckerbabcock ,
I'm not as familiar with our NonlinearForms but you raise an excellent question.  The NewtonSolver takes a linear algebra based view point so it knows nothing of boundary conditions.  It simply solves a sequence of linearized problems.  Setting essential boundary conditions alters the rhs vector using the boundary values and matrix entries so the rhs vector becomes a function of the matrix which in turn has some nonlinear dependance on the field.  This suggests that the rhs vector becomes part of the non-linear form.
I would suggest that you incorporate the current_vec into your NonlinearForm so that the Mult method computes F(A)=Curl(mu^{-1}CurlA) - J and the NewtonSolver solves F(A)=0.  In this setup the NonlinearForm::GetGradient method can create the curl curl matrix and apply essential BCs to both the matrix and its internal copy of current_vec.  I'm not entirely sure this will work because the essential BCs will somehow need to be enforced within the NonlinearForm::Mult method but I think we're on the right track.
I think @jamiebramwell has had much more experience with these issues than I have.  Perhaps she can offer her insights.
Best wishes,
Mark

So, if you look at the NonlinearForm::Mult and NonlinearForm::GetGradient they enforce the essential boundary conditions that are located at the locations supplied by res->SetEssentialTrueDofs(ess_tdof_list); .
You can find the specific lines for Mult here: https://github.com/mfem/mfem/blob/master/fem/nonlinearform.cpp#L221-L230 and then GetGradient here: https://github.com/mfem/mfem/blob/master/fem/nonlinearform.cpp#L359-L371 . It appears that the BilinearForm does something similar when it set-up the linear system of equations to solve.
ParNonlinearForm also has similar lines of codes in the Mult and GetGradient definitions as well.
I don't have too much experience of using the NonlinearForm and enforcing the essential boundary conditions outside of my uses in ExaConstit. However, I know that in there we also make sure to apply the boundary conditions before starting our Newton Raphson solve for a given time step. Other that we don't have to do anything to make sure they're getting properly enforced outside of the original call of SetEssentialBC on our ParNonlinearForm object.

The NonlinearForm::Mult method sets the essential dofs on the output vector to zero, so for the Newton solve newton_solver.Mult(*current_vec, *A); you just need to zero-out the essential dofs in the r.h.s. vector, *current_vec, e.g. using Vector::SetSubVector(const Array<int> &dofs, const double value). On the other hand, the essential dofs in the input vector of NonlinearForm::Mult are important and have to be set appropriately. For the Newton solver, this means that the initial guess, *A, has to contain the correct essential dofs - this can be done with a method like GridFunction::ProjectBdrCoefficent.
Does this answer your question?

Thanks @mlstowell, @rcarson3, and @v-dobrev. I think that answers my question. I have also found the method NonlinearForm::SetEssentialBC(const Array<int> &bdr_attr_is_ess, Vector *rhs), which I believe performs the equivalent of using Vector::SetSubVector(const Array<int> &dofs, const double value) to zero-out the r.h.s. vector, *current_vec, and seems to be the most straightforward way to handle this, is that correct @v-dobrev?
Thanks so much,
Tucker

Yes, NonlinearForm::SetEssentialBC with a given r.h.s. vector should work too.

Thank you for the help.

Are you by any chance setting newton_solver.iterative_mode to false?

I am, should I not?

Setting newton_solver.iterative_mode to true seems to have resolved my boundary condition issue. Thank you so much for you help.

Yes, you should keep newton_solver.iterative_mode  equal to true (which is the default value).
When set to false, the first thing the Mult method of the newton_solver will do is to initialize the output vector (the *A vector in your case) with zeroes.
One thing to keep in mind is that with iterative_mode == true, one has to initialize all entries of the output vector. In your case, you probably need to do *A = 0.0; before calling ProjectBdrCoefficientTangent since the latter will only modify entries on the boundary that correspond to boundary attributes marked in the ess_bdr array. In particular, the interior DOFs will not be touched.


V0.0.3

Track the next release

@andrewilyas I'm down to freeze v0.0.3 with what's there. Do you mind run the test in your env just to make sure nothing got destroyed and merge if everything goes well ? I'll handle the publication to pipy

Running the tests!

Oh I already had released it as a release candidate are these commits supposed to join them. Should I make an RC2?


Increase the size of logo in the header

Propose a solution to handle different sizes of logo in the header. The logo should maintain the original aspect ratio.
You can have a look at the current solution here
https://github.com/fossasia/open-event-webapp/blob/c31ad5b69152c21a828e21b14b9f62abb893d370/src/backend/dist.js#L157

Is this issue open??

please close this issue, if it is already merged.

This issue is been tackled as part of other design related issues. Thanks

Closed by mistake as I realized I was referring to the wrong subproject.


GOOD-141: Upgrade reablocks and tooltip theme

PR Checklist
Please check if your PR fulfills the following requirements:

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Documentation content changes
[x] Other... Update lib version of dependency

What is the current behavior?

Issue Number: N/A
What is the new behavior?
Reaviz using Reablocks 6.x
Does this PR introduce a breaking change?
[ ] Yes
[x] No

Other information

@amcdnl no, I just define theme for Tooltip and it is working, that only one component which used from reablocks


Make the feedback form a draggable modal so the user can view their work environment when reporting feedback

Issue:
Currently, the feedback form is a fixed page. It should be a draggable feedback form.
DoD:
The feedback form is moveable.
Details:
v0.9.0 build 87451c8
The the user's project cannot be seen when submitting feedback. In many cases the feedback will be related to what is in their workspace so it would be easier for them to provide accurate feedback if they could see it when filling out the form.

Workaround: Open gE in a separate tab after opening the feedback form.

tCore uses ScreenDimmerContainer to gray the screen under the dialog.

@elsylambert This is in GWE v1.0.0 build 68176ee.

@birchamp This is in develop v1.0. FYI.  Release label can be changed to Release 1.0.

Available  in Release Version v1.0.0 build 2e38ce6.


add automatic version increase with git hash

@newville, first of all, thanks for releasing 0.9.52, that's great!
In order to have life easier identifying which is the Larch version when installing from source, I propose using setuptools_scm in the setup. It adds the git hash to the version (and may be further configured!).
I find it useful, but if for you it is not, feel free to discard this pull request.

@maurov  Yes, I agree and will merge.  I've used and been happy with versioneer in most of my other projects for just this purpose. But setuptools_scm seems simpler, less polluting, and likely to remain standard.   So: merging!
For this version (and fully expecting 0.9.53 soon) I was also looking into changing the versioning scheme.  Basically, we could call any of these versions "1.0" or say it will never reach 1.0 and adopt a time-based version "2021.1" or similar scheme.  There are sort of two competing aspects:

The "Installers" build with conda constructor or the "GetLarch.[sh,bat]" scripts now are not actually tied to a version of Larch, but get the latest version from PyPI.  So those really do not need to track the version numbers closely.

I now have a "try to look for updates" function (needs network, reads a file from github) that will detect a new version (still at 0.9.51, probably until this evening for me).   This will be run by many of the GUI apps on startup, prompting the user to upgrade.   Not well tested.

So, my thought on this is just to keep 0.9.NNN for a very long time, but to make the installers be "time-based", changing only as the packaging needs change.  FWIW, I'm sort of also expecting to using miniconda and Python 3.8 for awhile as Anaconda.com seems to be very slow and not always super-reliable with their updates.
I'll be making these installers and updating the docs again today (but doing other stuff too!)

My preference would be to follow sematic versioning. It is not a strong preference, so keeping 0.9.NNN is fine too.

@maurov Yep, I agree that we should stick with simple, sequential numbers for the main library.
OTOH, versioning the installers with a specific library version is no longer so accurate, especially as they are mostly installing a Python environment that then uses conda and pip to install all the libraries. Those will need to be updated, but labeling those by date seems reasonable to me since the intention is that the "2021-06" installer should be good for a few months.

@newville I like a lot the idea of having semantic versioning for the Larch library, stored as __version__ and release versioning for the Larch package (e.g. installers), stored as __release_version__.


New: Add summary fomatter

While I was working on www.tmz.com I got upset with the amount of output from the other formatters so I created a new one that just tells you how good/bad you are doing with all the rules.
Tests are missing but will add once the tmz PR is finished.

Maybe post a screenshot with how the output looks. Thanks!

The missing character is because my command line doesn't support emojis

@alrra all changes and tests are in


Missing log/netmaker directory.

The directory structure /usr/local/var/log and /usr/local/var/log/netmaker is missing on initial install.

Need to create the directory structure /usr/local/var/log/netmaker.

Added setup.sh to allow the creation of the directories along with the permissions needed to functionality.


Update what-s-new-in-sql-server-2022.md

Moved XML Compression to the Management area as the feature is more capacity focused. Performance improvements is more of a side effect to the capacity savings customers will receive.

@dplessMSFT : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Docs Build status updates of commit daa1e16:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/sql-server/what-s-new-in-sql-server-2022.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@MikeRayMSFT
Can you review this PR?
IMPORTANT: When this content is ready to merge, you must add #sign-off in a comment or the approval may get overlooked.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Docs Build status updates of commit daa1e16:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/sql-server/what-s-new-in-sql-server-2022.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Fix: log server seport deps

Use of seport in the role requires:

libselinux-python
policycoreutils-python

PR for EL-like only (SELinux support).
Also removed an ineffective unit test.

While reviewing the unit tests, I noticed the role uses a template task for rsyslog.conf, while this is not a Jinja2 template (no variable).
I would propose a rework to use file tasks instead. I propose to drop the additional parameters in /etc/rsyslog.d/:
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf


Origin/paweljakubas/co 343/replace ed25519

Description
Relacing hs-ed25519 with cryptonite which has support of Ed25519.
After two commits  popped up the problem when cardano-sl-crypto testing:
✓ golden_RedeemPublicKey passed 1 test.
✗ golden_RedeemSecretKey failed after 1 test.
    ┏━━ test/Test/Pos/Crypto/Bi.hs ━━━
144 ┃ golden_RedeemSecretKey :: Property
145 ┃ golden_RedeemSecretKey = goldenTestBi rsk "test/golden/RedeemSecretKey"
    ┃ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ┃ │ - "00: 58404b6d7977346c4453453553346653"
    ┃ │ + "00: 58204b6d7977346c4453453553346653"
    ┃ │   "10: 483665744e6f756958657a4379456a4b"
    ┃ │ - "20:<PHONE_NUMBER>a916726b09f05c9d4d4a92"
    ┃ │ + "20: 6333"
    ┃ │ - "30: 2b85b4e11acfcc1434673d95019b7a9a"
    ┃ │ - "40: 52d2"
146 ┃     where Just rsk = snd <$> redeemDeterministicKeyGen (getBytes 0 32)

This failure can be reproduced by running:
> recheck (Size 0) (Seed<PHONE_NUMBER>7316199488<PHONE_NUMBER>044678831) golden_RedeemSecretKey

✓ golden_RedeemSignature passed 1 test.
It was suprising as Ed25519Legacy.createKeypairFromSeed_ seed should be directly replaced with Ed25519.secretKey $ (BA.convert seed :: BA.Bytes)
I investigated further and saw that:

hs-ed25519 with (getBytes 0 32) gives:
PublicKey: S\137\169\SYNrk\t\240\\\157MJ\146+\133\180\225\SUB\207\204\DC44g=\149\SOH\155z\154R\210 SecretKey= Kmyw4lDSE5S4fSH6etNouiXezCyEjKc3S\137\169\SYNrk\t\240\\157MJ\146+\133\180\225\SUB\207\204\DC44g=\149\SOH\155z\154R\210
cryptonite Ed25519.secretKey $ (BA.convert seed :: BA.Bytes) gave me:
PublicKey: S\137`\169\SYNrk\t\240\\157MJ\146+\133\180\225\SUB\207\204\DC44g=\149\SOH\155z\154R\210
SecretKey: Kmyw4lDSE5S4fSH6etNouiXezCyEjKc3
(here converted from ScrubbedBytes to ByteString)

As indicated by Vincent Hanquez hs-ed25519 uses normalized extended secret key, whereas cryptonite uses the normal plain secret key directly, so effectively ed25519's seed is cryptonite’s secret key
My solution: when implementing Bi instance append publickey bytestring to secretkey bytestring when encoding, and substrating publickey bytestring when decoding (taking advantage of constant length of Ed25519.secretKeySize)
I checked:

stack test cardano-sl-crypto
stack test cardano-crypto
and all tests passed

Linked issue
https://iohk.myjetbrains.com/youtrack/issue/CO-343
Type of change

[ ] 🐞 Bug fix (non-breaking change which fixes an issue)
[ ] 🛠 New feature (non-breaking change which adds functionality)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)
[x] 🏭 Refactoring that does not change existing functionality but does improve things like code readability, structure etc
[ ] 🔨 New or improved tests for existing code
[ ] ⛑ git-flow chore (backport, hotfix, etc)

Developer checklist

[x] I have read the style guide document, and my code follows the code style of this project.
[x] If my code deals with exceptions, it follows the guidelines.
[x] I have updated any documentation accordingly, if needed. Documentation changes can be reflected in opening a PR on cardanodocs.com, amending the inline Haddock comments, any relevant README file or one of the document listed in the docs directory.

Testing checklist

[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

QA Steps

stack test cardano-sl-crypto
stack test cardano-crypto

Screenshots (if available)

@parsonsmatt  thanks for the feedback. I have just made commit that hopefully addressed all issues you raised

Merged in 8b5f5f4


[Bitcoin] Support uncompressed public key in TransactionSigner::keyForPublicKeyHash

Check TWPublicKeyTypeSECP256k1 and TWPublicKeyTypeSECP256k1Extended

@catenocrypt pr is ready


WasmFs function overwriting does not work on WasmTerminal

This is probably a known issue because according to the documentation you should use @wasmer/wasi for function overwriting but this would force developers to write their own terminal handling.
When writing a function overload on the WasmFs object it will not get called. This is probably because WasmTerminal calls fromJSON and uses that object in a Worker which loses all the connections with the original WasmFs. Now, this is fine for small applications but bigger applications don't know their file structure beforehand. With the current implementation, we would have to fetch the full directory tree and fetch all files before being able to actually run the application.
What I would suggest is a sort of "provider" structure where WASI or WasmTerminal depends on for the files reading, writing and the directory structure. For example:
const wasmTerminal = new WasmTerminal({
        fetchCommand: fetchCommandHandler,
        wasmFs,
        provider: {
            getDirectoryListing: async (path: string, listing: Listing[]) => {
                // Fetch from the server the current path
                // Would output on /:
                // /dev
                // /_wasmer
                // /myFolder
                // aFile
                return {
                    ...listing,
                    myFolder: new Folder(),
                    aFile: new File(),
                },
            },
            fetchFile: async (path: string) => {
                return new Buffer();
            },
            writeFile: async (path: string, buffer: Buffer) => {
                // Write file to server,
            }
        }
    });

The provider functions can be wrapped with Comlink.proxy allowing it to be transferred over to a worker and be called there. Now, this obviously doesn't cover everything but it would allow WasmTerminal to be more flexible and be used in bigger applications.

I don't believe this is relevant any more because the WasmTerminal abstraction was removed when rewriting the package as @wasmer/sdk.


broken links in Tasks page

There are broken README links in the table at the end of the Tasks page https://hipe-eval.github.io/HIPE-2022/tasks.

fixed


bls|governance|init|privatesend|test: Refactor some BLS related instantiations

Adds CBLSWrapper(const std::vector<unsigned char>& vecBytes) constructor and makes use of it in several places.
Requires #3867 to work.

Looks good, will need rebase after #3871 to fix tests I guess.


[HW] Sohini Mukhopadhyay

Name: Sohini Mukhopadhyay
Email<EMAIL_ADDRESS>Linkedin Profile: https://www.linkedin.com/in/sohini-mukhopadhyay-88009b170/
Attach the homework step I screenshots below:

Hey Sohini Mukhopadhyay, great job! Congrats! Here is your badge! https://api.badgr.io/public/assertions/bRCXtqYqToaycW9Pxaospw


Research: Access layer - Support UDP

We need to do research on the performance of UDP and TCP in various weak network environments.
陈邦卿. 面向移动终端的消息推送系统设计与实现[D].
马利麒. 移动网游服务端关键技术研究[D]. 2016.
Note:

A custom protocol won't be used.
The implementation of UDP server is embedded in turms server
UDP should be able for turms-client-js on Node.js

We will support UDP in the ticket: https://github.com/turms-im/turms/issues/318


AttributeError: module 'tmap' has no attribute 'Minhash'

I followed installation, but
dim = 2048
ENC = tm.Minhash(dim)

Run this code, AttrubuteError happened.
help me plz!

How did you solve this problem?

Hi！ have you solve the problem?