9anime introduced... captcha

9anime has introduced google captcha. Thus I updated the script thinking perhaps this was resolved upstream, but not yet. So I am opening this bug.
To reproduce
I have 9anime as default. On the other hand animepahe does work, twist.moe gives a link to vlc but is not working, and kissanime... well... I think cloudfare scraper needs an update.
Anyway here is the command for 9anime:

▶ anime dl 'fruits basket' --play vlc
anime: anime-downloader 3.6.3
anime: 'NoneType' object has no attribute 'find_all'

LOG

▶ anime dl 'fruits basket' --play vlc  --log-level DEBUG
INFO root: anime-downloader 3.6.3
DEBUG root: Platform: Linux-5.0.10-050010-generic-x86_64-with-neon-18.04-bionic
DEBUG root: Python 3.6.7
DEBUG root: https://www4.9anime.to/search?keyword=fruits+basket
ERROR root: 'NoneType' object has no attribute 'find_all'

Can you please post screenshot, where do you experience google captcha.
In my workflow, I didn't get any, Did you get it during cloudflare?

Example link here

Link to captcha: here
@29ayush hmmm.... 9anime changes their domain so often I am not even sure I have the "CORRECT" one but ... for instance this command used to work:
anime dl 'https://www4.9anime.to/watch/carole-tuesday.18vq/m1nppx' --play vlc --episodes 4
anime: anime-downloader 3.6.3
anime: Extracting episode info from page
'data-ts'

Yes I am getting the captcha now, I wasn't getting it earlier.

The Captcha might be a side effect of CloudFlare. According to their instructuions, this is mainly to validate an IP rather than for the website itself. Ergo, if you solve the captcha in a browser and then use the downloader, this should work. But currently #181 is a problem... :)

Seems to be stored in a cookie when you have completed in browser

9anime temp ip blocking when sending 'harmful requests'

9anime used to show up, but it's been giving me a Traceback error involving multiple files. Default file configurations with 9anime being the provider. Using latest (as of 5/6/2019) Python and updated anime-downloader script

At this moment, 9anime is working for me, I am not getting a captcha.
Has 9anime removed the captcha ?

Strange. I can use it right now as well. But as far as I know, the website still runs through CloudFlare. Keep an eye out and let us know if you found anything - I shall do the same, too. :)

I can also confirm 'anime dl' works with 9anime too.

It looks like 9anime has rolled back captcha.
I think this issue should be closed @vn-ki @RaitaroH

@29ayush is back for me.

This stays open and pinned until captcha goes away for real.

I'm able to download anime but I can not use the watch command for any provider. Windows 10 Python 3.7 I get this same error.

Can anybody comment on how to download anime from a supported provider? Kissanime does not work, and neither does 9anime. Any temporal fix?

GogoAnime.
Sent from my iPhone

On Jun 2, 2019, at 5:24 PM, Zranz<EMAIL_ADDRESS>wrote:
Can anybody comment on how to download anime from a supported provider? Kissanime does not work, and neither does 9anime. Any temporal fix?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

I tried gogoanime, animepahe, kisscartoon, masterani, and none of them currently works. Are they working for anybody, or it depends on the anime?

Are you using the watch command or the DL command?
Sent from my iPhone

On Jun 3, 2019, at 5:31 PM, Zranz<EMAIL_ADDRESS>wrote:
I tried gogoanime, animepahe, kisscartoon, masterani, and none of them currently works. Are they working for anybody, or it depends on the anime?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.

DL commnad.

Welp, looks like they are back. :/
I looked for some reCAPTCHA solvers, and I found this one here: https://www.npmjs.com/package/captcha-solver
Apparently it has a CLI. It would be a thought to use a solving mechanism and extract the cookies out of that. Im still playing around with that CLI, and there might be one for Python itself (I would be surprised if not...)

Also, I dont know if aria2 supports it - but maybe using a cookie jar would be helpful for this situation, as to store the cookies returned from a solved captcha for later use.

Can confirm that 9anime still doesn't work. the browser however doesn't show any captcha to me.

Now I got it, but solving it and trying to re-download again doesn't work. A way to pass in cookies to tell it that the captcha was already solved would work wonders here I guess.

I have given this whole situation some thought, and I came up with an idea on how this could easily be tackled:
The downloader tries to connect to 9anime.
IF 9anime shows the captcha page (WAF), recognizable by the inclusion of the reCAPTCHA code,
  THEN open a HTTP server and proxy requests.
             Tell the user the URL to enter into their browser,
             detect any <Set-Cookie:> header in the response,
             and store them in a local cookiejar.
Instruct <aria2c> to use the stored cookies.
Proceed as normal.

aria2c has a few options for this:
       --header=<HEADER>
              Append HEADER to HTTP request header.  You can use this option repeatedly to specify more than one header:

                 $ aria2c --header="X-A: b78" --header="X-B: 9J1" "http://host/file"

       --load-cookies=<FILE>
              Load Cookies from FILE using the Firefox3 format (SQLite3), Chromium/Google Chrome (SQLite3) and the Mozilla/Firefox(1.x/2.x)/Netscape format.

              NOTE:
                 If aria2 is built without libsqlite3, then it doesn't support Firefox3 and Chromium/Google Chrome cookie format.

       --save-cookies=<FILE>
              Save Cookies to FILE in Mozilla/Firefox(1.x/2.x)/ Netscape format. If FILE already exists, it is overwritten. Session Cookies are also saved and their expiry values  are
              treated as 0.  Possible Values: /path/to/file

(Source: $ man aria2c)
So, you could do:
aria2 \
  --header="Cookie: ..." \
  --save-cookies=$anime_dl_config/cookies.dat \
  --load-cookies=$anime_dl_config/cookies.dat
  ...other options...

This should tell aria2c to:

Send the cookie obtained from the MITM approach described above,
Save any cookies collected,
reuse any cookies collected.

This would mean, that for subsequent runs, aria2c would automatically pick up an established WAF verification and no additional user interaction would be needed.
BUT... You could also let the user supply the cookie jar from their Firefox or Chrome installation - or, just look for them. For instance, for me, I could do: --load-cookies=/Users/Ingwie/Library/Application Support/Google/Chrome/Default/Cookies and it would re-use my existing cookies. In fact, that is exactly what I am going to try out. After all, it is possible to add additional aria2c options.
Anyway, I thought I'd share this idea. Unfortunately, I am not very experienced in Python to actively create a PR, so I am setting back to just...concepting. ^^;

I'd like a quick solution, just like youtube-dl got. I'd like to make the following assumptions and thus recommend the probably easiest solution:

anime-downloader just scrapes the web page for the actual hoster links (OpenLoad or similar) and forward the actual download link to the downloader. The hoster itself might not even have a captcha/cloudflare protection. Thus the problem seems to be the index site (9anime) itself.
And to bypass the 9anime captcha protection, it might already be enough to handle things like youtube-dl currently does with e.g. crunchyroll. That is, to make the user go to 9anime, solve the captcha, export the cookies by using a browser addon like Export Cookies and just send in the cookies to anime-downloader. Thats how youtube-dl does things.
I however don't know if my above assumptions are correct.

Would we be able to using this to get around the captcha?
https://github.com/eastee/rebreakcaptcha

Did you properly read the blog article, or just checked out the repo?
As the blog article states at the very bottom, this piece of code
doesn't work anymore since 3/3/2017.
Nice idea though anyway :).

The solutions mentioned here ( @Timtam's one) is possible. I won't be implementing it though. Nineanime breaks their stuff way too frequently. If someone can PR the solution (in a generic way), I will consider it.

@Timtam I didn't read the updates there,,, my bad :/

Just to say still not working.
$ anime -ll DEBUG dl yamada
2019-10-18 13:06:17 matt.local anime_downloader.util[18359] INFO anime-downloader 4.0.0
2019-10-18 13:06:17 matt.local anime_downloader.util[18359] DEBUG Platform: Darwin-18.7.0-x86_64-i386-64bit
2019-10-18 13:06:17 matt.local anime_downloader.util[18359] DEBUG Python 3.7.4
2019-10-18 13:06:18 matt.local anime_downloader.sites.helpers.request[18359] DEBUG HTML file temp_dir: /var/folders/sy/jcz9n9dn2t98677rzpmyvkr00000gn/T/animedll34cw94x
2019-10-18 13:06:18 matt.local anime_downloader.sites.helpers.request[18359] DEBUG -----
2019-10-18 13:06:18 matt.local anime_downloader.sites.helpers.request[18359] DEBUG GET https://www4.9anime.to/search?
2019-10-18 13:06:18 matt.local anime_downloader.sites.helpers.request[18359] DEBUG {'params': {'keyword': 'yamada'}}
2019-10-18 13:06:18 matt.local anime_downloader.sites.helpers.request[18359] DEBUG {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Gecko/20100101 Firefox/56.0'}
2019-10-18 13:06:18 matt.local anime_downloader.sites.helpers.request[18359] DEBUG -----
send: b'GET /search?keyword=yamada HTTP/1.1\r\nHost: www4.9anime.to\r\nuser-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Gecko/20100101 Firefox/56.0\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: Date: Fri, 18 Oct 2019 12:06:19 GMT
header: Content-Type: text/html
header: Transfer-Encoding: chunked
header: Connection: keep-alive
header: Set-Cookie: __cfduid=d826e6f22bb7787f37cb618148b80586f1571400379; expires=Sat, 17-Oct-20 12:06:19 GMT; path=/; domain=.9anime.to; HttpOnly
header: CF-Cache-Status: DYNAMIC
header: Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
header: Server: cloudflare
header: CF-RAY: 527a62b0d98edbdb-LHR
header: Content-Encoding: gzip
2019-10-18 13:06:19 matt.local anime_downloader.session[18359] DEBUG uncached request
2019-10-18 13:06:19 matt.local anime_downloader.sites.helpers.request[18359] DEBUG https://www4.9anime.to/search?keyword=yamada
2019-10-18 13:06:19 matt.local anime_downloader.sites.helpers.request[18359] DEBUG /var/folders/sy/jcz9n9dn2t98677rzpmyvkr00000gn/T/animedll34cw94x/tmp45u7uh0_
2019-10-18 13:06:19 matt.local anime_downloader.sites.nineanime[18359] DEBUG https://www4.9anime.to/search?keyword=yamada
Traceback (most recent call last):
  File "/usr/local/bin/anime", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/anime_downloader/cli.py", line 53, in main
    cli()
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/anime_downloader/commands/dl.py", line 85, in command
    anime_url = util.search(anime_url, provider)
  File "/usr/local/lib/python3.7/site-packages/anime_downloader/util.py", line 79, in search
    search_results = cls.search(query)
  File "/usr/local/lib/python3.7/site-packages/anime_downloader/sites/nineanime.py", line 84, in search
    'div', {'class': 'film-list'}).find_all('div', {'class': 'item'})
AttributeError: 'NoneType' object has no attribute 'find_all'
matt@matt:~$

me too

At this point if I can't find a show easily on a provider I just run:
declare -a provider=(animeflix animepahe animefreak animeflv anistream gogoanime kissanime kisscartoon twist.moe itsaturday)
for (( k=1; k<=${#provider[@]}; k++ )); do
  printf "\n\033[0;31m%s\n" "PROVIDER: ${provider[$k]}"
  anime dl 'Gundam: The Origin' --episodes 1 --provider "${provider[$k]}" --play mpv
done

Oh, that is interesting. We should maybe make that part of the tool.

Didn't want this getting too stale, so I decided to take a look at some of the code to see if it's possible to fix what is happening with 9anime recently (once past the captcha). Most of the other providers I've tried either seem to have bad quality/intrusive watermarks or also started breaking recently.
The log of the error I was running into and fixed:
LOG
Traceback (most recent call last):
  File "/home/user/.local/bin//anime", line 11, in <module>
    sys.exit(main())
  File "/home/user/.local/lib/python3.6/site-packages/anime_downloader/cli.py", line 53, in main
    cli()
  File "/home/user/.local/lib/python3.6/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/home/user/.local/lib/python3.6/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/user/.local/lib/python3.6/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/user/.local/lib/python3.6/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/user/.local/lib/python3.6/site-packages/anime_downloader/commands/dl.py", line 93, in command
    fallback_qualities=fallback_qualities)
  File "/home/user/.local/lib/python3.6/site-packages/anime_downloader/sites/anime.py", line 84, in __init__
    self._episode_urls = self.get_data()
  File "/home/user/.local/lib/python3.6/site-packages/anime_downloader/sites/anime.py", line 165, in get_data
    self._episode_urls = self._scrape_episodes()
  File "/home/user/.local/lib/python3.6/site-packages/anime_downloader/sites/nineanime.py", line 125, in _scrape_episodes
    episodes = episodes.find_all('li')
AttributeError: 'NoneType' object has no attribute 'find_all'

I've been able to get the dl option for 9anime working for Dragon Ball Z. I've also been able to add it to the list of anime's to watch. I mostly use the tool in Windows through WSL to download the episodes and then broadcast the file directory locally, so I can't "prove" it watches correctly since there's no actual player to load with WSL, so I'll probably fork this repo, add the changes, then test the watch command using the Linux distro I have installed on another PC. I'll also test a few other animes to see if they work properly before making the PR.

I have been making my own api recently and ran into the same problem that @GnatNamedAsh ran into. It seemed at first it was just rate limiting but I did a bit more digging and found out that the request headers and query string parameters that were being sent to the server were being strictly monitored by cloudflare or some other banning software. If the request headers and  query string parameters did not match with what was “supposed” to be going through it would eventually temporarily ban the user after two or three requests. I used the chrome devtools to check the requests and they are listed below. I have removed some sensitive info from the request headers like the cookies and user agent because for obvious reasons and I don't want to be fingerprinted or ip banned permanently.
General:
Request URL: https://9anime.to/ajax/film/servers/….
Request Method: GET
Status Code: 200
Remote Address: ….
Referrer Policy: no-referrer-when-downgrade

Request Headers:
:authority: 9anime.to
:method: GET
:path: /ajax/film/servers/..
:scheme: https
accept: application/json, text/javascript, */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;
age: 0
cookie:..
referer: https://9anime.to/watch/...
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
user-agent: ...
x-requested-with: XMLHttpRequest

The above request would not cause a temp ban because all the request headers that are needed are present.
General:
Request URL: https://9anime.to/ajax/film/servers/….
Request Method: GET
Status Code: 200
Remote Address: ….
Referrer Policy: no-referrer-when-downgrade

Request Headers:
:authority: 9anime.to
:method: GET
:path: /ajax/film/servers/..
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;
cookie:..
referer: https://9anime.to/watch/...
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
user-agent: ...

I would get temp banned if the above request was sent to the server more than two times or I would have to complete a captcha. 9anime gives the following response if the user gets temp banned.
“Our firewall temporarily blocks your IP in 1 hour because of detecting harmful requests. Please don't use any unofficial app or browser extension to access to our website to avoid this issue. Thanks!”
Seems like what they mean by “detecting harmful requests” is that the request headers do not match with what 9anime is looking for. All of this means that what @IngwiePhoenix and others mentioned about reCAPTCHA is not needed if the requests are sent properly. 9anime is getting more and more strict with their firewall which means that the requests have to be sent in a curtain order and curtain format so that the user would not get banned or shown a captcha. I will be testing further and report back once I have more results. By the way I'm a nodejs, c, c++, java,  and web developer and do not understand a single line of python. This means I do not understand the trace back given by @GnatNamedAsh.

I have been making my own api recently and ran into the same problem that @GnatNamedAsh ran into. It seemed at first it was just rate limiting but I did a bit more digging and found out that the request headers and query string parameters that were being sent to the server were being strictly monitored by cloudflare or some other banning software. If the request headers and query string parameters did not match with what was “supposed” to be going through it would eventually temporarily ban the user after two or three requests. I used the chrome devtools to check the requests and they are listed below. I have removed some sensitive info from the request headers like the cookies and user agent because for obvious reasons and I don't want to be fingerprinted or ip banned permanently.
General:
Request URL: https://9anime.to/ajax/film/servers/….
Request Method: GET
Status Code: 200
Remote Address: ….
Referrer Policy: no-referrer-when-downgrade

Request Headers:
:authority: 9anime.to
:method: GET
:path: /ajax/film/servers/..
:scheme: https
accept: application/json, text/javascript, */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;
age: 0
cookie:..
referer: https://9anime.to/watch/...
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
user-agent: ...
x-requested-with: XMLHttpRequest

The above request would not cause a temp ban because all the request headers that are needed are present.
General:
Request URL: https://9anime.to/ajax/film/servers/….
Request Method: GET
Status Code: 200
Remote Address: ….
Referrer Policy: no-referrer-when-downgrade

Request Headers:
:authority: 9anime.to
:method: GET
:path: /ajax/film/servers/..
:scheme: https
accept: */*
accept-encoding: gzip, deflate, br
accept-language: en-US,en;
cookie:..
referer: https://9anime.to/watch/...
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
user-agent: ...

I would get temp banned if the above request was sent to the server more than two times or I would have to complete a captcha. 9anime gives the following response if the user gets temp banned.
“Our firewall temporarily blocks your IP in 1 hour because of detecting harmful requests. Please don't use any unofficial app or browser extension to access to our website to avoid this issue. Thanks!”
Seems like what they mean by “detecting harmful requests” is that the request headers do not match with what 9anime is looking for. All of this means that what @IngwiePhoenix and others mentioned about reCAPTCHA is not needed if the requests are sent properly. 9anime is getting more and more strict with their firewall which means that the requests have to be sent in a curtain order and curtain format so that the user would not get banned or shown a captcha. I will be testing further and report back once I have more results. By the way I'm a nodejs, c, c++, java, and web developer and do not understand a single line of python. This means I do not understand the trace back given by @GnatNamedAsh.

yeah you are right , its always safe to provide complete headers and mimic a browser rather than sending only the required ones

9anime is back


Not following the design guidelines for vertical steppers

I think it is a good start, but it would look and feel much better following the Material Design Guidelines for Vertical Steppers.

Don’t embed steppers within steppers or use multiple steppers on one page.
Vertical Stepper Form has Vertical and Horizontal progress steppers combined.

Should follow all of the Design Specs

I think this library has a ton of potential. I will try to contribute as much as possible.
Cheers
Here is an example of the closest to the guidelines that I have created.

Check out the last version! :)


Tokens that share name with a group are not visible in the UI

When using a naming convention that's shared (i.e. in both typography and composition tokens within the same token set, the nested composition tokens are not visible within the plugin UI even though they are available as unique tokens in the JSON. For  example, after adding the {bjc.type.p.lg.bold.defaultColor} token to the Composition token section within the UI, the Typography token {bjc.type.p.lg.bold} remains visible but the Composition token does not.
{
  "bjc": {
    "type": {
      "p": {
        "lg": {
          "bold": {
            "value": {
              "fontFamily": "{bjc.fontFamilies.open-sans}",
              "fontWeight": "{bjc.fontWeights.700}",
              "lineHeight": "{bjc.lineHeights.2}",
              "fontSize": "{bjc.fontSize.lg}",
              "letterSpacing": "{bjc.letterSpacing.4}",
              "paragraphSpacing": "{bjc.paragraphSpacing.lg}",
              "textCase": "{bjc.textCase.none}",
              "textDecoration": "{bjc.textDecoration.none}"
            },
            "type": "typography",
            "description": "18px / 1.125rem",
            "defaultColor": {
              "value": {
                "typography": "{bjc.type.p.lg.bold}",
                "fill": "{bjc.colors.type.body.default}"
              },
              "type": "composition"
            }
          }
        }
      }
    }
  }
}

Only when I move the typography token to a different token set does this not occur.  For example...
Token set A
{
  "bjc": {
    "type": {
      "p": {
        "lg": {
          "bold": {
            "value": {
              "fontFamily": "{bjc.fontFamilies.open-sans}",
              "fontWeight": "{bjc.fontWeights.700}",
              "lineHeight": "{bjc.lineHeights.2}",
              "fontSize": "{bjc.fontSize.lg}",
              "letterSpacing": "{bjc.letterSpacing.4}",
              "paragraphSpacing": "{bjc.paragraphSpacing.lg}",
              "textCase": "{bjc.textCase.none}",
              "textDecoration": "{bjc.textDecoration.none}"
            },
            "type": "typography",
            "description": "18px / 1.125rem"
            }
          }
        }
      }
    }
  }
}

Token set B
{
  "bjc": {
    "type": {
      "p": {
        "lg": {
          "bold": {
            "defaultColor": {
              "value": {
                "typography": "{bjc.type.p.lg.bold}",
                "fill": "{bjc.colors.type.body.default}"
              },
              "type": "composition"
            }
          }
        }
      }
    }
  }
}

Is this a bug? It would be ideal if the UI would not hide these tokens.

This is currently intended as a token name should not share a name with a group.
This was based on a prior draft of the W3C which specified that this should be the case.
In the newest draft this is however not found anymore, so in the future we'll support this as well (once we've moved on to support the new version of the draft)

We'll be supporting this in the next release, even before the new W3C draft.

This would be great. In figma, we can use the same name for a color style and a color style group.
However, it seems that the change is moved from 🤞 To be released to 🗃 Backlog and not yet released. Is there anything to reconsider?

@six7 assuming this one can be closed but I'm not sure


JSBSim integration

Is there any way we can integrate open source FDM JSBSim into this?

JSBSim is not a "plug and play" solution. You would need to write a translation layer between the JSBSim binary and unity, and then handle the fact that JSBSim uses double precision floats. Basically, the integration would be a project of its own, and is out of scope for this project.


Change default devel K8S_VERSION to 1.20

1.17 is no longer supported by upstream, and 1.21 didn't work with just
a trivial version change, suggesting more work may need to be done
Signed-off-by: Ashley Davis<EMAIL_ADDRESS>Update default development version of Kubernetes in kind from 1.17 to 1.20

/kind cleanup

/test pull-cert-manager-bazel

/cherry-pick release-1.3


feat: add CONTRIBUTING.md

closes: https://github.com/HeartPredict/HeartPredict/issues/5

I'd say we should either not link to a non-existing CONDUCT.md or add one, otherwise it's fine

My bad, forgot that we ought to add one anyways :facepalm:


4.4.0-RC0 Release Checklist

Package 4.4.0-RC0
Package Location
https://botbuilder.myget.org/gallery/botbuilder-v4-dotnet-daily
https://botbuilder.myget.org/gallery/botbuilder-v4-js-daily
Change Notes
In this release, the team focused on improving and simplifying message and activities handling. The Bot Framework Activity Schema is the underlying schema used to define the interaction model for bots.
Review all changes that went into 4.4 in the detailed change logs:
[Change Log for .NET]   [Change Log for Node.js]
GitHub Updates
Create New Branch @cleemullins

[X] C#   4.4
[x] JS 4.4

Setup Branch Protection on New Branch @cleemullins

[X] C#
[x] JS

Bump Version on Master @cleemullins

[ ] C#
[ ] JS

Update Readme.md in master to reflect new branch @cleemullins

[X] C#
[x] JS

Create DRAFT Release @cleemullins

[X] C# 4.4
[x] JS 4.4

Write release notes and change log @CoHealer

[x] C#
[x] JS

Update road-map @yochay

[ ] C#
[ ] JS
[ ] Java
[ ] Python

Apply Release Notes to DRAFT Release @CoHealer

[x] C#
[x] JS

Publish GitHub Release @cleemullins

[ ] C#
[ ] JS

Required Signoff
Teams  @CoHealer, Sid Uppal

[ ] C#
[ ] JS

Cortana @CoHealer, bw-kforce-ms

[ ] C#
[ ] JS

Virtual Assistant @CoHealer, @darrenj

[ ] C#
[ ] JS

Testing Status @jwiley84
Console Adapter

[x] C#
[x] JS

Simple Dialog Flow

[x] C#
[x] JS

Simple State Management

[x] C#
[x] JS

Welcome Messages

[x] C#
[x] JS

Prompts and Prompt Validations

[x] C#
[x] JS

Standard Cards

[x] C#
[x] JS

Adaptive Cards

[X] C#
[x] JS

Card Actions

[X] C#
[x] JS

Regex Checking

[X] C#
[x] JS

QnA Maker

[X] C#
[x] JS

LUIS

[X] C#
[x] JS

Dispatch

[X] C#
[x] JS

Attachments

[X] C#
[x] JS

Proactive Messages

[X] C#
[x] JS

Middlware

[X] C#
[x] JS

Translations

[X] C#
[x] JS

Authentication

[X] C#
[x] JS

Waterfalls and Dialog Sets

[X] C#
[x] JS

State Storage

[X] C#

Transcript Logging

[x] JS

Facebook-specific Events

[X] C#
[x] JS

Cortana Skills (not tested on Cortana channel)

[x] C#
[x] JS

Application Insights

[X] C#
[x] JS

Teams

[X] C#
[x] JS

Enterprise Bot Template

[X] C#

@cleemullins

Closing, new RC checklist being tracked with https://github.com/Microsoft/BotBuilder/issues/5377


Significantly improves startup performance by asynchronously building…

… known state on startup.

          1 Warning

:warning:
Any source code changes should have an entry in CHANGELOG.md or have #trivial in their title.

  Generated by :no_entry_sign: Danger

Excited for this PR :). Let me know when it's ready for a full review — I'll try to look in depth within a day or two.

          1 Warning

:warning:
Any source code changes should have an entry in CHANGELOG.md or have #trivial in their title.

  Generated by :no_entry_sign: Danger


Enhancement: Configurable delay before start typing

When launching clickpaste, I need to double click in the password field on the windows login screen that is an RDP session
the copy paste process seems to start at the very first click before the second clicks select the password box on the logon screen.
there is a delay between chars, but is there a way to add a delay before the copy process starts? I tried to look in the ClickPaste.config file I see nothing for a pasting delay.

Nothing exists like that now, but adding a delay is a good feature suggestion


udevadm info requires --attribute-walk

udevadm info throws a missing option error on Raspbian Wheezy.

udevadm info on these devices only does an attribute walk, which will have to be parsed to work. I may be able to get an attribute walk to work on all platforms, but am not sure I really want to (the list of environment variables for shell script processing from other versions of udevadm works really well).

CentOS 6 also does this, indicating that the bash variable style output of udevadm in Fedora is a newer behavior.
paducah.sh needs to use --attribute-walk to support a broader range of devices and parse that output to a SH form for later use.


Login via Settings

Fixes #18
Fixes #8

Settings now contain SIGN IN and SIGN OUT actions
Initially only SIGN-IN action is shown on settings page.
SIGN IN shows email and password dialogs and tries to login. When successful, token and email will be stored in settings.
When logged in, email and SIGN OUT action will appear on settings page.
SIGN OUT will show confirmation dialog and reset email and token in settings if user confirms to sign out.
When a video is selected, token will be looked up from settings. If token is empty, log-in dialog will be shown.

I have no idea how long the token is valid and what happens if it gets invalid. This case is not handled yet by this PR. I would suggest that we use this branch for a while in our Kodi installations to see what happens.
Email is not validated yet, although it can easily be done within the SIGN-IN action. So, we should keep #9 open.

Login dialog will show again when token is expired.

Login time is shown in settings


Use msgrv2 always for all ODF modes(internal,external,provider)

Initially in 4.13 when encryption in-transit was implemented we started to use msgrv2 for internal mode only. External mode & Provider mode were excluded.
For external mode, the concern was the availability of msgrv2 port always on the RHCS cluster. But now we have reached ceph v18 & msgrv2 is being by default on, since ceph Nautilus 14.2. So we can now use mgsr2 for external mode safely.
For provider mode, the concern was the availability of the required kernel versions on old client clusters. But now that concern also seems no longer valid. So we can now use msgrv2 for provider mode as well.
Also as we would always use msgrv2, we can now simplify the GetCephFSKernelMountOptions function to remove the conditional checks. If encryption is enabled use "secure" otherwise "prefer-crc".

/hold

/cc @travisn

@parth-gr Can you also confirm if the external cluster script collects the v2 endpoint (port 3300) when detecting the mons? Commonly I would expect both v1 and v2 to be available, so we just want to start relying exclusively on the v2 port.

Does the existing PVs/VSCs continue to work if ms_mode is changed to prefer_crc from legacy, before 4.17 we (provider) weren't using this option and so it was default.
LGTM and I'd like a quick opinion from @Madhu-1, thanks.

Yes, existing volumes would continue to use the legacy v1 port without any issues. The mount option is utilised only during volume mounting process in the beginning. So any new volumes that would be mounted after this change will use the prefer-crc mount option.

Yes, existing volumes would continue to use the legacy v1 port without any issues. The mount option is utilised only during volume mounting process in the beginning.

Does that means v2 port can still reconcile/watch/read the PVC that is created by v1 port??

@malayparida2000 are we sure that RHCS doesn't support running only on v1 ports? if its supported we also need to support the same, if not we are good, can we get this confirmation?

@malayparida2000 are we sure that RHCS doesn't support running only on v1 ports? if its supported we also need to support the same, if not we are good, can we get this confirmation?

By support, I have to check with the support team may be. But yes on a RHCS cluster msgrv2 port can be disabled if wanted by the customer, so technically a RHCS cluster can be of v1 port only.

Yes, existing volumes would continue to use the legacy v1 port without any issues. The mount option is utilised only during volume mounting process in the beginning.

Does that means v2 port can still mount/remount the PVC that is created by v1 port??

Yes if remounting happens then the volume will now mount using the v2 port

@malayparida2000 are we sure that RHCS doesn't support running only on v1 ports? if its supported we also need to support the same, if not we are good, can we get this confirmation?

By support, I have to check with the support team may be. But yes on a RHCS cluster msgrv2 port can be disabled if wanted by the customer, so technically a RHCS cluster can be of v1 port only.

we need to check on this one before making this default.

Just an update on the discussion here,
Me & Travis did get in touch with Federico(Ceph PM) & Orit. Their opinion is on the RHCS cluster since nautilus(14.2) the msgrv2 port is by default available & in use. There is no reasonable general reason for v2 port being turned off/unavailable on RHCS cluster. So we should be safe in making the v2 port default for ODF. We are also in touch with Illya about this & would soon make a decision on this.

Just an update on the discussion here, Me & Travis did get in touch with Federico(Ceph PM) & Orit. Their opinion is on the RHCS cluster since nautilus(14.2) the msgrv2 port is by default available & in use. There is no reasonable general reason for v2 port being turned off/unavailable on RHCS cluster. So we should be safe in making the v2 port default for ODF. We are also in touch with Illya about this & would soon make a decision on this.

Agreed, let's go ahead with this requirement to always use the v2 port for downstream, including for external clusters.
We just need to ensure the mon endpoints that are imported are also setting v2 ports. I believe this is already something that Rook enforces during the cluster reconcile. @parth-gr Could you test to confirm that if RequireMsgr2 is set in the cephcluster CR for the external cluster scenario, we replace any v1 ports with v2 ports as part of the rook cluster reconcile?

Agreed, let's go ahead with this requirement to always use the v2 port for downstream, including for external clusters.
We just need to ensure the mon endpoints that are imported are also setting v2 ports. I believe this is already something that Rook enforces during the cluster reconcile. @parth-gr Could you test to confirm that if RequireMsgr2 is set in the cephcluster CR for the external cluster scenario, we replace any v1 ports with v2 ports as part of the rook cluster reconcile?

For the external cluster, we check if the leader endpoint provided by the Python script has v2 if it contains a v2 port rook internally update it RequireMsgr2: true https://github.com/rook/rook/blob/58a0c834bf5bce6782de5c387f3dac732393ef33/pkg/operator/ceph/cluster/cluster_external.go#L119
So we should first default the collection of the v2 port from the Python script and we may also add the CR spec RequireMsgr2 to true

Agreed, let's go ahead with this requirement to always use the v2 port for downstream, including for external clusters.
We just need to ensure the mon endpoints that are imported are also setting v2 ports. I believe this is already something that Rook enforces during the cluster reconcile. @parth-gr Could you test to confirm that if RequireMsgr2 is set in the cephcluster CR for the external cluster scenario, we replace any v1 ports with v2 ports as part of the rook cluster reconcile?

For the external cluster, we check if the leader endpoint provided by the Python script has v2 if it contains a v2 port rook internally update it RequireMsgr2: true https://github.com/rook/rook/blob/58a0c834bf5bce6782de5c387f3dac732393ef33/pkg/operator/ceph/cluster/cluster_external.go#L119
So we should first default the collection of the v2 port from the Python script and we may also add the CR spec RequireMsgr2 to true

@parth-gr My question is a bit different, here are a few points to consider:

Upstream we don't want to default to v2, only for downstream
OCS operator (with this PR) is planning to set RequireMsgr2: true for external mode (it was already set for internal mode), so there is no need for Rook to automatically set requireMsgr2.
The code you linked is perfect for upstream, but I think we need to add another check such that if RequireMsgr2: true, force the v2 port for the external mon endpoints.

Agreed, let's go ahead with this requirement to always use the v2 port for downstream, including for external clusters.
We just need to ensure the mon endpoints that are imported are also setting v2 ports. I believe this is already something that Rook enforces during the cluster reconcile. @parth-gr Could you test to confirm that if RequireMsgr2 is set in the cephcluster CR for the external cluster scenario, we replace any v1 ports with v2 ports as part of the rook cluster reconcile?

For the external cluster, we check if the leader endpoint provided by the Python script has v2 if it contains a v2 port rook internally update it RequireMsgr2: true https://github.com/rook/rook/blob/58a0c834bf5bce6782de5c387f3dac732393ef33/pkg/operator/ceph/cluster/cluster_external.go#L119
So we should first default the collection of the v2 port from the Python script and we may also add the CR spec RequireMsgr2 to true

@parth-gr My question is a bit different, here are a few points to consider:

Upstream we don't want to default to v2, only for downstream
OCS operator (with this PR) is planning to set RequireMsgr2: true for external mode (it was already set for internal mode), so there is no need for Rook to automatically set requireMsgr2.
The code you linked is perfect for upstream, but I think we need to add another check such that if RequireMsgr2: true, force the v2 port for the external mon endpoints.

To add we also might need to check,
4. For upgraded clusters, When requireMsgr2 is true, we have to make sure the rok-ceph-csi-config CM changes the mon ports to v2 ports like it does for internal mode.

@parth-gr My question is a bit different, here are a few points to consider:

Upstream we don't want to default to v2, only for downstream
OCS operator (with this PR) is planning to set RequireMsgr2: true for external mode (it was already set for internal mode), so there is no need for Rook to automatically set requireMsgr2.
The code you linked is perfect for upstream, but I think we need to add another check such that if RequireMsgr2: true, force the v2 port for the external mon endpoints.

For downstream we can use the RequireMsgr2: true info, but the problem is with extracting the data,
How do we make sure the downstream python script always scrapes the v2 port

For downstream we can use the RequireMsgr2: true info, but the problem is with extracting the data, How do we make sure the downstream python script always scrapes the v2 port

To capture our discussion:

We will make the change in Rook to enforce the v2 port for external clusters if requiremsgr2 is true
The external python script will be changed in the downstream-only branch to only use the v2 port.

For downstream we can use the RequireMsgr2: true info, but the problem is with extracting the data, How do we make sure the downstream python script always scrapes the v2 port

To capture our discussion:

We will make the change in Rook to enforce the v2 port for external clusters if requiremsgr2 is true
The external python script will be changed in the downstream-only branch to only use the v2 port.

From Slack by Parth
From two changes we discussed,
I think we don't the rook upstream change
As we always check for the cluster.Spec.RequireMsgr2() https://github.com/rook/rook/blob/master/pkg/operator/ceph/cluster/cluster_external.go#L126
If it set from the CR still it will work with the same check

@parth-gr this should mean this PR is now no longer blocked from external mode perspective, right?

@malayparida2000 can we do a quick testing?? (End-to-end) And after this change for sure it wont block red-hat-storage/rook#748

Sounds good to do a test, will do it.

@malayparida2000 can we do a quick testing?? (End-to-end) And after this change for sure it wont block red-hat-storage/rook#748

Sounds good to do a test, will do it.

Currently, there is some infra issue with the availability of external mode setups from QE & anyways, the scenario we are concerned about is the behavior of the cluster upon upgrade from 4.17 to 4.18 which will be easy to test upon this change is officially part of the build. And anyway, I have to document the whole process as well, so I will do the e2e testing of the flow after the PR is merged & part of the build.

/unhold

/lgtm

The PR is now LGTM from both the Internal Mode & External Mode perspective.
@nb-ohad / @leelavg  Can you please ack LGTM from the Provider-Client Mode perspective so we can finally merge this?

LGTM, since Ohad has an unresolved comment need to wait for that to be resolved.

Ohad will be on PTO till the 21st of Oct. This is an important change & with more delay to its merge we are losing precious time we might need to make further changes based on the result of this. This PR also blocks other stories, thereby blocking the Epic's progress. As we have acks from all Povs including Provider mode from Leela, We should go ahead and merge this.
/cc @travisn

/lgtm
/approve

/retest

/retest

/retest

/test ocs-operator-bundle-e2e-aws

@malayparida2000 We missed rebasing it against main and running make deps-update, there are changes in metrics/vendor/ from this PR in my local

@malayparida2000 We missed rebasing it against main and running make deps-update, there are changes in metrics/vendor/ from this PR in my local

Didn't understand, How does this PR affect the vendor folder?


Invalid escape sequence rendering

the '' is stripped from escape sequeences
@media (max-width: 767px) {.babybear\:z-0 { z-index: 0; }}

becomes
@media (max-width: 767px) {.babybear:z-0 { z-index: 0; }}

Fixed


Remove reboot handler / require Chef 12.1+

Set the minimum Chef version to 12.1 since no one should be using 12.0.  Also remove the reboot handler, which is included in core chef since 12.0.

:+1:


Move OQ3 exporter tests to qasm3 module

Summary
These previously lived in test/python/circuit just for historical reasons (the OQ2 exporter lives there because it's a method on QuantumCircuit).  Since we have a dedicated qasm3 module now, including in the test suite, it makes sense to move the file there.

Details and comments
Mostly because whenever I'm trying to write tests for the OQ3 exporter, it always takes me a while to actually find the tests...

Huh, now I'm definitely glad I did that, because it's not ideal that we weren't running those tests haha.  I never really noticed before because I always get the tests passing under stestr run -n <file> before checking with a final stestr run, haha.
Let's see if the tests are still passing in CI after this, i.e. have we got the installations for the importer configured correctly?


Change Integration management to async

Creating / updating intgeration involves expensive operations like github and openshift object creations. Currently this is done blocking, which leads obviously to various problems (including timeouts from the OpenShift router)
This should be fixed by:

Decouple integration REST calls from the actual backend handling by an async event mechanism.
Introduce status in an Integration object recording the steps in the linear workflow (create github repo, store files, create webhook, create build config, build).
Think about compensation actions of previous steps if a step fails.

The UI needs to be adapted to show the status somewhere which on status change should be pushed from the server.

Using a status field on the integration should work wonderfully since the UI is currently being notified (via WebSocket or SSE event) whenever an entity is updated.

@chirino, we have two fields StatusType and StatusPhase:
This is so we can activate an integration by setting the StatusType to "Activated" on the integration.
When deployment starts it then sets the StatusPhase to Pending, and when up to Running, when not up to Failed, when successfully deactivated to Succeeded. There is also an Unknown Phase just in case. We could add a StatusMessage to report errors.


Switch to openshift/client-go at some point

Also consider discussions at https://github.com/openshift/client-go/issues/25

Will also need parts of oc client code. For example oc new-app logic is only on client side inside oc command itself and not in client-go

@kadel how about researching this for now?

This might be a blocker of sorts - https://github.com/openshift/client-go/issues/30

That is something that we already discussed multiple times.
Functionality like oc new-app is only in oc client and quite possibly it will never go to server-side api.
We can't just switch to client-go without also using and importing parts of oc client.
In future, this will be less and less issue, as ocdev will have much more functionality than oc right now have so we will have to move away from oc anyway. oc new-app is just a temporary solution that soon won't be enought


Allow dependabot to auto-merge

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 37.772%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
139

Relevant Lines:
368

💛  - Coveralls


Config security validation

Add validation for config.json and security.json
Add validation from root into if/then conditions (__rootThen)
Move reading of arguments from validate.ts into validateCmd.ts, so validation with custom templates can be run from script as well
Update examples in readme and add them to tests

closes #99

Validator is written according to whats in the docs, could you please either update the docs or the examples you added? These are the differences I found and which the validator is correctly reporting:

apiSpecifications.security in the example is an array, however in the docs it is object
apiSpecifications.info is in the example and also is mentioned in the docs, but not under apiSpecifications

Would something like adding npm run validate --config="[configFile]" --security="[securityFile]" work?

Thanks, it was the example that was wrong. security can be an array in OAS, but not in OIS (https://github.com/api3dao/api3-docs/blob/master/airnode/ois.md#43-security).

Yeah that would do. I think keeping the validate script as a general purpose one and then having a second validateConfigSecurity with config and security parameters would work better.

I'll continue reviewing the rest.

@bbenligiray can this PR be merged as convertor PR depends on it and for your last comment issues #196 and #197 are opened?


Some cEUR invite fixes

Description
Add support for cEUR invites in pending invites. The pending invites flow (showing, reminding and reclaiming) had cUSD hard-coded, now it correctly uses the invite token.
Other changes
N/A
Tested
Manually
How others should test

Invite someone using cEUR.
See that the invite in the pending invitations list shows up with the correct amount.
Check that the copy when pressing 'Remind' says 'Celo Euros'
Check that you can reclaim the invite correctly.

Related issues

Fixes #977

Backwards compatibility
N/A

Should we add tests (maybe unit or functional/e2e) for these fixes?

@silasbw Yeah, good callout, sorry for being lazy about it.
I added a unit test for the UI code. It would be ideal to have tests for the escrow saga as well, but it has no tests right now, so it's not as simple to add a new one to cover cEUR. Since this is a fix that would be great to have today, do you think it's OK not to add them for now?
As for e2e tests, we don't have e2e tests for the invite flow, but it would be great to have them. Maybe we can do that in another PR as well.
I created an issue to track these testing efforts: https://github.com/valora-inc/wallet/issues/992

https://valora.testquality.com requirement R77.

Hi @MuckT We have verified this issue on Latest Android internal build V1.18.0  & Testflight build V1.18.0and updated the status in test quality tool.
Test quality tool link:
iPhone 6+(12.5.4):

https://valora.testquality.com/project/12128/plan/21657/run/149950/result/2469277

New issue:

#1016

Verified on Devices: iPhone 6+(12.5.4)
CC: @gnardini
Thanks..!!

Hi @MuckT We have verified this issue on Latest Android internal build V1.18.0 & Testflight build V1.18.0and updated the status in test quality tool.
Test quality tool link:
iPhone 6+(12.5.4):
https://valora.testquality.com/project/12128/plan/21657/run/149950/result/2469277
New issue:

#1020
Verified on Devices: iPhone 6+(12.5.4)
CC: @gnardini
Thanks..!!

Hi @MuckT We have verified this issue on Latest  Testflight build V1.18.0 and updated the status in test quality tool.
Test quality tool link:

https://valora.testquality.com/project/12128/plan/21657/run/149950/result/2469266

Verified On Device: iPhone SE (13.6.1)
CC:  @gnardini
Thanks..!!


Add Tredict oAuth-API to Sports

Hi there!

[x] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is ordered alphabetically
[x] My submission has a useful description
[x] The description does not end with punctuation
[x] Each table column is padded with one space on either side
[x] I have searched the repository for any relevant issues or pull requests
[x] Any category I am creating has the minimum requirement of 3 items
[x] All changes have been [squashed][squash-link] into a single commit

Getting around to see if y’all down there.
GitTEN 0N

On Aug 20, 2021, at 10:43 AM, Felix Gertz @.***> wrote:

Hi there!
My submission is formatted according to the guidelines in the contributing guide
My addition is ordered alphabetically
My submission has a useful description
The description does not end with punctuation
Each table column is padded with one space on either side
I have searched the repository for any relevant issues or pull requests
Any category I am creating has the minimum requirement of 3 items
All changes have been [squashed][squash-link] into a single commit
You can view, comment on, or merge this pull request online at:
https://github.com/public-apis/public-apis/pull/1968
Commit Summary
Add Tredict oAuth-API to Sports
File Changes
M README.md (1)
Patch Links:
https://github.com/public-apis/public-apis/pull/1968.patch
https://github.com/public-apis/public-apis/pull/1968.diff
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Thanks for the contribution @aldipower


fix(types): change buy/sellAssetAccountNumber type

Description
Continuation of https://github.com/shapeshift/lib/pull/752
To change the name and type of buyAssetAccountId and sellAssetAccountId to buyAssetAccountNumber and sellAssetAccountNumber respectively from string to number.
Notice

[x] Have you followed the guidelines in our Contributing guide?
[x] Have you checked to ensure there aren't other open Pull Requests for the same update/change?

Pull Request Type

[x] :bug: Bug fix (Non-breaking Change: Fixes an issue)
[ ] :hammer_and_wrench: Chore (Non-breaking Change: Doc updates, pkg upgrades, typos, etc..)
[ ] :nail_care: New Feature (Breaking/Non-breaking Change)

Issue (if applicable)
Fixes https://github.com/shapeshift/lib/issues/679

Risk

Testing

Screenshots (if applicable)

Hi @elmutt, second PR addressing https://github.com/shapeshift/lib/issues/679

happy to merge this once tests are fixed and lib pr is merged

fix cypress tests

Cypress tests pass locally, aren't the CI issues being caused by not having the type from the related PR? https://github.com/shapeshift/lib/pull/752 @0xdef1cafe or am I missing something?

fix cypress tests

Cypress tests pass locally, aren't the CI issues being caused by not having the type from the related PR? shapeshift/lib#752 @0xdef1cafe / @elmutt / @gomesalexandre or am I missing something?

Still having issues with linking swapper locally so I can't test it out, but yes, the failing tests should be because of the mismatch in signatures, because the version isn't bumped here.
Let's make this PR a draft until lib is merged and published.

I was able to test linked locally and its working good

Will accept this one after lib PR is merged, swapper dependency is bumped, and review is re-opened.

closed in:
https://github.com/shapeshift/web/pull/2005
we merged this asap in another PR so web would be updated right away with no problem.
The bounty is complete can can be paid


Support custom annotations/labels

We should provide a way for admins to label the resources that are being created. Something like:
apiVersion: io.jaegertracing/v1alpha1
kind: Jaeger
metadata:
  name: simple-prod
  labels:
    tenant: acme
spec:
  strategy: all-in-one
  all-in-one:
    annotations:
      prometheus.io/scrape: "false"

Note that some labels/annotations might clash with the ones we supply in the operator itself, like the prometheus ones. Because of that, we should always honor what the user specified in the CR.

cc @objectiser

I'm closing the PR without merging, as it seems it does not satisfy the original problem. Correct me if I'm wrong, but what is needed is a way for the party using the operator to customize the labels of the individual underlying Kubernetes objects (services, deployments, ...). This would be required, for instance, to have Istio's installer to use the operator.
This issue will then track what's the best way to achieve that.

[ ] How is this done with other operators?
[ ] Should we do this here in the operator, or is the consuming party able to annotate the resulting objects afterwards?

See https://github.com/jaegertracing/jaeger-operator/pull/50#issuecomment-427801521 for a more complete description of the requirements.


Future-proofing: Issue warning if Bootstrap v4 is detected

Is there a way to add this without knowing about V4's structure / style?

The approach used in W013 should continue to work fine.


Doc issue: once installed, what's next?

Hi, I'm following this to install DEIS;
https://deis.com/docs/workflow/installing-workflow/
It's working, but doesn't says what to do next!
So I try:
https://deis.com/docs/workflow/users/registration/
But how to retrieve the controller URL?? ("supplied by your Deis administrator")
Cheers

Hey @cdupont, I'm assuming you're using openstack as your provider but this information is documented in the quickstart documentation. This document is the follow-up document to installing Workflow, and it describes how to retrieve the controller URL.
Hope this helps!

I see, thanks!
Maybe we can add a link back to the original page?


Security Questions - Add Account Dropdown to header navigation

https://www.figma.com/file/89fRce4gmy64UIArSZoAM8/v3.-GC-Forms-(builder-and-vault)?type=design&node-id=271-33265&mode=design&t=P2sX4NNyOlzHMlD5-0

Thank you Dave!

Merged.


[CSL-257] Kademlia: addressing

@georgeee

Address should be formed as SHA-1(ip, port, 2-byte nonce, 1-byte system data). This would make it impossible to assign yourself an arbitrary address (which would make eclipse attacks possible only via 100500). Nonce is remained for reason node may eventually need to change node id to some other. Nonce is to be transferred along with ip, port. Nodeid themselves may be not transferred over network at all (thus instead of 128+16+160 bit we would need to transfer only 128+16+16+8 = 168 bit per address).
System data byte to contain some system info in its bits, such as is node client or full node (and thus should we ping it and try to include into tables or not).

For details see [modification proposal document|https://docs.google.com/document/d/1ttzGjTLdbj_xtY6djgWogKVcTuL-BZVwc4J-zi2d38k/edit#].

@georgeee
PR #4 review:

1-byte system data to be added as well
it's to be passed on address initiation and to be taken from KademliaConfig
Wherever we use node id, we should use tuple (nodeid_hash, nonce, system_byte) (this way making it hard to intentionally produce node id close to some predefined value).

whenever we accept request from node or going to put it to internal storage we should verify it's node id (hash(nonce, system_byte) == nodeid_hash)

@georgeee

Don't actually send nodeid_hash accross network, only (nonce, system_byte)

@georgeee
Ok, forget about 2. and 3. (first is done, second is not necessary to do now)

would be needed under separate issue, and we'll introduce it there

@georgeee
So, closing issue


Make summarizer available on PyPI

Because
No response
Done when
No response
Additional context
No response

Is this still planned? Since the issue is basically empty except for the title, I'm not sure what was the original thoughts.
Given #11, https://github.com/clamsproject/clams-python/issues/159, and https://github.com/clamsproject/clams-utils/issues/1, once consumer "interfaces" are refactored into ABCs in clams-python, I think we should consider deployment/publication of consumer software as a part of app directory. Of course that won't prevent other deployment (such as PyPI).


Add initial support for OpenSUSE 13.2 (Harlequin)

@TravisEz13 thanks for the PR.
How does the name of the generated RPM package look like?
For Ex: Centos is powershell-6.0.0_alpha.16_53_gdd0fbd6-1.el7.centos.x86_64.rpm
I want to make sure the name is in a standard format.


Idle Notifier should not notify when starting fishing

Idle Notifier plugin's option "Idle Animation Notifications" also notifies when you are off screen when starting the fishing animation.  That means that unless I open RuneLite window to get rid of the notification, I don't know when the next notification appears e.g. I stop fishing - quite annoying.
This behaviour is ofcourse expected, because the animation changes and that's why this is a feature request not a bug report. In this case (starting fishing animation) it shouldn't notify in my opinion. I see no situation where you would want to get a notification when starting fishing. My request would be to exclude "starting fishing" from "Idle Animation Notifications".

What is your Idle Notification Delay set to?

I usually have set it to 1 second. Now I tested with higher values (like 2s) and the problem is gone. I wonder why that helps? The animation is still 'changed' after 2 seconds

There is often a delay for certain activities where an animation will start late even if you're doing the activity--fishing is a common culprit.


Fun game

Thank you for the feedback!
However, we treat mechanical keyboard noises as a core part of our product, and can assure you that this is no game.


Add ability to filter by location and encouter type

Add ability to filter indicators by location and encounter type

Lowering priority until AMPATH resumes their evaluation work. I believe this is already implemented in PR #234.

Also to clarify, this is for the indicator calculation library. The query library already supports constraints on Encounter location and type.


Set cultures with without user override

(I don't know if this is the write place or if this has already been discussed)
matching culture setting between the server and client is extremely hard, even with all the frameworks out there.
On top of that, .NET respects user modifications to cultures which can create havoc.
For example, I have the date time information on my user profile set to pt-PT but, instead of using the standard date format (dd/MM/yyyy), I prefer yyyy-MM-dd. And now all handling of dates between client and server are mangled.
One doesn't expect a server to have this kind of problems, but the applications are (still) developed by people and the development system might have these issues.
The solution is very simple. Instead of using the CultureInfo constructor with just the culture name, use the constructor that allows to specify not to use user overrides.
For now, I'm using this:
protected void Application_BeginRequest(object source, EventArgs e)
{
    var currentCulture = Thread.CurrentThread.CurrentCulture;
    if (currentCulture.UseUserOverride)
    {
        Thread.CurrentThread.CurrentCulture = new CultureInfo(currentCulture.Name, false);
    }
}

/cc @kirthik @DamianEdwards

This looks like a question for ASP.NET 4.6 (Application_BeginRequest), which we can't really change, but we should consider what we want to do for ASP.NET 5.

Please note that this behavior in ASP.NET 5 is handled by middleware, which you opt into. You can choose to have the behavior you want by substituting your own middleware. The question here is if this behavior should be our default behavior in the middleware we ship.

I understand that.
What do you think is the best default?

@DamianEdwards ping on this. Should we be passing in the flag to CultureInfo to ignore user modifications? Ultimately I believe this bug should go to the https://github.com/aspnet/Localization/issues/ issue tracker if we decide we should do this.

I'm not sure that overload exists in Core.

The API exists in .NET Standard - https://docs.microsoft.com/en-us/dotnet/api/system.globalization.cultureinfo.-ctor?view=netstandard-2.0#System_Globalization_CultureInfo__ctor_System_String_System_Boolean_. Populating RequestLocalizationOptions.SupportedCultures with instances  of CultureInfo constructed using the overload constructor does the job.
@mkArtakMSFT  should be good to close this, unless @paulomorgado has further concerns.

That explicit opt-in seems to be a good solution.


Add Docker API E2E tests for scaling nodes and worker node groups

Issue #, if available:
Description of changes:
This PR adds an e2e test for the docker API  or scaling nodes and add/remove worker node group configurations.
Testing (if applicable):
--- PASS: TestDockerUpgradeKubernetes123to124WorkloadClusterScaleupAPI (2017.01s)
--- PASS: TestDockerUpgradeWorkloadClusterScaleAddRemoveWorkerNodeGroupsAPI (1167.16s)
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/approve

/approve


CORS Support for HTTP OPTIONS

Hi,
I really like this project (Thanks a ton for creating this) and have been using it for sometime by directly accessing it from the browser.
However when trying to access it thru angular via httpclient, its always giving access denied. I have investigated and found that the HTTP OPTIONS request method is also under authentication and it fails for Chrome's Pre-Flight request, as this request doesn't sent the authorization header which has been passed to the GET request.
Can you please remove authentication for HTTP OPTIONS request and respond back with a HTTP Status code of 200 and a Allow header indicating the operations that are permitted on this resource. eg: Allow: HEAD,GET,OPTIONS
The [CORS spec] (https://www.w3.org/TR/cors/#cross-origin-request-with-preflight-0) which says "for a cross-origin request with preflight … make a preflight request … Exclude user credentials".
I would have done a PR myself but i am not well versed with C.
Screenshot of the Chrome Tools:

Screenshot of Curl:

I don't think this is a feature that ttyd should implement, can't get your use case.
Anyway, you can always add the CORS header via nginx proxy.


install issue

When running go get -u github.com/caffix/amass, I get the following error:
# github.com/miekg/dns
../go/src/github.com/miekg/dns/msg_helpers.go:144: base32.HexEncoding.WithPadding undefined (type *base32.Encoding has no field or method WithPadding)
../go/src/github.com/miekg/dns/msg_helpers.go:144: undefined: base32.NoPadding

I was running this on OSX.

encoding/base32 is part of the Go standard library. The meikg/dns package doesn't appear to be using it incorrectly.

Hey @securitybites, miekg/dns requires go1.10+ to work correctly. Upgrading your golang version to 1.10 will do the trick.

Thank you, @Ice3man543. And @securitybites, using go1.10+ is also an Amass requirement mentioned in the installation instructions, which would explain why we have not experienced this issue previously.


nodejs8.10 is no longer a supported runtime

Update the version to nodejs10.x

Updated to nodejs 12


h3: allow passing headers by reference

This makes it possible to pass headers to quiche, without having to clone them (see commit message for more details). This requires moving the conversion to lower-case for header names directly into the QPACK encoder, so we don't need to modify the original string (again, see commit message for details).
Before:
finished in 18.03s, 55471.30 req/s, 4.76MB/s
requests: 1000000 total, 1000000 started, 1000000 done, 1000000 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 1000000 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 85.83MB (90000088) total, 82.97MB (87000000) headers (space savings 49.71%), 0B (0) data

After:
finished in 15.52s, 64426.74 req/s, 5.53MB/s
requests: 1000000 total, 1000000 started, 1000000 done, 1000000 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 1000000 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 85.83MB (90000088) total, 82.97MB (87000000) headers (space savings 49.71%), 0B (0) data

The qpack_decode fuzzer was unhappy because it expects a round-trip decode -> encode -> decode to produce the same headers, but this was not happening anymore because the QPACK decoder wasn't lower-casing header names anymore as it depended on Header::new() to do that.
I added a commit to fix this, which incidentally also removes a bunch of unnecessary copies that were happening when decoding literal headers, so we might get a speed bump from that as well, but I haven't benchmarked it.
I'm not quite sure whether we should actually lower-case header names when decoding though, as e.g. nghttp3 returns an error when receiving a non-lower-case header name, so maybe we should do the same? Checking whether a string is lowercase is about as expensive as turning a string into lower-case so I doubt we would see any performance improvement there.

Turns out we don't need the unicase crate at all, since the standard library already provides ASCII case-insensitive equal operation.

I like the overall changes to here, good work.
Instead of immediately converting header names to lower-case when
creating a `Header`, defer the conversion to the huffman encoding phase
as in many cases we don't actually need to convert. This also makes it
possible to avoid modifying the headers.

The main annoyance of this is that the static table lookups now need to
be case insensitive, otherwise we could potentially miss some of the
headers if the applications passes them as upper-case.

The casing insensitivity sounded quite drastic to start. But then I realised this is just an implementation detail. If we convert_to_lower_and_compare or compare_insensitively, there's little difference. (The opposite of this would be to remove the to_lower() and compare sensitively, and that could cause things to be sent as Literals, which would be a shame.).
So given that our API remains consistent with this change, I think its GTG.

What is our expectation when the request headers have same name with different case?
e.g. when a request headers are: hello: world, Hello: world, `hEllO: world'
Do we leave only one, or merge, or keep all 3 with lowercase? I think we need to have a test case for that.

Let's never merge field lines in quiche

does the addition of quiche::h3::NameValue need to be reflected into any test apps or examples?

It needs to be if the application calls name() and/or value() methods on the header, which is likely. I have an idea on how to improve this, but I think I'll do that in a separate PR.

What is our expectation when the request headers have same name with different case?

Define "our"? quiche just returns a list of headers, merging them is up to the application. It is not any different from receiving the same header name.

I think we need to have a test case for that.

There is really nothing to test.


fix: Build server with correct option

We must use CGO_ENABLED=1 in order to build server (due to sqlite3)
Close #232

gratulation to your first pull here ;)


refactor: use C++ stdlib PRNG

Still a work in process, also fails to compile due to some archive tomfoolery.
Due to PRNG changing from [a, b) to [a, b], there may be some off by one errors.
@ahockersten I'd love if you had a look at this next part because I'm not familiar with the replay code at all.
I've finally got the code to the point where there's only one compile error:
[20/73] Building CXX object CMakeFiles/game.dir/Release/src/game/replay.cpp.o
FAILED: CMakeFiles/game.dir/Release/src/game/replay.cpp.o
/usr/bin/c++ -DMINIZ_STATIC_DEFINE -DCMAKE_INTDIR=\"Release\" -Isrc -Isrc/game -Isrc/gvl/include -isystem build/linux-x64/vcpkg_installed/x64-linux/include -isystem build/linux-x64/vcpkg_installed/x64-linux/include/miniz -isystem build/linux-x64/vcpkg_installed/x64-linux/include/SDL2 -O3 -DNDEBUG -std=gnu++11 -MD -MT CMakeFiles/game.dir/Release/src/game/replay.cpp.o -MF CMakeFiles/game.dir/Release/src/game/replay.cpp.o.d -o CMakeFiles/game.dir/Release/src/game/replay.cpp.o -c src/game/replay.cpp
src/game/replay.cpp: In instantiation of ‘void archive(Archive, Game&) [with Archive = gvl::in_archive<gvl::octet_reader, GameSerializationContext>]’:
src/game/replay.cpp:335:9:   required from ‘void read(Reader&, GameSerializationContext&, T&) [with Reader = gvl::octet_reader; T = Game]’
  335 |         archive(gvl::in_archive<Reader, GameSerializationContext>(reader, context), x);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/game/replay.cpp:396:6:   required from here
  396 |         read(reader, context, *game);
      |         ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
src/game/replay.cpp:325:16: error: no matching function for call to ‘archive(gvl::in_archive<gvl::octet_reader, GameSerializationContext>&, std::mt19937&)’
  325 |         archive(ar, game.rand);
      |         ~~~~~~~^~~~~~~~~~~~~~~
src/game/replay.cpp:224:6: note: candidate: ‘void archive(in_archive_t, Level&)’
  224 | void archive(in_archive_t ar, Level& level)
      |      ^~~~~~~
src/game/replay.cpp:224:38: note:   no known conversion for argument 2 from ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’} to ‘Level&’
  224 | void archive(in_archive_t ar, Level& level)
      |                               ~~~~~~~^~~~~
In file included from src/game/replay.hpp:10,
                 from src/game/replay.cpp:1:
src/game/worm.hpp:100:6: note: candidate: ‘template<class Archive> void archive(Archive, WormSettings&)’
  100 | void archive(Archive ar, WormSettings& ws) {
      |      ^~~~~~~
src/game/worm.hpp:100:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘WormSettings&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
In file included from src/game/common.hpp:11,
                 from src/game/replay.hpp:11:
src/game/settings.hpp:253:6: note: candidate: ‘template<class Archive> void archive(Archive, Settings&)’
  253 | void archive(Archive ar, Settings& settings) {
      |      ^~~~~~~
src/game/settings.hpp:253:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Settings&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp:62:6: note: candidate: ‘template<class Archive> void archive(Archive, Worm::ControlState&)’
   62 | void archive(Archive ar, Worm::ControlState& cs)
      |      ^~~~~~~
src/game/replay.cpp:62:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Worm::ControlState&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp:68:6: note: candidate: ‘template<class Archive> void archive(Archive, Worm&)’
   68 | void archive(Archive ar, Worm& worm)
      |      ^~~~~~~
src/game/replay.cpp:68:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Worm&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp:143:6: note: candidate: ‘template<class Archive> void archive(Archive, Viewport&)’
  143 | void archive(Archive ar, Viewport& vp)
      |      ^~~~~~~
src/game/replay.cpp:143:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Viewport&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp:210:6: note: candidate: ‘template<class Archive> void archive(Archive, Palette&)’
  210 | void archive(Archive ar, Palette& pal)
      |      ^~~~~~~
src/game/replay.cpp:210:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Palette&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp:249:6: note: candidate: ‘template<class Writer> void archive(gvl::out_archive<Writer, GameSerializationContext>, Level&)’
  249 | void archive(gvl::out_archive<Writer, GameSerializationContext> ar, Level& level)
      |      ^~~~~~~
src/game/replay.cpp:249:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:16: note:   ‘gvl::in_archive<gvl::octet_reader, GameSerializationContext>’ is not derived from ‘gvl::out_archive<Writer, GameSerializationContext>’
  325 |         archive(ar, game.rand);
      |         ~~~~~~~^~~~~~~~~~~~~~~
src/game/replay.cpp:315:6: note: candidate: ‘template<class Archive> void archive(Archive, Game&)’
  315 | void archive(Archive ar, Game& game)
      |      ^~~~~~~
src/game/replay.cpp:315:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Game&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp: In instantiation of ‘void archive(Archive, Game&) [with Archive = gvl::out_archive<gvl::octet_writer, GameSerializationContext, true>]’:
src/game/replay.cpp:341:9:   required from ‘void write(Writer&, GameSerializationContext&, T&) [with Writer = gvl::octet_writer; T = Game]’
  341 |         archive(gvl::out_archive<Writer, GameSerializationContext>(writer, context), x);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/game/replay.cpp:413:7:   required from here
  413 |         write(writer, context, game);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
src/game/replay.cpp:325:16: error: no matching function for call to ‘archive(gvl::out_archive<gvl::octet_writer, GameSerializationContext, true>&, std::mt19937&)’
  325 |         archive(ar, game.rand);
      |         ~~~~~~~^~~~~~~~~~~~~~~
src/game/worm.hpp:100:6: note: candidate: ‘template<class Archive> void archive(Archive, WormSettings&)’
  100 | void archive(Archive ar, WormSettings& ws) {
      |      ^~~~~~~
src/game/worm.hpp:100:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘WormSettings&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/settings.hpp:253:6: note: candidate: ‘template<class Archive> void archive(Archive, Settings&)’
  253 | void archive(Archive ar, Settings& settings) {
      |      ^~~~~~~
src/game/settings.hpp:253:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Settings&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp:62:6: note: candidate: ‘template<class Archive> void archive(Archive, Worm::ControlState&)’
   62 | void archive(Archive ar, Worm::ControlState& cs)
      |      ^~~~~~~
src/game/replay.cpp:62:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Worm::ControlState&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp:68:6: note: candidate: ‘template<class Archive> void archive(Archive, Worm&)’
   68 | void archive(Archive ar, Worm& worm)
      |      ^~~~~~~
src/game/replay.cpp:68:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Worm&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp:143:6: note: candidate: ‘template<class Archive> void archive(Archive, Viewport&)’
  143 | void archive(Archive ar, Viewport& vp)
      |      ^~~~~~~
src/game/replay.cpp:143:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Viewport&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp:210:6: note: candidate: ‘template<class Archive> void archive(Archive, Palette&)’
  210 | void archive(Archive ar, Palette& pal)
      |      ^~~~~~~
src/game/replay.cpp:210:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Palette&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp:249:6: note: candidate: ‘template<class Writer> void archive(gvl::out_archive<Writer, GameSerializationContext>, Level&)’
  249 | void archive(gvl::out_archive<Writer, GameSerializationContext> ar, Level& level)
      |      ^~~~~~~
src/game/replay.cpp:249:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Level&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp:315:6: note: candidate: ‘template<class Archive> void archive(Archive, Game&)’
  315 | void archive(Archive ar, Game& game)
      |      ^~~~~~~
src/game/replay.cpp:315:6: note:   template argument deduction/substitution failed:
src/game/replay.cpp:325:26: note:   cannot convert ‘game.Game::rand’ (type ‘std::mt19937’ {aka ‘std::mersenne_twister_engine<long unsigned int, 32, 624, 397, 31,<PHONE_NUMBER>, 11,<PHONE_NUMBER>, 7,<PHONE_NUMBER>, 15,<PHONE_NUMBER>, 18,<PHONE_NUMBER>>’}) to type ‘Game&’
  325 |         archive(ar, game.rand);
      |                     ~~~~~^~~~
src/game/replay.cpp:224:6: note: candidate: ‘void archive(in_archive_t, Level&)’
  224 | void archive(in_archive_t ar, Level& level)
      |      ^~~~~~~
src/game/replay.cpp:224:27: note:   no known conversion for argument 1 from ‘gvl::out_archive<gvl::octet_writer, GameSerializationContext, true>’ to ‘in_archive_t’ {aka ‘gvl::in_archive<gvl::octet_reader, GameSerializationContext>’}
  224 | void archive(in_archive_t ar, Level& level)
      |              ~~~~~~~~~~~~~^~
[45/73] Building CXX object CMakeFiles/tc.dir/Release/src/tc_tool/common_writer.cpp.o
ninja: build stopped: subcommand failed.

I'm not sure I'm that familiar with the replay code unfortunately. :( If you are referring to the compile errors, I can dig into those but I'm not sure I'll do any better than you.
For the "checking the state of the RNG", I have a dumb idea: clone the random number generator (which C++ supports). From the clone, take the next random number (between min() and max()) and save that for the comparison. That way we can still verify that the replay is matching the original.
Although I'm not sure the above is necessary, the code still checks worm position and velocities and that should be more than enough to detect desyncs.

So I've dived into the remaining issues a bit and I think I have a theory. This call has become problematic after we changed to the new PRNG:
archive(ar, game.rand);
It's complaining about a missing overload. Which is true, there is no overload that would accept a std::mt19937. But why did it work before? I think that there is an overload somewhere for the old code which allows you to get the seed for gvl::mwc by just calling it, so the actual overload that gets used here is one for uint32_t (or other int type - I haven't been able to find said overload though.
But basically, this code needs to save the RNG seed and then it will work. It's the only thing from the RNG that would make any sense to save, and the archiving code can only really save numbers, so it literally seems like it couldn't be referring to anything else.

Yeah, that makes sense!
I came to the same conclusion that we only need to save the PRNG seed. So it looks like we don’t need to make an archive function just for it.

Getting segfaults at this point:
Thread 1 "openliero" received signal SIGSEGV, Segmentation fault.
0x00005555555bc05a in std::uniform_int_distribution<int>::param_type::b (this=<error reading variable: Cannot access memory at address 0x7fffff7feff8>) at /usr/include/c++/14.2.1/bits/uniform_int_dist.h:116
116             b() const

Odds are it'll be something stupid like uniform_int_distribution() getting (0, -1) or (0, undefined). Trying to narrow it down atm.

Found a potential segfault here:
https://github.com/openliero/openliero/blob/ed0228bb7bd073b93abefe7294d47d295360ff05/src/game/worm.cpp#L380
For some reason, the variable health occasionally dips into the negatives, thus causing uniform_int_distribution to segfault.
Gonna keep checking the other calls to uniform_int_distribution for potential issues.

Code compiles, doesn't segfault ... however, replays don't work. Fairly sure the replay code doesn't know how to obtain the PRNG seed from c4b649810b7eb6e3a55710d5028e9db95d15ecb0.


Minimal convlist option, unread counter style.

#349

@arnriu i believe for some user like me "minimal" would be just the text (contact name). Can you think of a better menu arrangement/name ?
Also. Is "animated thumbnails" compatible with "minimal" mode ?

@davibe I know, the text isn't perfect, I was hoping for some help, since english is not my native language... ;)
I tried a new menu arrangement, let me know what you think about it.
And yes, animated thumbnails are compatible.

Since it's all "show" we could put "show animated thumbnails". I like this version better. I am not native english either, but who is :)
I will test it soon, i hope

I haven't had a chance to test this, but does unchecking the first option disable the other two?  I would think that it should since only thumbnails and animated thumbnails sort of contradict not showing any thumbnails.

@randymorris no, if you uncheck first option, second and third options are still available:

if you check second option while first is unchecked, it will check it. If you uncheck first option while second is checked, it will uncheck it.
animated thumbs are also used in messages, so it is not dependent on conversation list thumbs.

Maybe the text are wrong? I'm open to any suggestions :)

Ah, I forgot about the message pane.  Forgive me.


Remove unnecessary backticks; ref #2858

This quoting style (`something') is not uncommon in the mruby (and CRuby) source (e.g. mruby-method/src/method.c#L330) . Should we change them uniformly?

I don't have strong opinion about quoting style (I'd prefer `something'
because it is same as CRuby).
Quoting style was changed `something' to 'something' by #2858 but there is
only one place that isn't unified in parse.y. Therefore I created this PR.


Set up HTTPS for okpy.org

I think we should have HTTPS for okpy.org at some point.
I think it's pretty annoying, but I'm somewhat familiar with setting up SSL, and I think I need access to wherever the domain was bought from.
Any ideas on how to get started?
Here's a guide from Google: https://developers.google.com/appengine/docs/domain

A ticket to IST revealed that the IPv6 DNS config for okpy.org is incorrect. This would be why Airbears2 always revealed SSL failures or just failed for okpy.org. (Airbears just uses IPv4) - @papajohn can you remove the AAAA records for okpy.org ?

AAAA records removed.
On Wed, Jan 28, 2015 at 10:48 AM, Sumukh Sridhara<EMAIL_ADDRESS>wrote:

Closed #151 https://github.com/Cal-CS-61A-Staff/ok/issues/151.
—
Reply to this email directly or view it on GitHub
https://github.com/Cal-CS-61A-Staff/ok/issues/151#event-226291313.


Trying to build quick start

I am trying to deploy quickstart in AWS. However I get the error:
Not authorized for images: [AMI-0aa8349a37922c345]".
I opened an AWS ticket and they told me that this is because it is using old AMI's and they have not been updated. Apparently they looked into multiple regions and they all have old AMIs. They said that I should reach out to you to have you update them for all the regions.

This is automatically handled by our CI system.


Double click label on sketch to dimension

closes https://github.com/KittyCAD/modeling-app/issues/4774
Issue
A user is unable to double click the length label in sketch mode to dimension the line.
Implement

Implemented double click callback function on length labels
Did AST/artifact look up to programmatically set the selections for the command bar
opened the command bar workflow when the user double clicks the labels

Yeah let me add a test for double click!


Introducing stages and stage types to support CD

Introducing stages and stage types to support CD scenarios.  Stages represent build or release parts of a pipeline. In CD YAML, ‘Stage’ is the equivalent of an environment.

@vtbassmatt for review

This ended up in https://github.com/microsoft/azure-pipelines-yaml, closing here.


Deployment Failed - Microsoft.Web/sites/sourcecontrols - badrequest

Resource: BaseResourceName/WEb
Type: Microsoft.Web/sites/sourcecontrols
Status : BadRequest
{"code":"BadRequest","message":"There was a conflict. Conflict with existing ScmType: ExternalGit","details":[{"message":"There was a conflict. Conflict with existing ScmType: ExternalGit"},{"code":"BadRequest"},{}]}

Hi @Mubarak86 ,
Thanks for raising the query. Please perform the below procedure.

To overcome the failed resources, Go to azure portal-->Go to resource group(Where the deployment has been done)-->Select  App Service from list of resources-->Go to Deployment Center-->Click on Settings

If the resource is not pointing to intended repository and  showing empty. Please connect to the external Git and point to the official repository.
Once the status turns to Success(active) in the logs section then good to proceed with remaining steps of deployment.

Hope we conveyed.

I got the same error even after updated repository in App Service

@Mubarak86 , once after following the above-mentioned procedure, please don't for re-deploy again. Upon app service/web app gets successful proceed with the next steps of deployment

Please share your outlook id(mail id) so that we can discuss the issue internally.

What was the solution here? I got the same problem.


Missing controls comparing to vscode-webview-ui-toolkit

Hi,
We would like to adopt this library instead of the deprecated vscode-webview-ui-toolkit.
There are 3 missing controls that we currently use:
Progress Ring
Link
Divider
Is there a plan to implement them?
Thanks!

Is there a plan to implement them?

From now on, there is. (Although, I would use the native  and
 .)

I thought about this.
Link: I don't see the point of this component. Webview already provides a default style, including the native links. This component has no added value.
Progress Ring: This can be done by the Icon component:
https://vscode-elements.github.io/components/icon/#animated-icons

<vscode-icon name="loading" spin spin-duration="1" size="28" style="color: var(--vscode-progressBar-background);"></vscode-icon>
Divider:
Actually, it's a
 element with some CSS customization. There isn't any specific theme variable for the divider color, but --vscode-widget-border is okay.
I'm not sure if it's worth introducing new components because of these. What do you think about this?

Hi @bendera
Yes I agree that Divider and Link is not an issue, it is just for being compatible to what vscode webview toolkit has offered in the past.
The most important to add is the Progress Ring
Thanks for addressing this issue!


yosys fails in synthesizing D flip-flop

Version
yosys -0.15
On which OS did this happen?
Linux
Reproduction Steps
consider the following code:
module dff(
input clk,
input rst_n,
input d,
output reg q
);
always @ (posedge clk or negedge rst_n)
begin
q <=!rst_n ? '0 : d;
end
endmodule
and the following command
yosys -p 'read_verilog rtl.v; synth; write_verilog syn.v'
Expected Behavior
A flip-flop  reset should be inferred.
Actual Behavior
Executing SYNTH pass.
2.1. Executing HIERARCHY pass (managing design hierarchy).
2.2. Executing PROC pass (convert processes to netlists).
2.2.1. Executing PROC_CLEAN pass (remove empty switches from decision trees).
Cleaned up 0 empty switches.
2.2.2. Executing PROC_RMDEAD pass (remove dead branches from decision trees).
 Executing PROC_PRUNE pass (remove redundant assignments in processes).
Removed 0 redundant assignments.
Promoted 1 assignment to connection.
2.2.4. Executing PROC_INIT pass (extract init attributes).
2.2.5. Executing PROC_ARST pass (detect async resets in processes).
2.2.6. Executing PROC_MUX pass (convert decision trees to multiplexers).
Creating decoders for process `\dff.$proc$2.v:8$1'.
2.2.7. Executing PROC_DLATCH pass (convert process syncs to latches).
2.2.8. Executing PROC_DFF pass (convert process syncs to FFs).
Creating register for signal \dff.\q' using process \dff.$proc$2.v:8$1'.
ERROR: Multiple edge sensitive events found for this signal!

This is the same problem as #3657 (and this example has it without using SystemVerilog keywords).

I am getting same error for following code:
module test(
input clk, rst, start,
input a,b,
output reg out);
wire temp;
assign temp = a & b;
always @ (posedge clk or posedge rst or posedge start)
begin
if(rst | start)
begin
out <= 0;
end
else
begin
out <= temp;
end
end
endmodule
ERROR: Multiple edge sensitive events found for this signal!
Is there any work going on to support this?
NOTE; Vivado is able to synthesize this code

@abdulhameed-rs that is unrelated to this issue; there are actually multiple edge sensitive events in your example (posedge rst and posedge start) as is pointed out by proc. There is no dff type in yosys internal library that can take two independent reset signals, and using a logic or gate can lead to glitches, so if you want to do this you have to assign it explicitly to an intermediate wire to give you a chance to consider the problem and make sure this is what you want.


feat: add env support

:tada: This PR is included in version 1.2.0 :tada:
The release is available on:

v1.2.0
v1.2.0
GitHub release

Your semantic-release bot :package::rocket:


Otel tracing support

See other SDKs for reference, built on top of interceptors

Pending 2.6 release.


Missing instruction for how to label clusters

Describe the bug
In the scenario 1 on this page, https://docs.kubestellar.io/release-0.23.0/direct/examples/#scenario-1-multi-cluster-workload-deployment-with-kubectl, new users will have a confusing time following this instruction and may encounter errors because they have not set up the correct labels for their clusters.
Steps To Reproduce

Go to https://docs.kubestellar.io/release-0.23.0/direct/examples/#scenario-1-multi-cluster-workload-deployment-with-kubectl or any verison
scroll to scenario 1

Expected Behavior
There should be proper instructions for users to label their clusters so that they can successfully progress through the example.
Want to contribute?

[ ] I would like to work on this issue.

Additional Context
No response

@benzha14 can you offer a PR to fix this?
kubectl label managedclusters cluster1 location-group=edge
kubectl label managedclusters cluster2 location-group=edge

@MikeSpreitzer Should we redirect user to this page: https://docs.kubestellar.io/release-0.23.0/direct/example-wecs/ in case of labeling errors? Step 4 mentions labeling clusters

@benzha14: I think yes, more or less. First, the reference should be relative rather than absolute, so that it stays within the same release. Second, the example-wecs page's source is included into the quickstart setup page, at https://docs.kubestellar.io/unreleased-development/direct/get-started/#create-and-register-two-workload-execution-clusters , so that is where I think the reader should be directed.

@benzha14: Please look at https://docs.kubestellar.io/unreleased-development/direct/example-scenarios/ again, particularly the first sentence in https://docs.kubestellar.io/unreleased-development/direct/example-scenarios/#assumptions-and-variables, now that #2316 has merged.

ok. I'ill take a look

@MikeSpreitzer  I propose that the variables found on the end of https://docs.kubestellar.io/unreleased-development/direct/get-started/#exercise-kubestellar should be included in the beginning of scenario since it has more relevance on the same page as https://docs.kubestellar.io/unreleased-development/direct/example-scenarios/ instead of where its at currently.

@benzha14: the particular values shown in https://docs.kubestellar.io/unreleased-development/direct/get-started/#exercise-kubestellar are only correct for the setup steps done earlier in that Getting Started document. For any other setup, different values are needed in general.

@benzha14: I am concerned that putting a display in https://docs.kubestellar.io/unreleased-development/direct/example-scenarios/ that displays the settings for https://docs.kubestellar.io/unreleased-development/direct/get-started/ would be problematic because they become detached from their context, it becomes not so clear why each setting is the right setting. In that sort of situation, the exhibited settings take on an air of authority that is unwarranted, and users start to suppose that the exhibited settings are the right ones in general.

What I have done instead is put in a link that is easy to follow. Is this good enough?

@MikeSpreitzer Its alot easier to follow now!