stm32: g0b1re: Serial UART timing issue after MCU entered deep sleep

Describe the bug
The log starts to print very slowly and wrong string after the MCU entered deep sleep, Im guessing that it is related to some uart timing issue.
To Reproduce

Build anything that logs something through serial UART, then enter LPM on Nucleo G0B1
See error

Expected behavior
The serial print shouldn't be affected by LPM.
Impact
LOG isn't working correctly after LPM.
Logs and console output
[00:00:46.981,000] <inf> modem_gsm: RSSI: -63
[00:00:47.594,000] <inf> telemetry_mqtt: MQTT Keepalive
[00:00:50.095,000] <inf> telemetry_mqtt: MQTT Keepalive
[00:00:50.606,000] <inf> telemetry_mqtt: MQTT client disconnected 0
<-------- entered LPM here -------->
øJ[00:00:51.35,000] <wrn> hwmanger: Alloe to sleep[m
[1;2mgmoc:~ $ [mÄø[00:051.5,000] <b> hw_mana

Environment (please complete the following information):

Zephyr v2.7 RC1

Additional context
Tipped by @erwango that it could be related to this commit introduced from a4f6a3a85afa7eac45b339266ccd04ce49e7e9f4 this PR #36759, and is seems to be the case.
After I edited uart_stm32.c like so:
#ifdef CONFIG_PM_DEVICE
static int uart_stm32_pm_control(const struct device *dev,
				 enum pm_device_action action)
{
	USART_TypeDef *UartInstance = UART_STRUCT(dev);

	/* setting a low power mode */
	switch (action) {
	case PM_DEVICE_ACTION_RESUME:
		break;
	case PM_DEVICE_ACTION_SUSPEND:
		__fallthrough;
	case PM_DEVICE_ACTION_FORCE_SUSPEND:
		__fallthrough;
	case PM_DEVICE_ACTION_LOW_POWER:
#ifdef USART_ISR_BUSY
		/* Make sure that no USART transfer is on-going */
		while (LL_USART_IsActiveFlag_BUSY(UartInstance) == 1) {
		}
#endif
		while (LL_USART_IsActiveFlag_TC(UartInstance) == 0) {
		}
#ifdef USART_ISR_REACK
		/* Make sure that USART is ready for reception */
		while (LL_USART_IsActiveFlag_REACK(UartInstance) == 0) {
		}
#endif
		/* Clear OVERRUN flag */
		LL_USART_ClearFlag_ORE(UartInstance);
		/* Leave UartInstance unchanged */
		break;
	default:
		return -ENOTSUP;
	}

	/* UartInstance returning to active mode has nothing special to do */
	return 0;
}
#endif /* CONFIG_PM_DEVICE */

It is working correctly again.
[00:00:46.975,000] <inf> modem_gsm: RSSI: -61
[00:00:47.578,000] <inf> telemetry_mqtt: MQTT Keepalive
[00:00:50.079,000] <inf> telemetry_mqtt: MQTT Keepalive
[00:00:50.590,000] <inf> telemetry_mqtt: MQTT client disconnected 0
[00:00:51.341,000] <wrn> hw_manager: Allowed to sleep
[00:00:51.341,000] <dbg> hw_manager.hw_man_release: Released HW_MAN_DEV_SOC
[00:00:51.341,000] <wrn> hw_manager: Stopped modem
[00:00:51.341,000] <dbg> hw_manager.hw_man_release: Released HW_MAN_DEV_MODEM
[00:00:51.341,000] <inf> telemetry_mqtt: Stop OK
gmoc:~ $

I don't know how the PM works and what pm_device_action exactly represents, what I know from my observation is:
This is required
	case PM_DEVICE_ACTION_RESUME:
		break;

Some or both of these are required
	case PM_DEVICE_ACTION_SUSPEND:
		__fallthrough;
	case PM_DEVICE_ACTION_FORCE_SUSPEND:
		__fallthrough;

@erwango @gmarull

This pr https://github.com/zephyrproject-rtos/zephyr/pull/38432 much likely fix this problem.

@ycsin Would you mind providing here all the info you shared in #38521 ?
Also provide details on your specific implementation.

@ycsin Would you mind providing here all the info you shared in #38521 ?
Also provide details on your specific implementation.

My board is a G0B1RE + Quectel EC21 modem combo.
I have this in my main to test the stability of gsm_ppp modem
	hw_man_init();

	while (true)
	{
		printk("\r\n\r\n%d: Turn on modem \r\n\r\n", i);

		hw_man_request(HW_MAN_DEV_MODEM);

		k_sleep(K_SECONDS(40));

		printk("\r\n\r\n%d: Turn off modem \r\n\r\n", i);

		hw_man_release(HW_MAN_DEV_MODEM);

		k_sleep(K_SECONDS(20));

		i++;
	}

hw_man is the hardware manager I mentioned, basically a wrapper for Zephyr's onoff_manager. As I've said this mainly solves the hardware dependency problem where the modem sends unsolicited data to the MCU through uart and current stm32's uart driver lacks the ability to wake the MCU to process these data, so I have to keep the MCU awake while the modem is on.
Snippet of hw_man.c:
int hw_man_init(void)
{
	int i;

	if (ctx.initialized)
	{
		return -EALREADY;
	}

	for (i = 0; i < HW_MAN_DEV_MAX; i++)
	{
		onoff_manager_init(&ctx.srv[i], &ctx.transitions[i]);
	}

	ctx.initialized = true;

	return 0;
}

int hw_man_request(enum hw_man_dev dev)
{
	int					ret;
	struct onoff_client cli;

	if ((dev < 0) || (dev >= HW_MAN_DEV_MAX))
	{
		LOG_ERR("Dev %d doesn't exist", dev);
		return -EINVAL;
	}

	if (!ctx.initialized)
	{
		LOG_ERR("HW manager not initialized yet");
		return -EACCES;
	}

	sys_notify_init_spinwait(&cli.notify);
	ret = onoff_request(&ctx.srv[dev], &cli);

	if (ret < 0)
	{
		LOG_ERR("onoff_request returned %d", ret);
	}

	LOG_DBG("Requested %s", hw_man_dev[dev].hw_dev_str);

	return 0;
}

int hw_man_release(enum hw_man_dev dev)
{
	int ret;

	if ((dev < 0) || (dev >= HW_MAN_DEV_MAX))
	{
		LOG_ERR("Dev %d doesn't exist", dev);
		return -EINVAL;
	}

	if (!ctx.initialized)
	{
		LOG_ERR("HW manager not initialized yet");
		return -EACCES;
	}

	ret = onoff_release(&ctx.srv[dev]);

	if (ret < 0)
	{
		LOG_ERR("onoff_release %s returned %d",
				hw_man_dev[dev].hw_dev_str,
				ret);
	}
	LOG_DBG("Released %s", hw_man_dev[dev].hw_dev_str);

	return 0;
}

Snippet of the modem pluggin:
/**
 * @brief Transition-to-start function for modem
 */
void hw_man_modem_start(struct onoff_manager *mgr, onoff_notify_fn notify)
{
	const struct device *dev;

	LOG_INF("Starting modem");

#if CONFIG_MODEM_GSM_PPP
	dev = DEVICE_DT_GET(DT_INST(0, zephyr_gsm_ppp));
	gsm_ppp_start(dev);
#endif /* CONFIG_MODEM_GSM_PPP */

	hw_man_request(HW_MAN_DEV_SOC);

	LOG_WRN("Started modem");
	notify(mgr, 0);
	return;
}

/**
 * @brief Transition-to-stop function for modem
 */
void hw_man_modem_stop(struct onoff_manager *mgr, onoff_notify_fn notify)
{
	const struct device *dev;

#if CONFIG_MODEM_GSM_PPP
	dev = DEVICE_DT_GET(DT_INST(0, zephyr_gsm_ppp));
	gsm_ppp_stop(dev);
#endif /* CONFIG_MODEM_GSM_PPP */

	hw_man_release(HW_MAN_DEV_SOC);

	LOG_WRN("Stopped modem");
	notify(mgr, 0);
	return;
}

Snippet of the SOC plugin:
/**
 * @brief Prevents the Zephyr from entering SUSPEND_TO_IDLE state, equivalent
 * to STM32's STOP mode.
 */
void hw_man_soc_start(struct onoff_manager *mgr, onoff_notify_fn notify)
{
	pm_constraint_set(PM_STATE_SUSPEND_TO_IDLE);
	if (!pm_constraint_get(PM_STATE_SUSPEND_TO_IDLE))
	{
		LOG_WRN("Disallowed from sleep");
		notify(mgr, 0);
	}
	else
	{
		LOG_ERR("Unable to wake SOC!");
		notify(mgr, -EFAULT);
	}
	return;
}

/**
 * @brief Allow the Zephyr to enter SUSPEND_TO_IDLE state, equivalent
 * to STM32's STOP mode.
 */
void hw_man_soc_stop(struct onoff_manager *mgr, onoff_notify_fn notify)
{
	pm_constraint_release(PM_STATE_SUSPEND_TO_IDLE);
	if (pm_constraint_get(PM_STATE_SUSPEND_TO_IDLE))
	{
		LOG_WRN("Allowed to sleep");
		notify(mgr, 0);
	}
	else
	{
		LOG_ERR("Unable to sleep");
		notify(mgr, -EFAULT);
	}
	return;
}

@ycsin Would you mind providing here all the info you shared in #38521 ?
Also provide details on your specific implementation.

#38552

Closed in favor of #38552


Support for boost-histogram 0.10.0

In https://github.com/scikit-hep/boost-histogram/issues/410, @HDembinski requested that I add an underscore to sum_of_weighted_deltas_squared, and this has broken Uproot's to_boost() method on TProfiles.
Now when reading a TProfile, we get the error:
AttributeError                            Traceback (most recent call last)
<ipython-input-10-d946cc02fe81> in <module>
----> 1 mplhep.histplot(rfile['hprof;1'].to_boost())

/usr/local/Caskroom/miniconda/base/envs/bh-talk/lib/python3.8/site-packages/uproot4/behaviors/TProfile.py in to_boost(self)
    178         view.sum_of_weights_squared
    179         view.value = values
--> 180         view.sum_of_weighted_deltas_squared
    181
    182         raise NotImplementedError(repr(self))

AttributeError: 'WeightedMeanView' object has no attribute 'sum_of_weighted_deltas_squared'

This doesn't even seem to be used as far as I can tell...

The reason this was left half-implemented was to get input on how to make a sum-of-weights histogram in Boost. The code that's there goes into the ROOT minutiae of how to produce exactly the right errors for all the TProfile error modes; now I just need to know how to populate the boost-histogram view.
There are four error modes for TProfile, only one of which is the error on the mean. (The others are error estimates on the individual points that the bin was filled with, under different assumptions.) The user's choice of error mode is part of ROOT's metadata for the TProfile. By default, the to_numpy function returns (values, errors) for the error mode given in the metadata (and it's also a parameter of the to_numpy method).
What should happen in to_boost and to_hist? Always pick the error on the mean? If so, perhaps it should be calculated using the values_errors method and then squared? ROOT's method of calculating errors, even the errors on the mean, is not simple.

@jpivarski We have two "profiles", one computes the mean (storage.Mean), the other computes the weighted mean (storage.WeightedMean). The latter requires more memory per cell and is a bit slower, but handles the uncertainty of weighted samples properly. A conversion from TProfile may require storage.WeightedMean to be lossless, but it depends on the values that the user has fed into the TProfile.
Regarding to your other question, Boost-Histogram always returns the value and the variance of that bin, so in case of a profile, it returns the variance of the samples in the bin, not the error on the mean.

Our method of calculating errors is also not simple. The formulas are not simple, when you implement them in a numerically stable way.

I meant we're going to have a hard time synchronizing them, such that we fill containers with values that mean the same thing, though they might be computed differently. I was hoping for a shortcut or something transparent.
Maybe this will help, though: the ROOT documentation on TProfiles presents a high-level notational view: https://root.cern.ch/doc/master/classTProfile.html. The part that I've figured out is how to turn the data from C++ members into what they call GetBinContent(j) and GetBinError(j) on this page, for all of the four error options ("", "s", "i", "g"). From what you wrote above, it sounds like storage.WeightedMean is GetBinContent(j) for the Boost mean and GetBinError(j)**2 with option "s" for the Boost variances. I don't think ROOT's TProfile has an equivalent of an unweighted mean.
I see no evidence for an adjustment for degrees of freedom in ROOT's derivation (what would typically be N - 1), so I think we're safe in squaring the "spread" to get true variances. If Boost histograms have a function for deriving display error bars from variances, that can be a good closure test that we've interpreted it right.
(I've been calling it "ROOT's calculation" all over the place, but I distinctly remember it from the HBOOK documentation. There it is, on page 51 under CALL HBPROF: http://osksn2.hep.sci.osaka-u.ac.jp/~taku/doc/hbook.pdf)

The high-level notation seems useful. In Boost Histogram, I used the convention that variance really always means the variance in that bin. If you make a weighted histogram, it is at the variance of the weights. If you mean a profile, it is the variance of the samples.

I think this has been implemented and it's just a matter of getting the Uproot → boost-histogram interface right, if it's not right now. Anyway, this is marked as a duplicate.

All of these duplicates will all go into #167, where this interface will get figured out, once and for all.


Add PWA modal asking installation request

Show the pop-up modal if the user hasn't installed the game. Add don't show anymore option and disable it.

Branch: feature-task-pwa-modal
Leave a message if you are developing it 🤙

MI'm doing it


Not working with JSON columns

I have a JSON column, imported from sqlalchemy.dialects.postgresql and pyramid_sacrud seems not being able to recognise it as a JSON type.
If I go to an object's page in the admin which contains a JSON field, it returns:

NotImplementedError: Not able to derive a colander type from
sqlalchemy type: JSON()  Please explicitly provide a colander 'typ'
for the "geojson" Column.

My problem is that I found no information on the internet about how can I set the a 'typ' column for my JSON column. How can I fix it?

pyramid_sacrud uses  for configuration colanderalchemy.  Therefore, for each field of model, you can override his type for form (see docs http://colanderalchemy.readthedocs.org/en/latest/customization.html#worked-example).

class MyModel(Base):
    geojson = Column(
        JSON,
        info={'colanderalchemy': {
            'typ': colander.String(),
            'widget': deform.widget.TextAreaWidget(),
        }})

Such a solution would be to write json as a string. It's not right, I'll try to fix it in the next release.

Thanks, that solves part of the problem but it replaces valid JSON into an escaped string. So
{"a": 1, "c": 3, "b": 2} becomes
"{u\'a\': 1, u\'c\': 3, u\'b\': 2}"
Is there any way to disable this escaping and use json.loads / dumps as serializers?

I wrote a custom colander type, which works well:
class JSONType(colander.SchemaType):
    def serialize(self, node, appstruct):
        if appstruct is colander.null:
            return colander.null

        return json.dumps(appstruct, indent=2, ensure_ascii=False)

    def deserialize(self, node, cstruct):
        if not cstruct:
            return colander.null

        try:
            return json.loads(cstruct)
        except Exception:
            raise colander.Invalid(node, '"{}" is not a valid JSON'.format(cstruct))

@hyperknot thanks a lot! I rewrote the logic now if typ is not defined it set as JSONType (see https://github.com/ITCase/sacrud_deform/commit/228d5c8e75e10e2b50177eadad09290892153a88).
Update version of sacrud>=0.3.3 and sacrud_deform>=0.0.9:
pip install -U sacrud sacrud_deform

And then you can do so (without set typ):
class MyModel(Base):
    geojson = Column(
        JSON,
        info={'colanderalchemy': {
            'widget': deform.widget.TextAreaWidget(),
        }})

Thanks, works well!


Support for gradients with more than two colors

Is it intentional that this library of gradients only contains gradients between two colors? If so, that should be added to the README -- if not, should that be something we implement?

For the sake of simplicity, we decided to keep the gradients, only between two colors. I will be sure to include it in the read me. Thanks.


Random reboots

iPhone 12 iOS 14.5.1, had two reboots in 3 days.
Wake bug didn’t happen after updating, but this is.
After second reboot, unable to open untether app, and I am completely cut out of jailbreak until I sideload unc0ver.
EDIT: 2 minutes after reboot, Untether app suddenly works and I can jailbreak.
EDIT2: Phone freezed, screen went pink and rebooted.
looks like uncover glitch, but who knows.

I don't have issues iphone 12 14.5.1

Nothing happening for a day now.
Similar things happened with unc0ver on 12,4

Screen pink? Interesting

Phone just freezed and screen went pink, then rebooted.
Today, when i swipe down on home screen to search for apps, everything is frozen. Keyboard doesn’t pop up and everything is unresponsive, only thing I can do is push home from bottom

You can restore RootFS and jailbreak again. My phone is completely stable except for battery graph display issue in settings.

I actually also noticed the pink screen a week ago, it didn’t cause reboots, but I it was definitely present (it would flash within a millisecond of doing random things like multitasking) I haven’t seen it since I’ve updated but I have been dealing with random reboots on the latest version as well, I’m about to actually restore rootfs and rejailbreak

I tried just rejailbreaking and everything seems to work.
Weird

Kinda same here on my 2020 iPad Pro 11’: opened a messaging app and the screen went black with pink stripes and iPad rebooted. After that the Untether app was not opening. Happened just once tho. I’m on the latest version of unc0ver & fugu14.

iPhone 12 iOS 14.5.1, had two reboots in 3 days. Wake bug didn’t happen after updating, but this is. After second reboot, unable to open untether app, and I am completely cut out of jailbreak until I sideload unc0ver. EDIT: 2 minutes after reboot, Untether app suddenly works and I can jailbreak. EDIT2: Phone freezed, screen went pink and rebooted.
looks like uncover glitch, but who knows.

Kinda same here on my 2020 iPad Pro 11’: opened a messaging app and the screen went black with pink stripes and iPad rebooted. After that the Untether app was not opening. Happened just once tho. I’m on the latest version of unc0ver & fugu14.

iPhone 12 iOS 14.5.1, had two reboots in 3 days. Wake bug didn’t happen after updating, but this is. After second reboot, unable to open untether app, and I am completely cut out of jailbreak until I sideload unc0ver. EDIT: 2 minutes after reboot, Untether app suddenly works and I can jailbreak. EDIT2: Phone freezed, screen went pink and rebooted.
looks like uncover glitch, but who knows.

Kinda same here on my 2020 iPad Pro 11’ 14.4: opened a messaging app and the screen went black with pink stripes and iPad rebooted. After that the Untether app was not opening. Happened just once tho. I’m on the latest version of unc0ver & fugu14.

Yeah, app won’t open, after reboot it works.
Today I happened to be unable to open messages, notes or contacts, while dialer worked. Just black screen and it crashes.
Rebooted, jailbroken, works again

@sshrmr @fikaa73 Theres an issue on pwn2Ownd/Undecimus GitHub for this issue. It's an inherent bug in uncover / Fugu14 on iOS 14.4-14.8 with no solution yet.
You can prove the bug by running Fruit Ninja 2, this has a 100% Failure rate, it will kernel panic before you can enter the first level of the game.


OAuth2 support

Is your feature request related to a problem? Please describe.
First of all thank you for this amazing library. Finally, a well-maintained library for sending emails with Go.
I'm using this library in SFTPGo since version 2.5.0 and it works fine.
I was wondering if there is a plan to add OAuth2 support:
https://developers.google.com/gmail/imap/xoauth2-protocol
https://learn.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth
Describe the solution you'd like
The Golang oauth2 library could be used to implement the token exchange. Once we have the token the library should be able to implement and use the  log in with the XOAUTH2 mechanism.
I'm not sure if this feature should be added here, in a plugin or is outside the scope of this project
Describe alternatives you've considered
No response
Additional context
No response

Hi @drakkan, thanks for opening this issue and for the nice words. It still baffles me that a packages that started as a mail solution for my small mail service if now used by big projects like SFTPGo, Authelia, uptrace or Vikunja.
I think XOAUTH2 support would be a great addition for the libraby and it should be easy to implement from what I see in the doc you provided. I would leave the token exechange out of it for now, since so far the premise of the lib was to only rely on the Go stdlib. Do you think that would help or would you need the whole token exchange as well?

Hi @drakkan, thanks for opening this issue and for the nice words. It still baffles me that a packages that started as a mail solution for my small mail service if now used by big projects like SFTPGo, Authelia, uptrace or Vikunja.

I believe it's because the Go libraries for sending emails are not well maintained. All it took was a quick look at the go-mail code to decide to use it :smile:

I think XOAUTH2 support would be a great addition for the libraby and it should be easy to implement from what I see in the doc you provided. I would leave the token exechange out of it for now, since so far the premise of the lib was to only rely on the Go stdlib. Do you think that would help or would you need the whole token exchange as well?

I'm not sure, I'll do some testing with my gmail account as soon as I have some free time to see how it might work. I could manage the token exchange directly in SFTPGo. Thank you for considering this feature!
I'm surprised that the other projects you mentioned above don't need this feature

The reason is precisely the lack of maintenance of many libraries as well as cumbersome API's.
As far as "need" we have not had a lot of interest in the particular feature, however it would be useful to have support all the same, and fairly sure people would use it if the option was available. Specifically for cloud services.
Also somewhat related is the opportunistic auth we use: https://github.com/authelia/authelia/blob/master/internal/notification/smtp_auth.go

Helpful:

https://documentation.open-xchange.com/7.10.2/middleware/mail/dovecot/oauth_2.0_with_postfix_and_dovecot.html
https://github.com/tarickb/sasl-xoauth2

I have a working proof of concept tested with Gmail
0001-WIP.zip
I still need to understand/fix some things about token exchange (currently I only get an access token, I need a refresh token instead so I can get access tokens in background), as for the SMTP part the only complication is that Gmail and Exchange have a small difference (see the docs linked above):

After an error Gmail want an empty response (as done in the above patch)
Exchange online doesn't want this empty response

I'm not sure if we can auto-detect it somehow (if host is smtp.gmail.com?) or if go-mail needs to know if it's talking to gmail or not.
For now I have no way to test with Exchange online. I will finalize this patch (doc, test cases etc) if I add this feature to SFTPGo.
Thank you!

Is there a difference in how they advertise the auth extension when you check via telnet?  I'd aim to base it on that  if possible. Otherwise make it an administrator choice is probably best, with the default being which ever of the two Dovecot supports (or if there are  other known providers of this mechanism make it whatever the theoretical majority use case will be).

Is there a difference in how they advertise the auth extension when you check via telnet? I'd aim to base it on that if possible with the option for implementers to override it. Otherwise make it an implementer choice is probably best, with the default being which ever of the two Dovecot supports (or if there are other known providers of this mechanism make it whatever the theoretical majority use case will be).

Dovecot seems to support the Google variant. See #130. Thank you!

Thank you! I'll let you know how the testing goes, the person who asked will be using Exchange Online

Perfect! Looking forward to your response


Infinite wait in FOSVRHMD.cpp

There is a flaw in the waiting for display loop in the constructor of FOSVRHMD. Currently it is using FDateTime::Now().GetSecond() which returns the current second of the minute, so it goes to 0 at instead of 60. So if you hit this with three seconds before the end of the current minute, it will never end (assuming it never succeeds).
Replace with
double now = FPlatformTime::Seconds();
const double end = now + 3.0f;

while (!bDisplayConfigOK && (now < end))
{
	bDisplayConfigOK = osvrClientCheckDisplayStartup(DisplayConfig) == OSVR_RETURN_SUCCESS;
	if (!bDisplayConfigOK)
	{
		bFailure = osvrClientUpdate(osvrClientContext) == OSVR_RETURN_FAILURE;
		if (bFailure)
		{
			UE_LOG(OSVRHMDLog, Warning, TEXT("osvrClientUpdate failed during startup. Treating this as \"HMD not connected\""));
			break;
		}
	}
	FPlatformProcess::Sleep(0.2f);

	now = FPlatformTime::Seconds();
}

Thanks for reporting this!


consumeItems throws errors and makes the player who obtained a Bingo item lose connection

Bingo definitions with lockTaskOnDeath set to "true" throw errors and make the player who obtained a Bingo item or block lose connection on dedicated servers. It seems that this issue doesn't occur on the internal server (or at least I weren't able to reproduce it there).
Server log showing the thrown errors:
https://pastebin.com/dqa7Bi7S
This issue occurs on the following configurations (I didn't test other configs):

Minecraft version: 1.16.4
Bongo versions: 1.0.4, 1.0.12 from Maven
LibX version: 1.0.10
Forge version: 35.1.4

Actually not lockTaskOnDeath is causing this but consumeItems

Actually not lockTaskOnDeath is causing this but consumeItems

My bad. I accidentally copied a wrong line :/

My bad. I accidentally copied a wrong line :/

My bad. I accidentally copied a wrong line when I was writing this issue report :/

My bad. I accidentally copied a wrong line when I was writing this issue report :/

No problem. I'm glad someone report these issues.

No problem. I'm glad someone report these issues.

Thank you for such a small but great mod :)

Thank you for such a small but great mod :)


Bluetooth: BR: Bt classic auto pts setup

Due to the PR was closed due to the source branch has been deleted. Create a new PR for the changes.
This PR is used to add BR/EDR PTS support to bt_tester.
Test Suite for BR/EDR,

[x] GAP
[x] L2CAP
[x] SMP
[x] SDP

The changes for auto-pts script is here

Please split this up into multiple smaller pull requests. It will be easier to review, and you'll avoid some frustration by being able to see quicker progress (some of the PRs will be possible to merge sooner than others).


 tag - External links handling does'nt work

Describe the bug
When i use <i18n-link> tag for an external site, the redirection doesn't work.
<i18n-link to="www.external-link.fr">My external Link</i18n-link>
-> Result : https://www.mydomain.fr/www.external-link.fr, the external redirection doesn't work, it's an internal redirection.
To Reproduce
Steps to reproduce the behavior:

Use <i18n-link to="www.external-link.fr">My external Link</i18n-link> with external domain
Click on the link
The external redirection doesn't work, it's an internal redirection.

Expected behavior
Detect whether the to parameter is intended for an external website or an internal website. To redirect correctly if it's an internal or external link
Additional context
The documentation : https://s00d.github.io/nuxt-i18n-micro/components/i18n-link#external-links-handling
I see that you're using $localeRoute(to) for the to parameter, so it doesn't matter whether it's an external link or an internal redirect, you redirect to internal link.
<template>
  <NuxtLink
    :to="$localeRoute(to)"
    :style="activeStyle"
  >
    <slot>Go to Page</slot>
  </NuxtLink>
</template>

Thank you so much 🙂

I'm on vacation, I'll be back in a couple of days and I'll take a look

try v1.40.0


Create process document

Once membership gets approved, projects should add themselves to the @typelevel site. A process needs to be written how it works (it's simple, but still).
Additionally, we might want to clarify how/when projects can be moved to the @typelevel org.

There's a description of the current process in the typelevel.github.com readme, and the way projects are added is specified by the new charter.


Doesn't update properly

I am using it to update the logo image src path based on the color mode.
It looks like this:
<img
        :src="$colorMode.value === 'dark' ? '/img/logo/logo-dark.svg' : '/img/logo/logo-light.svg'" />

If my selection is saved in cookies it works properly and displays the correct logo. But if it relies on the system preference only then it loads the logo for the light version, because the initial result of $colorMode.value is system and then it changes to dark (as this is my preference on Mac OS) but the logo doesn't update accordingly.
It seems that $colorMode.value is system as long as the page is still loading, after the page is fully loaded, the value is then either light or dark.
If I switch from nuxt universal mode to SPA it seems to load correctly and show the actual color mode immediately (though I'm not sure if it's because it loads faster and I can't notice it).
Any ideas?

It is normal behavior since we can detect the system preference only on client side.
Wrap your image with  component, it will avoid the flash on client-side (see caveats section in README)


Missing documentation on features

The Cargo.toml features of this crate appear to be undocumented. For example:

What is the difference between alloc in this crate, in esp-idf-svc and alloc_handler in esp-idf-sys?
There appear to be embassy related features, is that a work in progress or ready?
The critical-section feature, when do I need it?

I'm new to embedded Rust, and I'm finding the three idf crates (hal, sys and svc) quite confusing. Some brief overview documentation would go a long way.

Closing in favor of #258


Pulp node package breaks with error about asyncWrite.

Issue description
When trying to invoke pulp init with the version supplied in nixpkgs it breaks with the following error:
/nix/store/qmms9252s15znp1wj7c8n71q3vsysbnh-node-pulp-12.0.1/lib/node_modules/pulp/node_modules/readable-stream/lib/_stream_writable.js:470
      asyncWrite(afterWrite, stream, state, finished, cb);
      ^

TypeError: asyncWrite is not a function
    at onwrite (/nix/store/qmms9252s15znp1wj7c8n71q3vsysbnh-node-pulp-12.0.1/lib/node_modules/pulp/node_modules/readable-stream/lib/_stream_writable.js:470:7)
    at WritableState.onwrite (/nix/store/qmms9252s15znp1wj7c8n71q3vsysbnh-node-pulp-12.0.1/lib/node_modules/pulp/node_modules/readable-stream/lib/_stream_writable.js:180:5)
    at ConcatStream._write (/nix/store/qmms9252s15znp1wj7c8n71q3vsysbnh-node-pulp-12.0.1/lib/node_modules/pulp/node_modules/concat-stream/index.js:46:3)
    at doWrite (/nix/store/qmms9252s15znp1wj7c8n71q3vsysbnh-node-pulp-12.0.1/lib/node_modules/pulp/node_modules/readable-stream/lib/_stream_writable.js:418:64)
    at writeOrBuffer (/nix/store/qmms9252s15znp1wj7c8n71q3vsysbnh-node-pulp-12.0.1/lib/node_modules/pulp/node_modules/readable-stream/lib/_stream_writable.js:407:5)
    at ConcatStream.Writable.write (/nix/store/qmms9252s15znp1wj7c8n71q3vsysbnh-node-pulp-12.0.1/lib/node_modules/pulp/node_modules/readable-stream/lib/_stream_writable.js:334:11)
    at Socket.ondata (_stream_readable.js:555:20)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)

Steps to reproduce
Note: If successful this will start creating a project in the current directory.
nix-shell -p node8Packages.pulp -p haskellPackages.purescript --command "pulp init"
Technical details
 - system: `"x86_64-linux"`
 - host os: `Linux 4.14.37, NixOS, 18.03.132304.45cd6090d9a (Impala)`
 - multi-user?: `yes`
 - sandbox: `no`
 - version: `nix-env (Nix) 2.0.1`
 - channels(root): `"nixos-18.03.132304.45cd6090d9a"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs`

@svanderburg I tried to create a derivation for this manually with node2nix and got the same issue, so it might be a node2nix issue under the hood, maybe?

@seanparsons Just checked it myself, and I'm having the same error. I guess the "flattening algorithm" is the culprit -- when I use the development version of node2nix with the --no-flatten parameter, it seems to work.
I guess the wrong (outdated) version of the readable-stream package is used for some reason. I need to investigate this.

Same for me on Darwin.

Hi, can you make an issue for this on the node2nix github page?
http://github.com/svanderburg/node2nix ?
I recently discovered a bug in the generator. I am still testing it, but
maybe the development version already solves it.
Op di 5 jun. 2018 22:04 schreef jacereda<EMAIL_ADDRESS>
Same for me on Darwin.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/issues/40406#issuecomment-394842143,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABGY9_6hBzuOnw69EQqboRdYDl3u4IWHks5t5uRfgaJpZM4T8dC9
.

I just checked the development version, and it seems to properly deploy
without showing the error. I'll try to speed up the upcoming release to get
this problem fixed.
On Tue, Jun 5, 2018 at 10:54 PM Sander van der Burg<EMAIL_ADDRESS>wrote:

Hi, can you make an issue for this on the node2nix github page?
http://github.com/svanderburg/node2nix ?
I recently discovered a bug in the generator. I am still testing it, but
maybe the development version already solves it.
Op di 5 jun. 2018 22:04 schreef jacereda<EMAIL_ADDRESS>
Same for me on Darwin.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/NixOS/nixpkgs/issues/40406#issuecomment-394842143,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABGY9_6hBzuOnw69EQqboRdYDl3u4IWHks5t5uRfgaJpZM4T8dC9
.

Nice. With "development version", are you referring to pulp or cabal2nix?

@jacereda The development version of node2nix

(triage) if I understand correctly this issue is solved in the latest version of node2nix? If so, this issue could be closed.


Research practices / Coding standards

is python the preferred language?
adding more tutorial resources?
example of code that can be linked?
tutorial / section about testing code (pytest etc.)

guidance on using GPT?

is python the preferred language?

IMO it's worth saying that Python is the most prevalent language, but some tasks are much better suited to R, especially on the side of statistics.
If we don't want to take a stand on "This is a Python lab" (and I don't think we should, but we kind of are and it's up to Russ to decide if that's official) it might be good to take one on "We use freely available, open source tools whenever possible."

tutorial / section about testing code (pytest etc.)

FWIW I have a presentation from some years ago: https://effigies.github.io/testing-scientific-software/

I agree - we should use whatever language makes the most sense given the particular problem. they should be open source languages (ie. no MATLAB or Stata) but I don't want to otherwise restrict what people use to do their work.


Add celsius-kafka to examples/python/README.md

add link and description to celsius-kafka in python/README

closes #1393

@nisanharamati Not to be nit-picky but @aturley has indicated multiple times that we should only make the specific changes for a particular issue.
#1393 doesn't seem to indicate anything about renaming the application. Is there another issue for the rename?

Erg. Good catch. I'll open a separate issue and PR for the name change.

I think that change rename should wait til after the hard launch. in case it breaks something that we've already tested.

@dipinhora please have another pass at it.

Separate issue for renaming: https://github.com/WallarooLabs/wallaroo/issues/1511


Specify that all nodes need to be the same exact Docker version for production UCP clusters

File: datacenter/ucp/2.0/guides/installation/plan-production-install.md
Can we specify on this page that for production UCP clusters, unless a temporary upgrade is occurring, all engines need to be the same x.y.z version number? We have seen several situations where this has caused issues and it should be documented.

UCP could issue a warning in the gui/cli too. "engine version discrepancy detected. Please upgrade all engines to the same version."

It looks like this one has already been fixed. Made a minor change to the page and added "exact" to same version to emphasize importance. See PR https://github.com/docker/docker.github.io/pull/2885

Submitted a new PR for the same fix for UCP version 2.1: https://github.com/docker/docker.github.io/pull/2924


cannot run docker-compose

Hi, is docker-compose supported on PWD? Not sure why the application cannot run, please see:
Update: chown to the same as docker command in the same directory yield the same "No such file or directory" error.

I made some updates in the env during the weekend and I probably broke something. Thx for reporting

Yeap, version 1.26 shown, works like a charm now!
Thanks, Marco


GitHubBot -> OctoBot + live demo

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sandbox/TOC.yml
:white_check_mark:Succeeded
View

sandbox/demos/githubbot.md
:white_check_mark:Succeeded
View

sandbox/demos/media/githubbot/azure-config.png
:white_check_mark:Succeeded
View

sandbox/demos/media/githubbot/azure-deploy.png
:white_check_mark:Succeeded
View

sandbox/demos/media/githubbot/luis-appid.png
:white_check_mark:Succeeded
View

sandbox/demos/media/githubbot/luis-publish.png
:white_check_mark:Succeeded
View

sandbox/index.yml
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


[Python] Create simple example of Python HTTP GET Arrow server

Describe the enhancement requested
Contribute a Python server example to the set of minimal HTTP GET examples in the arrow-experiments repo.
Component(s)
Python

Completed in https://github.com/apache/arrow-experiments/pull/1

Added support for HTTP/1.1 and chunked transfer encoding in https://github.com/apache/arrow-experiments/pull/12


HTTP Basic Authentication

@ianhanniballake does Muzei support links that have authentication attached to them? That is, going to a URL that is protected with htaccess authentication. I'm loading in artwork from a json file and it's imperative that I use authentication.
Here's an example URL of what I mean<EMAIL_ADDRESS>When I try to put this as a URL, Muzei and my app crash. Any ideas?

This isn't supported. What's the use case? Why do you need the authentication?

For use with a paid app where wallpapers are loaded in via URL but locked when accessing them from a web browser to prevent right-click, save as.
On Oct 8, 2015 5:15 AM, Roman Nurik<EMAIL_ADDRESS>wrote:This isn't supported. What's the use case? Why do you need the authentication?
—Reply to this email directly or view it on GitHub.

Ah. Muzei caches images on the sdcard so they're not really protected anyway :-/

Well that's true. But I'd imagine it's harder to gain access to said cache than it is to go on a website. As it is now, I've just randomized a folder name where the wallpapers are stored but I wish this existed in the lib somehow.
(I could attempt to add it but have no idea where to start!)

The cache is pretty easy to find on the sdcard, but at any rate, randomizing a folder name would be fine, and alternatively you can just create a custom content provider that does the HTTP fetches and passes the contents to Muzei (both unauthenticated http:// and content:// URIs are supported by Muzei)


Validate capabilities on recently added taps

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/2847
Originally created by @tayloramurphy on 2021-07-09 20:01:21

View 2 previous comments from the original issue on GitLab


fix: Call removeEnvironmentFromAutoActivate in post setup

Motivation
When using setup-micromamba, the micromamba activate <env> line still remains in .bash_profile after the post-processing is run.
Changes
The fix is easy as removeEnvironmentFromAutoActivate(...) is already there, but wasn't called during post-processing.

Also in the all case... Might make sense to move this to a separate function?

Also in the all case... Might make sense to move this to a separate function?

yeah, just saw that as well, give me a second.

You still need to run pnpm build to actually build your changes

You still need to run pnpm build to actually build your changes

The diff does look a bit too large for this change...

Could you also add a test here: https://github.com/mamba-org/setup-micromamba/blob/93692eeb9c32b394efd4c3190717e877a1bf45ab/.github/workflows/test-post-cleanup.yml#L58

Can you bump the version number to 1.8.1?

feel free to merge @pavelzw


[CWS] Fix a load controller issue where tags were resolved multiple times

What does this PR do?
Error logs when finalizing dumps were generated on each subsequent dump once the load controller triggers.
The issue was cause by calling the "finalizer" multiple times for the same dump, adding the containerID as tag.
Also, the tags were resolved on each subsequent dump.
Now, we call finalize only on dumps we are about to persist/send (before copying it). And we avoid resolving multiple times the tags for the same workload.
Motivation
Get rid of some spamy error logs
Describe how to test/QA your changes
Possible Drawbacks / Trade-offs
Additional Notes

/merge


fix broken link to concepts topic

Update link to related concepts topic
Fixes issue #4456
Q (biggish): when we're in these topics where there are redirects from the earlier docs architecture, would it be useful to update the original links? I found myself tripping a bit over some of the other redirected links in this topic (found the redirects eventually, but maybe it would help future contributors if we fixed the source as we go?).

This change is

/lgtm

lgtm too but it needs to be rebased now (and you might need another PR against release-1.7?)

Deploy preview ready!
Built with commit f05d266c0112dbcdee00ef4559f3bd7cbb57d22d
https://deploy-preview-4471--kubernetes-io-master-staging.netlify.com


Ubuntu 20.04: Unable to open X display

VS Code Version: 1.55.0, c185983a683d14c396952dd432459097bc7f757f, x64
OS Version: Ubuntu 20.04.2 LTS

Steps to Reproduce:

Open VSCode
Open integrated terminal
code -r /some/path
VSCode doesn't reopen at /some/path

Verbose output:
$ code --r /some/path --verbose                                                                                09:56:05
[70390:0407/095620.279822:ERROR:browser_main_loop.cc(1434)] Unable to open X display.
The futex facility returned an unexpected error code.
/dev/fd/3: No such file or directory

Running the same command from e.g. gnome-shell opens VSCode as expected. I installed VSCode via snap.

Does this issue occur when all extensions are disabled?: Yes

We get the same error in the CI for gitlab-vscode-extension when we use vscode-test to run tests.
https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/jobs/1159684595#L1150
It started happening with the release of 1.55.0.
The CI uses node:12-slim docker image which is based of debian docker image.

Let us know if you have a way to reproduce this.

Hey @meganrogge, the issue is still existent for me with the above steps. Do you need more information from my side?


allocated gpio.Pin is never closed

in uart.toit line 113:
tx := gpio.Pin.out pin    // pin is allocated, but never released
...
close->none:
port_.close     // used #primitive seems NOT to release the gpio

Workaround:
class UartPixelStrip extends UartEncodingPixelStrip_:
port_/uart.Port := ?
pin_ := ?
...
constructor pixels/int --pin/int=17 --invert_pin/bool=true --bytes_per_pixel/int=3:
tx := gpio.Pin.out pin
pin_ = tx
...
close->none:
pin_.close
port_.close

Thanks.
The strip class shouldn't just take a pin number, but a gpio.Pin instead.
However, for compatibility, we will still allow to take a pin number, and then correctly close the pin.
Uploading a fix.


Cells with integer multiple of row height

The total cell height is integer multiple of row height

@Lastdayends Hi Yaguang, I have modified the primitives for integer multiple of row height. The following unit test is failing "tests/test_cmdline.py::test_cmdline[telescopic_ota-1-True]". Could you please help me to debug the reason for it.

align.pnr.toplevel INFO : Start MNA
COLAMD failed at line 52 in file _deps/superlu-src/SRC/get_perm_c.c

@stevenmburns
Are we going to test MNA in this branch? By default, MNA simulation is disabled. However, in this branch, it is enabled.

@arvuce22
The problem is fixed by correct the configuration for MNA.

@Lastdayends Thanks!

@.*** *We have a switch for the tap cell. When switch is ON tapcell
will be placed (The height of the tapcell row will be equal to the other
rows)
On Sun, Apr 25, 2021 at 12:21 AM Parijat Mukherjee @.***>
wrote:

@.**** approved this pull request.
Looks good overall. See question.
In align/primitive/default/mos.py
https://github.com/ALIGN-analoglayout/ALIGN-public/pull/655#discussion_r619752300
:

@@ -22,13 +22,12 @@ def init(self, pdk, height, fin, gate, gateDummy, shared_diff, stack, bodysw
self.gate = (2gate)self.stack
self.gatesPerUnitCell = self.gate + 2self.gateDummy(1-self.shared_diff)
self.finDummy = (self.finsPerUnitCell-fin)//2

   self.lFin = 16 ## need to be added in the PDK JSON

   self.lFin = height ### This defines numebr of fins for tap cells; Should we define it in the layers.json?

How are we using it currently? Does every primitive get a tapcell row on
top of it?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/ALIGN-analoglayout/ALIGN-public/pull/655#pullrequestreview-644092829,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKTUJYMG3GDAQYOZ36QT6BLTKOREBANCNFSM43ORZ3VQ
.

We have a switch for the tap cell. When switch is ON tapcell will be placed (The height of the tapcell row will be equal to the other rows)

Works for now! Let's get this merged in.

@arvuce22 BUFFER_VCM started failing after this merge. There are new DRCs.
FAILED tests/integration/test_all.py::test_A[20-FinFET14nm_Mock_PDK-BUFFER_VCM]

my bad. passing now with the fix to enumeration code.


Adding exception handling in UDX docs

Adding a simple description how exceptions work in ASA and how users can avoid it.

@rodrigoaatmicrosoft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


A working example could be nice

Hi. Nice plugin. However, I can't get it working with autoprefix and browserlist.... A working example could be nice. How do you actually use it in Atom? 😄

Never mind... 😉
I got it working with:

[x] less-autocompile,
[x] atom-minify (minify on save), and
[x] autoprefixer (run on save).

My less-file has this less-autocompile setup:
// out: style.min.css, sourcemap: false, compress: true

@awesomeLessVaraible: #ff0055;

body {
    background-color: @awesomeLessVaraible;
    transform: translate3d(0,0,0);
}

Just in case others want to make Less, Minify, Compress and Autoprefixer happen with https://atom.io/. 👍  😄

@ahallora I just saw this, I have updated the README with an example and links to external documentation. Thanks for bringing this to my attention.

Exactly what I needed! Thank you so much for a wonderful plugin! 👍  😄


Finbuckle with Blazor  ServerSide Support

I'll look into this--I've been meaning to learn more about Blazer Serverside.

@Sheko007 - Take a look at Blazor and Razor Pages Support #188 for a working example.
Good luck!

Thanks Very much

Hi there... Is there an updated example for a Blazor App??  Im able to do the Static strategy... But Im stuck altering any other strategy, most likely due to the routing.
Any guidance is greatly appreciated.


AWS EC2 Instance - instanceType resource property definition very long

File: themes/default/content/registry/packages/aws/api-docs/ec2/instance/_index.md
On the AWS EC2 Instance page in the Instance Resource Properties section, there is a really long list of EC2 instance types underneath the instanceType resource property name and it makes the page unnecessarily long as a result.
I think it is worth reconsidering how to present this information in a more user friendly way.

This is effectively a docs gen fix.


K-NN searching not fully used

It seems in neighborsearch/neighborhood_searcher.jl there is space to improve k-nn efficiency.
Line 47: Instead of using inrange function of KDTree, one can use the function knn which searches for the k-th directly.
knn(tree, points, k, sortres = false, skip = always_false) -> idxs, dists
I'm not clear if this simple change may affect calling code to the function search!, therefore, I'm not requesting a pull request.
inrange search for all points within a radius, but for Kriging perspective, one needs just the k NN within the radius.
Another observation is that the knn function of the KDTree is not fully efficient because one can search using both parameters: k and radius to perform better. I will try to make a pull request to NearestNeighbors.jl project with this improvement.

That is amazing @exepulveda , certainly a great improvement to both projects. Could you please ping me in the NearestNeighbors.jl pull request? I am curious to learn about the improvement you mentioned.
I will double check the usage in neighborhood_search.jl meanwhile and digest your suggestion. :+1:

@exepulveda just so you understand the codebase, we have three types of neighborhood search currently implemented:

NearestNeighborSearcher
NeighborhoodSearcher
BoundedSearcher

The last type is a meta type that takes a searcher and bounds the number of neighbors to a maximum number. The first type uses the knn as you suggested (and is therefore very fast). The second type uses the inrange to find all points inside the ball.
We are currently using the second type in Kriging to update the conditional distribution iteratively each time a new point is added to the "estimated" set. Perhaps we could revisit this algorithm somehow and update the KDTree point by point if this is possible.
I am finishing a major refactoring of the codebase and will come back to this afterwards. Please let me know if you have questions.

After thinking in the problem, it seems the solution is trivial. As the knn of locations limited by a radius is a subset of one with infinity radius, one can search for the knn, which is fast, and then the knn found can be filtered by the desired radius.
I just wonder if you have time to have a online chat for me to understand the project organisation and setup the developer environment and help with the code.

I think the main performance difference we are observing here is due to the fact that currently we are "fitting" the KDtree to the entire set of unknown locations, not just the samples. If we had "fit" the KDtree to just the samples, the inrange would be quite fast and retrieve only the points inside the radius. The problem is that as Kriging proceeds new estimated points become "samples" and so we would need to update the KDtree accordingly. I don't know if the data structure allows this kind of update though.
I am assuming that other libraries such as GSLIB do a similar approach by "fitting" a search tree to the entire set of unknown locations, but I didn't have a chance to take a look into their Fortran codebase.
Regarding the meeting, sure, let's do it! I will see how my agenda looks like on Friday, and we can setup a call to meetup and brainstorm this issue, what do you think? Meanwhile, you can check these instructions here to get the dev env up and running: https://juliaearth.github.io/GeoStats.jl/stable/contributing/#Code-contribution-1
I am finishing a minor release this week with some considerable (yet must needed) breaking changes. The plan is to release it by the end of the week. Today I finished with the coding/testing part. The rest of the week is about updating documentation.

I see. Well, in Kriging you don't need to include to the KDTree the restimated unknown locations because estimations should not be included later as conditioning samples.
GSLIb does not use KDTree. It uses a SuperGrid strategy which is slower than KDTree.
Happy to meet you. I suggest to do it next week. I'm in Adelaide (GMT+10:30). Just drop me an email with any proposed time to<EMAIL_ADDRESS>Cheers

Nice, it makes total sense. I was confused by the conditional simulation approach and included the estimated locations in the set. If we just do the KDTree on the original set of samples we will get the same speed of the nearest neighbor search :+1:
The only decision that remains is what to do when a ball has fewer than a minimum number of points. Should we skip the location and revisit later? I will try to prepare some code changes by next week for us to discuss. Will drop you an email.

As I mentioned, searching for k-nn and ball can be done in two steps:

Searching for knn
Filtering by the ball

Step 1 is very efficient, and step 2 is in the worse case O(k)

I think I am getting your point. We can always search the K neighbors, and discard those outside the ball. If there are too few of them inside the ball, we relax the constraint and use all K.

That should be a user option. Users usually want to control minimum number of samples. In mining applications this is called "multiple passes", which means, you first try find at least k_1-nn and if it fails, you try next to find at least k_2-nn, and so on. But I guess having minimum and maximum number of samples should be sufficient. If you find less that the minimum, that location should be masked as not estimated.

It was nice chatting with you yesterday @exepulveda , please feel free to submit a PR with the improvements.
I thought of a name, perhaps KBallSearcher would be ok? The filename could be kball_searcher.jl and this searcher would wrap the NearestSearcher and do the post-processing with the ball isneighbor function to discard points outside the ball.

It was my pleasure. I think I have a first version. Probably I need to write some unit tests. Could you give me advise where to place the unit tests? I could not find any for the other searchers.
Are you using a specific branch for developing in order to push my changes?
Cheers

Could you give me advise where to place the unit tests? I could not find any for the other searchers.

You are right, we need unit tests for the searchers. They are being tested indirectly in downstream solvers, but we need to test them here as well. Could you please follow the pattern in the source code and create a file test/neighborsearch.jl with unit tests following the convention in test/neighborhoods.jl for example? That is, a @testset for each searcher. You don't need to bother about writing tests for the other existing searchers, but if you have time, that would be even nicer.
After you create this file, you just need to add it to the list in test/runtests.jl. To test locally, you can start Julia in the project folder with:
julia --project

and then type ] test.
Also, something I forgot to share in our call, please take a look at the Revise.jl package, it can save a lot of time when you are in development mode: https://github.com/timholy/Revise.jl It will automatically detect changes in the source code and will recompile only the pieces you changed, so no need to restart or reload the package all the time. The only limitation is that it isn't able to track changes inside the struct definitions. If you change the fields of a struct during development you will need to restart the session.

Are you using a specific branch for developing in order to push my changes?

Given that the project is still constantly evolving we are only using the master branch as our "dev" branch. Feel free to use any branch name to submit the PR. After we reach a first major release GeoStats.jl 1.0.0 we will need to rethink the development model, and follow something like the git flow.

I will push to a new branch.
Including the new test I got: "Testing GeoStatsBase tests passed" :-)

I'm having access problems when trying to push to (or create) a new branch. The error:
remote: Permission to JuliaEarth/KrigingEstimators.jl.git denied to exepulveda.

The GitHub workflow goes as follows:

Fork GeoStatsBase.jl on GitHub (there is a button at the top right of this repo)
Add a nickname to your fork in your local repo:

git remote add myfork URL-FOR-YOUR-GITHUB-FORK

This command is typed inside the .julia/dev/GeoStatsBase folder.

Push your changes to the fork:

git checkout mybranch
git push myfork

Go to your fork or to the original project page on GitHub, and GitHub will show you a banner asking if you want to create a PR.

The process is the same for KrigingEstimators.jl :+1:

My bad. I forgot to fork instead cloning.

Closing this one as it is fixed on master :ok_hand:


Shard 2 failed to start

System Info
i was trying to run CohereForAI/c4ai-command-r-v01 with these commands
model= CohereForAI/c4ai-command-r-v01
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run
docker run --rm --gpus all --shm-size 1g -p 3000:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:1.4 --num-shard 4 --model-id $model
and i got this error
2024-03-14T13:19:25.453070Z  INFO shard-manager: text_generation_launcher: Waiting for shard to be ready... rank=2
2024-03-14T13:19:25.453075Z  INFO shard-manager: text_generation_launcher: Waiting for shard to be ready... rank=1
2024-03-14T13:19:25.453075Z  INFO shard-manager: text_generation_launcher: Waiting for shard to be ready... rank=0
2024-03-14T13:19:25.463782Z  INFO shard-manager: text_generation_launcher: Waiting for shard to be ready... rank=3
2024-03-14T13:19:25.553183Z ERROR shard-manager: text_generation_launcher: Shard complete standard error output:
Traceback (most recent call last):
File "/opt/conda/bin/text-generation-server", line 8, in
sys.exit(app())
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/cli.py", line 89, in serve
server.serve(
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/server.py", line 235, in serve
asyncio.run(
File "/opt/conda/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/opt/conda/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
return future.result()
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/server.py", line 196, in serve_inner
model = get_model(
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/models/init.py", line 428, in get_model
raise NotImplementedError("sharded is not supported for AutoModel")
NotImplementedError: sharded is not supported for AutoModel
rank=2
2024-03-14T13:19:25.553206Z ERROR shard-manager: text_generation_launcher: Shard complete standard error output:
Traceback (most recent call last):
File "/opt/conda/bin/text-generation-server", line 8, in
sys.exit(app())
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/cli.py", line 89, in serve
server.serve(
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/server.py", line 235, in serve
asyncio.run(
File "/opt/conda/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/opt/conda/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
return future.result()
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/server.py", line 196, in serve_inner
model = get_model(
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/models/init.py", line 428, in get_model
raise NotImplementedError("sharded is not supported for AutoModel")
NotImplementedError: sharded is not supported for AutoModel
rank=1
2024-03-14T13:19:25.563889Z ERROR shard-manager: text_generation_launcher: Shard complete standard error output:
Traceback (most recent call last):
File "/opt/conda/bin/text-generation-server", line 8, in
sys.exit(app())
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/cli.py", line 89, in serve
server.serve(
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/server.py", line 235, in serve
asyncio.run(
File "/opt/conda/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/opt/conda/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
return future.result()
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/server.py", line 196, in serve_inner
model = get_model(
File "/opt/conda/lib/python3.10/site-packages/text_generation_server/models/init.py", line 428, in get_model
raise NotImplementedError("sharded is not supported for AutoModel")
NotImplementedError: sharded is not supported for AutoModel
rank=3
2024-03-14T13:19:25.651356Z ERROR text_generation_launcher: Shard 2 failed to start
2024-03-14T13:19:25.651368Z  INFO text_generation_launcher: Shutting down shards
2024-03-14T13:19:25.658793Z  INFO shard-manager: text_generation_launcher: Shard terminated rank=0
Error: ShardCannotStart
Information

[ ] Docker
[X] The CLI directly

Tasks

[X] An officially supported command
[ ] My own modifications

Reproduction
model=FreedomIntelligence/AceGPT-13B-chat
volume=$PWD/data # share a volume with the Docker container to avoid downloading weights every run
docker run --rm --gpus all --shm-size 1g -p 3000:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:1.4 --num-shard 4 --model-id $model
Expected behavior
expected to work normally.

Any updates in this issue?

@yasserkh2 Any ideas on the source of this issue?

no updates until now

In my case, fixing the Nvidia driver for docker solved this issue.

Yes, the error sharded is not supported for AutoModel normally results from using older drivers, old cuda or old python versions. The requirements in the README appear to be accurate.

Also, when you use a supported model, then you wont need the "AutoModel" tokenizer, and you will have better performance.


[Bug] @apply variant won't work in react project with less css preprocessor enabled.

Bug description
@apply variant won't work in react project with less css preprocessor enabled.
How to reproduce
check reproduction repo: https://github.com/Ynewtime/vite-react-ts-with-less

yarn create @vitejs/app
yarn install -D less
follow the install guide of https://github.com/windicss/vite-plugin-windicss#install
change src/App.css to App.less and add test class with @apply variant
use test class in src/App.tsx

More information
I've tested with sass and postcss-nesting, both work well with @apply variant, it seems just less could not.

Yeah, sorry I totally forget about less. It would work with v0.4.11 now.


infra: src/components/Search.js might be a possible duplicate of src/components/Input.js

I think src/components/Search.js might be a duplicate of src/components/Input.js.
We use src/components/Input.js in line 4 of Nav.js, so I'm reasonably certain that src/components/Input.js should stay.
At the very least, the name of the functional component on line 3 of Search.js, Input, doesn't match the name of the file, Search.js, so that might be something we need to change even if Search.js isn't a duplicate of Input.js.

Fixed


I am receiving an error trying to start the integrated node

Describe the bug
I don't really understand what's happening in this situation but I will have a screenshot below to show what's happening it showed up twice because I tested using the remote node and then switching back to the integrated daemon
To Reproduce
Steps to reproduce the behavior:
I just started the kaspa.ng program
Expected behavior
for it to just work? I apologize if that's not a good answer
Screenshots

Desktop (please complete the following information):

OS: Windows 11 latest version
Kaspad version: Latest version from may 5th

Additional context
Add any other context about the problem here.

are you running any other Rusty Kaspa process? Exit everything and then use task manager to check for any rouge kaspad or kaspa-ng processes and terminate them if present.
exit KNG and delete the rusty-kaspa folder specified in this error (the folder that includes Kaspa-mainnet).

yup it was a rogue kaspa.np process. it's fixed now thank you!


opt remove decimalv2 signature from Nvl and CaseWhen

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Adding CVEs for trino-plugin-kudu

Adding Advisory GHSA-4gg5-vx3j-xwc7 for trino-plugin-kudu
Adding Advisory GHSA-g5ww-5jh7-63cx for trino-plugin-kudu
Adding Advisory GHSA-h4h5-3hr4-j3g2 for trino-plugin-kudu
Adding Advisory GHSA-wrvw-hg22-4m67 for trino-plugin-kudu

added in https://github.com/wolfi-dev/advisories/pull/835


SELECT * FROM information_schema.innodb_trx fails with [1146] [42S02] Table 'mysql.innodb_trx' doesn't exist

Issuing statements to tables of a different database/schema are failing that the table cannot be found in the current database.
Running the same SQL over JDBC works.
MySQL Server version: 5.7.22
SELECT * FROM information_schema.innodb_trx

Error:
io.r2dbc.spi.R2dbcBadGrammarException: [1146] [42S02] Table 'mysql.innodb_trx' doesn't exist)

Reproducer:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;

import io.github.mirromutth.r2dbc.mysql.MySqlConnectionConfiguration;
import io.github.mirromutth.r2dbc.mysql.MySqlConnectionFactory;
import reactor.test.StepVerifier;

public class Reproducer {

	public static void main(String[] args) throws Exception{

		Connection connection = DriverManager
				.getConnection("jdbc:mysql://localhost/mysql", "root", "my-secret-pw");

		ResultSet resultSet = connection.createStatement()
				.executeQuery("SELECT * FROM information_schema.innodb_trx");
		resultSet.next();
		resultSet.close();

		MySqlConnectionConfiguration configuration = MySqlConnectionConfiguration.builder()
				.host("localhost").username("root")
				.password("my-secret-pw").database("mysql").build();

		MySqlConnectionFactory connectionFactory = MySqlConnectionFactory.from(configuration);

		connectionFactory.create().flatMapMany(it -> it
				.createStatement("SELECT * FROM information_schema.innodb_trx").execute())
				.flatMap(it -> it.map((row, rowMetadata) -> row.get(0)))
				.as(StepVerifier::create)
				.verifyComplete();
	}
}

The reason is caused by capabilities, again.
All unknown/unused feature flags have been removed.

It solved by PR #48 , target version is 0.3.0.M3.


[WIP] Script for running benchmarks automatically

This PR presents a script used to run the benchmarks automatically in for a PR.
$ python scripts/run-benchmarks.py --help
Usage: run-benchmarks.py [OPTIONS] OUTPUT_DIR

  Run the benchmarks.

  If --pr-id is set, runs the benchmarks from this PR. The number of commits
  to bench is either the number provided in the PR body using [lumol bench
  <n_commits>], or as a parameter to this script (in case of both the script
  parameter prevails). The benchmark results are saved in OUTPUT_DIR, and
  if a PR id have been set a comment is automatically added to it with the
  results of the PR.

Options:
  -n, --n-commits INTEGER  number of commits to benchmark
  -p, --pr-id INTEGER
  --help                   Show this message and exit.

The script is automatically run on PR on Travis CI, if the number of commits is set in the PR body using [lumol bench ].
[lumol bench 2]

Instead of the sudo image, you can use pip install --user -r requirements.txt.

That's indeed better thanks !

Comparing to master (b974d52a)
using --threshold 2, latest commit first
Individual benchmarks
b974d52a Make EnergyCache Send + Sync

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

running 1 test
test energy_wolf               ... bench:     473,930 ns/iter (+/- 13,660)

test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

running 1 test
test energy_wolf                          ... bench:     732,107 ns/iter (+/- 14,214)

test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured

CPU: Intel(R) Core(TM) i7-5700HQ CPU @ 2.70GHz

Comparing to master (3e54b97f)
using --threshold 2, latest commit first
70c19663 Various fixes

 name         3e54b97f.txt ns/iter  70c19663.txt ns/iter  diff ns/iter  diff %
 energy_wolf  470,673 (+/- 20663)   498,274 (+/- 36929)         27,601   5.86%
 energy_wolf  729,106 (+/- 41502)   747,823 (+/- 35518)         18,717   2.57%

4893e83e Handle travis CI case inside the script

 name         3e54b97f.txt ns/iter  4893e83e.txt ns/iter  diff ns/iter  diff %
 energy_wolf  470,673 (+/- 20663)   495,372 (+/- 105646)        24,699   5.25%

Individual benchmarks
70c19663 Various fixes

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

running 1 test
test energy_wolf               ... bench:     498,274 ns/iter (+/- 36,929)

test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

running 1 test
test energy_wolf                          ... bench:     747,823 ns/iter (+/- 35,518)

test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured

4893e83e Handle travis CI case inside the script

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

running 1 test
test energy_wolf               ... bench:     495,372 ns/iter (+/- 105,646)

test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

running 1 test
test energy_wolf                          ... bench:     741,668 ns/iter (+/- 11,462)

test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured

3e54b97f Merge pull request #140 from g-bauer/npt_mc_check_global_cutoff

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

running 1 test
test energy_wolf               ... bench:     470,673 ns/iter (+/- 20,663)

test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured

running 1 test
test energy_wolf                          ... bench:     729,106 ns/iter (+/- 41,502)

test result: ok. 0 passed; 0 failed; 0 ignored; 1 measured

CPU: Intel(R) Core(TM) i7-5700HQ CPU @ 2.70GHz

Closing in favor of #143


Updated the README to reflect changes in the code, ensuring backward compatibility across macOS versions, including those beyond macOS Sequoia. Only the README was modified.

Description

Updated the README to reflect changes in the code, ensuring backward compatibility across macOS versions, including those beyond macOS Sequoia. Only the README was modified.
Screencast

Checklist

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

Just change the readme to reflect the code changes (backward compatible).


Max length validation is on characters not on bytes

Versions

vee-validate: 2.#.#
vue: 2.#.#

Describe the bug
Our database field has a maximum length of 4000 bytes.  In the case of multi-byte characters this will limit it to less than 4000 characters.   When using Max: to validate the field length it is counting characters not bytes.  This causes a database error when the user pastes text containing multi-byte characters.   How can I make it validate the byte length of the input instead of the character length?
Expected behavior
Need max-bytes

You should never rely on a client side library to secure your backend as the validation can be easily bypassed, it is more of a UI/UX thing.
Now implementing such a rule would be confusing to the end user, such cases are avoided in the provided rules. You could always implement it on your own


Upgrade requests dependency

Requests 0.14.1is old version from 2012. On the last version of requests (2.10) route53 works fine.

Sorry for letting this sit for a while, been getting situated at a new job.

Released as 1.0.1.


PKG-4706 initial 12.4

Destination channel: defaults
Links

PKG-4706

Explanation of changes:

Part of CUDA 12.4 build, following conda-forge's pattern which was developed in conjunction with Nvidia. There isn't a need to stage these then release them all at once. They won't cause a problem released one at a time.
Please check the main branch too, this has just been forked
Changes made to adjust feedstocks for differences between conda-forge and defaults. Please see commit messages for description of changes.

Linter check found the following problems:
ERROR conda.cli.main_run:execute(124): `conda run conda-lint /tmp/abs_ebqtvhei7a/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:42: license_file_overspecified: Using license_file and license_url is overspecified.

===== ERRORS =====

clone/recipe/meta.yaml:42: missing_dev_url: The recipe is missing a dev_url
clone/recipe/meta.yaml:42: missing_license_family: The recipe is missing the about/license_family key.
===== Final Report: =====
2 Errors and 1 Warning were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(124): `conda run conda-lint /tmp/abs_8c5i4j49o0/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:42: license_file_overspecified: Using license_file and license_url is overspecified.

===== ERRORS =====

clone/recipe/meta.yaml:42: missing_license_family: The recipe is missing the about/license_family key.
clone/recipe/meta.yaml:42: missing_dev_url: The recipe is missing a dev_url
===== Final Report: =====
2 Errors and 1 Warning were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(124): `conda run conda-lint /tmp/abs_fbgfzvulol/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:42: license_file_overspecified: Using license_file and license_url is overspecified.

===== ERRORS =====

clone/recipe/meta.yaml:42: missing_license_family: The recipe is missing the about/license_family key.
clone/recipe/meta.yaml:42: missing_dev_url: The recipe is missing a dev_url
===== Final Report: =====
2 Errors and 1 Warning were found


Store and resize to avoid particle/linked cell reallocation

Need to check correctness and performance changes before we merge

Fixed the issues here - forgot a deep copy


support vl benchmark

第一张图测试了 llava-v1.6-vicuna-7b 模型，量化后的 completion token/s 和 FTL。
第二张图，测了量化前后的 吞吐量变化

@AllentDan which command did you use to run this benchmark? Could you share? Was this run on an A100? I am curious also about performance on lesser GPUs which are more widely available and cheaper, and can test running there (such as GPUs with 24GB VRAM).
I have followed the instructions at https://github.com/InternLM/lmdeploy/tree/main/benchmark the get the ShareGPT dataset, so I have the data!
Another metric of interest would be how response time changes under load (if we increase requests per second, how much does the latency increase?)

@vody-am
python benchmark/profile_restful_api.py http://<IP_ADDRESS>:23333 /nvme/shared/llava-v1.6-vicuna-7b-4bit ShareGPT_V3_unfiltered_cleaned_split.json --concurrency 16 --img_hw 512*512 --stream_output True --num_prompts 1000

Ok, I am testing out on A100, L40 and 4090, will report back with numbers when completed.
For generating charts, did you use a script or do so by hand? I can post back when runs complete.
The non-quantized model successfully runs across all devices (impressively the L4 managed not to fall over serving requests).
However, when running an AWQ version of llava-vicuna-7b I get:
2024-05-28 17:34:34,299 - lmdeploy - ERROR - Engine loop failed with error: 'tuple' object has no attribute 'size'
Traceback (most recent call last):
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/engine/request.py", line 17, in _raise_exception_on_finish
    task.result()
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/engine/engine.py", line 758, in async_loop
    await __step(True)
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/engine/engine.py", line 744, in __step
    raise e
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/engine/engine.py", line 736, in __step
    raise out
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/engine/engine.py", line 685, in _async_loop_background
    await self._async_step_background(
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/engine/engine.py", line 593, in _async_step_background
    output = await self._async_model_forward(inputs,
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/utils.py", line 250, in __tmp
    return (await func(*args, **kwargs))
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/engine/engine.py", line 510, in _async_model_forward
    return await __forward(inputs)
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/engine/engine.py", line 488, in __forward
    return await self.model_agent.async_forward(
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/engine/model_agent.py", line 643, in async_forward
    output = self._forward_impl(inputs,
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/engine/model_agent.py", line 609, in _forward_impl
    output = model_forward(
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/engine/model_agent.py", line 406, in model_forward
    output = patched_model.patched_forward(
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/models/patch.py", line 242, in __call__
    output = self._model(*args, **kwargs)
  File "/home/user/lmdeployvenv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/home/user/lmdeployvenv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/user/lmdeployvenv/lib/python3.10/site-packages/llava/model/language_model/llava_llama.py", line 91, in forward
    return super().forward(
  File "/home/user/lmdeployvenv/lib/python3.10/site-packages/transformers/models/llama/modeling_llama.py", line 1168, in forward
    outputs = self.model(
  File "/home/user/lmdeployvenv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/home/user/lmdeployvenv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/user/lmdeployvenv/lib/python3.10/site-packages/transformers/models/llama/modeling_llama.py", line 1008, in forward
    layer_outputs = decoder_layer(
  File "/home/user/lmdeployvenv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/home/user/lmdeployvenv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "/home/user/lmdeployvenv/lib/python3.10/site-packages/transformers/models/llama/modeling_llama.py", line 734, in forward
    hidden_states, self_attn_weights, present_key_value = self.self_attn(
  File "/home/user/lmdeployvenv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "/home/user/lmdeployvenv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/models/llama.py", line 362, in forward
    return self._contiguous_batching_forward_impl(
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/models/llama.py", line 339, in _contiguous_batching_forward_impl
    return self._contiguous_batching_forward_default_impl(
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/models/llama.py", line 278, in _contiguous_batching_forward_default_impl
    fill_kv_cache(
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/lmdeploy/pytorch/kernels/fill_kv_cache.py", line 113, in fill_kv_cache
    block_size, num_heads, head_dim = k_caches.size()[1:]
AttributeError: 'tuple' object has no attribute 'size'

Hi, @vody-am I used excel to plot the chart.

Currently running the benchmark on an Nvidia L4 with AWQ. With a concurrency value of 2 seeing this:

FP16 was much slower, I saw an ETA of over 2 hours. I can let it run unattended if there's interest in collecting that data, but if not no worries. I would personally like to be able to run quantized models on that hardware as they're relatively cheap and plentiful.
Besides that, PR LGTM!
Just two more questions might come to mind:

this line which constructs the image creates one that is (I believe) all black. Maybe filling it with random data might product a different result? That way each request has some variation in the image.

while benchmarking, should one set vision_max_batch_size ?

Just one more small thing: I seem to have run into a problem when benchmarking QwenLM/Qwen-VL:
using model: qwen

Traceback (most recent call last):
(cleanenv) user@host:/mnt/ssd$ cd LMDEPLOY_BENCHMARK/
(cleanenv) user@host:/mnt/ssd/LMDEPLOY_BENCHMARK$ python lmdeploy/benchmark/profile_restful_api.py http://<IP_ADDRESS>:23333 /mnt/ssd/Qwen-VL-Chat ShareGPT_V3_unfiltered_cleaned_split.json --concurrency 16 --img_hw '512*512' --stream_output True --num-prompts 1000
using model: qwen

Traceback (most recent call last):
(cleanenv) user@host:/mnt/ssd/LMDEPLOY_BENCHMARK$ python lmdeploy/benchmark/profile_restful_api.py http://<IP_ADDRESS>:23333 /mnt/ssd/Qwen-VL-Chat ShareGPT_V3_unfiltered_cleaned_split.json --concurrency 16 --img_hw '512*512' --stream_output True --num-prompts 1000
using model: qwen

Traceback (most recent call last):
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/benchmark/profile_restful_api.py", line 294, in <module>
    fire.Fire(main)
  File "/home/user/cleanenv/lib/python3.10/site-packages/fire/core.py", line 143, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
  File "/home/user/cleanenv/lib/python3.10/site-packages/fire/core.py", line 477, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
  File "/home/user/cleanenv/lib/python3.10/site-packages/fire/core.py", line 693, in _CallAndUpdateTrace
    component = fn(*varargs, **kwargs)
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/benchmark/profile_restful_api.py", line 288, in main
    requests = sample_requests(dataset, num_prompts, engine.tokenizer)
  File "/mnt/ssd/LMDEPLOY_BENCHMARK/lmdeploy/benchmark/profile_restful_api.py", line 38, in sample_requests
    completion_token_ids = tokenizer(completions).input_ids
  File "/home/user/cleanenv/lib/python3.10/site-packages/transformers/tokenization_utils_base.py", line 2829, in __call__
    encodings = self._call_one(text=text, text_pair=text_pair, **all_kwargs)
  File "/home/user/cleanenv/lib/python3.10/site-packages/transformers/tokenization_utils_base.py", line 2915, in _call_one
    return self.batch_encode_plus(
  File "/home/user/cleanenv/lib/python3.10/site-packages/transformers/tokenization_utils_base.py", line 3106, in batch_encode_plus
    return self._batch_encode_plus(
  File "/home/user/cleanenv/lib/python3.10/site-packages/transformers/tokenization_utils.py", line 803, in _batch_encode_plus
    first_ids = get_input_ids(ids)
  File "/home/user/cleanenv/lib/python3.10/site-packages/transformers/tokenization_utils.py", line 770, in get_input_ids
    tokens = self.tokenize(text, **kwargs)
  File "/home/user/.cache/huggingface/modules/transformers_modules/Qwen-VL-Chat/tokenization_qwen.py", line 292, in tokenize
    return _replace_closed_tag(tokens, self.image_start_tag, self.image_end_tag, _encode_imgurl)
  File "/home/user/.cache/huggingface/modules/transformers_modules/Qwen-VL-Chat/tokenization_qwen.py", line 94, in _replace_closed_tag
    raise ValueError("Unclosed image token")
ValueError: Unclosed image token

ValueError: Unclosed image token. It may be related to a Qwen-VL specific issue, but just wanted to raise it in case it's unintended.

I could not reproduce the error. @vody-am

@AllentDan I was too hasty in posting :sweat: thank you for checking, I will double check next time. I believe it is an environment error on my part, because it works on some hosts but not on others. Thanks :saluting_face:

ok turns out I was not too hasty. I believe it worked once for me due to the random sampling. The issue I ran into is specific to Qwen-VL, since the tokenizer treats <img> as a special token. Some of the completions on line https://github.com/AllentDan/lmdeploy/blob/vl-bench/benchmark/profile_restful_api.py#L37 may contain <img> within. e.g. there is at least one example with the following:
Typical inline elements in HTML include:

1. `<a>` - hyperlink
2. `<span>` - generic inline container
3. `<strong>` - strong importance
4. `<em>` - emphasized importance
5. `<img>` - image
6. `<input>` - input field
7. `<label>` - label for a form control
8. `<button>` - button
9. `<select>` - drop-down list
10. `<textarea>` - multi-line input field
11. `<small>` - smaller text
12. `<sup>` - superscript
13. `<sub>` - subscript

I got around this via completions = [c.replace('<img>', '<IMG>') for c in completions]
otherwise the tokenizer throws with "ValueError: Unclosed image token"
within /home/user/.cache/huggingface/modules/transformers_modules/tokenization_qwen.py line 97

@irexyc Do you have any idea handling <IMG> encoding case?

Do you have any idea handling <img> encoding case?

I think the unclosed <img> token issue is special to qwen-vl and maybe we can ignore this situation for now


Correct motor positions database

Correct database setup & interaction codes for the motor positions database

@vkuznet I have replaced DID with ScanID as the unique key for lookup in the motor positions db. ScanId is a uint64 taken from the record's StartTime (which is a float64). Do you see any other issues that should be resolved before merging?

@keara-soloway , I think we can merge and iterate further. What I'm interested is to see how look up will be done. For instance:

user provides did
user provides did and motor position/name
user provides motor position and/or name but no did

How in each case we can look up the data from this service. For example, for case first we need to look-up data from MongoDB first, then take sid's and get all records from relational DB, while for third case it will be reverse, i.e. we get all records with sids and then query MongoDB with such list. Can you check that these case will be covered.

All three cases you mentioned are addressed in SearchHandler, but cases 2. and 3. are covered imperfectly. The outstanding issues:

One cannot search for scans in which a motor with a particular name is simply present. Any query with a motor name currently must include a position, too.
There is no way for one to "or" criteria for did (or any other values kept in the mongodb) with criteria for motor name & position. If one's query includes criteria for did as well as motor name / position, all the records in the results will always satisfy both criteria.
One cannot search for scans based on criteria for more than 1 motor.
One may only query on an exact match for a motor position.

Items 3. and 4. are caused by limitations of the keys I chose to allow for querying on motor positions. I will commit my current json file of db query keys, knowing that it (& SearchHandler) will need to be updated to fix these shortcomings.
I will merge this PR for now & continue to iterate elsewhere.

Keara, let me comment on your cases:

I don't see why someone must provide position to the motor, you just need to relax the WHERE clause, e.g. select * from TABLE where motor_name = 'bla'
if you want to support queries with multiple did's it should be possible if did in motorsdb, e.g. here is how you will construct the query: select * from table where did=/abc or did=/xyz
seems like a previous case, e.g. select * from table where motor_name=abc or montor_name=xyz
you may use LIKE or > or < operators in queries, like:

# use % as wildcard
select * from TABLE where montor_name like %ab%

# use less/greater operator for numerical values
select * from TABLE where position > 1 and position < 2

Bottom line, the SQL query syntax is very rich and allows to compose complex queries. It seems that did still need to be presented motorsdb tables as this may be easier to use in searches in stead of using sids in mongodb records. What you need is to lay down both possibilities and see how it will affect queries.

Sorry, I may not have been clear enough. The SQL statements for those cases are already there -- one can use a MotorsDbQuery struct to fill out the template  in static/query_motorsdb.sql, and all cases should be accounted for. However, the current SearchHandler will only parse two values from the user's query ("motor" and "position"), and these two values alone don't allow for a translation into any arbitrary MotorsDbQuery struct.

Ah, thanks, I see now! Then I'll try writing the translation between user query & MotorsDbQuery with the allowed keys as-is.


EACCES: permission denied, open '/sys/class/gpio/export' as superuser

Starting my nodejs app on a headless Pi as a superuser gives me the following. Starting it as non-root works well. It is rather strange, can you help me?
pi@raspberrypi:~/pw/as-cm4 $ sudo npm start

<EMAIL_ADDRESS>start
node ./bin/www

node:internal/fs/utils:322
throw err;
^
Error: EACCES: permission denied, open '/sys/class/gpio/export'
at Object.openSync (node:fs:492:3)
at Object.writeFileSync (node:fs:1516:35)
at exportGpio (/home/pi/pw/as-cm4/node_modules/onoff/onoff.js:18:8)
at new Gpio (/home/pi/pw/as-cm4/node_modules/onoff/onoff.js:172:36)
at Object. (/home/pi/pw/as-cm4/pinhandling.js:3:18)
at Module._compile (node:internal/modules/cjs/loader:1108:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1137:10)
at Module.load (node:internal/modules/cjs/loader:973:32)
at Function.Module._load (node:internal/modules/cjs/loader:813:14)
at Module.require (node:internal/modules/cjs/loader:997:19) {
errno: -13,
syscall: 'open',
code: 'EACCES',
path: '/sys/class/gpio/export'
}

The way in which onoff is implemented should prevent onoff from being the cause of EACCES errors.
If Raspberry Pi OS (previously called raspbian) is being used, then user pi has full access to GPIOs without the need to use sudo. A Node.js application using onoff run by user pi should be able to access GPIOs without sudo.
I think the system where the issue is being seen is configured incorrectly and that this is resulting in EACCES errors.
Please install onoff in a newly created directory to see if your application then works from that directory. When installing and using onoff, don't use sudo at any point.
Please use the following commands to install onoff:
pi@raspberrypi:~ $ cd ~
pi@raspberrypi:~ $ mkdir onoff-test
pi@raspberrypi:~ $ cd onoff-test/
pi@raspberrypi:~/onoff-test $ npm list
npm WARN npm npm does not support Node.js v10.23.1
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can't make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 4, 6, 7, 8, 9.
npm WARN npm You can find the latest version at https://nodejs.org/
/home/pi/onoff-test
└── (empty)

pi@raspberrypi:~/onoff-test $ npm install onoff

One of the commands run above is npm list. To ensure that no erroneous installations of onoff are being used, please confirm that the output of npm list is:
/home/pi/onoff-test
└── (empty)

I'll go ahead and close this as it's very unlikely to be a problem with onoff. If it does turn out to be a problem with onoff the issue can be reopened.


Is it possible to add a shortcut for cd **Tab?

Great tool first! Love it.
I want to use cc as cd **Tab, and search for a folder. And as soon as I hit "Enter", I can go into the folder directly instead of completing cd <fildername> first, and press another "Enter" to cd that folder.
Is it possible to do?

You can try something like this:
cc() {
  local dir=$(
    find . -path '*/\.*' -prune -o -type d -print |
    sed '1d;s/^..//' | fzf-tmux +m) && cd "$dir"
}

Awesome! Thanks @junegunn


Feature extraction

I want to extract features for a custom dataset generated by TSN. I am trying to modify the
mmaction/mmaction/models/recognizers/TSN2D.py file.
How can I remove the last FC layer, and obtain the features, (rather than the below numbers in the screenshot attached)?

@yjxiong @acrophile @loveunk @lindahua Please reply to this. I could not find a similar resolved issue. Thanks!

@kennymckormick Can you also look into the same and help me with the above. I just want features to be printed out. I want to use the above as a feature extractor.

I think you should modify the forward_test code in TSN2D to generate feature instead of logits (not to forward fc). You also need to modify test_recognizer.py to collect and store the feature you extracted.

@kennymckormick Can you also look into the same and help me with the above. I just want features to be printed out. I want to use the above as a feature extractor.

could u tell me how u solved the problem（about extract feature）？


Port remove migration apps from master to develop

Port https://github.com/MinaProtocol/mina/pull/15793 to develop

!ci-build-me


WordPress showing error while Theme Sniffer is activate.

I am getting an error when I open my local WordPress website while Theme Sniffer is activated!
WordPress Version: WordPress 5.2 “Jaco”
Theme Sniffer: 1.0.0
The site is experiencing technical difficulties. Please check your site admin email inbox for instructions.
Fatal error: Uncaught Error: Class 'Theme_Sniffer\Api\Api_Response_Error' not found in /var/www/html/wp-content/plugins/theme-sniffer/src/api/class-template-tags-request.php:56 Stack trace: #0 /var/www/html/wp-content/plugins/theme-sniffer/src/api/class-template-tags-request.php(37): Theme_Sniffer\Api\Template_Tags_Request->get_template_tags() #1 /var/www/html/wp-includes/class-wp-hook.php(286): Theme_Sniffer\Api\Template_Tags_Request->check_template_tags('') #2 /var/www/html/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters(NULL, Array) #3 /var/www/html/wp-includes/plugin.php(465): WP_Hook->do_action(Array) #4 /var/www/html/wp-settings.php(525): do_action('init') #5 /var/www/html/wp-config.php(107): require_once('/var/www/html/w...') #6 /var/www/html/wp-load.php(37): require_once('/var/www/html/w...') #7 /var/www/html/wp-admin/admin.php(34): require_once('/var/www/html/w...') #8 /var/www/html/wp-admin/index.php(10): require_once('/var/www/html/w...') #9 {main} thrown in /var/www/html/wp-content/plugins/theme-sniffer/src/api/class-template-tags-request.php on line 56
Screenshot => https://ibb.co/3fqY3fC
Thank You

Did you pull the plugin from the .org repo or from the GitHub?
Please check the installation instructions: https://github.com/WPTRT/theme-sniffer#installation---development

I installed the plugin from WordPress repo.

Thanks for reporting @naveenkharwar - at first look the namespace wasn't right for the error, but you're still arriving to this situation because of an error, something isn't configured correctly in your localhost, or something is conflicting with remote calls made via wp_remote_get().  This will hopefully let you see what the errors are in the admin notice, so you can address them in your environment.  Part of the change too was not to run all the transient checks for the tags until the user goes to the admin.php?page=theme-sniffer page so we don't make that call till we need the data.
The PR above fixes the errors for the fatal you're getting, but there are some additional uses of wp_remote_* functions that might need to also be tweaked too.
Can you let me know if this patch prevents fatal errors for you now? I went ahead and built a .zip off of the patch + development (ie it does have other changes that the .org version does not currently as a heads up!) branch and attached it here, if you could give it a try in your environment, that'd be much appreciated:
theme-sniffer.zip

I installed the plugin from WordPress repo.

Did you built the plugin as instructed? Using npm run build and composer install?
What the error suggest to me is that the autoloader isn't created and this causes issue with loading the classes 🙂
You're safer using the .org release (unless you want to work in development ofc).

I had the same error, and the problem is in the file in a Wordpress link that redirects to the developer file for this plugin here on Github. The file provided by @timelsass works perfectly.


Allow user access in conn

AccessPass has so far been the only library that has exactly what I need for API auth, and has worked out of the box! One thing it's missing is being able to access the details of the user that was authenticated in the connection object in my controllers. It would be great if this could be added. Unfortunately, I don't know enough about meta-programming in elixir to add it myself.

changed username to user_id here 755c06305c8f7cac0faa0378538b92675a8aabfa
Thanks for the issue!

Great thanks! I could look at adding user_id into user.meta inside user.ex in a few days when I get time.


[Feature] Make provider polling interval configurable

Component
provider, pubsub
Describe the feature you would like
Should be a method in both RootProvider and RpcClient
https://github.com/alloy-rs/alloy/blob/512e15f23648726ddf5262804ac16eb51664cef2/crates/rpc-client/src/client.rs#L167
Additional context
No response

closed by #437 and #767