Raidboss: Better go direction alert for MT

Summary
goLeft and goRight function is based on the direction of players who stand behind boss.
For MT which facing boss, direction is reversed.
With aggro condition, we can give a reversed alert to MT to make them feel better.
cc @DieMoe233 (who is the first one mentioned this) @ShadyWhite
(And thanks to @Echoring for translating this.)

@DieMoe233 mentioned that there are few features in OverlayPlugin which can help us to fetch the current aggro target of Boss.
Maybe we can work from that first.

Sorry, but this is something I disagree with.  I think it's better to be consistent here and always give left/right boss positions as if you were at the back of the boss.  I agree that it's confusing for tanks (and I've been a tank since forever, so trust me), but having directions that always mean the same thing is important.
Some people pipe cactbot into discord tts callouts, and so anybody who is a tank and doing this would confuse the rest of their group.  There are situations in e12s where the boss is fixed in place and I might be anywhere in the arena, and so having to think "ok I have aggro, so even though I'm behind the boss then left means right here".  It's simpler to always think "left means left side of boss" and trust that the callout is going to be correct without any other conditions.
I think if this is something you want locally, then it's better for a user folder, but for the shipped cactbot triggers I think it's important to be extremely consistent with directions.


[es-MX Number] Inconsistency in the output resolution for the decimal point

The resolution for numbers in the es-MX comes with a comma, which is different then how it is interpreted in es-ES and en-US. It should be agnostic to the culture and prouce a consistent resolution
To Reproduce
Sending a query to the recognizer to resolve that has a decimal point like $3.21 would return the following
withUnitRecognizer.GetCurrencyModel("es-es").Parse("$3,21")[0].Resolution["value"];   => “3,21”
withoutUnitRecognizer.GetNumberModel("es-es").Parse("$3,21")[0].Resolution["value"];   => “3,21”
withUnitRecognizer.GetCurrencyModel("es-mx").Parse("$3,21")[0].Resolution["value"];   => “3,21”
withoutUnitRecognizer.GetNumberModel("es-mx").Parse("$3,21")[0].Resolution["value"];   => “3.21”
Expected behavior
The output resolution should be consistent across the different cultures

This is closely related to #2578 and #774. In my view the best solution would be to always output a canonical form (dot-separated) and do a bump in the major version of packages (start 2.*) along with the fix for #513.


Search icon is too close to field text in large scale

Description
The padding between the field's text and the icon looks too small in large scale. This is because the padding between the field's text remains static between medium and large scale.
Steps to reproduce

Go to https://opensource.adobe.com/spectrum-css/components/search/
Switch to Large scale
See that the padding between the search icon and the text is pretty small

Screenshots

Large

vs
Medium

Environment

Spectrum CSS version<EMAIL_ADDRESS>Browser(s) and OS(s):

Additional context
I've made changes here: https://github.com/adobe/react-spectrum-v3/pull/135/files that mimics the css styling for decorated Textfields and TextAreas (see https://excelerate-team.slack.com/archives/G8R3V30FL/p1576270697011700?thread_ts=1576179094.077500&cid=G8R3V30FL). Lemme know if the vars are ok

@jianliao now that we have updated DNA, can we finish this issue?

@lazd Only 5.24.0 and above contains the fix for this issue, but we're still on 5.23.0.

@jianliao ok, let's upgrade and fix it. @GarthDB, I thought this would come in from the focus-ring updates?

Do you mean this change? https://github.com/adobe/spectrum-css/commit/d87e9a54dd822146faccc5df9c69ac56aa1ce790#diff-0f7ca5a046722e4b2b8eb1321ee79a53

@jianliao yes, the script was ran, but the dep was not saved into package.json accidentally. Can you check the vars/ folder in master and see if your variable update is present?

Confirmed. The variable update for spectrum-search.css is not there.

Ok, then can you work with @GarthDB to make sure his 6.x beta branch is updated?

@jianliao I also wonder if the work in #615 fixes this issue? If so, you can go ahead and close it.

@lazd I just verified it on the branch of #615. Now medium and large are consistent, but the width of gap between Magnifier and Text is wrong. It is too close now.


build: fixed a few minor broken refs, etc.

there's also some cleanups and more tests

ok, the build is green now ;-)


JSON localization support

Hello. We have a translation with default laravel function:
{{ __('Locale') }}
I can translate this string in en.json in folder resources/lang/en.json. How I can write json translations with this package?

@ExsyDev This is not implemented yet and should be implemented in the laravel-chained-translator: see https://github.com/statikbe/laravel-chained-translator/issues/3

Json support is now added in statikbe/laravel-chained-translator v.2.1.0.

Json is not working. I have two files in lang directory (en.json, de.json) and translastion manager don't show it


feat(Formatters): Add a spoiler function

Please describe the changes this PR makes and why it should be merged:
This PR adds a spoiler function to text formatters. If it gets accepted, I'll add it to https://github.com/discordjs/discord.js/blob/master/src/util/Formatters.js
Status and versioning classification:

I know how to update typings and have done so, or typings don't need updating
This PR changes the library's interface (methods or parameters added)
This PR includes breaking changes (methods removed or renamed, parameters moved or removed)

Codecov Report

Merging #16 (9c5326b) into main (f83fe99) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff            @@
##              main       #16   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           15        15
  Lines          141       142    +1
  Branches        20        20
=========================================
+ Hits           141       142    +1

Impacted Files
Coverage Δ

src/messages/formatters.ts
100.00% <100.00%> (ø)

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 f83fe99...9c5326b. Read the comment docs.


APIv2: Container create requires network

Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
Description
Using APIv2 to create a new container fails with invalid network. I just want to create a new container with using only the image name as I would do on command line.
Steps to reproduce the issue:

sudo curl --unix-socket /run/podman/podman.sock http://d/v1.12/libpod/containers/create -H "Content-Type: application/json" --request POST --data "{\"image\":\"docker.io/library/fedora:latest\"}"

Describe the results you received:
{"cause":"invalid network \"\"","message":"invalid config provided: invalid network \"\"","response":500}
Describe the results you expected:
A container would be created. This command should be equivalent to sudo podman create docker.io/library/fedora:latest which succeeds.
Using local build of the current master.

i have a fix for this in my local git as I was fixing a number of issues.  I'll prune it out this morning and make a pr.

This is still not fixed.
The same reproducer works exactly the same with podman-1.8.2-1.fc31.x86_64 which was released yesterday. (Also tried current master to build it for myself and the same result).
Can someone please reopen this issue?

@baude PTAL


State mismatch when using flask-session with identity.web

Background:

Using Flask with Redis Flask-session to persist server-side user sessions
Flask is running on Gunicorn with multiple workers
Using identity.web instead of identity.flask so I don't need to use the decorator (the Flask app wraps a Plotly Dash page, so I don't want to use the decorator and instead just redirect any unauthorized users to the login page)

With the setup described above, I'm getting intermittent state mismatch errors when calling complete_log_in. I believe this is caused when the auth response is handled by a different worker than the one that initiated the auth flow. I can see that the Flask session.sid is the same, so I believe that the Flask-session setup that I have is working correctly. However, the state in the auth code changes between the requests. If I reduce the number of Gunicorn workers to 1, the problem goes away.
My code is very similar to this sample (the 0.4.0 one) which is the example code that my Azure instance provides for connecting Python auth to Azure.

Using identity.web instead of identity.flask so I don't need to use the decorator (the Flask app wraps a Plotly Dash page, so I don't want to use the decorator and instead just redirect any unauthorized users to the login page)

For the sake of investigation, what if you temporarily remove the Plotly Dash, and then use identity.flask and its decorator. Will it still run into same issue when Gunicorn has multiple workers?

Good idea. Looks like that works, even with multiple workers. I simplified the code to test this and basically implemented the 0.9.0 version of the sample I linked above.

Okay, I think I have a reasonable option using identity.flask.
I modified my old code to call the decorator as a function in the before_request for any routes that require authentication. That allows me to add authentication to a large number of endpoints in my Dash application without needing to add the decorator to each.
This does require that I manually check whether the user is already logged in before calling the decorator. Otherwise, the rest of the routes will get the context param which they're not expecting.
This seems to be working well now with multiple workers.

This does require that I manually check whether the user is already logged in before calling the decorator. Otherwise, the rest of the routes will get the context param which they're not expecting.

I probably miss some details here. If you need to manually check whether the user is logged in before and you are not using the context, why would you need to call the login_required() decorator in the first place?
I'm open to the idea of adding more APIs to check whether a user has logged in, without returning a context, but I would like to see some code snippet to help me understand the situation.

You're right that there's not really a good reason to use the login_required() decorator in this case. I just hadn't bothered to read through enough to see that it's just calling login. So in that case, the correct way for me to handle this with the way your code is currently implemented is to just manually check if the user is logged in (auth._auth.get_user()), then if not, call auth.login with the next_link set. I was just using the decorator as an easy way of passing through the login process.
In the long term, having an API to ensure the user is logged in without returning the context would probably be the most convenient, but this works fine for me.
A snippet of what I'm doing is below.
@app.before_request def requires_auth():     allowed_routes = ["/login", "/logout-success", app_config.REDIRECT_PATH]  # This list has other app-specific endpoints as well     if not auth._auth.get_user() and request.path not in allowed_routes:         if request.endpoint and request.endpoint != 'static':             return auth.login(next_link = request.url)

I'm open to the idea of adding more APIs to check whether a user has logged in, without returning a context, but I would like to see some code snippet to help me understand the situation.

In the long term, having an API to ensure the user is logged in without returning the context would probably be the most convenient, but this works fine for me.

What I meant was "(open to the idea of adding more APIs ...) if there would be a need to justify it". But after seeing your code snippet, I am not convinced that an official auth.is_logged_in() (replacing auth._auth.get_user()) is the right direction. Here is thing. Auth is hard, and a library's job is to do the hard work for the app developers so that they don't have to. Adding a declarative decorator to the needed views is conceptually much easier than fiddling with the underlying nuances. (I believe you experienced the hard thing first-handed already, in your trial-and-error of this github issue.)
So, @login_required() is or should be your friend. The real reason you do not want to use the @login_required() is probably twofold:

It currently requires the views being decorated to have a new context parameter. The design decision was that if a view does not need any date from context, then the view perhaps needs no login at all. Alternatively, you could have a decorated view that accepts and ignores the context, and then do your Plotly Dash thing.

Another perhaps more reasonable idea is the desire to somehow allow decorating multiple views in one shot. I believe there is a pattern in Flask (or other web frameworks) to do that, and someone tried that before, but I can't find that conversation right now. I would love to rediscover that pattern and document it.

Okay, that's fair. I agree that in general using the login_required is conceptually easy, and when using that decorator just ignoring the context is simple. Since my Flask app is really just a wrapper around the real code in Dash, using login_required is much more difficult because Dash is hiding the views, so trying to go in and add the decorator to all of them and change the function signature to accept context is not really feasible.
In this case, the pattern I'm really interested in is asserting that login is required on all views except a small set which is where your reason 2 comes in. The snippet I have above is basically doing just that. I'm not confident this is the "right way" to do so in Flask, but matches other examples I've seen online.
I see what you mean regarding the concept that any view not needing the context may not need login. However, in my case nearly all of the views only require that a user is authorized, but don't care about the user's details. The dashboard that is contained in the Dash app doesn't care which user this is, just that the user is one of an authorized set.

Thanks for your input. For now, let's reclassify this topic NOT as "needing an auth.is_logged_in()", but "how to specify a batch of Flask views that needs login but needs no context", and the answer on Flask is your earlier code snippet. I'll also need to give this more thoughts on what I can do here.


GSD Request

--- GSD JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from  to before v5.10.84",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2c514d25003ac89bb7716bb4402918ccb141f8f5"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "2c514d25003ac89bb7716bb4402918ccb141f8f5",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "atlantic: Fix OOB read and write in hw_atl_utils_fw_rpc_wait\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.10.84 by commit 2c514d25003ac89bb7716bb4402918ccb141f8f5. For more details please see the references link."
}
--- GSD JSON ---

This issue has been assigned GSD-2021-1002481


Review email failures

We had cases where sending welcome emails to new users failed and took down the emailing system.
@raycarrick-ed suggests a review of failures and errors that pop up in the email setup and how to deal with them so impact to the wider service is kept to a minimum.

Look into exception handling within the mailers. Would be good if we catch and log the error but let the page load continue


Release EmbodiedScan Model

Implemented model on this branch.
Implemented install.py to install easily.
Support mmengine beta config.
Change file structures: utils -> visualization
Note:
Beta Config failed pre-commit.

Fix these two messages in linting:
embodiedscan/datasets/transforms/multiview.py:28:43: E999 SyntaxError: invalid syntax
embodiedscan/visualization/color_selector.py:872:80: E501 line too long (86 > 79 characters)


Comment replies notification

What ❓

Implements the Comment replies notification setting.

How to QA? 🤔

[ ] I go to Settings > Account and on the Social notifications section, I see the Comment reply digest disabled by default.
[ ] I tap on the email button and it should show the enabled status
[ ] I go to kickstarter.com and see the notification enabled
[ ] On the website I disable the notification. This change should be reflected on the app after refreshing the Notifications activity.

Story 📖
Comment digest notification setting
See 👀

 Android: Phase 2 - Comment Digest Notification Settings


Error when running "scripts/run_preprocess.py"

Thank you for open-sourcing this wonderful library and tutorials!
I have encountered some issues when preprocessing customized video:
First I download a .mp4 video and put it under database/raw. When running the following commands:
python scripts/run_preprocess.py cat-pikachu-0 quad "0"
During the call of run_extract_priors in https://github.com/lab4d-org/lab4d/blob/main/scripts/run_preprocess.py#L141,
when the code is doing the canonical_registration in Line 78 of preprocess.py, the error happens when calling save_resampled_feat in which the crop2raw file for frame i is not found:
FileNotFoundError: database/processed/Annotations/Full-Resolution/cat-pikachu-0-0000/full-256-00000.txt not found.

Below is the full errors from Python:
File "/nfs/ycheng/proj/vpet/external/lab4d/scripts/run_preprocess.py", line 78, in run_extract_priors
    canonical_registration(seqname, 256, obj_class)
  File "/nfs/ycheng/proj/vpet/external/lab4d/preprocess/scripts/canonical_registration.py", line 110, in canonical_registration
    import pdb; pdb.set_trace()
  File "/nfs/ycheng/proj/vpet/external/lab4d/preprocess/scripts/canonical_registration.py", line 53, in save_resampled_feat
    crop2raw = np.loadtxt(crop2raw_path)
  File "/nfs/ycheng/anaconda3/envs/lab4d-yc/lib/python3.9/site-packages/numpy/lib/npyio.py", line 1356, in loadtxt
    arr = _read(fname, dtype=dtype, comment=comment, delimiter=delimiter,
  File "/nfs/ycheng/anaconda3/envs/lab4d-yc/lib/python3.9/site-packages/numpy/lib/npyio.py", line 975, in _read
    fh = np.lib._datasource.open(fname, 'rt', encoding=encoding)
  File "/nfs/ycheng/anaconda3/envs/lab4d-yc/lib/python3.9/site-packages/numpy/lib/_datasource.py", line 193, in open
    return ds.open(path, mode, encoding=encoding, newline=newline)
  File "/nfs/ycheng/anaconda3/envs/lab4d-yc/lib/python3.9/site-packages/numpy/lib/_datasource.py", line 533, in open
    raise FileNotFoundError(f"{path} not found.")
FileNotFoundError: database/processed/Annotations/Full-Resolution/pexels-cottonbro-6853400-0000/full-256-00000.txt not found.

Could you please point me how to solve this issue? Thanks!

Hi Yen-Chi, thanks for the report! The error was due to a recent format change of processed files. I pushed a fix. It should be consistent now but let me know if there are other issues.

Thanks for the quick reply and hot fix!


threebot server to be starting with zinit or supervisord

we need the server to be functional and can do changes and restart the server (or kill the server) and still access it. zinit or supverisord are perfect for monitoring the entrypoint

vote for zinit


Unexpected removal of files

Commit b70c64156792a9695242991ed63ebee6ab860da4 (version 1.0.30001394) seems to have removed quite some files. Was this intentional?

Duplicate of #100

I have builds failing:
Error: Cannot find module 'caniuse-lite/data/features/css-unicode-bidi'

I was about to ask the same thing, NextJS project failing due to data/features/css-unicode-bidi.js

Guys just install the previous version<EMAIL_ADDRESS>like I did.


Connect to Firebase failed

I will try to connect app to firebase in android studio but every time get error:
Firebase: Connect to Firebase failed. Please check your internet connection and try again.

I searched the whole internet but cannot get solution.Is there any solution.?

raojagannath11 i don't know why but firebase connected with in android studio on mobile hotspot internet connection, but failed on router connection.

@Awais914 sounds like it really was an internet connection issue.  Due to that, closing this.

I am having the same issue and error message. I have checked my internet connection and everything is working fine. I have checked on different networks and still have the same issue. Also, when I upload the google-services.json file when manually attempting to sync Firebase with Android Studio project it tells me that the file does not belong to the project. I cannot find any more information on this.

I have faced same problem while connecting to firebase they are showing error message like please check your internet connection and i were tried it manually also but i can't connect so if any solution is there then please suggest me...

The first time I tried to link my account to Firebase, I had an out of date google-services.json so it failed to connect to my Firebase project.
I then mistakenly went to myaccount.google.com and unlinked the Android Studio link in "Security" which was bad! because I could never link it back and received "Firebase: Connect to Firebase failed. Please check your internet connection and try again." No matter what.
I had to grab my other computer, clone the repo on it and get it running in Android Studio. Had to reinstall a lot of dependencies so it took a while. Next I re-downloaded googleservices.json from the Firebase Console and added it to my repo to make sure it was up to date. I signed out of google on Safari and Chrome. I ran my build on the device to make sure it was good to go.
Then finally, I pressed Connect to Firebase. It opened the browser to Google Login, I logged in with my google account (that I use for Firebase) and it worked. @pruthil55
I'm using React Native by the way & react-native-firebase

just update your Android studio and restart your pc

На русском:
Наверное это будет уже поздно, но я решил эту проблему так. Зашел File ->  Settings -> Plugins, и обновил FIrebase Services После перезагрузил Android Studio
In English:
It will probably be too late, but I solved this problem this way. I went to File -> Settings -> Plugins, and updated FIrebase Services After I rebooted Android Studio


set attribute/output=all .  breaks when issued twice.

Command to ask that all the global attributes get written to netCDF files.
yes? use myfile.nc
yes? set attribute/output=all .

This works fine.  But then in the same script, any other instance of the same command, applying to this or another dataset, results in an error:
set att/output=all .
 **ERROR: invalid command: SET ATT/OUT=[all or none] varname should NOT include attribute.

(varname needs to be reinitialized within xeq_set.F)

This is fixed in xeq_set.F


issue-128 adding step / static pages

Completes issue #128  .
Changes in this pull request:

Add Steps component and template for static pages
Updated router to default to first step and properly link to permit locator (step 9)

@ajcrites Functionally sweet. There is a side-effect of the Permit Locator header styles. Figure we'll make a separate issue to fix that, but I wanted to confirm that new-issue tactic with you versus fixing in this same branch.

@gotoplanb thanks! I just slapped this together since we don't have any designs for it yet. Bjorn was talking about doing some cleanup so it doesn't look awful / creating the links etc. He can close this or maybe just piggyback on it.

@gotoplanb fixed in this branch

Added a bunch of <br> tags to make it a bit more readable. Also added target="_blank" to all the a tags so they open in new tabs, and made all the URLs a tags.


Support Tabbed on Windows 11

Besides Mica, Windows 11 also adds a backdrop called Tabbed, could you please consider adding support for this backdrop? Thanks.

Added in #101, waiting for approve.


Added nearest support to PHPUnit using --filter argument

Added nearest support to PHPUnit using --filter argument

Looks great, thanks! (although I find the GIF a bit disturbing)

I may need to create another PR to change the order of --filter to come before the name of the PHP file. How would I do that?

Certainly. Simply change return [a:position['file'], name] to return [name, a:position['file']].


[EAGLE-685] adjust hadoop-queue application configuration parameters according to classified style

application configuration has been divided into a few sections based on parameter type.
need to adjust code to fit for the change.

LGTM


[HW]

Name:  Sachin Chakke
Email<EMAIL_ADDRESS>Linkedin Profile: https://www.linkedin.com/in/sachin-chakke-0bb079176?midToken=AQH3OXW2Lp3gRQ&midToken=AQH3OXW2Lp3gRQ&midSig=0zQ8_RJM8tcVU1&trk=eml-email_member_message-header-66-profile&trkEmail=eml-email_member_message-header-66-profile-null-bk3g3z~ks7pk82t~le-null-neptune%2Fprofile~vanity.view&lipi=urn%3Ali%3Apage%3Aemail_email_member_message%3BhBI7nbdhQkGeLYU7cXK26w%3D%3D
Attach the homework screenshots below for both step II and step III:
<>

Hi, Sachin, well done!
To complete the homework, please finish the two interactive scenarios ("short courses") given in https://github.com/datastaxdevs/workshop-intro-to-cassandra#homework and attach their final "Congratulations" screenshots.
See you soon and thank you!


Metis Menu flicker on page load because active items read after document load

This is quite a minor issue, but I managed to fix it myself so I decided I'd just drop this here to be added later on by the maintainer or by anyone else who runs into it. I made a custom Nav widget which extends the base one and adds the collapse CSS class if there are active items within the menu.
Drop the following code in your widget directory (or in this package's widget directory, changing the namespace) then include it in the navigation-left.php view with use app\widgets\MetisNav as Nav; or whatever your namespace is. Now, inactive collapsible menus won't render as uncollapsed first.
<?php

namespace app\widgets;

use Yii;
use yii\bootstrap\Nav;
use yii\helpers\Html;

class MetisNav extends Nav {

    /**
     * Customized widget for MetisMenu navigation dropdowns to not flicker on page load
     * by precomputing if the menu should be open or not. Portions were added below to
     * add the 'collapse' css class if there is an item active within the submenu.
     */
    public function renderItems() {
        $items = [];
        foreach ($this->items as $i => $item) {
            if (isset($item['visible']) && !$item['visible']) {
                continue;
            }
            $items[] = $this->renderItem($item);
        }

        // Begin custom code
        $hasActive = false;
        foreach ($this->items as $i => $child) {
            if($this->isItemActive($child)) {
                $hasActive = true;
                break;
            }
        }

        if(!$hasActive) {
            Html::addCssClass($this->options, 'collapse');
        }
        // End custom code

        return Html::tag('ul', implode("\n", $items), $this->options);
    }
}

Hope this is useful to someone.
Also @p2made I wanted to say thanks for making this extension, it saved me a good amount of time and definitely simplified implementing a sidebar menu.

Thanks for the feedback, & for your contribution.
I shall make a priority of implementing your fix.

I am going to be implementing this as I fix your other reported bug.
I've also recently discovered that Yii 2 has a sidebar menu, & shall be exploring how I can use that to improve this theme.

I've finally gotten to implementing this. Use ^1.6 as your version constraint. If you're also explicitly including p2made/yii2-p2y2-things, use ^1.16 as version constraint for that.


Allow empty dns

Hey,
Thank you for your amazing library.
This PR aims to allow caravan to use system DNS (inherited from /etc/resolv.conf) by modifying the behavior on nameservers, if we detect an empty array, we don't send any opts to inet_res.lookup.
This is very useful in our situation (we are running in docker containers where DNS aren't directly accessible from containers).
@uberbrodt  Thanks by advance for your review :)

Thanks for the contribution! Looks good, but I'd like to not have the formatting mixed in with this pull request, so if you can drop those commits and re-push I'll merge.

@uberbrodt Done & rebased, thank you :)


Snapshot Proposal Duration

Change the duration of a snapshot proposal to three days instead of two.
This is done in the snapshot.js file.

Can I get assigned to this @Sarahtonein?

Can I get assigned to this @Sarahtonein?

Sure :)


[feat] uv config command

Now that uv is XDG compliant it might matter less; but I'd argue it'd be helpful to have a uv config namespace to access uv configurations:
# list all configurations
uv config

# see current value for foo
uv config foo

# set value
uv config foo bar

# alternatively
uv config get foo
uv config set foo bar

Yeah we're interested in doing this eventually.

I'm also interested in this. Especially with the addition of multiple packages indexes, it would be really helpful to know what configuration values uv is picking up and where they're coming from (e.g. uv config list).


warnings during chef run: 'You declared a new resource ... for resource ..., but it comes alphabetically after ...'

       [2015-10-06T14:21:53+00:00] WARN: You declared a new resource PoisePython::PythonProviders::Scl for resource python_runtime, but it comes alphabetically after PoisePython::PythonProviders::PortablePyPy and has the same filters ({}), so it will not be used. Use override: true if you want to use it for python_runtime.
       [2015-10-06T14:21:53+00:00] WARN: You declared a new resource PoisePython::PythonProviders::System for resource python_runtime, but it comes alphabetically after PoisePython::PythonProviders::PortablePyPy and has the same filters ({}), so it will not be used. Use override: true if you want to use it for python_runtime.
       [2015-10-06T14:21:53+00:00] WARN: You declared a new resource PoisePython::PythonProviders::System for resource python_runtime, but it comes alphabetically after PoisePython::PythonProviders::Scl and has the same filters ({}), so it will not be used. Use override: true if you want to use it for python_runtime.
       [2015-10-06T14:21:53+00:00] WARN: You declared a new resource PoisePython::Resources::PythonVirtualenv::Provider for resource python_runtime, but it comes alphabetically after PoisePython::PythonProviders::PortablePyPy and has the same filters ({}), so it will not be used. Use override: true if you want to use it for python_runtime.
       [2015-10-06T14:21:53+00:00] WARN: You declared a new resource PoisePython::Resources::PythonVirtualenv::Provider for resource python_runtime, but it comes alphabetically after PoisePython::PythonProviders::Scl and has the same filters ({}), so it will not be used. Use override: true if you want to use it for python_runtime.
       [2015-10-06T14:21:53+00:00] WARN: You declared a new resource PoisePython::Resources::PythonVirtualenv::Provider for resource python_runtime, but it comes alphabetically after PoisePython::PythonProviders::System and has the same filters ({}), so it will not be used. Use override: true if you want to use it for python_runtime

seems to work fine, but in most chef runs these are the only warnings i get. regards

Yes, these warnings are incorrect and have been removed in Chef 12.5, to be released soon.

thanks for letting me know :sunflower:


Revert "[cognitiveservices] Text Analytics track 2"

Reverts Azure/azure-sdk-for-python#8568
Preserves Track 1 history in sdk/cognitiveservices.
A second PR will move Track 2 to sdk/textanalytics

Can one of the admins verify this patch?

/azp run azure-sdk-for-python - update_pr


google.cloud.storage allows access but gcsfs does not

I would like to connect to a bucket on google cloud storage using gcsfs. So far I have only been using the native google.cloud module but it turns out I actually need file like objects for a certain application so had to switch over.
My GOOGLE_APPLICATION_CREDENTIALS environment variable points to a JSON file on my local filesystem. Using google.cloud, I am able to access a bucket in cloud storage with no issues. However using gcsfs I am not. Here's some code to show what I mean:
from google.cloud import storage
import gcsfs
import google.auth

storage_client = storage.Client()
bucket = storage_client.bucket(...)
blob = bucket.blob(f'data/audio_wav/test.wav')
bts = blob.download_as_bytes()

credentials, _ = google.auth.default()
fs = gcsfs.GCSFileSystem(project=..., token=credentials)
folders = fs.ls('data') #throws error

As commented, the very last line throws what appears to be an authentication error:

google.auth.exceptions.RefreshError: ('invalid_scope: Invalid OAuth scope or ID token audience provided.', {'error': 'invalid_scope', 'error_description': 'Invalid OAuth scope or ID token audience provided.'})

I would think that if google.cloud.storage accepts my credentials, then so should gcsfs. Why do I get the above error, and how can I fix it?
Thanks.

Perhaps you have only read rights, and need to pass access="readon-only" to GCSFileSystem?
For token, you might want to pass the actual path to the auth JSON file, or use token="google_default". I'm not sure exactly what google.auth.default() returns, but we are after a google.auth.credentials.Credentials object.

I am having a similar issue. When using the path to application_default_credentials.json, I can access data:
# works
fs = gcsfs.GCSFileSystem(project=PROJECT, token=os.getenv("GOOGLE_APPLICATION_CREDENTIALS"))

However, I am unable to use oauth2 Credentials with gcsfs, although these credentials work with google.cloud.storage:
# fails with invalid token_id error.
from google.oauth2 import service_account
service_account_info = json.load(os.getenv("GOOGLE_APPLICATION_CREDENTIALS"))
credentials = service_account.Credentials.from_service_account_info( service_account_info)
scope = ["read_only"]
creds = credentials.with_scopes(scope)

I can confirm this currently works on 2024.5.0 with GOOGLE_APPLICATION_CREDENTIALS pointing to a service_account.json file.


add exports

other plugin developers may like to utilize stuff from this plugin to send their own webhooks

I made some changes on a new branch   6-add-exports.
Do these exports look like the ones you imagined?
I think I want to tweak a few things here and there, but overall I would say it is usable (though there are no safeguards when using the classes - all properties are public and have no restrictions). Maybe adding a namespace for better access would be nice, but just the name Discord sounds a bit too general and DiscordWebhook is very long and also a bit too explicit because it also includes like the User-object which is not solely for webhooks.
Feedback is very much appreciated.

Sorry I'm just looking at this now. That's a lot of exports! However since nothing is defined as shared, nothing is actually being exported. Classes and enums should be prepended with the shared modifier, and preferably everything that is exported should be contained in the DiscordNotify namespace. I don't think there's anything wrong with this - it is best to keep a namespace the same name as your plugin to eliminate confusion. I wouldn't worry about the namespace name being too explicit - it should simply reflect which plugin whatever is contained within is coming from. Also, you can't use the Discord namespace anyway as that's already used by an official plugin and would just create a mess for anyone who wants to use both plugins as dependencies.

As far as I am aware the shared keyword is only used to have the same object between plugins and is not mandatory to export them (I tested this by using the exported objects in another plugin of mine and it worked without shared objects, although I did not test if they are seen as the same object after making them shared). I added it anyway because I don't see any drawbacks. I put all exports in the DiscordNotify namespace to prevent any confusion when using them.
Thanks for the feedback

Odd, I wasn't able to use any exports at all from a test plugin. As I understand it, you can only export classes and enums as shared, but having an exact object shared between plugins is kind of irrelevant when it comes to this as you can just pass a handle around. I will try it again, and thanks for the namespace!


Changelog: Noting changes towards 1.251

Hello,
I propose to spin a new release of Stapler. In addition to already integrated fixes, I propose to merge #113 and #112. Maybe it also makes sense to consider #115 and #104, but it needs more feedback.
Created the changelog draft.
CC @reviewbybees @jglick @i386 @varyvol

This pull request originates from a CloudBees employee. At CloudBees, we require that all pull requests be reviewed by other CloudBees employees before we seek to have the change accepted. If you want to learn more about our process please see this explanation.

Actual changes

Likely no need in extra entries for spelling and default methods


feat: naive structured execution trace

Adds logic for constructing a structured trace plus a corresponding test. The structured trace is obtained by constructing polynomials based on a fixed block size. Rather than densely packing the gate blocks into the trace polynomials, data from each block is populated in the polynomials at the start of the corresponding fixed size segment.
Note: this is not the final solution since for actual circuits it would be extremely inefficient in terms of memory and computation. However, it does resemble how the structured trace will be formed in practice.

Benchmark results
Metrics with a significant change:

note_trial_decrypting_time_in_ms (8): 21.7 (-80%)

Detailed results
All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call  to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.
This benchmark source data is available in JSON format on S3 here.
L2 block published to L1
Each column represents the number of txs on an L2 block published to L1.

Metric
8 txs
32 txs
64 txs

l1_rollup_calldata_size_in_bytes
772
772
772

l1_rollup_calldata_gas
6,844
6,832
6,832

l1_rollup_execution_gas
587,325
587,313
587,313

l2_block_processing_time_in_ms
1,442
5,240 (-4%)
10,438 (+2%)

note_successful_decrypting_time_in_ms
220 (+9%)
573 (-2%)
972

note_trial_decrypting_time_in_ms
:warning: 21.7 (-80%)
81.1 (-11%)
87.9 (-1%)

l2_block_building_time_in_ms
18,007
70,940
142,354 (+1%)

l2_block_rollup_simulation_time_in_ms
17,776
70,098
140,695 (+1%)

l2_block_public_tx_process_time_in_ms
8,179
31,934
64,571 (+1%)

L2 chain processing
Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric
5 blocks
10 blocks

node_history_sync_time_in_ms
15,901 (+2%)
30,133

note_history_successful_decrypting_time_in_ms
1,215 (+2%)
2,325 (+5%)

note_history_trial_decrypting_time_in_ms
43.0 (+2%)
91.5 (+17%)

node_database_size_in_bytes
19,173,456
35,831,888

pxe_database_size_in_bytes
29,859
59,414

Circuits stats
Stats on running time and I/O sizes collected for every circuit run across all benchmarks.

Circuit
circuit_simulation_time_in_ms
circuit_input_size_in_bytes
circuit_output_size_in_bytes

private-kernel-init
149 (-1%)
45,173
27,384

private-kernel-inner
164
73,608
27,384

private-kernel-ordering
120 (+1%)
53,138
41,123

base-parity
45.4
128
311

root-parity
7.21 (+1%)
1,244
311

base-rollup
19,164 (+1%)
110,928
957

root-rollup
47.2
4,551
821

public-kernel-app-logic
91.8
50,319
42,853

public-kernel-tail
376 (-1%)
159,352
7,493

merge-rollup
7.27 (+6%)
2,760
957

public-kernel-teardown
87.9
50,319
42,853

public-kernel-setup
86.2
50,319
42,853

Tree insertion stats
The duration to insert a fixed batch of leaves into each tree type.

Metric
1 leaves
16 leaves
64 leaves
128 leaves
512 leaves
1024 leaves
2048 leaves
4096 leaves
32 leaves

batch_insert_into_append_only_tree_16_depth_ms
11.0
17.8
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_count
16.8
31.6
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_16_depth_hash_ms
0.641
0.549
N/A
N/A
N/A
N/A
N/A
N/A
N/A

batch_insert_into_append_only_tree_32_depth_ms
N/A
N/A
51.9 (+1%)
80.5
260
502 (-1%)
979 (-1%)
1,965
N/A

batch_insert_into_append_only_tree_32_depth_hash_count
N/A
N/A
96.0
159
543
1,055
2,079
4,127
N/A

batch_insert_into_append_only_tree_32_depth_hash_ms
N/A
N/A
0.532 (+1%)
0.497
0.474
0.469 (-1%)
0.466 (-1%)
0.470
N/A

batch_insert_into_indexed_tree_20_depth_ms
N/A
N/A
60.7
119
377
739
1,455 (-1%)
2,931 (+1%)
N/A

batch_insert_into_indexed_tree_20_depth_hash_count
N/A
N/A
105
207
691
1,363
2,707
5,395
N/A

batch_insert_into_indexed_tree_20_depth_hash_ms
N/A
N/A
0.536
0.536
0.511
0.508
0.505 (-1%)
0.510 (+1%)
N/A

batch_insert_into_indexed_tree_40_depth_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
67.4

batch_insert_into_indexed_tree_40_depth_hash_count
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
109

batch_insert_into_indexed_tree_40_depth_hash_ms
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
0.588

Miscellaneous
Transaction sizes based on how many contract classes are registered in the tx.

Metric
0 registered classes
1 registered classes

tx_size_in_bytes
42,886
535,757

Transaction size based on fee payment method

Metric
native fee payment method
fpc_public fee payment method
fpc_private fee payment method

tx_with_fee_size_in_bytes
897
1,145
1,345

Transaction processing duration by data writes.

Metric
0 new note hashes
1 new note hashes
2 new note hashes

tx_pxe_processing_time_ms
1,241 (+1%)
837
3,507 (-1%)

Metric
1 public data writes
2 public data writes
3 public data writes
4 public data writes
5 public data writes
8 public data writes

tx_sequencer_processing_time_ms
798
673 (+1%)
1,287 (+1%)
894 (+3%)
1,967
1,129


Admin password

What is the default username and password after anonimizing?

I figured it out, the script doesn't delete users or change usernames. your username will be the same and your password will be username123, username being whatever registered admin user you want to log in as.

Whoops, you found something, that definitly needs to be documented :)


2.x 'Already Read Text' feature

I'm gonna put this one on 2.x for now, but I don't think it would be that difficult to implement for just 2.0.
One feature that's common in Visual Novels, is keeping track of text you've already read. Usually this is at minimum used for a setting to skip already read text, but sometimes this is also used to like change the colors of the text too if you've already read it as well. Other types of games too, where you have characters giving large lines of dialogue, you may want this as well to give the player an optional skip for text they have already read.
This would be it seems pretty simple to implement. It would just need adding additional property of already_read to the Text node, then if the feature's enabled in project settings, it would save that to the memory as part of the save data, then when the timeline is loaded the DialogicTimelineFormatLoader just checks the save for the already read lines from that timeline and populates the property

It would be useful to expose the already_read property for use in the timeline itself.
RPGs commonly have two-text NPCs, where the first time you talk to them you get their full story, and the second time you talk (and every time after then) you get a shorter piece of text instead.
Rather than needing to store that text in two timelines, or define a Value for each repeated timeline, it'd be a lot easier if you could just branch on already_read.


Calling jQuery UI's slider() method may conflict with other libraries such as jQuery Mobile

Hi Alexander,
I did some more investigation regarding jme2 compatibility with jQuery Mobile that we spoke about.  The issue is that jQuery Mobile includes it's own slider plugin who's calling method's name (i.e. $('input').slider(); ) collides with jQuery UI.
See jQuery Mobile Slider Documentation
To work around this, I aliased the jQuery UI slider within jme.js:

	/* Alias jQuery UI slider to avoid conflicts with other libraries (i.e. jQuery Mobile). */
	jQuery.fn.uislider = jQuery.fn.slider;

Then I modified all the calls to the slider method with uislider. Example:

	control.uislider({
		range: 'min',
		max: duration || 1,
		disabled: !duration,
		step: 0.1,
		value: media.prop('currentTime'),
		slide: function(e, data){
			if(e.originalEvent){
				time.set(data.value);
			}
		}
	});

What do you think of this approach?
Let me know if you want me to commit my updates.
Cheers,
Matt

Hi Matt,
thanks for investigating this. I'm now using the following code, to fix this:
if(!$.mobile || !$.mobile.slider){
	$.fn._uiSlider = $.fn.slider;
} else {
	$.widget('jme._uiSlider', $.ui.slider.prototype);
}

If jQuery mobile is detected. JME will create a new module, so it does not depend on a specific embed order (jQuery UI -> JME -> Mobile). You can mix the files how you want :-)
Cheers
Alex


Add armv327 multiarch support

Continuation of #/564
Note: Don't merge yet, because Dockerhub does not support the --platform flag yet. It will work locally.

You will need to update dockerhub to build the current latest build to a new tag which is amd64
Create a new arm32v7 tag which would build the new Dockerfile.arm32v7 (sadly this creates repetition, but this is the only way I know minus sharing a script between dockerfiles, which has its own level of suckness).
You will have to remove the current latest tag and then let the hooks in the hooks folder create a new latest tag, using the manifest command.

A working example can be seen here:
https://cloud.docker.com/repository/docker/guysoft/letsencrypt-nginx-proxy-companion

Could you provide command to bulid images for arm? I have already cloned https://github.com/guysoft/docker-letsencrypt-nginx-proxy-companion .
The proper command will be?  docker build -f Dockerfile.arm32v7

@Herreropl Yes I have them here guysoft/letsencrypt-nginx-proxy-companion:arm32v7
And yes that command should work.
Also it would be nice in @JrCs would merge this, been using it for a while. Also there is s need to update the protocol, gettimg messages form lets encrypt its becoming obsolete.

@Herreropl @guysoft there should be no need for another Dockerfile, the existing one use multi-stage build specifically to be compatible with multiple archs (see #391).
Just cloning the repo,  cding into it and running docker build -t jrcs/letsencrypt-nginx-proxy-companion . should do it (don't forget the dot at the end). Last time I checked on a Raspberry Pi 3 and a Scaleway Arm instance, it worked fine.

@buchdag There is need for two files if you want to support it building in docker hub the multi-arch stuff. AFAIK.
It might also be that something changed since I posted this.
If you think you have a better solution to maintain, please post a PR for it. Or fork, it seems this is not going to be merged since @JrCs is not replying.

You said on this PR first message that Dockerhub does not support the --platform flag yet, has it changed since ?
As alluded on #564 this does not solve the issue of having those images tested (by Travis CI or another CI service). I'm really interested by the prospect of having arm32v7 and arm64 images built automatically on Dockerhub but this HAS to go through automated tests like the amd64 image.

@buchdag I have less expirience of how Travis is worked an configured, it should be able to, there is a similar setup for PhotoPrism which you can see here: https://github.com/photoprism/photoprism/issues/109#issuecomment-576044799
Perhaps @lastzero could help me and explain how he solved it there?

@guysoft We're currently building on an actual Raspberry Pi 4 and use a separate repository for our arm64 build: https://hub.docker.com/repository/docker/photoprism/photoprism-arm64
Docker Hub automatically identifies the architecture as linux/arm64

Ok, perhaps you can do what I did in CustomPiOS. I added a hooks folder here.
Based off: https://hub.docker.com/r/ckulka/multi-arch-example
This lets you build multiarch builds. Photoprisim might be more compile-heavy.

@guysoft I played a bit with Buildx yesterday, could you try to pull duch/letsencrypt-nginx-proxy-companion:stable on your arm hosts and see if it works for you ? The code is from my fork and is identical to this repo.
If it does, I might consider pushing arm64 and arm/v7 versions of this container to Dockerhub as Buildx makes it considerably easier but until reliable reliable automated test can be set up those will be treated as experimental and issue concerning them will be low priority.
arm64 automated testing is possible via Travis CI and will probably come later this year.
Your thoughts ?

Ok just did, looks good!
Need me to run anything? Log seems working:
pi@golem5:~/docker$ sudo docker logs nginx-proxy-le
Info: Custom Diffie-Hellman group found, generation skipped.
Reloading nginx docker-gen (using separate container nginx-proxy-gen)...
Reloading nginx (using separate container d31e46321118bb371b069e1d1ec222b1c30469ae450b18ba12b895aa3795553e)...
2020/03/10 09:50:48 Generated '/app/letsencrypt_service_data' from 24 containers
2020/03/10 09:50:48 Running '/app/signal_le_service'
2020/03/10 09:50:48 Watching docker events

Could you force a certificates renewal if that's possible for you ?

looks like its working
pi@golem5:~ $ sudo docker exec nginx-proxy-le /app/force_renew
/etc/nginx/certs/gnethomelinux.com /app
Creating/renewal gnethomelinux.com certificates... (gnethomelinux.com)
2020-03-10 13:03:29,813:INFO:simp_le:1414: Generating new certificate private key
2020-03-10 13:03:45,637:INFO:simp_le:396: Saving key.pem
2020-03-10 13:03:45,639:INFO:simp_le:396: Saving fullchain.pem
2020-03-10 13:03:45,641:INFO:simp_le:396: Saving cert.pem

arm64 and arm/v7 archs are now natively available on Dockerhub for the latest, stable and 12.1 tags.

Yay, closing issue then


Update StreamsApi.cs

null check for optional parameter

Thanks for the pull request, the change definitely makes sense. Unfortunately this class is generated using swagger-codegen, so the change would need to be manually re-applied if (or rather when) the classes are regenerated. I'll regenerate the classes using the latest version of swagger-codegen and if the problem is still there, it's probably best to raise an issue with them.

@hypsterical Thanks for the pull request. Since the bug is in the generated classes I pulled the latest version of swagger-codegen and regenerated the code. It looks like the issue has now been fixed:
if (filter != null && filter.GetType() != typeof(byte[]))
Will push the new generated files shortly...

The new generated code with a null check is now in the develop and master branches.


With Movies & TV App in full screen mode, not able to locate any element on App

Hi,
I am trying to automate Movies & TV UWP App using Winappdriver in Python. I could launch the app and can locate the elements while video is playing in windowed mode.
When i click on FullScreen mode, i could not locate any elements on the app further. This renders me with no control on the application.
I tried find_element_by_name, find_element_by_class_name and other types also.
I also tried to find elements with tag names but nothing worked.
Can you please let me know if this is a limitation or I'm trying wrong.
Thanks,
Mohamed Mahir N

Hello @nmohamedmahir,
Can you check your test script to make sure that it is not confined in an out-of-date UI tree element? When you switch to full screen mode, the Movies & TV application UI tree updates and previously located UI element may no longer be valid. At this point you would need to re-locate all the UI elements based on the current application state.
Below is a snippet of code I quickly put together that you can easily paste in Session sample test for a quick verification. This code successfully launches the Movies & TV application, play a trailer, switch to full screen, and trigger the next trailer using a UI control in full screen mode. This sample demonstrates that Windows Application Driver can interact with the Movies & TV application in both full screen and normal mode.
[TestMethod]
public void CreateSession_MoviesTV()
{
    DesiredCapabilities appCapabilities = new DesiredCapabilities();
    appCapabilities.SetCapability("app", "Microsoft.ZuneVideo_8wekyb3d8bbwe!Microsoft.ZuneVideo");
    session = new WindowsDriver<WindowsElement>(new Uri(CommonTestSettings.WindowsApplicationDriverUrl), appCapabilities);
    Assert.IsNotNull(session);
    Assert.IsNotNull(session.SessionId);
    Assert.AreEqual("Movies & TV", session.Title);
    Thread.Sleep(TimeSpan.FromSeconds(3));

    // Navigate to Movie Trailers view
    session.FindElementByAccessibilityId("Command_NavigateToTrailerGalleryCommand").Click();
    Thread.Sleep(TimeSpan.FromSeconds(3));

    // Play the first Movie Trailer
    var trailersListView = session.FindElementByAccessibilityId("ModuleListView");
    var trailers = trailersListView.FindElementsByClassName("ListViewItem");
    if (trailers.Count > 0)
    {
        trailers[0].Click();
        Thread.Sleep(TimeSpan.FromSeconds(3));
    }
    else
    {
        Assert.Fail();
    }

    // Trigger the full screen mode
    session.FindElementByAccessibilityId("FullWindowButton").Click();
    Thread.Sleep(TimeSpan.FromSeconds(3));

    // Verify that the full screen view is interactable
    var fullWindow = session.FindElementByClassName("FullWindowMedia");
    Assert.IsNotNull(fullWindow);
    Assert.IsNotNull(fullWindow.FindElementByName("Video details"));

    // Interact with the full screen control to play the next Movie Trailer
    fullWindow.FindElementByName("Next video").Click();
    Thread.Sleep(TimeSpan.FromSeconds(3));
}


Freespace planner become not to receive new goals

Checklist

[X] I've read the contribution guidelines.
[X] I've searched other issues and no duplicate issues were found.
[X] I'm convinced that this is not my fault but a bug.

Description
If freespace planner fails to find a goal once, it becomes not to receive a new goal pose.
And no new trajectories are searched.
https://github.com/autowarefoundation/autoware.universe/assets/61740530/819ade04-9046-47cc-9e20-562635df9a60
Expected behavior
When the new goal is set, freespace planner starts to search for a trajectory for a new goal.
Actual behavior
Freespace planner does not receive new goals and does not search for new trajectories.
Steps to reproduce

Launch planning simulator
set ego vehicle to the center of the parking area (see the figure).
set goal pose to the unreachable place (see the figure).
No new trajectories are searched when you put a new goal.

Versions

OS: ubuntu 22.04
ROS2: humble
Autoware: main at Tue Apr 2

Possible causes
When freespace planner is given an unreachable goal pose, method algo->makePlan() is called and search a trajectory for the goal permanently, resulting stack.
Thus, the callback function onRoute does not be called when you put a new goal and the new goal does not be set.
Additional context
No response

internal discussion:
https://star4.slack.com/archives/C0575HP7NJG/p1713319369888399?thread_ts=1713312199.577169&cid=C0575HP7NJG
maybe we can solve the issue by separating the callback group between main timer and subscriver


Prevent PostgreSQLDatabase from leaking an event loop group.

Instead, we keep the event loop group around and shut it down on deinit.

Table name cache is getting moved to fluent-postgresql now anyway. I should be able to avoid this sub-eventloop group altogether there. Thanks!


Unit tests for verifying imports

added a script that runs unit tests to see
-if library imports of fmperf are working
-if kuberenets import is working
-if k8 python client is working
-also added a github action workflow to automate the testing upon push and pull request

@GhaziSyed The diff still looks bigger than it should. Could you please try to merge/rebase against latest changes on main. It should be enough to hit the "Update branch" button on github.

@GhaziSyed The diff still looks bigger than it should. Could you please try to merge/rebase against latest changes on main. It should be enough to hit the "Update branch" button on github.

Is there a reason you closed the PR?

Clicking the update button did update the branch but then closed the PR automatically for some reason.
I also noticed the file tests\test_imports.py file wrongly committed which I also want to remove.
I will work on creating a new PR, as git checkout ghs-tests -- tests/test_imports.py does not remove the file from git.

I don't think there is any need to create a new PR - you should just be able to re-open this one?

I also noticed the file tests\test_imports.py file wrongly committed which I also want to remove.
I will work on creating a new PR, as git checkout ghs-tests -- tests/test_imports.py does not remove the file from git.

That is not the correct command to remove a file from git, you are looking for:
git rm tests/test_imports.py
``

Thanks.
The branch seems ready now


Set up Renovate

I'd suggest setting up Renovate to prevent outdating of dependencies again.
See https://github.com/apps/renovate.

Thanks @ComFreek !  Think it is installed - maybe you can check it when you get a chance!


Postprocessing links

Hi,
I'm new to compoxure and think it looks like a promosing solution for a new microservice based project I'm starting. Currently I'm playing around with it to see if it fits my needs, so far I got most bases covered :tada:
My question if it's possible to postprocess (relative) links from a microservice, let me explain using an example:
Microservice 1 provides an interface with basic CRUD operations on clients.
Microservice 2 provides an interface with basic CRUD operations on products.
Both use similar URLs internally, like /new to create a client / product, /update/<id> to update etc. Now I'd like compoxure to postprocess any links in the HTML response to prefix things coming from microservice 1 with /clients and things from microservice 2 with /products. So we get:
Microservice 1 Add a client becomes  Add a client
Microservice 2 Add a product becomes  Add a client
This prefix I can than use to make sure the backend is able to fetch the correct template for the response (either by matching using the pattern and returning a fixed template or by creating a template service that determines which template is needed, not sure yet which approach would be best there).

You can make it do this, by adding plugins to the way it parses the html.
e.g. the plugin that parses the cx-test directive is here (this just echo's back what you put in, but with the templated variable subsitution).
https://github.com/tes/parxer/blob/master/lib/plugins/test.js
Plugins are at the moment hard coded in the configuration of the html parser:
https://github.com/tes/compoxure/blob/master/src/middleware/htmlparser.js#L166
You could easily add a config option that allowed you to pass in additional plugins when you instantiated the compoxure middleware.
Combine these two things together and you can make it do anything you like to the markup that passes through it.
In this model, I'd probably replace your href with cx-href and write the rule around that - this makes it opt in and leaves the other href tags un-molested.
Other examples of plugins for the parser are here:
https://github.com/tes/parxer/tree/master/lib/plugins
You're getting write down into the engine of how it works, but it's definitely possible.

Thanks, starting to actually use compoxure in a real project made me realize it's 'better' to add the prefixing to the app.


support operations on specific parts of a mesh

Right now, if you want to specify that a material, traction or body force only apply to part of the domain, you have to fake it by using a conditional expression to mask out the part of the domain:
  mechanics.setTraction([](const auto& x, const auto& n, const double) {
    // tractions are calculated on all faces, but only those with x[1] > 0.99 are nonzero
    return -0.01 * n * (x[1] > 0.99);
  });

this is wasteful and undesirable in how it couples two independent concepts: the integrand and the domain of integration.

this PR adds a new type, Domain, to represent a specific part of a mesh. Domains can describe exactly one of:

A set of vertices (create with Domain::OfVertices( ... ))
A set of edges (create with Domain::OfEdges( ... ))
A set of faces (create with Domain::OfFaces( ... ))
A set of elements (create with Domain::OfElements( ... ))

Domains are created by providing a function with signature like[^1]
[^1]: see here for all signatures
$$
\texttt{bool(std::vector< tensor < double, dim > > vertices, int attr)}
$$
That function gets applied to the {vertices, edges, faces, elements} of the mesh, and the {vertices, edges, faces, elements} that return true are added to the Domain. e.g.
    // create a collection of edges from information about their spatial position
    Domain d1 = Domain::ofEdges(mesh, std::function([](std::vector<vec2> x, int /* bdr_attr */){
        return (0.5 * (x[0][1] + x[1][1])) < 0.25; // y coordinate of edge midpoint
    }));

    // create a collection of edges from their attribute
    Domain d2 = Domain::ofEdges(mesh, std::function([](std::vector<vec2> x, int bdr_attr){
        return (bdr_attr == 2);
    }));

    // succinct alternative to above
    // Domain d2 = Domain::ofEdges(mesh, by_attr(2));

    // create a collection of edges from some combination of position/attr
    Domain d3 = Domain::ofEdges(mesh, std::function([](std::vector<vec2> x, int bdr_attr){
        return (bdr_attr == 2) && (norm(x[0]) < 0.5);
    }));

    // define domains through set operations
    Domain d4 = intersection_of(union_of(d1, d2), d3);

The next steps are to make Domains usable in Functional to specify which parts of the mesh to integrate over and in physics modules to express domains affected by essential boundary conditions.

Codecov Report

Merging #1002 (67bb581) into develop (ce00903) will increase coverage by 0.17%.
The diff coverage is 96.57%.

@@             Coverage Diff             @@
##           develop    #1002      +/-   ##
===========================================
+ Coverage    89.36%   89.53%   +0.17%
===========================================
  Files          138      141       +3
  Lines        10730    11080     +350
===========================================
+ Hits          9589     9921     +332
- Misses        1141     1159      +18

Files Changed
Coverage Δ

...ac/numerics/functional/detail/hexahedron_Hcurl.inl
100.00% <ø> (ø)

src/serac/numerics/functional/tensor.hpp
98.76% <ø> (ø)

src/serac/numerics/functional/domain.cpp
94.70% <94.70%> (ø)

...c/serac/numerics/functional/tests/domain_tests.cpp
97.96% <97.96%> (ø)

src/serac/numerics/functional/domain.hpp
100.00% <100.00%> (ø)

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

I'm still seeing some doxygen warnings on my local build (v1.9.1) from an unrelated part of the code:
/home/sam/code/serac/src/serac/physics/state/finite_element_vector.hpp:61: warning: argument 'name' of command @param is not found in the argument list of serac::FiniteElementDual::FiniteElementVector(typename FunctionSpace)
/home/sam/code/serac/src/serac/physics/state/finite_element_vector.hpp:61: warning: argument 'mesh' of command @param is not found in the argument list of serac::FiniteElementState::FiniteElementVector(typename FunctionSpace)
/home/sam/code/serac/src/serac/physics/state/finite_element_vector.hpp:61: warning: argument 'name' of command @param is not found in the argument list of serac::FiniteElementState::FiniteElementVector(typename FunctionSpace)

I played with this for a bit and couldn't figure out how to fix it-- I think maybe Doxygen is parsing the C++ sourcefile incorrectly and thinking that the template parameter is a function argument.
With any luck, our CI jobs use against a different version of Doxygen that is okay with finite_element_vector.hpp:61.

I'm still seeing some doxygen warnings on my local build (v1.9.1) from an unrelated part of the code:
/home/sam/code/serac/src/serac/physics/state/finite_element_vector.hpp:61: warning: argument 'name' of command @param is not found in the argument list of serac::FiniteElementDual::FiniteElementVector(typename FunctionSpace)
/home/sam/code/serac/src/serac/physics/state/finite_element_vector.hpp:61: warning: argument 'mesh' of command @param is not found in the argument list of serac::FiniteElementState::FiniteElementVector(typename FunctionSpace)
/home/sam/code/serac/src/serac/physics/state/finite_element_vector.hpp:61: warning: argument 'name' of command @param is not found in the argument list of serac::FiniteElementState::FiniteElementVector(typename FunctionSpace)

I played with this for a bit and couldn't figure out how to fix it-- I think maybe Doxygen is parsing the C++ sourcefile incorrectly and thinking that the template parameter is a function argument.
With any luck, our CI jobs use against a different version of Doxygen that is okay with finite_element_vector.hpp:61.

This we filter this error out for CI as I couldn't figure out a way to fix it in doxygen. The regexes to ignore are listed in this file: https://github.com/LLNL/serac/blob/develop/scripts/azure-pipelines/docs_ignore_regexs.txt


Taskade

Hi!
Wanted to share http://www.taskade.com - it is built on React.
I've attached our logo and screenshot below. Thanks!

Added.


Add support for Calico networking

We should probably just use the module in https://typhoon.psdn.io/bare-metal/, its going to be better maintained over time and adds features faster. Its not so practical for me to keep updating both.

Support for flannel or calico networking is included in #646


GC used in unittest

Multiple modules use new in unittest blocks.  Should use mallocEmplace!T instead to ensure that the code will work in a @nogc environment.

Should make any difference either way.  The only real benefit of using @nogc method is to show users how to do it.  mallocEmplace has been removed with mallocNew also.


Clean up executions handling

Currently executions are mapped by variable name but this is ambiguous is some cases like "foreach" constructs.  We should rethink how to handle executions so that they map more cleanly to the various ways of executing.

done!


stateChangeComplete event is fired if set again same state (bug or not) ?

Hi,
Suppose you have 2 states : A and B and currentState is A
Then setting currentState again to A will fire stateChangeComplete.
I don't know if we can consider this as a bug or not... On Flex component setting twice the same state doesn't fire stateChangeComplete
There is a simple workaround : just test the currentState before setting it.
Regards

Hi, this seems to me a bug. change event should only be dispatched if state is not the same.

Merged https://github.com/apache/royale-asjs/commit/42cd0c7c450f385a8fb2e5194cb1c7660578cd6b


Add visibility property

By this PR I am adding opportunity to use visibility property according to the visibility references

I guess this should be a .kt file and not a .css file?

Oh sorry, my mistake. Thank you :)

could you please add some tests for this property?
CSSDisplayTests is an example of similar tests

@eymar Hello and sorry with this long delay. I have actualized this PR: replaced visibility extension, replaced visibility enums and add tests. Could you please review it?


How to customize brackets extension

I am a user of backlink notes (Roamresearch). In the course of my writing, it is often necessary to select some words to add double squares, brackets or curly braces before and after.
now, I solved the problem by modify the MarkdownTool extension.
Roam.popclipext.zip
==========
old info
I downloaded the Brackets extension. It works well but a single character does't meet the need for doubles. So I tried to modify some codes in Config.js with a little knowledge of JS:
replaced
popclip.pasteText(style[0] + selection.text + style[style.length - 1]);
with:
popclip.pasteText(style[0] + style[0] + selection.text + style[style.length - 1] + style[style.length - 1]);
and I also modified the "identifier" in Config.json and Config.plist to avoid the signature problem.
The modified Brackets.popclipext can be installed. It appeared on the extension panel of the menu bar and the setting for four choice is normal. But, when a word is selected in the text editor, the square or bracket icon does't appear on the floating PopClip bar.

The code you pasted looks correct actually, so I'm not sure what was going wrong. Anyway, glad you have got something working. Reopen this if you cant to pursue the original code.


⚠ Bofrost.lu has degraded performance

In 992d56f, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1403 ms

Resolved: Bofrost.lu performance has improved in 7c264ef after 6 minutes.


Use io::ErrorKind::ResourceBusy for QueueFull

Depends on the unstable io_error_more feature.
Effectively reverting commit fd798960cc4306d7d8700375fd7f76cb01c34a0e.

This now happens when the nightly feature is enabled, keeping it open to unconditionally do it when io_error_more is table.


[Add Address] Additional fields aligned incorrectly after setting local indicator manually on the map

Environment: OnePlus 7, Android <IP_ADDRESS>
Reproducible: always.
Build found: 1.0.187
Preconditions
User logged in.
Car app is opened.
Add Address page is opened.
Steps to reproduce

Tap on 'Address' text box.
Enter a few letters.
Tap on the map to set local indicator on the needed place.
Pay attension to the "Name the chosen address" and "Choose the type of the Address name and the icon" fields.

Actual result
Additional fields aligned incorrectly after setting local indicator manually on the map.
Expected result
Additional fields should appear on the below of the "Address" text box  after setting local indicator manually on the map.
User story and test case links
E.g.: "User story #44
Labels to be added
"Bug" ("bug"), Priority ("pri: ")

Bug fixed.


GPflow1 to GPflow2: more Cholesky decomposition problems

GPflow: 2.0.0rc1
Tensorflow: 2.0.0
We're in the process of moving our code from GPflow1 to GPflow2, but while doing so it seems that Cholesky decomposition problems occur much more often than previously. One reason was that the likelihood variance in the GPR model became VERY small all of a sudden. This variance is added to the diagonala, but if it is smaller than 1e-12 for example Cholesky fails. In general, parameter estimation through the SciPy/Adam optimizers gives poorer results. Sometimes parameters become NaN while optimizing.
Has anything fundamentally changed between GPflow1 and GPflow2 that we need to be aware of? For example, the inner working of gpflow.transforms.positive is similar to the new gpflow.utilities.positive()? The latter seems to more easily result in NaN (when input is negative). Anything we need to be aware of?
PS: overall GPflow2 is a big improvement! Thanks for the work!

@tdewolff, thanks a lot!
In GPflow 1.0, positive values had a lower bound 1e-6. It was removed in favour of a more customisable solution. Now you can set a lower positive bound to a value which you think is most appropriate.
assert gpflow.config.default_positive_minimum() is None  # by default it is `None`
gpflow.config.set_default_positive_minimum(1e-6)

https://github.com/GPflow/GPflow/blob/develop/gpflow/config/__config__.py#L153
You also can change the positive bijector type (by default it is softplus). You have two choices "exp" and "softplus".
assert gpflow.config.default_positive_bijector() == "softplus"
gpflow.config.set_default_positive_bijector("exp")

https://github.com/GPflow/GPflow/blob/develop/gpflow/config/__config__.py#L143

I actually just ran into a related issue where in my custom model I had a zero-initialized positive-constrained parameter, p = gpflow.Parameter(0.0, transform=gpflow.utilities.positive()). This is represented as -inf in the unconstrained space, which is fine in the forward pass (back to 0.0), but results in nans when computing gradients. What can we do to improve the user experience around positive transforms ?

Thanks for the quick response! The gpflow.config.set_default_positive_minimum function solved most of our problems. For the gpflow.config.set_default_positive_bijector we'll have to wait for a new release I guess. I see the default mode for GPflow1 was x_con = log(1+exp(x_uncon)), this is different from the bijector exp I suppose? Not sure if this has a big impact in the way the parameter are trained.
Another issue I'd like to mention (also w.r.t. #1198) is that previously in GPflow1 it was fine to set a parameter to zero eventhough the positive minimum was 1e-6. Right now, when setting the positive minimum using gpflow.config.set_default_positive_minimum to 1e-6, putting a zero in Parameter (or using assign) causes a nan. Would it be beneficial if both the Parameter.__init__ and Parameter.assign do a lower bound check to ensure it is bigger than or equal to default_positive_minimum?

@tdewolff I would suggest using the develop branch instead of rc1, it's got a lot more bugfixes.
The default "positive" bijector in both gpflow1 and gpflow2 is 'softplus' (y = log(1+exp(x)); you are right, 'exp' which is just y = exp(x) is different. They will have different optimisation behaviour and depending on your problem specifics one or the other may optimise better/faster, though you should get pretty much the same answer upon convergence.
In GPflow1 it looked like you could set a "positive"-constrained parameter to zero. In fact, under the hood it was simply set to the lower bound, i.e. 1e-6, even if it looked like it was zero (all that complexity with python representation and session representation etc. - just be glad it all went away). #1198 specifically introduces a validation check as you say! It will prevent you from setting a parameter with constraint to any value outside the range. I.e. gpflow.Parameter(0.0, transform=positive()) will then throw an error. With a lower bound, valid parameter values are all values strictly greater than the lower bound. I.e. Parameter(1e-6, transform=positive(lower=1e-6)) would error, Parameter(1.1e-6, transform=positive(lower=1e-6)) would work fine.
Does that answer your questions/issues? If not please clarify!

We're developing a library that builds on top of GPflow, I'm afraid we have to depend on a specific release/version of GPflow for our dependency management. As we're not yet due for release we're fine with waiting for an official v2 for now. It's a release candidate so it's totally understandable that there are many bugfixes on their way!
What I wanted to say about the parameter lower bound is that in GPflow1 it was fine to set a parameter to zero even though it would be set to the lower bound internally, that lower bound would be our effective 'zero' value which was totally fine. Right now setting a value lower than the lower bound effectively sets the parameter to nan which causes a non-trivial error to debug. With the new PR this should become a helpful error message which is great! But in our usecases we oftentimes just want to set the parameter to be 'effectively' zero, be it zero or the lower bound. I've added some wrapper code to clamp lower values to the lower bound which is a bit clumsy. I suppose clamping inside GPflow2 would avoid surprises for users coming from GPflow1, but perhaps an error would be a better solution ;-). Thanks for the help!

@tdewolff your comment is effectively what @jameshensman is suggesting as point 4 - if you've got any ideas for how to actually implement that, please show! Even if it's just the "clumsy wrapper code", I think if you shared that it might be helpful for a better understanding and/or other users!
Thoughts not specifically relevant to this issue, but because you mention it and I don't know how else to reply to you:

At least while you're developing the gpflow2-compatible version of your library (is it this one: https://github.com/GAMES-UChile/MultiOutputGP-Toolkit ?), could you not just use the develop branch? pip can easily install from any branch on a git repository, not just release tags. Could it make your life easier to stay on top of our develop while things are still changing around?
GPflow2 isn't "set in stone" - if in your work with & on top of gpflow you identify any pain points / issues with what it does (or doesn't!) do - regardless of whether that's something that's carried over from GPflow1 or new to gpflow2 - we would very much appreciate your thoughts / comments / feedbacks! We can only make your experience smoother if you tell us about the bumps :)
In 2) I said "we" and "you" but actually we would love more people to contribute to GPflow - so if you've got any features you think might actually fit better in the base package, or otherwise want to help improve what we've got, please join us! There is also a slack workspace (gpflow.slack.com) that is a bit underutilised at the moment but that we want to make more use of. Help wanted. :-)


Docker options should not include "-disable-legacy-registry"

When I typed docker --help, it shown as below:
 docker --help

    ............

Options:

  --config=~/.docker                 Location of client config files
  -D, --debug=false                  Enable debug mode
  --disable-legacy-registry=false    Do not contact legacy registries
  -H, --host=[]                      Daemon socket(s) to connect to
  -h, --help=false                   Print usage
  -l, --log-level=info               Set the logging level
  --tls=false                        Use TLS; implied by --tlsverify
  --tlscacert=~/.docker/ca.pem       Trust certs signed only by this CA
  --tlscert=~/.docker/cert.pem       Path to TLS certificate file
  --tlskey=~/.docker/key.pem         Path to TLS key file
  --tlsverify=false                  Use TLS and verify the remote
  -v, --version=false                Print version information and quit

Commands:
    attach    Attach to a running container
    ..........

I think every option is appropriate except -disable-legacy-registry which is an flag for docker daemon and looks a little strange here, I think it should not appear here.
docker version
Client:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5
 Built:        Fri Nov 20 13:12:04 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5
 Built:        Fri Nov 20 13:12:04 UTC 2015
 OS/Arch:      linux/amd64

docker info
Containers: 5
Images: 6
Server Version: 1.9.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 16
 Dirperm1 Supported: false
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.13.0-24-generic
Operating System: Ubuntu 14.04 LTS
CPUs: 1
Total Memory: 994 MiB
Name: ubuntu
ID: SOZD:32LZ:UXXG:3OXH:YTDQ:GWTP:C5FF:FP5Q:OPCI:46VY:F46A:4KM6
Http Proxy: http://<IP_ADDRESS>:808
Https Proxy: http://<IP_ADDRESS>:808
WARNING: No swap limit support

Interesting.  I do not see this with 1.9.0:
$ docker version
Client:
 Version:      1.9.0
 API version:  1.21
 Go version:   go1.4.3
 Git commit:   76d6bc9
 Built:        Tue Nov  3 19:20:09 UTC 2015
 OS/Arch:      darwin/amd64

Server:
 Version:      1.9.0
 API version:  1.21
 Go version:   go1.4.3
 Git commit:   76d6bc9
 Built:        Tue Nov  3 19:20:09 UTC 2015
 OS/Arch:      linux/amd64

$ docker
Usage: docker [OPTIONS] COMMAND [arg...]
       docker [ --help | -v | --version ]

A self-sufficient runtime for containers.

Options:

  --config=~/.docker              Location of client config files
  -D, --debug=false               Enable debug mode
  -H, --host=[]                   Daemon socket(s) to connect to
  -h, --help=false                Print usage
  -l, --log-level=info            Set the logging level
  --tls=false                     Use TLS; implied by --tlsverify
  --tlscacert=~/.docker/ca.pem    Trust certs signed only by this CA
  --tlscert=~/.docker/cert.pem    Path to TLS certificate file
  --tlskey=~/.docker/key.pem      Path to TLS key file
  --tlsverify=false               Use TLS and verify the remote
  -v, --version=false             Print version information and quit

@thajeztah: any ideas?

@RichardScothern hm, perhaps the difference is that the Darwin version is a client-only build? What do you get if you docker-machine ssh default and run it inside the VM?

Your theory is correct - the flag does appear in the VM.
As far as I remember, this flag was added before the daemon subcommand was added (I could be wrong).  This flag belongs only on the daemon.


Fails to build on Manjaro ('undefined reference ..')

Hallo
I have followed instruction to build the lib on manjaro, and I have dependcy libX11 installed, however when I try to compile a simple example (here ) I get this error when using make command:
/usr/bin/ld: CMakeFiles/binar.dir/main.cpp.o: in function `main':
main.cpp:(.text+0x46): undefined reference to `clip::set_text(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: main.cpp:(.text+0x76): undefined reference to `clip::get_text(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/binar.dir/build.make:97: binar] Error 1
make[1]: *** [CMakeFiles/Makefile2:149: CMakeFiles/binar.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

I am not sure what that mean or how to fix it? I also have tried to build on deepin, but i get same error.
btw here is my cmakelists file as well:
cmake_minimum_required(VERSION 3.21.1)

project(clipboard_library)

add_subdirectory(clip)

target_link_libraries(clip)

add_executable(binar main.cpp)

Is there a dependency/command i have forgot to include in the cmake file?
Thank s

i seem to have fixed the issue by making changes to my cmake file:
cmake_minimum_required(VERSION 3.11)
set(CMAKE_CXX_STANDARD 17)

project( ..)

add_subdirectory(clip)

add_executable(binary main.cpp)

target_link_libraries(binary clip)

and it now works. Closing this.


Migrate to Mimir Alertmanager

Motivation
Mimir has its own alertmanager, which is better integrated with the overall Mimir-functionality. Therefore we should migrate from the current Prometheus Alertmanager to the new Mimir Alertmanager.
### Stories
- [ ] https://github.com/giantswarm/roadmap/issues/3745
- [ ] https://github.com/giantswarm/roadmap/issues/3746
- [ ] https://github.com/giantswarm/roadmap/issues/3747
- [ ] https://github.com/giantswarm/roadmap/issues/3744
- [ ] https://github.com/giantswarm/roadmap/issues/3748
- [ ] https://github.com/giantswarm/roadmap/issues/3749
- [ ] https://github.com/giantswarm/roadmap/issues/3752
- [ ] https://github.com/giantswarm/roadmap/issues/3789
- [ ] https://github.com/giantswarm/giantswarm/issues/21287

Outcome

We know have an Alertmanager that is better integrated to the overall observability platform and gives us improved functionality in the future

Here is a migration plan we though about with sir @hervenicol :

Add Feature flag to disable each Alertmanager implementation individually: in pmo and o11y-op
Ensure we can deploy 2 Alertmanager, OpsGenie de-duplicate alerts
Enable Mimir Alertmanager
Switch Mimir Ruler to Mimir Alertmanager
Ensure Alerts are coming through on OpsGenie and Slack
Disable old Alertmanager


Propagate max errorcode to deepspeed when using PDSH launcher

Add '-S' argument to pdsh command to return the largest error code from the ssh sessions

@jerrymannil for some reason it won't let me update your branch align it with latest commits in master. Can you do that on your side, then I am happy to merge this.

@jeffra Merged with the master branch now.


增加 quick start 文档

http://wechatpy.readthedocs.org/zh_CN/master/quickstart.html
Working in progress.

@cloverstd @hunter007 @zhangfisher @weaming @imcncer
Would be great to get some suggestions.

一直在用 Markdown，还需要熟悉下 reStructuredText

Very well. Keep do it.

Ref #124 #125 #127

我可以写一个django的quickstart项目。

@hunter007 That would be great.


Hardcoded url in JavaScript of frontend

Hi,
Starting the image using docker-compose up lead to frontend having incorrect url in JS code for forms.
http://localhost:8080/compose.html

function clickEvent(){
    if (document.getElementById('media').value != "") {
        var formData = new FormData(document.getElementById('media-form'));
        const Http = new XMLHttpRequest();
        const url='http://ath-8.ece.cornell.edu:8081/upload-media';
        Http.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                var resp = JSON.parse(Http.responseText);
                uploadPost(resp);
           }
        };

        Http.open("POST", url, true);
        Http.send(formData);
    } else {
        uploadPost()
    }

}

Exactly this line:
const url='http://ath-8.ece.cornell.edu:8081/upload-media';

The same issue is with function uploadPost in compose.html, in user-timeline.html with clickEvent - variables url and img.src, and the same in home-timeline.html. Changing the address to const url='http://localhost:8081/upload-media'; worked in compose - the file was correctly uploaded and stored in the DB.

That's correct, you'll need to change that either to localhost, if you're running all microservices on the same machine, or to the machine address where the target microservice is running.

@cdelimitrou is the plan to remove these hard-coded names and replace with service names? Doing so will help with Kubernetes compatibility.
A Meshery community member has the social network app running on Kubernetes now (having converted from docker-compose packaging to Kubernetes manifests), however, the app is dysfunctional given these hard-codings.

Yes, we're working on updating this.
[reopening issue until it's fixed] @gy1005

Try to deploy DeathStarBench on k8s and encounter some dns issuses
I am interested in kubernetes, but there is little access to real workload in the industrial as a student, so DeathStarBench seems quite awesome to me. Given it is originally for docker-compose, I try to transfer it to k8s yamls. I think I almost make it, but there are some issues(which I guess is about dns settings of yg397/openresty-thrift:xenial image) I cannot handle, so I am now writing for help.
Kubernetes yaml files for socialNetwork are here, for mediaMicroservices are here, I write them according to the original relative docker-compose files and service-config.json.  When I kubectl apply -f the yamls, it seems they all run smoothly:

Note that the "service" pods have status running, which means they can access DB services they depends on, such as mongodb or redis, from the k8s cluster. But it seems that the nginx-thrift cannot find any services from the cluster.
When I run ./wrk -D exp -t 1 -c 1 -d 30s -L -s ./scripts/social-network/compose-post.lua http://<IP_ADDRESS>:8080/wrk2-api/post/compose -R 20 (<IP_ADDRESS> is ClusterIP of nginx-thrift service), the measured latency is either 0.00us or -nanus, the jaeger UI shows:

Log of the nginx-thrift pod says:
# kubectl logs  nginx-thrift-57cd7549c8-mjnwf -c nginx-thrift
2019/10/14 15:01:43 [error] 25#25: recv() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/14 15:01:48 [error] 25#25: recv() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/14 15:01:53 [error] 25#25: recv() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/14 15:01:58 [error] 25#25: recv() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/14 15:02:03 [error] 25#25: recv() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/14 15:02:08 [error] 25#25: recv() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/14 15:02:13 [error] 25#25: *2 lua entry thread aborted: runtime error: /usr/local/openresty/lualib/thrift/Thrift.lua:37: TTransportException: Could not connect to home-timeline-service:9090 (home-timeline-service could not be resolved (110: Operation timed out))
stack traceback:
coroutine 0:
        [C]: in function 'error'
        /usr/local/openresty/lualib/thrift/Thrift.lua:37: in function 'terror'
        /usr/local/openresty/lualib/thrift/TSocket.lua:87: in function 'open'
        /usr/local/openresty/lualib/thrift/RpcClient.lua:30: in function 'init'
        /usr/local/openresty/lualib/thrift/RpcClientFactory.lua:11: in function 'createClient'
        /usr/local/openresty/lualib/thrift/GenericObjectPool.lua:20: in function 'connection'
        ...nresty/nginx/lua-scripts/wrk2-api/home-timeline/read.lua:74: in function 'ReadHomeTimeline'
        content_by_lua(nginx.conf:307):3: in main chunk, client: <IP_ADDRESS>, server: localhost, request: "GET http://localhost:8080/wrk2-api/home-timeline/read?user_id=221&start=85&stop=95 HTTP/1.1", host: "<IP_ADDRESS>:8080"
2019/10/15 03:09:18 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:18 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:18 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:18 [error] 9#9: recv() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:23 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:23 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:28 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:28 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:33 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:33 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:38 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:38 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:43 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:43 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:48 [error] 9#9: *5 lua user thread aborted: runtime error: /usr/local/openresty/lualib/thrift/Thrift.lua:37: TTransportException: Could not connect to media-service:9090 (media-service could not be resolved (110: Operation timed out))
stack traceback:
coroutine 0:
        [C]: in function 'error'
        /usr/local/openresty/lualib/thrift/Thrift.lua:37: in function 'terror'
        /usr/local/openresty/lualib/thrift/TSocket.lua:87: in function 'open'
        /usr/local/openresty/lualib/thrift/RpcClient.lua:30: in function 'init'
        /usr/local/openresty/lualib/thrift/RpcClientFactory.lua:11: in function 'createClient'
        /usr/local/openresty/lualib/thrift/GenericObjectPool.lua:20: in function 'connection'
        ...al/openresty/nginx/lua-scripts/wrk2-api/post/compose.lua:67: in function <...al/openresty/nginx/lua-scripts/wrk2-api/post/compose.lua:61>
coroutine 1:
        [C]: in function 'wait'
        ...al/openresty/nginx/lua-scripts/wrk2-api/post/compose.lua:120: in function 'ComposePost'
        content_by_lua(nginx.conf:321):3: in main chunk, client: <IP_ADDRESS>, server: localhost, request: "POST http://localhost:8080/wrk2-api/post/compose HTTP/1.1", host: "<IP_ADDRESS>:8080"

The log shows it cannot find home-timeline-service:9090 and media-service:9090 via resolver <IP_ADDRESS>:53.
But when I use  kubectl exec  nginx-thrift-57cd7549c8-mjnwf -it /bin/bash  to enter the pod ,  I get:
root@nginx-thrift-57cd7549c8-mjnwf:/# cat /etc/resolv.conf
nameserver <IP_ADDRESS>
search default.svc.cluster.local. svc.cluster.local. cluster.local.
options ndots:5

root@nginx-thrift-57cd7549c8-mjnwf:/# curl home-timeline-service:9090
curl: (52) Empty reply from server

root@nginx-thrift-57cd7549c8-mjnwf:/# curl media-service:9090
curl: (52) Empty reply from server

I think this means the resolver of the pod is <IP_ADDRESS>, which is the ClusterIP of core-dns service of the cluster, and it CAN reach home-timeline-service:9090 and media-service:9090  from inside the pod.
So I guess the strange "<IP_ADDRESS>:53" resolver may be assigned hard-coded in the image, this issue seems relative.
I am wondering whether you could help me understand the problem and fix it, I am more than honored if I could work with you to make the awesome work better.

I find that the strange "<IP_ADDRESS>" resolver is defined in socialNetwork/nginx-web-server/conf/nginx.conf:43 (and another two nginx.conf files). I change the resolver IP to <IP_ADDRESS>, which is the clusterIP of core-dns service of my kubernetes cluster and re-apply all the yamls of socialNetwork. This time, when I run  ./wrk -D exp -t 1 -c 1 -d 30s -L -s ./scripts/social-network/compose-post.lua http://<IP_ADDRESS>:8080/wrk2-api/post/compose -R 20, where <IP_ADDRESS> is the new clusterIP of nginx-thrift service, the printed latency is more reasonable, but logs of pod nginx-thrift-57cd7549c8-mqtnr still shows that it cannot get access to any services.
Before I change the resolver setting in config file, the related error message in nginx-thrift  pod log is
2019/10/15 03:09:43 [error] 9#9: send() failed (111: Connection refused) while resolving, resolver: <IP_ADDRESS>:53
2019/10/15 03:09:48 [error] 9#9: *5 lua user thread aborted: runtime error: /usr/local/openresty/lualib/thrift/Thrift.lua:37: TTransportException: Could not connect to media-service:9090 (media-service could not be resolved (110: Operation timed out))

which may indicate the resolver is unavailable; by changing the resolver setting, the error message becomes
2019/10/16 08:38:01 [error] 14#14: *650 lua user thread aborted: runtime error: /usr/local/openresty/lualib/thrift/Thrift.lua:37: TTransportException: Could not connect to media-service:9090 (media-service could not be resolved (3: Host not found))

which may indicate it can connect to the resolver, but cannot get the name "media-service" resolved. However, as I mentioned in the previous e-mail, when I use kubectl exec -it bash to get into the pod, the name "media-service"  CAN be resolved in command line, so can all other service names.
root@nginx-thrift-57cd7549c8-mqtnr:/# curl media-service:9090
curl: (52) Empty reply from server

root@nginx-thrift-57cd7549c8-mqtnr:/# curl user-timeline-service:9090
curl: (52) Empty reply from server

root@nginx-thrift-57cd7549c8-mqtnr:/# curl url-shorten-mongodb:27017
It looks like you are trying to access MongoDB over HTTP on the native driver port.

Besides, if I just comment out the resolver line, the error message in pod log will be
2019/10/16 07:46:42 [error] 18#18: *2 lua user thread aborted: runtime error: /usr/local/openresty/lualib/thrift/Thrift.lua:37: TTransportException: Could not connect to media-service:9090 (no resolver defined to resolve "media-service")

As far as I can imagine, in docker-compose, every docker has to deal with the issue about dns, so it has to define a resolver; but in kubernetes, the cluster level core-dns will handle all things about dns. When I use  cluster core-dns as the docker resolver, conflicts may happen. But to point it out more clearly and fix it is now beyond my ability, I really need your help.
Sorry to have bothered you.

With the help of @gy1005 , I solve the dns problem and other issues, then deploy socialNetwork and mediaMicroservices on my k8s cluster of 30+ machines. Here is the pull request.

Thanks @Panlichen. Pull request merged.