[Draft] just-in-time (JIT) meta computations

Addresses a part of #646.
Contains work for computing meta values for the JIT signals. The basic setup is this:

base signals (non-derived, aka non-JIT, signals) have their meta computed normally
derived signals make a request to a local API server and then use Pandas to compute the resulting meta values

This work refactors database.py and moves the meta computations into database_meta.py. The main work is in the latter file. The main testing is in test_covidcast_meta_cache_updater.py.
Would appreciate reviews on testing strategy, testing completeness, and clarity of the code.
TODO:

[ ] Make complete tests.

[ ] Make a table of the integration tests that already exist for JIT computations.

[ ] List all the queries that have been tested. List all the possible edge cases.

[ ] Make a table of the meta computation A/B tests.

[ ] List all the queries that have been tested. List all the possible edge cases.

Exposition on A/B Tests
First, I took a chunk of data from jhu-csse:confirmed_cumulative_num between 2022-04-01 and 2022-06-01 to test my meta computations. I chose 4 counties and 2 states.
I ran an A/B test between my meta just-in-time (JIT) computations and the existing database approach. All the values matched except for the max_lag field. Not only that, but all the values matched for confirmed_cumulative_num, the derived signals didn't though.
I was at a loss. How can the derived values possibly have different lags?
Katie figured it out immediately: the update profiles look completely different for cumulative versus incidence. Consider: if we backfill 1 count to a cumulative signal to a day in the past, then all the consecutive days need to be updated (since the entire curve from that day on is raised by 1). For the incidence signal, however, this will just be a single backfilled blip and the rest of the values are unaffected. So if the cumulative signal is reissued, its lag/issue field is very likely to fall out of sync with the incidence signal.
![[Pasted image<PHONE_NUMBER>1752.png]]
This plot shows lag against time for 3 signals, for a single county.
However, when computing the diffed signal JIT, we only have access to a rolling window of two rows, from which we must decide on the issue (we can't look arbitrarily far in the past to see when confirmed_cumulative_num was updated, for that defeat the server's streaming architecture). So JIT has no alternative but to deviate here from existing functionality and choose an issue from one of the two rows it has access to when diffing.
But more on that later.
To see if I could avoid this issue, I instead opted to collect data from the very beginning of the jhu-csse signal history. The earliest data available is on 2020-01-22, so I grabbed data from then until 2020-05-01. It turned out that there were data discrepancies there too. This results in test-data1.csv.
Consider the following query for a single county for the earliest data possible.
>>> start_day = date(2020, 1, 15)
>>> end_day = date(2020, 1, 23)
>>> df1 = covidcast.signal(data_source="jhu-csse", signal="confirmed_cumulative_num", start_day=start_day, end_day=end_day, time_type="day", geo_type="county", geo_values="02100")
>>> df2 = covidcast.signal(data_source="jhu-csse", signal="confirmed_incidence_num", start_day=start_day, end_day=end_day, time_type="day", geo_type="county", geo_values="02100")
>>> >>> df3 = covidcast.signal(data_source="jhu-csse", signal="confirmed_7dav_incidence_num", start_day=start_day, end_day=end_day + timedelta(days=30), time_type="day", geo_type="county", geo_values="02100")
>>> d1
	geo_value	signal	time_value	issue	lag	missing_value	missing_stderr	missing_sample_size	value	stderr	sample_size	geo_type	data_source
0	02100	confirmed_cumulative_num	2020-01-22	2020-05-14	113	0	5	5	0.0	None	None	county	jhu-csse
0	02100	confirmed_cumulative_num	2020-01-23	2020-05-14	112	0	5	5	0.0	None	None	county	jhu-csse

>>> df2
geo_value	signal	time_value	issue	lag	missing_value	missing_stderr	missing_sample_size	value	stderr	sample_size	geo_type	data_source
0	02100	confirmed_incidence_num	2020-01-22	2020-05-14	113	0	5	5	0.0	None	None	county	jhu-csse
0	02100	confirmed_incidence_num	2020-01-23	2020-05-14	112	0	5	5	0.0	None	None	county	jhu-csse

>>> df3
	geo_value	signal	time_value	issue	lag	missing_value	missing_stderr	missing_sample_size	value	stderr	sample_size	geo_type	data_source
0	02100	confirmed_7dav_incidence_num	2020-02-20	2021-04-01	406	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_7dav_incidence_num	2020-02-21	2021-04-01	405	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_7dav_incidence_num	2020-02-22	2021-04-01	404	0	0	0	0.0	None	None	county	jhu-csse

discrepancy 1: the earliest issues available for incidence match cumulative. While mostly inconsequential and the earliest incidence value is filled with a 0, we couldn't actually have access to this data, so it must be a spoof
discrepancy 2: the earliest smoothed data available is on 2020-02-20, which lags behind the earliest cumulative data by over a month

So for that reason, I decided to bump my data up a little later, so that the earliest data available for cumulative and incidence matches the smoothed signal (so I chose cumulative 2020-02-13 -- 2020-05-01 and incidence 2020-02-14 -- 2020-05-01). This results in test-data2.csv.
This data has issues too.
I started with having discrepancies between the min_lag values in my JIT code and in the data. Here's what the data showed:
>>> end_day = date(2020, 5, 1)
>>> df1 = covidcast.signal(data_source="jhu-csse", signal="confirmed_cumulative_num", start_day=end_day - timedelta(days=7), end_day=end_day, time_type="day", geo_type="county", geo_values="02100")
>>> df2 = covidcast.signal(data_source="jhu-csse", signal="confirmed_incidence_num", start_day=end_day - timedelta(days=6), end_day=end_day, time_type="day", geo_type="county", geo_values="02100")
>>> df3 = covidcast.signal(data_source="jhu-csse", signal="confirmed_7dav_incidence_num", start_day=end_day, end_day=end_day, time_type="day", geo_type="county", geo_values="02100")
>>> df1
geo_value	signal	time_value	issue	lag	missing_value	missing_stderr	missing_sample_size	value	stderr	sample_size	geo_type	data_source
0	02100	confirmed_cumulative_num	2020-04-24	2021-04-01	342	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_cumulative_num	2020-04-25	2021-04-01	341	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_cumulative_num	2020-04-26	2021-04-01	340	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_cumulative_num	2020-04-27	2021-04-01	339	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_cumulative_num	2020-04-28	2021-04-01	338	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_cumulative_num	2020-04-29	2021-04-01	337	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_cumulative_num	2020-04-30	2021-04-01	336	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_cumulative_num	2020-05-01	2021-04-01	335	0	0	0	0.0	None	None	county	jhu-csse
>>> df2
geo_value	signal	time_value	issue	lag	missing_value	missing_stderr	missing_sample_size	value	stderr	sample_size	geo_type	data_source
0	02100	confirmed_incidence_num	2020-04-25	2021-04-01	341	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_incidence_num	2020-04-26	2021-04-01	340	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_incidence_num	2020-04-27	2021-04-01	339	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_incidence_num	2020-04-28	2021-04-01	338	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_incidence_num	2020-04-29	2021-04-01	337	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_incidence_num	2020-04-30	2021-04-01	336	0	0	0	0.0	None	None	county	jhu-csse
0	02100	confirmed_incidence_num	2020-05-01	2021-04-01	335	0	0	0	0.0	None	None	county	jhu-csse
>>> df3
	geo_value	signal	time_value	issue	lag	missing_value	missing_stderr	missing_sample_size	value	stderr	sample_size	geo_type	data_source
0	02100	confirmed_7dav_incidence_num	2020-05-01	2021-04-01	335	0	0	0	0.0	None	None	county	jhu-csse

Track the lag values: the lag values of confirmed_7dav_incidence_num matches with the lag at the same date and time for the  confirmed_cumulative_num signal.
This seems reasonable. A reasonable approach to computing the lag value for a derived value that depends on a window of previous values is this:

take the window of values in the base signal (here, confirmed_cumulative_num) and find the largest issue (here, 2021-04-01)
compute the distance between this largest issue and the time_value that we're computing for (generally the time_value we're computing for is the right-most point in the window, so in this case it's 2020-05-01), so here we get 335

I reimplemented this approach. Now I'm getting new issues with min_lag. Tracking it down, I found that the smoothed_incidence signal just inherits the issue of the cumulative signal without taking a max over all the rows present in the summation.
>>> end_day = date(2020, 3, 12)
>>> df1 = covidcast.signal(data_source="jhu-csse", signal="confirmed_cumulative_num", start_day=end_day - timedelta(days=7), end_day=end_day, time_type="day", geo_type="state", geo_values="ak")
>>> df2 = covidcast.signal(data_source="jhu-csse", signal="confirmed_incidence_num", start_day=end_day - timedelta(days=6), end_day=end_day , time_type="day", geo_type="state", geo_values="ak")
>>> df3 = covidcast.signal(data_source="jhu-csse", signal="confirmed_7dav_incidence_num", start_day=end_day, end_day=end_day, time_type="day", geo_type="state", geo_values="ak")
>>> df1
geo_value	signal	time_value	issue	lag	missing_value	missing_stderr	missing_sample_size	value	stderr	sample_size	geo_type	data_source
0	ak	confirmed_cumulative_num	2020-03-05	2021-04-01	392	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_cumulative_num	2020-03-06	2021-04-01	391	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_cumulative_num	2020-03-07	2021-04-01	390	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_cumulative_num	2020-03-08	2021-04-01	389	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_cumulative_num	2020-03-09	2021-04-01	388	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_cumulative_num	2020-03-10	2021-04-01	387	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_cumulative_num	2020-03-11	2021-04-01	386	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_cumulative_num	2020-03-12	2020-10-29	231	0	0	0	0.0	None	None	state	jhu-csse

>>> df2
geo_value	signal	time_value	issue	lag	missing_value	missing_stderr	missing_sample_size	value	stderr	sample_size	geo_type	data_source
0	ak	confirmed_incidence_num	2020-03-06	2021-04-01	391	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_incidence_num	2020-03-07	2021-04-01	390	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_incidence_num	2020-03-08	2021-04-01	389	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_incidence_num	2020-03-09	2021-04-01	388	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_incidence_num	2020-03-10	2021-04-01	387	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_incidence_num	2020-03-11	2021-04-01	386	0	0	0	0.0	None	None	state	jhu-csse
0	ak	confirmed_incidence_num	2020-03-12	2020-10-29	231	0	0	0	0.0	None	None	state	jhu-csse

>>> df3
geo_value	signal	time_value	issue	lag	missing_value	missing_stderr	missing_sample_size	value	stderr	sample_size	geo_type	data_source
0	ak	confirmed_7dav_incidence_num	2020-03-12	2020-10-29	231	0	0	0	0.0	None	None	state	jhu-csse

Hopefully my notes above help understand my testing strategy. See the comments in test_meta-cache-updater

I'm going to merge this into jit_computations branch. With all the v4 updates to the tests, it duplicates the work to maintain keep these branches both in sync (and I spent a lot of time merging the v4 updates in today).

A/B Testing Summary
I have completed a large batch of tests. Summary of findings:

JIT derived signals match exactly with Pandas-recomputed derived signals
JIT derived signals does not match exactly with live data, but in those cases

the live data contains bugs (e.g. possibly desync issues)
the live data contains artificial values (e.g. incidence earliest reference dates match cumulative, but it should be 1 day later)

(A derived signal is a signal obtained from a base signal via a transformation. A base signal is a signal that is not a derived signal.)
These findings give me confidence that we can roll this code out.
Test Setup
Data
I downloaded the latest data from:

sources=jhu-csse,usa-facts
signals=confirmed_cumulative_num,confirmed_incidence_num,confirmed_7dav_incidence_num
geo_values=state:*,county:*
time_values=20200122-20220910

Test Procedure
The testing procedure went as follows:

I loaded all these signals into a local database
I obtained confirmed_incidence_num from JIT

I did this by querying the local API server using JIT (which computes the incidence values from confirmed_cumulative_num server-side)

I obtained confirmed_incidence_num from live data

I did this by querying the local API server without using JIT

I obtained confirmed_incidence_num by computing it from confirmed_cumulative_num with Pandas

I did this by reading the CSV file with confirmed_cumulative_num of all the USAFacts downloaded data into a dataframe, I reindexed it onto a contiguous time index, grouped by geo_value, and used diff to take differences

Test Comparisons and Results
I joined these three series into a single dataframe and compared:

I searched for all the rows where Pandas and JIT were different in the value column; I found 0 rows where they were different!
I searched for all the rows where JIT and live data were different and broke these down into two cases

JIT has a nan and live data doesn't; in all these cases JIT was right to have a nan (there was a nan in the 2-day window for incidence or a nan in the 7-day window for smoothed incidence)
JIT and live data both have value; since JIT matched with Pandas and live data didn't, this is an error in the live data (possibly a cache desync)


ATProto => ActivityPub @-mentions

Not working yet. Example Bluesky post and bridged fediverse post. Guess I'll go back and refresh my memory on #493.

Bluesky, at://did:plc:3ljmtyyjqcjee2kpewgsifvb/app.bsky.feed.post/3kq6zmsmpc52z:
{
  "$type" : "app.bsky.feed.post",
  "createdAt" : "2024-04-15T19:47:50.404Z",
  "text" : "eh indeed, cc @snarfed.indieweb.social.ap.brid.gy eh"
  "facets" : [{
      "$type" : "app.bsky.richtext.facet",
      "features" : [{
          "$type" : "app.bsky.richtext.facet#mention",
          "did" : "did:plc:bg5udl25mvzg3rt7l5n2hzet"
        }],
      "index" : {
        "byteEnd" : 49,
        "byteStart" : 14
      }
    }
  ],
}

AS1:
{
  "objectType": "comment",
  "id": "at://did:plc:3ljmtyyjqcjee2kpewgsifvb/app.bsky.feed.post/3kq6zmsmpc52z",
  "url": "https://bsky.app/profile/did:plc:3ljmtyyjqcjee2kpewgsifvb/post/3kq6zmsmpc52z",
  "content": "eh indeed, cc @snarfed.indieweb.social.ap.brid.gy eh",
  "tags": [{
      "objectType": "mention",
      "url": "https://bsky.app/profile/did:plc:bg5udl25mvzg3rt7l5n2hzet",
      "startIndex": 14,
      "displayName"<EMAIL_ADDRESS>      "length": 35
    }],
}

AS2:
{
    "type": "Note",
    "id": "https://atproto.brid.gy/convert/ap/at://did:plc:3ljmtyyjqcjee2kpewgsifvb/app.bsky.feed.post/3kq6zmsmpc52z",
    "url": "https://fed.brid.gy/r/https://bsky.app/profile/did:plc:3ljmtyyjqcjee2kpewgsifvb/post/3kq6zmsmpc52z",
    "content": "eh indeed, cc @snarfed.indieweb.social.ap.brid.gy eh",
    "tag": [{
        "startIndex": 14,
        "length": 35,
        "type": "Mention",
        "name"<EMAIL_ADDRESS>        "href": "https://atproto.brid.gy/ap/https://bsky.app/profile/did:plc:bg5udl25mvzg3rt7l5n2hzet"
      },{
        "type": "Mention",
        "href": "https://indieweb.social/users/snarfed"
      }],
}

I did a bit of sleuthing about how Mastodon parses mentions in "content". In short:

I don't think it does normally, these really are just links given to the clients.
Text mentions are enhanced into links through this extract_mentions_or_lists_with_indices function if they are matched by this regex and the account is preloaded for HTML formatting (which appears to be the author + to active mentions), but

This transformation is not applied to remote status' content!

So in short:
I think you can keep the mention format in the text, but you'll have to turn it into an HTML link so that it renders properly towards Mastodon clients and the web interface.
I think the mentions in the "tag" property are most likely fine already, as they are turned into account references for any further processing purely by resolving the href, so that Mastodon should prefill them in @user@domain-format when replying to this status.

Thanks!
When we tested and got these working from web a while back in https://github.com/snarfed/bridgy-fed/issues/493#issuecomment-1897843483, the HTML link in content evidently wasn't necessary, but tag definitely was.
Also, the goal here is more than just a clickable link; it's to make Mastodon actually handle it as a mention, so that when you click on it, it loads the mentioned user in that local instance's UI, instead of navigating your browser to the remote instance.
(startIndex and length are BF-specific warts from the AS1 => AS2 conversion, they exist in AS1 but not AS2. OK technically startIndex exists for collection pages, but not objects like this. We should be able to ignore them here.)

Right, tag will give you the semantic mention (notifications, reply autofill I think), unless that isn't reliably working either.
I understood this issue here to be specifically about the inline presentation, which is largely handled separately, and for which I'm pretty certain either the link is necessary or maybe @user@domain formatting of the handle in the text could also work.

Also, the goal here is more than just a clickable link; it's to make Mastodon actually handle it as a mention, so that when you click on it, it loads the mentioned user in the local instance's UI, instead of navigating your browser to the remote instance.

I finally found the place this is done, by searching for the status-mention class those links have in the web UI. It's matched client-side to the href in tag:
https://github.com/mastodon/mastodon/blob/caad1e2628c78d2dfcd86e3a79b0849dc89baf16/app/javascript/mastodon/components/status_content.jsx#L104-L130
This also confirms that the surrounding markup doesn't matter, you just need an  tag at least for Mastodon. The account @ that's inserted into the new local href is the one Mastodon resolved from the tag href too, if I didn't completely misread that earlier.

Looked at this a bit. We need to convert the mention href to the mentioned actor's AP id. Right now we have eg ATProto record at://did:plc:3ljmtyyjqcjee2kpewgsifvb/app.bsky.feed.post/3ksveg5r2qs24:a
{
    "$type": "app.bsky.feed.post",
    "text": "maybe if @snarfed.indieweb.social.ap.brid.gy and #alf meet up",
    "createdAt": "2024-05-20T03:49:56.091Z",
    "facets": [{
      "$type": "app.bsky.richtext.facet",
      "features": [{
          "$type": "app.bsky.richtext.facet#mention",
          "did": "did:plc:bg5udl25mvzg3rt7l5n2hzet"
        }],
      "index": {
        "byteEnd": 44,
        "byteStart": 9
      }
    }],
  }

...to AS2:
{
  "id": "https://bsky.brid.gy/convert/ap/at://did:plc:3ljmtyyjqcjee2kpewgsifvb/app.bsky.feed.post/3ksveg5r2qs24",
  "url": "https://fed.brid.gy/r/https://bsky.app/profile/did:plc:3ljmtyyjqcjee2kpewgsifvb/post/3ksveg5r2qs24",
  "content": "
maybe if <a<EMAIL_ADDRESS>and #alf meet up
",
  "published": "2024-05-20T03:49:56.091Z",
  "attributedTo": "https://bsky.brid.gy/ap/did:plc:3ljmtyyjqcjee2kpewgsifvb",
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "Note",
  "tag": [{
      "type": "Mention",
      "name"<EMAIL_ADDRESS>      "href": "https://bsky.brid.gy/ap/https://bsky.app/profile/did:plc:bg5udl25mvzg3rt7l5n2hzet"
    }],
}

So that should eventually show the mention as "<EMAIL_ADDRESS>in the post text on the Mastodon side, right?

Yes, or just @snarfed. More importantly, it should be a mention, ie link to that fediverse account inside the local instance, as usual.

^ Progress. We're now at least generating the right Mention tag to notify the mentioned user. Example: https://bsky.app/profile/snarfed.bsky.social/post/3ktxejevy3s2o => https://indieweb.social/<EMAIL_ADDRESS>The link doesn't get rewritten to point to the mentioned user inside the local instance, though. It's a normal HTML link that goes to the user on their own instance. Example of how I'd ideally like it to work: https://indieweb.social/@tchambers/112542225021901875 . I've gotten this working before with Web => AP, not sure what needs to change. Does the mention link text need to be the AP handle? Something else? Back to #493, my old nemesis.

I'm pretty sure this is because you're using<EMAIL_ADDRESS>instead of "name":"<EMAIL_ADDRESS>for the "Mention"-"tag".
Remember that these get matched href=-"href":, not text-to-"name"!

text-to-"name" as in the standard!

@qazmlp out of curiosity, are you talking about this section? https://www.w3.org/TR/activitystreams-vocabulary/#microsyntaxes

A typical social software implementation would typically render such a content such that "@sally" is replaced with a hyperlink to "@sally"'s social profile page and "#givingthanks" is replaced with a hyperlink to a listing of other notes that have been "tagged" with the same topic. Most implementations would also send a special notification to sally letting her know that a note mentioning her has been created.

Not normative, but still, useful if so, thanks for the nudge.

I'm talking about "EXAMPLE 158" which appears to have the post content as plaintext in JSON:

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "name": "A thank-you note",
  "type": "Note",
  "content": "Thank you @sally for all your hard work! #givingthanks",
  "tag": [
    {
      "type": "Mention",
      "href": "http://example.org/people/sally",
      "name": "@sally"
    },
    {
      "id": "http://example.org/tags/givingthanks",
      "name": "#givingthanks"
    }
  ]
}

I'm not sure if any behaviour is actually being prescribed there, though, and in my opinion automatic parsing of incoming plaintext without markup isn't usually a great idea, generally speaking.

I'm not sure if any behaviour is actually being prescribed there, though, and in my opinion automatic parsing of incoming plaintext without markup isn't usually a great idea, generally speaking.

Right! That whole section is non-normative, so no, they're not prescribing behavior per se, and they agree with you on avoiding parsing text content. From the beginning of the section:

Many social software systems use special text-based microsyntaxes that allow users to define special addressing for notifications, linking, or categorization within objects. For example, including text such as "@username" within an object's content will often route the object to a special "mentions" or "inbox" stream for a particular user. Likewise, including text such as " #topic" within the object's content will often mark the object as being related to the topic "topic"...
While such microsyntaxes MAY be used within the values of the content, name, and summary properties on an Activity Streams Object, implementations SHOULD NOT be required to parse the values of those properties in order to determine the appropriate routing of notifications, categorization or linking between objects. Instead, publishers SHOULD make appropriate use of the vocabulary terms provided specifically for these purposes.

Looking at this again. Here's the (pruned) AS2 object for the example above with the mention that notified the Mastodon user but didn't get rewritten. The mention href is the mentioned user's AP id, and the href and name both match the link href and text in the HTML content. 🤷
{
   "@context" : "https://www.w3.org/ns/activitystreams",
   "type" : "Note",
   "id" : "https://bsky.brid.gy/convert/ap/at://did:plc:3ljmtyyjqcjee2kpewgsifvb/app.bsky.feed.post/3ktxejevy3s2o",
   "url" : "https://fed.brid.gy/r/https://bsky.app/profile/did:plc:3ljmtyyjqcjee2kpewgsifvb/post/3ktxejevy3s2o"
   "attributedTo" : "https://bsky.brid.gy/ap/did:plc:3ljmtyyjqcjee2kpewgsifvb",
   "content" : "
<a<EMAIL_ADDRESS>and #alf should meet up again
",
   "tag" : [{
         "href" : "https://indieweb.social/users/snarfed",
         "name"<EMAIL_ADDRESS>         "type" : "Mention"
      },{
         "href" : "https://bsky.brid.gy/hashtag/alf",
         "name" : "#alf",
         "type" : "Hashtag"
      }],
}

I think this is now the same as #887.

Closing, will track the local rewriting in #887.


[Storage] Complete implementation of TreeReader and TreeWriter for state store

Motivation
This allows us to restore state store from a backup. Added a test to demonstrate that it works.
Have you read the Contributing Guidelines on pull requests?
Y.
Test Plan
CI.
Related PRs
None.

@bors-libra r+

:pushpin: Commit aea12fe has been approved by lightmark

:hourglass: Testing commit aea12fee0541a16eb122fdd2b546fcedab1fa9f4 with merge 2531a2ad5b92cb4a4262a082c60477dc7e190e8f...

:sunny: Test successful - checks-circle_commit_workflow
Approved by: lightmark
Pushing 2531a2ad5b92cb4a4262a082c60477dc7e190e8f to master...


Feature/402 testcontainers for integration testing

About
Use "Testcontainers" as framework for providing service fixtures.
References

GH-402
https://github.com/crate-workbench/cratedb-toolkit/pull/82

Checklist

[x] CLA is signed

@amotl yes, this is because of the Python version constraints in click-aliases. But the cratedb-toolkit itself has the same constraint of >=3.8, we simply don't see it, as the pip install fails before all the transitive deps are installed.
Tbh, I think Python 3.7 constrained can be lifted to 3.8 safely:

Python 3.7 are almost non-existen in the crash download stats
Python 3.7 has reached the end of life this summer

Python 3.7 has reached the end of life this summer

urllib3 also just removed support, see https://github.com/urllib3/urllib3/releases/tag/2.1.0.

@amotl  I think I am ready for the review, please let me know if I missed something.

Hi.
I just invoked the test harness, and while it succeeds:
python -m unittest -v
Ran 103 tests in 8.408s

.... it clutters the log with such messages:
2024-01-19 21:30:31,578 [urllib3.connectionpool              ] WARNING : Retrying (Retry(total=8, connect=None, read=0, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x113ba4d50>: Failed to establish a new connection: [Errno 61] Connection refused')': /
2024-01-19 21:30:31,579 [urllib3.connectionpool              ] WARNING : Retrying (Retry(total=7, connect=None, read=0, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x113b4f590>: Failed to establish a new connection: [Errno 61] Connection refused')': /
2024-01-19 21:30:31,580 [urllib3.connectionpool              ] WARNING : Retrying (Retry(total=6, connect=None, read=0, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x113b3eed0>: Failed to establish a new connection: [Errno 61] Connection refused')': /

Do you know where this might be coming from, @pilosus?
With kind regards,
Andreas.

.... it clutters the log with such messages:

Hi @amotl
My educated guess is that since the PR was open, a new major version of docker was released. It has requests package bumped to a new version, which in turns uses urllib3 of version 2 distributed rather than vendored as it used to be in earlier versions. Here's a longer discussion:
https://github.com/docker/docker-py/issues/3113
Since testcontainers use docker package with no pinned upper bound, the behaviour from requests has changed in crash too.
From what I see, it's not only testcontainers-related tests that are emitting these annoying warnings, but some others, like tests/test_commands.py since they are instantiating crate.crash.command.CrateShell which is invoking crate.crash.command.CrateShell._connect.
I think it's better to use either:
urllib3.disable_warnings()

or a module-wide fixtures like:
def setUpModule():
    import logging
    logging.getLogger("urllib3").propagate = False

Python 3.12, CrateDB 5.5.0 on macos-latest

Not sure what's happening here, but again, probably it has something to do with the new docker-py.

@amotl reg. MacOS tests failing. It's because Docker isn't pre-installed on the GitHub-runners!
https://github.com/orgs/community/discussions/25777
If you open a job, then click on Set up job -> Runner Image -> Included Software, you'll see the link to a list of preinstalled runner software.
Compare ubuntu with macos-12, docker is not installed because of the licensing issues.
So, testcontainers won't work on MacOS runner, unfortunately :-/

@pilosus:

reg. MacOS tests failing. It's because Docker isn't pre-installed on the GitHub-runners!

Yeah right, that's why we skip integration tests on all other OS than Linux.
https://github.com/crate/crash/blob/78cf68258fb1425844c6ec4565e5deac0a0e36c8/tests/test_integration.py#L28-L29
Apparently, this would need to (additionally?) go into setUpModule() now?
https://github.com/crate/crash/blob/78cf68258fb1425844c6ec4565e5deac0a0e36c8/tests/test_integration.py#L49-L50
Otherwise, it tries to dial the Docker API, which goes south.

.... it clutters the log with such messages:

My educated guess is that since the PR was open, a new major version of docker was released. It has requests package bumped to a new version, which in turns uses urllib3 of version 2 distributed rather than vendored as it used to be in earlier versions. Here's a longer discussion: [...]

Oh wow, thanks for digging into this. I hadn't expected this. Instead, I was expecting that the CrateDB HTTP driver might have flaw, and is responsible for the log flodding coming from urllib3. Without reading https://github.com/docker/docker-py/issues/3113 yet, can you rule out that the HTTP driver needs to be investigated, and that it's coming from Docker?
If so, I will be happy to disable corresponding warnings as you suggested. However, it would be nicer if this could only be masked for requests to the Docker API, if that is the culprit here, in order not to obfuscate any other warnings originating at urllib3. Do you see a chance to achieve this?

Yeah right, thanks for the reminder. That's also why the code skip integration tests on all other OS than Linux, so it will fortunately not be a regression.
https://github.com/crate/crash/blob/78cf68258fb1425844c6ec4565e5deac0a0e36c8/tests/test_integration.py#L28-L29
Apparently, the raise SkipTest(...) would need to (additionally?) go into setUpModule() now?

@amotl Check out how I've impemented it in d83177f692f78583d529514e2b62fc06f6807550

Oh wow, thanks for digging into this. I hadn't expected that. Instead, I was expecting that the CrateDB HTTP driver might have a flaw, and is responsible for the log flodding coming from urllib3. Without reading docker/docker-py#3113 yet, can you rule out that the HTTP driver needs to be investigated, and that it's definitively coming from Docker?
If so, I will be happy to disable corresponding warnings as you suggested. However, it would be nicer if this could only be masked for requests to the Docker API, if that is the culprit here, in order not to obfuscate any other warnings originating at urllib3. Do you see a chance to achieve this?

@amotl hmm, all this flood of urllib3 warning logs are coming from the CrateShell when we forgot pass in proper hosts so that it falls back to the default localhost:4200. I've fixed that in 58b0aef05a33417832dae0e3ed85a1b5b0f82379, except (obviously) for the case where we check multi hosts connection with one URL not available.
There's the same problem in some other, non-integration tests like tests.test_commands.ShowTablesCommandTest.test_pre_0_57 and tests.test_commands.MultipleStatementsTest.test_single_sql_statement_multiple_lines just to name a few. It seems we don't mock them properly. I haven't fixed those, I guess it's better to do in a separate PR.

Thank you very much for improving the test skipping on unsupported OS, and for tracking down the reason for the flood of urllib3 warnings, and fixing it. Excellent job! 💯

Hi @amotl let me know if there's anything else I need to do to get this PR merged?
If there's a blocker may be it's worth to mention it here as well :-)

Thanks @pilosus. I think it will be good to go. We will have a final conversation with @seut about it, and then probably just merge, when no other objections come up. Thanks again for your efforts!

I think some commits would makes sense to be squashed, but will leave that up to you.

@amotl @seut I've squashed 6 commits. Feel free to squash even more if needed.


Add openshift SCC zookeeper

Signed-off-by: nshankar13<EMAIL_ADDRESS>
Description: Add SecuityContextConstraint for zookeeper SA in e2e_statefulsets_test for OpenShift.
Resolves https://github.com/openservicemesh/osm/issues/4784

Testing done:

Affected area:

Functional Area

New Functionality
[ ]

CI System
[X]

CLI Tool
[ ]

Certificate Management
[ ]

Control Plane
[ ]

Demo
[ ]

Documentation
[ ]

Egress
[ ]

Ingress
[ ]

Install
[ ]

Networking
[ ]

Observability
[ ]

Performance
[ ]

SMI Policy
[ ]

Security
[ ]

Sidecar Injection
[ ]

Tests
[X]

Upgrade
[ ]

Other
[ ]

Please answer the following questions with yes/no.

Does this change contain code from or inspired by another project?

Did you notify the maintainers and provide attribution?

Is this a breaking change?

Has documentation corresponding to this change been updated in the osm-docs repo (if applicable)?

Codecov Report

Merging #4787 (13c91f9) into main (c24012f) will increase coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #4787      +/-   ##
==========================================
+ Coverage   68.91%   68.92%   +0.01%
==========================================
  Files         224      224
  Lines       16388    16388
==========================================
+ Hits        11293    11296       +3
+ Misses       5043     5040       -3
  Partials       52       52

Flag
Coverage Δ

unittests
68.92% <ø> (+0.01%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/messaging/workqueue.go
100.00% <0.00%> (+10.71%)
:arrow_up:

Continue to review full report at Codecov.

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


Different data and label names in torchvision.datasets

I gave Cifar10, Cifar100, and SVHN torchvision.datasets a go, and after loading the train_set and test_set, the data labels’ identifiers are different across datasets:
To get the labels in Cifar10 and Cifar100
test_set.test_labels
train_set.train_labels
also, the data is called
test_set.test_data
train_set.train_data
In SVHN, the situation is different (and I think more accurate)
test_set.labels
train_set.labels
and the data is called
test_set.data
train_set.data
I think the naming needs to be consistent.

Had the same query earlier, however it technically shouldn't matter as you can permute the data or the labels with transforms or target_transforms whatever the underlying members are.

So, what happens is that the DataSet API only specifies that __getitem__ and __len__ should be implemented, and all the rest is up to the user.
Thus, while we could try to enforce that for some particular datasets that will hold true (for those that can be fully loaded in memory and that are split in two tensors, for example), that's not going to be the case everywhere.
Changing the naming now would be a backwards-incompatible change for old users, and I'm not 100% sure that it would be worth breaking peoples code.
Ideally, you shouldn't rely on those "internal" fields.


Fix: Syringe requires hands and breaks on change now

About the PR

Added arguments that made syringes require hands and breaks on hand change.
Why / Balance

Cause you can start injecting yourself, throw the syringe across the room, and it'd still be injecting you.
Unfortunately this change also makes it so that you can't double-inject with a syringe in each hand...?
Media

[ X ] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

no idea what I'd write here

Aw, im going to miss 2-6 syringe treating... had no idea doafter keeps going even if you throw it to other side of room, was sure you need to be at least in range.


Import sort does not recognize flow comment

As flow files typically begin with
//@flow

They shall not be rearranged.
Non working example
//@flow
import dotEnv from 'dotenv'
import {compile} from './geth'
import express from 'express'

Turns into
import {compile} from './geth'
//@flow
import dotEnv from 'dotenv'
import express from 'express'

Hi @LarsKoelpin
this can be fixed by adding a blank line after copyright headers and compiler pragams. I will add an example to the README so other people don't run into the same problem.


[DOC] Add documentation on caching for the Snapshot’s RepositoryData

What do you want to do?

[X] Request a change to existing documentation
[ ] Add new documentation
[ ] Report a technical problem with the documentation
[ ] Other

Tell us about your request. Provide a summary of the request.
The Snapshot feature improves performance by caching RepositoryData.
I’d like to add documentation on caching to this page.
Currently, up to 500KB of RepositoryData can be cached, with an option to disable caching entirely.
I also submitted a PR to the OpenSearch Project to enable users to set the maximum cache size according to their needs, and I would like to include this update in the documentation as well.
Version: List the OpenSearch version to which this issue applies, e.g. 2.14, 2.12--2.14, or all.
2.18
What other resources are available? Provide links to related issues, POCs, steps for testing, etc.
https://github.com/opensearch-project/OpenSearch/pull/16489

Hi @inpink! Do you have a link to the development PR you submitted?

Hello, @Naarcha-AWS!
The PR I submitted is #16489, and the related issue is #16298. (I’ve also included links to these in the body of the post.)
I am discussing this topic in the two links above. Once the PR is merged, I’ll submit a PR to the documentation as well. Thank you for assigning me the issue! 😄🎉 Have a nice day!

This will actually be no earlier than 2.19.

This will actually be no earlier than 2.19.

Ah, got it! I’ve updated the content to version 2.19 as requested. Thank you for pointing that out, @dbwiddis.

@Naarcha-AWS, would you mind adjusting the label? Much appreciated!


命令“NET：新建项目..."导致错误

Failed with ExitCode(2147516561）
Details
The command could not be loaded possibly because

You intended to execute a NET application:
The application 'new' does not exist.
You intended to execute a NET SDK command
No NET SDKs were found.
Download a.NET SDK:
https://aka.ms/dotnet-download
Learn about SDK resolution
https://aka.ms/dotnet/sdk-not-found

what exactly did you try to execute @321diner ? What platform and .NET version do you use?

What does dotnet --info returns @321diner?


abolished H2A phosphorylation IR

abolished histone H2A phosphorylation during cellular response to ionizing radiation
GO:1990164
PMID:15964794

is FYPO:0002472


Add perplexity extension

Description
A simple plugin for querying Perplexity from within Raycast.
Screencast
https://github.com/raycast/extensions/assets/8732191/90366f50-f85f-4db0-a526-0555f820431b

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Done pushing changes, and ready for another review! I addressed the feedback, updated the logo and screenshot, and added draft functionality. 🙏🏻


feat: port RingTheory.Finiteness

Still has eta

@Parcly-Taxel This should not be awaiting-review because it contains set_option synthInstance.etaExperiment true in which is for local testing only.

@casavaca that is not strictly true. If all other options have been tried, but we can't get the PR to compile without etaExperiment than we sometimes make an exception.


Gettings 10 or 20 most favorited images for 2015

Hi,
I was hoping to putting up a thank you blog post up with the most favorited images from 2015. I don't have access to that info. Is that something that could be provided before the end of the year, and if not past the holidays and new year is fine too. @parrish would this be something you could do or can you recommend who would be the right person?
Thanks,
~Meg

No problem, here are the most favorited.  There are 29, so you can split tied votes however you like.
If you'd like me to regenerate it closer to the end of the year, just send me an email.
most_favorited.csv.zip

Perfect. Thanks @parrish. I wanted to do the same thing for Planet Four: Terrains  as well - that info doesn't seem to be in the panoptes data dumps. Is that something I should ask for on the backend github repo?

Here's that data too:
terrains_most_favorited.csv.zip

Awesome. Thanks very much @parrish and happy holidays!


WIP: fix reminder unregister then restart.

Signed-off-by: Artur Souza<EMAIL_ADDRESS>Description
WIP to fix issue to unregister reminder then restart.
Issue reference

Please reference the issue this PR will close: #[issue number]
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Unit tests passing
[ ] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-perf

/ok-to-perf

/ok-to-perf

ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-perf

/ok-to-perf

/ok-to-perf

/ok-to-test

/ok-to-test

/ok-to-test

/ok-to-test

This change is not enough since the E2E test failed in another instance here: https://github.com/dapr/dapr/actions/runs/3441358778/jobs/5741116555

I had added resiliency for the E2E test apps, and @ItalyPaleAle is fixing race conditions over there. So, I will make this fix without resiliency first. If it proves stable in ok-to-test, I will cut a hotfix in runtime.

/ok-to-test

/ok-to-test

/ok-to-test


Having trouble updating nfldb

Hello,
I just downloaded and installed nfldb. I can't seem to update it to have more recent statistics. I can query data from like the 2012 season but can't from the current season.
So I run nfldb-update and I run into this error,
"psycopg2.IntegrityError: insert or update on table "play" violates foreign key constraint "play_pos_team_fkey"
DETAIL:  Key (pos_team)=(JAX) is not present in table "team"."
I have read a little bit about this from previous issues, but none of the proposed solutions are working for me.

insert into team values('JAX','Jacksonville', 'Jaguars'); #194
You will also run into a problem with the LA Chargers, so do this too:
insert into team values ('LAC', 'Los Angeles', 'Chargers');


fix locator

This PR fixes a bug resulting from porting from py2 to py3 involving true division instead of integer division.
This fix is required by users for the next release.
Note that there are expected image differences, so the test-tephi-imagehash PR #XXX requires to be merged first before this PR will pass

All of the expected image differences involve the tick values of the isotherms and dry adiabats (which should be ints rather than floats, given the locator)
However, several images now have the correct isotherm and dry adiabat values, as raised by users requesting this fix.

All of the expected image differences involve the tick values of the isotherms and/or dry adiabats, which were miss-calculated due to the true division porting bug.
There are 6 test failures, but there are only 3 new images due to the test duplication i.e., three groups of two tests generate the same image.


explicitly enable getrandom/std feature

This seems to be what rand_core does, and then we need to do it as well or else the rustc feature checker complains.

@bors r+

:pushpin: Commit 283829c5c1a13c7c1f01b4b0e0e697b967bb46f1 has been approved by RalfJung

:hourglass: Testing commit 283829c5c1a13c7c1f01b4b0e0e697b967bb46f1 with merge 69268fb75fdb452296caa9bc4aaeff1674279de2...

:sunny: Test successful - checks-travis, status-appveyor
Approved by: RalfJung
Pushing 69268fb75fdb452296caa9bc4aaeff1674279de2 to master...


dummy PR do not merge

Testing the PR builds
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

AWS CodeBuild CI Report

CodeBuild project: GitHubPipelineAutoBuildProj-XK8ItpxnSow5
Commit ID: 3941329c26045e6934128d45d5b5c6710f4c2cce
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

PR build fixed. Closing.


[RFR] Add the ability to set field template with label

In showView, editionView, and creationView, the template zone covers only the field itself - not the label. To force the template to replace the entire line (including the label), pass true as second argument to the template() call. This can be very useful to conditionally hide a field according to a property of the entry:
post.editionView()
    .fields([
        nga.field('category', 'choice')
            .choices([
                { label: 'Tech', value: 'tech' },
                { label: 'Lifestyle', value: 'lifestyle' }
            ]),
        nga.field('subcategory', 'choice')
            .choices(function(entry) {
                return subCategories.filter(function (c) {
                    return c.category === entry.values.category;
                });
            })
            // display subcategory only if there is a category
            .template('<ma-field ng-if="entry.values.category" field="::field" value="entry.values[field.name()]" entry="entry" entity="::entity" form="formController.form" datastore="::formController.dataStore"></ma-field>', true),
    ]);

Closes #755, #764

When I try the example above, I get an infinite loop. Any idea what's causing this?
    submissions.editionView().fields([
        nga.field('submittedById', 'reference')
            .label('Submitted By')
            .targetEntity(user)
            .targetField(nga.field('name'))
            .editable(false)
            .template('<ma-field ng-if="entry.values.submittedById" field="::field" value="entry.values[field.name()]" entry="entry" entity="::entity" form="formController.form" datastore="::formController.dataStore">', true),

Error:
TypeError: Cannot read property 'submittedById' of undefined

@jamespsterling did you resolve this infinite loop? I am observing the same behavior.

Yes the digest loop is triggered when this is used with embedded_list targetFields...

@ajarbol thanks for your comment! However, I just realized that my problems seem to result in the fact, that this feature hasn't actually been released to npm yet :) In the current release (0.9.1), the second parameter on template() is not handled and when applying an <ma-field> tag then, the loop is caused.
@fzaninotto this feature is already described in the docs but not yet available in the release. Do you plan to include it in an upcoming release?

Yes it will be in the next release, with no release date yet.

thanks. so at least this is documented allowing others to avoid this struggle :)

Is this still unreleased? Adding true as the 2nd argument to template method does nothing.

You need to use version 1.0.0-alpha4 (which is not labeled stable) to test it.

@fzaninotto great, I'll give it a shot! Any idea when 1.0.0 will be released?


Docs.MS Release Updates for azure-cosmos

Update docs metadata and targeting for release of azure-cosmos

Docs Build status updates of commit 1a43e87:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-services/latest/cosmos-readme.md
:warning:Warning
View (azure-node-latest)
Details

<EMAIL_ADDRESS>:warning:Warning
View (azure-node-latest)
Details

<EMAIL_ADDRESS>:warning:Warning
View (azure-node-latest)
Details

<EMAIL_ADDRESS>:warning:Warning
View (azure-node-latest)
Details

<EMAIL_ADDRESS>:warning:Warning
View (azure-node-latest)
Details

<EMAIL_ADDRESS>:warning:Warning
View (azure-node-latest)
Details

<EMAIL_ADDRESS>:warning:Warning
View (azure-node-latest)
Details

docs-ref-services/latest/cosmos-readme.md

Line 9, Column 16: [Warning-ms-prod-technology-invalid] Invalid value for 'ms.technology': 'azure' is not valid with 'ms.prod' value 'azure'.
Line 113, Column 3: [Warning-bookmark-not-found] Cannot find bookmark '#delete-an-data' in 'docs-ref-services/latest/cosmos-readme.md', did you mean '#delete-an-item'?
Line 2, Column 1: [Suggestion-description-missing] Missing required attribute: 'description'.
Line 27, Column 24: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/?view=azure-node-lates. Otherwise, remove the view parameter.
Line 70, Column 59: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/cosmosclient?view=azure-node-latest. Otherwise, remove the view parameter.
Line 94, Column 27: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/cosmosclient?view=azure-node-lates. Otherwise, remove the view parameter.
Line 96, Column 3: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/database?view=azure-node-latest. Otherwise, remove the view parameter.
Line 96, Column 317: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/database?view=azure-node-latest. Otherwise, remove the view parameter.
Line 98, Column 3: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/container?view=azure-node-latest. Otherwise, remove the view parameter.
Line 98, Column 244: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/container?view=azure-node-latest. Otherwise, remove the view parameter.
Line 100, Column 3: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/item?view=azure-node-latest. Otherwise, remove the view parameter.
Line 117, Column 27: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/cosmosclient?view=azure-node-latest. Otherwise, remove the view parameter.
Line 135, Column 74: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/items?view=azure-node-latest#upsert-t--requestoptions-. Otherwise, remove the view parameter.
Line 152, Column 45: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/item?view=azure-node-latest#read-requestoptions-. Otherwise, remove the view parameter.
Line 160, Column 39: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/item?view=azure-node-latest#delete-requestoptions-. Otherwise, remove the view parameter.
Line 169, Column 78: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/items?view=azure-node-latest#query-string---sqlqueryspec--feedoptions-. Otherwise, remove the view parameter.
Line 180, Column 98: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/@azure/cosmos/items?view=azure-node-latest#query-string---sqlqueryspec--feedoptions-. Otherwise, remove the view parameter.
Line 254, Column 3: [Suggestion-preserve-view-not-set] Did you mean to link to a specific version? It's usually better not to specify a version, so the link always goes to the canonical version. If you really need to link to a specific version, add &preserve-view=true to the URL: https://docs.microsoft.com/javascript/api/%40azure/cosmos/?view=azure-node-latest. Otherwise, remove the view parameter.

<EMAIL_ADDRESS>
Line 5, Column 31: [Warning-xref-not-found] Cross reference not found: 'DataLakeServiceClient.undeleteFileSystem'.

<EMAIL_ADDRESS>
Line 5, Column 41: [Warning-xref-not-found] Cross reference not found: 'DataLakeServiceClient.undeleteFileSystem'.

<EMAIL_ADDRESS>
Line 5, Column 31: [Warning-xref-not-found] Cross reference not found: 'DataLakeServiceClient.renameFileSystem'.

<EMAIL_ADDRESS>
Line 5, Column 31: [Warning-xref-not-found] Cross reference not found: 'BlobServiceClient.renameContainer'.

<EMAIL_ADDRESS>
Line 5, Column 41: [Warning-xref-not-found] Cross reference not found: 'DataLakeServiceClient.renameFileSystem'.

<EMAIL_ADDRESS>
Line 6, Column 1: [Warning-xref-not-found] Cross reference not found: 'KnownGeoReplicationStatusType'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Document metrics exposure via Prometheus Operator

Spin off from #47
OhMyGLB supports integration with Prometheus Operator thanks to Operator SDK native support.
However, actual procedure of Prometheus Operator setup for proper scraping is not clear, so it makes sense to reflect it in OhMyGLB documentation.

@somaritane Just to clarify - there are no proper upstream Prometheus Operator docs for it ?

@somaritane Just to clarify - there are no proper upstream Prometheus Operator docs for it ?
There are.
However there are several sources of information for those trying to install Prometheus Operator and setup metrics scraping for OhMyGLB there:
https://github.com/coreos/prometheus-operator#prometheus-operator-vs-kube-prometheus-vs-community-helm-chart
and some installation options are not exactly obvious: https://github.com/helm/charts/issues/11310
So I think it makes sense to simplify user experience and provide clear setup instructions describing necessary setup options.

Issue is pretty much outdated, we might return to that during the work on observability Issues


[cast-opt] Small cleanups to optimizeBridgedObjCToSwiftCast in preparation for fixing it for ownership.

I moved up a few early exits before we have any side-effects occurs and also extracted out some helper methods. Should be NFC.

@swift-ci test and merge

Forgot to clang-format 1 commit. Fixed.

@swift-ci test and merge

@swift-ci test and merge

@swift-ci smoke test os x platform

@swift-ci smoke test os x platform

@swift-ci smoke test os x platform

I killed the full test job.


Fetch Workbox from CDN

Requests are only made to the CDN if the user opts-in to the Service Worker via index.js.
The calls are not present in our default installation.

Yep!

Sweet

Also tested the service worker still worked, register, offline, and unregistering. Seems to all check out.


Update curl.md to include details of post body

Update curl.md to include details of post body and the use of the details optional parameter in vision api.

@AndyCross : Thanks for your contribution to the Azure documentation! The author, @JuliaNik, has been notified to review your proposed change.

#sign-off


Replace HttpBin with Postman-Echo

Addresses this issue on the main repository. Tested the test.lua file using LÖVE 12 (which has lua-https built in):
lua-https main*
❯ lovec example
test downloading json library
test custom header
test POST with data send as form
test POST with data send as json
test PUT with data send as form
test PUT with data send as json
test PATCH with data send as form
test PATCH with data send as json
test DELETE with data send as form
test DELETE with data send as json
Test successful!

Merged to upstream, thanks.


Quotes missing in YAML issue form template

Code of Conduct

[X] I have read and agree to the GitHub Docs project's Code of Conduct

What article on docs.github.com is affected?
https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
What part(s) of the article would you like to see updated?
The YAML issue form template (which is the conversion of the Markdown template) is missing quotes around the individual labels Bug and Needs Triage: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms#yaml-issue-form-template

The consequence is that if users directly copy the template, then the issue form won't add those labels to the issues it creates.
The solution is to add quotes to those labels.
Additional information
No response

@larsmaxfield-asml Thank you for opening an issue and linking it to your PR! ✨


feat: add code for the reduction step of a bucket method with many outputs (PROOF-642)

Rationale for this change
Add a component for the reduction step of the bucket method when the multi-exponentiation has a large number of outputs.
What changes are included in this PR?

A new component for the bucket method reduction step.

Are these changes tested?
Yes.

:tada: This PR is included in version 1.36.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Auto-renewal subscription in sandbox

Currently, I'm using RMStore to achieve auto-renewal subscription in sandbox. I encountered some problems
[[RMAppReceipt bundleReceipt] containsActiveAutoRenewableSubscriptionOfProductIdentifier]
which I used to check whether the valid receipt exists.
This method is not stable and consistent.
[RMStore defaultStore] refreshReceipt]
which will lead appearance of the login alert box every time I call this method, which is not sensible.

Im experiencing the same behaviour

Late but maybe will be usable for others:

Note, that 1 month's auto-renewable subscription in sandbox works as 5 minutes. Maybe problem because of that.

refreshReceipt works always with asking a password. If you want to check an auto-renewable subscription without a password - you need to send a request to the Apple servers (from your server or directly from the app) (https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateRemotely.html)


[wasm] Wasm code related to transaction building is deprecated and requires refactoring #3179

#3179

The dapp code needs to do something like:
    sendTx: async () => {
      const { plan } = await viewClient.transactionPlanner(reqFromForm());
      const { data } = await custodyClient.authorize({ plan });
      const { transaction } = await viewClient.authorizeAndBuild({
        transactionPlan: plan,
        authorizationData: data,
      });
      const { id } = await viewClient.broadcastTransaction({ transaction, awaitDetection: true });
      return uint8ArrayToHex(id.hash);
    },

And the extension needs to be able to handle each of those messages and use the wasm functions to help fulfill these requests. I'm currently working on this now, but can you ensure that these changes are compatible with the grpc messages?

Yes, I can confirm that wasm functions will allow to do this, processing of authorizeAndBuild request will be like this
    const plan: TransactionPlan;
    const authData: AuthorizationData;

    const witnessData: WitnessData = witness(plan.toJson(), loadStoredTree());
    const transaction: Transaction = build(loadFullViewingKey(), plan.toJson(), witnessData.toJson(), authData.toJson());

It seems that some checks have failed, but that's not related to my changes. This PR is ready for review


router: Specify service in release

This means deployments will not succeed if the router job fails to register the service (e.g. if the COOKIE_KEY or TLS env vars are invalid).

LGTM

LGTM


react-native-maps vs react-native-google-maps podspec

Would like to ask what to use between these two podspec in podfile, thanks

Please use this issue tracker for bug reports and features. Questions are better suited for Stack Overflow.
Thanks!

react-native-maps podspec is used to link this library to your RN project whereas react-native-google-maps is the podspec that includes the Google Maps SDK for iOS.


Call Modal Loader outside of initialization

I want to be able to start loading and stop on a different function but i can't seem to manage doing this?
I tried
$('#modal').iziModal().startLoading();
does not work

my bad i missed, the correct command is $('#modal').iziModal('startLoading');


Using dependencies with non-transpiled src code

Here is an example repo:
https://github.com/bkniffler/fuse-box-rn
Background
By building a react-native-web (https://github.com/necolas/react-native-web) based web application, I'm running into problems, since react-native-web allows to use react-native UI projects like react-native-elements (https://github.com/react-native-training/react-native-elements) by mapping react-native base elements (View, Text, ...) to react-dom components. This works by aliasing react-native to react-native-web.
Problem
Lots of react-native ui libraries and tools will not publish transpiled code, but raw src code with jsx, es-modules etc, since metro bundler will automatically run them through babel. I'm not able to run those dependencies through babel though, even with useJsNext: true and Babel7Plugin=>limit2project
How can I make fuse-box load them without throwing syntax errors?

Closed due to inactivity.


x/pkgsite: internal folders/packages handled differently on top-level versus inside packages?

Example project where I notice this (inconsistent?) behavior: https://pkg.go.dev/github.com/thediveo/lxkns#section-directories

there is a top-level internal directories node rendered at the end of the directories list.
there is no cmd/internal directory rendered for the package in the repository:  https://github.com/thediveo/lxkns/tree/master/cmd/internal

What is your user agent?
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
Screenshot

What did you do?
Navigate to https://pkg.go.dev/github.com/thediveo/lxkns#section-directories
What did you expect to see?
The cmd directory node to contain a sub node named internal.
What did you see instead?
No such sub node named internal inside cmd, while there correctly is a top-level internal node.

This appears to be only a property of the nav. The directory is there:
<EMAIL_ADDRESS>

This is working as intended (CL 297109), but I agree it does seem inconsistent. Given https://github.com/golang/go/issues/44356#issuecomment-786280831, maybe what we really want is to hide internal packages in the standard library but not third party modules.

Any thoughts on a toggle for internal directory visibility?

I like the toggle idea.
If I'm browsing my own code, I want to see internal. If I'm browsing other people's code, I don't want to see internal. Based on this heuristic, perhaps we should make it the default to show internal packages for cmd/pkgsite.

Thank you very much!


Fix/modal propagation issue

What kind of change does this PR introduce?
fixes #285
fix: remove propagation function as it's no longer required with radix

Supabase UI is being deprecated.
We are moving the components to the main mono repo at github.com/supabase/supabase.
The auth component has been moved to it's own repo and package.
github.com/supabase-community/auth-ui.
You can also read the docs for auth ui here.


Frozen string literal

Hi,
Since ruby 2.3, we can add the comment # frozen_string_literal: true at the start of the files to make all strings literals frozen by default. Since I'm using your gem on ruby 2.3, I thought it would be a great idea.

I think if we move forward with 2.3 minimum then yes, but even though support has ended in June I think we're ok being a bit behind. In my own org we're running a ton of Ruby 2.2 right now.
@ericproulx I think you should turn this PR into exactly what you propose and lets see what other maintainers say? @namusyaka for example?

Thanks for your contribution.
As the rails community have switched, I think it may be worth trying.
But I don't think this changes improve performance largely, and not only that, this has possibility of leading new painful for us.
I don't say that your change isn't reasonable however we should consider the switching timing and the sustainability of the grape for users.
At least, if we merge this change, we should forward to the new minor or major versions.

Is running rubocop -a ; rubocop --auto-gen-config a noop after this?

Let us know when this is ready to merge. Don't forget CHANGELOG. Maybe squash?

@namusyaka It does improve performance https://www.mikeperham.com/2018/02/28/ruby-optimization-with-one-magic-comment/ :slightly_smiling_face:

I'm closing this PR, I opened another one #1941


feat(meetings): add song selector for weekend schedule

:tada: This PR is included in version 2.130.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Change default font size of scale bar

Hello 👋🏼
I had a user notice that when the map initally loads at a zoom level of 3, the metric scale bar slightly cuts off the unit value of km. Please see screenshot below.

Since this is a scale bar and the width of it cannot be changed, I think the only solution must be to reduce the font size of the text slightly so that this doesn't occur.
It is an edge-case but noticeable enough that a user reported it. I have tested font size 10px on many different zoom levels and it seems to fix this issue.
I also searched for related issues to this and did not find any discussion on this previously. (Maybe it was decided not to be a big enough deal to fix?). Please let me know if I missed any background discussion on this issue.
Here is how it looks with the adjusted font size at the same zoom level:

Thanks

I don't think reducing the font size is the adequate answer - there's been a whole set of accessibility changes from 1.8 to 1.9, and this would go against.
If anything, there should be a minWidth option/value in L.Control.Scale, and just multiply the length and the measurement by a factor of 2 whenever the actual length is smaller.

Another option is to instead allow the text to overflow the container. I.e. remove:
https://github.com/Leaflet/Leaflet/blob/3cb07e4577b9527a3453db1ee619fc7d5e730907/dist/leaflet.css#L439
Some "other" maps do it too:

The text could however overlap the scale itself, potentially utilizing a small text-shadow for contrast could help, e.g. text-shadow: 0 1px #fff.

Closing per https://github.com/Leaflet/Leaflet/pull/8543#issuecomment-1272377313, feel free to continue the discussion.

Just chaning the size of the scale box will result in a not correct scale


linking fails when compiled with clang and -fsanitize=undefined

The int128 support in SimpleAtoi introduced in abseil/abseil-cpp@4b915e7 triggers this bug in Clang: __int128_t multiply with -fsanitize=undefined fails to link (undefined reference to __muloti4)
2020-11-05T15:34:46.1334065Z ERROR: /build/tmp/_bazel_envoybuild/b570b5ccd0454dc9af9f65ab1833764d/external/envoy/test/integration/BUILD:254:14: Linking of rule '@envoy//test/integration:hotrestart_test' failed (Exit 1): clang failed: error executing command
2020-11-05T15:34:46.1335612Z   (cd /build/tmp/_bazel_envoybuild/b570b5ccd0454dc9af9f65ab1833764d/execroot/envoy && \
2020-11-05T15:34:46.1336305Z   exec env - \
2020-11-05T15:34:46.1336703Z     BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 \
2020-11-05T15:34:46.1337306Z     BAZEL_LINKLIBS=-l%:libstdc++.a \
2020-11-05T15:34:46.1337873Z     BAZEL_LINKOPTS=-lm \
2020-11-05T15:34:46.1338251Z     CC=clang \
2020-11-05T15:34:46.1338572Z     CXX=clang++ \
2020-11-05T15:34:46.1338900Z     ENVOY_ASAN=1 \
2020-11-05T15:34:46.1339237Z     ENVOY_UBSAN_VPTR=1 \
2020-11-05T15:34:46.1339644Z     PATH=/usr/sbin:/usr/bin:/sbin:/bin:/opt/llvm/bin \
2020-11-05T15:34:46.1340034Z     PWD=/proc/self/cwd \
2020-11-05T15:34:46.1340759Z   /opt/llvm/bin/clang @bazel-out/k8-dbg/bin/external/envoy/test/integration/hotrestart_test-2.params)
2020-11-05T15:34:46.1341345Z Execution platform: @rbe_ubuntu_clang//config:platform
2020-11-05T15:34:46.1341798Z ld.lld: error: undefined symbol: __muloti4
2020-11-05T15:34:46.1342380Z >>> referenced by int128_have_intrinsic.inc:251 (external/com_google_absl/absl/numeric/int128_have_intrinsic.inc:251)
2020-11-05T15:34:46.1343451Z >>>               bazel-out/k8-dbg/bin/external/com_google_absl/absl/strings/_objs/strings/numbers.pic.o:(absl::operator*(absl::int128, absl::int128))
2020-11-05T15:34:46.1344374Z clang-10: error: linker command failed with exit code 1 (use -v to see invocation)

Steps to reproduce the bug
I stumble upon this issue when running Envoy's unit tests:

git clone https://github.com/envoyproxy/envoy.git && cd envoy
update Abseil to the latest master in bazel/repository_locations.bzl;
run ci/run_envoy_docker.sh 'ci/do_ci.sh bazel.compile_time_options'

What version of Abseil are you using?
The latest master.
What operating system and version are you using
Ubuntu 18.04.5 LTS
What compiler and version are you using?
clang version 10.0.0
What build system are you using?
bazel 3.6.0
Additional context
In the referenced LLVM bug it's suggested to link with compiler-rt which contains the implementation of __muloti4, but it's an optional LLVM component. Is it possible to include __muloti4 in Abseil?

I think we also ran into this problem. I think the better solution is to simply have Envoy build with -fsanitize-link-c++-runtime (--copt=-fsanitize-link-c++-runtime --linkopt=-fsanitize-link-c++-runtime) when using sanitizers.

The fix went into Envoy.

@derekmauro How did you solve this?

Add -fsanitize-link-c++-runtime to your compile/link options.

I have the same problem when building tesseract with sanitizers. Adding -fsanitize-link-c++-runtime does not help:
$ clang++ -g -O2 -D_GLIBCXX_DEBUG -fsanitize=fuzzer-no-link,address,undefined -fsanitize-address-use-after-scope -Wall -fsanitize-link-c++-runtime -std=c++20 -o baseapi_test unittest/baseapi_test-baseapi_test.o  ./.libs/libabseil.a ./.libs/libtesseract_training.a ./.libs/libgtest.a ./.libs/libgtest_main.a -lpthread ./.libs/libtesseract.a -lcurl -larchive -llept
/usr/bin/ld: /usr/bin/ld: DWARF error: could not find variable specification at offset 8ea
/usr/bin/ld: DWARF error: could not find variable specification at offset 95e
/usr/bin/ld: DWARF error: could not find variable specification at offset 9b8
/usr/bin/ld: DWARF error: could not find variable specification at offset a12
/usr/bin/ld: DWARF error: could not find variable specification at offset a55
/usr/bin/ld: DWARF error: could not find variable specification at offset a98
./.libs/libabseil.a(libabseil_la-numbers.o): in function `absl::lts_20210324::operator*(absl::lts_20210324::int128, absl::lts_20210324::int128)':
/home/stweil/src/github/tesseract-ocr/tesseract/bin/ndebug/clang,sanitize/../../../abseil/absl/numeric/int128_have_intrinsic.inc:251: undefined reference to `__muloti4'
/usr/bin/ld: /home/stweil/src/github/tesseract-ocr/tesseract/bin/ndebug/clang,sanitize/../../../abseil/absl/numeric/int128_have_intrinsic.inc:251: undefined reference to `__muloti4'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

-fsanitize-link-c++-runtime should only be necessary if you are building with clang. From what I've read it should be implied by clang++.
If you supply a full reproduction (meaning a full list of commands to get into the exact state your machine is in) someone might look into it.

Is a GitHub action sufficient? See workflow file and log output. Abseil is used for the Tesseract unit tests, so the build error happens in the step "Make and run Unit Tests".

@stweil - I played with the tesseract project as best I could. I was able to get by the error you are getting by adding 'LDFLAGS=-lc++ -lc++abi', but there are some other problems, which may or may not be related. You will have to install libc++ first to do this.
I don't know whether or not linking libc++ and libc++abi is safe in your current configuration. It looks like you are currently using libstdc++ for this build.
We do our sanitizer builds entirely with libc++. You can take a look at https://github.com/abseil/abseil-cpp/blob/master/ci/linux_clang-latest_libcxx_asan_bazel.sh if you need ideas.

I already tried linking with libc++ and added libc++abi now, too, but still get an undefined reference to __muloti4. My build environment is Debian bullseye.

Could you guys please share how did you address the problem? I have the same issue, though in the code unrelated to abseil.

upstream issue https://github.com/llvm/llvm-project/issues/16778
I found that passing -lubsan works in some cases too

or -rtlib=compiler-rt


dart2js typed_data toList method loses type information.

import "dart:typed_data";
main() {
  print(new Uint8List(1) is List<int>);  // true
  print(new Uint8List(1) is List<String>);  // false
  print(new Uint8List(1).toList() is List<int>);  // true
  print(new Uint8List(1).toList() is List<String>);  // true ??
}

The toList call should return a List<int>. It gets its behavior from UnmodifiableListBase<int> (as far as I can see) which should return an actual List<int>. It seems the generic type parameter to the underlying ListMixin gets lost somewhere along the way.
A similar problem occurs with "ab".codeUnits.toList() (which also has a generic mixin as the source of its toList method).

This is the same as issue #20085

@rakudrama fixed this when adding getRuntimeTypeArgumentIntercepted


[Collections] Collections.List should contain sub list behaves wrongly if the second list contains one empty string

I expect all of the following to raise AssertionError, as the second list is not a subset of the first:
from robot.libraries.Collections import Collections

second = [""]
Collections().list_should_contain_sub_list(["first"], second)

second = ["first", ""]
Collections().list_should_contain_sub_list(["first"], second)

second = ["", "first"]
Collections().list_should_contain_sub_list(["first"], second)

second = ["", ""]
Collections().list_should_contain_sub_list(["first"], second)

However, only the last one raises the error.

This is due to the keyword looking for differences like
diffs = ', '.join(str(item) for item in list2 if item not in list1)

and then reporting a failure if diffs isn't empty. The problem is that diffs is empty also if there's exactly one item that's not in the first list and that item happens to be empty. Easy to fix by first creating a list of differences, then checking is the list empty, and only after that format the error message if needed. Lists Should Be Equal uses similar construct, but there items in diffs cannot be empty and the same problem cannot occur with it. Changing it as well could be a good idea anyway.
When making changes to these keywords, it might be a good idea to change formatting the elements as well. Instead of using ', '.join(items) we could use our seq2str() utility function that adds quotes around items as well as and between the last to items.


Handle nil dockerImageManifest and nil dockerImageMetadata in openshift images

BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1405937
dockerImageManifest/dockerImageMetadata could be nil when parsing openshift image data.
@enoodle @simon3z Please review
@miq-bot add_label providers/containers, bug

@cben @zakiva

@enoodle I couldnt find the description of these fields under openshift, can you point me towards the types.go file that describes these?

@zeari https://github.com/openshift/origin/blob/master/pkg/image/api/v1/types.go

@zeari https://github.com/openshift/origin/blob/master/pkg/image/api/v1/types.go

So both are omitempty and could be nil. :+1:

@zeari Also dockerImageReference could be empty. actually all the fields can be empty except dockerImageLayers that we don't use currently anyway.

BTW if you need live data examples, here is another one from Einat's OSE 3.3:
https://gist.github.com/cben/dcbbebacc4b7c6588ef19ffbd6fb38bd
has dockerImageReference but no dockerImageManifest (and was failing at refresh_parser.rb:179:in `parse_openshift_image')

@enoodle @simon3z We shouldnt have empty ids, so this version should be ok.

id = openshift_image[:dockerImageReference] || openshift_image[:metadata][:name]
ref = ContainerImage::DOCKER_PULLABLE_PREFIX + id.to_s
In other words, make creation of the ref defensive.

@chessbyte I went with this option

@smarterclayton @deads2k can you confirm that Name in ObjectMeta although it can be empty (omitempty), that's the case only on the client requests (when generateName is used)?
When reading objects from the api-server we'll always get them with a valid (not-empty) Name?
Since all objects are identified by their name in the API I don't expect to be possible to ever retrieve objects with empty/missing names not even for a short time (e.g. generateName generates the name atomically before the object is ever exposed in the list of objects of that Type).

When reading objects from the api-server we'll always get them with a valid (not-empty) Name?

Correct.

Since all objects are identified by their name in the API I don't expect to be possible to ever retrieve objects with empty/missing names not even for a short time (e.g. generateName generates the name atomically before the object is ever exposed in the list of objects of that Type).

Correct.  Names are generated before the object is stored, so an API client can never observe an API object without a name.

@zeari overall looks good but I think we need to unit-test parse_openshift_image for these cases we're fixing.

@zeari overall looks good but I think we need to unit-test parse_openshift_image for these cases we're fixing.

Done.

ping @simon3z is there something missing here?

LGTM :+1:  cc @chessbyte
@miq-bot assign chessbyte

@miq-bot add_label euwe/yes
@miq-bot add_label blocker

Is it possible this could be a "bad" JSON payload? If so, does it need to be handled?

ping @Fryguy, I added a rescue on that to log an error and then continue without crashing the refresh.

@gtanzillo @blomquisg Can you guys take a look? :sweat_smile:

@chessbyte we need a backport for euwe.


ACAPY_PRESERVE_EXCHANGE_RECORDS should be false

Preserving exchange records will have cost implications.

The env config in cloudapi does have ACAPY_PRESERVE_EXCHANGE_RECORDS=false
Do we still need to update it in charts, or can we close it?


TabList: Initiate scroll on componentDidMount when defaultIndex is set

Hi,
Thanks for the really great plugin.
One slight issue I'm having is that when I mount the Tabs component with the prop defaultIndex set to the index of a Tab hidden by the container, it doesn't scroll to make it visible.
I tried to add the following code this.scrolltoIndex(this.props.activeIndex) in the componentDidMount method of the  TabList component., it seems to be scrolling a little, but not enough to show the active tab, I'm suspecting an issue with the container width calcuation.

Hi @fdidron
I will check the mounted width calculation.
Thanks for the report.

fix at #105


Add simple initial dockerfile

This Dockerfile allows building a clocker image once you build the dist tar.gz locally.
Once built you can just use docker run -d -p 8082:8081 -v ~/.brooklyn:/root/.brooklyn clocker to start clocker.
Few details:

I assume we want a docker build (and push to docker-hub) as part of our build instead.
The image is built on top of the super-light alpine distro hence the image size is relatively small.
brooklyn config has to be bind mounted to the clocker container to work

really like the idea of using alpine distro

this looks good to me. A simple README file would be a nice-to-have

@csabapalfi would it make sense to have clocker running on Docker which is able to provision the Docker Cloud on the Docker Engine where Clocker container is running?

Thanks @andreaturli. Yes, why not :) Or maybe I'd rather have my clocker containers running separately as part of management infrastructure. I'm guessing that's how most people use brooklyn as well.
Still in theory nothing is stopping you from doing that apart from the fact that clocker is able to replace failed docker hosts/containers but it can't do this for itself and requires a bit more attention than your service/app containers managed by it.
I'm new on the project so @grkvlt might have a better view on this :)

Added a docker-compose.yml, too so now it's even easier to start clocker if you have docker-compose installed: docker-compose run clocker <location> <network>

We can update the README separately, I think. I'll merge this now so more people can test it. Cheers :frog:


Remove unused stylelintconfig

Who is this for?
People who don't want redundant files lurking in the codebase
What is it doing for them?
Getting rid

Was it truly just for scss then?

It was, yeah. Stylelint can be integrated with styled components. Maybe we should think about enforcing some rules (or better yet following a standard?). But I think we should start over with a new config if we go down that path, rather than trying to unpick this one.

Maybe we should think about enforcing some rules

Some of them defo seemed valuable and I think yes - let's aim to code the same, right? Might suggest creating a ticket to remember it as a job/discuss it in next FE catchup


cmd/vet: know what builtin functions have no side effects

Reminder issue to continue the work in https://go-review.googlesource.com/c/go/+/79536.
For example, len and cap never have any side effects, and it would be useful to know that i == len(x) || i == len(x) is a suspicious expression.
More broadly, this could be extended to automatically detect what functions are free of side effects. But this would require having access to the full source with full type information, and may be complex and costly, so I'm not entirely sure it's a right fit for vet.
A simpler version of the above would be to also add standard library functions, such as strings.Contains or path.Join. I don't know if it is OK for vet to treat standard library packages differently, though.

I've abandoned the CL I had sent for this, since it required more work and it had gotten considerable merge conflicts. Perhaps someone else will pick up this issue in the future.


Add intellisense to the code in the web browser so I can go to the definitions of stuff.

Describe what is not working as expected.
If you are seeing an exception, include the full exceptions details (message and stack trace).
Exception message:
Stack trace:

Steps to reproduce
Include a complete code listing (or project/solution) that we can run to reproduce the issue.
Partial code listings, or multiple fragments of code, will slow down our response or cause us to push the issue back to you to provide code to reproduce the issue.
Console.WriteLine("Hello World!");

Further technical details
EF version: (found in project.csproj or packages.config)
Database Provider: (e.g. EntityFramework.SqlServer)
Operating system: (e.g. Windows 10)
IDE: (e.g. Visual Studio 2017 15.6)

Can not see how dispose contains rollback or commit by clicking on the dispose method... no definiton.  I don't want to hunt around all day trying to find how or where you implement dispose.  Just want to click on it in Code in Github and go directly to the definition.  Sheesh.  You are M$ for crying out loud.

EF Team Triage: This issue is not something that our team is planning to address in the EF6.x code base.  This does not mean that we would not consider a community contribution to address this issue.
Moving forwards, our team will be fixing bugs, implementing small improvements, and accepting community contributions to the EF6.x code base. Larger feature work and innovation will happen in the EF Core code base (https://github.com/aspnet/EntityFramework).
Closing an issue in the EF6.x project does not exclude us addressing it in EF Core. In fact, a number of popular feature requests for EF have already been implemented in EF Core (alternate keys, batching in SaveChanges, etc.).
BTW this is a canned response and may have info or details that do not directly apply to this particular issue. While we'd like to spend the time to uniquely address every incoming issue, we get a lot traffic on the EF projects and that is not practical. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we use canned responses for common triage decisions.


[BUG] Sprint Showcase - Logging work on recurring task reschedules it

Describe the bug
When logging work to a recurring task on the Sprint Showcase screen, it triggers the rescheduling logic.
To Reproduce
Steps to reproduce the behavior:

Go to 'Sprint Showcase'
Find any recurring task (schedule one if you haven't already)
Click on 'Log Work'
Enter any value and click submit
See scheduling logic

Expected behavior
Modal should close with updated "Actual" value

Simplified scheduling logic so this can no longer happen. Logging work will no longer create schedules.


Users without organization email are rejected on sign in.

I am trying to create a B2B Management portal. But for some reason this sample does not let me sign in with any email adress. For example<EMAIL_ADDRESS>does not work. Following error after sign-in:
AADSTS50020: User account<EMAIL_ADDRESS>from external identity provider 'live.com' is not supported for api version '2.0'. Microsoft account pass-thru users and guests are not supported by the tenant-independent endpoint. Trace ID: 2ad8bee0-d00a-4896-9907-b5271a113300 Correlation ID: 0ea84617-4aa1-4830-859f-6f418252765e Timestamp: 2017-10-03 15:35:22Z
I changed the authority to only allow users from my tenant (requirement):
https://login.microsoftonline.com/tenant.onmicrosoft.com/v2.0
This is the only change I made. Using "common" will not work since that lets anyone in.

If you switch to the tenant-specific authority, then only accounts from that tenant domain will be allowed to sign in.

@jamescro Thanks. So I cannot use it for a B2B scenario where there are guest users in that tenant? They do not count as "part of the tenant"?
because the<EMAIL_ADDRESS>I am talking about above is in the tenant. Then is this not possible with MSAL?

Thanks for the extra information. I'll investigate and report back after I know some more about your specific use case.

Also, since this isn't directly related to the sample, could you post this question to Stack Overflow, and tag the question with [microsoftgraph]?

@jamescro Done. Hopefully someone can figure this out. Really weird if you can't use new tech (B2B) with other new tech. Don't want to use out-dated ADAL and AAD Graph

Thanks very much. Could you post the SO URL here so that I can track it as well?

https://stackoverflow.com/questions/46553313/b2b-users-cannot-sign-in-to-tenant-using-v2-0-endpoint-msal-auth-flow

Closing since it looks like this has been resolved on SO.


Roads and Address monthly request (3 of 3)

Benefit Hypothesis
Acceptance Criteria

Data requests went out to Box Elder, Iron and Uintah on 09/0502023.


Android Example SurfaceTextureRenderer

i've build the app with sdk = 23 and ndk = 21 and installed the apk on a nexus 4.
sometimes it works but often the camera preview is visible but without results on the top.
looking into Android Monitor, i get the following error message in case when the app doesn't work:
12-17 19:22:08.802 30054-30283/org.tensorflow.demo E/BufferQueueProducer: [unnamed-30054-2] dequeueBuffer: BufferQueue has been abandoned
12-17 19:22:08.802 30054-30283/org.tensorflow.demo E/Legacy-CameraDevice-JNI: LegacyCameraDevice_nativeProduceFrame: Error while producing frame No such device (-19).
12-17 19:22:08.803 30054-30283/org.tensorflow.demo W/SurfaceTextureRenderer: Surface abandoned, dropping frame.
                                                                             android.hardware.camera2.legacy.LegacyExceptionUtils$BufferQueueAbandonedException
                                                                                at android.hardware.camera2.legacy.LegacyExceptionUtils.throwOnError(LegacyExceptionUtils.java:64)
                                                                                at android.hardware.camera2.legacy.LegacyCameraDevice.produceFrame(LegacyCameraDevice.java:583)
                                                                                at android.hardware.camera2.legacy.SurfaceTextureRenderer.drawIntoSurfaces(SurfaceTextureRenderer.java:752)
                                                                                at android.hardware.camera2.legacy.GLThreadManager$1.handleMessage(GLThreadManager.java:105)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:98)
                                                                                at android.os.Looper.loop(Looper.java:135)
                                                                                at android.os.HandlerThread.run(HandlerThread.java:61)

Is this with a recent version of the repo?
Prior to commit
https://github.com/tensorflow/tensorflow/commit/cd53f3c3302c9312c1840389a9988a879b8b9dd5#diff-806cae37e77a0337eada26c104bc1c23 this would be possible due to a GC'd Surface resource.

@andrewharp ok, i've rebuild with the latest pull, seems to be resolved. thx


Cables draining energy/Dynamic Tanks empty when leaving/entering world.

Whenever I connect cables to my Big Reactor reactor it appears to instantly drain the reactor of all power and does not allow the reactor to build up RF. It continuously drains it so fast that the reactor is unable to ever generate a buffer. I disconnected all machines, leaving only the cables, and it still drained the power out of the reactor. I let the reactor run for ten minutes and the buffer did not fill at all.
http://imgur.com/a/qgYvg
Additionally Dynamic Tanks appear to have their inventories wiped when you leave the world.
http://imgur.com/a/Jlb62
Please let me know if I can provide more information to assist. This is by far my favorite mod.
EDIT: Running FTB Infinity.

The first issue you mentioned is simply due to Universal Cables now having a much greater energy buffer than they did before.
As for the second issue, it is currently fixed in development :)

How big of a buffer do they have?
I've been letting it run for a half hour now and it hasn't started charging the item as seen below.
http://imgur.com/a/hZVve

Huh, something is wrong.  Right click with the cable network with a network reader if you don't mind.

http://imgur.com/H1Bi6l2
Huh, that's a lot of power needed.

Happens when taking a portal to the nether and back, or traveling a long ways away and coming back.


Populate grid subsets for core, sol, and divertor cells

It would be useful to be able to easily select cells that are in the core (within the separatrix, in the lobe that contains the magnetic axis (the private flux region could also be considered to be within the separatrix, but it doesn't count for this purpose)).
While doing this, might as well fill in the scrape-off layer (outside separatrix but above X-point; just use the mesh boundaries that pass through the X-point) and the divertor (below the X-point).
These are the subsets that contain groups of cells to define volumes (or areas if we're ignoring toroidal extent).

[x] core: 22 (cells inside the active separatrix)
[x] sol: 23 (cells defining the main SOL outside the divertor regions)
[x] outer_divertor: 24 (cells defining the outer divertor region)
[x] inner_divertor: 25 (cells defining the inner divertor region)

Completed.


Git 2.24

Checklist

[x] Used a fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

This would supersede #68.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

Thanks!

Glad to help! Quick question: why did you also merge #68? I thought that as soon as it would be merged it would start building and uploading the package to conda-forge (which would fail because of the missing hashes)...
Is it because you merged this one immediately after so the package generation from #68 got cancelled somehow?

because all of the commits in 68 are in this pr, 68 is counted as merged by github too