Error when running script: VM173:122 Uncaught TypeError: entries is not iterable     at log_tweets (:121:19)     at :264:15

When the script is run in the console, it returns with the following error:
VM173:122 Uncaught TypeError: entries is not iterable     at log_tweets (<anonymous>:121:19)     at <anonymous>:264:15
Below is a copy of the script as I had run it, with my own values removed:
https://pastebin.com/0F61S1LE
All of my inputs corresponded to the IDs specified in the comments. Beyond that, no changes have been made to the script. Replicated 10 times on Chromium 116.0.5845.110 on Ubuntu 22.04.

When the script is run in the console, it returns with the following error:
VM173:122 Uncaught TypeError: entries is not iterable at log_tweets (<anonymous>:121:19) at <anonymous>:264:15
Below is a copy of the script as I had run it, with my own values removed:
https://pastebin.com/0F61S1LE
All of my inputs corresponded to the IDs specified in the comments. Beyond that, no changes have been made to the script. Replicated 10 times on Chromium 116.0.5845.110 on Ubuntu 22.04.

The pastebin page says : This page is no longer available. It has either expired, been removed by its creator, or removed by one of the Pastebin staff.

When the script is run in the console, it returns with the following error:
VM173:122 Uncaught TypeError: entries is not iterable at log_tweets (<anonymous>:121:19) at <anonymous>:264:15
Below is a copy of the script as I had run it, with my own values removed:
https://pastebin.com/0F61S1LE
All of my inputs corresponded to the IDs specified in the comments. Beyond that, no changes have been made to the script. Replicated 10 times on Chromium 116.0.5845.110 on Ubuntu 22.04.

The pastebin page says : This page is no longer available. It has either expired, been removed by its creator, or removed by one of the Pastebin staff.

Apologies. Idk what happened there. Pasting it directly then.
var authorization = "MYAUTHVALUE"; // replace by authorization value
var ua = navigator.userAgentData.brands.map(brand => `"${brand.brand}";v="${brand.version}"`).join(', ');
var client_tid = "MYTRANSACTIONID"; // replace by X-Client-Transaction-Id value
var client_uuid = "MYUUID"; // replace by X-Client-Uuid value
var csrf_token = getCookie("ct0");
var random_resource = "uYU5M2i12UhDvDTzN6hZPg";
var tweets_to_delete = []
var user_id = getCookie("twid").substring(4);
var username = "MYUSERNAME" // replace with your username
var delete_options = {
	/* delete_message_with_url_only: self explanatory, but will delete tweets that contain links */
	"delete_message_with_url_only":false,
	/*
		match_any_keywords : if any of the strings is found, delete the tweet. It's OR not AND. Example : ["hello", "hi", "yo"]
		if no words are given, it will match all. Can be combined with delete_message_with_url_only
		links shouldn't be used as keywords.
	*/
	"match_any_keywords":[""],
	/*
		tweets_to_ignore : give all the tweet ids that you want to keep.
		To find the id of the tweet, click on it, then copy the number you find in the url
		it looks like that : https://twitter.com/USERNAME/status/1695001000000000, the id here is<PHONE_NUMBER>000000
		It expects strings, so add the double-quotes around it, like that : ["1695001000000000"], you can give multiple ids ofc it's an array
	*/
	"tweets_to_ignore":[
		"00000000000000", // these
		"111111111111111", // ids
		"222222222222"] // are examples, you can safely keep them or replace them by your own ids.
}

function buildAcceptLanguageString() {
	const languages = navigator.languages;

	// Check if we have any languages
	if (!languages || languages.length === 0) {
		return "en-US,en;q=0.9"; // Default value if nothing is available
	}

	let q = 1;
	const decrement = 0.1;

	return languages.map(lang => {
		if (q < 1) {
			const result = `${lang};q=${q.toFixed(1)}`;
			q -= decrement;
			return result;
		}
		q -= decrement;
		return lang;
	}).join(',');
}

function getCookie(name) {
	const value = `; ${document.cookie}`;
	const parts = value.split(`; ${name}=`);
	if (parts.length === 2) return parts.pop().split(';').shift();
}

async function sleep(ms) {
	return new Promise(resolve => setTimeout(resolve, ms));
}

async function fetch_tweets(cursor, retry = 0) {
	let count = "20";
	let final_cursor = cursor ? `%22cursor%22%3A%22${cursor}%22%2C` : "";
	var base_url = `https://twitter.com/i/api/graphql/${random_resource}/UserTweetsAndReplies`;

	var variable = `?variables=%7B%22userId%22%3A%22${user_id}%22%2C%22count%22%3A${count}%2C${final_cursor}%22includePromotedContent%22%3Atrue%2C%22withCommunity%22%3Atrue%2C%22withVoice%22%3Atrue%2C%22withV2Timeline%22%3Atrue%7D`;
	var feature = `&features=%7B%22rweb_lists_timeline_redesign_enabled%22%3Atrue%2C%22responsive_web_graphql_exclude_directive_enabled%22%3Atrue%2C%22verified_phone_label_enabled%22%3Afalse%2C%22creator_subscriptions_tweet_preview_api_enabled%22%3Atrue%2C%22responsive_web_graphql_timeline_navigation_enabled%22%3Atrue%2C%22responsive_web_graphql_skip_user_profile_image_extensions_enabled%22%3Afalse%2C%22tweetypie_unmention_optimization_enabled%22%3Atrue%2C%22responsive_web_edit_tweet_api_enabled%22%3Atrue%2C%22graphql_is_translatable_rweb_tweet_is_translatable_enabled%22%3Atrue%2C%22view_counts_everywhere_api_enabled%22%3Atrue%2C%22longform_notetweets_consumption_enabled%22%3Atrue%2C%22responsive_web_twitter_article_tweet_consumption_enabled%22%3Afalse%2C%22tweet_awards_web_tipping_enabled%22%3Afalse%2C%22freedom_of_speech_not_reach_fetch_enabled%22%3Atrue%2C%22standardized_nudges_misinfo%22%3Atrue%2C%22tweet_with_visibility_results_prefer_gql_limited_actions_policy_enabled%22%3Atrue%2C%22longform_notetweets_rich_text_read_enabled%22%3Atrue%2C%22longform_notetweets_inline_media_enabled%22%3Atrue%2C%22responsive_web_media_download_video_enabled%22%3Afalse%2C%22responsive_web_enhance_cards_enabled%22%3Afalse%7D`;
	var final_url = `${base_url}${variable}${feature}`;

	const response = await fetch(final_url, {
		"headers": {
			"accept": "*/*",
			"accept-language": buildAcceptLanguageString(),
			"authorization": authorization,
			"content-type": "application/json",
			"sec-ch-ua": ua,
			"sec-ch-ua-mobile": "?0",
			"sec-ch-ua-platform": "\"Windows\"",
			"sec-fetch-dest": "empty",
			"sec-fetch-mode": "cors",
			"sec-fetch-site": "same-origin",
			"x-client-transaction-id": client_tid,
			"x-client-uuid": client_uuid,
			"x-csrf-token": csrf_token,
			"x-twitter-active-user": "yes",
			"x-twitter-auth-type": "OAuth2Session",
			"x-twitter-client-language": "fr"
		},
		"referrer": `https://twitter.com/${username}/with_replies`,
		"referrerPolicy": "strict-origin-when-cross-origin",
		"body": null,
		"method": "GET",
		"mode": "cors",
		"credentials": "include"
	});

	if (!response.ok) {
		if (response.status === 429) {
			console.log("Rate limit reached. Waiting 1 minute")
			await sleep(1000 * 60);
			return fetch_tweets(cursor, retry + 1)
		}
		if (retry == 5) {
			throw new Error("Max retries reached")
		}
		console.log(`(fetch_tweets) Network response was not ok, retrying in ${10 * (1 + retry)} seconds`);
		console.log(response.text())
		await sleep(10000 * (1 + retry));
		return fetch_tweets(cursor, retry + 1)
	}
	const data = await response.json();
	const entries = data["data"]["user"]["result"]["timeline_v2"]["timeline"]["instructions"][cursor ? 0 : 1]["entries"];

	console.log(entries);
	return entries;
}

async function log_tweets(entries) {
	for (let item of entries) {
		if (item["entryId"].startsWith("profile-conversation") || item["entryId"].startsWith("tweet-")) {
			findTweetIds(item)
		}
		else if (item["entryId"].startsWith("cursor-bottom") && entries.length > 2) {
			let cursor_bottom = item["content"]["value"];

			return cursor_bottom;
		}
	}
	return "finished"
}

function check_keywords(text) {
	if (delete_options["match_any_keywords"].length == 0) {
		return true
	}
	for (let word of delete_options["match_any_keywords"]) {
		if (text.includes(word))
			return true
	}
	return false
}

function check_filter(tweet) {
	if (tweet['legacy'].hasOwnProperty('id_str')
		&& ( delete_options["tweets_to_ignore"].includes(tweet['legacy']["id_str"]) || delete_options["tweets_to_ignore"].includes( parseInt(tweet['legacy']["id_str"]) ) )) {
		return false
	}
	if (delete_options["delete_message_with_url_only"] == true)
	{
		if (tweet['legacy'].hasOwnProperty('entities') && tweet['legacy']["entities"].hasOwnProperty('urls') && tweet['legacy']["entities"]["urls"].length > 0
			&& check_keywords(tweet['legacy']['full_text'])) {
			return true
		}
		return false
	}
	if (check_keywords(tweet['legacy']['full_text']))
		return true
	return false
}

function check_tweet_owner(obj, uid) {
	if (obj.hasOwnProperty('legacy') && obj['legacy'].hasOwnProperty('retweeted') && obj['legacy']['retweeted'] === true)
		return false
	if (obj.hasOwnProperty('user_id_str') && obj['user_id_str'] === uid)
		return true;
	else if (obj.hasOwnProperty('legacy') && obj['legacy'].hasOwnProperty('user_id_str') && obj['legacy']['user_id_str'] === uid)
		return true;
	return false
}

function tweetFound(obj) {
	console.log(`found ${obj['legacy']['full_text']}`)
}

function findTweetIds(obj) {
	function recurse(currentObj) {
		if (typeof currentObj !== 'object' || currentObj === null) {
			return;
		}

		if (currentObj['__typename'] === 'TweetWithVisibilityResults' && currentObj.hasOwnProperty('tweet')
			&& check_tweet_owner(currentObj['tweet'], user_id) && check_filter(currentObj['tweet'])) {
			tweets_to_delete.push(currentObj['tweet']['id_str'] || currentObj['tweet']['legacy']['id_str']);
			tweetFound(currentObj['tweet'])
		}

		else if (currentObj.hasOwnProperty('__typename') && currentObj['__typename'] === 'Tweet'
			&& check_tweet_owner(currentObj, user_id) && check_filter(currentObj)) {
			tweets_to_delete.push(currentObj['id_str'] || currentObj['legacy']['id_str']);
			tweetFound(currentObj)
		}

		for (let key in currentObj) {
			if (currentObj.hasOwnProperty(key)) {
				recurse(currentObj[key]);
			}
		}
	}

	recurse(obj);
}

async function delete_tweets(id_list) {
	var delete_tid = "LuSa1GYxAMxWEugf+FtQ/wjCAUkipMAU3jpjkil3ujj7oq6munDCtNaMaFmZ8bcm7CaNvi4GIXj32jp7q32nZU8zc5CyLw"
	var id_list_size = id_list.length
	var retry = 0

	for (let i = 0; i < id_list_size; ++i) {
		const response = await fetch("https://twitter.com/i/api/graphql/VaenaVgh5q5ih7kvyVjgtg/DeleteTweet", {
			"headers": {
				"accept": "*/*",
				"accept-language": buildAcceptLanguageString(),
				"authorization": authorization,
				"content-type": "application/json",
				"sec-ch-ua": ua,
				"sec-ch-ua-mobile": "?0",
				"sec-ch-ua-platform": "\"Windows\"",
				"sec-fetch-dest": "empty",
				"sec-fetch-mode": "cors",
				"sec-fetch-site": "same-origin",
				"x-client-transaction-id": delete_tid,
				"x-client-uuid": client_uuid,
				"x-csrf-token": csrf_token,
				"x-twitter-active-user": "yes",
				"x-twitter-auth-type": "OAuth2Session",
				"x-twitter-client-language": "fr"
			},
			"referrer": `https://twitter.com/${username}/with_replies`,
			"referrerPolicy": "strict-origin-when-cross-origin",
			"body": `{\"variables\":{\"tweet_id\":\"${id_list[i]}\",\"dark_request\":false},\"queryId\":\"VaenaVgh5q5ih7kvyVjgtg\"}`,
			"method": "POST",
			"mode": "cors",
			"credentials": "include"
		});
		if (!response.ok) {
			if (response.status === 429) {
				console.log("Rate limit reached. Waiting 1 minute")
				await sleep(1000 * 60);
				i -= 1;
				continue
			}
			if (retry == 5) {
				throw new Error("Max retries reached")
			}
			console.log(response.text())
			console.log(`(delete_tweets) Network response was not ok, retrying in ${10 * (1 + retry)} seconds`);
			i -= 1;
			await sleep(10000 * (1 + retry));
			continue
		}
		retry = 0
		console.log(`${i}/${id_list_size}`)
		await sleep(100);
	}
}

var next = null
var entries = undefined

while (next != "finished") {
	entries = await fetch_tweets(next);
	next = await log_tweets(entries);
	await delete_tweets(tweets_to_delete)
	tweets_to_delete = []
	await sleep(3000);
}

console.log("DELETION COMPLETE (if error happened before this may be not true)")

When the script is run in the console, it returns with the following error:
VM173:122 Uncaught TypeError: entries is not iterable at log_tweets (<anonymous>:121:19) at <anonymous>:264:15
Below is a copy of the script as I had run it, with my own values removed:
https://pastebin.com/0F61S1LE
All of my inputs corresponded to the IDs specified in the comments. Beyond that, no changes have been made to the script. Replicated 10 times on Chromium 116.0.5845.110 on Ubuntu 22.04.

The pastebin page says : This page is no longer available. It has either expired, been removed by its creator, or removed by one of the Pastebin staff.

Apologies. Idk what happened there. Pasting it directly then.

Give me 10 minutes while I try on my ubuntu virtualbox, maybe it's that.
Also, you did add the "Bearer" part in the beginning of the authorization key ?

When the script is run in the console, it returns with the following error:
VM173:122 Uncaught TypeError: entries is not iterable at log_tweets (<anonymous>:121:19) at <anonymous>:264:15
Below is a copy of the script as I had run it, with my own values removed:
https://pastebin.com/0F61S1LE
All of my inputs corresponded to the IDs specified in the comments. Beyond that, no changes have been made to the script. Replicated 10 times on Chromium 116.0.5845.110 on Ubuntu 22.04.

The pastebin page says : This page is no longer available. It has either expired, been removed by its creator, or removed by one of the Pastebin staff.

Apologies. Idk what happened there. Pasting it directly then.

Give me 5 minutes while I try on my ubuntu virtualbox, maybe it's that. Also, you did add the "Bearer" part in the beginning of the authorization key ?

Yes, I included "bearer". I also triple-checked all my values to make sure I'd pasted them properly. I tried several releases of the script just to be sure as well.

When the script is run in the console, it returns with the following error:
VM173:122 Uncaught TypeError: entries is not iterable at log_tweets (<anonymous>:121:19) at <anonymous>:264:15
Below is a copy of the script as I had run it, with my own values removed:
https://pastebin.com/0F61S1LE
All of my inputs corresponded to the IDs specified in the comments. Beyond that, no changes have been made to the script. Replicated 10 times on Chromium 116.0.5845.110 on Ubuntu 22.04.

The pastebin page says : This page is no longer available. It has either expired, been removed by its creator, or removed by one of the Pastebin staff.

Apologies. Idk what happened there. Pasting it directly then.

Give me 5 minutes while I try on my ubuntu virtualbox, maybe it's that. Also, you did add the "Bearer" part in the beginning of the authorization key ?

Yes, I included "bearer". I also triple-checked all my values to make sure I'd pasted them properly. I tried several releases of the script just to be sure as well.

Before the error message the script should have printed something on the console can you show me ? It may be "undefined" or an object

When the script is run in the console, it returns with the following error:
VM173:122 Uncaught TypeError: entries is not iterable at log_tweets (<anonymous>:121:19) at <anonymous>:264:15
Below is a copy of the script as I had run it, with my own values removed:
https://pastebin.com/0F61S1LE
All of my inputs corresponded to the IDs specified in the comments. Beyond that, no changes have been made to the script. Replicated 10 times on Chromium 116.0.5845.110 on Ubuntu 22.04.

The pastebin page says : This page is no longer available. It has either expired, been removed by its creator, or removed by one of the Pastebin staff.

Apologies. Idk what happened there. Pasting it directly then.

Give me 5 minutes while I try on my ubuntu virtualbox, maybe it's that. Also, you did add the "Bearer" part in the beginning of the authorization key ?

Yes, I included "bearer". I also triple-checked all my values to make sure I'd pasted them properly. I tried several releases of the script just to be sure as well.

Before the error message the script should have printed something on the console can you show me ? It may be "undefined" or an object. I tried on Chrome on Ubuntu and it did just fine so it's not that

it says "undefined", yes.

When the script is run in the console, it returns with the following error:
VM173:122 Uncaught TypeError: entries is not iterable at log_tweets (<anonymous>:121:19) at <anonymous>:264:15
Below is a copy of the script as I had run it, with my own values removed:
https://pastebin.com/0F61S1LE
All of my inputs corresponded to the IDs specified in the comments. Beyond that, no changes have been made to the script. Replicated 10 times on Chromium 116.0.5845.110 on Ubuntu 22.04.

The pastebin page says : This page is no longer available. It has either expired, been removed by its creator, or removed by one of the Pastebin staff.

Apologies. Idk what happened there. Pasting it directly then.

Give me 5 minutes while I try on my ubuntu virtualbox, maybe it's that. Also, you did add the "Bearer" part in the beginning of the authorization key ?

Yes, I included "bearer". I also triple-checked all my values to make sure I'd pasted them properly. I tried several releases of the script just to be sure as well.

Before the error message the script should have printed something on the console can you show me ? It may be "undefined" or an object. I tried on Chrome on Ubuntu and it did just fine so it's not that

it says "undefined", yes.

You do have tweets to delete right ? If you have 0 tweets and 0 retweets that may explain why

Let's try something else.
In the function fetch_tweets() add console.log(data) at the end right before the return


Create a prototype to display temperature and humidity on OLED screen

Using the following parts:

DHT22 sensor
Arduino Uno
128x64 SSD1306 OLED screen

Build the prototype which measures temperature and humidity and displays them on the screen

0a5bbb30c2429620d27c1880bb0b16b8a11bd08c commit closes the issue: uses adafruit set of libraries.
On a side note, combination of u8g2 and grove sensor libraries does not work, reading DHT22 sensor fails. Follow-up issue #3 is created to take a deeper look into that.


pixi as a main development driver and pixi env -e behavior

Problem description
Right now pixi as is, is great for reproducing work and environments and to be used in the CI. However, it's not suitable for everyday development and a part of that is a lack of ability to manipulate and persist an environment.
pixi env -e as is, activates an environment whose path includes a hash, which is quite confusing and not memorable, therefore not useful as remembering which env one is using. Also, the behavior of installing a package in that env, and then deactivating and reactivating it is somewhat unclear. There's --freeze which also doesn't make it clear what happens the next time if the user forgets to have that flag when activating and env.
It would be nice to have a way for using pixi that enables the developer to work with environments, somewhat similar to how one uses an environment w/o pixi.
cc @glemaitre

Hi @adrinjalali,
I'm not sure what you are requesting, do you mean pixi shell --environment <environment_name> with pixi env.
Also I'm not aware of a --freeze flag in pixi.
I believe you want to be able to run pixi install in a pixi shell which would also re-activate the pixi shell, right?

I'll try to describe some potential use cases that we encountered when developing that require a bit more flexibility than the CI case.
One use case is related to being able to install a library without necessarily impacting the lock file.
Installing a dependency tracked in the lock file
When getting a bug fix report, one might need to switch the version of a dependency. The version is therefore not necessarily linked to a specific environment. One potential flow would be:
pixi shell -e dev
conda install scikit-learn~=1.4.0  # we might install via `pip` as well
pytest my_package

While deactivating/re-activating the environment, I would expect either (or both) of the following behaviors:

Reinitialize the environment with package versions according to the lock file.
Reactivate the previous environment (somehow, I would have expected --no-lockfile-update to do something like that reading the docstring).

Current state:
Currently, it looks like you can have conda or pip as dependencies and thus trigger an install. However, I'm not really sure that this is intended. Indeed, while it looks like reactivating the environment triggers case 1 above, it looks like we break some metadata because triggering any new install will also trigger previous package changes. For instance, if we intend to execute a new install in a new shell such as:
pixi shell -e dev
conda install scipy~=1.13.1

We will also get a downgrade of:
The following packages will be DOWNGRADED:

  scikit-learn                        1.5.2-py311h9e23f0f_1 --> 1.4.2-py311hbfb48bc_1
  scipy                              1.14.1-py311h2929bc6_0 --> 1.13.1-py311hceeca8c_0

Installing a new dependency without tracking it in the lock file
Sometimes, one would like to install a dependency that should not be tracked with the lock file, e.g., ipython.
Current state:
Similarly to above, you can intend to install an additional package if pip or conda is a dependency.
pixi shell -e dev
conda install ipython

The interesting part here is that while installed with conda, after reactivating the environment, the package is still present and noted as a pypi package.
Installing several packages from source
Sometimes, we end up installing several libraries from source and switching branches locally. While pixi looks more adequate to handle per-project dependencies, I'm wondering if you have any vision on how to handle ecosystem dependencies.
From my thoughts, it could look like something as proposed here: https://github.com/rgommers/pixi-dev-scipystack but where I would expect to have a top-level pixi.toml where I could easily switch versions. I did not yet have time to play with such a setting, though.
Conclusions
I completely agree that any of the use cases above is just stretching the scope of what pixi currently is, but we thought that we could bring back some feedback to know what you think about it.

Thank you for the great write up @glemaitre. This is really good food for thought! I'll definitely pass it to the team!
We've been pretty conservative with features that allow you to create "broken" environments but "Pixi is build for development" so we need to find a way to serve as much users as possible.
I would like to get some users stories from your input. Would these be correct:

As a pixi user I want to install an single package into a given environment without modifying the lockfile, and pixi should leave that environment modification alone until it tell it to change, so that I can test with that specific package.
As a pixi users I want multiple source dependencies on which I'm all developing to be installed, so that I can test a full dev build in my main environment.

If these stories fit the need, we can start brainstorming implementation ideas.

Those user stories sound good to me. What I would add is:

as a user I'd like to understand which environment I'm dealing with when interactively working with environments

I have to double check my zsh config but I don' get the right info:

As a pixi user I want to install an single package into a given environment without modifying the lockfile, and pixi should leave that environment modification alone until it tell it to change, so that I can test with that specific package.

I would amend slightly this user story mentioning that I have the option to "leave the environment or to completely reset it".
Otherwise, both user stores look the good.
@adrinjalali might actually be a bug :). I'll investigate more.

I've run into these workflow issues as well, but have come to different conclusions. To start with, an observation that if you're trying to use a conda-like workflow with imperative temporary modifications to an environment, you're really trying to fight one of the most fundamental design decisions in Pixi - from https://pixi.sh/latest/features/environment/#structure:
Pixi will always make sure the environment is in sync with the pixi.lock file. If this is not the case then all the commands that use the environment will automatically update the environment, e.g. pixi run, pixi shell.
I'd say that the real user story for the first two items is actually not "let me do the conda-like thing" but "How can I change a version of a dependency or temporarily add a new dependency easily, in order to effectively debug an issue reported against my library for that specific version of the dependency?"
I've so far found it not too onerous to just modify pixi.toml to the exact dependency version needed, and then simply not commit that modification. Doesn't that seem better than trying something like pixi shell -e dev && conda install scikit-learn~=1.4.0?

Taking a step back, there are two types of debugging exercises here I think:

It's possible to (easily) declaratively describe the desired state of an environment
One really needs to do something hacky and non-reproducible (e.g., apply a patch to some installed version of a dependency).

The first two examples in @glemaitre's first post are of type (1). I'd say that Pixi currently supports this fine; working declaratively isn't really harder than working imperatively in a throw-away conda env with conda/mamba/micromamba.
The third example (install multiple package from source) is harder, as is my "apply a patch" example. For the former, perhaps the workspace concept can help once that lands. For the inherently type (2) cases though, I've concluded that that is where I still need to keep one of conda/mamba/micromamba around. That isn't even a problem, except for one thing: pixi tasks can no longer be used, because they will activate another environment. I can use spin just fine; if the logic you need is actually in a pixi task though, it could be quite handy to have a pixi run foo --no-env type flag.

Thanks @rgommers for the feedback. I second the reformulation :)

I'd say that Pixi currently supports this fine; working declaratively isn't really harder than working imperatively in a throw-away conda env with conda/mamba/micromamba

I think that I slightly disagree with a "it depends". If I'm the target user then I completely agree because I know how to use pixi (or enough to get around) and find my way around the gigantic pyproject.toml file. If the target user is however someone new to open-source or the project, then the entry barrier is still high because we request to know git + some tooling. The imperative way would be more familiar because on how you get introduced to the Python stack.
Apart from this point, I'm really aligned with @rgommers thought and thinking that the "workspace" concept might seem the most natural way to deal with multiple from-source install.

If the target user is however someone new to open-source or the project, [..] The imperative way would be more familiar because on how you get introduced to the Python stack.

Yeah fair enough, newer devs will struggle. I'd say both are probably fairly hard for newcomers though. The imperative way is to do conda install scikit-learn=1.4.0 and then try to go back to the old state with a next conda install scikit-learn=1.x.y. That doesn't work though, and environments used that way degrade over time. There's actually no good way to prevent that, because the imperative way is non-reversible, unlike the pixi way. So the old way you just end up YOLO'ing until you have to just delete and recreate the env. I'd argue it's cleaner/better to do it the pixi way, and address the lack of familiarity through good docs that addressing the user story explicitly.

and find my way around the gigantic pyproject.toml file.

That's hard indeed. I'd document it only via pixi add though, not via manual edits. You can update an existing dependency fairly easily that way. The most error-prone part is probably the "don't commit these changes and know how to undo them" git fluency issue.

Something that makes me quite uneasy about this is that doing a pixi add kinda thing, would result in something which might end up in the repo / PR. A workflow editing environments shouldn't modify things on the repo.
There's this coupling of files on the repo and changes to the local workspace env which I'd like not to have.

There's this coupling of files on the repo and changes to the local workspace env which I'd like not to have.

This is kind of the main idea of the pixi design, unless you know exactly what you're doing it's often easier to ctrl+z a manifests/lock-file then it is to revert installed environments. I understand the feeling and have had similar feedback before (when we build a similar tool). So though I believe we should look into making pixi as comfortable as possible I want to really guard against implementing "foot guns" that can create broken environments without a clear input.

People working on the same project, have vastly different environments, and that's a good thing. For instance, I might want to have mkl and another person might not even have the hardware to support it, or simply doesn't want to bother with downloading that huge package.
Or I might not want to bother with a lot of optional dependencies and have those tests skipped, while others might be working on them.
Having different environments on different contributor machines is a good thing, since it uses the diversity of the contributor base to test the code base against a larger pool of potential environments out there used by our end users.
This means the environments shouldn't be strictly dictated by the repo itself, and contributors should have flexibility on what they do with their envs.
This means we'd need to not have a pixi config on the repo and have it git ignored. Or have a way to ignore the repo's pixi config and each user to have a pixi config per project in their home folder somewhere and tell pixi to use those instead. This doesn't sound ideal to me.

People working on the same project, have vastly different environments, and that's a good thing

It's not unambiguously a good thing, it has important pros and cons. A pro is what you say: more testing in varied envs. Cons are: it's much harder to set up such varied envs or write good contributor docs for it, for newer contributors there's more breakage when all they want to do is work on a pure Python PR, etc.
I think Pixi fixing the cons above is a big gain. There will still be users wanting to use venvs, or conda/mamba, or spack, or docker, or whatever, so the pro you describe won't disappear completely just by adopting Pixi.
My recommendation would be to set things up so that using Pixi is a good default for newcomers to your project, but optional. Turning Pixi into working just like Conda is kinda what you're asking for, but can't really be the right answer.
I actually quite like the pixi and spin layering, it seems to work well for working on NumPy and SciPy. I can default to pixi, and when I hit something that requires a conda-style activated environment, I activate a conda env and simply invoke task names with spin (e.g., I then do spin build rather than pixi run build). What it requires is keeping the bulk of the task logic in spin, and make the pixi tasks a thin one-liner that calls the corresponding spin command.

I guess a difference between numpy and scikit-learn for instance, is that in numpy you don't really "install" the package in an environment, and you always have to do something (setting some paths) to use it, which spin does for you. In scikit-learn, we have a normal editable installation of the package, and we run all commands like pytest, sphinx, etc easily as usual. So we actually use the environment to deal with the development.
When I work on numpy, I always have to run spin, and at the point that becomes your workflow, then changing spin to pixi and having it handle your environment as well doesn't change much I guess. For me, I do a lot of simple python and ipython manual testing in REPL, and having to always do spin python or pixi python is an inconvenience.

thin one-liner that calls the corresponding spin command

Yeah, this is a really key observation, and presently the only feasible way for large monorepos that want pixi's environment/task ordering guarantees and work saving, but want isolated/reusable/verifiable task definitions, without 10k lines of toml with embedded, difficult to lint/verify bash-like stuff (no offense to the task shell, of course).

different environments on different contributor machines

I think pixi's huge boon is making replicable (let's not throw Reproducible around just yet) environments a matter of course. Having a declarative way to encapsulate an "off-the-checked-in path" of what was done to a local environment would be useful.
An approach I have seen (but not necessarily liked) in other tools is to have a well-known, never-to-be-checked-in file that gets deeply merged with the source of truth, which results in a parallel structure for "dirty" envs.
Running commands with that in place (or explicitly named as CLI args, or environment variable) would result in a {whatever}.pixi.lock, used for all commands, and build up .pixi/{whatever}/envs and tasks-cache to actually run things, and lots of warnings, e.g. ✨ DIRTY Pixi task.
As to where to put it:

pixi already builds a .pixi folder, putting it there (with the same name) might make sense, e.g. .pixi/pixi.toml
leaving it as a sibling of the manifest, but prefixing it with .pixi for concise .gitignore of .pixi*, e.g.

.pixi.toml (simplest, but maybe too simple)
.pixi.tmp.toml (kinda looks like an editor-generated file)
.pixi.local.toml

making these choices configurable in e.g. [project.{whatever}] (now with the same naming problem)
making it entirely a runtime choice, e.g. --{whatever}-manifest-path, probably needed anyway for pixi add, etc.

Having these result in real, neighbor files makes it relatively easy to see what that difference would be via simple diff commands, but pixi could also summarize them in a helpful way.


Wait for test namespace deletion for unmanaged deployments

Waiting for test namespace deletion before controller shutdown ensures that finalizers will be removed so that deletion of resources (and the containing namespace) is possible.  This increases test execution time considerably, though, so the (potentially unsafe) flag --wait-for-finalization has been added and can be set to false for disposeable clusters.
Fixes #567

I seem to have broken the tests with the reversal of fixture teardown ordering.

I've backed out the attempted optimization of removal of federated namespaces for now.
@shashidharatd I've based the PR chain for reunification on this to avoid flakes.

/lgtm


Update time service

Overview
Add time-service to BOM and move factory method to TimeSchema interface.

Definition of Done

[x] There are no TODOs left in the code
[x] Change is covered by automated tests
[x] The coding guidelines are followed
[x] Public API has Javadoc
[x] Method preconditions are checked and documented in the Javadoc of the method
[x] Changelog is updated if needed (in case of notable or breaking changes)
[ ] The continuous integration build passes

Coverage remained the same at 85.53% when pulling 7d3830aadcfe63664fe3b7920f06948abdd244be on update-time-service into 89f15e695bee7682e85a9430826611b19cbc1d54 on master.


Need a warning when clipboard access is not granted

Since we are now using system clipboard to handle copy/paste, sometimes a user may not know that the browser has not granted system clipboard access to Texera's frontend:

We need a warning when that happens so that the user knows what to do, instead of only seeing that the clipboard does not work.

Solved by #1749.


victory-native installs multiple versions of victory-core

A fresh install of<EMAIL_ADDRESS>as of today gives you the following dependency tree (abbreviated from from yarn list):
<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>│  └─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>├─<EMAIL_ADDRESS>│  ├─<EMAIL_ADDRESS>│  └─<EMAIL_ADDRESS>
Both<EMAIL_ADDRESS>and<EMAIL_ADDRESS>are installed. Lets fix that :)

@boygirl fixed this in<EMAIL_ADDRESS>by upgrading to<EMAIL_ADDRESS>


class ESP8266WiFiClass' has no member named 'setHostname' ?

Trying to build the firmware i get the following error:
src\hw\chipSetup.cpp: In function 'void wifiSetup()':
src\hw\chipSetup.cpp:82:10: error: 'class ESP8266WiFiClass' has no member named 'setHostname'
     WiFi.setHostname(hostName);
          ^
*** [.pio\build\esp8266\src\hw\chipSetup.cpp.o] Error 1
lib\HanReader\HanReader.cpp: In member function 'String HanReader::parseData()':
lib\HanReader\HanReader.cpp:23:30: error: 'class ESP8266WiFiClass' has no member named 'getHostname'
  jsonData["hostname"] = WiFi.getHostname();
                              ^
*** [.pio\build\esp8266\lib2ea\HanReader\HanReader.cpp.o] Error 1

You need to make sure the ESP8266WiFi library is installed. Here is a video how to install libraries: https://www.youtube.com/watch?v=_pSVzV4PdiA


One more write buffer thread.

code from guide (https://reactphp.org/socket/#quickstart-example)
$loop = React\EventLoop\Factory::create();
$connector = new React\Socket\Connector($loop);

$connector->connect('<IP_ADDRESS>:8080')->then(function (ConnectionInterface $conn) use ($loop) {
    $conn->pipe(new React\Stream\WritableResourceStream(STDOUT, $loop));
    $conn->write("Hello World!\n");
});

$loop->run();

Simple do not ever send "Hello World".
I need to send 12-18 bytes every 30 seconds. And server to answer "ok" with 4 bytes.
Is there any simple way to trigger buffer flush without endless silence?
Client will send same package 3 times and disconnect if there is no "ok" reply, wait 30 seconds and endless silence game start over and over again.

HI @mastir, that's an interesting find! This write() call should happen pretty much instantly, so that your local server should receive this no later than in a millisecond or two.
I wonder if this issue could be the WritableResourceStream and the lack of error handling in this example. Are you running this on Windows? Windows is known to reject process pipes such as STDOUT as documented here: https://github.com/reactphp/stream#writableresourcestream
You can try moving the stream instantiation outside of the connection handler like this:
$loop = React\EventLoop\Factory::create();
$connector = new React\Socket\Connector($loop);
$out = new React\Stream\WritableResourceStream(STDOUT, $loop);

$connector->connect('<IP_ADDRESS>:8080')->then(function (ConnectionInterface $conn) use ($out) {
    $conn->pipe($out);
    $conn->write("Hello World!\n");
});

$loop->run();

Hi @clue i'll try to reproduce it in simple way.
i removed all the application logic, now server code is simple:
$loop = React\EventLoop\Factory::create();
$server = new React\Socket\Server('<IP_ADDRESS>:16016', $loop);
$server->on('connection', function($connection){
	$ip = trim(parse_url($connection->getRemoteAddress(), PHP_URL_HOST), '[]');
	echo '[conn] '.$ip.' connected'.PHP_EOL;
	$buffer = '';
	$connection->on('data', function ($chunk) use ($ip, $connection, $buffer) {
		echo '[data] '.$ip.' '.$chunk.PHP_EOL;
	});
	$connection->on('error', function (Exception $e) use ($ip) {
	    echo  '[conn] '.$ip.' error: ' . $e->getMessage().PHP_EOL;
	});
	$connection->on('close', function () use ($ip) {
	   echo '[conn] '.$ip.' closed.'.PHP_EOL;
	});
});
$loop->run();

and client:
$loop = React\EventLoop\Factory::create();
$connector = new React\Socket\Connector($loop);

$connector->connect('<IP_ADDRESS>:16016')->then(function ($conn) use ($loop) {
    $conn->pipe(new React\Stream\WritableResourceStream(STDOUT, $loop));
    $conn->write("Hello World!\n");
});

$loop->run();

terminal
$ uname -a
Linux host 4.4.0-83-generic #106-Ubuntu SMP Mon Jun 26 17:54:25 UTC 2017 i686 i686 i686 GNU/Linux
user@host:~/$ php7.1 EchoServer.php
[conn] <IP_ADDRESS> connected
[conn] <IP_ADDRESS> closed.
[conn] <IP_ADDRESS> connected
[conn] <IP_ADDRESS> closed.
[conn] <IP_ADDRESS> connected
^C

and second terminal
user@host:~/$ php7.1 HelloClient.php
^C
user@host:~/$ php7.1 HelloClient.php
^C
user@host:~/$ php7.1 HelloClient.php

And after i changed port number the problem is gone.
Thanks a lot!


Hey bro ><

could u fix cheat pls >< (today was update...) and learn me do it!!! please ><

ty!!!) could u learn me >< how to fix this  after every updates? Please >< may be add me?
My Discord:  ╲⎝⧹Arigami⧸⎠╱#4704
Facebook: https://www.facebook.com/profile.php?id=100008980599093
but better Steam!!! : https://steamcommunity.com/id/Arigami_CryBaby/
ty so much!


Special treatment of observed data for prior predictive checks

I have observed that people often uses plot_ppc with group prior and compares the prior predictive to the observed data. I think this is a potentially risky practice. To reduce the potential risk we should automatically treat observations differently when group is prior instead of posterior. I have 3 ideas.

don't show observed data by default.
show them with a warning message.
show bootstraped onservatios by default.

I think not showing them by default is a good idea.


Issue Importing 'twilio'

Hey all!
I'm trying to play around with the Twilio schema, but am having some issues getting it running. On a fresh install of the stepzen CLI, if I run: npx stepzen import twilio I'm prompted for my account SID + auth token (yey!), but then get the following error:
npx stepzen import twilio
? What would you like your endpoint to be called? api/twilio
Created /Users/rdegges/Drive/Sync/Code/testing/stepzen.config.json
Downloading from StepZen...... done

? What is the Account SID for your twilio API? [hidden]
? What is your auth token for your twilio API? [hidden]

Generating schemas...... !
    Error: Cannot copy '../cardinal/bin/cdl.js' to a subdirectory of itself,
    '../cardinal/bin/cdl.js'.
npm ERR! code 1
npm ERR! path /Users/rdegges/Drive/Sync/Code/testing
npm ERR! command failed
npm ERR! command sh -c stepzen "import" "twilio"

npm ERR!      /Users/rdegges/.npm/_logs/2021-05-24T03_17_37_187Z-debug.log

Any ideas? =D

Hey @rdegges .. what happens if you skip the npx bit.. just
stepzen import twilio

That work?

BTW, thanks for the report! Looks like this is an issue with our cli rather than this template specifically, so we're digging in on that. Will update here when we resolve.

Closing this issue since we're tracking on the cli side. If anyone runs into something similar, please re-open and comment. This is not an issue with the schema-repository, but rather a problem with how the cli generating the schema based on the template.


Add MQTT notifications to CB_client

Is your feature request related to a problem? Please describe.
With the new version of the Orion Context Broker notifications via MQTT are supported.
https://fiware-orion.readthedocs.io/en/3.2.0/user/mqtt_notifications/index.html
Describe the solution you'd like
We want to add this functionality in our notifications models.
Furthermore, we need to introduce the deprecated query parameter for skipping the initial notification for backward compatibility. If set the the client will check the version of the context broker first and then return a warning to the user.
Describe alternatives you've considered
None

closed by #25


ctrl-y as yank on macOS is not supported

This is useful in conjunction with ctrl-k.

Thanks for opening this issue. Because yank is not supported in VS code yet, we need to add it to this GitHub issue. https://github.com/Microsoft/vscode/issues/3776
Can you make a comment there with exactly what you want to see? Also if you know the keybindings for Windows / Linux that would be helpful.


Module order problem #2

A few of things...

I have fixed the scrolling, by introducing conditional logic only in displayRow(), and removed my previous changes in setPixel() and getPixel().

Due to you mentioning that these modules come in all different varieties and orientations, I have got rid of bool modRev and added bool flipSegCol and bool flipSegRow in the constructor, you can alternate between the two bool parameters to suit the device.

Changed the enum for scroll parameter to byte - this negates the need for less advanced users to look in to the driver code to find the names then type object.scroll(LEDMatrixDriver::Enum_Name);

The example I submitted (MarqueeTextClean) has a bug, if you instantiate char text[] with a really long string, the marquee delay grows as the loop() gets further towards the end of the displayed string. I am working on a new example which uses the buffer scroll function, then introducing a new column on the right for the current letter which will be handled in the example, it will be very effient.

Pull request created


integrate simdem to programmatically deploy the demo behind the dashboard

I have all the scripts kinda in simdem - now the fun part comes of getting them to work


Where channels::pre_accepted_block was subscribed?

In controller_impl::push_block() method, send a signal called "pre_accepted_block",
I found it was dealed with code below:
my->pre_accepted_block_connection = my->chain->pre_accepted_block.connect([this](const signed_block_ptr& blk) {
         auto itr = my->loaded_checkpoints.find( blk->block_num() );
         if( itr != my->loaded_checkpoints.end() ) {
            auto id = blk->id();
            EOS_ASSERT( itr->second == id, checkpoint_exception,
                        "Checkpoint does not match for block number ${num}: expected: ${expected} actual: ${actual}",
                        ("num", blk->block_num())("expected", itr->second)("actual", id)
            );
         }

         my->pre_accepted_block_channel.publish(blk);
      });

but I can't find out where channels::pre_accepted_block was subscribed.
Are these code useless?

::connect creates a "subscription"
The signal is emitted here: https://github.com/EOSIO/eos/blob/f9a3d023c05d6b7984cbd7263a5a39e650c87e90/libraries/chain/controller.cpp#L1235

my->pre_accepted_block_channel.publish(blk);
I saw the code above,but I can't find code like this :
app().get_channelchannels::pre_accepted_block().subscribe()


Users should be able to close tabs

Currently, after the Tree is constructed, existing tabs cannot be closed.
Developers should be able to specify if a tab should have an X button which upon clicking, closes the tab.

Well, I think that adding context menu by Right Click is good idea.


bug: Issues adding Karpenter role to AWS auth-map

Description
I've attempted trying to add the Karpenter IAM role (lines 65-72) to the AWS authmap, but I'm facing this error:
│   on eks-cluster.tf line 63, in module "eks":
│   63:     aws_auth_roles = [
│   64:         # We need to add in the Karpenter node IAM role for nodes launched by Karpenter
│   65:         {
│   66:             rolearn  = module.karpenter.role_arn,
│   67:             username = "system:node:{{EC2PrivateDNSName}}"
│   68:             groups = [
│   69:                 "system:bootstrappers",
│   70:                 "system:nodes"
│   71:             ]
│   72:         },
│   73:         {
│   74:             rolearn  = "arn:aws:sts::376424775662:assumed-role/Admin/default-session",
│   75:             username = "AWSumeAdminUser"
│   76:             groups = var.kubernetes_permissions_group
│   77:         },
│   78:         {
│   79:             rolearn  = "arn:aws:iam::376424775662:role/Admin",
│   80:             username = "ConsoleAdminUser"
│   81:             groups = var.kubernetes_permissions_group
│   82:         },
│   83:         {
│   84:             rolearn  = "arn:aws:sts::376424775662:assumed-role/engineers/default-session",
│   85:             username = "AWSumeEngineerUser"
│   86:             groups = var.kubernetes_permissions_group
│   87:         },
│   88:         {
│   89:             rolearn  = "arn:aws:iam::376424775662:role/engineers",
│   90:             username = "ConsoleEngineerUser"
│   91:             groups = var.kubernetes_permissions_group
│   92:         }
│   93:     ]
│
│ The given value is not suitable for module.eks.var.aws_auth_roles declared at .terraform/modules/eks/variables.tf:583,1-26: element types must all match for conversion to list.

I've applied the same role manually to the cluster with no issues, but it won't work on this TF module.
If your request is for a new feature, please use the Feature request template.

[ x ] ✋ I have searched the open/closed issues and my issue is not listed.

⚠ Note
Before you submit an issue, please perform the following first:

Remove the local .terraform directory (! ONLY if state is stored remotely, which hopefully you are following that best practice!): rm -rf .terraform/
Re-initialize the project root to pull down modules: terraform init
Re-attempt your terraform plan or apply and check if the issue still persists

Customer note: I've done all the steps above + upgraded from 19.12 -> 19.17.2 (latest version) - same issue

Versions

Module version [Required]:
19.12 (original) -> 19.17.2 (latest)- same error on both versions

Terraform version:
1.6.1 (latest)

Provider version(s):
Terraform v1.5.7
on linux_amd64

provider registry.terraform.io/gavinbunney/kubectl v1.14.0
provider registry.terraform.io/hashicorp/aws v5.21.0
provider registry.terraform.io/hashicorp/cloudinit v2.3.2
provider registry.terraform.io/hashicorp/helm v2.11.0
provider registry.terraform.io/hashicorp/kubernetes v2.23.0
provider registry.terraform.io/hashicorp/local v2.4.0
provider registry.terraform.io/hashicorp/null v3.2.1
provider registry.terraform.io/hashicorp/random v3.5.1
provider registry.terraform.io/hashicorp/time v0.9.1
provider registry.terraform.io/hashicorp/tls v4.0.4
provider registry.terraform.io/hkak03key/command v0.1.1

Reproduction Code [Required]
(above)
Steps to reproduce the behavior:

Added new role to existing auth-map
init/apply plan
Error: The given value is not suitable for module.eks.var.aws_auth_roles declared at .terraform/modules/eks/variables.tf:583,1-26: element types must all match for conversion to list.

Expected behavior
New Karpenter role to be applied to aws auth-map
Actual behavior
Fails to do it do to error mentioned
Terminal Output Screenshot(s)
(above)

one of your var.* for groups is most likely not a list of strings. closing for now until a proper reproduction can be provided to diagnose and troubleshoot


Add check for Terraform submodules

Description
This checks for submodules when deploying TF recipes. If the source is a submodule, we'll use that path when loading the module after the download
Type of change

This pull request is a minor refactor, code cleanup, test improvement, or other maintenance task and doesn't change the functionality of Radius #7005

Fixes: #7005

can we add a functional test for this scenario?

Thanks for making this change @sk593. Are you planning to add/update functional test in a separate PR?

I'm planning to address this in this PR, but I'm still working through the best way to upload the submodule folder. Since we compress our recipes and call them over HTTPS, I don't think it will work exactly the same as it does now


New URLs plugin

Oh boy, this won't merge nicely will it.. That's going to be annoying.
A much-improved URLs plugin with a proper handler and shortener system, asynchronous requests using txrequests, and full sessions/cookies support.
I'll attempt to merge this myself at some point, but for now, I'm collecting opinions.

I'll update this with a list of stuff if line annotations aren't suitable.
One merge conflict is tox.ini, where the same change was made in both branches. Either version can be taken for the same result. The other conflict is due to a bug patch in the old URLs plugin in master, and shouldn't be a problem as long as the empty header value bug wasn't reintroduced.

Things still left to do:

[ ] Update URL-Tools
[ ] Channels using default shortener should use changed default
[ ] Logger support for Failures (Separate commit set?)
[ ] Check portscans on redirect
[ ] Redirect detection before handlers are run

Keep a whitelist of URL shorteners that may be configured; a request should be created that doesn't handle redirects itself and should be handled manually until we get to a domain that isn't in the aforementioned whitelist

A few more shorteners:
  - "gg.gg"
  - "dickensurl.com"
  - "5z8.info"  # shadyurl.com

It can be disable by adding a cookie called "preview" with a value of 1

Well, that Session doesn't use any cookie stores right now; but now that you mention this, since v.gd and is.gd are the same people, maybe that'd work on the dumb is.gd gated dropbox links?

Another URL shortener: "tiny.cc"

:+1:

No need to PEP8 this, flake8 says that everything's good.


What is Robust03?

Could you clarify which one is Robust03?
I only know Robust04 (disk4-5 without cr folder) and Robust05 (AQUAINT)

Hey Antorino,
By Robust03, I meant the Robust track from TREC 2003 (TREC12).
The participant runs can be found at: https://trec.nist.gov/results/trec12/robust.input.html
The relevance assessments are at https://trec.nist.gov/data/qrels_eng/
The data collection was disk4-5 without cr folder.

Thanks for clarifying it!


Factuality task

@googlebot I signed it!

@dptam We are now requesting that task authors please include an explicit section in the README.md file called "data source", listing exactly where you got your data from (or explicitly state that you made it up yourself). Many thanks!

Hi, I'm one of the reviewers assigned to this task. Thanks for the submission! I'm currently having trouble finding the task on the testing notebook https://colab.research.google.com/github/google/BIG-bench/blob/main/notebooks/TaskTestingNotebook.ipynb. @chiafullo do you know if this could be because the workflow is awaiting approval?
Also, there are some typos in the README and some of the documentation in the code refers to the arithmetic task and should be updated. It would also be helpful to have more info on how the data was generated, and on the novelty of this task compared to the cited works. Thanks!

@shaneshixiang are one of the assigned reviewers for this task.  Please provide feedback and be sure to notify me with a formal accept or does not meet criteria by Tuesday June 22 (if you have not already done so).

@dargilboa are one of the assigned reviewers for this task.  Please provide feedback and be sure to notify me with a formal accept or does not meet criteria by Tuesday June 22 (if you have not already done so).

Hi @dargilboa, thanks for the feedback. I have updated the readme and code. I am not sure why this task is not showing on the colab. @chiafullo

@Sohl-Dickstein to advise! Can you approve the workflow? Seems there is an issue for this PR

@chiafullo requires licensing review
Also, I think the workflow issue has been fixed with the commands above, since I could run the notebook.

@chiafullo Accept

The amount of tasks we received this round is tremendous.  With so many tasks to review we have decided to extend the review period to Tuesday, June 29.
Reviewers: if the submitter has made revisions please be sure to notify me with a formal ”accept” or ”does not meet criteria” by Tuesday, June 29  (if you haven't already done so).
this is an automated message

Your task has been accepted in the initial review stage.  The next stage of this process is for us to assign your task a meta-reviewer for final review and merge.  An assigned meta-reviewer will follow-up by commenting on the PR should it need further revisions.

LGTM, thanks for the submission!

Hi @dptam @craffel . Thanks for your submission! It looks like this task has some problems that were overlooked in review:

It's querying the model for each letter in a response string, rather than the full response string. See the dummy model transcript. I believe this is because the targets in model.cond_log_prob need to be a list rather than a string. You should replace the for loop over list_candidates with a single line

    scores = model.cond_log_prob(source, list_candidates)

It hasn't implemented the max_examples keyword. This will cause the task to be impractical to evaluate for most models. You should randomly subsample the examples to be at most max_examples for each of the cnn_dm and xsum conditions. e.g. this would involve code somewhat like what appears here.
It hasn't implemented the random_seed keyword. e.g., include code like here.
Both for loops are over self.cnn_dm_data. I believe the second for loop should be over self.xsum_data.

Conditioned on the bugs above, it is likely there are more bugs, so it's important to confirm the task does what you expect after making the fixes above. Please run the task manually in the task testing notebook, and confirm that the interaction is correct, and check that the returned scores are what you would expect.
Thank you again for contributing the task! I like the design, and I think what it is measuring is important.

@Sohl-Dickstein
Thanks for finding these errors. Trying to implement it, I have a couple questions

model.cond_log_prob() seems to hit an issue if the input and output length is longer than the maximum sequence length (1024 for GPT2). Is there a way I can access the tokenizer of the model to pre-process the input/output to be shorter than the maximum sequence length, or can the model trim the input?
I don't understand the max_input_length_per_query keyword for the task metadata? Doesn't this depend on the model used?

@Sohl-Dickstein Thanks for finding these errors. Trying to implement it, I have a couple questions

model.cond_log_prob() seems to hit an issue if the input and output length is longer than the maximum sequence length (1024 for GPT2). Is there a way I can access the tokenizer of the model to pre-process the input/output to be shorter than the maximum sequence length, or can the model trim the input?

This sounds like a bug on our end! I haven't encountered it even with very long inputs in the past. I'm not sure if we've stress-tested very long outputs though. Could you share instructions to reproduce this error?

I don't understand the max_input_length_per_query keyword for the task metadata? Doesn't this depend on the model used?

This was intended to help us predict compute resources per task. In practice though, it turns out that we are not using these. Just fill in what you believe to be a reasonable upper bound.
Thanks for looking into this!

Sounds good thanks for looking into it.
I call model.cond_log_prob(source, list_candidates) where the model is GPT2,
source="Fighter ace: Douglas Bader's story\xa0is to be told in a Hollywood film dubbed ‘The First Great Escape’ The story of how Douglas Bader recovered from having both legs amputated to become one of Britain’s greatest fighter aces is remarkable enough. But n ow another astonishing but little-known chapter of his war career is to be told in a Hollywood film being dubbed ‘The First Great Escape’. Bader – who lost his legs in a flying accident in 1931 – was shot down over France in August 1941 and ended up in a  German prison camp in Warburg. It was there that the officer, who always made light of his disability and refused to even use a stick, was involved in a mass break-out that pre-dated the break in 1944 immortalised in The Great Escape starring Steve McQu een and Richard Attenborough. Bader’s life story has already been the subject of the successful film Reach for the Sky in 1956 starring Kenneth More. This latest look at his exploits is based on a book on the Warburg escape by historian Mark Felton calle d Zero Night. It was a plot hatched by Scottish lieutenant Jock Hamilton-Baillie, 23, and involved build folding ladders to escape over the wire. Major Tom Stallard, of the Durham Light Infantry, teamed up with Bader on the planning. The fighter ace went  on to describe it as ‘the most brilliant escape conception of this war’. The ladders were made from wood from a wrecked hut and crafted in the camp’s music room, where the sawing and hammering was drowned out by the sound of instruments. They were disgu ised as bookshelves. On the night of the break – August 30, 1942 – the prisoners managed to fuse the camp’s search lights and 41 men carrying four 12ft scaling ladders rushed the fence. One ladder collapsed, so only 28 made it over the wire, of which thr ee made a ‘home run’ back to freedom. The Great Escape: Bader's story predates the break in 1944 immortalised in the film starring Steve McQueen and Richard Attenborough (pictured) Bader was among those recaptured but was such a nuisance to the Germans t hat he ended up in the ‘escape-proof’ Colditz Castle and remained in captivity until the end of the war. More than 40 Allied prisoners put their lives on the line in a plot to escape from Oflag VI-B camp near Warburg, Germany, in 1942. Major Tom Stallard , a larger than life 37-year-old from Somerset captured while serving in the Durham Light Infantry, teamed up with Bader on the planning. While the Great Escape relied on its famous tunnels, the Warburg mass break out saw the men boldly leap over the hug e perimeter fences using wooden ladders. Bader described what happened as 'the most brilliant escape conception of this war'. Months of meticulous planning and secret training went into the three minute charge of the camp's double perimeter fences. Bader ’s life story has been the subject of 1956 film Reach for the Sky starring Kenneth More (pictured) A series of makeshift ladders propped against the prison camp's perimeter fence were made from wood plundered from a wrecked hut. They were crafted in the  camp's music room, where the sawing and hammering was drowned out by the sound of instruments. The escape was codenamed Operation Olympian because it involved troops from across the Commonwealth - Britain, Australia, New Zealand and South Africa. The rig hts to Dr Felton’s book (pictured) have been bought by production firm Essential 11 USA . As the night of the breakout loomed, the ladders were disguised as bookshelves to fool the guards. After the prisoners fused the perimeter search lights, 41 of them  carrying four 12-foot scaling ladders made from bed slats rushed to the barbed-wire fence and clambered over. One ladder collapsed, so only 28 made it over the barbed wire, of which three made a 'home run' back to freedom. Bader later ended up in Coldit z and had his tin legs taken away to ensure he remained in captivity until the end of the war. Major Stallard and another leading light of the escape Major Johnnie Cousens, also of the Durham Light Infantry, survived the war and lived into their 70s. Bot h were too modest to breathe hardly a word about what had happened on August 30 1942. But now their story could trump the Great Escape after Hollywood bosses snapped up the rights to turn military historian Mark Felton's book about the escape Zero Night  into a blockbuster. The rights to Dr Felton’s book have been bought by the makers of 2013’s Saving Mr Banks with Tom Hanks. Production firm Essential 11 USA, the makers of the 2013 Tom Hanks and Emma Thompson hit Saving Mr Banks, is now working on a scri pt. Dr Felton said a number of 'A-list' Hollywood stars were queuing up for roles and Essential 11 had invited him to help cast the leads, although he could not reveal who was interested. He said: 'I'm very, very pleased. It's very, very exciting. Essent ial 11 did a fantastic job with Saving Mr Banks and to have that same team working on this is very pleasing.'"
and list_candidates=["Douglas Bader recovered from having both legs amputated to become one of Britain’s greatest fighter aces .\nWas shot down over France in 1941 and ended up in German prison camp .\nAnd he was involved in a mass break-out that pre-dated the break in 1944  immortalised in The Great Escape .\nNow, Hollywood bosses snapped up the rights to turn military historian Mark Felton's book about the escape into a blockbuster .",  "douglas bader was shot down over france in august 1941 and ended up in a german prison camp in warburg . it was there he was involved in a mass break-out that pre-dated the break in 1944 immortalised in the great escape starring steve mcqueen and richar d attenborough . bader 's life story has already been the subject of the successful film reach for the sky in 1956 starring kenneth more . this latest look at his exploits is based on a book on the escape by historian mark felton called zero night ."].
The output shows
Token indices sequence length is longer than the specified maximum sequence length for this model (1090 > 1024). Running this sequence through the model will result in indexing errors                                                                        Traceback (most recent call last):                                                                                File "bigbench/evaluate_task.py", line 448, in <module>                                                                                absl.app.run(main)                                                                                File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/absl/app.py", line 312, in run                                                                                _run_main(main, args)                                                                                File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/absl/app.py", line 258, in _run_main                  sys.exit(main(argv))                                          File "bigbench/evaluate_task.py", line 408, in main               results = task.evaluate_model(model)                          File "/fruitbasket/users/dtredsox/BIG-bench/bigbench/benchmark_tasks/factuality_task/task.py", line 142, in evaluate_model        pred_lbl = self._pred_lbl_pmi(model, source, list_candidates)                                                                 File "/fruitbasket/users/dtredsox/BIG-bench/bigbench/benchmark_tasks/factuality_task/task.py", line 98, in _pred_lbl_pmi          p_y_given_x_scores = model.cond_log_prob(source, list_candidates)                                                             File "bigbench/evaluate_task.py", line 180, in cond_log_prob                                                                      scores = self.model.cond_log_prob(                            File "/fruitbasket/users/dtredsox/BIG-bench/bigbench/models/huggingface_models.py", line 359, in cond_log_prob                    scores = [                                                    File "/fruitbasket/users/dtredsox/BIG-bench/bigbench/models/huggingface_models.py", line 360, in <listcomp>                       self._model.score(context=i if i else "<|endoftext|>", choices=c)                                                             File "/fruitbasket/users/dtredsox/BIG-bench/bigbench/models/huggingface_models.py", line 247, in score                            next_score = self._score_next(input_ids[:, :i], input_ids[:, i])                                                              File "/fruitbasket/users/dtredsox/BIG-bench/bigbench/models/huggingface_models.py", line 204, in _score_next                      outputs = self._model(**model_inputs)                         File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/keras/engine/base_layer.py", line 1037, in __call__     outputs = call_fn(inputs, *args, **kwargs)                    File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/transformers/models/gpt2/modeling_tf_gpt2.py", line 727, in call     transformer_outputs = self.transformer(                       File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/keras/engine/base_layer.py", line 1037, in __call__     outputs = call_fn(inputs, *args, **kwargs)                    File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/transformers/models/gpt2/modeling_tf_gpt2.py", line 353, in call     position_embeds = tf.gather(self.wpe, inputs["position_ids"])                                                                 File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py", line 206, in wrapper     return target(*args, **kwargs)                                File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/tensorflow/python/ops/array_ops.py", line 5069, in gather_v2     return gather(                                                File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/tensorflow/python/util/deprecation.py", line 549, in new_func     return func(*args, **kwargs)                                  File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/tensorflow/python/util/dispatch.py", line 206, in wrapper     return target(*args, **kwargs)                                File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/tensorflow/python/ops/array_ops.py", line 5056, in gather     return params.sparse_read(indices, name=name)                 File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/tensorflow/python/ops/resource_variable_ops.py", line 713, in sparse_read     value = gen_resource_variable_ops.resource_gather(            File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/tensorflow/python/ops/gen_resource_variable_ops.py", line 549, in resource_gather     _ops.raise_from_not_ok_status(e, name)                        File "/fruitbasket/users/dtredsox/BIG-bench/env/lib/python3.8/site-packages/tensorflow/python/framework/ops.py", line 6941, in raise_from_not_ok_status     six.raise_from(core._status_to_exception(e.code, message), None)                                                              File "<string>", line 3, in raise_from                        tensorflow.python.framework.errors_impl.InvalidArgumentError: indices[0,1024] = 1024 is not in [0, 1024) [Op:ResourceGather]

Thanks! Before I dig in, did you do a fresh git pull from main, or are you working from your old client? This is reminiscent of a bug we fixed a while ago.

Ah yes, a fresh git pull fixed it. Thanks.

Also, is the model supposed to run on gpu or be batched? It seems it does not in the example above, and if I allow for batching, it will depend upon the memory?

In terms of batching, you can call cond_log_prob with a list of sources,
and a list of lists of candidates. In that case, the task will be fully
batched, and models will be able to run it much faster.
In terms of gpt2 running on the accelerator -- I think this is a function
of your local install, rather than BIG-bench. I haven't set up accelerated
gpt2 myself though.
On Sat, Nov 6, 2021, 14:00 Derek Tam @.***> wrote:

Also, is the model supposed to run on gpu or be batched? It seems it does
not in the example above, and if I allow for batching, it will depend upon
the memory?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/google/BIG-bench/pull/335#issuecomment-962509234, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AADZW4FI52K5JUEETP6RTCTUKWQPPANCNFSM45VTNOQA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Thanks! Can I assume that if I batch all the sources and list of candidates it will fit in the memory on the gpu it is running on? Or how large of a batch size should I assume it can fit, since I think my machine can only fit a batch size of 4-8?

You should assume the language model can evaluate however many examples you give it. If the model needs to break the examples into smaller minibatches, then that's the model's job, not the task's.

The "natural continuation" is instructions to a human to make them emulate what the model would do (continue the text with the highest likelihood option).

Thanks for all your help and answering all my questions! The code runs fine for scripts/evaluate_task.sh --task factuality_of_summary --output_path result.json and I created a pull request https://github.com/google/BIG-bench/pull/606. I think it was renamed to factuality of summary when I did a fresh git pull, so I switched the task from factuality task to factuality_of_summary


Fix docfx material theme

Material theme added in #2 hasn't been correctly applied during the deployment.
Best approach would just be to check it into the docs folder directly.

Incorrectly reopened, a18150b did fix it, GitHub pages just lagged behind on the update.


[feat] automatically update plugin with one command

Description
Update plugins with one command, no clickings in the setting tab.
Requirement/Scenario
I need to do clicking multiple times in the setting tab when updating plugins which is wasting my time.
Function
Update plugins that I have installed from Obsidian community with one command.
Tasks

[ ] List local plugins
[ ] Check each local plugin status, including repo validation about release files(main.js, styles.css, manifest.json)
[ ] Get each local plugin latest release version
[ ] Check if the plugin needs to upgrade and display the status
[ ] Trigger the upgrading for all outdated plugins

Try this API of Github
const response = await this.request('https://api.github.com/repos/edonyzpc/personal-assistant/releases/latest');
// undefined
JSON.parse(response)
// {url: 'https://api.github.com/repos/edonyzpc/personal-assistant/releases/101453364', assets_url: 'https://api.github.com/repos/edonyzpc/personal-assistant/releases/101453364/assets', upload_url: 'https://uploads.github.com/repos/edonyzpc/personal-assistant/releases/101453364/assets{?name,label}', html_url: 'https://github.com/edonyzpc/personal-assistant/releases/tag/1.1.0', id: 101453364, …}


[RU] Add Documentation lesson

@nscyclone Can you look through this translation? Thanks!

I've just left some feedback for you, @brain-geek. Thanks for a nice translation!

Hey, @nscyclone , thanks for the review!
I've fixed all issues you noted.

@brain-geek, I've checked it once more and it looks fine. I think we're ready to merge, thanks a lot!

Thanks for review, @nscyclone !


Dev add non root user

Added non-root user
Fix: [#10]

@i-chvets @outbackdingo Can you guys please take a peek on this PR as well, as it addresses the concerns / the issues you've raised?


Discord Server Embed Not Functional

The Discord server embed on the page is not functional, you aren't able to scroll or press Join. The Twitter embed however works fine
Tested on Chromium 123.0.6312.59 and Safari 17.4
See attached videos
https://github.com/WiiLink24/web/assets/96893300/fe565ead-c92f-4ed8-ba83-521ccef7db13
https://github.com/WiiLink24/web/assets/96893300/6efdab1e-276b-44dc-a345-37c43c41b9a5

A wrong z-index value was causing it to be unresponsive, it's been fixed now!


Cannot mount SD card - mount error 3

Hello,
Firstly many thanks for developing the library.
I seem to have found an issue to get the SD card to mount without error. I'd assumed this was due to my poor wiring or pin selection. However having tried an alternate pico-fatfs library this works without issue, writing Hello World to the SD card (viewable on another device). This is currently setup on a breadboard with a mess of wires, so expect poor signaling but attempting to lower CLK_FAST to as low as 1 MHZ has not helped. I've tried switch SPI lanes and pins to no avail either. The SD card reader used is this and is hooked up-to the 5v rail for power.
Any ideas how to debug a mount error 3?
Doubt it would change anything, but I've set the example code test/main.cpp to use USB serial out for debugging.

Hello @matt-walker0
Thank you for the issue report.
According to your explanation, you're using the microsd board with level-shifter.
If I'm correct, generally, the board with level-shifter should be used with 5V-TTL level I/O interface board such as Arduino UNO to interface between 5V (MCU side) and 3.3V (microsd card side).
On the other hand, rp2040 (Raspberry Pi Pico board) handles directly 3.3V LVTTL, the board without level-shifter like this needs to be used.
I've never make it work with the board with level-shifter even though 3.3V is connect for both side of the voltage inputs. I think that is exactly same as what you saw. In that case, to decrease clock frequency doesn't improve the situation at all. Therefore, my first recommendation is to replace the microsd board.
On the other hand, I also appreciate your information that the other library runs successfully even with the board with level-shifter. That could indicates it has more timing margin than this library. It looks worth investigating what makes difference.
At last, but not least, I'd appreciate if you kindly inform which vendor's microsd card you're using. (vendor, series name and size).
BR

Thanks @matt-walker0 for the card information.
I'll try again the board with level-shifter to check if any condition to work.
Best Regards

Thank you for the trial and the report with non-level-shifter board.
Yes, for the moment in this library, it should be understood that level shifter makes negative effect on the timing for SPI interface to microsd
Without level shifter, sometimes still speed down should be needed.
Please note that the frequency is not applied in linear but applied as frequency that doesn't exceed to 125MHz/N.
If it is set to 50MHz, then actual frequency is 31.25MHz and if it's set to 30MHz, actual frequency will get 15.625MHz.
Best Regards


Only one "Editor" Input Type in a CRUD

Related to Discussion #550
Describe the bug
If we define more than one "Editor" Input Type in a CRUD, only the first one works, the others do not render anything.

I close this subject because it"s the best solution for #550 (see update) and don't see usage of having several "Editor" Input Type.


git version label yields version in violation of PEP 440

When an xarray installation does not match a released version ,it has a version number like 0.9.1-28-g769f120.
This violates PEP 440, which leads to multiple problems:

pip install --update will revert xarray back to 0.9.1, because it does not recognise that 0.9.1-28-g769f120 > 0.9.1
packages with an xarray dependencies will be considered not satisfied.  Running a script through setuptools load_entry_point fails with pkg_resources.ContextualVersionConflict: (xarray 0.9.1-28-g769f120 (/dev/shm/gerrit/venv/stable-3.5/lib/python3.5/site-packages), Requirement.parse('xarray>=0.8')

Instead, the version number above should be written as 0.9.1+r10345 or so, which would satisfy PEP 440 and not cause problems with pip or setuptools.

Yes, we should update this. Our current logic for determining git versions is in setup.py and was originally copied from pndnas, but we really should consider updating to use what dask and pandas now use, which is versioneer.

👍  to versioneer. I've found it really easy to use.


Incorrect Content-Type header for __data.json

__data.json returns data from the server to the client and is fetched during a preload event. __data.json should have a content type of application/json but instead it's being returned astext/html. This wasn't an issue in earlier SvelteKit releases however the 1.27.6 release includes this check in client.js:
// if `__data.json` doesn't exist or the server has an internal error,
// fallback to native navigation so we avoid parsing the HTML error page as a JSON
if (res.headers.get('content-type')?.includes('text/html')) {
    await native_navigation(url);
}

(Please see https://github.com/sveltejs/kit/pull/11025)
The result of which is that hovering over a link will not just preload the page, it will actually navigate to it.
To see the issue in action please see https://d3hhyleu7n6eqh.cloudfront.net and hover over the about link. If you check the network requests you'll see that the about/__data.json resource has content type of text/html
Here's a link to the issue mentioned on Discord

BTW, I originally filed an issue with the SvelteKit project https://github.com/sveltejs/kit/issues/11055

Hmm I wonder why it's setting the wrong content type. We'll take a look.

We are transition this repo to https://github.com/sst/v2 and are closing this issue for now. If it is still relevant please reopen it there - sorry for the trouble


Close FileStream when scanning dataset members

This is implementing the necessary updates for #14 and some minor refactoring of the method.

@dennis-behm As discussed, the scanner just needs to be initialized once. Every call to processSingleFile() will reset the internal state of the scanner.

@M-DLB here we go with the requested reuse of the scanner - https://github.com/IBM/dbb-git-migration-modeler/pull/15/commits/cfda91f9526b02bf0d2d36df3d75fa822ce02c16
Can you please review once more?


[HAL] Link object

https://tools.ietf.org/html/draft-kelly-json-hal-06#section-5

hal/hal.d.ts
check list

[ ] is collect naming convention?

https://www.npmjs.com/package/hal
http://bower.io/search/?q=hal
others?

[X] has a test file? (hal/hal-tests.ts or others)
[ ] pass the Travic-CI test?

This is not related with any implementation.
I use this for type my API responses etc. Just this, typing.

It's like to type promises. This is the abstract code and implementators "should" extend from this.

@Maks3w https://www.npmjs.com/package/hal is already exists.
we should choose another naming. e.g. json-hal . it is vacancy on npm.

Should we? IMO the standard name is most important than the package.

Also the rule is a endless story. Take a free name can be disputed later when a package with the same name is pushed.

@Maks3w please check this document. http://definitelytyped.org/guides/contributing.html#naming-the-file
It only the file name is the problem.

@vvakame Done. However I suggest to review the name restriction policy.
As I said is an endless history avoid conflict with any existing or future package registered on all repositories, NPM, Bower, NuGet What's the next?


Some additional inspectors on Script and Witness

Bundled these because they are very similar. Got a bunch of larger changes coming up based on these. I've been using these for a while for TXHASH work.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

90 of 103 (87.38%)  changed or added relevant lines in 2 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.003%) to 83.133%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

bitcoin/src/blockdata/witness.rs
90
94
95.74%

bitcoin/src/blockdata/script/borrowed.rs
0
9
0.0%

Files with Coverage Reduction
New Missed Lines
%

bitcoin/src/blockdata/witness.rs
1
89.39%

Totals

Change from base Build<PHONE_NUMBER>:
-0.003%

Covered Lines:
19158

Relevant Lines:
23045

💛  - Coveralls

This can be merged, right?

Looks like it. Two ACKs on the tip. I think it just fell through the cracks.


Search doesn't work when the "/" character is made with [alt-gr + q]

I previously owned a keyboard that didn't have a "/" character. So I had to make it with [alt-gr + q] (alt-gr is the alt key on the right of the space bar). It turned out to be much faster and I still use it today in other keyboards.
Despite the pressed keys, it generates the character "/" so it was suposed to bring up search mode (it works on vim).

As stated in the README, this package is no longer maintained and is deprecated. We recommend that people use the vim-mode-plus package instead. Because of this, we are archiving this repository and closing all issues and pull requests. Thanks very much for your support and contributions!


Default configuration options

Default options addition to config and docs for Laravel and Symfony

Hi Ahmed,
Thank you so much for this pull request. It's incredibly satisfying to see contributions, especially since it's not often we get a lot of community involvement from the start of the project.
I really appreciate your approach to adding default options, and I think it's a cool idea! I plan to make some tweaks, like moving the default values to the JavaScript part. This adjustment will ensure that the same configuration options are available whether we dispatch a notification from JavaScript or PHP.
If there's anything else you believe we could improve in PHPFlasher, I'm all ears. Although I maintain the project, I don't use it daily in my work, so insights from active users like yourself are invaluable for making PHPFlasher more robust and user-friendly.
Thanks again for your fantastic contribution!
Best regards,
Younes

Hi Ahmed,
Good news! The default options are already set on the JavaScript side. You can see them here: php-flasher/blob/b08161f9. These will be included in the next release.
Thanks for bringing this up, and please let me know if there's anything else we need to look into.
Best regards,
Younes

Hi Yoeunes,
I am so happy you liked this contribution and will be glad to contribute more to this great package I was lucky to install and use.
You did a great job and I think the package fulfilled the most functions any developer would search for.
I have some ideas to give more freedom in customization like an option to disable/enable the progress bar,
and the ability to customize the theme/icons, or have a custom view without digging deeper into the core.
I will always be happy to help and contribute any time to current or future developments.
Best Regards,
Ahmed


Verification failed while extracting<EMAIL_ADDRESS>

Hi Thomas,
to successfully install hana-cli, I had to change the package-lock.json file
replacing integrity line such as after:
"@sap/hana-client": {
"version": "2.5.86",
"resolved"<EMAIL_ADDRESS>"integrity": "sha512-Rk8WrhKSSFMrGWoOOT3tzYow3NdGZtSCMyDc06w3354fsUaaTyWZG9p/av5UTGCf9n1no1oa9X/HcSbhxwQGfQ==",
"requires": {
"debug": "3.1.0"
},
otherwise, I would get :
npm WARN tarball tarball data for<EMAIL_ADDRESS>(sha512-m1ECPz0OwqcmNtzB/Y92m3zuT+ePOI8Ypr9Z+GPtEHtJFCGgHYx8N/oaa/WGmA7xmwfNvDV9HLtasJnndewErw==) seems to be corrupted. Trying one more time.
npm WARN tarball tarball data for<EMAIL_ADDRESS>(sha512-m1ECPz0OwqcmNtzB/Y92m3zuT+ePOI8Ypr9Z+GPtEHtJFCGgHYx8N/oaa/WGmA7xmwfNvDV9HLtasJnndewErw==) seems to be corrupted. Trying one more time.
npm ERR! code EINTEGRITY
npm ERR! Verification failed while extracting<EMAIL_ADDRESS>npm ERR! Verification failed while extracting<EMAIL_ADDRESS>npm ERR! sha512-m1ECPz0OwqcmNtzB/Y92m3zuT+ePOI8Ypr9Z+GPtEHtJFCGgHYx8N/oaa/WGmA7xmwfNvDV9HLtasJnndewErw== integrity checksum failed when using sha512: wanted sha512-m1ECPz0OwqcmNtzB/Y92m3zuT+ePOI8Ypr9Z+GPtEHtJFCGgHYx8N/oaa/WGmA7xmwfNvDV9HLtasJnndewErw== but got sha512-Rk8WrhKSSFMrGWoOOT3tzYow3NdGZtSCMyDc06w3354fsUaaTyWZG9p/av5UTGCf9n1no1oa9X/HcSbhxwQGfQ==. (55293167 bytes)
This issue can then be closed

I believe this is because you are still using the npm.sap.com registry.
@sap Node.js packages have moved from https://npm.sap.com to the default registry https://registry.npmjs.org. As future versions of @sap modules are going to be published only there, please make sure to adjust your registry with:
npm config delete @sap:registry

Although I see the package-lock.json suprising has some references to npm.sap.com still in it.  I'm not sure why as I've pushed since switching to the main registry myself.  Let me look into that real quick. For interest; what registry are you configured to use (can do a npm config list to see).

Ok Thomas,
npm config list -l
; cli configs
long = true
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/6.13.4 node/v12.16.0 linux x64"
; userconfig /home/xxxhana/.npmrc
@sap:registry = "https://registry.npmjs.org/"
; default values

Ok sorry about that.  Definitely on my side.  It was the package-lock.json still having npm.sap.com entries in it. But just pushed and corrected that. Should be all good now. Thanks!


special characters in names

in papers.yml, one author last name contains a special Vietnamese character: Lưu
So the proceedings don't compile with the following error:
! Package inputenc Error: Unicode character ư (U+01B0) (inputenc) not set up for use with LaTeX.

Can author names contain such characters, or should the name be modified? The ACL Anthology allows for diacritics in surnames (like Müller) but I'm not sure about ư.
Related to https://github.com/acl-org/aclpubcheck/issues/25

Aclpub2 generates LaTeX that shuold be compiled when in utf8. Can you try to replace with ư ?

The Anthology supports any unicode character. The issue here is just with your LaTeX setup.

Aclpub2 generates LaTeX that shuold be compiled when in utf8. Can you try to replace with ư ?

Sorry I didn't understand. Yes, I had tried to compile with ư but it gives the compilation error indicated above.
Following the ACL template for papers, this compilation problem can be solved if I add \usepackage[T5]{fontenc} to proceedings.tex.

great

We will check ASAP if \usepackage[T5]{fontenc} works well in general and replace in the official release

I commented on this issue in the Readme.
The input templates use the T1 font encoding. If you are interested in different encodings (e.g., Vietnamese) you have to modify the aclpub2/templates/proceedings.tex by changing the statement \usepackage[T1]{fontenc} and specifying a different encoding, e.g., \usepackage[T5]{fontenc}.
It should solve the issue.

I resolved the Unicode issues on Windows / Ubuntu Terminal by installing
apt-get install language-pack-ne language-pack-ne-base mythes-ne ttf-devanagari-fonts libreoffice-l10n-ne


Why FluentFTP is slower than other tools such as FlashFXP or FileZilla

I use FluentFTP to upload twenty smal files, used 15 senconds，then I use FlashFXP or FileZilla just used 2 senconds, I watch the monitor, the time between two commands is more longer. How to improve the speed. Thanks!
DirectoryInfo dir = new DirectoryInfo(@"C:\imgs\");
foreach (FileInfo f in dir.GetFiles())
{
	client.UploadFile(f.FullName, "/20180906/" + f.Name);
}

No real ways to improve the speed. It is what it is. Sorry.


Automated tests

Are there any plans to add automated tests to this project?
I think this is crucial, as:

the documentation is sparse (especially for the scriptsdir stuff)
users will download the latest phar (according to the README), breaking existing functionality can be hard to spot (especially as there are no released versions or a CHANGELOG)

First candidates I see would be the scriptsdir stuff (as I also had the most problems with it), to address #34, #56, #57.
In the first step, only package creation can be tested, not deploying itself (which could be added later on). So errors like #35 could be catched.
E.g. I could not find documentation on how the "persistent resources" feature is working (which did not in my case): http://files.zend.com/help/Zend-Server/content/understanding_the_package_structure.htm

CI using Travis is now part of the project.( See commits: ecdab080090b12a6ead50e1babe468e6b22f0653, f56d829888a58a5d6966c75062cd2ad8d9bea4f0,

:+1: !


velocity_from_position not behaving as expected

I think velocity_from_position (and similarly some other related functions) are not behaving as expected. If the time axis is not the last (-1), isn't the intension to return an output of the same size as the input? See the case below where I expect u to be the same size as x
x = np.random.rand(10,20,100)
y = np.random.rand(10,20,100)
t = np.tile(np.arange(0,100),(10,20,1))
u,v = velocity_from_position(x,y,t,time_axis=0)
display(np.shape(x))
display(np.shape(u))

(10, 20, 100)
(100, 10, 20)

Maybe a solution is to use numpy.swapaxes as I do in my PR #228

Indeed, that doesn't look correct. The first step is for us to understand why exactly it doesn't work, and why the existing test for N-d didn't catch it.

Because the nd-array tests are run for time_axis=-1. They would fail if time_axis!=-1

Working on this next.


Remove PnP work-around for Smoke Test

🗣 Description
Removes un-needed work-around for loading correct PnP version. Now handled by SetUp.ps1 directly.
closes #724
💭 Motivation and context
Desires single point for controlling required modules.
🧪 Testing
Ran smoke test workflow w/o work-around successfully
📷 Screenshots (if appropriate)

✅ Pre-approval checklist

[X] This PR has an informative and human-readable title.
[X] Changes are limited to a single goal - eschew scope creep!
[X] All future TODOs are captured in issues, which are referenced
in code comments.
[X] All relevant type-of-change labels have been added.
[X] I have read the CONTRIBUTING document.
[X] These code changes follow cisagov code standards.
[X] All relevant repo and/or project documentation has been updated
to reflect the changes in this PR.
[X] Tests have been added and/or modified to cover the changes in this PR.
[X] All new and existing tests pass.

✅ Pre-merge checklist

[ ] Revert dependencies to default branches.
[ ] Finalize version.

✅ Post-merge checklist

[ ] Create a release.

@nanda-katikaneni  Ready to merge into Flipper


seems google's sct site down constantly??

[root@localhost GSDF]# proxychains4 python3 GSDFT.py -d google.com -e hide
[proxychains] config file found: /usr/local/etc/proxychains.conf
[proxychains] preloading /usr/local/lib/libproxychains4.so
[proxychains] DLL init: proxychains-ng 4.12
[proxychains] DLL init: proxychains-ng 4.12

    `______`````______`````_____`````______``
    /\``___\```/\``___\```/\``__-.``/\``___\`
    \`\`\__`\``\`\___``\``\`\`\/\`\`\`\``__\`
    `\`\_____\``\/\_____\``\`\____-``\`\_\```
    ``\/_____/```\/_____/```\/____/```\/_/```
    `````````````````````````````````````````
       Author:Wester@Sixtant Security Lab

[+]Searching subdomains for google.com
[proxychains] Strict chain  ...  <IP_ADDRESS>:1080  ...  transparencyreport.google.com:443 <--socket error or timeout!
[+]Error exit...

btw, I use proxychains-ng, nice and easy tool.
I tried in hours ....  and there is no further info in GSDF/log folder ...
and another question of GSDF, I can not enter the Terminal window as that it is said with python3 GSDFT.py, only give me the usage help, like this:
[root@localhost GSDF]# proxychains4 python3 GSDFT.py
[proxychains] config file found: /usr/local/etc/proxychains.conf
[proxychains] preloading /usr/local/lib/libproxychains4.so
[proxychains] DLL init: proxychains-ng 4.12
[proxychains] DLL init: proxychains-ng 4.12

    `______`````______`````_____`````______``
    /\``___\```/\``___\```/\``__-.``/\``___\`
    \`\`\__`\``\`\___``\``\`\`\/\`\`\`\``__\`
    `\`\_____\``\/\_____\``\`\____-``\`\_\```
    ``\/_____/```\/_____/```\/____/```\/_/```
    `````````````````````````````````````````
       Author:Wester@Sixtant Security Lab

usage: GSDFT.py [-h] -d SEARCH_DOMAIN [-s SAVE_PATH] -e SHOW_EXPIRED
GSDFT.py: error: the following arguments are required: -d/--domain, -e/--expired

I HAVE to run with -d and -e, is it right?  I run it in Centos 7, python 3.4.5

Yes,I just test it on python2.7.

Could you tell me what does your command look like?

... faint ... I tried within python2.7, it started downloading, well with proxychains too.
I have NOT seen the python2.7 on project home page yet ...
but still get ssl error, can not save the result of show in terminal:
EOF occurred in violation of protocol (_ssl.c:590) [+]Error exit...
as the advice of requests author, better using session instead of, so I make a pull request, wait for me mins.
https://github.com/requests/requests/issues/3391#issuecomment-231576728

seems requests.Session().get much stronger than requests.get, all is well

OK,have a nice day!


(BOLT-578) Report bundled content to GA

Include the name of the task/plan being run if that name refers to a piece of built-in content. The task/plan name should not be included if it isn't a piece of bundled content, as the name may be sensitive.

CLA signed by all contributors.

Plan to move logic such that tasks/plans not directly called via CLI will be captured (possibly in run_task?).

It looks like somehow when you updated you pulled in all the changes from https://github.com/puppetlabs/bolt/commit/f16c05f68d6cc5bcb81eedd0db2fb705fb395c0c.

A git reset --hard upstream/master && git cherry-pick 44ace3194511679343bf22c7a523d75f04b58e50 would probably fix that.

Yes that was a mistake. I will clean that up.