Let user remove their account by themselves

What

Thanks to @john-gom (see https://github.com/openfoodfacts/openfoodfacts-server/issues/6435), it is now possible to remove the account from the website.
We have to disable the account deletion forms and help users do it natively.
It should be instrumented using matomo
Optional: Small user survey on the causes of deletion (could trigger a custom Matomo event instead of having a survey backend)
Blocked on https://github.com/openfoodfacts/openfoodfacts-dart/issues/746

Part of

#1382

@M123-dev @monsieurtanuki @g123k this one is really useful, since answering manually to deletion requests is a lot of recurring work

What we could do is change the url of the webview to the deletion page on the website @monsieurtanuki
This will make the process truly self service, and going native can be done later

https://world.openfoodfacts.org/cgi/user.pl?type=edit&userid=teolemon (replace teolemon by user-id)

I land on an "edit your profile" page, in English, and cannot see a "delete" button.

@alexgarel @stephanegigandet will deploy that soon I believe. It should be live on .net, but I don't see it with my regular account, as opposed to my superadmin one

Ping when it's available on .org.

@monsieurtanuki it is live

@teolemon It's not that easy.
If you're not connected before on the website, you land on an obscure "Error" page
https://world.openfoodfacts.org/cgi/user.pl?type=edit&userid=teolemon
If I remove the "type=edit" parameter, I land on a "Register" page (with an improbable pessimistic "Delete account" button)
https://world.openfoodfacts.org/cgi/user.pl?userid=monsieurtanuki
Is there a URL to the sign in page?

https://world.openfoodfacts.org/cgi/session.pl

@john-gom Just checking: anybody can call /cgi/user.pl and delete anybody, right?

userid=xxx
type=delete
action=process
delete=on

It would be much safer if you also asked for the password. I mean, in the context you developed (website) it's not very important (already connected), but it is for an API.
Correct me if I'm wrong.

nope, you can't delete other people @monsieurtanuki :-)
only admins can potentially do that kind of things (which is somewhat dangerous, since admins are also logged into the app)

nope, you can't delete other people @monsieurtanuki :-)

@teolemon I didn't mean that it was a desired feature: my limited knowledge of perl made me ask that while trying to reverse engineer /cgi/user.pl.
As I have also a limited experience of curl there's probably something wrong in my syntax, but if I run the following statement I get a localized html page answer like "Permission denied".
Perl/curl help needed!
curl
  -X POST https://fr.openfoodfacts.org/cgi/user.pl -H "Content-Type: application/x-www-form-urlencoded"
  -d "userid=test-del-20230703-1&type=edit&action=process&delete=on&password=test-del-20230703-1"

You won't be able to call the API directly like that. You would need a session cooking for the user before it would work.

Then is that possible only for the website or also for flutter? I don't know how it would work.

Users can only delete their own user account. To work, the request needs to be authenticated: either with a session cookie, or with userid + password.

@stephanegigandet That's what I tried unsuccessfully with the code I mentioned earlier:
curl
  -X POST https://fr.openfoodfacts.org/cgi/user.pl -H "Content-Type: application/x-www-form-urlencoded"
  -d "userid=test-del-20230703-1&type=edit&action=process&delete=on&password=test-del-20230703-1"

Is there some typo in my request?

my %delete_form = (
name => 'Test',
email =><EMAIL_ADDRESS>password => '',
confirm_password => '',
delete => 'on',
action => 'process',
type => 'edit',
userid => 'tests'
);

@monsieurtanuki I've successfully deleted the account in two steps from my browser, login in, and then deleting using the url you tried. It seems you can't do both at the same time.
Curious how we do other user management operations

@monsieurtanuki I've successfully deleted the account in two steps from my browser, login in, and then deleting using the url you tried. It seems you can't do both at the same time. Curious how we do other user management operations

@teolemon Actually we don't have that much methods in off-dart regarding users:

login / login2, which is a "check password + get email, name and id" method
register
resetPassword, that doesn't use the password (sends a "reset password" email from the email or userId)

That said, there's nothing for the moment on the server side that would delete a user in just one command if you're not already connected to the website.
Smoothie issue is stalled then.

I believe we had this issue specifically for iOS, and we'll soon have the same issue for android:

December 7th, 2023
• User Data policy – Account Deletion requirement
◦ Watch RePlay episode 2 to learn more about the new data deletion policies

I've just created https://github.com/openfoodfacts/openfoodfacts-server/issues/8940. Please add any corrections if I am wrong @monsieurtanuki


Video walkthrough to submit pull requests

Description
A video walkthrough on how to build the projects, modules, persona bar and submitting pull requesta has been made at https://www.youtube.com/playlist?list=PLIx1M8IdVvqZ0bnODGqJyxvONNPj5BzMP we need to link that in the project documentation

https://github.com/dnnsoftware/Dnn.Platform
it would be nice here as well I am watching it now thank you!

A pull request is submitted to include that in the contributing.md file


NUCLEO-L073RZ not responding

Hi,
I am using ST NUCLEO-L073RZ and put SX1272 shield on top of it. But it is not showing anything.
I cannot use reset button either, looks like the programme never goes into the main function.
Any suggestions?
Many thanks

Have you done pin configuration for your set up in mbed_app.json?

Oh, it looks like I haven't done that.
Is there any pinout map that I can check?
I checked the sx1272 shield page on Semtech website, but there is only part of the pins included.
Thanks.

I don't have this module in hand, so I cannot quickly check the pins for that, but I think @janjongboom has been using it. Jan, do you have the lora config for this set up?
I would guess that it has similar set up as we already have for K64F. Just set "lora-radio": "SX1272".

@kivaisan I don't have one either, but the board has Arduino headers and pinout so your suggestion should probably work.
It would be good to sanity check the device. If you throw in some code to blink the LED does this work properly with the LoRa shield attached?

Thanks, guys, I checked the schematic and I am running the code smoothly now.
Just have another quick question, is there anywhere I can set the frequency channel in the project or library?
I want the device ringing in on The Things Network, but the frequency band is different according to their description. (They only have part of the channels and the step between channels are different)

@janjongboom How do I cut the channels? Is there a file in the project I can make an adjustment with, or do I need to use API from outside?

ARM Internal Ref: IOTCELL-770

Closing this issue as original issue has been resolved. Please continue TTN discussion in its own report.


local DNS result map support. eg ip -> domain

When I use the shadowsocks-libev version ss-local with udp relay. it worked for all.
But when I use the python version shadowsocks with udp relay, it not worked for contaminated DNS domain, eg www.google.com.
Sense shadowsocks-libev handles the DNS map, and conversion it to domain it self. like <IP_ADDRESS> -> google.com. I should sure it later.
So it is like
socks5 udp: ip -> domain
socks5 connect: domain -> ip

@FlowerWrong I tried to chain gotun2socks with shadowsocks-csharp and It works. My test with shadowsocks-libev failed because shadowsocks-libev seems closing the corresponding socks connection of UDP session prematurely. I don't know how UDP relay of shadowsocks python version works. What do you mean  by "conversion it to domain itself" ?

conversion it to domain itself

This means fake ip address. Like surge. When dns query for gfw domain, eg google.com, it will reply a fake ip, eg, <IP_ADDRESS>. But I do not see you handle that.

It seens you did not relay tcp to socks5, just relay udp.

I don't distinguish DNS of gfw-blocked domains from other DNS queries. You need to setup system DNS to use a resolver accessible by your remote server, like <IP_ADDRESS>, then all DNS queries will be forwarded to the socks proxy using SOCKS5's UDP Associate.


Serve the new web client instead of the old one.

In addition ensure that trunk is installed and use trunk to build the web client from source automatically.

I think the CI is broken at the head of dev/web-ui. Not sure what the best way of fixing that is, I don't want to clutter up this PR pulling in commits from main to fix it. Do you have a way to rebase/merge the dev/web-ui branch from main? I don't think I have the ability to do that anyways.

LGTM, it's gonna take some time to pass the CI because it needs to build trunk. I hope it will get cached after the merge. I didn't test this with a development branch yet.

I guess now only the esthetic aspects remain right? Or do you see other technical aspects?

Tests are a good idea, but as you mentioned, not a regression. Also testing UIs is usually much harder than testing logic, so I wouldn't worry about it, but feel free to explore this direction if it's something that interests you.
To merge this development branch in main, some CSS is probably enough indeed. Then there's also the automatic websocket reconnection when the server dies, but maybe a manual reload is fine for now (or just opening a new window).

To merge this development branch in main, some CSS is probably enough indeed. Then there's also the automatic websocket reconnection when the server dies, but maybe a manual reload is fine for now (or just opening a new window).

Sg, also I believe it recovers from the server going down already. The thing that doesn't quite seem to work is the web server seems to not realize the client is already open and tries to open a new tab anyways. I'm not quite sure the reason why but if you comment out the lines opening the browser it recovers like it's supposed to.
I'll have to look into that more closely.

Sg, also I believe it recovers from the server going down already. The thing that doesn't quite seem to work is the web server seems to not realize the client is already open and tries to open a new tab anyways. I'm not quite sure the reason why but if you comment out the lines opening the browser it recovers like it's supposed to.

This seems to be because the web-socket retries to connect every 3 seconds instead of every second. The web server waits 2 seconds before opening a new window, so there's some chances that the web client won't connect in that timeframe. Instead of using use_websocket() you need to use use_websocket_with_options() and set reconnect_interval to 1000. This could be its own PR.


Datastore Amplify Mock Support

Is this feature request related to a new or existing Amplify category?
No response
Is this related to another service?
Datastore
Describe the feature you'd like to request
My team and I spent a week getting excited about and integrating datastore into our app only to find out when trying to test it locally that it doesn't work with amplify mock so we ended up having to rip it out. This would be an awesome improvement as testing on the cloud is slow especially between deploys.
Describe the solution you'd like
We're approach agnostic as long as amplify mock works with datastore :).
Describe alternatives you've considered
Not using datastore and having to wrangle app state and backend state manually.
Additional context
No response
Is this something that you'd be interested in working on?

[ ] 👋 I may be able to implement this feature request

Would this feature include a breaking change?

[ ] ⚠ This feature might incur a breaking change

Hey @diegoconcha :wave: thanks for taking the time to file this one as well 🙂 marking as a feature request


Service Principal Login should take subscription ID

AAD Servie Principals are hard enough, we should make it easier on users and allow them to login to the CLI with SP Client ID/Secret and the Subscription ID as well as the Tenant ID.
The CLI can retrieve the tenant id in the same way the xplat-cli does it.

On this part new cli behaves the same with xplat-cli. No parity is missing. I am pretty sure xplat-cli will not be able to retrieve tenants for SP, because it won't be able to access the front door ''common" tenant which is the first thing before list the tenants.
But it is possible to get tenant if you can provide the subscription-id. There is published trick here we can leverage.
So want to confirm here, it is more frequently you have subscription info at hand than the tenant? The az login has been heavily overloaded with loads of parameters, I just need more data voices to prioritize.

I am pretty sure xplat-cli will not be able to retrieve tenants for SP, because it won't be able to access the front door ''common" tenant which is the first thing before list the tenants.

Why not? Can't SPs auth to the common tenant just like a regular device login?

So want to confirm here, it is more frequently you have subscription info at hand than the tenant?

Very, very much so. That's been my observation with users. CC @ahmetalpbalkan who has more first-hand knowledge of users.

Why not? Can't SPs auth to the common tenant just like a regular device login?

No. AFAIK, using device flow, in the browser you can only login by org-id or MSA (live-id). Please note, SP name can either be a guid or non-existing uri, there are no hints for the infrastructure to figure out what the tenant it is from.

Sorry, I misspoke. I think SPs can still auth against the common tenant the same way the auth against the tenant-specific endpoint... And then can go through the normal tenant/subscription discovery flow.

Cleaning u old issues, reopen if this is still active.


Editor crashes when changing scene

Godot version

crash on 4.0.beta5.official up to 690199b7dddd784b435e6ce71365256b29285fe8

no crash on 4.0.beta4.official

System information
MacOS 13, MB Air M1
Issue description

traceback is from custom build ( 690199b7dddd784b435e6ce71365256b29285fe8 )

ERROR: Condition "r[0] != 'R' || r[1] != 'I' || r[2] != 'F' || r[3] != 'F' || r[8] != 'W' || r[9] != 'E' || r[10] != 'B' || r[11] != 'P'" is true. Returning: Ref<Image>()
   at: _webp_unpack (modules/webp/webp_common.cpp:125)
ERROR: Condition "img.is_null() || img->is_empty()" is true. Returning: Ref<Image>()
   at: load_image_from_file (scene/resources/texture.cpp:690)
ERROR: Failed loading resource: res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:215)
ERROR: Failed loading resource: res://icon.png. Make sure resources have been imported by opening the project in the editor at least once.
   at: _load (core/io/resource_loader.cpp:215)

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.beta.custom_build (690199b7dddd784b435e6ce71365256b29285fe8)
Dumping the backtrace. Please include this when reporting the bug to the project developer.
[1] 1   libsystem_platform.dylib            0x0000000192be82a4 _sigtramp + 56
[2] SceneTree::call_group_flagsp(unsigned int, StringName const&, StringName const&, Variant const**, int) (in godot.macos.editor.arm64) + 1296
[3] SceneTree::_call_group(Variant const**, int, Callable::CallError&) (in godot.macos.editor.arm64) + 132
[4] MethodBindVarArgT<SceneTree>::call(Object*, Variant const**, int, Callable::CallError&) (in godot.macos.editor.arm64) + 52
[5] Object::callp(StringName const&, Variant const**, int, Callable::CallError&) (in godot.macos.editor.arm64) + 448
[6] Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const (in godot.macos.editor.arm64) + 176
[7] MessageQueue::_call_function(Callable const&, Variant const*, int, bool) (in godot.macos.editor.arm64) + 336
[8] MessageQueue::flush() (in godot.macos.editor.arm64) + 276
[9] SceneTree::physics_process(double) (in godot.macos.editor.arm64) + 456
[10] Main::iteration() (in godot.macos.editor.arm64) + 528
[11] OS_MacOS::run() (in godot.macos.editor.arm64) + 116
[12] main (in godot.macos.editor.arm64) + 404
[13] 13  dyld                                0x000000019288fe50 start + 2544
-- END OF BACKTRACE --
================================================================

Steps to reproduce

cant reproduce this deterministically, I just hope the traceback is sufficient.
icon.png seems completely fine

Minimal reproduction project
The instructions say Be sure to not include the .godot folder but the crash does not happen without the folder in the minimal project 🤔

Duplicate of #69159

The instructions say Be sure to not include the .godot folder but the crash does not happen without the folder in the minimal project 🤔

Well those are general instructions, obviously if the problem depends on that folder you should include it :)


Images inside popover

I'm having some issues with my popovers, they contain an image with no fixed height and if the image isn't preloaded in the DOM, it breaks the popover.
The idea is that the popover displays first without the image and once the image is fully loaded, it's added to the tooltip but it makes the tooltip have a higher height than it did when it was first shown and displaces it down:
http://i.stack.imgur.com/1ZPb2.jpg
I tried to load the image on show.bs.popover but that doesn't work
   $('.pop').on('show.bs.popover', function() {
    $('.pop').not(this).popover('hide');
    if ($(this).is('[poster]')) {
        var image = $(this).attr('poster');
        $('#load_hidden').html('<img src="' + image + '" />');
    }
});

Any idea on how to make the popover fully load its content before displaying?

I believe this issue is now fixed with dynamic resizing occurring for tooltips/popovers - feel free to open a new issue with a minimal reproduction if you feel this is still an issue.


Drop incorrect skipping of some evp_test testcases with no-gost

Not sure why it was there but certainly it is not needed. With 3.0 and above no-gost just disables the GOST support in libssl.
Checklist

[x] tests are added or updated

ping for second review

This pull request is ready to merge

Merged to master, 3.0 and 3.1. Thank you.


Add MJD keywords to the frames_info and frames_info_preproc

Useful to provide the value when computing astrometry on science data

Added


[Roadmap] Graph4NLP v0.6 plan

Task List

[New Feature] A brand new configuration system based on OmegaConf.
[Feature] Upgrade stanford CoreNLP to Stanza.
[Feature] Improve the dataset custermize experiments.
[Feature] Add relational GNN support.

@AlanSwift looking forward to the relational GNN support.
By the way, without the support to run in a multiple-GPU environment, not sure how this library could be useful for large datasets. Do you plan to add support for multiple-GPU?

@AlanSwift @hugochan @teddylfwu this is a fantastic library. And to the best of my knowledge, this is the only GNN library that NLP focused.
Just my 2 cents:

I think the effort for the library is slightly misdirected. For example, the library has severe bug like Beam search is broken. I think any Major bug should be prioritized as that completely limits the use of the library.

Even if I look into the current Roadmap, I see effort is seriously misguided. The only major feature I see is adding "relational GNN support" which is great. But what's the point of so many booking tasks like  "brand new configuration system based on OmegaConf". I am pretty sure a lot of effort of would then directed just to modify/update existing examples and to use this new configuration system.

Unfortunately that does not do much for a typical user. No one really cares that you are using OmegaConf configuration library. What's matters is the adding more useful feature for the user. And also to ensure the features that is already in the library actually works and there is no bug. If there is a major bug, there is no point of adding more and more features. To summarize, for any software engineering tasks, there needs to be a balance between what is "actual feature" vs "doing chores (like updating configuration system)" which does not add much to the library.
This is just my 2 cents. And again - thanks for this fantastic library.

Furthermore, I see in the description work on configuration system is stated as a "New Feature":
[New Feature] A brand new configuration system based on OmegaConf
This is not a feature. Feature is something that adds value to a project. So the understanding of what is called as a "feature" is wrong. It should be stated "Code Debt" or "Maintenance" work.

@AlanSwift wondering when the RGCN implementation would be available?

When the new release would be announced?

@AlanSwift @hugochan @teddylfwu @SaizhuoWang @xiao03  wondering when this library version would be released 🙏 🙏 🙏 ?

Reply to all: We will have a meeting this weekend. I think the new release will come in two weeks.

@AlanSwift this is a great library for GNN. Looking forward to the release specially the implementation of RGCN.
Also if you could support transformer in the future, would a great feature for this useful library.

Yes. The full support of the transformer is on schedule. The transformer encoder will release in the next coming version. And the transformer decoder will come soon (on test).

@AlanSwift looking forward to use the transformer encoder 🥇. When would it be release?

Wondering what's the tentative timeline for this release.

We are still discussing it #578. We still need 2-3 weeks to make it ready since it covers many features. @smith-co

@AlanSwift wondering when the RGCN implementation would be available?

@AlanSwift wondering when the RGCN implementation would be available?

We have almost finished the implementation and currently are testing on down tasks. We are sorry we delayed too much time since it is a big feature migration from the homogeneous graph to the heterogeneous graph.

Really looking forward to it. Thanks @AlanSwift

@AlanSwift Could you please tell me when would new version be released?

Wondering is there a further update?


[gardening] Remove unused file.

I checked with ArgyriosK before I did this.

@swift-ci smoke test and merge


_posts/0000-01-02-Sa721666.md

layout: slide
title: "Welcome to our second slide!"
Your text
Use the left arrow to go back!


Add WebSocket streams

Similar to the TCP and HTTP streams. The protocol should be "ws://" for clients and "ws-server://" for servers.

#5


Add zstd compress options in overlaybd-commit

Signed-off-by: Haoqi Miao<EMAIL_ADDRESS>

LGTM


log unexpected warnings if format parameter is used in filter

fluentd version.

v0.14.

You rconfiguration

<source>
  @type tail
  path /tmp/test.log
  tag test.log
  format json
</source>

<filter test.**>
  @type parser
  key_name log
  format json
</filter>

<match test.**>
  @type stdout
</match>

Your problem explanation. If you have an error logs, write it together.

With this config, we always get following warning:
2016-11-01 09:16:07 +0900 [info]: using configuration file: <ROOT>
  <source>
    @type tail
    path "/tmp/test.log"
    tag "test.log"
    format json
    <parse>
      @type json
    </parse>
  </source>
  <filter test.**>
    @type parser
    key_name "log"
    format json
    <parse>
      @type json
    </parse>
    <format>
      @type json
    </format>
  </filter>
  <match test.**>
    @type stdout
  </match>
</ROOT>
2016-11-01 09:16:07 +0900 [warn]: section <parse> is not used in <filter test.**> of json plugin
2016-11-01 09:16:07 +0900 [warn]: section <format> is not used in <filter test.**> of json plugin
2016-11-01 09:16:07 +0900 [info]: following tail of /tmp/test.log

Input plugin's format is handled correctly, but filter's format is parsed as parser / formatter and warning messages are logged.
This filter works, so these logs should not be logged.

In filter, judging parser/formatter is hard?

It's impossible.

v0.14.9 has built-in parser filter and it fixes this problem.


Added Codecov Workflow job to Pull Requests Workflow.

Closes #38.
This ensures that the code coverage percentage is checked before merging into master. The previous procedure was to check the code coverage when already merged into master. This should prevent a lack of code coverage from making its way into master accidentally.

Codecov Report

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

@@           Coverage Diff           @@
##           master      #39   +/-   ##
=======================================
  Coverage   98.95%   98.95%
=======================================
  Files          23       23
  Lines         479      479
=======================================
  Hits          474      474
  Misses          5        5

Flag
Coverage Δ

#unittests
98.95% <ø> (ø)

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

Continue to review full report at Codecov.

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

The 98.95% coverage is tracked in issue #37. This pull request will help to test and validate the improved coverage from that issue's future fix.


Dietzel 2017

Main manuscript
Data + code
field fertilization, crops, SOC w/ depth

Put a hold on this for the moment. Dietzel is updating repository.


方便提供一下标注工具不

It is convenient to provide the marking tool

Yes we plan to make the annotation tool publicly available. We will release the tool once the code is cleaned.

Yes we plan to make the annotation tool publicly available. We will release the tool once the code is cleaned.

thanks ,but now , code can send to me by gmail<EMAIL_ADDRESS>i will give my advise

Hi, our annotation tool is now available online:
https://github.com/autonomousvision/kitti360labeltool


emergency fix: force lbrycrd to be the default wallet

Ignore save settings for wallet type and use the default wallet (lbrycrd)
instead.  lbryum can be used but only if specified on the command line.

looks good to me. ive been refactoring that file a bit and agree with the comments you made

didnt test it though

But would that mean wallet(file)s switch too? That would become a small disaster.

@rdewilde - Its not great but one solution is to manually send coins from the lbryum wallet to the lbrycrd wallet.


Remove "production docker" setup docs

Right now we have the production docker deployment listed under the admin docs but in light of recent conversations it's not recommended for production use so we should remove it asap and then replace it with some basic guidance about the official docker hub images.

Thanks, @svelle. It looks like this issue is related to: https://github.com/mattermost/docs/pull/3425 - what are your thoughts?

@justinegeffen yup, looks like it. Thanks for pointing it out. I linked them :)


[stable/datadog] Enforce Kubernetes Autodiscovery as Default

Signed-off-by: Jonathan M Reiter<EMAIL_ADDRESS>What this PR does / why we need it:
This fixes a bad env var value that prevents Kubernetes Autodiscovery from working.
Which issue this PR fixes

fixes #16229

Special notes for your reviewer:
None!
Checklist

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/chart])

/assign @charlyf

/ok-to-test

Hey @jonathanmreiter apologies for the delay in answering.
Given the current configuration of the chart, this should work correctly by default as far as I can tell:
https://github.com/helm/charts/blob/master/stable/datadog/templates/datadog-yaml-configmap.yaml#L17-L22
I did take a quick look at the logic for this and it seems like it should work too?
I might be missing something, would you mind sharing more details ?
Best,
.C

Thanks for clarifying!
That coheres with the Agent's documentation, however, there are still a couple issues:

Kubelet based autodiscovery never worked for my deployment, only the Docker based autodiscovery worked. Is this a TODO feature as the source implies?
What's the rationale of setting the env var in the first place if it doesn't do anything? Why is it misaligned with the env var necessary to enable the kube_apiserver check?

Hey @jonathanmreiter,
for 1. if you have an issue setting up kubernetes autodiscovery, you should probably try to reach out to our support team so we can troubleshoot the issue. The source code you're referring to is to automatically detect autodiscovery providers (we don't do it for the kubelet yet so still TODO, see 2.)
for 2. we're also using this environment variable in the image entrypoint to specify which default agent configuration we should use depending on the environment (like enabling kubernetes autodiscovery) see https://github.com/DataDog/datadog-agent/blob/master/Dockerfiles/agent/entrypoint/50-kubernetes.sh

I am currently engaged with them, but I wonder if this is a code issue if the only autodiscovery provider currently supported is Docker. The auto case doesn't seem to resolve into a listener that would work on any Kubernetes setup.
If I am mistaken, I'll close out this PR.


New Bugs Server

We need to get the staging environment setup for the new trac server.  I'd like to see if we can collaborate with @nacin and our wordpress friends on this one.  @scottgonzalez mentioned that their trac setup was pretty sweet.
Also see Issues: #6, #7.
We should try to upgrade to the newest versions of trac and friends.
Also, how do we get web-base-template to wrap around our tracs?

I assume at this point none of the open issues in this repo will be addressed and we can just delete this repo? @dmethvin @gnarf

Yeah we don't need this.

+1. No need for it to exist anymore.


tools: Simplify plugin resolution by directly requiring base config

Works around eslint limitations by directly requiring base config, leaning on Node's module resolution instead.
Note that this usage pattern is not explicitly supported by eslint, but has worked for the last few major versions, and has been sited as a workaround in the issue tracking this major eslint limitation (see Issue 3458), and is used in a number of large projects including create-react-app.
Also note that this pattern sort of assumes that a given package does not install its own copies of the plugin packages used by the shared config package. If they do, they will end up getting the version of the plugin they specify, rather than the one specified by the shared config package. This follows npm conventions pretty reasonably, but does deviate from standard eslint conventions a bit. Behavior here could be confusing in cases where one version of a plugin contains a rule that an earlier version doesn't (for example).

Fortunately, since we leverage lerna's --strict option when hoisting dependencies, we currently have the guarantee that this problem won't occur :)

Ultimately, I think the benefits here greatly outweigh any potential issues, and I think our other tooling will help prevent them anyways, so I think this is probably the right change. I just wanted to be transparent here about the trade-offs.

Cleaning up the blank lines introduced now

I accidentally pushed some docs changes intended for another branch here (hence the link checks above), but I have now reverted them.

PR title should probably mention eslint.


Error During Migration

Error: MongooseError: document must have an _id before saving
at MigrationUserSeed.seeds (/home/anon/Desktop/All/blog-backend/src/migration/seeds/migration.user.seed.ts:71:19)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 ELIFECYCLE  Command failed with exit code 1.

 I have changed this file

export abstract class DatabaseEntityAbstract {
    @DatabaseProp({
        type: String,
        default: new Types.ObjectId();  //added this
       //default: uuidV4, //removed this
    })
    _id: string;

if u want to change the _id into object id type, u need to change the value of type too.


Fix for https://github.com/chafey/cornerstoneTools/issues/217

This PR closes https://github.com/chafey/cornerstoneTools/issues/217
The highlight issue occurred whenever a new annotation was created, all other annotations would not be highlighted when moved over.

Thanks!

debugging is so much easier now that I can load the sources directly ...
Can https://github.com/chafey/cornerstoneTools/pull/214 be merged as well ?

I want to play around with #214 a bit before merging it, since there are a number of scenarios to test (e.g. interactions with dependencies, usage when imported into the OHIF Viewer).


How to write/configure 4th argument?

Hi
I would like an example of how to write the forth argument(s)
thank you¡

got it, thanks!


feat: visualize attached events on the trace widget

Visualize attached events on the trace widget.
Video
https://user-images.githubusercontent.com/20871783/203502893-5e59836e-541d-487c-89df-72df4039ce3b.mov
Signed-off-by: Qiuxia Fan<EMAIL_ADDRESS>

Could you share what the event detail looks like? And what does the number in the timeline mean? And is the event showing on the table view?

Updated
https://user-images.githubusercontent.com/20871783/203515831-a28ca1d2-f91c-4fda-af7e-4cfccb23866d.mov

what does the number in the timeline mean?

It means 15:30:5 -- 15:30:12

Does this work for ms? even microsecond?
@mrproliu From my understanding, an HTTP RPC usually takes less than 10ms, some could be 2ms-3ms even less.

How does this example run an RPC in several seconds?

what does the number in the timeline mean?

It means 15:30:5 -- 15:30:12

Does this work for ms? even microsecond?
@mrproliu From my understanding, an HTTP RPC usually takes less than 10ms, some could be 2ms-3ms even less.

The minimum granularity the timeline supports is milliseconds.

The timeline granularity is changed by scaling. It does not support microseconds.

The demo of the attached event using real data? The start/end time of the event is usually smaller than 1s.

@mrproliu From my understanding, an HTTP RPC usually takes less than 10ms, some could be 2ms-3ms even less.

Less than 10ms maybe too few. Usually is less than 100ms. Here is what real data seem like(through CLI):

The demo of the attached event using real data? The start/end time of the event is usually smaller than 1s.

No, it is mock data.

The demo of the attached event using real data? The start/end time of the event is usually smaller than 1s.

@mrproliu From my understanding, an HTTP RPC usually takes less than 10ms, some could be 2ms-3ms even less.

Less than 10ms maybe too few. Usually is less than 100ms. Here is what real data seem like(through CLI):

Visualize the screenshot attached events
https://user-images.githubusercontent.com/20871783/203554025-eeea47ad-1159-4dae-a316-60398aa1df19.mov

What is the initialized width of the time window? Is this based on span's duration?

Initial state of the timeline


smtweb throws exception when viewing record with DistributedLaunchMode.

Please see the below traceback generated by smtweb. Viewing the same record with smt list --long does not cause any problems. I have encountered the same issue using a variety of different executables on both Arch Linux and Red Hat.
Environment:
Request Method: GET
Request URL: http://<IP_ADDRESS>:8001/test/20160113-181836/
Django Version: 1.8.8
Python Version: 2.7.5
Installed Applications:
[u'sumatra.recordstore.django_store',
u'django.contrib.contenttypes',
u'tagging',
'sumatra.web']
Installed Middleware:
()
Traceback:
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  164.                 response = response.render()
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/response.py" in render
  158.             self.content = self.rendered_content
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/response.py" in rendered_content
  135.         content = template.render(context, self._request)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/backends/django.py" in render
  74.         return self.template.render(context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in render
  210.                     return self._render(context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in _render
  202.         return self.nodelist.render(context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in render
  905.                 bit = self.render_node(node, context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in render_node
  919.         return node.render(context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  135.         return compiled_parent._render(context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in _render
  202.         return self.nodelist.render(context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in render
  905.                 bit = self.render_node(node, context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in render_node
  919.         return node.render(context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  65.                 result = block.nodelist.render(context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in render
  905.                 bit = self.render_node(node, context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in render_node
  919.         return node.render(context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in render
  959.             output = self.filter_expression.resolve(context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in resolve
  648.                 obj = self.var.resolve(context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in resolve
  789.             value = self._resolve_lookup(context)
File "/home/cica1d14/.local/lib/python2.7/site-packages/django/template/base.py" in _resolve_lookup
  849.                             current = current()
File "/home/cica1d14/.local/lib/python2.7/site-packages/sumatra/recordstore/django_store/models.py" in command_line
  305.         return self.to_sumatra().command_line
File "/home/cica1d14/.local/lib/python2.7/site-packages/sumatra/recordstore/django_store/models.py" in to_sumatra
  277.             self.launch_mode.to_sumatra(),
File "/home/cica1d14/.local/lib/python2.7/site-packages/sumatra/recordstore/django_store/models.py" in to_sumatra
  166.             lm = getattr(launch, self.type)(**parameters)
File "/home/cica1d14/.local/lib/python2.7/site-packages/sumatra/launch.py" in __init__
  225.             mpi_cmd = MPI(path=mpirun)
File "/home/cica1d14/.local/lib/python2.7/site-packages/sumatra/programs.py" in __init__
  69.         self.version = version or self._get_version()
File "/home/cica1d14/.local/lib/python2.7/site-packages/sumatra/programs.py" in _get_version
  97.                                       shell=True, timeout=5)
File "/home/cica1d14/.local/lib/python2.7/site-packages/sumatra/core.py" in run
  69.         signal.signal(signal.SIGALRM, alarm_handler)

Exception Type: ValueError at /test/20160113-181836/
Exception Value: signal only works in main thread

The problem seems to be in that reconstructing the LaunchMode object from the database, Sumatra retrieves an invalid value for the version (None, ought to be 'unknown'), which then causes it to attempt to launch mpirun to get the version.
We need to figure out how the value of None is getting stored in the database.


[Platform] Prep for v2 (move to Carbon v11)

Upgrading Storybook, Webpack, other dependencies

Work is now being tracked in https://github.com/carbon-design-system/carbon-for-ibm-dotcom/issues/8411


Uncaught TypeError: Cannot read property 'html' of undefined

I am getting this error when loading pages transitions.
Site: http://ryanwake.com/gramacy/
I have also noticed this message in the console that I am not quite sure what it means. (XHR finished loading: GET "http://ryanwake.com/gramacy/r_packages/reglogit/".)
Screenshot: https://www.dropbox.com/s/ezxi4lzwp7mdg1u/Screenshot 2015-03-03 15.42.53.png?dl=0
I am using Chrome on a Mac if that matters.

Hey. I can't see any error on your site and the file does not exist anymore in Dropbox.

Hugo,
I apologize. I had to upload a version of the site for the client to review without the proper CSS in place. It is current now. http://ryanwake.com
Also, attached is the image.

Still can't see the error on your site.

It seems that if you scroll down, then click on a menu option, you will receive the error:
Uncaught TypeError: Cannot read property 'html' of undefined

All I got is:

Thank you for Visiting!
I am currently working on a rebuild of my website. If you would like to contact me in regards to a project, email me at<EMAIL_ADDRESS>

If you go to http://ryanwake.com/gramacy/ This is where you will see the error I am getting.

Still no error here.

I created a screencast of the error I am getting. You can download the .mov file at http://ryanwake.com/gramacy/error.mov
This shows you exactly how/what is happening. The error that is occurring.

The error on Firefox is more explicit:
TypeError: cache[url] is undefined | core-min.js (ligne 413, col. 24)
$content    = utility.getContentById(containerId, cache[url].html);

I do not see the connection with the library countdown.js.
This come from smoothState.js or your use of this jQuery plugin.
Cheers,
Thomas.

I.  I apologize for wasting your time. I linked to the wrong github project.

No problem. Things happen. :)


Finalizer not running

What steps will reproduce the problem?
1. Copy the code from here: http://pastie.org/950783
2. Run it: rm -f /tmp/finalizertest && 6g finbug.go && 6l finbug.6
&& ./6.out

What is the expected output? What do you see instead?
When the program exits, I expect /tmp/finalizertest to be deleted, but the finalizer
does not
seem to run.

What is your $GOOS?  $GOARCH?
linux/amd64

Which revision are you using?  (hg identify)
00a2c89d642d+ tip

Could you not use a defer runtime.GC() to (partially) guarantee the finalizer will run, at least for normal process termination?
Example:
func main() {
    defer runtime.GC()
    // ... do some stuff with finalizers
}

@chowey We don't hold discussions on closed issues.  Please see https://golang.org/wiki/Questions .  Thanks.


nx-ignore does not support<EMAIL_ADDRESS>

This package does not support nx version 19 and above because the nx commands  run under the hood are no longer supported in nx.
For example:
Use nx graph --affected, or nx affected --graph instead depending on which best suits your use case. The affected:graph command has been removed in Nx 19.

nx show projects --projects=... --affected

this command can help

nx show projects --projects=... --affected
this command also can help

I think you're misunderstanding the issue I'm reporting. The command that is run is hard coded in the nx-ignore package, making this package incompatible with nx v19+

you are right. I also know it.
I just give another command option to maintainer rather than nx graph --affected or nx affected --graph

Fixed here https://github.com/nrwl/nx-labs/pull/403

Needs this PR as well https://github.com/apps/nx-cloud

@jaysoo Thanks, it's working now. I appreciate the quick fix on this!


Bug related to execution monitoring (EFK)

A similar error has been reported from multiple places on the EFK side. After running an execution, execution monitoring screen stucks like below:

Screencast from 19-09-2024 02_17_19 ΜΜ.webm
We suspect duplicate records as the reason. This error can be received after running mapping with a dataset containing duplicate records.
Probably related to this: https://github.com/srdc/tofhir/issues/198

First, I can confirm that duplicate records are not the cause of this issue. I tested several scenarios and different environments (Docker, IDE, etc.), but I was unable to reproduce the error.
Previously, we generated @timestamp using System.currentTimeMillis() as shown below:
markerMap.put("@timestamp", System.currentTimeMillis.toString)

This produced a number like<PHONE_NUMBER>148, which could have been interpreted by Kibana as a string rather than a date. To address this, I’ve modified it to generate a properly formatted string like 2024-10-18T13:38:53.921Z, which should resolve the issue.
I’m keeping this ticket open for now, in case we encounter the problem again. If it does reoccur, we should retrieve the logs directly from Elasticsearch using its API and investigate the specific @timestamp values. If the issue doesn’t reappear, we can close the ticket.


Dedicated node for ingress nginx controller

The ability to create dedicated node for ingress nginx controller
host type network for nginx controller
and add from example https://github.com/kubernetes/ingress-nginx/blob/master/docs/examples/static-ip/nginx-ingress-controller.yaml
terminationGracePeriodSeconds: 60

ci check this

please merg it

need kubeadm support first

Please help,
how i can add kubeadm support if you close https://github.com/kubernetes-incubator/kubespray/pull/2473 ?

We need to add a PR to fix it. The PR i made was bogus.

Do we need to check new inventory group across PBs? For example no_proxy in roles\kubespray-defaults\defaults\main.yaml is dynamic, and hosts in roles\kubernetes\preinstall\tasks\etchosts.yml

no. this is optional group - only for set role
ingress node  must be in kube-node group


PenguinStats/api/result/matrix - EndPoint data issue?

The endpoint PenguinStats/api/result/matrix
Seems to be returning wrong data for the below:
API Data for stage 6-14
{"itemId":"30063","times":6880,"quantity":2126,"stageId":"main_06-14"}
Which matches data for stage 6-16 (not 6-14)
Integrated Device | 2126 | 6880 | 30.90% | 67.96
Frontend Data for Stage 6-14
Orirock Cube | 278 | 916 | 30.35% | 59.31
Matches the API Data for Stage 6-12
{"itemId":"30012","times":916,"quantity":278,"stageId":"main_06-12"}
The odd thing is, I only notice it for chapter 6 and not the rest of the chapters.

thanks for the clarification.


Clarification / improved documentation on n_channels + banwidth parameters

Hello,
I was confused by this explanation in the Observation docstring:

n_channels (int, optional) – Number of channels used in the observation. Defaults to 82, which is equivalent to 1024 channels over 100 MHz of bandwidth. Sets maximum k_parallel that can be probed, but little to no overall effect on sensitivity.

bandwidth (float or Quantity, optional) – The bandwidth used for the observation, assumed to be in MHz. Note this is not the total instrument bandwidth, but the redshift range that can be considered co-eval.

Am I correct to take this as n_channels=82 across the co-eval bandwidth of bandwidth=8 MHz? (If so, the channel bandwidth is 97 kHz, which matches the aforementioned 1024 channels over 100 MHz)?
If this is right, may I suggest the docstring is updated to something like:

n_channels (int, optional) – Number of channels across the co-evaluated bandwidth (see 'bandwidth' parameter). Defaults to 82, to match the HERA 97 kHz channel width across 8 MHz. Sets maximum k_parallel that can be probed, but little to no overall effect on sensitivity.

bandwidth (float or Quantity, optional) – The bandwidth used for the observation, assumed to be in MHz. Note this is not the total instrument bandwidth, but the redshift range that can be considered co-evaluated.

Alternatively, these could be refactored so the user sets the channel_bandwidth instead, and bandwidth is renamed to coeval_bandwidth, which is a bit clearer (IMO).

HI @telegraphic -- yes, you're absolutely right that it means 82 channels across 8 MHz of "coeval" bandwidth. I think your suggested text is perfect.
I would consider allowing a new parameter channel_bandwidth which if given, over-rides the n_channels. We'd have to introduce it carefully so as not to break API though. We could also add coeval_bandwidth as an alias for bandwidth, but I think the docstring update you suggested does enough there.


Jpa Hitting performance impact it internally uses scan operation

What @EnableScan does there is no documentation. it seems like it hitting performance impact of dynamo db Using this getting ProvisionedThroughPutExceededExcecption.  @derjust  is there any better way to query records instead of scan. If you have any suggestion please guide me.

Hi @Cybertran !
The development of this project happens now here
It sounds a bit strange that a Scan is hitting the ProvisionedThrough**Put**ExceededExcecption.
@EnableScan is a marker annotation to allow a method to use a Scan operation - as it is expensive and scans the whole table.
You should create GSIs and perform Querys:

GSI explained
GSI example in the new project's wiki


Add support for logging to a file

Pub has detailed logging now, but its options for outputting the logs are limited. For the pub tests, we often want to specifically capture both stdout and stderr and it's tricky if the logs are in either of those.
It would be ideal if pub could be directed to log to a separate file (or pipe?). Then the pub tests could capture that separately and keep stdout/stderr clean.

This issue has been moved to dart-lang/pub#458.


No way to use custom mocha ui

Currently it's impossible to use custom mocha ui.
What I want is extra config option which allow to specify which files I want to load before bootstraping mocha (before adapter.js)
var initMocha = function (files, mochaConfig) {
  var mochaPath = path.dirname(require.resolve('mocha'))
  files.unshift(createPattern(__dirname + '/adapter.js'))
  // HERE: I want to iterate over config.mochaFiles and add them right after mocha.js
  files.unshift(createPattern(mochaPath + '/mocha.js'))

  if (mochaConfig && mochaConfig.reporter) {
    files.unshift(createPattern(mochaPath + '/mocha.css'))
  }
}

It seems like in my testing the mocha.opts file isn't respected by karma-mocha.
Putting --require ./test/spec_helper.js inside mocha.opts does nothing.

Actually the main cause of this exception is that adapter.js is included before custom ui. So, the simplest solution is to check if adapter is already inside files then don't add it otherwise - default logic:
files: [
  'path/to/my-ui.js',
  require.resolve('karma-mocha/lib/adapter'),
  'path/to/specs/*'
],
client: {
  mocha: {
    ui: 'my-ui',
    includeAdapter: false
  }
}

or even better we can check if adapter.js is inside files and if so, don't add it.
cc: @vojtajina @maksimr @zzo @Dignifiedquire

@stalniy you can create inline adapter for custom mocha reporter and load file before karma-mocha files

@maksimr this is browser's environment. I need to load files not before mocha.js but right after it. You can try to do this. I wanted to load https://github.com/stalniy/bdd-lazy-var right after mocha. If I do it before I will receive error (Mocha is undefined) as it adds new interface to Mocha.interfaces.

Think this is related but it would be nice to have a require option similar to gulp-mocha where we could hook into the --require functionality.
ex.
client: {
  mocha: {
    ui: 'my-ui',
    require: [ path.join(__dirname, 'some-script.js') ]
  }
}

Specifically this would be useful for me to do something like https://labnotes.org/yield-to-the-test-using-mocha-with-es6-generators/ where you could hook into something like mocha.Runnable.prototype.run before instantiation

@stalniy I've had some success getting your https://github.com/stalniy/bdd-lazy-var mocka ui to work by making the following changes to initMocha in lib/index.js:
var initMocha = function (files, mochaConfig) {
  var mochaPath = path.dirname(require.resolve('mocha'))
  var bddLazyVarPath = path.dirname(require.resolve('bdd-lazy-var'))
  files.unshift(createPattern(path.join(__dirname, 'adapter.js')))
  files.unshift(createPattern(path.join(bddLazyVarPath, 'bdd_lazy_var_global.js')))
  files.unshift(createPattern(path.join(mochaPath, 'mocha.js')))

  if (mochaConfig && mochaConfig.reporter) {
    files.unshift(createPattern(path.join(mochaPath, 'mocha.css')))
  }
}


Envisilink Plugin causing SIGTERM shutdown when run in Automation

Hello,
I'm kind of a NOOB so I will describe this issue as best as I can.
Since the last update (Aug 1) it appears that this plugin has been throwing a "SIGTERM" (whatever that means) when I run my HomeKit"Good Morning" Automation which shuts off the alarm.
The result is that my HOOBS server stops running.
This is not an issue when I arm or disarm the alarm through the Apple Home App but it does happen every morning when the "Good Morning" Automation is run.
It should be noted that on most mornings the alarm has already been disarmed by my wife before the "Good Morning" Automation is run (so I am turning off an alarm that is already off) however I don't believe that should make a difference.
A log example is below.
8/28/2020, 7:49:11 AM INFO: [Device Event]: (Loft Lamp) [SWITCH] is on
8/28/2020, 7:49:15 AM INFO: [Device Event]: (Dining Chandelier) [LEVEL] is 100
8/28/2020, 7:49:15 AM INFO: [Device Event]: (Dining Chandelier) [SWITCH] is on
8/28/2020, 7:49:16 AM INFO: [Device Event]: (Loft Lamp) [LEVEL] is 100
8/28/2020, 7:49:20 AM [Envisalink-Ademco] Alarm request did not return successful in allocated time, setting status to READY
8/28/2020, 7:49:20 AM TypeError: Cannot set property 'lastTargetState' of undefined
at /home/hoobs/.hoobs/node_modules/homebridge-envisalink-ademco/index.js:465:38
at EnvisalinkAccessory.getAlarmState (/home/hoobs/.hoobs/node_modules/homebridge-envisalink-ademco/index.js:409:13)
at EnvisalinkAccessory.proccessAlarmTimer (/home/hoobs/.hoobs/node_modules/homebridge-envisalink-ademco/index.js:463:18)
at listOnTimeout (internal/timers.js:549:17)
at processTimers (internal/timers.js:492:7)
8/28/2020, 7:49:20 AM ERROR: uncaughtException: Cannot set property 'lastTargetState' of undefined
8/28/2020, 7:49:20 AM TypeError: Cannot set property 'lastTargetState' of undefined
8/28/2020, 7:49:20 AM at /home/hoobs/.hoobs/node_modules/homebridge-envisalink-ademco/index.js:465:38
8/28/2020, 7:49:20 AM at EnvisalinkAccessory.getAlarmState (/home/hoobs/.hoobs/node_modules/homebridge-envisalink-ademco/index.js:409:13)
8/28/2020, 7:49:20 AM at EnvisalinkAccessory.proccessAlarmTimer (/home/hoobs/.hoobs/node_modules/homebridge-envisalink-ademco/index.js:463:18)
8/28/2020, 7:49:20 AM at listOnTimeout (internal/timers.js:549:17)
8/28/2020, 7:49:20 AM at processTimers (internal/timers.js:492:7)
8/28/2020, 7:49:20 AM Got SIGTERM, shutting down Bridge...

Hi,
I have seen this error recently and been testing correction for the past week my installation. I will release new version this weekend that hopefully address this issue.

version 1.1.7 has been release. The update fixes this issues.


UWP Redirect prompting "Did you mean to switch apps?

Xamarin.Auth Issue
Version

[ ] nuget version = <IP_ADDRESS>
[ ] component version =
[ ] sample -

Steps to reproduce

Create a Xamarin Forms UWP app that presents OAuth2/
Declare your redirect protocol scheme in the App manifest declarations tab and configure your Identity provider to accept it. My identity provider is a locally deployed instance of Keycloak.
Successfully authenticate and be prompted to switch apps

Platform:

[] .NET version = .Net Standard 2.0
[] mono version = Xamarin Forms <IP_ADDRESS>9982
Windows 10 Fall Creators Update (10.0; Build 16299)

Expected behaviour
The app should close the presenter without prompt and return credentials.
Actual behaviour
This happens every time. If you have multiple instances of your app then it really gets confused.

Additional Notes
The prompt will run before OnActivated is called in App.xaml.cs.

I am facing the same issue while using the following components:
Windows 10 Home version 10.0 build 17134
.Net Standard version 2.0.1
Xamarin.Forms version <IP_ADDRESS>5677
Xamarin.Auth version <IP_ADDRESS>
When Yes is Clicked, OnActivated method executes as expected but this really sucks from a UX POV. Is there any way for this to be suppressed?

@FreelanceComputing  @jjallen37  Did you find any solution?


[NPM] Use single connection buffer for getting connections

What does this PR do?
Uses a single ConnectionBuffer object to accumulate and report connections during a call to Tracer.GetActiveConnections(). Previously we were using one ConnectionBuffer object to collect active connections from ebpf and another to compute the delta of connections' stats, to which the connections from the first buffer were copied to. Even with one ConnectionBuffer allocations are avoided till the very end of the delta computation function (networkState.GetDelta). This is done by reusing the slices passed in to GetDelta.
Some changes to aggregation also:

a list of connections instead of one connection per aggregation key is now maintained. This is necessary when we can't aggregate connections' IP translation field. Each element in the list of connections per aggregation differs only in IP translation
closed and active connections are aggregated with each other. This should be ok to do since we sum together the stats, and will reduce connection count reported
the ProtocolStack field was not being aggregated at all

Gains from internal testing deployments below. Max RSS seems to show more improvement, while the max for working set seems to be lower as well, which should help with spikes in mem usage.

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Reviewer's Checklist

[x] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[x] A release note has been added or the changelog/no-changelog label has been applied.
[x] Changed code has automated tests for its functionality.
[x] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[x] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

Has this been installed & run under any sort of load on Windows?

Not on windows, no


Xcode8b2 Updates

What's in this pull request?
Updated for Xcode 8 Beta 2.
Turns on the Use Legacy Swift Language Version option in target Build Settings
Rebased against master as of commit 2cfcd9a0d38d6f9a25a00703512fa00434eaccfb
Why merge this pull request?
Attempt to keep up date with Swift 2.3
What's worth discussing about this pull request?
Performed minimal amount of work to make tests pass and ensure Swift 2.3 being used.
What downsides are there to merging this pull request?
Swift 2.3 support seems to only require running the Swift Converter and updating the target Build Settings.

Hello, could you check swift2_3 for whether these changes now in?
I apologize for not noticing sooner that beta 2 had relevant changes but I updated the branch yesterday.

@kykim Is this branch still necessary? If yes, please resolve the conflicts and so that I can review.

@kykim err… if no… please say no or delete the branch/PR
I will close this PR in a week if there isn't a response but it is only so that I can delete the branch. If there are issues that it fixes, please let me know and I will review and merge.

Seeing as we're up to beta 6, I'm going to close this.  Thank you @kykim!


[REQ] can you add legacy lightning to bloxstrap?

Acknowledgement of preliminary instructions

[X] I have read and acknowledged the preliminary instructions.


500 error while adding public key

Behaviour
I get an error while adding my public GPG key to anonaddy.
Steps to reproduce this issue

Generated a gpg key following this
Click on add public key
Adding this from my generated key

-----BEGIN PGP PUBLIC KEY BLOCK-----

mQGNBF+xWfABDADeNU+eGhOUNkVVanVYVmrehuR7HjQe+X/HuQoFIWcglZnLP0Iw
/p1hMXhnvgvqQRRLtQ23hWwG5uhs5jOeAlAry2LJ1fTnmUfTwBqVKMcFwazGf1bc
...
zEMMkNT4EGh8c64hk0jvOO4=
=E2E0
-----END PGP PUBLIC KEY BLOCK-----

Expected behaviour
The key is added
Actual behaviour
I get a generic error popup
Error
{ "message": "Server Error" }

My emails are not encrypted and are sent to the spam folder by gmail, I hope that by solving this they'll stop getting blacklisted...
Configuration

Docker version (type docker --version) : Docker version 19.03.13, build 4484c46d9d
Docker compose version if applicable (type docker-compose --version) :  docker-compose version 1.26.0, build d4451659
Platform (Debian 9, Ubuntu 18.04, ...) : ubuntu 20
System info (type uname -a) :  Linux v2202005122621119251 5.4.0-52-generic #57-Ubuntu SMP Thu Oct 15 10:57:00 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Include all necessary configuration files : docker-compose.yml, .env, ...

Logs
[15/Nov/2020:18:55:24 +0100] "PATCH /api/v1/recipient-keys/8d9665cd-5a26-4fda-8c3b-9e06d5374c5d HTTP/1.1" 500 44 "https://mail.domain.tld/recipients" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0"
docker-compose.yml
version: "3.5"

services:
  db:
    image: mariadb:10.4
    container_name: anonaddy_db
    volumes:
      - "/data/anonaddy/db:/var/lib/mysql"
    environment:
      - "MYSQL_ALLOW_EMPTY_PASSWORD=yes"
      - "MYSQL_DATABASE=${MYSQL_DATABASE}"
      - "MYSQL_USER=${MYSQL_USER}"
      - "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
    restart: unless-stopped

  redis:
    image: redis:4.0-alpine
    container_name: anonaddy_redis
    restart: unless-stopped

  anonaddy:
    image: anonaddy/anonaddy:latest
    container_name: anonaddy
    depends_on:
      - db
      - redis
    ports:
      - target: 25
        published: 25
        protocol: tcp
#      - target: 8000
#        published: 8000
#        protocol: tcp
    volumes:
      - "/data/anonaddy/data:/data"
    env_file:
      - "./anonaddy.env"
    environment:
      - "DB_HOST=db"
      - "DB_DATABASE=${MYSQL_DATABASE}"
      - "DB_USERNAME=${MYSQL_USER}"
      - "DB_PASSWORD=${MYSQL_PASSWORD}"
      - "REDIS_HOST=redis"
    restart: unless-stopped

anonaddy.env (partial)
TZ=Europe/Berlin
PUID=1000
PGID=1000

MEMORY_LIMIT=256M
UPLOAD_MAX_SIZE=16M
OPCACHE_MEM_SIZE=128
REAL_IP_FROM=<IP_ADDRESS>/32
REAL_IP_HEADER=X-Forwarded-For
LOG_IP_VAR=remote_addr

APP_KEY=base64:generated key
APP_DEBUG=false
APP_URL=mail.domain.tld

<EMAIL_ADDRESS>ANONADDY_DOMAIN=domain.tld
ANONADDY_ALL_DOMAINS=domain.tld
ANONADDY_HOSTNAME=mail.domain.tld
ANONADDY_DNS_RESOLVER=<IP_ADDRESS>
ANONADDY_SECRET=random string. I'd like some pointers on this
ANONADDY_LIMIT=200
ANONADDY_BANDWIDTH_LIMIT=104857600
ANONADDY_NEW_ALIAS_LIMIT=10
ANONADDY_ADDITIONAL_USERNAME_LIMIT=3
ANONADDY_SIGNING_KEY_FINGERPRINT=gpg short signature

MAIL_FROM_NAME=Admin
<EMAIL_ADDRESS>
POSTFIX_DEBUG=false
POSTFIX_SMTPD_TLS=false
POSTFIX_SMTP_TLS=false

WDYT @willbrowningme?

What does the Laravel log say? I'm not sure where this is kept for the Docker image.

Under storage/logs
[2020-11-15 17:55:24] production.ERROR: Class 'gnupg' not found {"exception":"[object] (Error(code: 0): Class 'gnupg' not found at /var/www/anonaddy/app/Http/Controllers/Api/RecipientKeyController.php:15)
[stacktrace]
#0 [internal function]: App\\Http\\Controllers\\Api\\RecipientKeyController->__construct()
#1 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Container/Container.php(849): ReflectionClass->newInstanceArgs(Array)
#2 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Container/Container.php(691): Illuminate\\Container\\Container->build('App\\\\Http\\\\Contro...')
#3 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(796): Illuminate\\Container\\Container->resolve('App\\\\Http\\\\Contro...', Array, true)
#4 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Container/Container.php(637): Illuminate\\Foundation\\Application->resolve('App\\\\Http\\\\Contro...', Array)
#5 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(781): Illuminate\\Container\\Container->make('App\\\\Http\\\\Contro...', Array)
#6 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Routing/Route.php(269): Illuminate\\Foundation\\Application->make('App\\\\Http\\\\Contro...')
#7 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Routing/Route.php(990): Illuminate\\Routing\\Route->getController()
#8 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Routing/Route.php(951): Illuminate\\Routing\\Route->controllerMiddleware()
#9 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Routing/Router.php(708): Illuminate\\Routing\\Route->gatherMiddleware()
#10 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Routing/Router.php(684): Illuminate\\Routing\\Router->gatherRouteMiddleware(Object(Illuminate\\Routing\\Route))
#11 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Routing/Router.php(668): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#12 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Routing/Router.php(634): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#13 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Routing/Router.php(623): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#14 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#15 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#16 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#17 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#18 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#19 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#20 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#21 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#22 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(87): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#24 /var/www/anonaddy/vendor/fruitcake/laravel-cors/src/HandleCors.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#25 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#26 /var/www/anonaddy/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#27 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#28 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#29 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#30 /var/www/anonaddy/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#31 /var/www/anonaddy/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))

You need to add the gnupg PHP extension.
sudo apt install php7.4-gnupg

I'm not sure if that's the correct way to do it with Docker but that it what is causing the error.

@willbrowningme The extension is already installed but gnupg binary is missing. Will fix that.

@LivingWithHippos Can you test with anonaddy/anonaddy:edge image?

I get the same error. Portainer shows this image in use:
anonaddy/anonaddy:edge@sha256:ad872f262364b0ab808562d9df82759b8202c6f4b95ba03e0531ac099a884cea

Ok so gnupg is found?

My bad I wasn't really clear. Gnupg is still not working, laravel shows the same error, if I try with a real gpg key I get the generic error. What I meant is that sshing into the container and running apk add gnupg wasn't a solution as I believed

@LivingWithHippos Ok you've got this error production.ERROR: Class 'gnupg' not found right?

Yes
[2020-11-25 11:26:56] production.ERROR: Class 'gnupg' not found {"exception":"[object] (Error(code: 0): Class 'gnupg' not found at /var/www/anonaddy/app/Http/Controllers/Api/RecipientKeyController.php:15)
**[stacktrace]**

I still think this is caused by the php gnupg extension not being installed correctly. If you run php -m from the command line can you see the gnupg module listed?

@willbrowningme Yes that's it.
@LivingWithHippos Can you pull and try again with anonaddy/anonaddy:edge image?

On the edge container:
bash-5.0# php -m
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
gd
hash
iconv
igbinary
imagick
intl
json
libxml
mailparse
mbstring
mysqlnd
openssl
pcre
PDO
pdo_mysql
Phar
readline
redis
Reflection
session
SimpleXML
SPL
standard
tokenizer
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

bash-5.0# which gpg
/usr/bin/gpg

But I can't do sudo apt install php7.4-gnupg as it does not use apt but apk (alpine linux)
I tried
bash-5.0# apk add --no-cache gnupg
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
OK: 222 MiB in 158 packages

But it still does not appear probably because as you say that's not the php version. pecl is not recognized so I can't install it that way.
So inspired by the Dockerfile I tried
apk --update --no-cache add -t build-dependencies \
    autoconf \
    automake \
    build-base \
    gpgme-dev \
    libtool \
    pcre-dev \
    php7-dev \
    php7-pear

But I get
bash-5.0# pecl install gnupg
pecl/gnupg is already installed and is the same as the released version 1.4.0
install failed

I 'm now trying to check how to enable the extension in the ini

@LivingWithHippos

I 'm now trying to check how to enable the extension in the ini

The extension is enabled with my last commit. Are you sure you have pulled the edge tag again?

@LivingWithHippos Nevermind I've missed something. I will create a new build, keep you in touch.

I answered before I could see your message, it was in response to the previous one by willbrowningme. The new image has not been updated to dockerhub yet anyway. I'll wait for the newer build.

@LivingWithHippos Ok we should be good now. Can you pull and try again with anonaddy/anonaddy:edge image? Thanks!

I now get
Error
Key could not be imported

No laravel logs, no docker logs aside from the 404 one
 myip - - [25/Nov/2020:19:18:40 +0100] "PATCH /api/v1/recipient-keys/013edc81-7872-4e95-b331-0fa3746337ba HTTP/1.1" 404 56 "https://mydomain.tld/recipients" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0"
image: anonaddy/anonaddy:edge@sha256:329799def644f5b25e734e3f6c55f9fcf213eb3327bc4c39f18479b35d5f6332
I think the gnupg issue is solved, this one should be something else

WDYT @willbrowningme ?

Please could you try saving the public key as a file on the server and then run the following as the user who executes the php code:
gpg --import ~/the-public-key.asc

Then confirm by running
gpg -k

@LivingWithHippos With docker compose you can do:
$ docker-compose exec --user anonaddy anonaddy gpg --import /the-public-key.asc
$ docker-compose exec --user anonaddy anonaddy gpg -k

Don't forget to bind your key to the container in the compose file: mykey.asc:/the-public-key.asc

bash-5.0# gpg --import pubkey.asc
gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 5E5BC93CF674EFD9: public key "mykey<EMAIL_ADDRESS>imported
gpg: Total number processed: 1
gpg:               imported: 1

bash-5.0# gpg -k
/root/.gnupg/pubring.kbx
------------------------
pub   rsa3072 2020-11-15 [SC] [expires: 2022-11-15]
      A386EA51DEC19797EE8BB2045E5BC93CF674EFD9
uid           [ unknown] mykey<EMAIL_ADDRESS>sub   rsa3072 2020-11-15 [E] [expires: 2022-11-15]

Hmm so gpg appears to be functioning correctly. Where does it show "Error Key could not be imported", in the little notification in the bottom right?
Could you open the developer tools in your browser and go to the network tab and see what response is returned from the server when you try to add the key?

@LivingWithHippos

bash-5.0# gpg --import pubkey.asc

I don't think you have done this inside the container? Do you?

@LivingWithHippos

bash-5.0# gpg --import pubkey.asc

I don't think you have done this inside the container? Do you?

Yes with
'docker ps | grep anon' I get the container name and then I can do 'docker exec -it anon /bin/bash' to use bash into the container.
Tomorrow I'll try the new web console

Hmm so gpg appears to be functioning correctly. Where does it show "Error Key could not be imported", in the little notification in the bottom right?

Yes

Could you open the developer tools in your browser and go to the network tab and see what response is returned from the server when you try to add the key?

it's the one mentioned here https://github.com/anonaddy/docker/issues/34#issuecomment-733875258
PATCH | https://mydomain.tld/api/v1/recipient-keys/013esc81-7832-4e95-b331-0fa5086137ba
404 - Not Found

I have a similar problem (I cannot add a PGP key and get a PATCH 404 error when I try to) but think I have found a solution to add the key at least. I believe the problem arises from a .gnupg folder not existing and the user anonaddy does not have permission to create a folder in its home directory (/var/www/anonaddy). In this comment adding the key works as @LivingWithHippos was adding the key as root and it created the .gnupg folder at /root/.gnupg, and not at /var/www/.gnupg, where the anonaddy user (the user that runs php, I think?) expects. If I create a .gnupg directory as root and then change the ownership to anonaddy, I can add the key using the web interface as expected.
# docker exec -it anonaddy_anonaddy_1 bash
# mkdir .gnupg
# chown anonaddy:anonaddy .gnupg

The .gnupg folder doesn't persist on container recreation of course but the key still appears in the "Recipients" page. No idea if encrypting emails actually works though - I'm getting this error, but that could possibly be a different problem with my set up...
postfix/pipe[1144]: MAILID<EMAIL_ADDRESS>relay=anonaddy, delay=303, delays=1.6/0.01/0/301, dsn=4.3.0, status=deferred (An error has occurred, please try again later. )

The .gnupg folder doesn't persist on container recreation of course but the key still appears in the "Recipients" page

We can try creating a "./.gnupg:/var/www/.gnupg" folder mount from docker compose. The user anonaddy has id:group 1000:1000 so if you use the default user on your host you don't even need to change ownership.

adding the key as root

that's the default user, maybe the Dockerfile can be changed and a user switch can be added in the end (if the container does not need root)

I got the same error. Fixed it with mounting "./.gnupg:/var/www/anonaddy/.gnupg" into the docker container

I've pushed some changes to handle GPG keys. See https://github.com/anonaddy/docker/pull/53/files.


change curves from pallas/vesta to bn256; modify poseidon hash params

This is Chao's change to the curve and parameters, I'll merge it directly .


silent failure with [cmyk]{color}

if color is loaded with cmyk, the highlight no longer works.
\documentclass[10pt,extrafontsizes,oneside]{memoir}

\usepackage[cmyk]{xcolor}
\usepackage{soulutf8}

\begin{document}

\hl{hello}.  can you see me?

\end{document}

this is one of the gotchas that take one hours to track down in complex files.  it would be great if soul could have xcolor throw an error when it tries to work with cmyk.
PS: I also wish we would place a 'deprecated' message on ctan and into the file at soul.sty.  I was about to report this to the author when I accidentally learned that the maintainer had become inactive.  thanks for taking this on.

This is a duplicate of issue #1. And this here is the repo for soulutf8, not soul.


Remove version: Wesnoth.BattleForWesnoth version 1.15.18

[Automated] It returns code over 400 in all urls
Microsoft Reviewers: Open in CodeFlow

URL: https://sourceforge.net/projects/wesnoth/files/wesnoth/wesnoth-1.15.18/wesnoth-1.15.18-win64.exe/download
OK
(Automated message - build 923)


Decide on how we transform from raw to normalised state

We know what the raw state looks like.
We (broadly) know what the normalised state looks like, and the algorithmic process for getting there (correct me if I'm wrong on this, @kindly?)
We had originally talked about using SQL to do the transformation, but since Julia's left we don't have so much SQL expertise or preference for using SQL. Other options include doing the processing in pure Python, or using a framework such as pandas.
In the first few days of the sprint (or even before we start, if people have time to start the discussion here), we should decide on how we go about doing this transformation.
cc: @juanpane @Tim0th1 who may well have opinions here.

I understood that this code was potentially useful for some of our statistics generation, if not our normalisation into tables: https://kindly.github.io/notebooks/ocds/coverage_ocds
I've been exploring querying JSON with PostGres, and understand that we should be able to do lots of what we need in SQL - and that the key question for normalisation is how normalised we need to be in order to have performance on querying.

Thanks, @timgdavies . One factor we should consider in our choice of tech is maintainability - where the code will sit, who will see it as approachable vs who will see it as a 'black box', and how confident everyone who needs to use it will be in modifying it.
If we're happy that we can skill everyone up sufficiently to be able to use SQL for this (and I'm not expecting it to be particularly challenging SQL) then this could be a very easy discussion. But, I remember how hard I found learning SQL, sets and relations coming from a procedural programming background, so I want to consider how others will find this.

This seems like a very important conversation.
I think minimising SQL use is not easy but it may be desirable for the promotion of OCDS.
My perception is that python is growing so fast and is so popular that it would be more attractive to enable this type of transformation solution.
In the past, my SQL weakness could be fudged by only using a little at the beginning of the pipeline but then I'd read the data to a pandas dataframe. However, I never stepped outside a 2gb database before. OCDS is much bigger isn't it? I take that to be the key normalisation constraint.
If we are just looking at an interim solution it may not matter too much. Otherwise, my view is that we need to undertake some end user research for accessibility. What will they teach in classrooms? Every social science undergraduate will learn python but not SQL. We want to maximise accessibility.
Crudely, I suppose I see a compromise as a really simple bespoke microsoft Access type UI for the SQL data fetch linked to a Jupyter book reading the set of related output tables in a pandas dataframe.

I don't have a strong preference either way but to add a few notes:

The raw tables have some stuff to try and avoid storing duplicated data when importing the same source across different time points, and we should try and do the same for normalised tables.

To build on Rob's "choice of tech is maintainability" point, I'd strongly push for automated tests what ever solution we go for. I think it should be possible in either case. Ideally, we'd get to the point where a lot of people can treat this bit as essentially a black box, and because of the tests they would just have confidence that it works. (This also lets us change bits around later while having confidence we haven't broken it!)

We learnt during the community call that the choice of Postgresql wasn't universally liked, so maybe there is something to be said for keeping this in Python as much as possible and thus making it easier for others to adopt to other data stores?

We (broadly) know what the normalised state looks like, and the algorithmic process for getting there (correct me if I'm wrong on this,

Think that is slightly wrong.

and that the key question for normalisation is how normalised we need to be in order to have performance on querying.

I actually think this is the first question we really need to tackle - it's a big question, and once we have the answer to that we can discuss how to get from A->B. At the moment, it might be the case that B isn't totally defined clearly.

I've been doing some testing with sample data to get a sense of (a) how to query the current data; (b) what we can do with JSON queries in postgres; (c) what issues we will hit in terms of coming up with normalised versions of the data (the big issues come when you try and combine two arrays in a single table, and you have to make choices about repeating of rows in data-frame representations.
So far, I've been looking at queries to get the latest version of data for a given publisher, which I think means I need to join quite a few tables:
SELECT data
FROM data
LEFT JOIN release on release.data_id = data.id
LEFT JOIN source_session_file_status on release.source_session_file_status_id = source_session_file_status.id
LEFT JOIN source_session on source_session_file_status.source_session_id = source_session.id
WHERE source_session.id IN (SELECT id FROM source_session WHERE source_id = '{{source}}' ORDER BY data_version DESC LIMIT 1)

I've then been looking at how this performs if I use the Postgres JSON features to pull out things like 'tenders', 'awards' etc.
SELECT data, data -> 'tender' as tender, data->'awards' as awards
FROM data
LEFT JOIN release on release.data_id = data.id
LEFT JOIN source_session_file_status on release.source_session_file_status_id = source_session_file_status.id
LEFT JOIN source_session on source_session_file_status.source_session_id = source_session.id
WHERE source_session.id IN (SELECT id FROM source_session WHERE source_id = '{{source}}' ORDER BY data_version DESC LIMIT 1)

This seemed to get much slower than without the JSON queries, suggesting (initially) that some pre-normalisation of the JSON content could make sense?

I've been doing a bit more testing of postgres JSON query, and finding the combination of postgres + redash's JSON output option is really rather awesome.
The jsonb_array_elements function seemed to perform very well, and exactly as I wanted in the query below, to create a row for each item/item classification.

The query used was:
SELECT  data,
        data -> 'ocid',
        data -> 'buyer' as buyer,
        data -> 'planning' as planning,
        data -> 'tender' as tender,
        data -> 'tender' -> 'items' as tender_items,
        jsonb_array_elements(data -> 'tender' -> 'items')->'classification'->'scheme' as tender_items_classification_scheme,
        jsonb_array_elements(data -> 'tender' -> 'items')->'classification'->'description' as tender_items_classification_description ,
        jsonb_array_elements(data -> 'tender' -> 'items')->'classification'->'id' as tender_items_classification_id,
        data -> 'awards' as awards,
        data -> 'contracts' as contracts
FROM data
LEFT JOIN release on release.data_id = data.id
LEFT JOIN source_session_file_status on release.source_session_file_status_id = source_session_file_status.id
LEFT JOIN source_session on source_session_file_status.source_session_id = source_session.id
WHERE source_session.id IN (SELECT id FROM source_session WHERE source_id = '{{source}}' ORDER BY data_version DESC LIMIT 1)

where {{source}} was 'uk_contracts_finder'

We talked about this at length in sprint prep on Friday. The fundamental shift in my thinking during the discussion has been that this isn't necessarily about us developing a single piece of code (be it SQL, Python, or anything else) that spits out normalised tables at the end, but helping make sure that the analysts who are using the data have the tools that they need to do their work, which may or may not include normalised tables, or stock queries, or helper tables....etc.
So, this is great to see @timgdavies - and I think that rather than aiming for a period of user research followed by development and then handover, an ongoing conversation and support around what's useful would be the way forward - eg in internal issue 15228 I'm helping Duncan get some specific historic data, and if that proves to be something we want to do repeatedly I can look at adding it as a function to the cmdline tool. Here, we've already got a ticket to work next sprint around helping people store and share useful queries, and if some regular preprocessing helps then we can add that to the tool.

Agreed @robredpath. I think saved and parameterised queries in redash could get us quite a long way here.
And if we get permissions set-up right in both Redash and Postgres, then could be possible to use front-end interface to run some on demand / scheduled queries to create those helper tables.

A quick note that one of the most important steps for us analysing the data though is converting from 1.0 -> 1.1, which may need to happen in python.
Without this, we end up having to write queries that search in multiple places for 1.0 and 1.1 data. Whereas ideally we would like to know:

Who originally published as 1.0;
What people are publishing whether they used 1.0 or 1.1;

The main thing here is about the parties section (which was introduced in 1.1, and which 1.0 data can be programatically translated into).
We should be aware in anything we architect that, whilst conversion from 1.x -> 1.x+1 should always be possible, in future we may have both 1.x and 2.x data in a database, and these may not be compatible with one another.
One possible way to handle things may be to have separate tables for each data version, or just a version flag in the data table.
Note that where no version is given, we should assume version is 1.0 (this is CoVEs behaviour too)

@timgdavies now that's really interesting. Why do you need to do that conversion?

The main issue is this one:

Without this, we end up having to write queries that search in multiple places for 1.0 and 1.1 data.

In the BigQuery workflow we were already doing this using the following script: https://github.com/open-contracting/sample-data/blob/master/real-examples/update_to_v1_1.py
It really helps to promote just one way of querying on parties.
In general, we would encourage anyone building OCDS tools to target the latest version of the schema, and 'upgrade' any incoming data in earlier versions when loading it.

Thanks @timgdavies , that's really helpful!

Re: Upgrade from 1.0 to 1.1, see #256

Re: Compile releases, see #133
My understanding is that this issue was originally about whether to transform the JSON into flat SQL tables. It seems there has been no demand for that, but rather for transformations of the JSON into other JSON. The latter is covered in linked issues, so closing.


Complete the wiki

We should complete the wiki to have a good starting point for new and also experienced users.

Closed in favour of the documentation sprint


BUG - getCredentialsForDestinationService returns wrong credentials

Description
The function getCredentialsForDestinationService returns the wrong credentials because it fails to read correctly the clientId and clientSecret from the service info.
Current State
  const serviceInfo = await cfGetInstanceKeyParameters(instance);
  const clientId = serviceInfo.uaa?.clientid || serviceInfo.clientid;
  const clientSecret = serviceInfo.uaa?.clientsecret || serviceInfo.clientsecret;

Correct State
  const serviceInfo = await cfGetInstanceKeyParameters(instance);
  const clientId = serviceInfo.credentials.uaa?.clientid || serviceInfo.credentials.clientid;
  const clientSecret = serviceInfo.credentials.uaa?.clientsecret || serviceInfo.credentials.clientsecret;

Expected results
Correct credentials are returned
Actual results
Wrong credentials are returned
Screenshots
If applicable, add screenshots to help explain the problem.
Version/Components/Environment
Add any other context about the problem here
OS:

[x] Mac OS
[x] Windows
[ ] Other

Root Cause Analysis
Problem
{describe the problem}
Fix
{describe the fix}
Why was it missed
{Some explanation why this issue might have been missed during normal development/testing cycle}
How can we avoid this
{if we don’t want to see this type of issues anymore what we should do to prevent}

Fixed


有朋友可以帮忙看下么，系统是centos7.6 现在gofound就是无法启动

[GIN-debug] GET    /api/db/list              --> github.com/sea-team/gofound/web/controller.DBS (6 handlers)
[GIN-debug] GET    /api/db/drop              --> github.com/sea-team/gofound/web/controller.DatabaseDrop (6 handlers)
[GIN-debug] GET    /api/db/create            --> github.com/sea-team/gofound/web/controller.DatabaseCreate (6 handlers)
[GIN-debug] GET    /api/word/cut             --> github.com/sea-team/gofound/web/controller.WordCut (6 handlers)
2023/05/31 14:19:34 API Url: 	 http://:8080/api
2023/05/31 14:19:44 waiting: 0
2023/05/31 14:19:44 waiting: 0
2023/05/31 14:19:54 waiting: 0
2023/05/31 14:19:54 waiting: 0
^C2023/05/31 14:19:59 Shutdown Server ...
2023/05/31 14:19:59 Server exiting

2023/07/14 17:00:35 API Url:     http://<IP_ADDRESS>:5678/api
netstat -lntp | grep 8080
check the port if used already


Remove releasing extension from PR yml

Codecov Report

Merging #10731 (72a4034) into main (5e0e77a) will decrease coverage by 0%.
The diff coverage is n/a.

:exclamation: Current head 72a4034 differs from pull request most recent head 877e500. Consider uploading reports for the commit 877e500 to get more accurate results

@@          Coverage Diff           @@
##            main   #10731   +/-   ##
======================================
- Coverage     62%      62%   -1%
======================================
  Files        476      476
  Lines      32985    32985
  Branches    5356     5356
======================================
- Hits       20748    20721   -27
- Misses     10254    10270   +16
- Partials    1983     1994   +11

Impacted Files
Coverage Δ

src/kernels/errors/jupyterInvalidKernelError.ts
62% <0%> (-38%)
:arrow_down:

src/platform/debugger/debugger.ts
66% <0%> (-12%)
:arrow_down:

src/notebooks/debugger/debuggingManagerBase.ts
69% <0%> (-7%)
:arrow_down:

src/platform/common/cancellation.ts
59% <0%> (-6%)
:arrow_down:

src/kernels/installer/productInstaller.node.ts
74% <0%> (-5%)
:arrow_down:

...rc/kernels/debugger/debugLocationTrackerFactory.ts
96% <0%> (-4%)
:arrow_down:

...rnels/raw/finder/localKernelSpecFinderBase.node.ts
81% <0%> (-3%)
:arrow_down:

src/kernels/jupyter/session/jupyterSession.ts
72% <0%> (-3%)
:arrow_down:

src/kernels/kernelDependencyService.node.ts
85% <0%> (-1%)
:arrow_down:

src/kernels/debugger/kernelDebugAdapterBase.ts
79% <0%> (-1%)
:arrow_down:

... and 2 more


Update test_chai_v4.x.x.js

This works only together with the previously added pull request.

@alinex Should be fulfilled not fullfilled. I'd recommend you run the spec locally before opening  a PR, just to double check your changes.

Closing as the specs are still broken. If you're still interested in merging this PR, reopen it and fix the specs, and we'll merge it right in!


Helpers for publication start and end

It could help implementers if Navigator could return whether a publication is at the start or the end in a reliable manner.
Although it’s possible to implement different strategies at the app level, we know it’s also difficult to do it for end since progression is never 100%, a position may be spread on 2 pages, etc. This is why the additional information Navigator gets privately could help determine these 2 states more reliably.
Use cases include:

disabling navigation arrows while at start (left in LTR) or the end (right LTR);
marking the publication as read
Moving to the next publication in a series

This is also something that we've been requested on mobile toolkits. I thought of adding information about the column index + column count of the current resource in the "moved" event.
Caveat: Many books actually end much before the end of the reading order. Here landmarks would be more useful.


(PUP-1963) allow dependencies on/for generated resources

Previously, generated resources could not have edge metaparams or
participate in autorequire, since they were created AFTER those
transformations had occured on the catalog. This changes resource
generation to occur before those transformations.
Because of this, the containment edges for generated resources now end
up in the final relationship graph. This caused issues with purged
resources, since the purge check now sees that a whit depends on the
purged resource. This was resolved by excluding whits from the purge
safety check. Since whits can only be generated by containment edges,
and generated resources previously could not have containment edges,
this is not a breaking change.
In order to maintain manifest ordering, it is necessary to add the
generated resources into the catalog adjacent to the generating
resource. This is achieved with new helpers on the catalog class to
handle ordered insertions.
Existing spec tests handle verifying manifest ordering works correctly
for generated resources, and integration tests for things like
resource purging handle reasonably complex generation cases. New tests
have been added only for the new edges that are being generated after
this commit.

I have NO IDEA how this could have failed on Windows, but I just pushed up an ammended commit, so we'll find out if it's reproducible shortly

wtf appveyor?

Awesome. I guess I know what I'm doing today. Yay windows.

@kylog of course that test passes for me in my windows env :/
I can try to push up a version of this that just runs the failing test with some extra debug printing, we might be able to see what's up that way. Sounds not fun :(

Actually, looks like it passes when run in isolation but fails when I run the whole suite. Bisecting now.

OK, I figured it out. My new test created a type with the same name as a type made in another test. When they were ordered appropriately, my test would fail, since the type wouldn't have the expected properties

This should be ready for review now

My new test created a type with the same name as a type made in another test. When they were ordered appropriately, my test would fail, since the type wouldn't have the expected properties

Well, that sounds like fun.

Tested this on concat 2.0.1 and refreshes were appropriately triggered! :+1:

@bmjen :metal: Thanks for checking it ou!

@MikaelSmith updated

:+1:


Development: Fix faulty quiz submission requests for cypress quiz assessment tests

Motivation and Context
 The cypress quiz assessment tests have been failing since the API has seemingly changed. I solve this by refactoring the quiz submission requests.

Steps for Testing
We have a tutorial for cypress PRs  here
Review Progress

Code Review

[ ] Review 1
[ ] Review 2

Manual Tests

[ ] Test 1
[ ] Test 2

Plan  passes  again with these changes.


Fix for compilation issue/MSVC

Fix for compilation issue/MSVC (Windows)

thanks for the PR bug fix! i should've seen that way earlier. I really appreciate it :)


feat(chat): divider component

What this PR does 📖

[x] Add new message divider component
[x] Memoize the first unread message id from num_unread_messages value so that we can render the divider correctly.
[ ] Show formatted duration in divider label

Which issue(s) this PR fixes 🔨

Resolve #295

Special notes for reviewers 🗒
Additional comments 🎤

I would appreciate any help with this issue, I am trying to compute first_unread_message_id from chat.num_unread_messages within src/components/main/compose/messages/mod.rs. How would you go about solving this in Dioxus?

Found a solution by adding a first_unread_message_id field on ConversationInfo:
https://github.com/Satellite-IM/Uplink/blob/b1516c50fab8368dc3ab23e4a677b34ef6e8b81d/src/state/src/lib.rs#L68

Hi Jason! So when I was testing it was working very well on Windows but I had a lot of trouble trying to get it to appear on MacOS when I could get it to appear on MacOS the new message divider would appear under the new message

@phillsatellite Thanks! I fixed the rendering order. But I am not getting the weird behaviour since https://github.com/Satellite-im/Uplink/pull/515/commits/d62bbd1783177b1d37eefae84742b5b3f88f2a98. Can you test it again and see if anything has changed since the last commit?