Use firmware's blake2s() function

Firmware now provides a blake2s() function. Use it in rng_stream.
Still draft since we still have blake2s functions left. And need to see that everything works OK.
See https://github.com/tillitis/tillitis-key1/pull/53 for firmware changes and https://github.com/tillitis/qemu/pull/9 for qemu changes.

Wrote a wrapper function in libcommon that calls firmware's blake2s() and then used that in rng_stream. Now ready for review.

Works well and looks good!

I have reviewed the code. It looks good to me.


Race condition when removing "$DVM_DIR/.tmp/dvm-output.sh"

I run dvm use in my .zshrc. If I open multiple windows at once there seems to be a race condition when deleting this file. This seems to fix it.
Thanks for dvm!

LGTM! @rgbkrk ?

Let's merge this and then acknowledge we have new race conditions possible for when two different dvm processes delete this.
Solution for the future: we should spit back exactly what we want to source for bash/zsh/csh. IIRC, we don't have a way to extend that for PowerShell.

Thank you @aheuermann!

Ah, and here's the related issue: https://github.com/getcarina/dvm/issues/55

@rgbkrk @carolynvs thanks for merging! Is there anyway you could push a new release?  I am still seeing 0.3.1.
> dvm upgrade && dvm --version
The latest version of dvm is already installed.
Docker Version Manager version 0.3.1 (b65763b)

Doh! Thank you for the reminder. :blush:  I'll get that out in a jiffy.

0.3.2 has been released.

:raised_hands:


feat: enable support for exports condition

This PR enables using an export condition svelte to point at svelte source files.
eg this exports map
	"exports": {
		"./*": {
			"svelte": "./src/components/*"
		},
		".": {
			"svelte": "./index.js"
		}
	}

allows you to either import {SomeThing} from 'some-lib' when index.js exports SomeThing, or import SomeThing from 'some-lib/SomeThing.svelte'  if you prefer a deep import to avoid the index.
This is a very simplistic example and the real usecase is to still allow exporting compiled svelte files or other js files via the import condition.
See https://nodejs.org/api/packages.html#conditional-exports for what you can do with export conditions.

do we need additional tests, eg a scenario with mixes svelte field and exports condition? Is the usage i described above what we want to go for?
i tried using the .svelte extension with glob but it didn't work even if the node docs show tha *.js is a thing.
We only ever expect libraries to use the .svelte extension with preprocessed .svelte output, never other extensions like .svx that require additional markup preprocessors to be present, correct?
	"exports": {
	       // boohoo, didn't work in my tests
		"./*.svelte": {
			"svelte": "./src/components/*.svelte"
		},
		".": {
			"svelte": "./index.js"
		}
	}

I wonder if it's just *.svelte that doesn't work or if other extensions are affected. My guess is that it's an existing Vite bug, but it might be nice to confirm and file an issue.

i tried using the .svelte extension with glob but it didn't work even if the node docs show tha *.js is a thing.

Yeah I think this should technically work too, hoping it's only a bug on not some hidden nodejs spec.


Is it supports scss/less ?

Is it supports scss/less ?

PHP v8.1 (currently a release candidate) deprecates several parameter types and throws warnings such as Deprecated: preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated in PHP-CSS-Parser\lib\Sabberworm\CSS\Parsing\ParserState.php on line 285

@Insolita No, it only supports "vanilla" CSS.

without any plans for enhancement?


Feedback form to improve the portal

User provides feedback via the feedback form/textbox that will be on each user interface.
Feedback gets populated into a table (i.e: https://cwiki.apache.org/confluence/display/TC/Feedback+List) somewhere on the portal. If it doesn't make sense to put it on the portal, then need to figure out where/how to extract user's feedback.
User can refer back to the table to see all the portal improvements/feedback list and check the progress on their issue or if there's a similar issue already that's being worked on.
Portal admin can change the status, provide comments and create a Github ticket if the issue is big

@mitchell852
@dangogh
@dewrich
@ryandurfey
@ashish-timilsina

Is #1935 fixed?

Is #1935 fixed?

I feel like GitHub issues fill the role of feature requests for the portal, no?

I feel like GitHub issues fill the role of feature requests for the portal, no?

Maybe just a link in TP somewhere to https://github.com/apache/trafficcontrol/issues/new/choose ?

Maybe just a link in TP somewhere to https://github.com/apache/trafficcontrol/issues/new/choose ?


call command with inline keyboard doen't work

Required Information

Operating system:
PHP version:
PHP Telegram Bot version:
Using MySQL database: yes / no
MySQL version:
Update Method: Webhook / getUpdates
Self-signed certificate: yes / no
RAW update (if available):

Expected behaviour

Actual behaviour

Steps to reproduce

Extra details

hello, my goal is to make an inline menu. one of menu option is register. when a user clicked on register, RegisterCommand.php  must be activated and when it finished came back to menu. i need to know how can i call commands in an inline keyboard. thanks alot.

https://github.com/php-telegram-bot/core/issues/485

$update = json_decode($this->update->toJson(), true);
$update['message']['text'] = '/signup';
return (new SignupCommand($this->telegram, new Update($update)))->preExecute();
it does not work for me!
SignupCommand is an survey command.

@jacklul
$update = json_decode($this->update->toJson(), true);
$update['message']['text'] = '/signup';
return (new SignupCommand($this->telegram, new Update($update)))->preExecute();
it does not work for me!
SignupCommand is an survey command.

here is my menu file (MenuCommand.php):
`<?php
/**

This file is part of the TelegramBot package.

(c) Avtandil Kikabidze aka LONGMAN<EMAIL_ADDRESS>
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
*/

namespace Longman\TelegramBot\Commands\UserCommands;
use Longman\TelegramBot\Commands\UserCommand;
use Longman\TelegramBot\Entities\InlineKeyboard;
use Longman\TelegramBot\Request;
/**

User "/inlinekeyboard" command

Display an inline keyboard with a few buttons.
/
class MenuCommand extends UserCommand
{
/*

@var string
*/
protected $name = 'menucommand';

/**

@var string
*/
protected $description = 'inline keyboard menu';

/**

@var string
*/
protected $usage = '/menu';

/**

@var string
*/
protected $version = '0.1.0';

/**

Command execute method

@return \Longman\TelegramBot\Entities\ServerResponse

@throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
$chat_id = $this->getMessage()->getChat()->getId();
$inline_keyboard = new InlineKeyboard([
['text' => 'signup', 'callback_data' => 'register'],
['text' => 'advertisement', 'callback_data' => 'ads'],
], [
['text' => 'search', 'callback_data' => 'search'],
['text' => 'contact us', 'callback_data' => 'contact'],
]);
$data = [
'chat_id'      => $chat_id,
'text'         => 'here is my menu',
'reply_markup' => $inline_keyboard,
];
return Request::sendMessage($data);
}
}
and here is my CallbackqueryCommand.php:<?php
/**

This file is part of the TelegramBot package.

(c) Avtandil Kikabidze aka LONGMAN<EMAIL_ADDRESS>

For the full copyright and license information, please view the LICENSE

file that was distributed with this source code.
*/

namespace Longman\TelegramBot\Commands\SystemCommands;
use Longman\TelegramBot\Commands\SystemCommand;
use Longman\TelegramBot\Commands\UserCommands\HelpCommand;
use Longman\TelegramBot\Commands\UserCommands\SignupCommand;
use Longman\TelegramBot\Commands\UserCommands;
use Longman\TelegramBot\Request;
use Longman\TelegramBot\Entities\InlineKeyboard;
use Longman\TelegramBot\Entities\Update;
/**

Callback query command

This command handles all callback queries sent via inline keyboard buttons.

@see InlinekeyboardCommand.php
/
class CallbackqueryCommand extends SystemCommand
{
/*

@var string
*/
protected $name = 'callbackquery';

/**

@var string
*/
protected $description = 'Reply to callback query';

/**

@var string
*/
protected $version = '1.1.1';

/**

Command execute method

@return \Longman\TelegramBot\Entities\ServerResponse
@throws \Longman\TelegramBot\Exception\TelegramException
*/
public function execute()
{
$callback_query    = $this->getCallbackQuery();
$callback_query_id = $callback_query->getId();
$callback_data     = $callback_query->getData();
switch ($callback_data){
case 'register':
$update = json_decode($this->update->toJson(), true);
$update['message']['text'] = '/signup';
return (new SignupCommand(new $this->telegram, new Update($update)))->preExecute();
}

}
}
`
its is fully like you said before on #485 but it doesn't work at all.

return (new SignupCommand(new $this->telegram, new Update($update)))->preExecute();
this new keyword is a mistake I guess

@sharkydog Yep!
Also, due to the fact that the callback query doesn't have the message data, this needs more tweaking.
Best solution IMHO is to move all logic from the execute method into a separate class, which can then be called from the command and the callback, passing all necessary parameters along with it.
For example:
// Untested pseudo code.

class AwesomeCommand
{
...
    public function execute()
    {
        return self::doSomething(...);
    }
    public static function doSomething($chat_id, $user_id)
    {
        // Do something! Like Request::sendMessage(...) etc.
    }
...
}

class CallbackqueryCommand
{
    public function execute()
    {
        if ($whatever_callback_data) {
            return AwesomeCommand::doSomething(...);
        }
    }
}

Other option, which is a very nasty hack though, and really not recommended (also not 100% working example):
// In CallbackqueryCommand::execute()
if ($whatever_callback_data) {
    $update = (array) $this->update;
    $update['message'] = $update['callback_query']['message'];
    $update['message']['text'] = '/awesome';
    return (new AwesomeCommand($this->telegram, new Update($update)))->preExecute();
}

// In CallbackqueryCommand::execute()
if ($whatever_callback_data) {
    $update = (array) $this->update;
    $update['message'] = $update['callback_query']['message'];
    $update['message']['text'] = '/awesome';
    return (new AwesomeCommand($this->telegram, new Update($update)))->preExecute();
}

That will call AwesomeCommand with a message from the bot itself, "from" in the new message should also be "hacked" with "from" from the callback_query update.
I started testing inline keyboard and this can be done with default CallbackqueryCommand (CallbackQuery should be answered with answerCallbackQuery) using its static method to register callbacks, but it again involves similar hackery to construct a new message to send to the command.

@sharkydog As I mentioned, this hack really shouldn't be used, ever. It's really easy to extract the necessary code to a custom class / method.
Manipulating the Update object shouldn't be done, as it can also cause weird side-effects in the DB.
If the inline keyboard really needs to simulate a command 100%, then it will need a cleaner and more proof implementation, not all this messy array stuff 😁

@noplanman would you show me an example, how can i start a conversation in custom class/ method? i am really confused! i want to make register conversation custom class which active with register inlinekeyboard button.

i did what i want with these codes:
$callback_query    = $this->getCallbackQuery();         $callback_query_id = $callback_query->getId();         $callback_data     = $callback_query->getData();         switch ($callback_data){             case 'register':                 $update = (array) $this->update;                 $update['message'] = $update['callback_query']['message'];                 $update['message']['text'] = '/signup';                 $update['message']['from']['id']=$update['callback_query']['from']['id'];                 return (new SignupCommand($this->telegram, new Update($update)))->preExecute();         }
it started conversation and it works, thanks for your helps, but is it gonna make my bot getting bugs in the future?

@sadeghesfahani

copy entire "from" array

$update['message']['from'] = $update['callback_query']['from'];

make sure your MenuCommand is private only

class MenuCommand extends UserCommand {
    protected $private_only = true;
    // stuff
}

End CallbackqueryCommand with answerCallbackQuery

class CallbackqueryCommand extends SystemCommand {
    public function execute() {
        // stuff
        (new SignupCommand($this->telegram, new Update($update)))->preExecute();
        return Request::answerCallbackQuery(['callback_query_id' => $callback_query_id]);
    }
}

Another way:
Start a conversation in CallbackqueryCommand, but with "signup" as command parameter and send the user some message, then the next message from the user will go to SignupCommand, routed through default GenericmessageCommand.
class CallbackqueryCommand extends SystemCommand {
    public function execute() {
        // stuff

        $conv = new Conversation(
            $callback_query->getFrom()->getId(),
            $callback_query->getMessage()->getChat()->getId(),
            'signup'
        );
        Request::sendMessage([
            'chat_id' => $callback_query->getMessage()->getChat()->getId(),
            'text' => 'Go sign up'
        ]);
        return Request::answerCallbackQuery([
            'callback_query_id' => $callback_query->getId()
        ]);
    }
}

Don't forget to close the conversation in your command
class SignupCommand extends UserCommand {
    public function execute() {
        // stuff

       $conv = new Conversation(
           $this->getMessage()->getFrom()->getId()
           $this->getMessage()->getChat()->getId()
       );
       $conv->stop();
       Request::sendMessage([
           'chat_id' => $this->getMessage()->getChat()->getId(),
           'text' => 'Sign up ended'
       ]);
    }
}

oh really really thanks i was looking for this.

I ended up going the hacky way.
First, I extend the Telegram class and define new function:
public function executeCommandUpdate($command, \Longman\TelegramBot\Entities\Update $update) {
  $this->update = $update;
  return parent::executeCommand($command);
}

Then in CallbackqueryCommand:
public function execute() {
  $query = $this->getUpdate()->getCallbackQuery();

  $update = [
    'update_id' => 0,
    'message'   => [
      'message_id' => 0,
      'from' => $query->getFrom()->getRawData(),
      'date' => time(),
      'text' => $query->getData()
    ]
  ];
  if($query->getMessage()) {
    $update['message']['chat'] = $query->getMessage()->getChat()->getRawData();
  }
  $update = new Update($update, $this->telegram->getBotUsername());

  $command = $update->getMessage()->getCommand();
  if(!$command) $command = 'genericmessage';
  $this->telegram->executeCommandUpdate($command, $update);

  return Request::answerCallbackQuery(['callback_query_id' => $query->getId()]);
}

And then the MenuCommand (the inline keyboard):
public function execute() {
  $inline_keyboard = new InlineKeyboard(
    [
      ['text' => 'Ping echo', 'callback_data' => '/echo ping'], // executes /echo ping command
      ['text' => 'Ping cmd', 'callback_data' => '/ping'], // executes /ping command
      ['text' => 'Ping', 'callback_data' => 'ping'] // plain text, if a command initiated a conversation, it will receive this text through GenericmessageCommand
    ]
  );
  return Request::sendMessage([
    'chat_id' => $this->getMessage()->getChat()->getId(),
    'text' => 'Menu',
    'reply_markup' => $inline_keyboard
  ]);
}

Thank you for great work!! I am looking for this problem a lot of time!


Added an event for default stable rule "Fileless execution via memfd_create"

What type of PR is this?

Uncomment one (or more) /kind <> lines:

/kind bug

/kind cleanup

/kind documentation

/kind tests

/kind feature

Any specific area of the project related to this PR?

Uncomment one (or more) /area <> lines:

/area commands

/area pkg

/area events

What this PR does / why we need it:
Added an event for default stable rule "Fileless execution via memfd_create" as mentioned here whose priority is critical
Which issue(s) this PR fixes:

Fixes #137
Special notes for your reviewer:

@leogr KIndly tell me if any changes required. I tested it in virtual box and it triggers the rule and shows the error message.

Below is the screenshot where on left terminal we can see the Critical priority log produced by falco on executing the event Fileless execution via memfd_create as expected

What I did here is:
To perform fileless execution via memfd_create:
1.) We should load a executable binary into memory
2.) So what I did is using go build command I got an executable binary from a sample go code
3.) Now I loaded this binary to memory using memfd_create (i.e, unix.MemfdCreate) and executed it from memory
4.) So the rule get triggers
@FedeDP @leogr provide your feedback on this

@leogr just did the changes suggested by you. And it is working absolutely fine :100:
And the rule triggers as expected (Note: I saved this helper.DoNothing function and executed the event code)

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: GLVSKiriti, leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: 558e846eb2978047defa74aa68ca12c1bf1fcc0a

Thanks @GLVSKiriti 🚀

Thanks @leogr @loresuso for your guidance!!
Really I loved this PR ❤! Learned a lot of concepts from this contributions 🚀


cant get it to work, get this error

Hello thankyou for writing in, this is happening due to the ?p2 option you have added at the end of your link.
I'll look into parsing arguments for the ps link, in the meanwhile please run the command without ?p2 at the end:-
node download.js -l https://replay.pokemonshowdown.com/gen7draft-2212254515 --nochat

thank you for the quick response,
I tried without the ?p2 (which was auto added, prob bcuz it was from my showdown account) and it worked...), ngl this thing is insane, I wanted to use it for YT vids, but manually recording every battle is just too much for some1 as lazy as me... (tho me being on the wrong side will be kinda annoying, but its still waaay better, Ill be waiting (no pressure))
SIlVeR-650

cheers
I have placed in the fix, you should be able to utilize your original link now. (https://replay.pokemonshowdown.com/gen7draft-2212254515?p2)

thx for the quick fix,
and yeah it does indeed work with both sides now.
-SIlVeR-650


Public release 1.8.0

update version
add the release note

@ruil2 @sijchen @huili2 please help to review. thanks.

pull request


cocoa pod can not search the MJRefresh

but pod the address is ok may be is not new one

Please run 'pod repo update' on your terminal.3Q

ok,the issues is fixed . thanks


Ability to call builder.createnew with runtime types?

hi,
Great lib!
I needed to create test objects with runtime types, so I did this:
[entityType is type of System.Type]
// Arrange
var nBuilderType = typeof(Builder<>).MakeGenericType(entityType);
dynamic generated = nBuilderType.GetMethod("CreateNew").Invoke(null, null);
var expected = generated.Build();
Can you implement a non-generic version of the builder, so that it is possible to call it with a type?
Like: Builder(Type testObject).CreateNew().Build()
I haven't checked the code, just wondering if it makes sense on your side?
Thanks!

It could make sense. Let me look at it and get back to you.

It's do-able but non-trivial. The challenge is that Builder<T> uses ObjectBuilder<T>, so the generic arguments flow pretty deeply. I'd need to create three overloads for CreateNew and CreateListOfSize. I'll spend some time with it and see if it falls fast.

I'm open to being persuaded, but I don't think this can work. Overloading the above methods is the easy part. The hard part is the fluent API that hangs off of CreateNew and CreateListOfSize.  It would be an enormous amount of work to rewrite all of that and I'm not even sure what the method signatures would look like.  I'm going to close this for now. If you see a path through the mess then feel free to reopen it.


AWSClientTestSuite.TestClockSkewOutsideAcceptableRange run during build leads to alignment trap error

Linux:
gcc 4.9.2
cmake 3.8.2
Armbian_5.20_Cubietruck_Debian_jessie_3.4.112
kernel 3.4.112.sun7i
curl : 7.38
SDK version (1.1.46)
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_ONLY="config;core;kinesis"
The build fails at AWSClienttestSuite tests and specifically when running AWSClientTestSuite.TestClockSkewOutsideAcceptableRange
alignment trap: not handling instruction e8de677f at []
Unhandled fault :alignment exception (0x001) at 0x00bb674c
Bus error
Is there something that I can do to avoid this error

Did you manage to solve this?

No I haven't manage to solve. Since the build fails I don't know what else to try. That's why I asked the question in the first place.
For the time being I just upgrade to Armbian_5.20_Cubietruck_Debian_jessie_3.4.113, it worked but it's only half measure because I need it to work under the Armbian_5.20_Cubietruck_Debian_jessie_3.4.112 version if possible.

Alright, that's a shame. I'm getting the exact same problem (alignment exception / bus error) at the same test on Raspian 4.9.35-v7+.

Hi, I had the same issue in Armbian_5.31_Cubieetruck_Debian_Jessie_next_<IP_ADDRESS>
... :(

Having the same problem with Raspbian Stretch, installed everything from scratch.

@kai5z @gv1dev @dk1301  It's been a while.  Did you guys manage to solve this problem? I remember we had this similar problem in test and fixed it in https://github.com/aws/aws-sdk-cpp/commit/47030e94869586f4b9d29bba8fd0f3315f1c2f58. Appreciate if you guys can try it again with latest SDK.


Stream to the right, first point on the left

Hi !
I want to animate the graph to the right but without reversing the axis. The first point would be on the left.
Is it currently possible ? And if it's not could it be easily achieve if I fork the plugin or should I rather create another plugin directly ?
Thanks !

+1 Curious if this is possible

I'm not sure how the graph would be animated to the right without reversing the axis. Isn't this sample what you expect?

Yeah want his badly as well, my solution @nagix to your question,
I guess we can keep the axis stationary, ie: display the time for let's say 1 minute, and when the line chart reaches the extreme right. that is when the x-axis starts moving to the left while the line chart progresses.
Hope you could picture the process.

Hi,
Did anyone manage to achieve this? Would appreciate the assistance.
Thanks.


Support for Boost license

https://github.com/boostorg/compute/blob/master/LICENSE_1_0.txt
https://github.com/boostorg/hana/blob/master/LICENSE.md

Hi @KindDragon! This project doesn't curate the license information, but simply vendors the licenses and metadata provided by choosealicense.com. Please follow these instructions to submit a pull request to get the license added upstream, and it will be automatically vendored (and detected) here.

Sorry, thank you

Hmm, they have Boost license http://choosealicense.com/appendix/

It was only added last week https://github.com/github/choosealicense.com/pull/452 and is not yet vendored by licensee.

Greate! Thank you

Re-vendored the licenses via 8050466


Update MAINTAINERS.MD

What type of PR is this?
Add one of the following kinds:

bug
correction
enhancement/feature
cleanup
documentation
subproject management
tests

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for reviewers:
Changelog input
 release-note

Additional documentation
This section can be blank.
docs

Please make sure that @SyeddR first joins the Sub Project (apply on the mailing list) before processing this PR

Please make sure that @SyeddR first joins the Sub Project (apply on the mailing list) before processing this PR

@SyeddR has still not joined the sub project. I propose to close this stale PR. @DT-DawidWroblewski @bigludo7


feat: add options to add new subreddits for subscribing or adding to …

…custom-feeds

solved by #174


Low Depth Accuracy in Training on ScanNet

Hi,
Thanks for sharing the code. I am recently trying to train the R-MVSNet on a subset of ScanNet dataset. I first run the colmap and then using the provided code to get the cam.txt and pari.txt, and the ground truth is from ScanNet directly.
During the training, I use the ground truth depth range of reference frame with max_d=128, and scale both the image and camera intrinsic by 0.25. No augmentation or refinement is used.
There is no problem to run the pipeline, but the training accuracy seems very low (attached below). Compared to DTU and ETH3D, this dataset does include more blur frames and resolution the resolution is lower (640*480). But I am not sure if this will lead to such a significant performance drop.
May I ask if you have any insight about it? Or is there any detail I have missed?

Hi,
have you solved it? I trained the ScanNet too, but failed.
The depth range of ScanNet(gt) among 400~3000, but the depth_min computed from colmap2mvsnet only 0.0×. It has different scales. If I want to train other datasets, how could I solve it?
Thanks!


What is the architecture of this project and how can I help? + other questions

So from what I gathered this program generates a QR code that we put in rooms and then scan through a website (with maybe future integration with an app). The front end appears to be using javascript and the backend will be managed using python (hopefully using flask). Did I get anything off / anything else.
Also what would be the best way to contribute to this? I have experience with React Native (iOS / android app), Swift (iOS), and Python.

Yes alright, sorry I was out of town for a few days... You have grasped the general concept, however, the thought was that the students would be the ones with the QR/barcodes (which I'll get to in a second) and there will be scanners in the classrooms. Originally, we were going to use QR codes, but I found a VERY cool trinket here which I think would be awesome to work with, and we could design the casing  as well as the functionality with the website etc. As for your contribution, I remember you telling me about a way you were communicating with schoology which I will definitely need help with... Also, the app in the future will be great for the teachers to use depending on where this project goes.

Okay That would work too. The link is a camera based scanner, which would work with QR codes too.

I think with this one, it has the reader included as well which is designed for barcodes specifically... It really doesn't matter because with code 128 barcodes, you can encode most words and symbols.

Heres some pros to QR Codes I pulled off a website for curiosity.

A conventional barcode can take up to ten times the amount of printing space as a QR code carrying the same amount of information.

A QR code is capable of being read in 360 degrees, from any direction, thus eliminating any interference and negative effects from backgrounds.

Also, the algorithm which is used to create QR codes will allow for an error margin (approx. 7-30%). “So what?” you ask? Well, this doesn’t just help with scanning purposes in case the item or code in question is dirty or damaged. Knowing this feature, you can alter the QR code symbol to include a logo, keyword, picture, etc.

PS just added the local barcode generation.


Unable to name / rename space

Sometimes when renaming a space, it's possible to enter a name, but the name is not getting finalised.
It just keeps accepting text and isn't renaming the space.
Possibly the button for finalising the space is just non-reactive for some reason.
Is there a regex for possible names that could trigger this? I notices it doesn't always like all caps names.
I'll add a short video when I manage to reproduce the bug.

I think my problem is similar. When finish type space name hit ENTER key and click outside of Spaces popup. And in name of space in popup didn't changed. Need to click inside popup and outside of text-field to save.
OK button near field will be ok =)
Thx for extensions btw

Fixed in v1.1.1


⚠ ClamAV has degraded performance

In 067d490, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 177 ms

Resolved: ClamAV performance has improved in 82f88ae.


Build release images on main branch merge

Description
This PR was instigated by this discussion which settled on a release image built for each merge to the main branch tagged -prerelease. Along the way I 'tidied up' some CI labels and ultimately ran through the following behavior expectations and tests.
Changes & Related Tests
When a PR is merged to the main branch
A -prerelease tagged image is created built with GOTAGS=release.
Tested with

Temporarily change the workflow branch name to the implementing PR branch
name, remove pull triggers and force is_in_PR_context()=1. The github action
for the commit push will simulate a merge to master.
Expect:

[x] - Default images are development builds, creates -prerelease, creates -rcd. build
[x] - Install and verify default images is_release = false.
[x] - Install -prerelease and verify is_release = true.

When a tag is pushed
All images are built with GOTAGS=release and no -prerelease image is
needed. A -rcd image is created as required for
gke-race-condition-qa-e2e-tests.
Tested with

Push a tag for the PR branch 0.0.1-rc1
Expect:

[x] - Default images are release builds, skips -prerelease, creates a -rcd. build
[x] - Install and verify default images is_release = true.

Labels effect on pushes to PRs
New label: ci-build-race-condition-debug - builds a main image with -race and gives it a -rcd tag suffix. Currently these images are built for all PRs in order to be available for the unlikely run of a /test gke-race-condition-qa-e2e-tests on a PR.
Existing seldom used label: ci-race-tests - all images on a PR are built as race-condition-debug images (-race) and so all E2E tests run against -race images. (Was the behavior in Circle CI and before OSCI to GHA build migration).
New label: ci-build-prerelease - builds a main image with GOTAGS=release and gives it a -prerelease tag suffix.
Existing sometimes used label: ci-release-build - all images on a PR are built as release images (GOTAGS=release) and so all E2E tests run against release images. (This is the current behavior for this label).
Tested with

Build PR with no labels. build
Expect:

[x] - Default images are development builds, skips -prerelease, skips -rcd.
[x] - Install and verify is_release = false.
[x] - /test gke-race-condition-qa-e2e-tests - fails clearly declaring a
label is required.

Build PR with ci-build-prerelease. build
Expect:

[x] - Default images are development builds, creates a -prerelease, skips -rcd. push
[x] - Deploy -prerelease and verify is_release = true.

Build PR with ci-release-build. build
Expect:

[x] - Default images are release builds, skips -prerelease, skips -rcd.
[x] - Deploy and verify is_release = true.

Build PR with ci-build-race-condition-debug & create a race condition. force RACE
Expect:

[x] - Default images are development builds, skips -prerelease, creates a -rcd. build
[x] - Install and verify is_release = false.
[x] - /test gke-race-condition-qa-e2e-tests - should find the image and
the test should fail due to RACE in logs. Other tests should be fine despite
the benign race condition. -race failure

Build PR with ci-race-tests & create a race condition.
Expect:

[x] - Default images are development builds, skips -prerelease, skips -rcd.
[x] - Install and verify is_release = false.
[x] - Default qa e2e tests fail due to being race builds & race condition. test failure

/test

/test gke-race-condition-qa-e2e-tests

/retest

/test gke-race-condition-qa-e2e-tests

/test gke-race-condition-qa-e2e-tests

Question:

ci-race-tests - all images on a PR are built as race-condition-debug images (-race) and so all E2E tests run against release images.

I don't see the connection between the two parts of the sentence?

Yeah. that last bit should be -race images. Updated the text.

Request:

please document the labels mentioned in the description, what images are built and what names they have, and which ones are used to run which tests

Will do.

@janisz I'd appreciate your review on this change if you get a chance. Thanks.


Tumblthree will not open up, insisting that .netframework 4.6 is not installed

tumblthree has refused to open up despite my best efforts to install .netframework 4.6 for the past 3 hours.
4.6 has already installed and the application refuses to open. I also tried rebooting the computer as well.

I'm trying to execute the application in the C: section in my user folder
My version of Windows is Windows 8 (not 8.1) version 6.3 (Build 9600)
My windows version is 64b
I installed the latest version and the version the software wanted me to install.

What a painfully vague error (assuming .Net is actually installed currently).
Some things to try:

Verify that this is WIndows 8 and not 8.1. It looks like 8.1 from your screenshot, the start button is a big giveaway. Windows 8.0 is End of life and no longer supported by Microsoft. I'm 99.99% sure build 9600 is 8.1, even if Winver says 8.
Ensure you are up to date with Windows Update.
(longshot) Try adding .Net 3.5 support. This is done through Programs and Features in Control Panel under "Turn Windows Features On and Off". I haven't verified the dependency tree but it could be a case of a dependency missing the v2 or v3 runtime.
Install .Net 4.7.2, it should be inclusive of 4.6.x https://dotnet.microsoft.com/download/dotnet-framework-runtime
After installing .Net make sure you restart.

It is windows 8.1
.net 3.5 support already exists and fully installed
I've installed .net 4.7.2 and the same error pops up no matter what even if you restart the computer.
I've also tried older versions of tumblthree but they don't do anything.

I've just found out that for some unknown reason, despite installing netframe work 4.6 many times, the full version is not installed.


cmd/compile: objects emit generic instantiations for imported packages

With the use of atomic.Pointer in package sync, this program is now generating the full compiled code for atomic.Pointer into its object file even though it's not being used at all:
% cat x.go
package p
import "sync"
var theMap sync.Map

% go build -gcflags=-S x.go
...
command-line-arguments.theMap SBSS size=32
go:info.command-line-arguments.theMap SDWARFVAR dupok size=46
	0x0000 0a 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 2d 61 72  .command-line-ar
	0x0010 67 75 6d 65 6e 74 73 2e 74 68 65 4d 61 70 00 09  guments.theMap..
	0x0020 03 00 00 00 00 00 00 00 00 00 00 00 00 01        ..............
	rel 33+8 t=1 command-line-arguments.theMap+0
	rel 41+4 t=31 go:info.sync.Map+0
...
%

The part I didn't omit with ... is all that should be here, plus maybe a package init. The omitted part appears to be the entire compilation of four different instantiations of sync/atomic.Pointer, plus all their supporting type declarations:
% grep CompareAndSwap.STEXT out
sync/atomic.(*Pointer[go.shape.interface {}]).CompareAndSwap STEXT dupok size=94 args=0x20 locals=0x20 funcid=0x0 align=0x0
sync/atomic.(*Pointer[go.shape.struct { sync.m map[interface {}]*sync.entry; sync.amended bool }]).CompareAndSwap STEXT dupok size=94 args=0x20 locals=0x20 funcid=0x0 align=0x0
sync/atomic.(*Pointer[sync.readOnly]).CompareAndSwap STEXT dupok size=108 args=0x18 locals=0x20 funcid=0x15 align=0x0
sync/atomic.(*Pointer[interface {}]).CompareAndSwap STEXT dupok size=108 args=0x18 locals=0x20 funcid=0x15 align=0x0
%

Given that there is no code being emitted for this package at all, there's no need to emit all of this. (It's possible they are referenced from the definition of go:info.sync.Map, but that is not being emitted here either. The generated code correctly assumes that will be provided by package sync's object file.)
Overall the size increase is 33X since Go 1.19:
% go build -o x.a x.go
% go1.19 build -o x19.a x.go
% ls -l x.a x19.a
-rw-r--r--  1 rsc  primarygroup  73834 Nov 12 08:47 x.a
-rw-r--r--  1 rsc  primarygroup   2196 Nov 12 08:47 x19.a
% hoc -e 73834/2196
33.62204007285975
%

Obviously there is a small denominator in that 33X, but there is also very little use of generics yet.
There is a deeper problem than dead code here too.
When we were talking about instantiation in the early days of generics, one of the ways we discussed to avoid code size issues would be for packages to know which instantiations they use are already present in packages they import, so that definitions would not need to be generated repeatedly in multiple packages. For example, since package sync generated the definition for atomic.Pointer[any] any program directly or indirectly importing package sync can use atomic.Pointer[any] “for free” without itself regenerating that code. Of course, there's a search problem for answering the question of whether any package in the transitive import closure has already generated the code. But at the least, if we see a type in the ordinary course of reading export data for imported packages, we should mark it as not needed to be regenerated: anything in export data is handled by the package that wrote the export data. Applying that rule has no search problem.
In the standard library we are barely starting to use generics, yet we have 15 packages whose objects repeat the atomic.Pointer code from sync, 13 that repeat atomic.Pointer code from go/token, 9 that repeat an atomic.Pointer[string] from internal/godebug (in my working tree), and three that repeat an atomic.Pointer[response] from net/http:
% cd $GOROOT
% GODEBUG=installgorootall=1 go install std
% {for (i in `{find pkg/darwin_amd64 -name '*.a'}) go tool nm $i} |
	sed 's/^[^ ]*//' | grep -v ' U ' | awk '{$1=""; print}' |
	sort | uniq -c | sort -nr | awk '$1>1' >dups
% grep '\.CompareAndSwap$' dups
  15  T sync/atomic.(*Pointer[sync.readOnly]).CompareAndSwap
  15  T sync/atomic.(*Pointer[interface {}]).CompareAndSwap
  15  T sync/atomic.(*Pointer[go.shape.struct { sync.m map[interface {}]*sync.entry; sync.amended bool }]).CompareAndSwap
  15  T sync/atomic.(*Pointer[go.shape.interface {}]).CompareAndSwap
  13  T sync/atomic.(*Pointer[go/token.File]).CompareAndSwap
  13  T sync/atomic.(*Pointer[go.shape.struct { go/token.name string; go/token.base int; go/token.size int; go/token.mutex sync.Mutex; go/token.lines []int; go/token.infos []go/token.lineInfo }]).CompareAndSwap
   9  T sync/atomic.(*Pointer[string]).CompareAndSwap
   9  T sync/atomic.(*Pointer[go.shape.string]).CompareAndSwap
   3  T sync/atomic.(*Pointer[net/http.response]).CompareAndSwap
   3  T sync/atomic.(*Pointer[go.shape.struct { net/http.conn *net/http.conn; net/http.req *net/http.Request; net/http.reqBody io.ReadCloser; net/http.cancelCtx context.CancelFunc; net/http.wroteHeader bool; net/http.wroteContinue bool; net/http.wants10KeepAlive bool; net/http.wantsClose bool; net/http.canWriteContinue sync/atomic.Bool; net/http.writeContinueMu sync.Mutex; net/http.w *bufio.Writer; net/http.cw net/http.chunkWriter; net/http.handlerHeader net/http.Header; net/http.calledHeader bool; net/http.written int64; net/http.contentLength int64; net/http.status int; net/http.closeAfterReply bool; net/http.requestBodyLimitHit bool; net/http.trailers []string; net/http.handlerDone sync/atomic.Bool; net/http.dateBuf [29]uint8; net/http.clenBuf [10]uint8; net/http.statusBuf [3]uint8; net/http.closeNotifyCh chan bool; net/http.didCloseNotify sync/atomic.Bool }]).CompareAndSwap
%

For what it's worth, the objects we shipped in Go 1.19 appear to have the same duplication of atomic.Pointer[go/token.File], so the bug is not new.
15 doesn't look so bad, but when compiling Kubernetes we end up with 122 copies each of four different atomic.Pointer instantiations from package sync:
% cd kubernetes
% go build ./cmd/kubelet
% {for (i in `{go list -f '{{.Export}}' -export -deps ./cmd/kubelet}) go tool nm $i} |
	sed 's/^[^ ]*//' | grep -v ' U ' | awk '{$1=""; print}' |
	sort | uniq -c | sort -nr | awk '$1>1' >dups
% grep '\.CompareAndSwap$' dups
 122  T sync/atomic.(*Pointer[sync.readOnly]).CompareAndSwap
 122  T sync/atomic.(*Pointer[interface {}]).CompareAndSwap
 122  T sync/atomic.(*Pointer[go.shape.struct { sync.m map[interface {}]*sync.entry; sync.amended bool }]).CompareAndSwap
 122  T sync/atomic.(*Pointer[go.shape.interface {}]).CompareAndSwap
   7  T sync/atomic.(*Pointer[string]).CompareAndSwap
   7  T sync/atomic.(*Pointer[net/http.response]).CompareAndSwap
   7  T sync/atomic.(*Pointer[go.shape.struct { net/http.conn *net/http.conn; net/http.req *net/http.Request; net/http.reqBody io.ReadCloser; net/http.cancelCtx context.CancelFunc; net/http.wroteHeader bool; net/http.wroteContinue bool; net/http.wants10KeepAlive bool; net/http.wantsClose bool; net/http.canWriteContinue sync/atomic.Bool; net/http.writeContinueMu sync.Mutex; net/http.w *bufio.Writer; net/http.cw net/http.chunkWriter; net/http.handlerHeader net/http.Header; net/http.calledHeader bool; net/http.written int64; net/http.contentLength int64; net/http.status int; net/http.closeAfterReply bool; net/http.requestBodyLimitHit bool; net/http.trailers []string; net/http.handlerDone sync/atomic.Bool; net/http.dateBuf [29]uint8; net/http.clenBuf [10]uint8; net/http.statusBuf [3]uint8; net/http.closeNotifyCh chan bool; net/http.didCloseNotify sync/atomic.Bool }]).CompareAndSwap
   7  T sync/atomic.(*Pointer[go.shape.string]).CompareAndSwap
   5  T sync/atomic.(*Pointer[go/token.File]).CompareAndSwap
   5  T sync/atomic.(*Pointer[go.shape.struct { go/token.name string; go/token.base int; go/token.size int; go/token.mutex sync.Mutex; go/token.lines []int; go/token.infos []go/token.lineInfo }]).CompareAndSwap
%

If this is easy to fix it would be good to do it for Go 1.20. If not, then since Go 1.19 appears to behave the same way, it's probably not strictly a release blocker.

I think this is blocked by #47448.

@cherrymui points out it should be possible to cross-reference DUPOK symbols from other packages by just not defining them. This appears to demonstrate it working correctly across packages: https://go.dev/play/p/0SheVE56Lhm

Agreed that #47448 is not fundamental to emitting undefined references to things in other packages.
In this case, however, the object file has no need to mention sync/atomic.Pointer[interface {}].CompareAndSwap at all. It is not emitting any kind of reference at all to that code. It just emitted the code anyway. As far as the object file is concerned, it is dead space. But also any time spent actually generating the x86 instructions for the function is also dead CPU and RAM and build time that could be removed to make the build more efficient. So we should make sure that we don't just fix the problem by not emitting these functions. We should stop compiling them in the first place.

Signal boost from Google-internal issue b/340857204:
It seems like this issue has become more pressing after CL 578815 added more generics to the reflect package.
Every Go Protobuf generated code file (.pb.go) imports the reflect package so that it can call reflect.TypeOf.
Despite not using the newly added symbols at all, the .a files for these Protobuf generated code targets have grown. Because Google programs use a large number of Protobufs, the collective size increase is pronounced enough to push many Google-internal programs over the edge in terms of allowed link action input size (“Forge: Total size of inputs too large”).
Would it be possible to prioritize this issue to get the .a file size down again? Thanks.

I was looking into the issues mentioned in #29561 and #50438, which led me to conclude that this is the main culprit behind the bloated build cache and long compilation times that we're seeing. I posted a detailed investigation with numbers from a real-world codebase in #50438, but the short of it is that our codebase (which a year or so ago compiled in seconds) takes several minutes to compile following large-scale refactoring involving generics, and we end up with a 5 GB build cache with many individual ~300 MB package archives, most of which seems to be duplicated generic instantiations. The artifact sizes are further exacerbated by the long type names mentioned in #50438.
You can find a MWE at https://github.com/arvidfm/go-cache-bloat which shows how you can produce a 50 MB package archive from a 15 line package within a 130 line codebase.
This is a major issue for us as the slowdown from the recompilation of the instantiations makes it harder for us to iterate on our code, and the resulting size of the build cache artifacts made our CI environment run out of space so frequently that we had to create a script to prune our build cache before each build.


ks 0.10.1 does not show components named with underscore symbol

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug

/kind feature

What happened:
If a component file name has underscore symbol (e.g. some_component.jsonnet) then the command
ks show default -c some_component

fails with the error
ERROR find objects: invalid field name "some_component"

What you expected to happen:
It must show the rendered component (0.9.2 works with such file names).
How to reproduce it (as minimally and precisely as possible):
Create a component named some_component.jsonnet and put it to components directory and then run the ks show default -c some_component command.
Anything else we need to know?:
Environment:

ksonnet version (use ks version):
ksonnet version: 0.10.1
jsonnet version: v0.10.0
client-go version: 1.8

Kubernetes version (use kubectl version):
Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.2", GitCommit:"bdaeafa71f6c7c04636251031f93464384d54963", GitTreeState:"clean", BuildDate:"2017-10-24T19:48:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.7", GitCommit:"b30876a5539f09684ff9fde266fda10b37738c9c", GitTreeState:"clean", BuildDate:"2018-01-16T21:52:38Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

@bryanl Any update? I'm trying with 0.10.2 and I'm hitting a similar issue.
There's a semi related issue #304 about parameter names with underscores.
Did something change w.r.t to the set of allowed names?

I think this is a Duplicate of #554.
It looks to me like the error is coming from here which is using the regexes
	reFieldStr = regexp.MustCompile(`^[A-Za-z]+[A-Za-z0-9\-]*$`)
	// reField matches a field id.
	reField = regexp.MustCompile(`^[A-Za-z]+[A-Za-z0-9]*$`)

It looks like the jsonnet spec allows underscores for ids. It uses the regex
[_a-zA-Z][_a-zA-Z0-9]*

So this looks like a simple bug to me in ksonnet.


[RB Set V2] Add check for non-zero supply when starting a rebalance

Pull Request Test Coverage Report for Build 7149

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 7111:
0.0%

Covered Lines:
1349

Relevant Lines:
1349

💛  - Coveralls


python3.6 is no longer supported

Describe the bug
Cloudformation deployment fails due to deprecated v3.6 runtime on 'CustomCDKBucketDeployment' resource. Received the following error...
Resource handler returned message: "The runtime parameter of python3.6 is no longer supported for creating or updating AWS Lambda functions. We recommend you use the new runtime (python3.9) while creating or updating functions. (Service: Lambda, Status Code: 400, Request ID: a031c6e0-099f-400c-b178-46d8fd90eed4)" (RequestToken: 7c6f9c88-0ae4-0f27-8d61-0a780cc6e230, HandlerErrorCode: InvalidRequest)
To Reproduce
Launch the stack.
Expected behavior
CFN template expected to deploy without error.
Please complete the following information about the solution:

[ ] Version: v1.0

To get the version of the solution, you can look at the description of the created CloudFormation stack. For example, "(SO8001) - Data Transfer Hub with aws-solutions-constructs: This template deploys an one-stop toolset for transferring data from different sources into AWS. Template version v1.0.0".

[ ] Region: [e.g. us-east-1] us-east-1
[ ] Was the solution modified from the version published on this repository? no
[ ] If the answer to the previous question was yes, are the changes available on GitHub?
[ ] Have you checked your service quotas for the sevices this solution uses? n/a
[ ] Were there any errors in the CloudWatch Logs? n/a

Hi, @bkc1 this is an issue, we are working on fix it the issue on the WW Solutions Library, there are some process to fix the issue.
Currently, please refer to the link on the China Solutions Library.

Fixed.


Timer app locks vibration on if BTN1 is pressed while vibrating

With version 0.04 of the simpletimer app, start the app.
Create a one-second timer.
Once it goes off, while the watch is vibrating, press BTN1 (labeled (re)start).
The vibration will now continue until you long-press BTN3 to return to the home screen.

Working flawlessly now.
Thanks for the fix!

No problem - glad it's sorted :)


Project uses carthage but is installed via cocoapods? How and why?!

Can use this library with

CocoaPods
Carthage
Swift Package Manager

I see the Readme.md file
see also: SwiftFrameworkTemplate


SaveFilePickerAsync is broken on wasm firefox

Describe the bug
An error occur whenever I try to call the SaveFilePicker on Firefox because it uses an api that is not supported on that browser.
To Reproduce
Steps to reproduce the behavior:

Have a SaveFilePickerAsync call in your app
Observe the following error in the console with no dialog:

Expected behavior
The SaveFilePickerAsync to work correctly on Firefox.
Desktop (please complete the following information):

OS: Arch Linux
Firefox 111.0.1
Version 11 preview 6

Additional context
Essentially, I investigated myself and found this line https://github.com/AvaloniaUI/Avalonia/blob/master/src/Browser/Avalonia.Browser/webapp/modules/storage/storageProvider.ts#L50 which seemed to call a function on the window, but in checking the mdn documention, if you scroll down at the end, it specifically says that Firefox has "No Support": https://developer.mozilla.org/en-US/docs/Web/API/Window/showSaveFilePicker#browser_compatibility
I currently have issues to test on my end, but the native-file-system-adapter module does seem to provide a showSaveFilePicker which could fix this problem. I wonder why this feature was used considering Firefox doesn't support it.

I currently have issues to test on my end, but the native-file-system-adapter module does seem to provide a showSaveFilePicker which could fix this problem. I wonder why this feature was used considering Firefox doesn't support it.

That's correct. This library has support for save file picker. Unfortunately, it's quite a big hack, as it either works through "download link" (i.e. works horribly with big files) or a service worker (needs to be set-up separately, might conflict with user defined service workers). It's still something we can use though, just wasn't done because of time limitations. Ideally, BrowserOptions should have a way to disable/enable service worker.
Off-topic, but I have feeling like we should close Firefox related issues, as this browser has its own policy about supporting new features or discussing standards, and we have nothing to do until they find out any better API.
https://github.com/mozilla/standards-positions/issues/154
https://github.com/mozilla/standards-positions/issues/738#issuecomment-1401367367
https://mozilla.github.io/standards-positions/

Also, I would recommend to always check "StorageProvider.CanSave" flag, as you might find out that iOS also doesn't have Save File Picker APIs at all.
Ideally, Share API should be supported for these cases, and it is better UX-wise on mobile, where people usually share files and not save them.
But guess what, you also can't share files on Firefox: https://developer.mozilla.org/en-US/docs/Web/API/Web_Share_API#api.navigator.canshare

I currently have issues to test on my end, but the native-file-system-adapter module does seem to provide a showSaveFilePicker which could fix this problem. I wonder why this feature was used considering Firefox doesn't support it.

That's correct. This library has support for save file picker. Unfortunately, it's quite a big hack, as it either works through "download link" (i.e. works horribly with big files) or a service worker (needs to be set-up separately, might conflict with user defined service workers). It's still something we can use though, just wasn't done because of time limitations. Ideally, BrowserOptions should have a way to disable/enable service worker.
Off-topic, but I have feeling like we should close Firefox related issues, as this browser has its own policy about supporting new features or discussing standards, and we have nothing to do until they find out any better API.
mozilla/standards-positions#154 mozilla/standards-positions#738 (comment) https://mozilla.github.io/standards-positions/

Huh, this is all very interesting, well for the purpose of this issue, what are the current workaround options?
For context, my app is a game save editor: it simply offers the option to open a file for edition and an option to save it when the user wants later. I ask because I unfortunately don't have too much experience in web development and from the sound of it, it sounds like it might be possible to make it work if a bit complicated, but I recently learned how jsimport and jsexport works so I wonder if it could be possible to implement myself a proper substitute.
You mentioned using a service worker, how is that something I could implement?

@aldelaro5 to save the file in a conventional way, you convert a file into encoded URI, which is later can be downloaded from a fake <a> link. See https://stackoverflow.com/questions/35038884/download-file-from-bytes-in-javascript
This is probably the best way, if your files aren't too big (i.e., gigabytes).

@maxkatz6 I think I must be missing something because this polyfill doesn't work at all.
On firefox, It appears to act as if it suceeded, but no save file picker appears, not downloads, nothing.
On chrome (if I use the option to force to use the polyfill, had to test it since I can't debug on firefox, only chrome), now it can't register the service worker due to SSL issue despite the fact I told chrome to trust this localhost one.
I am just very confused, am I missing something?

It also seems to like...do something, but only redirect to a non existent page if I wait long enough whose name is the suggestedFilename I sent.

That's basically how this hack works, same as old hacks from stackoverflow - https://stackoverflow.com/questions/35038884/download-file-from-bytes-in-javascript
I.e., creating a huge URI blob, creating <a> link, and opening it. Though modern apps don't open a new window for that.
There won't be any save dialog for that obviously.
https://github.com/AvaloniaUI/Avalonia/assets/3163374/39827dec-3f2b-4d52-adc1-0f1d7c0e4026

if I use the option to force to use the polyfill

Looks like saving is broken, when polyfill is forced. As it fails with no permissions, when native API actually exists. Not really a problem for production apps, where polyfill shouldn't be forced.

Also see console logs for any information

It also seems to like...do something, but only redirect to a non existent page if I wait long enough whose name is the suggestedFilename I sent.

That's basically how this hack works, same as old hacks from stackoverflow - https://stackoverflow.com/questions/35038884/download-file-from-bytes-in-javascript
I.e., creating a huge URI blob, creating <a> link, and opening it. Though modern apps don't open a new window for that. There won't be any save dialog for that obviously.

See, the problem is it's not actually downloading anything. It literally just act as if it did, but no download is actually done. I ended up having better result doing what I been doing which was to do js interop to make it work manually.
Also, how did you got the ControlCatalog project running? I tried it for hours last time and I was getting multiple unrelated errors related to rendering on my end with Firefox (it was working on chrome)

Also, how did you got the ControlCatalog project running

dotnet run

See, the problem is it's not actually downloading anything.

Well, I just tried in Firefox and it just works. At least how it's expected from polyfil.
Probably can you try to find any logs or debug JS code in your browser? Browser devtools are quite powerful. Also Firefox should automatically use readable TypeScript code when you set breakpoints in the browser.
Debugging JS from VS/Rider is a pain.


[Testing] Merge YAML utilities

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: nmittler
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pkg/OWNERS [nmittler]
tests/integration/mixer/OWNERS [nmittler]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@nmittler: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/integ-pilot-k8s-presubmit-tests.sh
00660718d1336ccd9dc0f922370402732d4add44
link
/test integ-pilot-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@nmittler: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/integ-pilot-k8s-presubmit-tests.sh
00660718d1336ccd9dc0f922370402732d4add44
link
/test integ-pilot-k8s-presubmit-tests-master

prow/integ-security-k8s-presubmit-tests.sh
00660718d1336ccd9dc0f922370402732d4add44
link
/test integ-security-k8s-presubmit-tests-master

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/lgtm
Thanks for doing this.  I think we should take this one step further and make it a top-level prod package (not for this checkin). We have similar code sprinkled throughout.

/lgtm
Thanks for doing this.  I think we should take this one step further and make it a top-level prod package (not for this checkin). We have similar code sprinkled throughout.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: nmittler, ozevren
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

pkg/OWNERS [nmittler,ozevren]
tests/integration/mixer/OWNERS [nmittler,ozevren]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ozevren

Thanks for doing this. I think we should take this one step further and make it a top-level prod package (not for this checkin). We have similar code sprinkled throughout.

Agreed ... I was thinking the same thing.


Add community projects to Readme

It would be nice to have community projects (e.g. use-lanyard) listed on the readme.
This could be a sticky issue and projects could be added in comments. Up for debate I guess

YES ALISTAIR YES YES

^ what @Looskie said

Done!


How to require an Array param, disallow an empty array, but accept 'null' as a value

I have a validation like so:
requires :element, type: Array do
The only values that I want to accept in the JSON payload sent to the API are:
a) a non-empty array
b) the string 'null'
I can use allow_blank: false to disallow an empty array, but this validation also fires if null is sent.
How can I accept null, but not an empty array?
Why do I want this validation? Because we don't want to accept empty arrays as inputs, because these we believe can be ambiguous, i.e. did the developer/client really mean to send an empty array, or is the empty array the result of poor parsing or lack of proper validation on the client side? So if in fact there are no values to be sent for the array "element", we want that element to be set explicitly to null.

I'm not sure, but would this work?
ARRAY_OR_NULL = lambda do |val|
  if val == "null"
    nil
  elsif val.is_a?(Array) && !val.empty?
    val
  else
    fail ArgumentError
  end
end

# ...

requires :element, type: Array, coerce_with: ARRAY_OR_NULL do

Note that coerce_with is only on HEAD for the moment.

Thank you very much for your response. I tried implementing what you suggested, but I am not sure I had all the pieces in place. I was getting an error of the type `validate': unknown validator: array_or_null (Grape::Exceptions::UnknownValidator)
Based on the "Custom Validators" section in the documentation I have tried this:
Created this file under a 'validations' directory:
module V1
class NonEmptyArrayOrNull < Grape::Validations::Base
def validate_param!(attr_name, params)
val = params[attr_name]
unless val == 'null' || (val.is_a?(Array) && !val.empty?)
fail Grape::Exceptions::Validation, params: [@scope.full_name(attr_name)], message: 'maidCalls must contain a non-empty array, or null'
end
end
end
end
Then in my endpoint file I have:
module V1
class BlankGenotype < Grape::API
version 'v1', using: :path
prefix :api
format :json
default_format :json
require_relative 'custom_validations/non_empty_array_or_null'

...
begin
  params do

    requires :genotypeFather, type: Hash do
      requires :genotypeCanonical, type: Hash do
        requires :maidCalls, type: Array, non_empty_array_or_null: true do
          requires :maid, type: Integer, desc: "Maid ID"
        end

....
I get the following error:
NoMethodError (undefined method []' for nil:NilClass):   app/api/v1/custom_validations/non_empty_array_or_null.rb:4:in validate_param!'
Does this mean that the params parameter is not known to my custom validator class? How would I fix this?

I am having the same issue while using custom validation, the gem version is 0.13.0

You simple need to upgrade to version 0.14.0. Theres no coerce_with property in 0.13.0.

:+1: @PHronek I'm closing this, please reopen if the problem is different.

I am not sure how to re-open this issue.
I am now using grape version 0.15.0, and I no longer get the NoMethodError (undefined method []' for nil:NilClass): error reported before.
Using the custom validation class that I created is working as expected, but the problem is that params[attr_name] in the NonEmptyArrayOrNull class is set to an empty array, both when the maidCalls element in the json payload is set to null and when it is set to an empty array. So using this custom validator, I still can't differentiate between the following 2 son inputs:
"maidCalls": null
"maidCalls": []
So it looks like Grape converts both of these inputs into an empty array when creating "params".
Is there a way of checking for null vs [], maybe params is defined?

Ah! but if I use this code, as originally suggested by dslh, it appears to work as I desire! In this case, it appears that val is set to whatever is sent in the json, instead of Grape converting it to an empty Array.
requires :maidCalls, type: Array, coerce_with: ->(val) { if val == "null"
nil
elsif val.is_a?(Array) && !val.empty?
val
else
fail ArgumentError
end }


chore(main): release 1.2.0

:robot: I have created a release beep boop
1.2.0 (2024-04-07)
New Features
This release includes Eras!
Features

Add additional options around eras to the calendar settings cog (9e74749)
Can now edit basic information about eras in the calendar creator (e32ecea)
Display era events on the calendar UI (2c8f102)
Enables the "End Year" setting for eras (9f5048b)
Era edit experience in Creator (7ed29ec)
Eras now support end dates (b95a604)

Bug Fixes

Adds ability to see events from files in the Calendar creator, with a link to ope the file. (f0b8f2b)
Adds generic compareDates method + updated compareEvents to use it (489b5a7)
Allow negative years but skip year zero (3488dbd)
Display proper era for the currently viewed month in Year view (ba7659c)
Fixes "Go to date" menu item in Calendar UI not doing anything (0d6cadf)
Fixes CSS for view state buttons in calendar UI (adfb4ca)
Fixes dropdown in event modal not using the correct class (cd120e0)
Fixes era formats in presets (ee557e1)
Fixes issue where a disabled Toggle component could still be clicked (dfded00)
Fixes issue where typing a space in the event search would collapse the view (a1e4d92)
Fixes to the invalid date detection (0257e8c)
Fixes updating eras in the creator (c692388)
Properly display eras when moving between years (418566b)
Properly display only the latest valid era (29fdcc9)
Remove cursor decoration from week numbers (1fffb45)
Remove deprecated API call (c102c9f)
UI sync between quick and full creator (cea0927)
Uses correct text on the Restore calendars modal button (48c11f3)
Uses existing ephemeral store in the UI instead of initializing a new one (60737af)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/javalent/calendarium/releases/tag/1.2.0 :sunflower:


Automatically preset loading

This pull request ensure that setting belong to selected preset. It avoid an issue with cycle preset setting. Sometimes the selected preset is different than setting (upon program start) creating confusion while cycling preset.

I get your idea, but currently a preset is currently basically a static set of settings stored away, and totally independent from the current settings. I agree that this is a little bit confusing - I need think about how this can be combined - so that it's not confusing to the user.
Btw: Your changes do not work: for example if you try to create a new preset.., and it is even more confusing, because the user is under the impression the current view represents the current preset which it is not..

if you try to create a new preset.., and it is even more confusing, because the user is under the impression the current view represents the current preset which it is not..

Yeah, that is the shortcoming right now. I was thinking of making the combobox empty, when any new setting change is done.

Yeah, that is the shortcoming right now. I was thinking of making the combobox empty, when any new setting change is done.

Yes that could be an idea that could work.
but also creating new presets does not really work with your current change anymore. When I tested it - made changes to the current settings and then created new preset -- my changes are gone.
I would rather test it and play with some ideas on a branch than putting it directly to develop.
There might be side effects

I will open a branch, there we can test some more.
After these changes - I will keep the develop unchanged for a while - open only for bug fixes. I like to release a version 0.8 end of June.

Could you please change this pull request to: feature/preset-behavior-improvement ?
I can then merge your changes and check for side effects and mitigation.

Could you please change this pull request to: feature/preset-behavior-improvement ?

I have already made a pull request. Closing this one.


Highlighting the king's suqare

Hii @Navneet1206
Highlighting the king's square when it is in check and also add multiple options of colours for player so that they can choose by their on choice. I’m confident I can resolve this and contribute to improving the user experience.
Thank You!

Hi @Priyanshiagarwal2006 ,
Thanks for the suggestion! Highlighting the king’s square when it is in check is definitely a great idea, and adding multiple color options for the player to choose from would enhance the user experience. While I am currently focusing on the core functionality of the Pawn promotion, especially in Online Mode, I will consider these enhancements for future updates.
Appreciate your input and look forward to your contributions!
Best regards,
Navneet Vishwakarma


use clear_result in logs instead of undefined meta_result

fixes #476

Summary by CodeRabbit

Bug Fixes

Corrected logging statement in the text processing for ClearedResponse to ensure accurate variable reference.

Thanks @meralan for the PR. Super appreciate it!


Allow revision 0 expectation

Fixes #69

Pull Request Test Coverage Report for Build fc527b8b45656558318a67c02d49ab4358b024e9-PR-70

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

Totals

Change from base Build dade3eb3ca73e10b65850912cf30171d2781ef05:
0.0%

Covered Lines:
642

Relevant Lines:
642

💛  - Coveralls


file_reader_llamaindex doesn't work

What is the issue?
Steps to reproduce:

setup toolkit as written in setup
open localhost:4000, click the "New conversation" icon, and switch on "FILE READER" in settings (top right corner gear icon, description: "Retrieves documents from a file using LlamaIndex.")
attach any pdf file in the message input and write prompt "summarize text" (for example, it can be any)
click enter

actual results:

UI shows steps:

"I will read the attached document and summarise its contents."
Using file_reader_llamaindex

no output

expected results:

UI shows steps
summarization of document

actual result image:
backend logs: backend.log
Additional information
No response

Hi,
Is there any news regarding this bug? Maybe you have some time estimates for when it will be fixed?
Thank you for your reply in advance.
Best regards,
Valentyn

@bovchyk this is fixed now

@tianjing-li thank you very much!


Confirmation Alerts | Recommend Approval of a Credit Validation/Award/Reduction |1|

https://trello.com/c/h3KqrQjh/389-confirmation-alerts-recommend-approval-of-a-credit-validation-award-reduction-1
Story:
As a Government Analyst, I want to receive a confirmation alert when I recommend the approval of a change in a fuel supplier's credit balance (Credit Validation/Award/Reduction) to the Director so that I have a second chance to cancel the recommendation in case I made an error.
Scenario:
GIVEN that I am a user
AND my organization is Government
AND my role is analyst
AND I am recommending a change to a fuel supplier's credit balance (Credit Validation/Award/Reduction)
WHEN I click on Recommend
THEN I receive a confirmation alert that asks me to confirm that I want to recommend the change in a fuel supplier's credit balance to the Director
AND I can choose to either Recommend or close the confirmation alert (i.e. cancel the action)
Demo:
Show the alert when recommending a change to a fuel supplier's credit balance (Credit Validation/Award/Reduction)
Show that the user can either Recommend the change to a fuel supplier's credit balance or close the confirmation alert (i.e. cancel the action)

 Confirmation Alerts | Recommend Approval of a Credit Validation/Award/Reduction |1|


Mapped Drives have wrong label

Mapped Drives show up as "Data" and not the name of the drive as listed in File Explorer.
https://postimg.cc/mczwZCJz

Files version? Could you post the log files?

V <IP_ADDRESS>,
debug.zip

@dgodfather Is this still an issue in v2.0.13?

Seems that way. Nothing has changed as it is viewed from my opening reply image.


eget errata-ai/vale --asset 64-bit.tar says open vale: is a directory

When I run eget errata-ai/vale --asset 64-bit.tar I get this:
➜ `eget errata-ai/vale --asset 64-bit.tar`
https://github.com/errata-ai/vale/releases/download/v2.22.0/vale_2.22.0_Linux_64-bit.tar.gz
Downloading 100% [====================================================] (6.8/6.8 MB, 14.755 MB/s)
open vale: is a directory

However, if I download that file manually and unpack it, I get this:
➜ wget https://github.com/errata-ai/vale/releases/download/v2.22.0/vale_2.22.0_Linux_64-bit.tar.gz
...
Saving to: ‘vale_2.22.0_Linux_64-bit.tar.gz’

vale_2.22.0_Linux_64-bit.t 100%[======================================>]   6.85M  20.7MB/s    in 0.3s

2023-02-04 13:47:00 (20.7 MB/s) - ‘vale_2.22.0_Linux_64-bit.tar.gz’ saved [7180999/7180999]

➜ mkdir vale
➜ cd vale

➜ tar xzf ../vale_2.22.0_Linux_64-bit.tar.gz

➜ ls -halp
total 15M
drwxrwxr-x 1 duncan duncan   40 Feb  4 13:47 ./
drwxr-xr-x 1 duncan duncan 3.9K Feb  4 13:47 ../
-rw-r--r-- 1 duncan duncan 1.1K Jan  9 15:35 LICENSE
-rw-r--r-- 1 duncan duncan 9.8K Jan  9 15:35 README.md
-rwxr-xr-x 1 duncan duncan  15M Jan  9 15:36 vale

It looks to me like that tar file contain vale a 15 mb binary. Not sure why eget thinks it's a folder?

What version of eget are you using? I just tried using version 1.3.1 and it worked as expected.

Yeah, latest 1.3.1

Is it possible that at the location eget is trying to extract the binary vale to there is already a directory called vale?

If I run this from my home directory, there is a value folder there already and it fails - if I run it somewhere else where there isn't, it works. However - this is what my config looks like:
➜ cat ~/.config/eget/eget.toml

[global]
target = "~/bin"
upgrade_only = true

So, running it from my home directory fails because there's already a vale folder there - even through it's supposed to be putting the download into "~/bin"?
If I run this from my home directory (where there's already a vale folder) eget errata-ai/vale --asset 64-bit.tar --to ~/bin it works as expected and happily puts vale into ~/bin.
So, it looks like my config file isn't working, for some reason? (I didn't notice this initially because I happened to be running eget from ~/bin).

Ah, putting the eget configuration in ~/.config/eget/eget.toml (on the XDG path) is a feature that has been added since v1.3.1. For version 1.3.1 you should use ~/.eget.toml. I will release a new version shortly.


[Bug] A malicous leader validator(or client) could send a hard fork block to other nodes cause them to hard fork

https://hackerone.com/reports/2274930
Summary
A malicous leader validator(or client) could send a hard fork block to other nodes cause them on a hard fork chain.
The root cause is  check_next_block doesn't check the Block::Authoriy(Subdag), and we don't have enough  information to check the block.authority.subdag.leader_certificate is actually committed by all the nodes.
In addition,
The subdag may be completely invalid, since we only check the leader certificate is belongs to committee, the leader certificate itself may be not available or quorum.
Proof-of-Concept (PoC)
The maclious validator could always hold the batch_certificate and never send to other nodes. And the attacker could  use batch_certificate to create a dag to construct a hard fork block and block locators.
If other nodes doesn't connect to enough valid validators, they will send BlockRequest to the attacker, and when the attacker receive BlockResponse from other nodes, just send the hard fork block to them.
Fix
At least f + 1 validators are needed to check the consistent of blocks
Impact
Cause chain hard fork and halt the block production

I've been able to reproduce with a client (on the receiving end, i.e. step 3 in your instructions). Does this bug affect validators as well, they check sync state differently?

This attack technically doesn't work for validators, because they do not blindly accept recent blocks (within GC depth). Instead, they replay all certificates through the BFT to construct the blocks themselves. It would be impossible to compromise the subdag without compromising at least 2f+1 signatures from the committee lookback set.
This is technically a possible attack vector for clients however, and so a redundancy factor is ideal for guarding against this, or to connect to trusted peers only when booting up your node (and filling all open slots with only trusted peers).

Marking as resolved, thanks @ghostant-1017 !

Do you know if there is any real mitigations for clients?

The only known solution is to hardcode bootstrap nodes as the default.

Correct, thats for the fork-choice rule.
But for long-range syncing (i.e. greater than 1 week of blocks), which is also similar to the case we are talking about here, my understanding is that Bitcoin will defer to trusted peers to bootstrap with. Meaning you can have some redundancy (as we support too), however there isn't more of a guarantee that can be provided because this is a fundamental root of trust concern.


Add Angularjs+Template support

For angularjs template code inside html
<% styles.forEach( function ( file ) { %>
    <link rel="stylesheet" type="text/css" href="<%= file %>" />
<% }); %>

beautifying is not working. It comes out like this:

<% styles.forEach( function ( file ) { %>
    <link rel="stylesheet" type="text/css" href="<%= file %>" />
    <% }); %>

        <!-- compiled JavaScript -->
        <% scripts.forEach( function ( file ) { %>
            <script type="text/javascript" src="<%= file %>"></script>
            <% }); %>

Would appreciate a fix for this problem.

js-beautify handles HTML support for Atom Beautify. I'd recommend forwarding this issue over to them at https://github.com/beautify-web/js-beautify
Thanks.

This is the same syntax used with Embedded JS, ERB, Mustache, and so forth. I added support for this with: https://github.com/prettydiff/prettydiff/issues/59

Excellent, @prettydiff! Then this should be coming soon with #282 release.

When v0.25.0 is released you can beautify Angular Template code using EJS (Embedded JavaScript) language, which uses the Pretty Diff beautifier. In Atom Beautify, EJS language is detected with the JavaScript Template grammar. You can force Atom to treat your file as JavaScript Template grammar by clicking your file's current grammar in the bottom status bar and changing it to JavaScript Template.
File's current grammar is HTML:

Then select grammar JavaScript Template:

Let me know if you have any problems.

Published to v0.25.0
This is a very big release with lots of internal changes and (hopefully) no breaking changes. Please let me know if you are experiencing any unusual behaviour / breaking changes after updating. Thank you.


Logo pops as bigger icon when we redirect back to home page

Current Behavior

From meshmap or cloud doc we redirect back to home page by clicking the logo it pops as bigger for a second
https://github.com/layer5io/docs/assets/160073697/edf923d3-da30-462b-b736-c19666a40545
Expected Behavior

Screenshots/Logs

Environment

Host OS: Mac Linux Windows
Platform: Docker or Kubernetes
Meshery Server Version: stable-v
Meshery Client Version: stable-v

Contributor Guides and Resources

🛠 Meshery Build & Release Strategy
📚 Instructions for contributing to documentation

Meshery documentation site and source

🎨 Wireframes and designs for Layer5 site in Figma (open invite)
🙋🏾🙋🏼 Questions: Layer5 Discussion Forum and Layer5 Community Slack

@ShivamCoder23  would you like to work on this?

Hi! Can I work on this issue

sure @26vanshika

has this issue been fixed?

@barkhaaroraa, please confirm...

@barkhaaroraa @26vanshika, any progress on this?

Can i work on this issue??

@abbi4code, are you ready with your local setup?

Yep, all set with my local setup!

Go ahead @abbi4code....

Hi @iArchitSharma  @Ashparshp
I’ve raised a PR to address the issue with the logo enlarging on the home page. Please review it and let me know if any further changes are needed or if it’s ready to be merged.


proper route creation with kubernetes provider

Do you want to request a feature or report a bug?

Bug

What did you do?
Create an Ingress with a tls block.

What did you expect to see?
Per kubectl
NAME       HOSTS                               ADDRESS       PORTS     AGE
httpbin    httpbin.foo.bar.aaaaaaaaaaaa.com    <IP_ADDRESS>   80, 443   4d19h

So the Ingress is considered available on both ports 80 and 443 (as it should I believe).
What did you see instead?
A single route gets created in traefik which appears to have tls configuration bound to it (based on dashboard ui). This leaves the service generally unavailable on port 80 in the standard sense.  It is available, but is required to be accessed via https on port 80.
ie: curl -v 'https:// httpbin.foo.bar.aaaaaaaaaaaa.com:80 works, curl -v 'http:// httpbin.foo.bar.aaaaaaaaaaaa.com sits indefinitely as I recall.
Output of traefik version: (What version of Traefik are you using?)

2.2.0-rc2

What is your environment & configuration (arguments, toml, provider, platform, ...)?
Using the kubernetes provider installed via the new helm chart.

I think the general issue leading to this is that operating in Ingress mode the scope is perhaps trying to be a bit too much. Not sure. It feels as if operating with the kubernetes provider needs to perhaps imply a handful of configuration/options and narrow things down a bit on the configuration front.
Ideally (based on my limited knowledge of how 2.x works currently) in the scenario described above 2 routes would be created and attached to the correct entrypoints of web and websecure with the websecure route being flagged as tls and the web route not being flagged as tls. None of them bound to the traefik entrypoint at all.
Thoughts? Am I simply configuring something wrong?

duplicate of #6501


chore(package.json): add packageManager && make scripts pm-independent

version: latest

not needed if the version is specified in package.json
link

"node": ">=18"

there is no reason to have 20 here, check the dependencies. npm and pnpm only show a warning, but yarn throws an error

"build:prod": "npm run build:local && npm run copy:docs"

why have pnpm here if we don't force to use it?

@theRealPadster did you read the pr description?

@theRealPadster did you read the pr description?

Yes. It sounded to me like you were going to make the scripts use pnpm, but then I looked and it's changing it back to npm


Expo android prod build - getSubscriptions() doesn't return a subscription offer

Discussed in https://github.com/dooboolab-community/react-native-iap/discussions/2652

Originally posted by RobinBobin December 26, 2023
Hi,
I have a problem getting my subscription offer in a production build published on google play. All is fine in a development build.
I have a SKU pro with the following 2 base plans and 1 offer:

pro-annual

pro-annual-trial

pro-monthly

When I use an expo development build and invoke getSubscriptions({ skus: ['pro'] }) I get the info about the base plans and the offer. But when I make a prod build, publish it on Google Play and install the app I get only the info about the base plans. The offer isn't mentioned.
I found this issue, but it's about version 8, and I have 12.
Could someone help me, please :pray: ?
Library versions
"expo": "^49.0.0"
"react-native-iap": "12.10.5",
```</div>

Cf. discussion.


h-100 gone

Is h-100 gone in utilities? After I updated to the latest version, h-100 won't work anymore.

Here are the docs: https://getbootstrap.com/docs/4.0/utilities/sizing/

It's not gone, so your usage must be wrong.


feature request: manual resize should resize other windows

In gnome 3.30 it is possible to change two half windows width at once.
It would be nice to get the same feature with gnomesome, also for vertical resizing as well.

Can you specify this? Currently, the master/child-area can be resized using 'META + u/i'

Original article: https://feaneron.com/2017/06/13/smarter-half-tiling-in-gnome-shellmutter/
and video at the moment both windows are resized using mouse: https://youtu.be/vfj5KjAm-LE?t=70

Thanks for the video! This behavior currently can be simulated by 'Meta + U' or 'Meta + I', however I will try to support resizing with the mouse as well.


"test" is not an allowed value for the "request" property of launch configs configurations

The documentation at  https://code.visualstudio.com/docs/python/testing#_debug-tests says that a value "test" can be used for the "request" property of launch configs configurations.
Please note, that this is neither supported by VS Code nor by DAP and it will break an unknown number of assumptions and result in a bad user experience (e.g. https://github.com/microsoft/vscode/issues/119903). The only supported values are "launch" and "attach".

What would the preferred way be for us to be able to denote which launch configuration is meant to be used when debugging a test when launched from our test explorer?

@brettcannon you can either:

add a new property to the schema of your "python" launch config (this property is only allowed on "python" launch configs and will result in an error in launch configs of different types).
or you could add an new independent (orthogonal) property that is allowed in all launch configs. VS Code's "serverReady" feature is a good example for how to add a property to all launch configs. See https://github.com/microsoft/vscode/blob/7208128b8187d942419237855c324877d096cf43/extensions/debug-server-ready/package.json#L22-L138.

Verification steps:

Make sure you have "python.experiments.optInto": ["All"], in your user settings. If not, add it and reload.
Open a workspace with some python files in it
Add the following configuration to your launch.json file (create it first if necessary):

        {
            "name": "Some configuration",
            "type": "python",
            "request": "test",
            "console": "integratedTerminal"
        },

Make sure that there's a squiggle under "test", and that the only accepted values are launch or attach

I'm not seeing any squiggles.

@rzhao271 can you try with this vsix: https://pvsc.blob.core.windows.net/extension-builds/ms-python-insiders.vsix

I got it to work.
My launch config was invalid because it was just that block of JSON. When I created a new launch config, things got put into the proper format.


traceplot colors

Hello!
I am trying to specify the colors for a traceplot in my project, but the GUI chooses a random colorset each time I load my project.
I am adding colors + traceplots like the this.
traces = {'animal1_y': np.vstack([timestamps, track0_y]).T,
              'animal2_y': np.vstack([timestamps, track1_y]).T,
              'ydiff_abs': np.vstack([timestamps, ydiff_abs]).T}

colors = {'animal1_y': [151, 43, 6],
               'animal2_y': [24, 89, 182],
               'ydiff_abs': [255, 255, 0]}

snub.io.add_traceplot(
    project_directory,
    'traces',
     traces,
     trace_colors=colors,
     linewidth=2)

Output
Assigning random colors to traces []
Saving trace plot data to snub\traces.trace_data.p
Added trace plot "traces
"

Saved config file snub\config.json

{'name': 'traces',
 'data_path': 'traces.trace_data.p',
 'linewidth': 2,
 'bgcolor': (0, 0, 0),
 'trace_colors': {'animal1_y': [151, 43, 6],
  'animal2_y': [24, 89, 182],
  'ydiff_abs': [255, 255, 0]},
 'height_ratio': 1,
 'order': 0,
 'initial_visibility': True}

The config gets updated no problem. Any idea what's happening? I also noticed that upon reloading data in the GUI, a new set of random colors are assigned to my traces.
Thanks for your help!
-Ralph

OK this should be fixed https://github.com/calebweinreb/SNUB/pull/40
I merged the update into main

Looks good, thanks Caleb!
Changes updated after running the following
conda activate snub
pip uninstall snub
pip install git+https://github.com/calebweinreb/SNUB.git@main


Update debugger test to ignore debugger message case

Alternate to #111 for fixing #108

Landed #111, which is fine. Thanks for the choice, though :)

I fixed it myself locally before noticing the other one, so it's all good :-)


Create a plugin system to enable developers to expand Mantle in creative ways

Mantle could enable developers to expand functionality by supporting a plugin system. Some feature ideas I have had don't seem like they should be included in the core tool. However, they could be implemented as plugins that can be optionally installed if users want those features.
Some ideas for plugins:

Convert file formats of assets automatically before upload (e.g. wav to mp3 for audio assets) #61
Provide tips on Roblox best practices for assets and images (e.g. thumbnail file dimensions). Kind of like a linter #60
Detect when a resource was affected by Roblox's text moderation #26
We could implement some of Tarmac's features with this: image packing and hi-res versions

Some of these plugins could be built as "official" plugins.
Something to keep in mind here is they need to be easy to install. And, they need to be able to include dependencies (nobody is going to implement a wav to mp3 plugin if they can't import a wav to mp3 Lua library).

A simpler first iteration of this would be to just call configured commands at certain hooks

This could be a cool way to implement this: https://extism.org/
Also would be cool to have Lua support for this. Maybe the Roblox OSS discord could take a stab at it.